Support for Watcom C
This adds support for compiling using Watcom C. The main change is the addition of the PACKED_STRUCT() macro, as Watcom uses a different syntax to gcc for marking structs as packed. Also, remove a couple of gccisms that are not supported in Watcom, and the last leftover __WATCOMC__ defines from heretic's d_main.c, which are obsolete anyway. Thanks to @scfinniss for this work.
This commit is contained in:
parent
50fd94fa5f
commit
9a257cdf78
19 changed files with 128 additions and 191 deletions
|
|
@ -54,16 +54,16 @@ enum
|
|||
|
||||
|
||||
// A single Vertex.
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short x;
|
||||
short y;
|
||||
} PACKEDATTR mapvertex_t;
|
||||
}) mapvertex_t;
|
||||
|
||||
|
||||
// A SideDef, defining the visual appearance of a wall,
|
||||
// by setting textures and offsets.
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short textureoffset;
|
||||
short rowoffset;
|
||||
|
|
@ -72,13 +72,13 @@ typedef struct
|
|||
char midtexture[8];
|
||||
// Front sector, towards viewer.
|
||||
short sector;
|
||||
} PACKEDATTR mapsidedef_t;
|
||||
}) mapsidedef_t;
|
||||
|
||||
|
||||
|
||||
// A LineDef, as used for editing, and as input
|
||||
// to the BSP builder.
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short v1;
|
||||
short v2;
|
||||
|
|
@ -87,7 +87,7 @@ typedef struct
|
|||
short tag;
|
||||
// sidenum[1] will be -1 if one sided
|
||||
short sidenum[2];
|
||||
} PACKEDATTR maplinedef_t;
|
||||
}) maplinedef_t;
|
||||
|
||||
|
||||
//
|
||||
|
|
@ -135,7 +135,7 @@ typedef struct
|
|||
|
||||
|
||||
// Sector definition, from editing.
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short floorheight;
|
||||
short ceilingheight;
|
||||
|
|
@ -144,20 +144,20 @@ typedef struct
|
|||
short lightlevel;
|
||||
short special;
|
||||
short tag;
|
||||
} PACKEDATTR mapsector_t;
|
||||
}) mapsector_t;
|
||||
|
||||
// SubSector, as generated by BSP.
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short numsegs;
|
||||
// Index of first one, segs are stored sequentially.
|
||||
short firstseg;
|
||||
} PACKEDATTR mapsubsector_t;
|
||||
}) mapsubsector_t;
|
||||
|
||||
|
||||
// LineSeg, generated by splitting LineDefs
|
||||
// using partition lines selected by BSP builder.
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short v1;
|
||||
short v2;
|
||||
|
|
@ -165,7 +165,7 @@ typedef struct
|
|||
short linedef;
|
||||
short side;
|
||||
short offset;
|
||||
} PACKEDATTR mapseg_t;
|
||||
}) mapseg_t;
|
||||
|
||||
|
||||
|
||||
|
|
@ -174,7 +174,7 @@ typedef struct
|
|||
// Indicate a leaf.
|
||||
#define NF_SUBSECTOR 0x8000
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
// Partition line from (x,y) to x+dx,y+dy)
|
||||
short x;
|
||||
|
|
@ -190,21 +190,21 @@ typedef struct
|
|||
// else it's a node of another subtree.
|
||||
unsigned short children[2];
|
||||
|
||||
} PACKEDATTR mapnode_t;
|
||||
}) mapnode_t;
|
||||
|
||||
|
||||
|
||||
|
||||
// Thing definition, position, orientation and type,
|
||||
// plus skill/visibility flags and attributes.
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short x;
|
||||
short y;
|
||||
short angle;
|
||||
short type;
|
||||
short options;
|
||||
} PACKEDATTR mapthing_t;
|
||||
}) mapthing_t;
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -677,12 +677,14 @@ static void PadRejectArray(byte *array, unsigned int len)
|
|||
|
||||
unsigned int rejectpad[4] =
|
||||
{
|
||||
((totallines * 4 + 3) & ~3) + 24, // Size
|
||||
0, // Size
|
||||
0, // Part of z_zone block header
|
||||
50, // PU_LEVEL
|
||||
0x1d4a11 // DOOM_CONST_ZONEID
|
||||
};
|
||||
|
||||
rejectpad[0] = ((totallines * 4 + 3) & ~3) + 24;
|
||||
|
||||
// Copy values from rejectpad into the destination array.
|
||||
|
||||
dest = array;
|
||||
|
|
|
|||
|
|
@ -56,14 +56,14 @@
|
|||
// into the rectangular texture space using origin
|
||||
// and possibly other attributes.
|
||||
//
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short originx;
|
||||
short originy;
|
||||
short patch;
|
||||
short stepdir;
|
||||
short colormap;
|
||||
} PACKEDATTR mappatch_t;
|
||||
}) mappatch_t;
|
||||
|
||||
|
||||
//
|
||||
|
|
@ -71,7 +71,7 @@ typedef struct
|
|||
// A DOOM wall texture is a list of patches
|
||||
// which are to be combined in a predefined order.
|
||||
//
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
char name[8];
|
||||
int masked;
|
||||
|
|
@ -80,7 +80,7 @@ typedef struct
|
|||
int obsolete;
|
||||
short patchcount;
|
||||
mappatch_t patches[1];
|
||||
} PACKEDATTR maptexture_t;
|
||||
}) maptexture_t;
|
||||
|
||||
|
||||
// A single patch from a texture definition,
|
||||
|
|
|
|||
|
|
@ -63,7 +63,15 @@
|
|||
#define PACKEDATTR
|
||||
#endif
|
||||
|
||||
// C99 integer types; with gcc we just use this. Other compilers
|
||||
#ifdef __WATCOMC__
|
||||
#define PACKEDPREFIX _Packed
|
||||
#else
|
||||
#define PACKEDPREFIX
|
||||
#endif
|
||||
|
||||
#define PACKED_STRUCT(...) PACKEDPREFIX struct __VA_ARGS__ PACKEDATTR
|
||||
|
||||
// C99 integer types; with gcc we just use this. Other compilers
|
||||
// should add conditional statements that define the C99 types.
|
||||
|
||||
// What is really wanted here is stdint.h; however, some old versions
|
||||
|
|
|
|||
|
|
@ -457,15 +457,6 @@ void wadprintf(void)
|
|||
{
|
||||
return;
|
||||
}
|
||||
// haleyjd FIXME: convert to textscreen code?
|
||||
#ifdef __WATCOMC__
|
||||
_settextposition(23, 2);
|
||||
_setbkcolor(1);
|
||||
_settextcolor(0);
|
||||
_outtext(exrnwads);
|
||||
_settextposition(24, 2);
|
||||
_outtext(exrnwads2);
|
||||
#endif
|
||||
}
|
||||
|
||||
boolean D_AddFile(char *file)
|
||||
|
|
@ -551,41 +542,6 @@ void DrawThermo(void)
|
|||
return;
|
||||
}
|
||||
|
||||
#if 0
|
||||
progress = (98 * thermCurrent) / thermMax;
|
||||
screen = (char *) 0xb8000 + (THERM_Y * 160 + THERM_X * 2);
|
||||
for (i = 0; i < progress / 2; i++)
|
||||
{
|
||||
switch (i)
|
||||
{
|
||||
case 4:
|
||||
case 9:
|
||||
case 14:
|
||||
case 19:
|
||||
case 29:
|
||||
case 34:
|
||||
case 39:
|
||||
case 44:
|
||||
*screen++ = 0xb3;
|
||||
*screen++ = (THERMCOLOR << 4) + 15;
|
||||
break;
|
||||
case 24:
|
||||
*screen++ = 0xba;
|
||||
*screen++ = (THERMCOLOR << 4) + 15;
|
||||
break;
|
||||
default:
|
||||
*screen++ = 0xdb;
|
||||
*screen++ = 0x40 + THERMCOLOR;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (progress & 1)
|
||||
{
|
||||
*screen++ = 0xdd;
|
||||
*screen++ = 0x40 + THERMCOLOR;
|
||||
}
|
||||
#else
|
||||
|
||||
// No progress? Don't update the screen.
|
||||
|
||||
progress = (50 * thermCurrent) / thermMax + 2;
|
||||
|
|
@ -608,7 +564,6 @@ void DrawThermo(void)
|
|||
}
|
||||
|
||||
TXT_UpdateScreen();
|
||||
#endif
|
||||
}
|
||||
|
||||
void initStartup(void)
|
||||
|
|
@ -659,39 +614,7 @@ static void finishStartup(void)
|
|||
char tmsg[300];
|
||||
void tprintf(char *msg, int initflag)
|
||||
{
|
||||
// haleyjd FIXME: convert to textscreen code?
|
||||
#ifdef __WATCOMC__
|
||||
char temp[80];
|
||||
int start;
|
||||
int add;
|
||||
int i;
|
||||
|
||||
if (initflag)
|
||||
tmsg[0] = 0;
|
||||
M_StringConcat(tmsg, msg, sizeof(tmsg));
|
||||
blitStartup();
|
||||
DrawThermo();
|
||||
_setbkcolor(4);
|
||||
_settextcolor(15);
|
||||
for (add = start = i = 0; i <= strlen(tmsg); i++)
|
||||
if ((tmsg[i] == '\n') || (!tmsg[i]))
|
||||
{
|
||||
memset(temp, 0, 80);
|
||||
M_StringCopy(temp, tmsg + start, sizeof(temp));
|
||||
if (i - start < sizeof(temp))
|
||||
{
|
||||
temp[i - start] = '\0';
|
||||
}
|
||||
_settextposition(MSG_Y + add, 40 - strlen(temp) / 2);
|
||||
_outtext(temp);
|
||||
start = i + 1;
|
||||
add++;
|
||||
}
|
||||
_settextposition(25, 1);
|
||||
drawstatus();
|
||||
#else
|
||||
printf("%s", msg);
|
||||
#endif
|
||||
}
|
||||
|
||||
// haleyjd: moved up, removed WATCOMC code
|
||||
|
|
|
|||
|
|
@ -48,26 +48,26 @@ enum
|
|||
};
|
||||
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short x, y;
|
||||
} PACKEDATTR mapvertex_t;
|
||||
}) mapvertex_t;
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short textureoffset;
|
||||
short rowoffset;
|
||||
char toptexture[8], bottomtexture[8], midtexture[8];
|
||||
short sector; // on viewer's side
|
||||
} PACKEDATTR mapsidedef_t;
|
||||
}) mapsidedef_t;
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short v1, v2;
|
||||
short flags;
|
||||
short special, tag;
|
||||
short sidenum[2]; // sidenum[1] will be -1 if one sided
|
||||
} PACKEDATTR maplinedef_t;
|
||||
}) maplinedef_t;
|
||||
|
||||
#define ML_BLOCKING 1
|
||||
#define ML_BLOCKMONSTERS 2
|
||||
|
|
@ -88,43 +88,43 @@ typedef struct
|
|||
#define ML_MAPPED 256 // set if allready drawn in automap
|
||||
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short floorheight, ceilingheight;
|
||||
char floorpic[8], ceilingpic[8];
|
||||
short lightlevel;
|
||||
short special, tag;
|
||||
} PACKEDATTR mapsector_t;
|
||||
}) mapsector_t;
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short numsegs;
|
||||
short firstseg; // segs are stored sequentially
|
||||
} PACKEDATTR mapsubsector_t;
|
||||
}) mapsubsector_t;
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short v1, v2;
|
||||
short angle;
|
||||
short linedef, side;
|
||||
short offset;
|
||||
} PACKEDATTR mapseg_t;
|
||||
}) mapseg_t;
|
||||
|
||||
#define NF_SUBSECTOR 0x8000
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short x, y, dx, dy; // partition line
|
||||
short bbox[2][4]; // bounding box for each child
|
||||
unsigned short children[2]; // if NF_SUBSECTOR its a subsector
|
||||
} PACKEDATTR mapnode_t;
|
||||
}) mapnode_t;
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short x, y;
|
||||
short angle;
|
||||
short type;
|
||||
short options;
|
||||
} PACKEDATTR mapthing_t;
|
||||
}) mapthing_t;
|
||||
|
||||
#define MTF_EASY 1
|
||||
#define MTF_NORMAL 2
|
||||
|
|
@ -139,16 +139,16 @@ typedef struct
|
|||
===============================================================================
|
||||
*/
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short originx;
|
||||
short originy;
|
||||
short patch;
|
||||
short stepdir;
|
||||
short colormap;
|
||||
} PACKEDATTR mappatch_t;
|
||||
}) mappatch_t;
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
char name[8];
|
||||
boolean masked;
|
||||
|
|
@ -157,7 +157,7 @@ typedef struct
|
|||
int obsolete;
|
||||
short patchcount;
|
||||
mappatch_t patches[1];
|
||||
} PACKEDATTR maptexture_t;
|
||||
}) maptexture_t;
|
||||
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -188,7 +188,7 @@ static void D_SetDefaultSavePath(void)
|
|||
{
|
||||
// only get hexen.cfg path if one is not already found
|
||||
|
||||
if (!strcmp(SavePathConfig, ""))
|
||||
if (SavePathConfig == NULL || !strcmp(SavePathConfig, ""))
|
||||
{
|
||||
// If we are not using a savegame path (probably because we are on
|
||||
// Windows and not using a config dir), behave like Vanilla Hexen
|
||||
|
|
|
|||
|
|
@ -45,12 +45,12 @@
|
|||
|
||||
// TYPES -------------------------------------------------------------------
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
int marker;
|
||||
int infoOffset;
|
||||
int code;
|
||||
} PACKEDATTR acsHeader_t;
|
||||
}) acsHeader_t;
|
||||
|
||||
// EXTERNAL FUNCTION PROTOTYPES --------------------------------------------
|
||||
|
||||
|
|
|
|||
|
|
@ -44,13 +44,13 @@ enum
|
|||
ML_BEHAVIOR
|
||||
};
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short x;
|
||||
short y;
|
||||
} PACKEDATTR mapvertex_t;
|
||||
}) mapvertex_t;
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short textureoffset;
|
||||
short rowoffset;
|
||||
|
|
@ -58,9 +58,9 @@ typedef struct
|
|||
char bottomtexture[8];
|
||||
char midtexture[8];
|
||||
short sector; // on viewer's side
|
||||
} PACKEDATTR mapsidedef_t;
|
||||
}) mapsidedef_t;
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short v1;
|
||||
short v2;
|
||||
|
|
@ -72,7 +72,7 @@ typedef struct
|
|||
byte arg4;
|
||||
byte arg5;
|
||||
short sidenum[2]; // sidenum[1] will be -1 if one sided
|
||||
} PACKEDATTR maplinedef_t;
|
||||
}) maplinedef_t;
|
||||
|
||||
#define ML_BLOCKING 0x0001
|
||||
#define ML_BLOCKMONSTERS 0x0002
|
||||
|
|
@ -96,7 +96,7 @@ typedef struct
|
|||
#define SPAC_PUSH 4 // when player/monster pushes line
|
||||
#define SPAC_PCROSS 5 // when projectile crosses line
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short floorheight;
|
||||
short ceilingheight;
|
||||
|
|
@ -105,15 +105,15 @@ typedef struct
|
|||
short lightlevel;
|
||||
short special;
|
||||
short tag;
|
||||
} PACKEDATTR mapsector_t;
|
||||
}) mapsector_t;
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short numsegs;
|
||||
short firstseg; // segs are stored sequentially
|
||||
} PACKEDATTR mapsubsector_t;
|
||||
}) mapsubsector_t;
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short v1;
|
||||
short v2;
|
||||
|
|
@ -121,17 +121,17 @@ typedef struct
|
|||
short linedef;
|
||||
short side;
|
||||
short offset;
|
||||
} PACKEDATTR mapseg_t;
|
||||
}) mapseg_t;
|
||||
|
||||
#define NF_SUBSECTOR 0x8000
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short x, y, dx, dy; // partition line
|
||||
short bbox[2][4]; // bounding box for each child
|
||||
unsigned short children[2]; // if NF_SUBSECTOR its a subsector
|
||||
} PACKEDATTR mapnode_t;
|
||||
}) mapnode_t;
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short tid;
|
||||
short x;
|
||||
|
|
@ -146,7 +146,7 @@ typedef struct
|
|||
byte arg3;
|
||||
byte arg4;
|
||||
byte arg5;
|
||||
} PACKEDATTR mapthing_t;
|
||||
}) mapthing_t;
|
||||
|
||||
#define MTF_EASY 1
|
||||
#define MTF_NORMAL 2
|
||||
|
|
@ -166,16 +166,16 @@ typedef struct
|
|||
//
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short originx;
|
||||
short originy;
|
||||
short patch;
|
||||
short stepdir;
|
||||
short colormap;
|
||||
} PACKEDATTR mappatch_t;
|
||||
}) mappatch_t;
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
char name[8];
|
||||
boolean masked;
|
||||
|
|
@ -184,6 +184,6 @@ typedef struct
|
|||
int obsolete;
|
||||
short patchcount;
|
||||
mappatch_t patches[1];
|
||||
} PACKEDATTR maptexture_t;
|
||||
}) maptexture_t;
|
||||
|
||||
#endif // __XDDEFS__
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@
|
|||
|
||||
#define PERCUSSION_LOG_LEN 16
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
byte tremolo;
|
||||
byte attack;
|
||||
|
|
@ -54,25 +54,25 @@ typedef struct
|
|||
byte waveform;
|
||||
byte scale;
|
||||
byte level;
|
||||
} PACKEDATTR genmidi_op_t;
|
||||
}) genmidi_op_t;
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
genmidi_op_t modulator;
|
||||
byte feedback;
|
||||
genmidi_op_t carrier;
|
||||
byte unused;
|
||||
short base_note_offset;
|
||||
} PACKEDATTR genmidi_voice_t;
|
||||
}) genmidi_voice_t;
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
unsigned short flags;
|
||||
byte fine_tuning;
|
||||
byte fixed_note;
|
||||
|
||||
genmidi_voice_t voices[2];
|
||||
} PACKEDATTR genmidi_instr_t;
|
||||
}) genmidi_instr_t;
|
||||
|
||||
// Data associated with a channel of a track that is currently playing.
|
||||
|
||||
|
|
|
|||
|
|
@ -33,19 +33,19 @@
|
|||
#pragma pack(push, 1)
|
||||
#endif
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
byte chunk_id[4];
|
||||
unsigned int chunk_size;
|
||||
} PACKEDATTR chunk_header_t;
|
||||
}) chunk_header_t;
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
chunk_header_t chunk_header;
|
||||
unsigned short format_type;
|
||||
unsigned short num_tracks;
|
||||
unsigned short time_division;
|
||||
} PACKEDATTR midi_header_t;
|
||||
}) midi_header_t;
|
||||
|
||||
// haleyjd 09/09/10: packing off.
|
||||
#ifdef _MSC_VER
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ typedef enum
|
|||
} midievent;
|
||||
|
||||
// Structure to hold MUS file header
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
byte id[4];
|
||||
unsigned short scorelength;
|
||||
|
|
@ -61,7 +61,7 @@ typedef struct
|
|||
unsigned short primarychannels;
|
||||
unsigned short secondarychannels;
|
||||
unsigned short instrumentcount;
|
||||
} PACKEDATTR musheader;
|
||||
}) musheader;
|
||||
|
||||
// Standard MIDI type 0 header + track header
|
||||
static const byte midiheader[] =
|
||||
|
|
|
|||
|
|
@ -54,16 +54,16 @@ enum
|
|||
|
||||
|
||||
// A single Vertex.
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short x;
|
||||
short y;
|
||||
} PACKEDATTR mapvertex_t;
|
||||
}) mapvertex_t;
|
||||
|
||||
|
||||
// A SideDef, defining the visual appearance of a wall,
|
||||
// by setting textures and offsets.
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short textureoffset;
|
||||
short rowoffset;
|
||||
|
|
@ -72,13 +72,13 @@ typedef struct
|
|||
char midtexture[8];
|
||||
// Front sector, towards viewer.
|
||||
short sector;
|
||||
} PACKEDATTR mapsidedef_t;
|
||||
}) mapsidedef_t;
|
||||
|
||||
|
||||
|
||||
// A LineDef, as used for editing, and as input
|
||||
// to the BSP builder.
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short v1;
|
||||
short v2;
|
||||
|
|
@ -87,7 +87,7 @@ typedef struct
|
|||
short tag;
|
||||
// sidenum[1] will be -1 if one sided
|
||||
short sidenum[2];
|
||||
} PACKEDATTR maplinedef_t;
|
||||
}) maplinedef_t;
|
||||
|
||||
|
||||
//
|
||||
|
|
@ -147,7 +147,7 @@ typedef struct
|
|||
|
||||
|
||||
// Sector definition, from editing.
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short floorheight;
|
||||
short ceilingheight;
|
||||
|
|
@ -156,20 +156,20 @@ typedef struct
|
|||
short lightlevel;
|
||||
short special;
|
||||
short tag;
|
||||
} PACKEDATTR mapsector_t;
|
||||
}) mapsector_t;
|
||||
|
||||
// SubSector, as generated by BSP.
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short numsegs;
|
||||
// Index of first one, segs are stored sequentially.
|
||||
short firstseg;
|
||||
} PACKEDATTR mapsubsector_t;
|
||||
}) mapsubsector_t;
|
||||
|
||||
|
||||
// LineSeg, generated by splitting LineDefs
|
||||
// using partition lines selected by BSP builder.
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short v1;
|
||||
short v2;
|
||||
|
|
@ -177,7 +177,7 @@ typedef struct
|
|||
short linedef;
|
||||
short side;
|
||||
short offset;
|
||||
} PACKEDATTR mapseg_t;
|
||||
}) mapseg_t;
|
||||
|
||||
|
||||
|
||||
|
|
@ -186,7 +186,7 @@ typedef struct
|
|||
// Indicate a leaf.
|
||||
#define NF_SUBSECTOR 0x8000
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
// Partition line from (x,y) to x+dx,y+dy)
|
||||
short x;
|
||||
|
|
@ -202,21 +202,21 @@ typedef struct
|
|||
// else it's a node of another subtree.
|
||||
unsigned short children[2];
|
||||
|
||||
} PACKEDATTR mapnode_t;
|
||||
}) mapnode_t;
|
||||
|
||||
|
||||
|
||||
|
||||
// Thing definition, position, orientation and type,
|
||||
// plus skill/visibility flags and attributes.
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short x;
|
||||
short y;
|
||||
short angle;
|
||||
short type;
|
||||
short options;
|
||||
} PACKEDATTR mapthing_t;
|
||||
}) mapthing_t;
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@
|
|||
#include <win_opendir.h>
|
||||
#elif defined(__GNUC__) || defined(POSIX)
|
||||
#include <dirent.h>
|
||||
#elif defined(__WATCOMC__)
|
||||
#include <direct.h>
|
||||
#else
|
||||
#error Need an include for dirent.h!
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -670,12 +670,14 @@ static void PadRejectArray(byte *array, unsigned int len)
|
|||
|
||||
unsigned int rejectpad[4] =
|
||||
{
|
||||
((totallines * 4 + 3) & ~3) + 24, // Size
|
||||
0, // Size
|
||||
0, // Part of z_zone block header
|
||||
50, // PU_LEVEL
|
||||
0x1d4a11 // DOOM_CONST_ZONEID
|
||||
};
|
||||
|
||||
rejectpad[0] = ((totallines * 4 + 3) & ~3) + 24;
|
||||
|
||||
// Copy values from rejectpad into the destination array.
|
||||
|
||||
dest = array;
|
||||
|
|
|
|||
|
|
@ -52,14 +52,14 @@
|
|||
// into the rectangular texture space using origin
|
||||
// and possibly other attributes.
|
||||
//
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short originx;
|
||||
short originy;
|
||||
short patch;
|
||||
//short stepdir; // villsa [STRIFE] removed
|
||||
//short colormap; // villsa [STRIFE] removed
|
||||
} PACKEDATTR mappatch_t;
|
||||
}) mappatch_t;
|
||||
|
||||
|
||||
//
|
||||
|
|
@ -67,7 +67,7 @@ typedef struct
|
|||
// A DOOM wall texture is a list of patches
|
||||
// which are to be combined in a predefined order.
|
||||
//
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
char name[8];
|
||||
int masked;
|
||||
|
|
@ -76,7 +76,7 @@ typedef struct
|
|||
//int obsolete; // villsa [STRIFE] removed
|
||||
short patchcount;
|
||||
mappatch_t patches[1];
|
||||
} PACKEDATTR maptexture_t;
|
||||
}) maptexture_t;
|
||||
|
||||
|
||||
// A single patch from a texture definition,
|
||||
|
|
|
|||
|
|
@ -26,22 +26,22 @@
|
|||
// and we compose textures from the TEXTURE1/2 lists
|
||||
// of patches.
|
||||
|
||||
typedef struct
|
||||
{
|
||||
short width; // bounding box size
|
||||
short height;
|
||||
short leftoffset; // pixels to the left of origin
|
||||
short topoffset; // pixels below the origin
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
short width; // bounding box size
|
||||
short height;
|
||||
short leftoffset; // pixels to the left of origin
|
||||
short topoffset; // pixels below the origin
|
||||
int columnofs[8]; // only [width] used
|
||||
// the [0] is &columnofs[width]
|
||||
} PACKEDATTR patch_t;
|
||||
// the [0] is &columnofs[width]
|
||||
}) patch_t;
|
||||
|
||||
// posts are runs of non masked source pixels
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
byte topdelta; // -1 is the last post in a column
|
||||
byte length; // length data bytes follows
|
||||
} PACKEDATTR post_t;
|
||||
}) post_t;
|
||||
|
||||
// column_t is a list of 0 or more post_t, (byte)-1 terminated
|
||||
typedef post_t column_t;
|
||||
|
|
|
|||
|
|
@ -619,7 +619,7 @@ void V_RestoreBuffer(void)
|
|||
// SCREEN SHOTS
|
||||
//
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
char manufacturer;
|
||||
char version;
|
||||
|
|
@ -643,7 +643,7 @@ typedef struct
|
|||
|
||||
char filler[58];
|
||||
unsigned char data; // unbounded
|
||||
} PACKEDATTR pcx_t;
|
||||
}) pcx_t;
|
||||
|
||||
|
||||
//
|
||||
|
|
|
|||
|
|
@ -35,21 +35,21 @@
|
|||
|
||||
#include "w_wad.h"
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
// Should be "IWAD" or "PWAD".
|
||||
char identification[4];
|
||||
int numlumps;
|
||||
int infotableofs;
|
||||
} PACKEDATTR wadinfo_t;
|
||||
}) wadinfo_t;
|
||||
|
||||
|
||||
typedef struct
|
||||
typedef PACKED_STRUCT (
|
||||
{
|
||||
int filepos;
|
||||
int size;
|
||||
char name[8];
|
||||
} PACKEDATTR filelump_t;
|
||||
}) filelump_t;
|
||||
|
||||
//
|
||||
// GLOBALS
|
||||
|
|
|
|||
Loading…
Reference in a new issue