diff --git a/source/games/sw/src/game.h b/source/games/sw/src/game.h index f0040b465..95d65993c 100644 --- a/source/games/sw/src/game.h +++ b/source/games/sw/src/game.h @@ -373,8 +373,8 @@ typedef struct STATEstruct STATE, *STATEp, * *STATEpp; //struct PIC_STATEstruct; //typedef struct PIC_STATEstruct PIC_STATE, *PIC_STATEp; -struct PANEL_STATEstruct; -typedef struct PANEL_STATEstruct PANEL_STATE, *PANEL_STATEp; +struct PANEL_STATE; +typedef struct PANEL_STATE *PANEL_STATEp; struct PLAYERstruct; typedef struct PLAYERstruct PLAYER, *PLAYERp; @@ -388,8 +388,8 @@ typedef struct ATTRIBUTEstruct ATTRIBUTE, *ATTRIBUTEp; struct SECTOR_OBJECTstruct; typedef struct SECTOR_OBJECTstruct SECTOR_OBJECT, *SECTOR_OBJECTp; -struct PANEL_SPRITEstruct; -typedef struct PANEL_SPRITEstruct PANEL_SPRITE, *PANEL_SPRITEp; +struct PANEL_SPRITE; +typedef struct PANEL_SPRITE *PANEL_SPRITEp; struct ANIMstruct; typedef struct ANIMstruct ANIM, *ANIMp; diff --git a/source/games/sw/src/panel.h b/source/games/sw/src/panel.h index fe69828ce..24898eca0 100644 --- a/source/games/sw/src/panel.h +++ b/source/games/sw/src/panel.h @@ -32,11 +32,14 @@ Prepared for public release: 03/28/2005 - Charlie Wiederhold, 3D Realms BEGIN_SW_NS -#define PRI_FRONT_MAX 250 -#define PRI_FRONT 192 -#define PRI_MID 128 -#define PRI_BACK 64 -#define PRI_BACK_MAX 0 +enum +{ + PRI_FRONT_MAX = 250, + PRI_FRONT = 192, + PRI_MID = 128, + PRI_BACK = 64, + PRI_BACK_MAX = 0 +}; #define MAKE_CONPIC_ENUM enum conpic_id @@ -48,135 +51,145 @@ typedef enum conpic_id CONPIC_ID; enum PanelSpriteIDs { - ID_BORDER_TOP = 1, ID_BORDER_BOTTOM, ID_BORDER_LEFT, ID_BORDER_RIGHT, ID_BORDER_SHADE, - ID_PANEL_BORDER_LEFT, ID_PANEL_BORDER_RIGHT, - ID_TEXT, ID_TEXT2, ID_TEXT3, ID_TEXT4 + ID_BORDER_TOP = 1, ID_BORDER_BOTTOM, ID_BORDER_LEFT, ID_BORDER_RIGHT, ID_BORDER_SHADE, + ID_PANEL_BORDER_LEFT, ID_PANEL_BORDER_RIGHT, + ID_TEXT, ID_TEXT2, ID_TEXT3, ID_TEXT4 }; -struct PANEL_STATEstruct +struct PANEL_STATE { - short picndx; // for pip stuff in conpic.h - int tics; - void (*Animator)(PANEL_SPRITEp); // JBF: return type was long - PANEL_STATEp NextState; - uint32_t flags; - uint8_t xvel; - uint8_t yvel; + short picndx; // for pip stuff in conpic.h + int tics; + void (*Animator)(PANEL_SPRITEp); // JBF: return type was long + PANEL_STATEp NextState; + uint32_t flags; + uint8_t xvel; + uint8_t yvel; }; -#define PANF_PRIMARY (BIT(0)) // denotes primary weapon -#define PANF_SECONDARY (BIT(1)) // denotes secondary weapon -#define PANF_BOB (BIT(2)) -#define PANF_REST_POS (BIT(3)) // used for certain weapons - fireball -#define PANF_RELOAD (BIT(4)) // reload flag used for uzi -#define PANF_TRANS_FLIP (BIT(5)) // translucent flip - matches rotate sprite -#define PANF_ACTION_POS (BIT(6)) // used for certain weapons - fireball -#define PANF_WEAPON_HIDE (BIT(7)) // hide when climbing/driving -#define PANF_TRANSLUCENT (BIT(8)) // turn invisible -#define PANF_INVISIBLE (BIT(9)) // turn invisible -#define PANF_DEATH_HIDE (BIT(10)) // hide done when dead -#define PANF_SCREEN_CLIP (BIT(12)) // maintain aspect to the screen -#define PANF_IGNORE_START_MOST (BIT(14)) // maintain aspect to the screen -#define PANF_XFLIP (BIT(15)) // xflip -#define PANF_SUICIDE (BIT(16)) // kill myself -#define PANF_WEAPON_SPRITE (BIT(17)) // its a weapon sprite - for V mode -#define PANF_CORNER (BIT(18)) // draw from the corner -#define PANF_NOT_IN_VIEW (BIT(19)) // not in view -#define PANF_UNHIDE_SHOOT (BIT(20)) // shoot after un-hiding a weapon -#define PANF_JUMPING (BIT(21)) -#define PANF_FALLING (BIT(22)) -#define PANF_DRAW_BEFORE_VIEW (BIT(30)) // draw before drawrooms +enum +{ + PANF_PRIMARY = (BIT(0)), // denotes primary weapon + PANF_SECONDARY = (BIT(1)), // denotes secondary weapon + PANF_BOB = (BIT(2)), + PANF_REST_POS = (BIT(3)), // used for certain weapons - fireball + PANF_RELOAD = (BIT(4)), // reload flag used for uzi + PANF_TRANS_FLIP = (BIT(5)), // translucent flip - matches rotate sprite + PANF_ACTION_POS = (BIT(6)), // used for certain weapons - fireball + PANF_WEAPON_HIDE = (BIT(7)), // hide when climbing/driving + PANF_TRANSLUCENT = (BIT(8)), // turn invisible + PANF_INVISIBLE = (BIT(9)), // turn invisible + PANF_DEATH_HIDE = (BIT(10)), // hide done when dead + PANF_SCREEN_CLIP = (BIT(12)), // maintain aspect to the screen + PANF_IGNORE_START_MOST = (BIT(14)), // maintain aspect to the screen + PANF_XFLIP = (BIT(15)), // xflip + PANF_SUICIDE = (BIT(16)), // kill myself + PANF_WEAPON_SPRITE = (BIT(17)), // its a weapon sprite - for V mode + PANF_CORNER = (BIT(18)), // draw from the corner + PANF_NOT_IN_VIEW = (BIT(19)), // not in view + PANF_UNHIDE_SHOOT = (BIT(20)), // shoot after un-hiding a weapon + PANF_JUMPING = (BIT(21)), + PANF_FALLING = (BIT(22)), + PANF_DRAW_BEFORE_VIEW = (BIT(30)), // draw before drawrooms +}; typedef void (*PANEL_SPRITE_FUNCp)(PANEL_SPRITEp); -typedef struct +struct PANEL_SPRITE_OVERLAY { - PANEL_STATEp State; - int flags; - short tics; - short pic; - short xoff; // from panel sprite center x - short yoff; // from panel sprite center y -} PANEL_SPRITE_OVERLAY, *PANEL_SPRITE_OVERLAYp; - -struct PANEL_SPRITEstruct -{ - PANEL_SPRITEp Next, Prev; - PANEL_SPRITEp sibling; - PANEL_STATEp State, RetractState, PresentState, ActionState, RestState; - PLAYERp PlayerP; - DVector2 pos, opos, bobpos; - - PANEL_SPRITE_OVERLAY over[8]; - PANEL_SPRITE_FUNCp PanelSpriteFunc; - short ID; // id for finding sprite types on the list - short picndx; // for pip stuff in conpic.h - short picnum; // bypass pip stuff in conpic.h - short vel, vel_adj; - int flags, priority; - int scale; - int jump_speed, jump_grav; // jumping vars - int xspeed; - short tics, delay; // time vars - short ang, rotate_ang; - short sin_ndx, sin_amt, sin_arc_speed; - double bob_height_divider; - short shade, pal; - short kill_tics; - short WeaponType; // remember my own weapon type for weapons with secondary function - - // Inline helpers. - void backupx() { opos.X = pos.X; }; - void backupy() { opos.Y = pos.Y; }; - void backupcoords() { opos = pos; }; - void backupbobx() { bobpos.X = pos.X; }; - void backupboby() { bobpos.Y = pos.Y; }; - void backupbobcoords() { bobpos = pos; }; + PANEL_STATEp State; + int flags; + short tics; + short pic; + short xoff; // from panel sprite center x + short yoff; // from panel sprite center y }; -typedef struct +struct PANEL_SPRITE { - PANEL_STATEp pstate; - short state_size; -} PANEL_STATE_TABLE, *PANEL_STATE_TABLEp; + PANEL_SPRITE* Next, * Prev; + PANEL_SPRITE* sibling; + PANEL_STATEp State, RetractState, PresentState, ActionState, RestState; + PLAYERp PlayerP; + DVector2 pos, opos, bobpos; + + PANEL_SPRITE_OVERLAY over[8]; + PANEL_SPRITE_FUNCp PanelSpriteFunc; + short ID; // id for finding sprite types on the list + short picndx; // for pip stuff in conpic.h + short picnum; // bypass pip stuff in conpic.h + short vel, vel_adj; + int flags, priority; + int scale; + int jump_speed, jump_grav; // jumping vars + int xspeed; + short tics, delay; // time vars + short ang, rotate_ang; + short sin_ndx, sin_amt, sin_arc_speed; + double bob_height_divider; + short shade, pal; + short kill_tics; + short WeaponType; // remember my own weapon type for weapons with secondary function + + // Inline helpers. + void backupx() { opos.X = pos.X; }; + void backupy() { opos.Y = pos.Y; }; + void backupcoords() { opos = pos; }; + void backupbobx() { bobpos.X = pos.X; }; + void backupboby() { bobpos.Y = pos.Y; }; + void backupbobcoords() { bobpos = pos; }; +}; + +struct PANEL_STATE_TABLE +{ + PANEL_STATEp pstate; + short state_size; +}; extern PANEL_STATE_TABLE PanelStateTable[]; // Panel State flags - also used for -#define psf_Invisible BIT(16) -#define psf_QuickCall BIT(23) -#define psf_Xflip BIT(24) -#define psf_ShadeHalf BIT(25) -#define psf_ShadeNone BIT(26) +enum +{ + psf_Invisible = BIT(16), + psf_QuickCall = BIT(23), + psf_Xflip = BIT(24), + psf_ShadeHalf = BIT(25), + psf_ShadeNone = BIT(26), +}; enum BorderTypes { - BORDER_NONE = 0, - BORDER_MINI_BAR = 1, - BORDER_BAR = 2 + BORDER_NONE = 0, + BORDER_MINI_BAR = 1, + BORDER_BAR = 2 }; -#define MICRO_SIGHT_NUM 0 -#define MICRO_SIGHT 2075 +enum +{ + MICRO_SIGHT_NUM = 0, + MICRO_SIGHT = 2075, + + MICRO_SHOT_NUM = 2, + MICRO_SHOT_20 = 2076, + MICRO_SHOT_1 = 2077, + + MICRO_HEAT_NUM = 1, + MICRO_HEAT = 2084, + + UZI_COPEN = 2040, + UZI_CCLOSED = 2041, + UZI_CLIT = 2042, + UZI_CRELOAD = 2043, + + HEAD_MODE1 = 2055, + HEAD_MODE2 = 2056, + HEAD_MODE3 = 2057, + + SHOTGUN_AUTO_NUM = 0, + SHOTGUN_AUTO = 2078, +}; -#define MICRO_SHOT_NUM 2 -#define MICRO_SHOT_20 2076 -#define MICRO_SHOT_1 2077 - -#define MICRO_HEAT_NUM 1 -#define MICRO_HEAT 2084 - -#define UZI_COPEN 2040 -#define UZI_CCLOSED 2041 -#define UZI_CLIT 2042 -#define UZI_CRELOAD 2043 - -#define HEAD_MODE1 2055 -#define HEAD_MODE2 2056 -#define HEAD_MODE3 2057 - -#define SHOTGUN_AUTO_NUM 0 -#define SHOTGUN_AUTO 2078 PANEL_SPRITEp pSpawnSprite(PLAYERp pp, PANEL_STATEp state, uint8_t priority, double x, double y); void pSetSuicide(PANEL_SPRITEp psp); diff --git a/source/games/sw/src/save.cpp b/source/games/sw/src/save.cpp index 19e8ba835..ab699ac94 100644 --- a/source/games/sw/src/save.cpp +++ b/source/games/sw/src/save.cpp @@ -309,9 +309,9 @@ FSerializer& Serialize(FSerializer& arc, const char* keyname, PANEL_SPRITE_OVERL // //--------------------------------------------------------------------------- -FSerializer& Serialize(FSerializer& arc, const char* keyname, PANEL_SPRITEstruct& w, PANEL_SPRITEstruct* def) +FSerializer& Serialize(FSerializer& arc, const char* keyname, PANEL_SPRITE& w, PANEL_SPRITE* def) { - static PANEL_SPRITEstruct nul; + static PANEL_SPRITE nul; if (!def) { def = &nul;