- Fixed: Dehacked string replacement did not check the clusters' finaleflats.

- Changed the definition of several typedef'd structs so that they are
  properly named.
- Limited DEHSUPP lump lookup to search zdoom.pk3 only. It will no longer
  be possible to load DEHSUPP lumps from user WADs.
- Brought back the text-based DEHSUPP parser and changed it to be able to 
  reference states by label. Also changed label names of 
  DoomUnusedStates and added proper labels to all states that were
  previously forced to be the first state of an actor so that the old
  (limited) method could access them. This was done to address the following
  bug:
- Fixed: The player's death states calling A_PlayerSkinCheck should not be
  part of the state set that is accessible by Dehacked. These will produce
  error messages when mapped to non-players.

SVN r1512 (trunk)
This commit is contained in:
Christoph Oelckers 2009-03-28 11:49:44 +00:00
parent 3ee37fdc08
commit bf4e17703d
33 changed files with 756 additions and 4988 deletions

View file

@ -1,4 +1,20 @@
March 27, 2009 (Changes by Graf Zahl)
March 28, 2009 (Changes by Graf Zahl)
- Fixed: Dehacked string replacement did not check the clusters' finaleflats.
- Changed the definition of several typedef'd structs so that they are
properly named.
- Limited DEHSUPP lump lookup to search zdoom.pk3 only. It will no longer
be possible to load DEHSUPP lumps from user WADs.
- Brought back the text-based DEHSUPP parser and changed it to be able to
reference states by label. Also changed label names of
DoomUnusedStates and added proper labels to all states that were
previously forced to be the first state of an actor so that the old
(limited) method could access them. This was done to address the following
bug:
- Fixed: The player's death states calling A_PlayerSkinCheck should not be
part of the state set that is accessible by Dehacked. These will produce
error messages when mapped to non-players.
March 27, 2009 (Changes by Graf Zahl)
- Fixed: Reading the RNG states from a savegame calculated the amounts of
RNGs in the savegame wrong.

View file

@ -200,25 +200,30 @@ CVAR (Color, am_ovthingcolor_item, 0xe88800, CVAR_ARCHIVE);
#define CXMTOF(x) (MTOF((x)-m_x)/* - f_x*/)
#define CYMTOF(y) (f_h - MTOF((y)-m_y)/* + f_y*/)
typedef struct {
struct fpoint_t
{
int x, y;
} fpoint_t;
};
typedef struct {
struct fline_t
{
fpoint_t a, b;
} fline_t;
};
typedef struct {
struct mpoint_t
{
fixed_t x,y;
} mpoint_t;
};
typedef struct {
struct mline_t
{
mpoint_t a, b;
} mline_t;
};
typedef struct {
struct islope_t
{
fixed_t slp, islp;
} islope_t;
};

File diff suppressed because it is too large Load diff

View file

@ -57,7 +57,7 @@
//
// Network packet data.
//
typedef struct
struct doomcom_t
{
DWORD id; // should be DOOMCOM_ID
SWORD intnum; // DOOM executes an int to execute commands
@ -86,7 +86,7 @@ typedef struct
// packet data to be sent
BYTE data[MAX_MSGLEN];
} doomcom_t;
};
class FDynamicBuffer

View file

@ -64,7 +64,7 @@ struct zdemoheader_s {
BYTE consoleplayer;
};
struct usercmd_s
struct usercmd_t
{
DWORD buttons;
short pitch; // up/down
@ -74,7 +74,6 @@ struct usercmd_s
short sidemove;
short upmove;
};
typedef struct usercmd_s usercmd_t;
class FArchive;

View file

@ -460,13 +460,13 @@ void F_TextWrite (void)
// Casting by id Software.
// in order of appearance
//
typedef struct
struct castinfo_t
{
const char *name;
const char *type;
const AActor *info;
const PClass *Class;
} castinfo_t;
};
castinfo_t castorder[] =
{

View file

@ -116,7 +116,8 @@ typedef enum {
struct GUIDName;
typedef struct menuitem_s {
struct menuitem_t
{
itemtype type;
const char *label;
union {
@ -159,7 +160,7 @@ typedef struct menuitem_s {
int highlight;
int flagmask;
} e;
} menuitem_t;
};
struct menu_t {
const char *texttitle;
@ -190,7 +191,7 @@ struct valueenum_t {
const char *name; // Name on menu
};
typedef struct
struct oldmenuitem_t
{
// -1 = no cursor here, 1 = ok, 2 = arrows ok
SBYTE status;
@ -206,9 +207,9 @@ typedef struct
// choice=0:leftarrow,1:rightarrow
void (*routine)(int choice);
int textcolor;
} oldmenuitem_t;
};
typedef struct oldmenu_s
struct oldmenu_t
{
short numitems; // # of menu items
oldmenuitem_t *menuitems; // menu items
@ -216,9 +217,9 @@ typedef struct oldmenu_s
short x;
short y; // x,y of menu
short lastOn; // last item user was on in menu
} oldmenu_t;
};
typedef struct
struct menustack_t
{
union {
menu_t *newmenu;
@ -226,7 +227,7 @@ typedef struct
} menu;
bool isNewStyle;
bool drawSkull;
} menustack_t;
};
extern value_t YesNo[2];
extern value_t NoYes[2];

View file

@ -401,7 +401,7 @@ void M_LoadDefaults ()
//
typedef struct
struct pcx_t
{
char manufacturer;
char version;
@ -424,7 +424,7 @@ typedef struct
unsigned short palette_type;
char filler[58];
} pcx_t;
};
//

View file

@ -41,7 +41,7 @@
// bits 9-15: reserved
//40 bytes
typedef struct
struct sectortype
{
SWORD wallptr, wallnum;
SDWORD ceilingz, floorz;
@ -54,7 +54,7 @@ typedef struct
BYTE floorpal, floorxpanning, floorypanning;
BYTE visibility, filler;
SWORD lotag, hitag, extra;
} sectortype;
};
//cstat:
// bit 0: 1 = Blocking wall (use with clipmove, getzrange) "B"
@ -70,7 +70,7 @@ typedef struct
// bits 10-15: reserved
//32 bytes
typedef struct
struct walltype
{
SDWORD x, y;
SWORD point2, nextwall, nextsector, cstat;
@ -78,7 +78,7 @@ typedef struct
SBYTE shade;
BYTE pal, xrepeat, yrepeat, xpanning, ypanning;
SWORD lotag, hitag, extra;
} walltype;
};
//cstat:
// bit 0: 1 = Blocking sprite (use with clipmove, getzrange) "B"
@ -96,7 +96,7 @@ typedef struct
// bit 15: 1 = Invisible sprite, 0 = not invisible
//44 bytes
typedef struct
struct spritetype
{
SDWORD x, y, z;
SWORD cstat, picnum;
@ -107,7 +107,7 @@ typedef struct
SWORD sectnum, statnum;
SWORD ang, owner, xvel, yvel, zvel;
SWORD lotag, hitag, extra;
} spritetype;
};
struct SlopeWork
{

View file

@ -150,16 +150,16 @@ void P_NoiseAlert (AActor* target, AActor* emmiter, bool splash);
//
// P_MAPUTL
//
typedef struct
struct divline_t
{
fixed_t x;
fixed_t y;
fixed_t dx;
fixed_t dy;
} divline_t;
};
typedef struct
struct intercept_t
{
fixed_t frac; // along trace line
bool isaline;
@ -168,7 +168,7 @@ typedef struct
AActor *thing;
line_t *line;
} d;
} intercept_t;
};
typedef bool (*traverser_t) (intercept_t *in);
@ -470,14 +470,14 @@ bool EV_OpenPolyDoor (line_t *line, int polyNum, int speed, angle_t angle, int d
// [RH] Data structure for P_SpawnMapThing() to keep track
// of polyobject-related things.
typedef struct polyspawns_s
struct polyspawns_t
{
struct polyspawns_s *next;
polyspawns_t *next;
fixed_t x;
fixed_t y;
short angle;
short type;
} polyspawns_t;
};
enum
{

View file

@ -62,14 +62,14 @@ inline FArchive &operator<< (FArchive &arc, psprnum_t &i)
}
*/
typedef struct pspdef_s
struct pspdef_t
{
FState* state; // a NULL state means not active
int tics;
fixed_t sx;
fixed_t sy;
} pspdef_t;
};
class FArchive;

View file

@ -139,9 +139,10 @@ void R_ClearDrawSegs (void)
// should use it, since smaller arrays fit better in cache.
//
typedef struct {
struct cliprange_t
{
short first, last; // killough
} cliprange_t;
};
// newend is one past the last valid seg

View file

@ -89,10 +89,11 @@ typedef enum
SS_CMD_END
} sscmds_t;
typedef struct {
struct hexenseq_t
{
ENamedName Name;
BYTE Seqs[4];
} hexenseq_t;
};
class DSeqActorNode : public DSeqNode
{

View file

@ -130,12 +130,12 @@ unsigned int I_MSTime (void);
// Directory searching routines
typedef struct
struct findstate_t
{
int count;
struct dirent **namelist;
int current;
} findstate_t;
};
void *I_FindFirst (const char *filespec, findstate_t *fileinfo);
int I_FindNext (void *handle, findstate_t *fileinfo);

View file

@ -123,10 +123,10 @@ typedef enum
} animenum_t;
typedef struct
struct yahpt_t
{
int x, y;
} yahpt_t;
};
struct lnode_t
{
@ -146,7 +146,7 @@ struct lnode_t
//
#define MAX_ANIMATION_FRAMES 20
typedef struct
struct in_anim_t
{
int type; // Made an int so I can use '|'
int period; // period in tics between animations
@ -162,7 +162,7 @@ typedef struct
char levelname[9];
char levelname2[9];
} in_anim_t;
};
static TArray<lnode_t> lnodes;
static TArray<in_anim_t> anims;

View file

@ -6,5 +6,4 @@ if( WIN32 )
add_subdirectory( fixrtext )
endif( WIN32 )
add_subdirectory( updaterevision )
add_subdirectory( dehsupp )
add_subdirectory( zipdir )

View file

@ -1,24 +0,0 @@
cmake_minimum_required( VERSION 2.4 )
include( CheckFunctionExists )
set( CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D_DEBUG" )
add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/parse.h ${CMAKE_CURRENT_BINARY_DIR}/parse.c
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/parse.y ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_BINARY_DIR}/tools/lemon/lemon parse.y
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
DEPENDS lemon parse.y )
add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/scanner.c
COMMAND ${CMAKE_BINARY_DIR}/tools/re2c/re2c -s -o ${CMAKE_CURRENT_BINARY_DIR}/scanner.c ${CMAKE_CURRENT_SOURCE_DIR}/scanner.re
DEPENDS re2c scanner.re )
include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} )
CHECK_FUNCTION_EXISTS( stricmp STRICMP_EXISTS )
if( NOT STRICMP_EXISTS )
add_definitions( -Dstricmp=strcasecmp )
endif( NOT STRICMP_EXISTS )
add_executable( dehsupp dehsupp.c parse.c scanner.c )
add_dependencies( dehsupp ${CMAKE_CURRENT_BINARY_DIR}/parse.c ${CMAKE_CURRENT_BINARY_DIR}/scanner.c )

View file

@ -1,571 +0,0 @@
#include <malloc.h>
#include <stdlib.h>
#include <search.h>
#include <string.h>
#include <stdio.h>
#include <ctype.h>
#include "dehsupp.h"
FILE *Source, *Dest;
int SourceLine;
int ErrorCount;
struct StringList *NameList, **NameListLast = &NameList;
int NameCount;
name *ActionsList;
unsigned char *HeightsArray;
unsigned char *ActionMap;
unsigned short *CodePMap;
char *SpriteNames;
struct StateMapE *StateMaps;
name *SoundMaps;
name *InfoNamesArray;
struct ThingBitsE *ThingBitsMap;
struct RenderStylesE *RenderStylesMap;
int ActionsListSize, MaxActionsListSize;
int HeightsSize, MaxHeightsSize;
int ActionMapSize, MaxActionMapSize;
int CodePMapSize, MaxCodePMapSize;
int SpriteNamesSize, MaxSpriteNamesSize;
int StateMapsSize, MaxStateMapsSize;
int SoundMapsSize, MaxSoundMapsSize;
int InfoNamesSize, MaxInfoNamesSize;
int ThingBitsMapSize, MaxThingBitsMapSize;
int RenderStylesSize, MaxRenderStylesSize;
int main (int argc, char **argv)
{
if (argc != 3)
{
printf ("Usage: dehsupp <infile> <outfile>\n");
return -1;
}
Source = fopen (argv[1], "r");
if (Source == NULL)
{
printf ("Could not open %s\n", argv[1]);
return -2;
}
#if !defined(NDEBUG) && 0
ParseTrace(fopen("trace.txt", "w"), "");
#endif
SourceLine = 1;
yyparse ();
fclose (Source);
if (ErrorCount)
{
printf ("There were %d errors\n", ErrorCount);
return -3;
}
SortNames ();
Dest = fopen (argv[2], "wb");
if (Dest == NULL)
{
printf ("Could not open %s\n", argv[2]);
return -4;
}
WriteNameTable ();
WriteActions ();
WriteCodePConv ();
WriteSprites ();
WriteSounds ();
WriteInfoNames ();
WriteStates ();
WriteActionMap ();
WriteThingBits ();
WriteRenderStyles ();
WriteHeights ();
WriteLabel ("END ");
fclose (Dest);
return 0;
}
void fail (int code, char *err)
{
fclose (Dest);
printf ("%s\n", err);
exit (code);
}
void *ParseAlloc(void *(*mallocProc)(size_t));
void Parse(void *yyp, int yymajor, struct Token yyminor);
void ParseFree(void *p, void (*freeProc)(void*));
void yyparse (void)
{
Scanner scanner = { Source };
void *pParser = ParseAlloc (malloc);
struct Token token;
int tokentype;
while ((tokentype = lex(&scanner, &token)) != EOI)
{
SourceLine = scanner.line;
Parse (pParser, tokentype, token);
}
memset (&token, 0, sizeof(token));
Parse (pParser, 0, token);
ParseFree (pParser, free);
}
name FindName (char *name)
{
struct StringList *probe = NameList;
int count = 0;
while (probe != NULL)
{
if (stricmp (probe->String, name) == 0)
{
return count;
}
count++;
probe = probe->Next;
}
return -1;
}
name AddName (char *name)
{
struct StringList *newone;
int index = FindName (name);
if (index != -1)
return index;
newone = malloc (sizeof(*newone) + strlen(name));
strcpy (newone->String, name);
newone->Next = NULL;
*NameListLast = newone;
NameListLast = &newone->Next;
return NameCount++;
}
int FindAction (char *namei)
{
int name = FindName (namei);
if (name != -1)
{
int i;
for (i = 0; i < ActionsListSize; i++)
{
if (ActionsList[i] == name)
return i;
}
}
printf ("Line %d: Unknown action %s\n", SourceLine, namei);
ErrorCount++;
return -1;
}
void AddAction (char *name)
{
int newname = AddName (name);
if (ActionsListSize == MaxActionsListSize)
{
MaxActionsListSize = MaxActionsListSize ? MaxActionsListSize * 2 : 256;
ActionsList = realloc (ActionsList, MaxActionsListSize*sizeof(*ActionsList));
}
ActionsList[ActionsListSize++] = newname;
}
void AddHeight (int h)
{
if (MaxHeightsSize == HeightsSize)
{
MaxHeightsSize = MaxHeightsSize ? MaxHeightsSize * 2 : 256;
HeightsArray = realloc (HeightsArray, MaxHeightsSize);
}
HeightsArray[HeightsSize++] = h;
}
void AddActionMap (char *name)
{
int index = FindAction (name);
if (index != -1)
{
if (ActionMapSize == MaxActionMapSize)
{
MaxActionMapSize = MaxActionMapSize ? MaxActionMapSize * 2 : 256;
ActionMap = realloc (ActionMap, MaxActionMapSize*sizeof(*ActionMap));
}
ActionMap[ActionMapSize++] = index;
}
}
void AddCodeP (int codep)
{
if (CodePMapSize == MaxCodePMapSize)
{
MaxCodePMapSize = MaxCodePMapSize ? MaxCodePMapSize * 2 : 256;
CodePMap = realloc (CodePMap, MaxCodePMapSize*sizeof(*CodePMap));
}
CodePMap[CodePMapSize++] = codep;
}
void AddSpriteName (char *name)
{
if (strlen (name) != 4)
{
printf ("Line %d: Sprite name %s must be 4 characters\n", SourceLine, name);
ErrorCount++;
return;
}
if (SpriteNamesSize == MaxSpriteNamesSize)
{
MaxSpriteNamesSize = MaxSpriteNamesSize ? MaxSpriteNamesSize * 2 : 256*4;
SpriteNames = realloc (SpriteNames, MaxSpriteNamesSize*sizeof(*SpriteNames));
}
SpriteNames[SpriteNamesSize+0] = toupper (name[0]);
SpriteNames[SpriteNamesSize+1] = toupper (name[1]);
SpriteNames[SpriteNamesSize+2] = toupper (name[2]);
SpriteNames[SpriteNamesSize+3] = toupper (name[3]);
SpriteNamesSize += 4;
}
void AddSoundMap (char *name)
{
if (SoundMapsSize == MaxSoundMapsSize)
{
MaxSoundMapsSize = MaxSoundMapsSize ? MaxSoundMapsSize * 2 : 256;
SoundMaps = realloc (SoundMaps, MaxSoundMapsSize*sizeof(*SoundMaps));
}
SoundMaps[SoundMapsSize++] = AddName (name);
}
void AddInfoName (char *name)
{
if (InfoNamesSize == MaxInfoNamesSize)
{
MaxInfoNamesSize = MaxInfoNamesSize ? MaxInfoNamesSize * 2 : 256;
InfoNamesArray = realloc (InfoNamesArray, MaxInfoNamesSize*sizeof(*InfoNamesArray));
}
InfoNamesArray[InfoNamesSize++] = AddName (name);
}
void AddStateMap (char *name, int state, int count)
{
if (count == 0)
{
printf ("Line %d: Count is 0. Is this right?\n", SourceLine);
return;
}
if ((unsigned)count > 255)
{
printf ("Line %d: Count must be in the range 1-255\n", SourceLine);
ErrorCount++;
}
if (StateMapsSize == MaxStateMapsSize)
{
MaxStateMapsSize = MaxStateMapsSize ? MaxStateMapsSize*2 : 256;
StateMaps = realloc (StateMaps, MaxStateMapsSize*sizeof(*StateMaps));
}
StateMaps[StateMapsSize].Name = AddName (name);
StateMaps[StateMapsSize].State = state;
StateMaps[StateMapsSize].Count = count;
StateMapsSize++;
}
void AddThingBits (char *name, int bitnum, int flagnum)
{
if ((unsigned)bitnum > 31)
{
printf ("Line %d: Bit %d must be in the range 0-31\n", SourceLine, bitnum);
ErrorCount++;
return;
}
if (MaxThingBitsMapSize == ThingBitsMapSize)
{
MaxThingBitsMapSize = MaxThingBitsMapSize ? MaxThingBitsMapSize*2 : 128;
ThingBitsMap = realloc (ThingBitsMap, MaxThingBitsMapSize*sizeof(*ThingBitsMap));
}
ThingBitsMap[ThingBitsMapSize].Name = AddName (name);
ThingBitsMap[ThingBitsMapSize].BitNum = bitnum;
ThingBitsMap[ThingBitsMapSize].FlagNum = flagnum;
ThingBitsMapSize++;
}
void AddRenderStyle (char *name, int stylenum)
{
if ((unsigned)stylenum > 255)
{
printf ("Line %d: %s must be in the range 0-255\n", SourceLine, name);
ErrorCount++;
return;
}
if (MaxRenderStylesSize == RenderStylesSize)
{
MaxRenderStylesSize = MaxRenderStylesSize ? MaxRenderStylesSize*2 : 16;
RenderStylesMap = realloc (RenderStylesMap, MaxRenderStylesSize*sizeof(*RenderStylesMap));
}
RenderStylesMap[RenderStylesSize].Name = AddName (name);
RenderStylesMap[RenderStylesSize].StyleNum = stylenum;
RenderStylesSize++;
}
int sortfunc (const void *a, const void *b)
{
return stricmp (((struct StringSorter *)a)->Entry->String,
((struct StringSorter *)b)->Entry->String);
}
void SortNames ()
{
name *remap = malloc (NameCount * sizeof(*remap));
struct StringSorter *sorter = malloc (NameCount * sizeof(*sorter));
struct StringList *probe, **prev;
int i;
for (i = 0, probe = NameList; probe != NULL; probe = probe->Next, i++)
{
sorter[i].OldName = i;
sorter[i].Entry = probe;
}
// There are some warnings here, though I have no idea why.
qsort (sorter, NameCount, sizeof(*sorter), sortfunc);
for (i = 0, prev = &NameList; i < NameCount; i++)
{
*prev = sorter[i].Entry;
prev = &sorter[i].Entry->Next;
}
*prev = NULL;
for (i = 0; i < NameCount; i++)
{
remap[sorter[i].OldName] = i;
}
for (i = 0; i < ActionsListSize; i++)
{
ActionsList[i] = remap[ActionsList[i]];
}
for (i = 0; i < SoundMapsSize; i++)
{
SoundMaps[i] = remap[SoundMaps[i]];
}
for (i = 0; i < InfoNamesSize; i++)
{
InfoNamesArray[i] = remap[InfoNamesArray[i]];
}
for (i = 0; i < StateMapsSize; i++)
{
StateMaps[i].Name = remap[StateMaps[i].Name];
}
for (i = 0; i < ThingBitsMapSize; i++)
{
ThingBitsMap[i].Name = remap[ThingBitsMap[i].Name];
}
for (i = 0; i < RenderStylesSize; i++)
{
RenderStylesMap[i].Name = remap[RenderStylesMap[i].Name];
}
}
int yyerror (char *s)
{
printf ("Line %d: %s\n", SourceLine, s);
ErrorCount++;
return 0;
}
void WriteWord (int word)
{
putc (word >> 8, Dest);
putc (word & 255, Dest);
}
void WriteLabel (char *label)
{
fwrite (label, 1, 4, Dest);
}
void WriteWords (int count, short *array)
{
int i;
WriteWord (count);
for (i = 0; i < count; i++)
{
WriteWord (array[i]);
}
}
void WriteBytes (int count, unsigned char *array)
{
WriteWord (count);
fwrite (array, 1, count, Dest);
}
void WriteNameTable ()
{
struct StringList *probe;
int i, size;
WriteLabel ("NAME");
// Count the length of each string, including nulls
for (probe = NameList, size = 0; probe != NULL; probe = probe->Next)
{
size += (int)strlen (probe->String) + 1;
}
if (size == 0)
{
WriteWord (2); // Size of this lump
WriteWord (0); // Number of names
return;
}
size += NameCount*2 + 2;
if (size >= 65536)
{
fail (-5, "Name table is larger than 64K");
}
WriteWord (size); // Size of this lump
WriteWord (NameCount); // Number of names
// Write each name's offset from the first name, which is stored
// immediately after this list
for (i = size = 0, probe = NameList; i < NameCount; i++, probe = probe->Next)
{
WriteWord (size);
size += (int)strlen (probe->String) + 1;
}
// Write each name's string in order now
for (probe = NameList; probe != NULL; probe = probe->Next)
{
fputs (probe->String, Dest);
putc (0, Dest);
}
}
typedef struct
{
name Name;
short Num;
} NameNum;
int sortfunc2 (const void *a, const void *b)
{
return ((NameNum *)a)->Name - ((NameNum *)b)->Name;
}
void WriteActions ()
{
NameNum *sorter = malloc (ActionsListSize * sizeof(*sorter));
int i;
WriteLabel ("ACTF");
WriteWord (ActionsListSize);
for (i = 0; i < ActionsListSize; i++)
{
sorter[i].Name = ActionsList[i];
sorter[i].Num = i;
}
// warnings here. ignore.
qsort (sorter, ActionsListSize, sizeof(*sorter), sortfunc2);
for (i = 0; i < ActionsListSize; i++)
{
WriteWord (sorter[i].Name);
WriteWord (sorter[i].Num);
}
free (sorter);
}
void WriteActionMap ()
{
WriteLabel ("ACTM");
WriteBytes (ActionMapSize, ActionMap);
}
void WriteHeights ()
{
WriteLabel ("HIGH");
WriteBytes (HeightsSize, HeightsArray);
}
void WriteCodePConv ()
{
WriteLabel ("CODP");
WriteWords (CodePMapSize, (short *)CodePMap);
}
void WriteSprites ()
{
WriteLabel ("SPRN");
WriteWord (SpriteNamesSize / 4);
fwrite (SpriteNames, SpriteNamesSize, 1, Dest);
}
void WriteStates ()
{
int i;
WriteLabel ("STAT");
WriteWord (StateMapsSize);
for (i = 0; i < StateMapsSize; i++)
{
WriteWord (StateMaps[i].Name);
putc (StateMaps[i].State, Dest);
putc (StateMaps[i].Count, Dest);
}
}
void WriteSounds ()
{
WriteLabel ("SND ");
WriteWords (SoundMapsSize, SoundMaps);
}
void WriteInfoNames ()
{
WriteLabel ("INFN");
WriteWords (InfoNamesSize, InfoNamesArray);
}
int sortfunc3 (const void *a, const void *b)
{
return ((struct ThingBitsE *)a)->Name - ((struct ThingBitsE *)b)->Name;
}
void WriteThingBits ()
{
int i;
WriteLabel ("TBIT");
WriteWord (ThingBitsMapSize);
// warnings here; ignore them
qsort (ThingBitsMap, ThingBitsMapSize, sizeof(*ThingBitsMap), sortfunc3);
for (i = 0; i < ThingBitsMapSize; i++)
{
WriteWord (ThingBitsMap[i].Name);
putc (ThingBitsMap[i].BitNum | (ThingBitsMap[i].FlagNum<<5), Dest);
}
}
int sortfunc4 (const void *a, const void *b)
{
return ((struct RenderStylesE *)a)->Name - ((struct RenderStylesE *)b)->Name;
}
void WriteRenderStyles ()
{
int i;
WriteLabel ("REND");
WriteWord (RenderStylesSize);
// More warnings; ignore
qsort (RenderStylesMap, RenderStylesSize, sizeof(*RenderStylesMap), sortfunc4);
for (i = 0; i < RenderStylesSize; i++)
{
WriteWord (RenderStylesMap[i].Name);
putc (RenderStylesMap[i].StyleNum, Dest);
}
}

View file

@ -1,124 +0,0 @@
#include <stdio.h>
#include "parse.h"
typedef enum { false, true } bool;
typedef short name;
typedef unsigned char uchar;
typedef unsigned int uint;
typedef struct Scanner {
FILE *fd;
uchar *bot, *tok, *ptr, *cur, *pos, *lim, *top, *eof;
uint line;
} Scanner;
struct Token
{
int val;
char *string;
};
int lex(Scanner *s, struct Token *tok);
int yyerror (char *s);
void yyparse (void);
extern FILE *Source, *Dest;
extern int SourceLine;
extern int ErrorCount;
void WriteWord (int word);
void WriteLabel (char *label);
void WriteWords (int count, short *array);
void WriteBytes (int count, unsigned char *array);
void WriteNameTable ();
void WriteActions ();
void WriteActionMap ();
void WriteHeights ();
void WriteCodePConv ();
void WriteSprites ();
void WriteStates ();
void WriteSounds ();
void WriteInfoNames ();
void WriteThingBits ();
void WriteRenderStyles ();
struct StringList
{
struct StringList *Next;
char String[1];
};
struct StringSorter
{
name OldName;
struct StringList *Entry;
};
extern struct StringList *NameList, **NameListLast;
extern int NameCount;
name AddName (char *name);
name FindName (char *name);
void SortNames ();
struct StateMapE
{
name Name;
unsigned char State;
unsigned char Count;
};
struct ThingBitsE
{
name Name;
unsigned char BitNum;
unsigned char FlagNum;
};
struct RenderStylesE
{
name Name;
unsigned char StyleNum;
};
void AddAction (char *name);
int FindAction (char *name);
extern name *ActionsList;
extern unsigned char *HeightsArray;
extern unsigned char *ActionMap;
extern unsigned short *CodePMap;
extern char *SpriteNames;
extern struct StateMapE *StateMaps;
extern name *SoundMaps;
extern name *InfoNamesArray;
extern struct ThingBitsE *ThingBitsMap;
extern struct RenderStylesE *RenderStylesMap;
extern int ActionsListSize, MaxActionsListSize;
extern int HeightsSize, MaxHeightsSize;
extern int ActionMapSize, MaxActionMapSize;
extern int CodePMapSize, MaxCodePMapSize;
extern int SpriteNamesSize, MaxSpriteNamesSize;
extern int StateMapsSize, MaxStateMapsSize;
extern int SoundMapsSize, MaxSoundMapsSize;
extern int InfoNamesSize, MaxInfoNamesSize;
extern int ThingBitsMapSize, MaxThingBitsMapSize;
extern int RenderStylesSize, MaxRenderStylesSize;
void AddHeight (int h);
void AddActionMap (char *name);
void AddCodeP (int codep);
void AddSpriteName (char *name);
void AddStateMap (char *name, int type, int count);
void AddSoundMap (char *sound);
void AddInfoName (char *sound);
void AddThingBits (char *name, int bitnum, int flagnum);
void AddRenderStyle (char *name, int stylenum);

View file

@ -1,469 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="dehsupp"
ProjectGUID="{AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}"
RootNamespace="dehsupp"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;__STDC__=0"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
DisableSpecificWarnings="4996"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="$(OutDir)/dehsupp.exe"
LinkIncremental="2"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)/dehsupp.pdb"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="copy &quot;$(TargetPath)&quot; &quot;$(ProjectDir)\$(TargetFileName)&quot;"
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
DisableSpecificWarnings="4996"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="$(OutDir)/dehsupp.exe"
LinkIncremental="2"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)/dehsupp.pdb"
SubSystem="1"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="copy &quot;$(TargetPath)&quot; &quot;$(ProjectDir)\$(TargetFileName)&quot;"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="1"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
DisableSpecificWarnings="4996"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="$(OutDir)/dehsupp.exe"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="copy &quot;$(TargetPath)&quot; &quot;$(ProjectDir)\$(TargetFileName)&quot;"
/>
</Configuration>
<Configuration
Name="Release|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="1"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
DisableSpecificWarnings="4996"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="$(OutDir)/dehsupp.exe"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="copy &quot;$(TargetPath)&quot; &quot;$(ProjectDir)\$(TargetFileName)&quot;"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<File
RelativePath=".\CMakeLists.txt"
>
</File>
<File
RelativePath=".\dehsupp.c"
>
</File>
<File
RelativePath=".\dehsupp.h"
>
</File>
<File
RelativePath=".\parse.c"
>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\$(InputName)1.obj"
XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc"
/>
</FileConfiguration>
</File>
<File
RelativePath=".\parse.h"
>
</File>
<File
RelativePath=".\parse.y"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Creating parse.c from parse.y"
CommandLine="..\lemon\lemon.exe -s &quot;$(InputFileName)&quot;&#x0D;&#x0A;"
Outputs="$(InputDir)parse.c;$(InputDir)parse.h"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCCustomBuildTool"
Description="Creating parse.c from parse.y"
CommandLine="..\lemon\lemon.exe -s &quot;$(InputFileName)&quot;&#x0D;&#x0A;"
Outputs="$(InputDir)parse.c"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Creating parse.c from parse.y"
CommandLine="..\lemon\lemon.exe -s &quot;$(InputFileName)&quot;&#x0D;&#x0A;"
Outputs="$(InputDir)parse.c;$(InputDir)parse.h"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCustomBuildTool"
Description="Creating parse.c from parse.y"
CommandLine="..\lemon\lemon.exe -s &quot;$(InputFileName)&quot;&#x0D;&#x0A;"
Outputs="$(InputDir)parse.c"
/>
</FileConfiguration>
</File>
<File
RelativePath=".\scanner.c"
>
</File>
<File
RelativePath=".\scanner.re"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Creating scanner.c from scanner.re"
CommandLine="..\re2c\re2c -s --no-generation-date -o &quot;scanner.c&quot; &quot;$(InputFileName)&quot;&#x0D;&#x0A;"
Outputs="$(InputDir)scanner.c"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCCustomBuildTool"
Description="Creating scanner.c from scanner.re"
CommandLine="..\re2c\re2c -s -o &quot;scanner.c&quot; &quot;$(InputFileName)&quot;&#x0D;&#x0A;"
Outputs="$(InputDir)scanner.c"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Creating scanner.c from scanner.re"
CommandLine="..\re2c\re2c -s --no-generation-date -o &quot;scanner.c&quot; &quot;$(InputFileName)&quot;&#x0D;&#x0A;"
Outputs="$(InputDir)scanner.c"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCustomBuildTool"
Description="Creating scanner.c from scanner.re"
CommandLine="..\re2c\re2c -s -o &quot;scanner.c&quot; &quot;$(InputFileName)&quot;&#x0D;&#x0A;"
Outputs="$(InputDir)scanner.c"
/>
</FileConfiguration>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

File diff suppressed because it is too large Load diff

View file

@ -1,33 +0,0 @@
#define OR 1
#define XOR 2
#define AND 3
#define MINUS 4
#define PLUS 5
#define MULTIPLY 6
#define DIVIDE 7
#define NEG 8
#define EOI 9
#define PRINT 10
#define LPAREN 11
#define RPAREN 12
#define COMMA 13
#define STRING 14
#define ENDL 15
#define NUM 16
#define Actions 17
#define LBRACE 18
#define RBRACE 19
#define SEMICOLON 20
#define SYM 21
#define OrgHeights 22
#define ActionList 23
#define CodePConv 24
#define OrgSprNames 25
#define StateMap 26
#define FirstState 27
#define SpawnState 28
#define DeathState 29
#define SoundMap 30
#define InfoNames 31
#define ThingBits 32
#define RenderStyles 33

View file

@ -1,152 +0,0 @@
%include{
#include <malloc.h>
#include "dehsupp.h"
}
%token_type {struct Token}
%syntax_error { yyerror("Syntax error"); }
%token_destructor { if ($$.string) free($$.string); }
%left OR.
%left XOR.
%left AND.
%left MINUS PLUS.
%left MULTIPLY DIVIDE.
%left NEG.
%left EOI.
main ::= translation_unit.
translation_unit ::= . /* empty */
translation_unit ::= translation_unit external_declaration.
external_declaration ::= print_statement.
external_declaration ::= actions_def.
external_declaration ::= org_heights_def.
external_declaration ::= action_list_def.
external_declaration ::= codep_conv_def.
external_declaration ::= org_spr_names_def.
external_declaration ::= state_map_def.
external_declaration ::= sound_map_def.
external_declaration ::= info_names_def.
external_declaration ::= thing_bits_def.
external_declaration ::= render_styles_def.
print_statement ::= PRINT LPAREN print_list RPAREN.
{
printf ("\n");
}
print_list ::= . /* EMPTY */
print_list ::= print_item.
print_list ::= print_item COMMA print_list.
print_item ::= STRING(A). { printf ("%s", A.string); }
print_item ::= exp(A). { printf ("%d", A); }
print_item ::= ENDL. { printf ("\n"); }
%type exp {int}
exp(A) ::= NUM(B). { A = B.val; }
exp(A) ::= exp(B) PLUS exp(C). { A = B + C; }
exp(A) ::= exp(B) MINUS exp(C). { A = B - C; }
exp(A) ::= exp(B) MULTIPLY exp(C). { A = B * C; }
exp(A) ::= exp(B) DIVIDE exp(C). { A = B / C; }
exp(A) ::= exp(B) OR exp(C). { A = B | C; }
exp(A) ::= exp(B) AND exp(C). { A = B & C; }
exp(A) ::= exp(B) XOR exp(C). { A = B ^ C; }
exp(A) ::= MINUS exp(B). [NEG] { A = -B; }
exp(A) ::= LPAREN exp(B) RPAREN. { A = B; }
actions_def ::= Actions LBRACE actions_list RBRACE SEMICOLON.
actions_def ::= Actions LBRACE error RBRACE SEMICOLON.
actions_list ::= . /* empty */
actions_list ::= SYM(A). { AddAction (A.string); }
actions_list ::= actions_list COMMA SYM(A). { AddAction (A.string); }
org_heights_def ::= OrgHeights LBRACE org_heights_list RBRACE SEMICOLON.
org_heights_def ::= OrgHeights LBRACE error RBRACE SEMICOLON.
org_heights_list ::= . /* empty */
org_heights_list ::= exp(A). { AddHeight (A); }
org_heights_list ::= org_heights_list COMMA exp(A). { AddHeight (A); }
action_list_def ::= ActionList LBRACE action_list_list RBRACE SEMICOLON.
action_list_def ::= ActionList LBRACE error RBRACE SEMICOLON.
action_list_list ::= . /* empty */
action_list_list ::= SYM(A). { AddActionMap (A.string); }
action_list_list ::= action_list_list COMMA SYM(A). { AddActionMap (A.string); }
codep_conv_def ::= CodePConv LBRACE codep_conv_list RBRACE SEMICOLON.
codep_conv_def ::= CodePConv LBRACE error RBRACE SEMICOLON.
codep_conv_list ::= . /* empty */
codep_conv_list ::= exp(A). { AddCodeP (A); }
codep_conv_list ::= codep_conv_list COMMA exp(A). { AddCodeP (A); }
org_spr_names_def ::= OrgSprNames LBRACE org_spr_names_list RBRACE SEMICOLON.
org_spr_names_def ::= OrgSprNames LBRACE error RBRACE SEMICOLON.
org_spr_names_list ::= . /* empty */
org_spr_names_list ::= SYM(A). { AddSpriteName (A.string); }
org_spr_names_list ::= org_spr_names_list COMMA SYM(A). { AddSpriteName (A.string); }
state_map_def ::= StateMap LBRACE state_map_list RBRACE SEMICOLON.
state_map_def ::= StateMap LBRACE error RBRACE SEMICOLON.
state_map_list ::= . /* empty */
state_map_list ::= state_map_entry.
state_map_list ::= state_map_list COMMA state_map_entry.
state_map_entry ::= SYM(A) COMMA state_type(B) COMMA exp(C). { AddStateMap (A.string, B, C); }
%type state_type {int}
state_type(A) ::= FirstState. { A = 0; }
state_type(A) ::= SpawnState. { A = 1; }
state_type(A) ::= DeathState. { A = 2; }
sound_map_def ::= SoundMap LBRACE sound_map_list RBRACE SEMICOLON.
sound_map_def ::= SoundMap LBRACE error RBRACE SEMICOLON.
sound_map_list ::= . /* empty */
sound_map_list ::= STRING(A). { AddSoundMap (A.string); }
sound_map_list ::= sound_map_list COMMA STRING(A). { AddSoundMap (A.string); }
info_names_def ::= InfoNames LBRACE info_names_list RBRACE SEMICOLON.
info_names_def ::= InfoNames LBRACE error RBRACE SEMICOLON.
info_names_list ::= . /* empty */
info_names_list ::= SYM(A). { AddInfoName (A.string); }
info_names_list ::= info_names_list COMMA SYM(A). { AddInfoName (A.string); }
thing_bits_def ::= ThingBits LBRACE thing_bits_list RBRACE SEMICOLON.
thing_bits_def ::= ThingBits LBRACE error RBRACE SEMICOLON.
thing_bits_list ::= . /* empty */
thing_bits_list ::= thing_bits_entry.
thing_bits_list ::= thing_bits_list COMMA thing_bits_entry.
thing_bits_entry ::= exp(A) COMMA exp(B) COMMA SYM(C). { AddThingBits (C.string, A, B); }
render_styles_def ::= RenderStyles LBRACE render_styles_list RBRACE SEMICOLON.
render_styles_def ::= RenderStyles LBRACE error RBRACE SEMICOLON.
render_styles_list ::= . /* empty */
render_styles_list ::= render_styles_entry.
render_styles_list ::= render_styles_list COMMA render_styles_entry.
render_styles_entry ::= exp(A) COMMA SYM(B). { AddRenderStyle (B.string, A); }

File diff suppressed because it is too large Load diff

View file

@ -1,179 +0,0 @@
#include <string.h>
#include <malloc.h>
#include <stdlib.h>
#include "dehsupp.h"
#define BSIZE 8192
#define YYCTYPE uchar
#define YYCURSOR cursor
#define YYLIMIT s->lim
#define YYMARKER s->ptr
#define YYFILL(n) {cursor = fill(s, cursor);}
#define RET(i) {s->cur = cursor; return i;}
uchar *fill(Scanner *s, uchar *cursor)
{
if(!s->eof)
{
ptrdiff_t cnt = s->tok - s->bot;
if(cnt)
{
memcpy(s->bot, s->tok, s->lim - s->tok);
s->tok = s->bot;
s->ptr -= cnt;
cursor -= cnt;
s->pos -= cnt;
s->lim -= cnt;
}
if((s->top - s->lim) < BSIZE)
{
uchar *buf = (uchar*) malloc(((s->lim - s->bot) + BSIZE)*sizeof(uchar));
memcpy(buf, s->tok, s->lim - s->tok);
s->tok = buf;
s->ptr = &buf[s->ptr - s->bot];
cursor = &buf[cursor - s->bot];
s->pos = &buf[s->pos - s->bot];
s->lim = &buf[s->lim - s->bot];
s->top = &s->lim[BSIZE];
free(s->bot);
s->bot = buf;
}
if((cnt = fread((char*) s->lim, 1, BSIZE, s->fd)) != BSIZE)
{
s->eof = &s->lim[cnt]; *(s->eof)++ = '\n';
}
s->lim += cnt;
}
return cursor;
}
int scan(Scanner *s)
{
uchar *cursor = s->cur;
std:
s->tok = cursor;
/*!re2c
any = [\000-\377];
O = [0-7];
D = [0-9];
L = [a-zA-Z_];
H = [a-fA-F0-9];
ESC = [\\] ([abfnrtv?'"\\] | "x" H+ | O+);
*/
/*!re2c
"/*" { goto comment; } /* C comment */
"//" (any\"\n")* "\n" /* C++ comment */
{
if(cursor == s->eof) RET(EOI);
s->tok = s->pos = cursor; s->line++;
goto std;
}
"endl" { RET(ENDL); }
"print" { RET(PRINT); }
"Actions" { RET(Actions); }
"OrgHeights" { RET(OrgHeights); }
"ActionList" { RET(ActionList); }
"CodePConv" { RET(CodePConv); }
"OrgSprNames" { RET(OrgSprNames); }
"StateMap" { RET(StateMap); }
"SoundMap" { RET(SoundMap); }
"InfoNames" { RET(InfoNames); }
"ThingBits" { RET(ThingBits); }
"DeathState" { RET(DeathState); }
"SpawnState" { RET(SpawnState); }
"FirstState" { RET(FirstState); }
"RenderStyles" { RET(RenderStyles); }
L (L|D)* { RET(SYM); }
("0" [xX] H+) | ("0" D+) | (D+)
{ RET(NUM); }
(["] (ESC|any\[\n\\"])* ["])
{ RET(STRING); }
[ \t\v\f]+ { goto std; }
"|" { RET(OR); }
"^" { RET(XOR); }
"&" { RET(AND); }
"-" { RET(MINUS); }
"+" { RET(PLUS); }
"*" { RET(MULTIPLY); }
"/" { RET(DIVIDE); }
"(" { RET(LPAREN); }
")" { RET(RPAREN); }
"," { RET(COMMA); }
"{" { RET(LBRACE); }
"}" { RET(RBRACE); }
";" { RET(SEMICOLON); }
"\n"
{
if(cursor == s->eof) RET(EOI);
s->pos = cursor; s->line++;
goto std;
}
any
{
if (*s->tok != '\r')
{
printf("unexpected character: %c (%#02x)\n", *s->tok, *s->tok);
}
goto std;
}
*/
comment:
/*!re2c
"*/" { goto std; }
"\n"
{
if(cursor == s->eof) RET(EOI);
s->tok = s->pos = cursor; s->line++;
goto comment;
}
any { goto comment; }
*/
}
int lex(Scanner *s, struct Token *tok)
{
int tokentype = scan(s);
char *p, *q;
tok->val = 0;
tok->string = NULL;
switch (tokentype)
{
case NUM:
tok->val = strtol((char *)s->tok, NULL, 0);
break;
case STRING:
tok->string = (char *)malloc(s->cur - s->tok - 1);
strncpy(tok->string, (char *)s->tok + 1, s->cur - s->tok - 2);
tok->string[s->cur - s->tok - 2] = '\0';
for (p = q = tok->string; *p; ++p, ++q)
{
if (p[0] == '\\' && p[1] == '\\')
++p;
*q = *p;
}
break;
case SYM:
tok->string = (char *)malloc(s->cur - s->tok + 1);
strncpy(tok->string, (char *)s->tok, s->cur - s->tok);
tok->string[s->cur - s->tok] = '\0';
break;
}
return tokentype;
}

View file

@ -1,13 +1,9 @@
cmake_minimum_required( VERSION 2.4 )
add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/generated/dehsupp.lmp
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/generated
COMMAND ${CMAKE_BINARY_DIR}/tools/dehsupp/dehsupp ${CMAKE_CURRENT_SOURCE_DIR}/sources/dehsupp.txt ${CMAKE_CURRENT_BINARY_DIR}/generated/dehsupp.lmp
DEPENDS dehsupp ${CMAKE_CURRENT_SOURCE_DIR}/sources/dehsupp.txt )
add_custom_command( OUTPUT ${ZDOOM_OUTPUT_DIR}/zdoom.pk3
COMMAND ${CMAKE_BINARY_DIR}/tools/zipdir/zipdir -uf ${ZDOOM_OUTPUT_DIR}/zdoom.pk3 ${CMAKE_CURRENT_SOURCE_DIR}/static ${CMAKE_CURRENT_BINARY_DIR}/generated
DEPENDS zipdir ${CMAKE_CURRENT_BINARY_DIR}/generated/dehsupp.lmp ${CMAKE_CURRENT_SOURCE_DIR}/static )
DEPENDS zipdir ${CMAKE_CURRENT_SOURCE_DIR}/static )
add_custom_target( pk3 ALL
DEPENDS ${ZDOOM_OUTPUT_DIR}/zdoom.pk3 )

Binary file not shown.

View file

@ -781,3 +781,20 @@ ACTOR BrainStem 81
}
}
// Grey stalagmite (unused Doom sprite, definition taken from Skulltag -----
ACTOR Stalagmite 5050
{
Game Doom
Radius 16
Height 48
+SOLID
States
{
Spawn:
SMT2 A -1
Stop
}
}

View file

@ -69,9 +69,10 @@ ACTOR DoomUnusedStates
{
States
{
Label1:
SMT2 A -1
stop
Death:
Label2:
PLAY N -1
stop
PLAY S -1

View file

@ -44,14 +44,18 @@ ACTOR DoomPlayer : PlayerPawn
PLAY G 4 A_Pain
Goto Spawn
Death:
PLAY H 10 A_PlayerSkinCheck("AltSkinDeath")
PLAY H 0 A_PlayerSkinCheck("AltSkinDeath")
Death1:
PLAY H 10
PLAY I 10 A_PlayerScream
PLAY J 10 A_NoBlocking
PLAY KLM 10
PLAY N -1
Stop
XDeath:
PLAY O 5 A_PlayerSkinCheck("AltSkinXDeath")
PLAY O 0 A_PlayerSkinCheck("AltSkinXDeath")
XDeath1:
PLAY O 5
PLAY P 5 A_XScream
PLAY Q 5 A_NoBlocking
PLAY RSTUV 5

View file

@ -1,107 +1,3 @@
Actions
{
NULL,
MonsterRail,
FireRailgun,
FireRailgunLeft,
FireRailgunRight,
RailWait,
Light0,
WeaponReady,
Lower,
Raise,
Punch,
ReFire,
FirePistol,
Light1,
FireShotgun,
Light2,
FireShotgun2,
CheckReload,
OpenShotgun2,
LoadShotgun2,
CloseShotgun2,
FireCGun,
GunFlash,
FireMissile,
Saw,
FirePlasma,
BFGsound,
FireBFG,
BFGSpray,
Explode,
Pain,
PlayerScream,
Fall,
XScream,
Look,
Chase,
FaceTarget,
PosAttack,
Scream,
SPosAttack,
VileChase,
VileStart,
VileTarget,
VileAttack,
StartFire,
Fire,
FireCrackle,
Tracer,
SkelWhoosh,
SkelFist,
SkelMissile,
FatRaise,
FatAttack1,
FatAttack2,
FatAttack3,
BossDeath,
CPosAttack,
CPosRefire,
TroopAttack,
SargAttack,
HeadAttack,
BruisAttack,
SkullAttack,
Metal,
SpidRefire,
BabyMetal,
BspiAttack,
Hoof,
CyberAttack,
PainAttack,
PainDie,
KeenDie,
BrainPain,
BrainScream,
BrainDie,
BrainAwake,
BrainSpit,
SpawnSound,
SpawnFly,
BrainExplode,
Die,
Detonate,
Mushroom,
// Additional stuff
SetFloorClip,
UnSetFloorClip,
HideThing,
UnHideThing,
SetInvulnerable,
UnSetInvulnerable,
SetReflective,
UnSetReflective,
SetReflectiveInvulnerable,
UnSetReflectiveInvulnerable,
SetShootable,
UnSetShootable,
NoGravity,
Gravity,
LowGravity
};
OrgHeights
{
56, 56, 56, 56, 16, 56, 8, 16, 64, 8, 56, 56,
@ -329,140 +225,142 @@ OrgSprNames
StateMap
{
// S_NULL is implicit
Weapon, FirstState, 1, // S_LIGHTDONE
Fist, FirstState, 8, // S_PUNCH - S_PUNCH5
Pistol, FirstState, 8, // S_PISTOL - S_PISTOLFLASH
Shotgun, FirstState, 14, // S_SGUN - S_SGUNFLASH2
SuperShotgun, FirstState, 17, // S_DSGUN - S_DSGUNFLASH2
Chaingun, FirstState, 8, // S_CHAIN - S_CHAINFLASH2
RocketLauncher, FirstState, 10, // S_MISSILE - S_MISSILEFLASH4
Chainsaw, FirstState, 7, // S_SAW - S_SAW3
PlasmaRifle, FirstState, 7, // S_PLASMA - S_PLASMAFLASH2
BFG9000, FirstState, 9, // S_BFG - S_BFGFLASH2
Blood, FirstState, 3, // S_BLOOD1 - S_BLOOD3
BulletPuff, FirstState, 4, // S_PUFF1 - S_PUFF4
DoomImpBall, FirstState, 5, // S_TBALL1 - S_TBALLX3
CacodemonBall, FirstState, 5, // S_RBALL1 - S_RBALLX3
PlasmaBall, FirstState, 7, // S_PLASBALL - S_PLASEXP5
Rocket, SpawnState, 1, // S_ROCKET
BFGBall, SpawnState, 8, // S_BFGSHOT - S_BFGLAND6
BFGExtra, SpawnState, 4, // S_BFGEXP - S_BFGEXP4
Rocket, DeathState, 3, // S_EXPLODE1 - S_EXPLODE3
TeleportFog, SpawnState, 12, // S_TFOG - S_TFOG10
ItemFog, SpawnState, 7, // S_IFOG - S_IFOG5
DoomPlayer, FirstState, 25, // S_PLAY - S_PLAY_XDIE9
ZombieMan, FirstState, 33, // S_POSS_STND - S_POSS_RAISE4
ShotgunGuy, FirstState, 34, // S_SPOS_STND - S_SPOS_RAISE5
Archvile, FirstState, 40, // S_VILE_STND - S_VILE_DIE10
ArchvileFire, FirstState, 30, // S_FIRE1 - S_FIRE30
RevenantTracerSmoke, FirstState, 5, // S_SMOKE1 - S_SMOKE5
RevenantTracer, FirstState, 5, // S_TRACER - S_TRACEEXP3
Revenant, FirstState, 36, // S_SKEL_STND - S_SKEL_RAISE6
FatShot, FirstState, 5, // S_FATSHOT1 - S_FATSHOTX3
Fatso, FirstState, 44, // S_FATT_STND - S_FATT_RAISE8
ChaingunGuy, FirstState, 36, // S_CPOS_STND - S_CPOS_RAISE7
DoomImp, FirstState, 33, // S_TROO_STND - S_TROO_RAISE5
Demon, FirstState, 27, // S_SARG_STND - S_SARG_RAISE6
Cacodemon, FirstState, 20, // S_HEAD_STND - S_HEAD_RAISE6
BaronBall, FirstState, 5, // S_BRBALL1 - S_BRBALLX3
BaronOfHell, FirstState, 29, // S_BOSS_STND - S_BOSS_RAISE7
HellKnight, FirstState, 29, // S_BOS2_STND - S_BOS2_RAISE7
LostSoul, FirstState, 16, // S_SKULL_STND - S_SKULL_DIE6
SpiderMastermind, FirstState, 31, // S_SPID_STND - S_SPID_DIE11
Arachnotron, FirstState, 35, // S_BSPI_STND - S_BSPI_RAISE7
ArachnotronPlasma, FirstState, 7, // S_ARACH_PLAZ - S_ARACH_PLEX5
Cyberdemon, FirstState, 27, // S_CYBER_STND - S_CYBER_DIE10
PainElemental, FirstState, 25, // S_PAIN_STND - S_PAIN_RAISE6
WolfensteinSS, FirstState, 37, // S_SSWV_STND - S_SSWV_RAISE5
CommanderKeen, FirstState, 15, // S_KEENSTND - S_KEENPAIN2
BossBrain, SpawnState, 6, // S_BRAIN - S_BRAIN_DIE4
BossEye, FirstState, 3, // S_BRAINEYE - S_BRAINEYE1
SpawnShot, FirstState, 4, // S_SPAWN1 - S_SPAWN4
SpawnFire, FirstState, 8, // S_SPAWNFIRE1 - S_SPAWNFIRE8
BossBrain, FirstState, 3, // S_BRAINEXPLODE1 - S_BRAINEXPLODE3
GreenArmor, FirstState, 2, // S_ARM1 - S_ARM1A
BlueArmor, FirstState, 2, // S_ARM2 - S_ARM2A
ExplosiveBarrel, FirstState, 7, // S_BAR1 - S_BEXP5
BurningBarrel, FirstState, 3, // S_BBAR1 - S_BBAR3
HealthBonus, FirstState, 6, // S_BON1 - S_BON1E
ArmorBonus, FirstState, 6, // S_BON2 - S_BON2E
BlueCard, FirstState, 2, // S_BKEY - S_BKEY2
RedCard, FirstState, 2, // S_RKEY - S_RKEY2
YellowCard, FirstState, 2, // S_YKEY - S_YKEY2
BlueSkull, FirstState, 2, // S_BSKULL - S_BSKULL2
RedSkull, FirstState, 2, // S_RSKULL - S_RSKULL2
YellowSkull, FirstState, 2, // S_YSKULL - S_YSKULL2
Stimpack, FirstState, 1, // S_STIM
Medikit, FirstState, 1, // S_MEDI
Soulsphere, FirstState, 6, // S_SOUL - S_SOUL6
InvulnerabilitySphere, FirstState, 4, // S_PINV - S_PINV4
Berserk, FirstState, 1, // S_PSTR
BlurSphere, FirstState, 4, // S_PINS - P_PINS4
Megasphere, FirstState, 4, // S_MEGA - S_MEGA4
RadSuit, FirstState, 1, // S_SUIT
Allmap, FirstState, 6, // S_PMAP - S_PMAP6
Infrared, FirstState, 2, // S_PVIS - S_PVIS2
Clip, FirstState, 1, // S_CLIP
ClipBox, FirstState, 1, // S_AMMO
RocketAmmo, FirstState, 1, // S_ROCK
RocketBox, FirstState, 1, // S_BROK
Cell, FirstState, 1, // S_CELL
CellPack, FirstState, 1, // S_CELP
Shell, FirstState, 1, // S_SHEL
ShellBox, FirstState, 1, // S_SBOX
Backpack, FirstState, 1, // S_BPAK
BFG9000, SpawnState, 1, // S_BFUG
Chaingun, SpawnState, 1, // S_MGUN
Chainsaw, SpawnState, 1, // S_CSAW
RocketLauncher, SpawnState, 1, // S_LAUN
PlasmaRifle, SpawnState, 1, // S_PLAS
Shotgun, SpawnState, 1, // S_SHOT
SuperShotgun, SpawnState, 1, // S_SHOT2
Column, FirstState, 1, // S_COLU
DoomUnusedStates, FirstState, 1, // S_STALAG
BloodyTwitch, FirstState, 4, // S_BLOODYTWITCH - S_BLOODYTWITCH4
DoomUnusedStates, DeathState, 2, // S_DEADTORSO - S_DEADBOTTOM
HeadsOnAStick, FirstState, 1, // S_HEADSONSTICK
RealGibs, FirstState, 1, // S_GIBS
HeadOnAStick, FirstState, 1, // S_HEADONASTICK
HeadCandles, FirstState, 2, // S_HEADCANDLES - S_HEADCANDLES2
DeadStick, FirstState, 1, // S_DEADSTICK
LiveStick, FirstState, 2, // S_LIVESTICK
Meat2, FirstState, 1, // S_MEAT2
Meat3, FirstState, 1, // S_MEAT3
Meat4, FirstState, 1, // S_MEAT4
Meat5, FirstState, 1, // S_MEAT5
Stalagtite, FirstState, 1, // S_STALAGTITE
TallGreenColumn, FirstState, 1, // S_TALLGRNCOL
ShortGreenColumn, FirstState, 1, // S_SHRTGRNCOL
TallRedColumn, FirstState, 1, // S_TALLREDCOL
ShortRedColumn, FirstState, 1, // S_SHRTREDCOL
Candlestick, FirstState, 1, // S_CANDLESTIK
Candelabra, FirstState, 1, // S_CANDELABRA
SkullColumn, FirstState, 1, // S_SKULLCOL
TorchTree, FirstState, 1, // S_TORCHTREE
BigTree, FirstState, 1, // S_BIGTREE
TechPillar, FirstState, 1, // S_TECHPILLAR
EvilEye, FirstState, 4, // S_EVILEYE - S_EVILEYE4
FloatingSkull, FirstState, 3, // S_FLOATSKULL - S_FLOATSKULL3
HeartColumn, FirstState, 2, // S_HEARTCOL - S_HEARTCOL2
BlueTorch, FirstState, 4, // S_BLUETORCH - S_BLUETORCH4
GreenTorch, FirstState, 4, // S_GREENTORCH - S_GREENTORCH4
RedTorch, FirstState, 4, // S_REDTORCH - S_REDTORCH4
ShortBlueTorch, FirstState, 4, // S_BTORCHSHRT - S_BTORCHSHRT4
ShortGreenTorch, FirstState, 4, // S_GTORCHSHRT - S_GTORCHSHRT4
ShortRedTorch, FirstState, 4, // S_RTORCHSHRT - S_RTORCHSHRT4
HangNoGuts, FirstState, 1, // S_HANGNOGUTS
HangBNoBrain, FirstState, 1, // S_HANGBNOBRAIN
HangTLookingDown, FirstState, 1, // S_HANGTLOOKDN
HangTSkull, FirstState, 1, // S_HANGTSKULL
HangTLookingUp, FirstState, 1, // S_HANGTLOOKUP
HangTNoBrain, FirstState, 1, // S_HANGTNOBRAIN
ColonGibs, FirstState, 1, // S_COLONGIBS
SmallBloodPool, FirstState, 1, // S_SMALLPOOL
BrainStem, FirstState, 1, // S_BRAINSTEM
TechLamp, FirstState, 4, // S_TECHLAMP - S_TECHLAMP4
TechLamp2, FirstState, 4 // S_TECH2LAMP - S_TECH2LAMP4
Weapon, LightDone, 1, // S_LIGHTDONE
Fist, Ready, 8, // S_PUNCH - S_PUNCH5
Pistol, Ready, 8, // S_PISTOL - S_PISTOLFLASH
Shotgun, Ready, 14, // S_SGUN - S_SGUNFLASH2
SuperShotgun, Ready, 17, // S_DSGUN - S_DSGUNFLASH2
Chaingun, Ready, 8, // S_CHAIN - S_CHAINFLASH2
RocketLauncher, Ready, 10, // S_MISSILE - S_MISSILEFLASH4
Chainsaw, Ready, 7, // S_SAW - S_SAW3
PlasmaRifle, Ready, 7, // S_PLASMA - S_PLASMAFLASH2
BFG9000, Ready, 9, // S_BFG - S_BFGFLASH2
Blood, Spawn, 3, // S_BLOOD1 - S_BLOOD3
BulletPuff, Spawn, 4, // S_PUFF1 - S_PUFF4
DoomImpBall, Spawn, 5, // S_TBALL1 - S_TBALLX3
CacodemonBall, Spawn, 5, // S_RBALL1 - S_RBALLX3
PlasmaBall, Spawn, 7, // S_PLASBALL - S_PLASEXP5
Rocket, Spawn, 1, // S_ROCKET
BFGBall, Spawn, 8, // S_BFGSHOT - S_BFGLAND6
BFGExtra, Spawn, 4, // S_BFGEXP - S_BFGEXP4
Rocket, Death, 3, // S_EXPLODE1 - S_EXPLODE3
TeleportFog, Spawn, 12, // S_TFOG - S_TFOG10
ItemFog, Spawn, 7, // S_IFOG - S_IFOG5
DoomPlayer, Spawn, 9, // S_PLAY - S_PLAY_PAIN2
DoomPlayer, Death1, 7, // S_PLAY_DIE - S_PLAY_DIE7
DoomPlayer, XDeath1, 9, // S_PLAY_XDIE - S_PLAY_XDIE9
ZombieMan, Spawn, 33, // S_POSS_STND - S_POSS_RAISE4
ShotgunGuy, Spawn, 34, // S_SPOS_STND - S_SPOS_RAISE5
Archvile, Spawn, 40, // S_VILE_STND - S_VILE_DIE10
ArchvileFire, Spawn, 30, // S_FIRE1 - S_FIRE30
RevenantTracerSmoke, Spawn, 5, // S_SMOKE1 - S_SMOKE5
RevenantTracer, Spawn, 5, // S_TRACER - S_TRACEEXP3
Revenant, Spawn, 36, // S_SKEL_STND - S_SKEL_RAISE6
FatShot, Spawn, 5, // S_FATSHOT1 - S_FATSHOTX3
Fatso, Spawn, 44, // S_FATT_STND - S_FATT_RAISE8
ChaingunGuy, Spawn, 36, // S_CPOS_STND - S_CPOS_RAISE7
DoomImp, Spawn, 33, // S_TROO_STND - S_TROO_RAISE5
Demon, Spawn, 27, // S_SARG_STND - S_SARG_RAISE6
Cacodemon, Spawn, 20, // S_HEAD_STND - S_HEAD_RAISE6
BaronBall, Spawn, 5, // S_BRBALL1 - S_BRBALLX3
BaronOfHell, Spawn, 29, // S_BOSS_STND - S_BOSS_RAISE7
HellKnight, Spawn, 29, // S_BOS2_STND - S_BOS2_RAISE7
LostSoul, Spawn, 16, // S_SKULL_STND - S_SKULL_DIE6
SpiderMastermind, Spawn, 31, // S_SPID_STND - S_SPID_DIE11
Arachnotron, Spawn, 35, // S_BSPI_STND - S_BSPI_RAISE7
ArachnotronPlasma, Spawn, 7, // S_ARACH_PLAZ - S_ARACH_PLEX5
Cyberdemon, Spawn, 27, // S_CYBER_STND - S_CYBER_DIE10
PainElemental, Spawn, 25, // S_PAIN_STND - S_PAIN_RAISE6
WolfensteinSS, Spawn, 37, // S_SSWV_STND - S_SSWV_RAISE5
CommanderKeen, Spawn, 15, // S_KEENSTND - S_KEENPAIN2
BossBrain, Spawn, 6, // S_BRAIN - S_BRAIN_DIE4
BossEye, Spawn, 3, // S_BRAINEYE - S_BRAINEYE1
SpawnShot, Spawn, 4, // S_SPAWN1 - S_SPAWN4
SpawnFire, Spawn, 8, // S_SPAWNFIRE1 - S_SPAWNFIRE8
BossBrain, BrainExplode, 3, // S_BRAINEXPLODE1 - S_BRAINEXPLODE3
GreenArmor, Spawn, 2, // S_ARM1 - S_ARM1A
BlueArmor, Spawn, 2, // S_ARM2 - S_ARM2A
ExplosiveBarrel, Spawn, 7, // S_BAR1 - S_BEXP5
BurningBarrel, Spawn, 3, // S_BBAR1 - S_BBAR3
HealthBonus, Spawn, 6, // S_BON1 - S_BON1E
ArmorBonus, Spawn, 6, // S_BON2 - S_BON2E
BlueCard, Spawn, 2, // S_BKEY - S_BKEY2
RedCard, Spawn, 2, // S_RKEY - S_RKEY2
YellowCard, Spawn, 2, // S_YKEY - S_YKEY2
BlueSkull, Spawn, 2, // S_BSKULL - S_BSKULL2
RedSkull, Spawn, 2, // S_RSKULL - S_RSKULL2
YellowSkull, Spawn, 2, // S_YSKULL - S_YSKULL2
Stimpack, Spawn, 1, // S_STIM
Medikit, Spawn, 1, // S_MEDI
Soulsphere, Spawn, 6, // S_SOUL - S_SOUL6
InvulnerabilitySphere, Spawn, 4, // S_PINV - S_PINV4
Berserk, Spawn, 1, // S_PSTR
BlurSphere, Spawn, 4, // S_PINS - P_PINS4
Megasphere, Spawn, 4, // S_MEGA - S_MEGA4
RadSuit, Spawn, 1, // S_SUIT
Allmap, Spawn, 6, // S_PMAP - S_PMAP6
Infrared, Spawn, 2, // S_PVIS - S_PVIS2
Clip, Spawn, 1, // S_CLIP
ClipBox, Spawn, 1, // S_AMMO
RocketAmmo, Spawn, 1, // S_ROCK
RocketBox, Spawn, 1, // S_BROK
Cell, Spawn, 1, // S_CELL
CellPack, Spawn, 1, // S_CELP
Shell, Spawn, 1, // S_SHEL
ShellBox, Spawn, 1, // S_SBOX
Backpack, Spawn, 1, // S_BPAK
BFG9000, Spawn, 1, // S_BFUG
Chaingun, Spawn, 1, // S_MGUN
Chainsaw, Spawn, 1, // S_CSAW
RocketLauncher, Spawn, 1, // S_LAUN
PlasmaRifle, Spawn, 1, // S_PLAS
Shotgun, Spawn, 1, // S_SHOT
SuperShotgun, Spawn, 1, // S_SHOT2
Column, Spawn, 1, // S_COLU
DoomUnusedStates, Label1, 1, // S_STALAG
BloodyTwitch, Spawn, 4, // S_BLOODYTWITCH - S_BLOODYTWITCH4
DoomUnusedStates, Label2, 2, // S_DEADTORSO - S_DEADBOTTOM
HeadsOnAStick, Spawn, 1, // S_HEADSONSTICK
RealGibs, Spawn, 1, // S_GIBS
HeadOnAStick, Spawn, 1, // S_HEADONASTICK
HeadCandles, Spawn, 2, // S_HEADCANDLES - S_HEADCANDLES2
DeadStick, Spawn, 1, // S_DEADSTICK
LiveStick, Spawn, 2, // S_LIVESTICK
Meat2, Spawn, 1, // S_MEAT2
Meat3, Spawn, 1, // S_MEAT3
Meat4, Spawn, 1, // S_MEAT4
Meat5, Spawn, 1, // S_MEAT5
Stalagtite, Spawn, 1, // S_STALAGTITE
TallGreenColumn, Spawn, 1, // S_TALLGRNCOL
ShortGreenColumn, Spawn, 1, // S_SHRTGRNCOL
TallRedColumn, Spawn, 1, // S_TALLREDCOL
ShortRedColumn, Spawn, 1, // S_SHRTREDCOL
Candlestick, Spawn, 1, // S_CANDLESTIK
Candelabra, Spawn, 1, // S_CANDELABRA
SkullColumn, Spawn, 1, // S_SKULLCOL
TorchTree, Spawn, 1, // S_TORCHTREE
BigTree, Spawn, 1, // S_BIGTREE
TechPillar, Spawn, 1, // S_TECHPILLAR
EvilEye, Spawn, 4, // S_EVILEYE - S_EVILEYE4
FloatingSkull, Spawn, 3, // S_FLOATSKULL - S_FLOATSKULL3
HeartColumn, Spawn, 2, // S_HEARTCOL - S_HEARTCOL2
BlueTorch, Spawn, 4, // S_BLUETORCH - S_BLUETORCH4
GreenTorch, Spawn, 4, // S_GREENTORCH - S_GREENTORCH4
RedTorch, Spawn, 4, // S_REDTORCH - S_REDTORCH4
ShortBlueTorch, Spawn, 4, // S_BTORCHSHRT - S_BTORCHSHRT4
ShortGreenTorch, Spawn, 4, // S_GTORCHSHRT - S_GTORCHSHRT4
ShortRedTorch, Spawn, 4, // S_RTORCHSHRT - S_RTORCHSHRT4
HangNoGuts, Spawn, 1, // S_HANGNOGUTS
HangBNoBrain, Spawn, 1, // S_HANGBNOBRAIN
HangTLookingDown, Spawn, 1, // S_HANGTLOOKDN
HangTSkull, Spawn, 1, // S_HANGTSKULL
HangTLookingUp, Spawn, 1, // S_HANGTLOOKUP
HangTNoBrain, Spawn, 1, // S_HANGTNOBRAIN
ColonGibs, Spawn, 1, // S_COLONGIBS
SmallBloodPool, Spawn, 1, // S_SMALLPOOL
BrainStem, Spawn, 1, // S_BRAINSTEM
TechLamp, Spawn, 4, // S_TECHLAMP - S_TECHLAMP4
TechLamp2, Spawn, 4 // S_TECH2LAMP - S_TECH2LAMP4
};
// Sound equivalences. When a patch tries to change a sound, use these sound names.
@ -806,4 +704,33 @@ RenderStyles
8, STYLE_Shaded,
6, STYLE_Translucent,
7, STYLE_Add
};
};
AmmoNames
{
Clip,
Shell,
Cell,
RocketAmmo,
GoldWandAmmo,
NULL,
BlasterAmmo,
SkullRodAmmo,
PhoenixRodAmmo,
MaceAmmo,
Mana1,
Mana2
};
WeaponNames
{
Fist,
Pistol,
Shotgun,
Chaingun,
RocketLauncher,
PlasmaRifle,
BFG9000,
Chainsaw,
SuperShotgun
};

View file

@ -114,50 +114,6 @@
RelativePath=".\CMakeLists.txt"
>
</File>
<File
RelativePath=".\sources\dehsupp.txt"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Compiling dehsupp.txt..."
CommandLine="&quot;$(SolutionDir)\tools\dehsupp\dehsupp.exe&quot; &quot;$(InputPath)&quot; &quot;$(ProjectDir)\generated\dehsupp.lmp&quot;&#x0D;&#x0A;"
Outputs="$(ProjectDir)\generated\dehsupp.lmp"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCCustomBuildTool"
Description="Compiling dehsupp.txt..."
CommandLine="&quot;$(SolutionDir)\tools\dehsupp\dehsupp.exe&quot; &quot;$(InputPath)&quot; &quot;$(ProjectDir)\generated\dehsupp.lmp&quot;&#x0D;&#x0A;"
Outputs="$(ProjectDir)\generated\dehsupp.lmp"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Compiling dehsupp.txt..."
CommandLine="&quot;$(SolutionDir)\tools\dehsupp\dehsupp.exe&quot; &quot;$(InputPath)&quot; &quot;$(ProjectDir)\generated\dehsupp.lmp&quot;&#x0D;&#x0A;"
Outputs="$(ProjectDir)\generated\dehsupp.lmp"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCustomBuildTool"
Description="Compiling dehsupp.txt..."
CommandLine="&quot;$(SolutionDir)\tools\dehsupp\dehsupp.exe&quot; &quot;$(InputPath)&quot; &quot;$(ProjectDir)\generated\dehsupp.lmp&quot;&#x0D;&#x0A;"
Outputs="$(ProjectDir)\generated\dehsupp.lmp"
/>
</FileConfiguration>
</File>
</Files>
<Globals>
</Globals>

View file

@ -1,5 +1,5 @@
Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
# Visual C++ Express 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zdoom", "zdoom.vcproj", "{8049475B-5C87-46F9-9358-635218A4EF18}"
ProjectSection(ProjectDependencies) = postProject
{E83FD370-2E72-4D4C-9427-FF9D9DED1E88} = {E83FD370-2E72-4D4C-9427-FF9D9DED1E88}
@ -24,16 +24,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "re2c", "tools\re2c\re2c.vcp
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wadsrc", "wadsrc\wadsrc.vcproj", "{1D179D4B-F008-431B-8C72-111F8372584F}"
ProjectSection(ProjectDependencies) = postProject
{AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8} = {AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}
{24A19C02-F041-4AB0-A1A1-02E1E88EDBD3} = {24A19C02-F041-4AB0-A1A1-02E1E88EDBD3}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dehsupp", "tools\dehsupp\dehsupp.vcproj", "{AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}"
ProjectSection(ProjectDependencies) = postProject
{667D2EE7-C357-49E2-9BAB-0A4A45F0F76E} = {667D2EE7-C357-49E2-9BAB-0A4A45F0F76E}
{0F80ACBF-460E-44F0-B28E-B3272D1774A7} = {0F80ACBF-460E-44F0-B28E-B3272D1774A7}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "updaterevision", "tools\updaterevision\updaterevision.vcproj", "{6077B7D6-349F-4077-B552-3BC302EF5859}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jpeg-6b", "jpeg-6b\jpeg-6b.vcproj", "{AC3F5340-40CB-4C3A-8AA7-CB7158DB4466}"
@ -105,14 +98,6 @@ Global
{1D179D4B-F008-431B-8C72-111F8372584F}.Release|Win32.Build.0 = Release|Win32
{1D179D4B-F008-431B-8C72-111F8372584F}.Release|x64.ActiveCfg = Release|Win32
{1D179D4B-F008-431B-8C72-111F8372584F}.Release|x64.Build.0 = Release|Win32
{AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}.Debug|Win32.ActiveCfg = Debug|Win32
{AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}.Debug|Win32.Build.0 = Debug|Win32
{AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}.Debug|x64.ActiveCfg = Release|Win32
{AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}.Debug|x64.Build.0 = Release|Win32
{AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}.Release|Win32.ActiveCfg = Release|Win32
{AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}.Release|Win32.Build.0 = Release|Win32
{AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}.Release|x64.ActiveCfg = Release|Win32
{AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}.Release|x64.Build.0 = Release|Win32
{6077B7D6-349F-4077-B552-3BC302EF5859}.Debug|Win32.ActiveCfg = Debug|Win32
{6077B7D6-349F-4077-B552-3BC302EF5859}.Debug|Win32.Build.0 = Debug|Win32
{6077B7D6-349F-4077-B552-3BC302EF5859}.Debug|x64.ActiveCfg = Debug|x64