- new MAPINFO parser complete but still untested.

- split of parser code from g_level.cpp
- const-ified parameters to F_StartFinale.


SVN r1378 (newmapinfo)
This commit is contained in:
Christoph Oelckers 2009-01-30 09:51:16 +00:00
parent bf08ec6daf
commit e7141238ba
8 changed files with 1482 additions and 1856 deletions

View file

@ -437,6 +437,7 @@ add_executable( zdoom WIN32
g_game.cpp g_game.cpp
g_hub.cpp g_hub.cpp
g_level.cpp g_level.cpp
g_mapinfo.cpp
g_skill.cpp g_skill.cpp
gameconfigfile.cpp gameconfigfile.cpp
gi.cpp gi.cpp

View file

@ -86,8 +86,8 @@ void F_AdvanceSlideshow ();
// //
// F_StartFinale // F_StartFinale
// //
void F_StartFinale (char *music, int musicorder, int cdtrack, unsigned int cdid, char *flat, char *text, void F_StartFinale (const char *music, int musicorder, int cdtrack, unsigned int cdid, const char *flat,
INTBOOL textInLump, INTBOOL finalePic, INTBOOL lookupText, bool ending) const char *text, INTBOOL textInLump, INTBOOL finalePic, INTBOOL lookupText, bool ending)
{ {
bool loopmusic = ending ? !(gameinfo.flags & GI_NOLOOPFINALEMUSIC) : true; bool loopmusic = ending ? !(gameinfo.flags & GI_NOLOOPFINALEMUSIC) : true;
gameaction = ga_nothing; gameaction = ga_nothing;

View file

@ -42,8 +42,8 @@ void F_Ticker ();
void F_Drawer (); void F_Drawer ();
void F_StartFinale (char *music, int musicorder, int cdtrack, unsigned int cdid, char *flat, char *text, void F_StartFinale (const char *music, int musicorder, int cdtrack, unsigned int cdid, const char *flat,
INTBOOL textInLump, INTBOOL finalePic, INTBOOL lookupText, bool ending); const char *text, INTBOOL textInLump, INTBOOL finalePic, INTBOOL lookupText, bool ending);
void F_StartSlideshow (); void F_StartSlideshow ();

View file

@ -127,15 +127,15 @@ void G_LeavingHub(int mode, cluster_info_t * cluster, wbstartstruct_t * wbs)
wbs->plyr[j].ssecret += hubdata[i].plyr[j].ssecret; wbs->plyr[j].ssecret += hubdata[i].plyr[j].ssecret;
} }
} }
if (cluster->clustername) if (cluster->ClusterName.IsNotEmpty())
{ {
if (cluster->flags & CLUSTER_LOOKUPNAME) if (cluster->flags & CLUSTER_LOOKUPNAME)
{ {
strncpy(level.level_name, GStrings(cluster->clustername), 64); strncpy(level.level_name, GStrings(cluster->ClusterName), 64);
} }
else else
{ {
strncpy(level.level_name, cluster->clustername, 64); strncpy(level.level_name, cluster->ClusterName, 64);
} }
level.level_name[63]=0; level.level_name[63]=0;
} }

File diff suppressed because it is too large Load diff

View file

@ -71,13 +71,15 @@ struct FMapInfoParser
FScanner sc; FScanner sc;
int format_type; int format_type;
bool HexenHack;
FMapInfoParser() FMapInfoParser()
{ {
format_type = FMT_Unknown; format_type = FMT_Unknown;
HexenHack = false;
} }
void ParseCluster();
void ParseNextMap(char *mapname); void ParseNextMap(char *mapname);
void ParseLumpOrTextureName(char *name); void ParseLumpOrTextureName(char *name);
level_info_t *ParseMapHeader(level_info_t &defaultinfo); level_info_t *ParseMapHeader(level_info_t &defaultinfo);
@ -350,7 +352,6 @@ struct level_info_t
char fadetable[9]; char fadetable[9];
SBYTE WallVertLight, WallHorizLight; SBYTE WallVertLight, WallHorizLight;
char f1[9]; char f1[9];
// TheDefaultLevelInfo initializes everything above this line.
int musicorder; int musicorder;
FCompressedMemFile *snapshot; FCompressedMemFile *snapshot;
DWORD snapshotVer; DWORD snapshotVer;
@ -499,14 +500,17 @@ struct cluster_info_t
{ {
int cluster; int cluster;
char finaleflat[9]; char finaleflat[9];
char *exittext; FString ExitText;
char *entertext; FString EnterText;
char *messagemusic; FString MessageMusic;
int musicorder; int musicorder;
int flags; int flags;
int cdtrack; int cdtrack;
char *clustername; FString ClusterName;
unsigned int cdid; unsigned int cdid;
void Reset();
}; };
// Cluster flags // Cluster flags
@ -521,6 +525,7 @@ struct cluster_info_t
extern FLevelLocals level; extern FLevelLocals level;
extern TArray<level_info_t> wadlevelinfos; extern TArray<level_info_t> wadlevelinfos;
extern TArray<cluster_info_t> wadclusterinfos;
extern SDWORD ACS_WorldVars[NUM_WORLDVARS]; extern SDWORD ACS_WorldVars[NUM_WORLDVARS];
extern SDWORD ACS_GlobalVars[NUM_GLOBALVARS]; extern SDWORD ACS_GlobalVars[NUM_GLOBALVARS];

1432
src/g_mapinfo.cpp Normal file

File diff suppressed because it is too large Load diff

View file

@ -624,6 +624,10 @@
RelativePath=".\src\g_level.cpp" RelativePath=".\src\g_level.cpp"
> >
</File> </File>
<File
RelativePath=".\src\g_mapinfo.cpp"
>
</File>
<File <File
RelativePath=".\src\g_skill.cpp" RelativePath=".\src\g_skill.cpp"
> >