- added 'defaultterrain' option to terrain parser for mods that want to have

a different default terrain than a generic solid surface.
- added format char processing to A_Print(Bold) and all printable messages
  that can be defined in DECORATE.
- Fixed: The railgun code ignored MF3_ALWAYSPUFF.
- added desaturated translations.
- added optional state parameters to A_ReFire and A_GunFlash and A_CountdownArg.


SVN r1921 (trunk)
This commit is contained in:
Christoph Oelckers 2009-10-16 16:04:19 +00:00
commit 8b27bd1434
15 changed files with 219 additions and 65 deletions

View file

@ -63,7 +63,8 @@ enum EOuterKeywords
OUT_IFHERETIC,
OUT_IFHEXEN,
OUT_IFSTRIFE,
OUT_ENDIF
OUT_ENDIF,
OUT_DEFAULTTERRAIN
};
enum ETerrainKeywords
@ -125,6 +126,7 @@ static void GenericParse (FScanner &sc, FGenericParse *parser, const char **keyw
void *fields, const char *type, FName name);
static void ParseDamage (FScanner &sc, int keyword, void *fields);
static void ParseFriction (FScanner &sc, int keyword, void *fields);
static void ParseDefault (FScanner &sc);
// EXTERNAL DATA DECLARATIONS ----------------------------------------------
@ -133,6 +135,7 @@ static void ParseFriction (FScanner &sc, int keyword, void *fields);
FTerrainTypeArray TerrainTypes;
TArray<FSplashDef> Splashes;
TArray<FTerrainDef> Terrains;
WORD DefaultTerrainType;
// PRIVATE DATA DEFINITIONS ------------------------------------------------
@ -146,6 +149,7 @@ static const char *OuterKeywords[] =
"ifhexen",
"ifstrife",
"endif",
"defaultterrain",
NULL
};
@ -222,27 +226,7 @@ static FGenericParse TerrainParser[] =
{ GEN_Bool, {theoffsetof(FTerrainDef, AllowProtection)} },
};
/*
struct
{
char *name;
int type;
bool Heretic;
}
TerrainTypeDefs[] =
{
{ "FLTWAWA1", FLOOR_WATER, true },
{ "FLTFLWW1", FLOOR_WATER, true },
{ "FLTLAVA1", FLOOR_LAVA, true },
{ "FLATHUH1", FLOOR_LAVA, true },
{ "FLTSLUD1", FLOOR_SLUDGE, true },
{ "X_005", FLOOR_WATER, false },
{ "X_001", FLOOR_LAVA, false },
{ "X_009", FLOOR_SLUDGE, false },
{ "F_033", FLOOR_ICE, false },
{ "END", -1 }
};
*/
// CODE --------------------------------------------------------------------
@ -258,9 +242,9 @@ void P_InitTerrainTypes ()
int lump;
int size;
size = (TexMan.NumTextures()+1)*sizeof(BYTE);
size = (TexMan.NumTextures()+1);
TerrainTypes.Resize(size);
memset (&TerrainTypes[0], 0, size);
TerrainTypes.Clear();
MakeDefaultTerrain ();
@ -343,6 +327,10 @@ static void ParseOuter (FScanner &sc)
ParseFloor (sc);
break;
case OUT_DEFAULTTERRAIN:
ParseDefault (sc);
break;
case OUT_IFDOOM:
if (!(gameinfo.gametype & GAME_DoomChex))
{
@ -676,7 +664,27 @@ static void ParseFloor (FScanner &sc)
Printf ("Unknown terrain %s\n", sc.String);
terrain = 0;
}
TerrainTypes[picnum] = terrain;
TerrainTypes.Set(picnum.GetIndex(), terrain);
}
//==========================================================================
//
// ParseFloor
//
//==========================================================================
static void ParseDefault (FScanner &sc)
{
int terrain;
sc.MustGetString ();
terrain = FindTerrain (sc.String);
if (terrain == -1)
{
Printf ("Unknown terrain %s\n", sc.String);
terrain = 0;
}
DefaultTerrainType = terrain;
}
//==========================================================================