/
id1map_util.cpp
82 lines (76 loc) · 2.64 KB
/
id1map_util.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/**
* @file id1map_util.cpp @ingroup wadmapconverter
*
* Miscelaneous map conversion utility routines.
*
* @authors Copyright © 2003-2012 Jaakko Keränen <jaakko.keranen@iki.fi>
* @authors Copyright © 2006-2012 Daniel Swanson <danij@dengine.net>
*
* @par License
* GPL: http://www.gnu.org/licenses/gpl.html
*
* <small>This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version. This program is distributed in the hope that it
* will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
* Public License for more details. You should have received a copy of the GNU
* General Public License along with this program; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA</small>
*/
#include "wadmapconverter.h"
#include "maplumpinfo.h"
const ddstring_t* MapFormatNameForId(mapformatid_t id)
{
static const ddstring_t names[1 + NUM_MAPFORMATS] = {
/* MF_UNKNOWN */ { "Unknown" },
/* MF_DOOM */ { "Doom" },
/* MF_HEXEN */ { "Hexen" },
/* MF_DOOM64 */ { "Doom64" }
};
if(VALID_MAPFORMATID(id))
{
return &names[1+id];
}
return &names[0];
}
MapLumpType MapLumpTypeForName(const char* name)
{
static const struct maplumpinfo_s {
const char* name;
MapLumpType type;
} lumptypeForNameDict[] =
{
{ "THINGS", ML_THINGS },
{ "LINEDEFS", ML_LINEDEFS },
{ "SIDEDEFS", ML_SIDEDEFS },
{ "VERTEXES", ML_VERTEXES },
{ "SEGS", ML_SEGS },
{ "SSECTORS", ML_SSECTORS },
{ "NODES", ML_NODES },
{ "SECTORS", ML_SECTORS },
{ "REJECT", ML_REJECT },
{ "BLOCKMAP", ML_BLOCKMAP },
{ "BEHAVIOR", ML_BEHAVIOR },
{ "SCRIPTS", ML_SCRIPTS },
{ "LIGHTS", ML_LIGHTS },
{ "MACROS", ML_MACROS },
{ "LEAFS", ML_LEAFS },
{ "GL_VERT", ML_GLVERT },
{ "GL_SEGS", ML_GLSEGS },
{ "GL_SSECT", ML_GLSSECT },
{ "GL_NODES", ML_GLNODES },
{ "GL_PVS", ML_GLPVS},
{ NULL }
};
DENG_ASSERT(name);
if(name[0])
for(int i = 0; lumptypeForNameDict[i].name; ++i)
{
if(!strnicmp(lumptypeForNameDict[i].name, name, strlen(lumptypeForNameDict[i].name)))
return lumptypeForNameDict[i].type;
}
return ML_INVALID;
}