Merge branch 'master' into sdl2-branch

This commit is contained in:
Fabian Greffrath 2017-04-24 14:46:31 +02:00
commit a28f58da05
27 changed files with 162 additions and 209 deletions

View file

@ -113,15 +113,16 @@ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
WINDOWS_RC_VERSION=`echo $PACKAGE_VERSION | sed 's/-.*//; s/\./, /g; s/$/, 0/'` WINDOWS_RC_VERSION=`echo $PACKAGE_VERSION | sed 's/-.*//; s/\./, /g; s/$/, 0/'`
# This controls the prefix added to the start of program names. For example, dnl Without a hyphen. This is used for the bash-completion scripts.
# if this is changed to "lemon-", the programs generated will be named PROGRAM_SPREFIX=$(echo $PACKAGE_SHORTNAME | tr A-Z a-z)
# lemon-doom, lemon-heretic, etc.
PROGRAM_PREFIX=chocolate- dnl With a hyphen, used almost everywhere else.
PROGRAM_PREFIX=${PROGRAM_SPREFIX}-
AC_SUBST(PROGRAM_PREFIX) AC_SUBST(PROGRAM_PREFIX)
AC_DEFINE_UNQUOTED(PROGRAM_PREFIX, "$PROGRAM_PREFIX", AC_DEFINE_UNQUOTED(PROGRAM_PREFIX, "$PROGRAM_PREFIX",
Change this when you create your awesome forked version) Change this when you create your awesome forked version)
AC_SUBST(PROGRAM_SPREFIX)
AM_CONFIG_HEADER(config.h:config.hin) AM_CONFIG_HEADER(config.h:config.hin)
@ -151,6 +152,10 @@ AC_OUTPUT([
Makefile Makefile
man/Makefile man/Makefile
man/bash-completion/Makefile man/bash-completion/Makefile
man/bash-completion/doom.template
man/bash-completion/heretic.template
man/bash-completion/hexen.template
man/bash-completion/strife.template
opl/Makefile opl/Makefile
opl/examples/Makefile opl/examples/Makefile
pcsound/Makefile pcsound/Makefile

View file

@ -23,8 +23,13 @@ import re
try: try:
import Image import Image
except ImportError: except ImportError:
print("WARNING: Could not update %s. Please install the Python Imaging library." % sys.argv[2]) try:
sys.exit(0) from PIL import Image
except ImportError:
print("WARNING: Could not update %s. "
"Please install the Python Imaging library or Pillow."
% sys.argv[2])
sys.exit(0)
def convert_image(filename, output_filename): def convert_image(filename, output_filename):

View file

@ -2,3 +2,4 @@
*heretic *heretic
*hexen *hexen
*strife *strife
*.template

View file

@ -1,6 +1,6 @@
# bash completion for Chocolate Doom -*- shell-script -*- # bash completion for @PACKAGE_SHORTNAME@ Doom -*- shell-script -*-
_chocolate_doom() _@PROGRAM_SPREFIX@_doom()
{ {
local cur prev words cword local cur prev words cword
_init_completion || return _init_completion || return
@ -46,6 +46,6 @@ _chocolate_doom()
fi fi
} && } &&
complete -F _chocolate_doom chocolate-doom complete -F _@PROGRAM_SPREFIX@_doom @PROGRAM_PREFIX@doom
# ex: ts=4 sw=4 et filetype=sh # ex: ts=4 sw=4 et filetype=sh

View file

@ -1,6 +1,6 @@
# bash completion for Chocolate Heretic -*- shell-script -*- # bash completion for @PACKAGE_SHORTNAME@ Heretic -*- shell-script -*-
_chocolate_heretic() _@PROGRAM_SPREFIX@_heretic()
{ {
local cur prev words cword local cur prev words cword
_init_completion || return _init_completion || return
@ -43,6 +43,6 @@ _chocolate_heretic()
fi fi
} && } &&
complete -F _chocolate_heretic chocolate-heretic complete -F _@PROGRAM_SPREFIX@_heretic @PROGRAM_PREFIX@heretic
# ex: ts=4 sw=4 et filetype=sh # ex: ts=4 sw=4 et filetype=sh

View file

@ -1,6 +1,6 @@
# bash completion for Chocolate Hexen -*- shell-script -*- # bash completion for @PACKAGE_SHORTNAME@ Hexen -*- shell-script -*-
_chocolate_hexen() _@PROGRAM_SPREFIX@_hexen()
{ {
local cur prev words cword local cur prev words cword
_init_completion || return _init_completion || return
@ -37,6 +37,6 @@ _chocolate_hexen()
fi fi
} && } &&
complete -F _chocolate_hexen chocolate-hexen complete -F _@PROGRAM_SPREFIX@_hexen @PROGRAM_PREFIX@hexen
# ex: ts=4 sw=4 et filetype=sh # ex: ts=4 sw=4 et filetype=sh

View file

@ -1,6 +1,6 @@
# bash completion for Chocolate Strife -*- shell-script -*- # bash completion for @PACKAGE_SHORTNAME@ Strife -*- shell-script -*-
_chocolate_strife() _@PROGRAM_SPREFIX@_strife()
{ {
local cur prev words cword local cur prev words cword
_init_completion || return _init_completion || return
@ -43,6 +43,6 @@ _chocolate_strife()
fi fi
} && } &&
complete -F _chocolate_strife chocolate-strife complete -F _@PROGRAM_SPREFIX@_strife @PROGRAM_PREFIX@strife
# ex: ts=4 sw=4 et filetype=sh # ex: ts=4 sw=4 et filetype=sh

View file

@ -650,6 +650,11 @@ static void AddXdgDirs(void)
// source ports is /usr/share/games/doom - we support this through the // source ports is /usr/share/games/doom - we support this through the
// XDG_DATA_DIRS mechanism, through which it can be overridden. // XDG_DATA_DIRS mechanism, through which it can be overridden.
AddIWADPath(env, "/games/doom"); AddIWADPath(env, "/games/doom");
// The convention set by RBDOOM-3-BFG is to install Doom 3: BFG
// Edition into this directory, under which includes the Doom
// Classic WADs.
AddIWADPath(env, "/games/doom3bfg/base/wads");
} }
#endif #endif

View file

@ -54,16 +54,16 @@ enum
// A single Vertex. // A single Vertex.
typedef struct typedef PACKED_STRUCT (
{ {
short x; short x;
short y; short y;
} PACKEDATTR mapvertex_t; }) mapvertex_t;
// A SideDef, defining the visual appearance of a wall, // A SideDef, defining the visual appearance of a wall,
// by setting textures and offsets. // by setting textures and offsets.
typedef struct typedef PACKED_STRUCT (
{ {
short textureoffset; short textureoffset;
short rowoffset; short rowoffset;
@ -72,13 +72,13 @@ typedef struct
char midtexture[8]; char midtexture[8];
// Front sector, towards viewer. // Front sector, towards viewer.
short sector; short sector;
} PACKEDATTR mapsidedef_t; }) mapsidedef_t;
// A LineDef, as used for editing, and as input // A LineDef, as used for editing, and as input
// to the BSP builder. // to the BSP builder.
typedef struct typedef PACKED_STRUCT (
{ {
short v1; short v1;
short v2; short v2;
@ -87,7 +87,7 @@ typedef struct
short tag; short tag;
// sidenum[1] will be -1 if one sided // sidenum[1] will be -1 if one sided
short sidenum[2]; short sidenum[2];
} PACKEDATTR maplinedef_t; }) maplinedef_t;
// //
@ -135,7 +135,7 @@ typedef struct
// Sector definition, from editing. // Sector definition, from editing.
typedef struct typedef PACKED_STRUCT (
{ {
short floorheight; short floorheight;
short ceilingheight; short ceilingheight;
@ -144,20 +144,20 @@ typedef struct
short lightlevel; short lightlevel;
short special; short special;
short tag; short tag;
} PACKEDATTR mapsector_t; }) mapsector_t;
// SubSector, as generated by BSP. // SubSector, as generated by BSP.
typedef struct typedef PACKED_STRUCT (
{ {
short numsegs; short numsegs;
// Index of first one, segs are stored sequentially. // Index of first one, segs are stored sequentially.
short firstseg; short firstseg;
} PACKEDATTR mapsubsector_t; }) mapsubsector_t;
// LineSeg, generated by splitting LineDefs // LineSeg, generated by splitting LineDefs
// using partition lines selected by BSP builder. // using partition lines selected by BSP builder.
typedef struct typedef PACKED_STRUCT (
{ {
short v1; short v1;
short v2; short v2;
@ -165,7 +165,7 @@ typedef struct
short linedef; short linedef;
short side; short side;
short offset; short offset;
} PACKEDATTR mapseg_t; }) mapseg_t;
@ -174,7 +174,7 @@ typedef struct
// Indicate a leaf. // Indicate a leaf.
#define NF_SUBSECTOR 0x8000 #define NF_SUBSECTOR 0x8000
typedef struct typedef PACKED_STRUCT (
{ {
// Partition line from (x,y) to x+dx,y+dy) // Partition line from (x,y) to x+dx,y+dy)
short x; short x;
@ -190,21 +190,21 @@ typedef struct
// else it's a node of another subtree. // else it's a node of another subtree.
unsigned short children[2]; unsigned short children[2];
} PACKEDATTR mapnode_t; }) mapnode_t;
// Thing definition, position, orientation and type, // Thing definition, position, orientation and type,
// plus skill/visibility flags and attributes. // plus skill/visibility flags and attributes.
typedef struct typedef PACKED_STRUCT (
{ {
short x; short x;
short y; short y;
short angle; short angle;
short type; short type;
short options; short options;
} PACKEDATTR mapthing_t; }) mapthing_t;

View file

@ -677,12 +677,14 @@ static void PadRejectArray(byte *array, unsigned int len)
unsigned int rejectpad[4] = unsigned int rejectpad[4] =
{ {
((totallines * 4 + 3) & ~3) + 24, // Size 0, // Size
0, // Part of z_zone block header 0, // Part of z_zone block header
50, // PU_LEVEL 50, // PU_LEVEL
0x1d4a11 // DOOM_CONST_ZONEID 0x1d4a11 // DOOM_CONST_ZONEID
}; };
rejectpad[0] = ((totallines * 4 + 3) & ~3) + 24;
// Copy values from rejectpad into the destination array. // Copy values from rejectpad into the destination array.
dest = array; dest = array;

View file

@ -56,14 +56,14 @@
// into the rectangular texture space using origin // into the rectangular texture space using origin
// and possibly other attributes. // and possibly other attributes.
// //
typedef struct typedef PACKED_STRUCT (
{ {
short originx; short originx;
short originy; short originy;
short patch; short patch;
short stepdir; short stepdir;
short colormap; short colormap;
} PACKEDATTR mappatch_t; }) mappatch_t;
// //
@ -71,7 +71,7 @@ typedef struct
// A DOOM wall texture is a list of patches // A DOOM wall texture is a list of patches
// which are to be combined in a predefined order. // which are to be combined in a predefined order.
// //
typedef struct typedef PACKED_STRUCT (
{ {
char name[8]; char name[8];
int masked; int masked;
@ -80,7 +80,7 @@ typedef struct
int obsolete; int obsolete;
short patchcount; short patchcount;
mappatch_t patches[1]; mappatch_t patches[1];
} PACKEDATTR maptexture_t; }) maptexture_t;
// A single patch from a texture definition, // A single patch from a texture definition,

View file

@ -63,7 +63,15 @@
#define PACKEDATTR #define PACKEDATTR
#endif #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. // should add conditional statements that define the C99 types.
// What is really wanted here is stdint.h; however, some old versions // What is really wanted here is stdint.h; however, some old versions

View file

@ -456,15 +456,6 @@ void wadprintf(void)
{ {
return; 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) boolean D_AddFile(char *file)
@ -550,41 +541,6 @@ void DrawThermo(void)
return; 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. // No progress? Don't update the screen.
progress = (50 * thermCurrent) / thermMax + 2; progress = (50 * thermCurrent) / thermMax + 2;
@ -607,7 +563,6 @@ void DrawThermo(void)
} }
TXT_UpdateScreen(); TXT_UpdateScreen();
#endif
} }
void initStartup(void) void initStartup(void)
@ -658,39 +613,7 @@ static void finishStartup(void)
char tmsg[300]; char tmsg[300];
void tprintf(char *msg, int initflag) 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); printf("%s", msg);
#endif
} }
// haleyjd: moved up, removed WATCOMC code // haleyjd: moved up, removed WATCOMC code

View file

@ -48,26 +48,26 @@ enum
}; };
typedef struct typedef PACKED_STRUCT (
{ {
short x, y; short x, y;
} PACKEDATTR mapvertex_t; }) mapvertex_t;
typedef struct typedef PACKED_STRUCT (
{ {
short textureoffset; short textureoffset;
short rowoffset; short rowoffset;
char toptexture[8], bottomtexture[8], midtexture[8]; char toptexture[8], bottomtexture[8], midtexture[8];
short sector; // on viewer's side short sector; // on viewer's side
} PACKEDATTR mapsidedef_t; }) mapsidedef_t;
typedef struct typedef PACKED_STRUCT (
{ {
short v1, v2; short v1, v2;
short flags; short flags;
short special, tag; short special, tag;
short sidenum[2]; // sidenum[1] will be -1 if one sided short sidenum[2]; // sidenum[1] will be -1 if one sided
} PACKEDATTR maplinedef_t; }) maplinedef_t;
#define ML_BLOCKING 1 #define ML_BLOCKING 1
#define ML_BLOCKMONSTERS 2 #define ML_BLOCKMONSTERS 2
@ -88,43 +88,43 @@ typedef struct
#define ML_MAPPED 256 // set if allready drawn in automap #define ML_MAPPED 256 // set if allready drawn in automap
typedef struct typedef PACKED_STRUCT (
{ {
short floorheight, ceilingheight; short floorheight, ceilingheight;
char floorpic[8], ceilingpic[8]; char floorpic[8], ceilingpic[8];
short lightlevel; short lightlevel;
short special, tag; short special, tag;
} PACKEDATTR mapsector_t; }) mapsector_t;
typedef struct typedef PACKED_STRUCT (
{ {
short numsegs; short numsegs;
short firstseg; // segs are stored sequentially short firstseg; // segs are stored sequentially
} PACKEDATTR mapsubsector_t; }) mapsubsector_t;
typedef struct typedef PACKED_STRUCT (
{ {
short v1, v2; short v1, v2;
short angle; short angle;
short linedef, side; short linedef, side;
short offset; short offset;
} PACKEDATTR mapseg_t; }) mapseg_t;
#define NF_SUBSECTOR 0x8000 #define NF_SUBSECTOR 0x8000
typedef struct typedef PACKED_STRUCT (
{ {
short x, y, dx, dy; // partition line short x, y, dx, dy; // partition line
short bbox[2][4]; // bounding box for each child short bbox[2][4]; // bounding box for each child
unsigned short children[2]; // if NF_SUBSECTOR its a subsector unsigned short children[2]; // if NF_SUBSECTOR its a subsector
} PACKEDATTR mapnode_t; }) mapnode_t;
typedef struct typedef PACKED_STRUCT (
{ {
short x, y; short x, y;
short angle; short angle;
short type; short type;
short options; short options;
} PACKEDATTR mapthing_t; }) mapthing_t;
#define MTF_EASY 1 #define MTF_EASY 1
#define MTF_NORMAL 2 #define MTF_NORMAL 2
@ -139,16 +139,16 @@ typedef struct
=============================================================================== ===============================================================================
*/ */
typedef struct typedef PACKED_STRUCT (
{ {
short originx; short originx;
short originy; short originy;
short patch; short patch;
short stepdir; short stepdir;
short colormap; short colormap;
} PACKEDATTR mappatch_t; }) mappatch_t;
typedef struct typedef PACKED_STRUCT (
{ {
char name[8]; char name[8];
boolean masked; boolean masked;
@ -157,7 +157,7 @@ typedef struct
int obsolete; int obsolete;
short patchcount; short patchcount;
mappatch_t patches[1]; mappatch_t patches[1];
} PACKEDATTR maptexture_t; }) maptexture_t;
/* /*

View file

@ -187,7 +187,7 @@ static void D_SetDefaultSavePath(void)
{ {
// only get hexen.cfg path if one is not already found // 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 // If we are not using a savegame path (probably because we are on
// Windows and not using a config dir), behave like Vanilla Hexen // Windows and not using a config dir), behave like Vanilla Hexen

View file

@ -45,12 +45,12 @@
// TYPES ------------------------------------------------------------------- // TYPES -------------------------------------------------------------------
typedef struct typedef PACKED_STRUCT (
{ {
int marker; int marker;
int infoOffset; int infoOffset;
int code; int code;
} PACKEDATTR acsHeader_t; }) acsHeader_t;
// EXTERNAL FUNCTION PROTOTYPES -------------------------------------------- // EXTERNAL FUNCTION PROTOTYPES --------------------------------------------

View file

@ -44,13 +44,13 @@ enum
ML_BEHAVIOR ML_BEHAVIOR
}; };
typedef struct typedef PACKED_STRUCT (
{ {
short x; short x;
short y; short y;
} PACKEDATTR mapvertex_t; }) mapvertex_t;
typedef struct typedef PACKED_STRUCT (
{ {
short textureoffset; short textureoffset;
short rowoffset; short rowoffset;
@ -58,9 +58,9 @@ typedef struct
char bottomtexture[8]; char bottomtexture[8];
char midtexture[8]; char midtexture[8];
short sector; // on viewer's side short sector; // on viewer's side
} PACKEDATTR mapsidedef_t; }) mapsidedef_t;
typedef struct typedef PACKED_STRUCT (
{ {
short v1; short v1;
short v2; short v2;
@ -72,7 +72,7 @@ typedef struct
byte arg4; byte arg4;
byte arg5; byte arg5;
short sidenum[2]; // sidenum[1] will be -1 if one sided short sidenum[2]; // sidenum[1] will be -1 if one sided
} PACKEDATTR maplinedef_t; }) maplinedef_t;
#define ML_BLOCKING 0x0001 #define ML_BLOCKING 0x0001
#define ML_BLOCKMONSTERS 0x0002 #define ML_BLOCKMONSTERS 0x0002
@ -96,7 +96,7 @@ typedef struct
#define SPAC_PUSH 4 // when player/monster pushes line #define SPAC_PUSH 4 // when player/monster pushes line
#define SPAC_PCROSS 5 // when projectile crosses line #define SPAC_PCROSS 5 // when projectile crosses line
typedef struct typedef PACKED_STRUCT (
{ {
short floorheight; short floorheight;
short ceilingheight; short ceilingheight;
@ -105,15 +105,15 @@ typedef struct
short lightlevel; short lightlevel;
short special; short special;
short tag; short tag;
} PACKEDATTR mapsector_t; }) mapsector_t;
typedef struct typedef PACKED_STRUCT (
{ {
short numsegs; short numsegs;
short firstseg; // segs are stored sequentially short firstseg; // segs are stored sequentially
} PACKEDATTR mapsubsector_t; }) mapsubsector_t;
typedef struct typedef PACKED_STRUCT (
{ {
short v1; short v1;
short v2; short v2;
@ -121,17 +121,17 @@ typedef struct
short linedef; short linedef;
short side; short side;
short offset; short offset;
} PACKEDATTR mapseg_t; }) mapseg_t;
#define NF_SUBSECTOR 0x8000 #define NF_SUBSECTOR 0x8000
typedef struct typedef PACKED_STRUCT (
{ {
short x, y, dx, dy; // partition line short x, y, dx, dy; // partition line
short bbox[2][4]; // bounding box for each child short bbox[2][4]; // bounding box for each child
unsigned short children[2]; // if NF_SUBSECTOR its a subsector unsigned short children[2]; // if NF_SUBSECTOR its a subsector
} PACKEDATTR mapnode_t; }) mapnode_t;
typedef struct typedef PACKED_STRUCT (
{ {
short tid; short tid;
short x; short x;
@ -146,7 +146,7 @@ typedef struct
byte arg3; byte arg3;
byte arg4; byte arg4;
byte arg5; byte arg5;
} PACKEDATTR mapthing_t; }) mapthing_t;
#define MTF_EASY 1 #define MTF_EASY 1
#define MTF_NORMAL 2 #define MTF_NORMAL 2
@ -166,16 +166,16 @@ typedef struct
// //
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------
typedef struct typedef PACKED_STRUCT (
{ {
short originx; short originx;
short originy; short originy;
short patch; short patch;
short stepdir; short stepdir;
short colormap; short colormap;
} PACKEDATTR mappatch_t; }) mappatch_t;
typedef struct typedef PACKED_STRUCT (
{ {
char name[8]; char name[8];
boolean masked; boolean masked;
@ -184,6 +184,6 @@ typedef struct
int obsolete; int obsolete;
short patchcount; short patchcount;
mappatch_t patches[1]; mappatch_t patches[1];
} PACKEDATTR maptexture_t; }) maptexture_t;
#endif // __XDDEFS__ #endif // __XDDEFS__

View file

@ -46,7 +46,7 @@
#define PERCUSSION_LOG_LEN 16 #define PERCUSSION_LOG_LEN 16
typedef struct typedef PACKED_STRUCT (
{ {
byte tremolo; byte tremolo;
byte attack; byte attack;
@ -54,25 +54,25 @@ typedef struct
byte waveform; byte waveform;
byte scale; byte scale;
byte level; byte level;
} PACKEDATTR genmidi_op_t; }) genmidi_op_t;
typedef struct typedef PACKED_STRUCT (
{ {
genmidi_op_t modulator; genmidi_op_t modulator;
byte feedback; byte feedback;
genmidi_op_t carrier; genmidi_op_t carrier;
byte unused; byte unused;
short base_note_offset; short base_note_offset;
} PACKEDATTR genmidi_voice_t; }) genmidi_voice_t;
typedef struct typedef PACKED_STRUCT (
{ {
unsigned short flags; unsigned short flags;
byte fine_tuning; byte fine_tuning;
byte fixed_note; byte fixed_note;
genmidi_voice_t voices[2]; genmidi_voice_t voices[2];
} PACKEDATTR genmidi_instr_t; }) genmidi_instr_t;
// Data associated with a channel of a track that is currently playing. // Data associated with a channel of a track that is currently playing.

View file

@ -33,19 +33,19 @@
#pragma pack(push, 1) #pragma pack(push, 1)
#endif #endif
typedef struct typedef PACKED_STRUCT (
{ {
byte chunk_id[4]; byte chunk_id[4];
unsigned int chunk_size; unsigned int chunk_size;
} PACKEDATTR chunk_header_t; }) chunk_header_t;
typedef struct typedef PACKED_STRUCT (
{ {
chunk_header_t chunk_header; chunk_header_t chunk_header;
unsigned short format_type; unsigned short format_type;
unsigned short num_tracks; unsigned short num_tracks;
unsigned short time_division; unsigned short time_division;
} PACKEDATTR midi_header_t; }) midi_header_t;
// haleyjd 09/09/10: packing off. // haleyjd 09/09/10: packing off.
#ifdef _MSC_VER #ifdef _MSC_VER

View file

@ -53,7 +53,7 @@ typedef enum
} midievent; } midievent;
// Structure to hold MUS file header // Structure to hold MUS file header
typedef struct typedef PACKED_STRUCT (
{ {
byte id[4]; byte id[4];
unsigned short scorelength; unsigned short scorelength;
@ -61,7 +61,7 @@ typedef struct
unsigned short primarychannels; unsigned short primarychannels;
unsigned short secondarychannels; unsigned short secondarychannels;
unsigned short instrumentcount; unsigned short instrumentcount;
} PACKEDATTR musheader; }) musheader;
// Standard MIDI type 0 header + track header // Standard MIDI type 0 header + track header
static const byte midiheader[] = static const byte midiheader[] =

View file

@ -54,16 +54,16 @@ enum
// A single Vertex. // A single Vertex.
typedef struct typedef PACKED_STRUCT (
{ {
short x; short x;
short y; short y;
} PACKEDATTR mapvertex_t; }) mapvertex_t;
// A SideDef, defining the visual appearance of a wall, // A SideDef, defining the visual appearance of a wall,
// by setting textures and offsets. // by setting textures and offsets.
typedef struct typedef PACKED_STRUCT (
{ {
short textureoffset; short textureoffset;
short rowoffset; short rowoffset;
@ -72,13 +72,13 @@ typedef struct
char midtexture[8]; char midtexture[8];
// Front sector, towards viewer. // Front sector, towards viewer.
short sector; short sector;
} PACKEDATTR mapsidedef_t; }) mapsidedef_t;
// A LineDef, as used for editing, and as input // A LineDef, as used for editing, and as input
// to the BSP builder. // to the BSP builder.
typedef struct typedef PACKED_STRUCT (
{ {
short v1; short v1;
short v2; short v2;
@ -87,7 +87,7 @@ typedef struct
short tag; short tag;
// sidenum[1] will be -1 if one sided // sidenum[1] will be -1 if one sided
short sidenum[2]; short sidenum[2];
} PACKEDATTR maplinedef_t; }) maplinedef_t;
// //
@ -147,7 +147,7 @@ typedef struct
// Sector definition, from editing. // Sector definition, from editing.
typedef struct typedef PACKED_STRUCT (
{ {
short floorheight; short floorheight;
short ceilingheight; short ceilingheight;
@ -156,20 +156,20 @@ typedef struct
short lightlevel; short lightlevel;
short special; short special;
short tag; short tag;
} PACKEDATTR mapsector_t; }) mapsector_t;
// SubSector, as generated by BSP. // SubSector, as generated by BSP.
typedef struct typedef PACKED_STRUCT (
{ {
short numsegs; short numsegs;
// Index of first one, segs are stored sequentially. // Index of first one, segs are stored sequentially.
short firstseg; short firstseg;
} PACKEDATTR mapsubsector_t; }) mapsubsector_t;
// LineSeg, generated by splitting LineDefs // LineSeg, generated by splitting LineDefs
// using partition lines selected by BSP builder. // using partition lines selected by BSP builder.
typedef struct typedef PACKED_STRUCT (
{ {
short v1; short v1;
short v2; short v2;
@ -177,7 +177,7 @@ typedef struct
short linedef; short linedef;
short side; short side;
short offset; short offset;
} PACKEDATTR mapseg_t; }) mapseg_t;
@ -186,7 +186,7 @@ typedef struct
// Indicate a leaf. // Indicate a leaf.
#define NF_SUBSECTOR 0x8000 #define NF_SUBSECTOR 0x8000
typedef struct typedef PACKED_STRUCT (
{ {
// Partition line from (x,y) to x+dx,y+dy) // Partition line from (x,y) to x+dx,y+dy)
short x; short x;
@ -202,21 +202,21 @@ typedef struct
// else it's a node of another subtree. // else it's a node of another subtree.
unsigned short children[2]; unsigned short children[2];
} PACKEDATTR mapnode_t; }) mapnode_t;
// Thing definition, position, orientation and type, // Thing definition, position, orientation and type,
// plus skill/visibility flags and attributes. // plus skill/visibility flags and attributes.
typedef struct typedef PACKED_STRUCT (
{ {
short x; short x;
short y; short y;
short angle; short angle;
short type; short type;
short options; short options;
} PACKEDATTR mapthing_t; }) mapthing_t;

View file

@ -25,6 +25,8 @@
#include <win_opendir.h> #include <win_opendir.h>
#elif defined(__GNUC__) || defined(POSIX) #elif defined(__GNUC__) || defined(POSIX)
#include <dirent.h> #include <dirent.h>
#elif defined(__WATCOMC__)
#include <direct.h>
#else #else
#error Need an include for dirent.h! #error Need an include for dirent.h!
#endif #endif

View file

@ -670,12 +670,14 @@ static void PadRejectArray(byte *array, unsigned int len)
unsigned int rejectpad[4] = unsigned int rejectpad[4] =
{ {
((totallines * 4 + 3) & ~3) + 24, // Size 0, // Size
0, // Part of z_zone block header 0, // Part of z_zone block header
50, // PU_LEVEL 50, // PU_LEVEL
0x1d4a11 // DOOM_CONST_ZONEID 0x1d4a11 // DOOM_CONST_ZONEID
}; };
rejectpad[0] = ((totallines * 4 + 3) & ~3) + 24;
// Copy values from rejectpad into the destination array. // Copy values from rejectpad into the destination array.
dest = array; dest = array;

View file

@ -52,14 +52,14 @@
// into the rectangular texture space using origin // into the rectangular texture space using origin
// and possibly other attributes. // and possibly other attributes.
// //
typedef struct typedef PACKED_STRUCT (
{ {
short originx; short originx;
short originy; short originy;
short patch; short patch;
//short stepdir; // villsa [STRIFE] removed //short stepdir; // villsa [STRIFE] removed
//short colormap; // 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 // A DOOM wall texture is a list of patches
// which are to be combined in a predefined order. // which are to be combined in a predefined order.
// //
typedef struct typedef PACKED_STRUCT (
{ {
char name[8]; char name[8];
int masked; int masked;
@ -76,7 +76,7 @@ typedef struct
//int obsolete; // villsa [STRIFE] removed //int obsolete; // villsa [STRIFE] removed
short patchcount; short patchcount;
mappatch_t patches[1]; mappatch_t patches[1];
} PACKEDATTR maptexture_t; }) maptexture_t;
// A single patch from a texture definition, // A single patch from a texture definition,

View file

@ -26,22 +26,22 @@
// and we compose textures from the TEXTURE1/2 lists // and we compose textures from the TEXTURE1/2 lists
// of patches. // of patches.
typedef struct typedef PACKED_STRUCT (
{ {
short width; // bounding box size short width; // bounding box size
short height; short height;
short leftoffset; // pixels to the left of origin short leftoffset; // pixels to the left of origin
short topoffset; // pixels below the origin short topoffset; // pixels below the origin
int columnofs[8]; // only [width] used int columnofs[8]; // only [width] used
// the [0] is &columnofs[width] // the [0] is &columnofs[width]
} PACKEDATTR patch_t; }) patch_t;
// posts are runs of non masked source pixels // posts are runs of non masked source pixels
typedef struct typedef PACKED_STRUCT (
{ {
byte topdelta; // -1 is the last post in a column byte topdelta; // -1 is the last post in a column
byte length; // length data bytes follows 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 // column_t is a list of 0 or more post_t, (byte)-1 terminated
typedef post_t column_t; typedef post_t column_t;

View file

@ -624,7 +624,7 @@ void V_RestoreBuffer(void)
// SCREEN SHOTS // SCREEN SHOTS
// //
typedef struct typedef PACKED_STRUCT (
{ {
char manufacturer; char manufacturer;
char version; char version;
@ -648,7 +648,7 @@ typedef struct
char filler[58]; char filler[58];
unsigned char data; // unbounded unsigned char data; // unbounded
} PACKEDATTR pcx_t; }) pcx_t;
// //

View file

@ -35,21 +35,21 @@
#include "w_wad.h" #include "w_wad.h"
typedef struct typedef PACKED_STRUCT (
{ {
// Should be "IWAD" or "PWAD". // Should be "IWAD" or "PWAD".
char identification[4]; char identification[4];
int numlumps; int numlumps;
int infotableofs; int infotableofs;
} PACKEDATTR wadinfo_t; }) wadinfo_t;
typedef struct typedef PACKED_STRUCT (
{ {
int filepos; int filepos;
int size; int size;
char name[8]; char name[8];
} PACKEDATTR filelump_t; }) filelump_t;
// //
// GLOBALS // GLOBALS