- constant cleanup.

This commit is contained in:
Christoph Oelckers 2020-07-06 13:26:26 +02:00
parent 5d93e946c2
commit f2380f8829
38 changed files with 628 additions and 1087 deletions

View file

@ -0,0 +1,41 @@
// nobody uses these. What's so cool about naked numbers? :(
// system defines for status bits
#define CEILING_STAT_PLAX BIT(0)
#define CEILING_STAT_SLOPE BIT(1)
#define CEILING_STAT_SWAPXY BIT(2)
#define CEILING_STAT_SMOOSH BIT(3)
#define CEILING_STAT_XFLIP BIT(4)
#define CEILING_STAT_YFLIP BIT(5)
#define CEILING_STAT_RELATIVE BIT(6)
#define CEILING_STAT_TYPE_MASK (BIT(7)|BIT(8))
#define CEILING_STAT_MASKED BIT(7)
#define CEILING_STAT_TRANS BIT(8)
#define CEILING_STAT_TRANS_FLIP (BIT(7)|BIT(8))
#define CEILING_STAT_FAF_BLOCK_HITSCAN BIT(15)
#define FLOOR_STAT_PLAX BIT(0)
#define FLOOR_STAT_SLOPE BIT(1)
#define FLOOR_STAT_SWAPXY BIT(2)
#define FLOOR_STAT_SMOOSH BIT(3)
#define FLOOR_STAT_XFLIP BIT(4)
#define FLOOR_STAT_YFLIP BIT(5)
#define FLOOR_STAT_RELATIVE BIT(6)
#define FLOOR_STAT_TYPE_MASK (BIT(7)|BIT(8))
#define FLOOR_STAT_MASKED BIT(7)
#define FLOOR_STAT_TRANS BIT(8)
#define FLOOR_STAT_TRANS_FLIP (BIT(7)|BIT(8))
#define FLOOR_STAT_FAF_BLOCK_HITSCAN BIT(15)
#define CSTAT_WALL_BLOCK BIT(0)
#define CSTAT_WALL_BOTTOM_SWAP BIT(1)
#define CSTAT_WALL_ALIGN_BOTTOM BIT(2)
#define CSTAT_WALL_XFLIP BIT(3)
#define CSTAT_WALL_MASKED BIT(4)
#define CSTAT_WALL_1WAY BIT(5)
#define CSTAT_WALL_BLOCK_HITSCAN BIT(6)
#define CSTAT_WALL_TRANSLUCENT BIT(7)
#define CSTAT_WALL_YFLIP BIT(8)
#define CSTAT_WALL_TRANS_FLIP BIT(9)
#define CSTAT_WALL_BLOCK_ACTOR (BIT(14)) // my def
#define CSTAT_WALL_WARP_HITSCAN (BIT(15)) // my def

View file

@ -14,11 +14,14 @@
// uint32_t ti_Data; // uint32_t ti_Data;
// }; // };
#define TAG_DONE (0) /* Used to indicate the end of the Tag list */ enum tags : uint32_t
#define TAG_END (0) /* Ditto */ {
/* list pointed to in ti_Data */ TAG_DONE = (0), /* Used to indicate the end of the Tag list */
TAG_END = (0), /* Ditto */
/* list pointed to in ti_Data */
#define TAG_USER ((uint32_t)(1u<<30)) TAG_USER = ((uint32_t)(1u << 30))
};
enum enum
{ {

View file

@ -55,3 +55,5 @@ set( PCH_SOURCES
) )
add_game_library2( duke ) add_game_library2( duke )
include_directories( src )

View file

@ -77,19 +77,3 @@ void fall_common(int g_i, int g_p, int JIBS6, int DRONE, int BLOODPOOL, int SHOT
void checkavailweapon(struct player_struct* p); void checkavailweapon(struct player_struct* p);
void deletesprite(int num); void deletesprite(int num);
// tile names which are identical for all games.
enum
{
SECTOREFFECTOR = 1,
ACTIVATOR = 2,
TOUCHPLATE = 3,
ACTIVATORLOCKED = 4,
MUSICANDSFX = 5,
LOCATORS = 6,
CYCLER = 7,
MASTERSWITCH = 8,
RESPAWN = 9,
GPSPEED = 10,
FOF = 13,
};

View file

@ -43,6 +43,7 @@ This file is a combination of code from the following sources:
#include "global.h" #include "global.h"
#include "names.h" #include "names.h"
#include "stats.h" #include "stats.h"
#include "constants.h"
BEGIN_DUKE_NS BEGIN_DUKE_NS
@ -51,6 +52,19 @@ int otherp;
int adjustfall(spritetype* s, int c); int adjustfall(spritetype* s, int c);
//---------------------------------------------------------------------------
//
// this was once a macro
//
//---------------------------------------------------------------------------
void RANDOMSCRAP(spritetype *s, int i)
{
int r1 = krand2(), r2 = krand2(), r3 = krand2(), r4 = krand2(), r5 = krand2(), r6 = krand2(), r7 = krand2();
int v = isRR() ? 16 : 48;
EGS(s->sectnum, s->x + (r7 & 255) - 128, s->y + (r6 & 255) - 128, s->z - (8 << 8) - (r5 & 8191), TILE_SCRAP6 + (r4 & 15), -8, v, v, r3 & 2047, (r2 & 63) + 64, -512 - (r1 & 2047), i, 5);
}
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// //
// wrapper to ensure that if a sound actor is killed, the sound is stopped as well. // wrapper to ensure that if a sound actor is killed, the sound is stopped as well.
@ -1507,7 +1521,7 @@ bool queball(int i, int pocket, int queball, int stripeball)
// if(s->pal == 12) // if(s->pal == 12)
{ {
j = getincangle(ps[p].getang(), getangle(s->x - ps[p].posx, s->y - ps[p].posy)); j = getincangle(ps[p].getang(), getangle(s->x - ps[p].posx, s->y - ps[p].posy));
if (j > -64 && j < 64 && PlayerInput(p, SK_OPEN)) if (j > -64 && j < 64 && PlayerInput(p, SKB_OPEN))
if (ps[p].toggle_key_flag == 1) if (ps[p].toggle_key_flag == 1)
{ {
int a = headspritestat[STAT_ACTOR]; int a = headspritestat[STAT_ACTOR];

View file

@ -2108,13 +2108,13 @@ void movetransports_d(void)
else if (!(sectlotag == 1 && ps[p].on_ground == 1)) break; else if (!(sectlotag == 1 && ps[p].on_ground == 1)) break;
if (onfloorz == 0 && abs(sprite[i].z - ps[p].posz) < 6144) if (onfloorz == 0 && abs(sprite[i].z - ps[p].posz) < 6144)
if ((ps[p].jetpack_on == 0) || (ps[p].jetpack_on && (PlayerInput(p, SK_JUMP))) || if ((ps[p].jetpack_on == 0) || (ps[p].jetpack_on && (PlayerInput(p, SKB_JUMP))) ||
(ps[p].jetpack_on && (PlayerInput(p, SK_CROUCH) ^ !!ps[p].crouch_toggle))) (ps[p].jetpack_on && (PlayerInput(p, SKB_CROUCH) ^ !!ps[p].crouch_toggle)))
{ {
ps[p].oposx = ps[p].posx += sprite[sprite[i].owner].x - sprite[i].x; ps[p].oposx = ps[p].posx += sprite[sprite[i].owner].x - sprite[i].x;
ps[p].oposy = ps[p].posy += sprite[sprite[i].owner].y - sprite[i].y; ps[p].oposy = ps[p].posy += sprite[sprite[i].owner].y - sprite[i].y;
if (ps[p].jetpack_on && (PlayerInput(p, SK_JUMP) || ps[p].jetpack_on < 11)) if (ps[p].jetpack_on && (PlayerInput(p, SKB_JUMP) || ps[p].jetpack_on < 11))
ps[p].posz = sprite[sprite[i].owner].z - 6144; ps[p].posz = sprite[sprite[i].owner].z - 6144;
else ps[p].posz = sprite[sprite[i].owner].z + 6144; else ps[p].posz = sprite[sprite[i].owner].z + 6144;
ps[p].oposz = ps[p].posz; ps[p].oposz = ps[p].posz;
@ -2131,7 +2131,7 @@ void movetransports_d(void)
k = 0; k = 0;
if (onfloorz && sectlotag == ST_1_ABOVE_WATER && ps[p].on_ground && ps[p].posz > (sector[sect].floorz - (16 << 8)) && (PlayerInput(p, SK_CROUCH) || ps[p].poszv > 2048)) if (onfloorz && sectlotag == ST_1_ABOVE_WATER && ps[p].on_ground && ps[p].posz > (sector[sect].floorz - (16 << 8)) && (PlayerInput(p, SKB_CROUCH) || ps[p].poszv > 2048))
// if( onfloorz && sectlotag == 1 && ps[p].posz > (sector[sect].floorz-(6<<8)) ) // if( onfloorz && sectlotag == 1 && ps[p].posz > (sector[sect].floorz-(6<<8)) )
{ {
k = 1; k = 1;
@ -2459,7 +2459,7 @@ static void greenslime(int i)
s->ang = ps[p].getang(); s->ang = ps[p].getang();
if ((PlayerInput(p, SK_FIRE) || (ps[p].quick_kick > 0)) && sprite[ps[p].i].extra > 0) if ((PlayerInput(p, SKB_FIRE) || (ps[p].quick_kick > 0)) && sprite[ps[p].i].extra > 0)
if (ps[p].quick_kick > 0 || (ps[p].curr_weapon != HANDREMOTE_WEAPON && ps[p].curr_weapon != HANDBOMB_WEAPON && ps[p].curr_weapon != TRIPBOMB_WEAPON && ps[p].ammo_amount[ps[p].curr_weapon] >= 0)) if (ps[p].quick_kick > 0 || (ps[p].curr_weapon != HANDREMOTE_WEAPON && ps[p].curr_weapon != HANDBOMB_WEAPON && ps[p].curr_weapon != TRIPBOMB_WEAPON && ps[p].ammo_amount[ps[p].curr_weapon] >= 0))
{ {
for (x = 0; x < 8; x++) for (x = 0; x < 8; x++)

View file

@ -1756,13 +1756,13 @@ void movetransports_r(void)
else break; else break;
if (onfloorz == 0 && abs(sprite[i].z - ps[p].posz) < 6144) if (onfloorz == 0 && abs(sprite[i].z - ps[p].posz) < 6144)
if ((ps[p].jetpack_on == 0) || (ps[p].jetpack_on && PlayerInput(p, SK_JUMP)) || if ((ps[p].jetpack_on == 0) || (ps[p].jetpack_on && PlayerInput(p, SKB_JUMP)) ||
(ps[p].jetpack_on && PlayerInput(p, SK_CROUCH))) (ps[p].jetpack_on && PlayerInput(p, SKB_CROUCH)))
{ {
ps[p].oposx = ps[p].posx += sprite[OW].x - sprite[i].x; ps[p].oposx = ps[p].posx += sprite[OW].x - sprite[i].x;
ps[p].oposy = ps[p].posy += sprite[OW].y - sprite[i].y; ps[p].oposy = ps[p].posy += sprite[OW].y - sprite[i].y;
if (ps[p].jetpack_on && (PlayerInput(p, SK_JUMP) || ps[p].jetpack_on < 11)) if (ps[p].jetpack_on && (PlayerInput(p, SKB_JUMP) || ps[p].jetpack_on < 11))
ps[p].posz = sprite[OW].z - 6144; ps[p].posz = sprite[OW].z - 6144;
else ps[p].posz = sprite[OW].z + 6144; else ps[p].posz = sprite[OW].z + 6144;
ps[p].oposz = ps[p].posz; ps[p].oposz = ps[p].posz;

View file

@ -323,7 +323,7 @@ void animatesprites_d(int x,int y,int a,int smoothratio)
t->cstat |= 2; t->cstat |= 2;
if ( screenpeek == myconnectindex && numplayers >= 2 ) if ( screenpeek == myconnectindex && numplayers >= 2 )
{ {
t->x = omyx + mulscale16((int)(myx - omyx), smoothratio); t->x = omyx + mulscale16((int)( myx - omyx), smoothratio);
t->y = omyy + mulscale16((int)(myy - omyy), smoothratio); t->y = omyy + mulscale16((int)(myy - omyy), smoothratio);
t->z = omyz + mulscale16((int)(myz - omyz), smoothratio) + (40 << 8); t->z = omyz + mulscale16((int)(myz - omyz), smoothratio) + (40 << 8);
t->ang = omyang + mulscale16((int)(((myang + 1024 - omyang) & 2047) - 1024), smoothratio); t->ang = omyang + mulscale16((int)(((myang + 1024 - omyang) & 2047) - 1024), smoothratio);

View file

@ -1,63 +0,0 @@
//
// Definitions of common game-only data structures/functions
// (and declarations of data appearing in both)
// for EDuke32 and Mapster32
//
#ifndef EDUKE32_COMMON_GAME_H_
#define EDUKE32_COMMON_GAME_H_
#include "gamecontrol.h"
BEGIN_DUKE_NS
#define DUKE (g_gameType & GAMEFLAG_DUKE)
#define RR (g_gameType & GAMEFLAG_RRALL)
#define RRRA (g_gameType & GAMEFLAG_RRRA)
#define NAM (g_gameType & GAMEFLAG_NAM)
#define NAPALM (g_gameType & GAMEFLAG_NAPALM)
#define WW2GI (g_gameType & GAMEFLAG_WW2GI)
#define NAM_WW2GI (g_gameType & (GAMEFLAG_NAM|GAMEFLAG_WW2GI))
#define SHAREWARE (g_gameType & GAMEFLAG_SHAREWARE)
#define DEER (g_gameType & GAMEFLAG_DEER)
//#define DUKEBETA ((g_gameType & GAMEFLAG_DUKEBETA) == GAMEFLAG_DUKEBETA)
//#define IONMAIDEN (g_gameType & GAMEFLAG_IONMAIDEN)
enum Games_t {
GAME_DUKE = 0,
GAME_RR,
GAME_RRRA,
GAME_NAM,
GAME_NAPALM,
//GAME_WW2GI,
GAMECOUNT
};
enum basepal_t {
BASEPAL = 0,
WATERPAL,
SLIMEPAL,
TITLEPAL,
DREALMSPAL,
ENDINGPAL, // 5
ANIMPAL, // not used anymore
DRUGPAL,
BASEPALCOUNT
};
#include "v_text.h"
extern void G_InitMultiPsky(int CLOUDYOCEAN__DYN, int MOONSKY1__DYN, int BIGORBIT1__DYN, int LA__DYN);
extern void G_SetupGlobalPsky(void);
//////////
extern void genspriteremaps(void);
//////////
END_DUKE_NS
#endif

View file

@ -130,7 +130,7 @@ protected:
class DukeMainMenu : public DukeListMenu class DukeMainMenu : public DukeListMenu
{ {
virtual void Init(DMenu* parent = NULL, FListMenuDescriptor* desc = NULL) override virtual void Init(DMenu* parent = nullptr, FListMenuDescriptor* desc = nullptr) override
{ {
DukeListMenu::Init(parent, desc); DukeListMenu::Init(parent, desc);
} }
@ -139,7 +139,7 @@ class DukeMainMenu : public DukeListMenu
{ {
DukeListMenu::PreDraw(); DukeListMenu::PreDraw();
double x = origin.X + 160; double x = origin.X + 160;
if (RRRA) if (isRRRA())
{ {
DrawTexture(twod, tileGetTexture(TILE_THREEDEE), x-5, origin.Y+57, DTA_FullscreenScale, 3, DTA_VirtualWidth, 320, DTA_VirtualHeight, 200, DTA_ScaleX, 0.253, DTA_ScaleY, 0.253, DTA_CenterBottomOffset, true, TAG_DONE); DrawTexture(twod, tileGetTexture(TILE_THREEDEE), x-5, origin.Y+57, DTA_FullscreenScale, 3, DTA_VirtualWidth, 320, DTA_VirtualHeight, 200, DTA_ScaleX, 0.253, DTA_ScaleY, 0.253, DTA_CenterBottomOffset, true, TAG_DONE);
} }

View file

@ -101,19 +101,17 @@ EDUKE32_STATIC_ASSERT(7 <= MAXTILES-MAXUSERTILES);
END_DUKE_NS END_DUKE_NS
#include "zz_actors.h" #include "zz_actors.h"
#include "common_game.h"
#include "gamecontrol.h" #include "gamecontrol.h"
#include "game.h" #include "game.h"
#include "gamedef.h" #include "gamedef.h"
#include "gameexec.h" #include "gameexec.h"
#include "gamevar.h" #include "gamevar.h"
#include "global.h" #include "global.h"
#include "inv.h"
#include "macros.h" #include "macros.h"
#include "names.h" #include "names.h"
#include "net.h" #include "net.h"
#include "player.h" #include "player.h"
#include "quotes.h" #include "quotemgr.h"
#include "rts.h" #include "rts.h"
#include "sector.h" #include "sector.h"
#include "sounds.h" #include "sounds.h"
@ -124,71 +122,6 @@ BEGIN_DUKE_NS
extern FFont* IndexFont; extern FFont* IndexFont;
extern FFont* DigiFont; extern FFont* DigiFont;
// Order is that of EDuke32 by necessity because it exposes the key binds to scripting by index instead of by name.
enum GameFunction_t
{
gamefunc_Move_Forward,
gamefunc_Move_Backward,
gamefunc_Turn_Left,
gamefunc_Turn_Right,
gamefunc_Strafe,
gamefunc_Fire,
gamefunc_Open,
gamefunc_Run,
gamefunc_Alt_Fire, // Duke3D, Blood
gamefunc_Jump,
gamefunc_Crouch,
gamefunc_Look_Up,
gamefunc_Look_Down,
gamefunc_Look_Left,
gamefunc_Look_Right,
gamefunc_Strafe_Left,
gamefunc_Strafe_Right,
gamefunc_Aim_Up,
gamefunc_Aim_Down,
gamefunc_Weapon_1, // CCMD
gamefunc_Weapon_2, // CCMD
gamefunc_Weapon_3, // CCMD
gamefunc_Weapon_4, // CCMD
gamefunc_Weapon_5, // CCMD
gamefunc_Weapon_6, // CCMD
gamefunc_Weapon_7, // CCMD
gamefunc_Weapon_8, // CCMD
gamefunc_Weapon_9, // CCMD
gamefunc_Weapon_10, // CCMD
gamefunc_Inventory, // CCMD
gamefunc_Inventory_Left, // CCMD
gamefunc_Inventory_Right, // CCMD
gamefunc_Holo_Duke, // CCMD // Duke3D, RR
gamefunc_Jetpack, // CCMD
gamefunc_NightVision, // CCMD
gamefunc_MedKit, // CCMD
gamefunc_TurnAround,
gamefunc_SendMessage,
gamefunc_Map, // CCMD
gamefunc_Shrink_Screen, // CCMD
gamefunc_Enlarge_Screen, // CCMD
gamefunc_Center_View, // CCMD
gamefunc_Holster_Weapon, // CCMD
gamefunc_Show_Opponents_Weapon, // CCMD
gamefunc_Map_Follow_Mode, // CCMD
gamefunc_See_Coop_View, // CCMD
gamefunc_Mouse_Aiming, // CCMD
gamefunc_Toggle_Crosshair, // CCMD
gamefunc_Steroids, // CCMD
gamefunc_Quick_Kick, // CCMD
gamefunc_Next_Weapon, // CCMD
gamefunc_Previous_Weapon, // CCMD
gamefunc_Dpad_Select,
gamefunc_Dpad_Aiming,
gamefunc_Last_Weapon, // CCMD
gamefunc_Alt_Weapon,
gamefunc_Third_Person_View, // CCMD
gamefunc_Show_DukeMatch_Scores, // CCMD
gamefunc_Toggle_Crouch, // This is the last one used by EDuke32.
NUM_ACTIONS
};
struct GameInterface : ::GameInterface struct GameInterface : ::GameInterface
{ {
const char* Name() override { return "Duke"; } const char* Name() override { return "Duke"; }

View file

@ -33,6 +33,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#include "palette.h" #include "palette.h"
#include "cmdlib.h" #include "cmdlib.h"
#include "screenjob.h" #include "screenjob.h"
#include "constants.h"
BEGIN_DUKE_NS BEGIN_DUKE_NS
@ -118,9 +119,6 @@ static inline int Menu_HaveUserMap(void)
return (boardfilename[0] != 0 && m_level_number == 7 && ud.m_volume_number == 0); return (boardfilename[0] != 0 && m_level_number == 7 && ud.m_volume_number == 0);
} }
extern const char *defaultrtsfilename[GAMECOUNT];
extern const char *G_DefaultRtsFile(void);
extern int32_t g_Shareware; extern int32_t g_Shareware;
extern int32_t cameraclock; extern int32_t cameraclock;
extern int32_t cameradist; extern int32_t cameradist;
@ -261,84 +259,6 @@ static inline int32_t calc_smoothratio(ClockTicks totalclk, ClockTicks ototalclk
return CalcSmoothRatio(totalclk, ototalclk, REALGAMETICSPERSEC); return CalcSmoothRatio(totalclk, ototalclk, REALGAMETICSPERSEC);
} }
// sector effector lotags
enum
{
SE_0_ROTATING_SECTOR = 0,
SE_1_PIVOT = 1,
SE_2_EARTHQUAKE = 2,
SE_3_RANDOM_LIGHTS_AFTER_SHOT_OUT = 3,
SE_4_RANDOM_LIGHTS = 4,
SE_5_BOSS = 5,
SE_6_SUBWAY = 6,
// ^^ potentially incomplete substitution in code
// vv almost surely complete substitution
SE_7_TELEPORT = 7,
SE_8_UP_OPEN_DOOR_LIGHTS = 8,
SE_9_DOWN_OPEN_DOOR_LIGHTS = 9,
SE_10_DOOR_AUTO_CLOSE = 10,
SE_11_SWINGING_DOOR = 11,
SE_12_LIGHT_SWITCH = 12,
SE_13_EXPLOSIVE = 13,
SE_14_SUBWAY_CAR = 14,
SE_15_SLIDING_DOOR = 15,
SE_16_REACTOR = 16,
SE_17_WARP_ELEVATOR = 17,
SE_18_INCREMENTAL_SECTOR_RISE_FALL = 18,
SE_19_EXPLOSION_LOWERS_CEILING = 19,
SE_20_STRETCH_BRIDGE = 20,
SE_21_DROP_FLOOR = 21,
SE_22_TEETH_DOOR = 22,
SE_23_ONE_WAY_TELEPORT = 23,
SE_24_CONVEYOR = 24,
SE_25_PISTON = 25,
SE_26 = 26,
SE_27_DEMO_CAM = 27,
SE_28_LIGHTNING = 28,
SE_29_WAVES = 29,
SE_30_TWO_WAY_TRAIN = 30,
SE_31_FLOOR_RISE_FALL = 31,
SE_32_CEILING_RISE_FALL = 32,
SE_33_QUAKE_DEBRIS = 33,
SE_34 = 34, // XXX
SE_35 = 35, // XXX
SE_36_PROJ_SHOOTER = 36,
SE_47_LIGHT_SWITCH = 47,
SE_48_LIGHT_SWITCH = 48,
SE_49_POINT_LIGHT = 49,
SE_50_SPOT_LIGHT = 50,
SE_130 = 130,
SE_131 = 131,
};
// sector lotags
enum
{
ST_0_NO_EFFECT = 0,
ST_1_ABOVE_WATER = 1,
ST_2_UNDERWATER = 2,
ST_3 = 3,
// ^^^ maybe not complete substitution in code
ST_9_SLIDING_ST_DOOR = 9,
ST_15_WARP_ELEVATOR = 15,
ST_16_PLATFORM_DOWN = 16,
ST_17_PLATFORM_UP = 17,
ST_18_ELEVATOR_DOWN = 18,
ST_19_ELEVATOR_UP = 19,
ST_20_CEILING_DOOR = 20,
ST_21_FLOOR_DOOR = 21,
ST_22_SPLITTING_DOOR = 22,
ST_23_SWINGING_DOOR = 23,
ST_25_SLIDING_DOOR = 25,
ST_26_SPLITTING_ST_DOOR = 26,
ST_27_STRETCH_BRIDGE = 27,
ST_28_DROP_FLOOR = 28,
ST_29_TEETH_DOOR = 29,
ST_30_ROTATE_RISE_BRIDGE = 30,
ST_31_TWO_WAY_TRAIN = 31,
// left: ST 32767, 65534, 65535
};
static inline void G_NewGame_EnterLevel(void) static inline void G_NewGame_EnterLevel(void)
{ {
@ -365,6 +285,14 @@ int initreactor(int j, int i, bool isrecon);
void spawneffector(int i); void spawneffector(int i);
void gameexitfrommenu(); void gameexitfrommenu();
extern void G_InitMultiPsky(int CLOUDYOCEAN__DYN, int MOONSKY1__DYN, int BIGORBIT1__DYN, int LA__DYN);
extern void G_SetupGlobalPsky(void);
//////////
extern void genspriteremaps(void);
struct Dispatcher struct Dispatcher
{ {
// global stuff // global stuff

View file

@ -139,10 +139,10 @@ void gameexitfrommenu()
} }
// shareware and TEN screens // shareware and TEN screens
if (!VOLUMEALL && !RR) if (!VOLUMEALL && !isRR())
showtwoscreens([](bool) {}); showtwoscreens([](bool) {});
endoomName = RR ? "redneck.bin" : VOLUMEALL ? "duke3d.bin" : "dukesw.bin"; endoomName = isRR() ? "redneck.bin" : VOLUMEALL ? "duke3d.bin" : "dukesw.bin";
ST_Endoom(); ST_Endoom();
} }

View file

@ -1122,7 +1122,7 @@ int parse(void)
s = g_sp->xvel; s = g_sp->xvel;
// sigh... this was yet another place where number literals were used as bit masks for every single value, making the code totally unreadable. // sigh... this was yet another place where number literals were used as bit masks for every single value, making the code totally unreadable.
if( (l& pducking) && ps[g_p].on_ground && (PlayerInput(g_p, SK_CROUCH) ^ !!(ps[g_p].crouch_toggle) )) if( (l& pducking) && ps[g_p].on_ground && (PlayerInput(g_p, SKB_CROUCH) ^ !!(ps[g_p].crouch_toggle) ))
j = 1; j = 1;
else if( (l& pfalling) && ps[g_p].jumping_counter == 0 && !ps[g_p].on_ground && ps[g_p].poszv > 2048 ) else if( (l& pfalling) && ps[g_p].jumping_counter == 0 && !ps[g_p].on_ground && ps[g_p].poszv > 2048 )
j = 1; j = 1;
@ -1130,15 +1130,15 @@ int parse(void)
j = 1; j = 1;
else if( (l& pstanding) && s >= 0 && s < 8) else if( (l& pstanding) && s >= 0 && s < 8)
j = 1; j = 1;
else if( (l& pwalking) && s >= 8 && !(PlayerInput(g_p, SK_RUN)) ) else if( (l& pwalking) && s >= 8 && !(PlayerInput(g_p, SKB_RUN)) )
j = 1; j = 1;
else if( (l& prunning) && s >= 8 && PlayerInput(g_p, SK_RUN) ) else if( (l& prunning) && s >= 8 && PlayerInput(g_p, SKB_RUN) )
j = 1; j = 1;
else if( (l& phigher) && ps[g_p].posz < (g_sp->z-(48<<8)) ) else if( (l& phigher) && ps[g_p].posz < (g_sp->z-(48<<8)) )
j = 1; j = 1;
else if( (l& pwalkingback) && s <= -8 && !(PlayerInput(g_p, SK_RUN)) ) else if( (l& pwalkingback) && s <= -8 && !(PlayerInput(g_p, SKB_RUN)) )
j = 1; j = 1;
else if( (l& prunningback) && s <= -8 && (PlayerInput(g_p, SK_RUN)) ) else if( (l& prunningback) && s <= -8 && (PlayerInput(g_p, SKB_RUN)) )
j = 1; j = 1;
else if( (l& pkicking) && ( ps[g_p].quick_kick > 0 || ( ps[g_p].curr_weapon == KNEE_WEAPON && ps[g_p].kickback_pic > 0 ) ) ) else if( (l& pkicking) && ( ps[g_p].quick_kick > 0 || ( ps[g_p].curr_weapon == KNEE_WEAPON && ps[g_p].kickback_pic > 0 ) ) )
j = 1; j = 1;
@ -1203,7 +1203,7 @@ int parse(void)
parseifelse( (( hittype[g_i].floorz - hittype[g_i].ceilingz ) >> 8 ) < *insptr); parseifelse( (( hittype[g_i].floorz - hittype[g_i].ceilingz ) >> 8 ) < *insptr);
break; break;
case concmd_ifhitspace: case concmd_ifhitspace:
parseifelse(PlayerInput(g_p, SK_OPEN)); parseifelse(PlayerInput(g_p, SKB_OPEN));
break; break;
case concmd_ifoutside: case concmd_ifoutside:
parseifelse(sector[g_sp->sectnum].ceilingstat & 1); parseifelse(sector[g_sp->sectnum].ceilingstat & 1);

View file

@ -175,7 +175,7 @@ void mploadsave()
multiflag = 0; multiflag = 0;
if(j == 0 && !RR) if(j == 0 && !isRR())
{ {
if(multiwho != myconnectindex) if(multiwho != myconnectindex)
{ {
@ -225,7 +225,7 @@ int domovethings()
j = -1; j = -1;
for (i = connecthead; i >= 0; i = connectpoint2[i]) for (i = connecthead; i >= 0; i = connectpoint2[i])
{ {
if (PlayerInput(i, SK_GAMEQUIT)) if (PlayerInput(i, SKB_GAMEQUIT))
{ {
if (i == myconnectindex) gameexitfrommenu(); if (i == myconnectindex) gameexitfrommenu();
if (screenpeek == i) if (screenpeek == i)

View file

@ -27,9 +27,10 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#include "compat.h" #include "compat.h"
#include "duke3d.h" #include "duke3d.h"
#include "mmulti.h" #include "mmulti.h"
#include "quotes.h" #include "quotemgr.h"
#include "sector.h" #include "sector.h"
#include "sounds.h" #include "sounds.h"
#include "constants.h"
BEGIN_DUKE_NS BEGIN_DUKE_NS
@ -342,22 +343,22 @@ inline bool isIn(int value, const std::initializer_list<int> &list)
// these are mainly here to avoid directly accessing the input data so that it can be more easily refactored later. // these are mainly here to avoid directly accessing the input data so that it can be more easily refactored later.
inline bool PlayerInput(int pl, int bit) inline bool PlayerInput(int pl, ESyncBits bit)
{ {
return TEST_SYNC_KEY(g_player[pl].input->bits, bit); return (!!((g_player[pl].input->bits) &bit));
} }
inline void PlayerSetInput(int pl, int bit) inline void PlayerSetInput(int pl, ESyncBits bit)
{ {
g_player[pl].input->bits |= (1 << bit); g_player[pl].input->bits |= bit;
} }
inline void PlayerClearInput(int pl, int bit) inline void PlayerClearInput(int pl, ESyncBits bit)
{ {
g_player[pl].input->bits &= ~(1 << bit); g_player[pl].input->bits &= ~bit;
} }
inline int PlayerInputBits(int pl, int bits) inline ESyncBits PlayerInputBits(int pl, ESyncBits bits)
{ {
return (g_player[pl].input->bits & bits); return (g_player[pl].input->bits & bits);
} }

View file

@ -60,13 +60,13 @@ void hud_input(int snum)
p = &ps[snum]; p = &ps[snum];
i = p->aim_mode; i = p->aim_mode;
p->aim_mode = PlayerInput(snum, SK_AIMMODE); p->aim_mode = PlayerInput(snum, SKB_AIMMODE);
if (p->aim_mode < i) if (p->aim_mode < i)
p->return_to_center = 9; p->return_to_center = 9;
if (isRR()) if (isRR())
{ {
if (PlayerInput(snum, SK_QUICK_KICK) && p->last_pissed_time == 0) if (PlayerInput(snum, SKB_QUICK_KICK) && p->last_pissed_time == 0)
{ {
if (!isRRRA() || sprite[p->i].extra > 0) if (!isRRRA() || sprite[p->i].extra > 0)
{ {
@ -85,7 +85,7 @@ void hud_input(int snum)
} }
else else
{ {
if (PlayerInput(snum, SK_QUICK_KICK) && p->quick_kick == 0 && (p->curr_weapon != KNEE_WEAPON || p->kickback_pic == 0)) if (PlayerInput(snum, SKB_QUICK_KICK) && p->quick_kick == 0 && (p->curr_weapon != KNEE_WEAPON || p->kickback_pic == 0))
{ {
SetGameVarID(g_iReturnVarID, 0, -1, snum); SetGameVarID(g_iReturnVarID, 0, -1, snum);
OnEvent(EVENT_QUICKKICK, -1, snum, -1); OnEvent(EVENT_QUICKKICK, -1, snum, -1);
@ -99,16 +99,16 @@ void hud_input(int snum)
// WTF??? In the original source this was a soup of numeric literals, i.e. totally incomprehensible. // WTF??? In the original source this was a soup of numeric literals, i.e. totally incomprehensible.
// The bit mask has been exported to the bit type enum. // The bit mask has been exported to the bit type enum.
if (!PlayerInputBits(snum, SK_INTERFACE_BITS)) if (!PlayerInputBits(snum, SKB_INTERFACE_BITS))
p->interface_toggle_flag = 0; p->interface_toggle_flag = 0;
else if (p->interface_toggle_flag == 0) else if (p->interface_toggle_flag == 0)
{ {
p->interface_toggle_flag = 1; p->interface_toggle_flag = 1;
if (PlayerInput(snum, SK_PAUSE)) if (PlayerInput(snum, SKB_PAUSE))
{ {
ud.pause_on = !ud.pause_on; ud.pause_on = !ud.pause_on;
if (ud.pause_on == 1 && PlayerInput(snum, SK_RUN)) ud.pause_on = 2; // Mode 2 is silent, i.e. prints no notification. if (ud.pause_on == 1 && PlayerInput(snum, SKB_RUN)) ud.pause_on = 2; // Mode 2 is silent, i.e. prints no notification.
Mus_SetPaused(ud.pause_on); Mus_SetPaused(ud.pause_on);
S_PauseSounds(ud.pause_on); S_PauseSounds(ud.pause_on);
} }
@ -118,7 +118,7 @@ void hud_input(int snum)
if (sprite[p->i].extra <= 0) return; if (sprite[p->i].extra <= 0) return;
// Activate an inventory item. This just forwards to the other inventory bits. If the inventory selector was taken out of the playsim this could be removed. // Activate an inventory item. This just forwards to the other inventory bits. If the inventory selector was taken out of the playsim this could be removed.
if (PlayerInput(snum, SK_INVENTORY) && p->newowner == -1) if (PlayerInput(snum, SKB_INVENTORY) && p->newowner == -1)
{ {
SetGameVarID(g_iReturnVarID, 0, -1, snum); SetGameVarID(g_iReturnVarID, 0, -1, snum);
OnEvent(EVENT_INVENTORY, -1, snum, -1); OnEvent(EVENT_INVENTORY, -1, snum, -1);
@ -127,16 +127,16 @@ void hud_input(int snum)
switch (p->inven_icon) switch (p->inven_icon)
{ {
// Yet another place where no symbolic constants were used. :( // Yet another place where no symbolic constants were used. :(
case ICON_JETPACK: PlayerSetInput(snum, SK_JETPACK); break; case ICON_JETPACK: PlayerSetInput(snum, SKB_JETPACK); break;
case ICON_HOLODUKE: PlayerSetInput(snum, SK_HOLODUKE); break; case ICON_HOLODUKE: PlayerSetInput(snum, SKB_HOLODUKE); break;
case ICON_HEATS: PlayerSetInput(snum, SK_NIGHTVISION); break; case ICON_HEATS: PlayerSetInput(snum, SKB_NIGHTVISION); break;
case ICON_FIRSTAID: PlayerSetInput(snum, SK_MEDKIT); break; case ICON_FIRSTAID: PlayerSetInput(snum, SKB_MEDKIT); break;
case ICON_STEROIDS: PlayerSetInput(snum, SK_STEROIDS); break; case ICON_STEROIDS: PlayerSetInput(snum, SKB_STEROIDS); break;
} }
} }
} }
if (!isRR() && PlayerInput(snum, SK_NIGHTVISION)) if (!isRR() && PlayerInput(snum, SKB_NIGHTVISION))
{ {
SetGameVarID(g_iReturnVarID, 0, -1, snum); SetGameVarID(g_iReturnVarID, 0, -1, snum);
OnEvent(EVENT_USENIGHTVISION, -1, snum, -1); OnEvent(EVENT_USENIGHTVISION, -1, snum, -1);
@ -150,7 +150,7 @@ void hud_input(int snum)
} }
} }
if (PlayerInput(snum, SK_STEROIDS)) if (PlayerInput(snum, SKB_STEROIDS))
{ {
SetGameVarID(g_iReturnVarID, 0, -1, snum); SetGameVarID(g_iReturnVarID, 0, -1, snum);
OnEvent(EVENT_USESTEROIDS, -1, snum, -1); OnEvent(EVENT_USESTEROIDS, -1, snum, -1);
@ -167,11 +167,11 @@ void hud_input(int snum)
return; return;
} }
if (PlayerInput(snum, SK_INV_LEFT) || PlayerInput(snum, SK_INV_RIGHT)) if (PlayerInput(snum, SKB_INV_LEFT) || PlayerInput(snum, SKB_INV_RIGHT))
{ {
p->invdisptime = 26 * 2; p->invdisptime = 26 * 2;
if (PlayerInput(snum, SK_INV_RIGHT)) k = 1; if (PlayerInput(snum, SKB_INV_RIGHT)) k = 1;
else k = 0; else k = 0;
dainv = p->inven_icon; dainv = p->inven_icon;
@ -233,13 +233,13 @@ void hud_input(int snum)
else dainv = 0; else dainv = 0;
// These events force us to keep the inventory selector in the playsim as opposed to the UI where it really belongs. // These events force us to keep the inventory selector in the playsim as opposed to the UI where it really belongs.
if (PlayerInput(snum, SK_INV_LEFT)) if (PlayerInput(snum, SKB_INV_LEFT))
{ {
SetGameVarID(g_iReturnVarID, dainv, -1, snum); SetGameVarID(g_iReturnVarID, dainv, -1, snum);
OnEvent(EVENT_INVENTORYLEFT, -1, snum, -1); OnEvent(EVENT_INVENTORYLEFT, -1, snum, -1);
dainv = GetGameVarID(g_iReturnVarID, -1, snum); dainv = GetGameVarID(g_iReturnVarID, -1, snum);
} }
if (PlayerInput(snum, SK_INV_RIGHT)) if (PlayerInput(snum, SKB_INV_RIGHT))
{ {
SetGameVarID(g_iReturnVarID, dainv, -1, snum); SetGameVarID(g_iReturnVarID, dainv, -1, snum);
OnEvent(EVENT_INVENTORYRIGHT, -1, snum, -1); OnEvent(EVENT_INVENTORYRIGHT, -1, snum, -1);
@ -251,14 +251,14 @@ void hud_input(int snum)
if (dainv >= 1 && dainv < 8) FTA(invquotes[dainv - 1], p); if (dainv >= 1 && dainv < 8) FTA(invquotes[dainv - 1], p);
} }
j = (PlayerInputBits(snum, SK_WEAPONMASK_BITS) >> SK_WEAPON_BITS) - 1; j = (PlayerInputBits(snum, SKB_WEAPONMASK_BITS) >> SK_WEAPON_BITS) - 1;
if (j > 0 && p->kickback_pic > 0) if (j > 0 && p->kickback_pic > 0)
p->wantweaponfire = j; p->wantweaponfire = j;
// Here we have to be extra careful that the weapons do not get mixed up, so let's keep the code for Duke and RR completely separate. // Here we have to be extra careful that the weapons do not get mixed up, so let's keep the code for Duke and RR completely separate.
fi.selectweapon(snum, j); fi.selectweapon(snum, j);
if (PlayerInput(snum, SK_HOLSTER)) if (PlayerInput(snum, SKB_HOLSTER))
{ {
if (p->curr_weapon > KNEE_WEAPON) if (p->curr_weapon > KNEE_WEAPON)
{ {
@ -277,7 +277,7 @@ void hud_input(int snum)
} }
} }
if (PlayerInput(snum, SK_HOLODUKE) && (isRR() || p->newowner == -1)) if (PlayerInput(snum, SKB_HOLODUKE) && (isRR() || p->newowner == -1))
{ {
SetGameVarID(g_iReturnVarID, 0, -1, snum); SetGameVarID(g_iReturnVarID, 0, -1, snum);
OnEvent(EVENT_HOLODUKEON, -1, snum, -1); OnEvent(EVENT_HOLODUKEON, -1, snum, -1);
@ -333,7 +333,7 @@ void hud_input(int snum)
} }
} }
if (isRR() && PlayerInput(snum, SK_NIGHTVISION) && p->newowner == -1) if (isRR() && PlayerInput(snum, SKB_NIGHTVISION) && p->newowner == -1)
{ {
SetGameVarID(g_iReturnVarID, 0, -1, snum); SetGameVarID(g_iReturnVarID, 0, -1, snum);
OnEvent(EVENT_USENIGHTVISION, -1, snum, -1); OnEvent(EVENT_USENIGHTVISION, -1, snum, -1);
@ -365,7 +365,7 @@ void hud_input(int snum)
} }
} }
if (PlayerInput(snum, SK_MEDKIT)) if (PlayerInput(snum, SKB_MEDKIT))
{ {
SetGameVarID(g_iReturnVarID, 0, -1, snum); SetGameVarID(g_iReturnVarID, 0, -1, snum);
OnEvent(EVENT_USEMEDKIT, -1, snum, -1); OnEvent(EVENT_USEMEDKIT, -1, snum, -1);
@ -418,7 +418,7 @@ void hud_input(int snum)
} }
} }
if (PlayerInput(snum, SK_JETPACK) && (isRR() || p->newowner == -1)) if (PlayerInput(snum, SKB_JETPACK) && (isRR() || p->newowner == -1))
{ {
SetGameVarID(g_iReturnVarID, 0, -1, snum); SetGameVarID(g_iReturnVarID, 0, -1, snum);
OnEvent(EVENT_USEJETPACK, -1, snum, -1); OnEvent(EVENT_USEJETPACK, -1, snum, -1);
@ -486,7 +486,7 @@ void hud_input(int snum)
} }
} }
if (PlayerInput(snum, SK_TURNAROUND) && p->one_eighty_count == 0) if (PlayerInput(snum, SKB_TURNAROUND) && p->one_eighty_count == 0)
{ {
SetGameVarID(g_iReturnVarID, 0, -1, snum); SetGameVarID(g_iReturnVarID, 0, -1, snum);
OnEvent(EVENT_TURNAROUND, -1, snum, -1); OnEvent(EVENT_TURNAROUND, -1, snum, -1);

View file

@ -1,57 +0,0 @@
//-------------------------------------------------------------------------
/*
Copyright (C) 2016 EDuke32 developers and contributors
This file is part of EDuke32.
EDuke32 is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License version 2
as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
//-------------------------------------------------------------------------
#pragma once
BEGIN_DUKE_NS
enum dukeinv_t
{
GET_STEROIDS, // 0
GET_SHIELD,
GET_SCUBA,
GET_HOLODUKE,
GET_JETPACK,
GET_DUMMY1, // 5
GET_ACCESS,
GET_HEATS,
GET_DUMMY2,
GET_FIRSTAID,
GET_BOOTS, // 10
GET_MAX
};
// these are not in the same order as the above, and it can't be changed for compat reasons. lame!
enum dukeinvicon_t
{
ICON_NONE, // 0
ICON_FIRSTAID,
ICON_STEROIDS,
ICON_HOLODUKE,
ICON_JETPACK,
ICON_HEATS, // 5
ICON_SCUBA,
ICON_BOOTS,
ICON_MAX
};
END_DUKE_NS

View file

@ -37,12 +37,7 @@ static FORCE_INLINE int32_t krand2(void)
#define BGSTRETCH (hud_bgstretch ? 1024 : 0) #define BGSTRETCH (hud_bgstretch ? 1024 : 0)
#define RANDOMSCRAP(s, i) \ void RANDOMSCRAP(spritetype* s, int i);
{ \
int32_t const r1 = krand2(), r2 = krand2(), r3 = krand2(), r4 = krand2(), r5 = krand2(), r6 = krand2(), r7 = krand2(); \
A_InsertSprite(s->sectnum,s->x+(r7&255)-128,s->y+(r6&255)-128,s->z-ZOFFSET3-(r5&8191),\
TILE_SCRAP6+(r4&15),-8,RR?16:48,RR?16:48,r3&2047,(r2&63)+64,-512-(r1&2047),i,5); \
}
#define TRAVERSE_SPRITE_SECT(l, o, n) (o) = (l); ((o) != -1) && ((n) = nextspritesect[o]); (o) = (n) #define TRAVERSE_SPRITE_SECT(l, o, n) (o) = (l); ((o) != -1) && ((n) = nextspritesect[o]); (o) = (n)
#define TRAVERSE_SPRITE_STAT(l, o, n) (o) = (l); ((o) != -1) && ((n) = nextspritestat[o]); (o) = (n) #define TRAVERSE_SPRITE_STAT(l, o, n) (o) = (l); ((o) != -1) && ((n) = nextspritestat[o]); (o) = (n)
@ -57,8 +52,6 @@ static FORCE_INLINE int32_t krand2(void)
#define BIT(shift) (1u<<(shift)) #define BIT(shift) (1u<<(shift))
#define TEST_SYNC_KEY(bits, sync_num) (!!TEST((bits), BIT(sync_num)))
inline bool AFLAMABLE(int X) inline bool AFLAMABLE(int X)
{ {
return (X == TILE_BOX || X == TILE_TREE1 || X == TILE_TREE2 || X == TILE_TIRE || X == TILE_CONE); return (X == TILE_BOX || X == TILE_TREE1 || X == TILE_TREE2 || X == TILE_TIRE || X == TILE_CONE);
@ -70,78 +63,6 @@ inline bool AFLAMABLE(int X)
// NETWORK - REDEFINABLE SHARED (SYNC) KEYS BIT POSITIONS // NETWORK - REDEFINABLE SHARED (SYNC) KEYS BIT POSITIONS
// //
enum
{
// Todo: Make this bit masks - cannot be done before eliminating all old code using it
SK_JUMP = 0 ,
SK_CROUCH = 1 ,
SK_FIRE = 2 ,
SK_AIM_UP = 3 ,
SK_AIM_DOWN = 4 ,
SK_RUN = 5 ,
SK_LOOK_LEFT = 6 ,
SK_LOOK_RIGHT = 7 ,
// weapons take up 4 bits...
SK_WEAPON_BITS = 8 ,
SK_WEAPON_BITS1 = 9 ,
SK_WEAPON_BITS2 = 10,
SK_WEAPON_BITS3 = 11,
SK_STEROIDS = 12,
SK_LOOK_UP = 13,
SK_LOOK_DOWN = 14,
SK_NIGHTVISION = 15,
SK_MEDKIT = 16,
SK_MULTIFLAG = 17,
SK_CENTER_VIEW = 18,
SK_HOLSTER = 19,
SK_INV_LEFT = 20,
SK_PAUSE = 21,
SK_QUICK_KICK = 22,
SK_AIMMODE = 23,
SK_HOLODUKE = 24,
SK_JETPACK = 25,
SK_GAMEQUIT = 26,
SK_INV_RIGHT = 27,
SK_TURNAROUND = 28,
SK_OPEN = 29,
SK_INVENTORY = 30,
SK_ESCAPE = 31,
SKB_JUMP = 1 << 0,
SKB_CROUCH = 1 << 1,
SKB_FIRE = 1 << 2,
SKB_AIM_UP = 1 << 3,
SKB_AIM_DOWN = 1 << 4,
SKB_RUN = 1 << 5,
SKB_LOOK_LEFT = 1 << 6,
SKB_LOOK_RIGHT = 1 << 7,
SKB_STEROIDS = 1 << 12,
SKB_LOOK_UP = 1 << 13,
SKB_LOOK_DOWN = 1 << 14,
SKB_NIGHTVISION = 1 << 15,
SKB_MEDKIT = 1 << 16,
SKB_MULTIFLAG = 1 << 17,
SKB_CENTER_VIEW = 1 << 18,
SKB_HOLSTER = 1 << 19,
SKB_INV_LEFT = 1 << 20,
SKB_PAUSE = 1 << 21,
SKB_QUICK_KICK = 1 << 22,
SKB_AIMMODE = 1 << 23,
SKB_HOLODUKE = 1 << 24,
SKB_JETPACK = 1 << 25,
SKB_GAMEQUIT = 1 << 26,
SKB_INV_RIGHT = 1 << 27,
SKB_TURNAROUND = 1 << 28,
SKB_OPEN = 1 << 29,
SKB_INVENTORY = 1 << 30,
SKB_ESCAPE = 1 << 31,
SK_WEAPONMASK_BITS = (15u << SK_WEAPON_BITS),
SK_INTERFACE_BITS = (SK_WEAPONMASK_BITS | BIT(SK_STEROIDS) | BIT(SK_NIGHTVISION) | BIT(SK_MEDKIT) | BIT(SK_QUICK_KICK) | \
BIT(SK_HOLSTER) | BIT(SK_INV_LEFT) | BIT(SK_PAUSE) | BIT(SK_HOLODUKE) | BIT(SK_JETPACK) | BIT(SK_INV_RIGHT) | \
BIT(SK_TURNAROUND) | BIT(SK_OPEN) | BIT(SK_INVENTORY) | BIT(SK_ESCAPE)),
};
// rotatesprite flags // rotatesprite flags
#define ROTATE_SPRITE_TRANSLUCENT (BIT(0)) #define ROTATE_SPRITE_TRANSLUCENT (BIT(0))
#define ROTATE_SPRITE_VIEW_CLIP (BIT(1)) // clip to view #define ROTATE_SPRITE_VIEW_CLIP (BIT(1)) // clip to view
@ -155,45 +76,7 @@ enum
#define RS_SCALE BIT(16) #define RS_SCALE BIT(16)
// system defines for status bits
#define CEILING_STAT_PLAX BIT(0)
#define CEILING_STAT_SLOPE BIT(1)
#define CEILING_STAT_SWAPXY BIT(2)
#define CEILING_STAT_SMOOSH BIT(3)
#define CEILING_STAT_XFLIP BIT(4)
#define CEILING_STAT_YFLIP BIT(5)
#define CEILING_STAT_RELATIVE BIT(6)
#define CEILING_STAT_TYPE_MASK (BIT(7)|BIT(8))
#define CEILING_STAT_MASKED BIT(7)
#define CEILING_STAT_TRANS BIT(8)
#define CEILING_STAT_TRANS_FLIP (BIT(7)|BIT(8))
#define CEILING_STAT_FAF_BLOCK_HITSCAN BIT(15)
#define FLOOR_STAT_PLAX BIT(0)
#define FLOOR_STAT_SLOPE BIT(1)
#define FLOOR_STAT_SWAPXY BIT(2)
#define FLOOR_STAT_SMOOSH BIT(3)
#define FLOOR_STAT_XFLIP BIT(4)
#define FLOOR_STAT_YFLIP BIT(5)
#define FLOOR_STAT_RELATIVE BIT(6)
#define FLOOR_STAT_TYPE_MASK (BIT(7)|BIT(8))
#define FLOOR_STAT_MASKED BIT(7)
#define FLOOR_STAT_TRANS BIT(8)
#define FLOOR_STAT_TRANS_FLIP (BIT(7)|BIT(8))
#define FLOOR_STAT_FAF_BLOCK_HITSCAN BIT(15)
#define CSTAT_WALL_BLOCK BIT(0)
#define CSTAT_WALL_BOTTOM_SWAP BIT(1)
#define CSTAT_WALL_ALIGN_BOTTOM BIT(2)
#define CSTAT_WALL_XFLIP BIT(3)
#define CSTAT_WALL_MASKED BIT(4)
#define CSTAT_WALL_1WAY BIT(5)
#define CSTAT_WALL_BLOCK_HITSCAN BIT(6)
#define CSTAT_WALL_TRANSLUCENT BIT(7)
#define CSTAT_WALL_YFLIP BIT(8)
#define CSTAT_WALL_TRANS_FLIP BIT(9)
#define CSTAT_WALL_BLOCK_ACTOR (BIT(14)) // my def
#define CSTAT_WALL_WARP_HITSCAN (BIT(15)) // my def
//cstat, bit 0: 1 = Blocking sprite (use with clipmove, getzrange) "B" //cstat, bit 0: 1 = Blocking sprite (use with clipmove, getzrange) "B"
// bit 1: 1 = 50/50 transluscence, 0 = normal "T" // bit 1: 1 = 50/50 transluscence, 0 = normal "T"

View file

@ -750,7 +750,7 @@ void horizAngleAdjust(int snum, int delta)
#endif #endif
} }
void playerLookUp(int snum, int sb_snum) void playerLookUp(int snum, ESyncBits sb_snum)
{ {
auto p = &ps[snum]; auto p = &ps[snum];
SetGameVarID(g_iReturnVarID, 0, p->i, snum); SetGameVarID(g_iReturnVarID, 0, p->i, snum);
@ -762,7 +762,7 @@ void playerLookUp(int snum, int sb_snum)
} }
} }
void playerLookDown(int snum, int sb_snum) void playerLookDown(int snum, ESyncBits sb_snum)
{ {
auto p = &ps[snum]; auto p = &ps[snum];
SetGameVarID(g_iReturnVarID, 0, p->i, snum); SetGameVarID(g_iReturnVarID, 0, p->i, snum);
@ -774,7 +774,7 @@ void playerLookDown(int snum, int sb_snum)
} }
} }
void playerAimUp(int snum, int sb_snum) void playerAimUp(int snum, ESyncBits sb_snum)
{ {
auto p = &ps[snum]; auto p = &ps[snum];
SetGameVarID(g_iReturnVarID, 0, p->i, snum); SetGameVarID(g_iReturnVarID, 0, p->i, snum);
@ -785,7 +785,7 @@ void playerAimUp(int snum, int sb_snum)
} }
} }
void playerAimDown(int snum, int sb_snum) void playerAimDown(int snum, ESyncBits sb_snum)
{ {
auto p = &ps[snum]; auto p = &ps[snum];
SetGameVarID(g_iReturnVarID, 0, p->i, snum); SetGameVarID(g_iReturnVarID, 0, p->i, snum);

View file

@ -23,11 +23,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef player_h_ #ifndef player_h_
#define player_h_ #define player_h_
#include "inv.h"
#include "names.h" #include "names.h"
#include "fix16.h" #include "fix16.h"
#include "net.h" #include "net.h"
#include "tarray.h" #include "tarray.h"
#include "constants.h"
BEGIN_DUKE_NS BEGIN_DUKE_NS
@ -134,7 +134,7 @@ typedef struct STATUSBARTYPE {
} DukeStatus_t; } DukeStatus_t;
typedef struct { typedef struct {
uint32_t bits; ESyncBits bits;
int16_t fvel, svel; int16_t fvel, svel;
fix16_t q16avel, q16horz; fix16_t q16avel, q16horz;
} input_t; } input_t;
@ -440,10 +440,10 @@ void playerJump(int snum, int fz, int cz);
void playerLookLeft(int snum); void playerLookLeft(int snum);
void playerLookRight(int snum); void playerLookRight(int snum);
void playerCenterView(int snum); void playerCenterView(int snum);
void playerLookUp(int snum, int sb_snum); void playerLookUp(int snum, ESyncBits sb_snum);
void playerLookDown(int snum, int sb_snum); void playerLookDown(int snum, ESyncBits sb_snum);
void playerAimUp(int snum, int sb_snum); void playerAimUp(int snum, ESyncBits sb_snum);
void playerAimDown(int snum, int sb_snum); void playerAimDown(int snum, ESyncBits sb_snum);
bool view(struct player_struct* pp, int* vx, int* vy, int* vz, short* vsectnum, int ang, int horiz); bool view(struct player_struct* pp, int* vx, int* vy, int* vz, short* vsectnum, int ang, int horiz);
extern int lastvisinc; extern int lastvisinc;

View file

@ -44,7 +44,7 @@ source as it is released.
BEGIN_DUKE_NS BEGIN_DUKE_NS
void fireweapon_ww(int snum); void fireweapon_ww(int snum);
void operateweapon_ww(int snum, int sb_snum, int psect); void operateweapon_ww(int snum, ESyncBits sb_snum, int psect);
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// //
@ -1265,7 +1265,7 @@ void selectweapon_d(int snum, int j) // playernum, weaponnum
if (p->holster_weapon) if (p->holster_weapon)
{ {
PlayerSetInput(snum, SK_HOLSTER); PlayerSetInput(snum, SKB_HOLSTER);
p->weapon_pos = -9; p->weapon_pos = -9;
} }
else if (j >= MIN_WEAPON && p->gotweapon[j] && (unsigned int)p->curr_weapon != j) switch (j) else if (j >= MIN_WEAPON && p->gotweapon[j] && (unsigned int)p->curr_weapon != j) switch (j)
@ -1496,7 +1496,7 @@ int doincrements_d(struct player_struct* p)
} }
spritesound(DUKE_CRACK_FIRST, p->i); spritesound(DUKE_CRACK_FIRST, p->i);
} }
else if (p->knuckle_incs == 22 || PlayerInput(snum, SK_FIRE)) else if (p->knuckle_incs == 22 || PlayerInput(snum, SKB_FIRE))
p->knuckle_incs = 0; p->knuckle_incs = 0;
return 1; return 1;
@ -1550,7 +1550,7 @@ void checkweapons_d(struct player_struct* p)
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
static void operateJetpack(int snum, int sb_snum, int psectlotag, int fz, int cz, int shrunk) static void operateJetpack(int snum, ESyncBits sb_snum, int psectlotag, int fz, int cz, int shrunk)
{ {
int j; int j;
auto p = &ps[snum]; auto p = &ps[snum];
@ -1621,7 +1621,7 @@ static void operateJetpack(int snum, int sb_snum, int psectlotag, int fz, int cz
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
static void movement(int snum, int sb_snum, int psect, int fz, int cz, int shrunk, int truefdist) static void movement(int snum, ESyncBits sb_snum, int psect, int fz, int cz, int shrunk, int truefdist)
{ {
int j; int j;
auto p = &ps[snum]; auto p = &ps[snum];
@ -1806,7 +1806,7 @@ static void movement(int snum, int sb_snum, int psect, int fz, int cz, int shrun
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
static void underwater(int snum, int sb_snum, int psect, int fz, int cz) static void underwater(int snum, ESyncBits sb_snum, int psect, int fz, int cz)
{ {
int j; int j;
auto p = &ps[snum]; auto p = &ps[snum];
@ -2055,7 +2055,7 @@ static void fireweapon(int snum)
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
static void operateweapon(int snum, int sb_snum, int psect) static void operateweapon(int snum, ESyncBits sb_snum, int psect)
{ {
auto p = &ps[snum]; auto p = &ps[snum];
int pi = p->i; int pi = p->i;
@ -2076,7 +2076,7 @@ static void operateweapon(int snum, int sb_snum, int psect)
{ {
p->ammo_amount[HANDBOMB_WEAPON]--; p->ammo_amount[HANDBOMB_WEAPON]--;
if (p->on_ground && (sb_snum & 2)) if (p->on_ground && (sb_snum & SKB_CROUCH))
{ {
k = 15; k = 15;
i = ((p->gethorizsum() - 100) * 20); i = ((p->gethorizsum() - 100) * 20);
@ -2505,7 +2505,7 @@ static void operateweapon(int snum, int sb_snum, int psect)
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
static void processweapon(int snum, int sb_snum, int psect) static void processweapon(int snum, ESyncBits sb_snum, int psect)
{ {
auto p = &ps[snum]; auto p = &ps[snum];
int pi = p->i; int pi = p->i;
@ -2590,7 +2590,7 @@ void processinput_d(int snum)
{ {
int j, i, k, doubvel, fz, cz, hz, lz, truefdist, x, y; int j, i, k, doubvel, fz, cz, hz, lz, truefdist, x, y;
char shrunk; char shrunk;
unsigned long sb_snum; ESyncBits sb_snum;
short psect, psectlotag, tempsect, pi; short psect, psectlotag, tempsect, pi;
struct player_struct* p; struct player_struct* p;
spritetype* s; spritetype* s;
@ -2602,7 +2602,7 @@ void processinput_d(int snum)
g_player[snum].horizAngleAdjust = 0; g_player[snum].horizAngleAdjust = 0;
g_player[snum].horizSkew = 0; g_player[snum].horizSkew = 0;
if (p->cheat_phase <= 0) sb_snum = PlayerInputBits(snum, ~0); if (p->cheat_phase <= 0) sb_snum = PlayerInputBits(snum, SKB_ALL);
else sb_snum = 0; else sb_snum = 0;
auto sb_fvel = PlayerInputForwardVel(snum); auto sb_fvel = PlayerInputForwardVel(snum);
@ -3157,12 +3157,12 @@ HORIZONLY:
processweapon(snum, sb_snum, psect); processweapon(snum, sb_snum, psect);
} }
void processweapon_d(int s, int ss, int p) void processweapon_d(int s, ESyncBits ss, int p)
{ {
processweapon(s, ss, p); processweapon(s, ss, p);
} }
void processmove_d(int snum, int sb_snum, int psect, int fz, int cz, int shrunk, int truefdist) void processmove_d(int snum, ESyncBits sb_snum, int psect, int fz, int cz, int shrunk, int truefdist)
{ {
int psectlotag = sector[psect].lotag; int psectlotag = sector[psect].lotag;
auto p = &ps[snum]; auto p = &ps[snum];

View file

@ -1068,7 +1068,7 @@ void selectweapon_r(int snum, int j)
if (p->holster_weapon) if (p->holster_weapon)
{ {
PlayerSetInput(snum, SK_HOLSTER); PlayerSetInput(snum, SKB_HOLSTER);
p->weapon_pos = -9; p->weapon_pos = -9;
} }
else if (j >= MIN_WEAPON && p->gotweapon[j] && p->curr_weapon != j) switch (j) else if (j >= MIN_WEAPON && p->gotweapon[j] && p->curr_weapon != j) switch (j)
@ -1456,7 +1456,7 @@ int doincrements_r(struct player_struct* p)
else spritesound(DUKE_CRACK2, p->i); else spritesound(DUKE_CRACK2, p->i);
} }
} }
else if (p->knuckle_incs == 22 || PlayerInput(snum, SK_FIRE)) else if (p->knuckle_incs == 22 || PlayerInput(snum, SKB_FIRE))
p->knuckle_incs = 0; p->knuckle_incs = 0;
return 1; return 1;
@ -1558,7 +1558,7 @@ void checkweapons_r(struct player_struct* p)
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
/*static*/ void onMotorcycle(int snum, int &sb_snum) static void onMotorcycle(int snum, ESyncBits &sb_snum)
{ {
auto p = &ps[snum]; auto p = &ps[snum];
auto pi = p->i; auto pi = p->i;
@ -1847,7 +1847,7 @@ void checkweapons_r(struct player_struct* p)
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
/*static*/ void onBoat(int snum, int& sb_snum) static void onBoat(int snum, ESyncBits& sb_snum)
{ {
auto p = &ps[snum]; auto p = &ps[snum];
auto pi = p->i; auto pi = p->i;
@ -2127,7 +2127,7 @@ void checkweapons_r(struct player_struct* p)
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
static void movement(int snum, int sb_snum, int psect, int fz, int cz, int shrunk, int truefdist) static void movement(int snum, ESyncBits sb_snum, int psect, int fz, int cz, int shrunk, int truefdist)
{ {
auto p = &ps[snum]; auto p = &ps[snum];
auto pi = p->i; auto pi = p->i;
@ -2355,7 +2355,7 @@ static void movement(int snum, int sb_snum, int psect, int fz, int cz, int shrun
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
static void underwater(int snum, int sb_snum, int psect, int fz, int cz) static void underwater(int snum, ESyncBits sb_snum, int psect, int fz, int cz)
{ {
int j; int j;
auto p = &ps[snum]; auto p = &ps[snum];
@ -2775,7 +2775,7 @@ static void fireweapon(int snum)
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
static void operateweapon(int snum, int sb_snum, int psect) static void operateweapon(int snum, ESyncBits sb_snum, int psect)
{ {
auto p = &ps[snum]; auto p = &ps[snum];
int pi = p->i; int pi = p->i;
@ -3368,7 +3368,7 @@ static void operateweapon(int snum, int sb_snum, int psect)
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
static void processweapon(int snum, int sb_snum, int psect) static void processweapon(int snum, ESyncBits sb_snum, int psect)
{ {
auto p = &ps[snum]; auto p = &ps[snum];
int pi = p->i; int pi = p->i;
@ -3433,7 +3433,7 @@ void processinput_r(int snum)
{ {
int j, i, k, doubvel, fz, cz, hz, lz, truefdist, x, y, var60; int j, i, k, doubvel, fz, cz, hz, lz, truefdist, x, y, var60;
char shrunk; char shrunk;
int sb_snum; ESyncBits sb_snum;
short psect, psectlotag, tempsect, pi; short psect, psectlotag, tempsect, pi;
struct player_struct* p; struct player_struct* p;
spritetype* s; spritetype* s;
@ -4260,12 +4260,12 @@ HORIZONLY:
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void processweapon_r(int s, int ss, int p) void processweapon_r(int s, ESyncBits ss, int p)
{ {
processweapon(s, ss, p); processweapon(s, ss, p);
} }
void processmove_r(int snum, int sb_snum, int psect, int fz, int cz, int shrunk, int truefdist) void processmove_r(int snum, ESyncBits sb_snum, int psect, int fz, int cz, int shrunk, int truefdist)
{ {
int psectlotag = sector[psect].lotag; int psectlotag = sector[psect].lotag;
auto p = &ps[snum]; auto p = &ps[snum];

View file

@ -309,7 +309,7 @@ void fireweapon_ww(int snum)
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void operateweapon_ww(int snum, int sb_snum, int psect) void operateweapon_ww(int snum, ESyncBits sb_snum, int psect)
{ {
auto p = &ps[snum]; auto p = &ps[snum];
int pi = p->i; int pi = p->i;

View file

@ -104,7 +104,7 @@ void fakedomovethings(void)
input *syn; input *syn;
struct player_struct *p; struct player_struct *p;
int i, j, k, doubvel, fz, cz, hz, lz, x, y; int i, j, k, doubvel, fz, cz, hz, lz, x, y;
unsigned int sb_snum; ESyncBits sb_snum;
short psect, psectlotag, tempsect, backcstat; short psect, psectlotag, tempsect, backcstat;
uint8_t shrunk, spritebridge; uint8_t shrunk, spritebridge;

View file

@ -1,97 +0,0 @@
//-------------------------------------------------------------------------
/*
Copyright (C) 2011 EDuke32 developers and contributors
This file is part of EDuke32.
EDuke32 is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License version 2
as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
//-------------------------------------------------------------------------
#ifndef quotes_h_
#define quotes_h_
#include "quotemgr.h"
#define OBITQUOTEINDEX (MAXQUOTES-128)
#define SUICIDEQUOTEINDEX (MAXQUOTES-32)
#define QUOTE_SHOW_MAP_OFF 1
#define QUOTE_ACTIVATED 2
#define QUOTE_MEDKIT 3
#define QUOTE_LOCKED 4
#define QUOTE_CHEAT_EVERYTHING 5
#define QUOTE_BOOTS 6
#define QUOTE_WASTED 7
#define QUOTE_UNLOCKED 8
#define QUOTE_FOUND_SECRET 9
#define QUOTE_SQUISHED 10
#define QUOTE_USED_STEROIDS 12
#define QUOTE_DEAD 13
#define QUOTE_DEACTIVATED 15
#define QUOTE_CHEAT_GODMODE_ON 17
#define QUOTE_CHEAT_GODMODE_OFF 18
#define QUOTE_CROSSHAIR_OFF 21
#define QUOTE_CHEATS_DISABLED 22
#define QUOTE_MESSAGES_ON 23
#define QUOTE_MESSAGES_OFF 24
#define QUOTE_MUSIC 26
#define QUOTE_CHEAT_STEROIDS 37
#define QUOTE_F1HELP 40
#define QUOTE_MOUSE_AIMING_OFF 44
#define QUOTE_HOLODUKE_ON 47
#define QUOTE_HOLODUKE_OFF 48
#define QUOTE_HOLODUKE_NOT_FOUND 49
#define QUOTE_JETPACK_NOT_FOUND 50
#define QUOTE_JETPACK_ON 52
#define QUOTE_JETPACK_OFF 53
#define QUOTE_NEED_BLUE_KEY 70
#define QUOTE_NEED_RED_KEY 71
#define QUOTE_NEED_YELLOW_KEY 72
#define QUOTE_WEAPON_LOWERED 73
#define QUOTE_WEAPON_RAISED 74
#define QUOTE_BOOTS_ON 75
#define QUOTE_SCUBA_ON 76
#define QUOTE_CHEAT_ALLEN 79
#define QUOTE_MIGHTY_FOOT 80
#define QUOTE_WEAPON_MODE_OFF 82
#define QUOTE_MAP_FOLLOW_OFF 83
#define QUOTE_RUN_MODE_OFF 85
#define QUOTE_JETPACK 88
#define QUOTE_SCUBA 89
#define QUOTE_STEROIDS 90
#define QUOTE_HOLODUKE 91
#define QUOTE_CHEAT_TODD 99
#define QUOTE_CHEAT_UNLOCK 100
#define QUOTE_NVG 101
#define QUOTE_WEREGONNAFRYYOURASS 102
#define QUOTE_SCREEN_SAVED 103
#define QUOTE_CHEAT_BETA 105
#define QUOTE_NVG_OFF 107
#define QUOTE_VIEW_MODE_OFF 109
#define QUOTE_SHOW_MAP_ON 111
#define QUOTE_CHEAT_NOCLIP 113
#define QUOTE_SAVE_BAD_VERSION 114
#define QUOTE_RESERVED 115
#define QUOTE_RESERVED2 116
#define QUOTE_RESERVED3 117
#define QUOTE_SAVE_DEAD 118
#define QUOTE_CHEAT_ALL_WEAPONS 119
#define QUOTE_CHEAT_ALL_INV 120
#define QUOTE_CHEAT_ALL_KEYS 121
#define QUOTE_RESERVED4 122
#define QUOTE_SAVE_BAD_PLAYERS 124
#endif

View file

@ -289,7 +289,7 @@ void updateviewport(void)
int x1 = scale(ss, xdim, 160); int x1 = scale(ss, xdim, 160);
int x2 = xdim - x1; int x2 = xdim - x1;
int y1 = scale(ss, (200 * 100) - ((tilesiz[TILE_BOTTOMSTATUSBAR].y >> (RR ? 1 : 0)) * ud.statusbarscale), 200 - tilesiz[TILE_BOTTOMSTATUSBAR].y); int y1 = scale(ss, (200 * 100) - ((tilesiz[TILE_BOTTOMSTATUSBAR].y >> (isRR() ? 1 : 0)) * ud.statusbarscale), 200 - tilesiz[TILE_BOTTOMSTATUSBAR].y);
int y2 = 200 * 100 - y1; int y2 = 200 * 100 - y1;
if (isRR() && ud.screen_size <= 12) if (isRR() && ud.screen_size <= 12)

View file

@ -27,16 +27,6 @@ BEGIN_DUKE_NS
extern void showtwoscreens(CompletionFunc func); extern void showtwoscreens(CompletionFunc func);
extern void doorders(CompletionFunc func); extern void doorders(CompletionFunc func);
#ifdef DEBUGGINGAIDS
typedef struct {
uint32_t lastgtic;
uint32_t lastnumins, numins;
int32_t numonscreen;
} sprstat_t;
extern sprstat_t g_spriteStat;
#endif
extern int32_t dr_yxaspect, dr_viewingrange; extern int32_t dr_yxaspect, dr_viewingrange;
extern int32_t g_noLogoAnim, g_noLogo; extern int32_t g_noLogoAnim, g_noLogo;

View file

@ -1536,7 +1536,7 @@ void checksectors_d(int snum)
if (p->gm & MODE_TYPE || sprite[p->i].extra <= 0) return; if (p->gm & MODE_TYPE || sprite[p->i].extra <= 0) return;
if (ud.cashman && PlayerInput(snum, SK_OPEN)) if (ud.cashman && PlayerInput(snum, SKB_OPEN))
fi.lotsofmoney(&sprite[p->i], 2); fi.lotsofmoney(&sprite[p->i], 2);
if (p->newowner >= 0) if (p->newowner >= 0)
@ -1549,13 +1549,13 @@ void checksectors_d(int snum)
} }
} }
if (!(PlayerInput(snum, SK_OPEN)) && !PlayerInput(snum, SK_ESCAPE)) if (!(PlayerInput(snum, SKB_OPEN)) && !PlayerInput(snum, SKB_ESCAPE))
p->toggle_key_flag = 0; p->toggle_key_flag = 0;
else if (!p->toggle_key_flag) else if (!p->toggle_key_flag)
{ {
if (PlayerInput(snum, SK_ESCAPE)) if (PlayerInput(snum, SKB_ESCAPE))
{ {
if (p->newowner >= 0) if (p->newowner >= 0)
{ {
@ -1757,7 +1757,7 @@ void checksectors_d(int snum)
} }
} }
if (!PlayerInput(snum, SK_OPEN)) return; if (!PlayerInput(snum, SKB_OPEN)) return;
else if (p->newowner >= 0) { i = -1; goto CLEARCAMERAS; } else if (p->newowner >= 0) { i = -1; goto CLEARCAMERAS; }
if (neartagwall == -1 && neartagsector == -1 && neartagsprite == -1) if (neartagwall == -1 && neartagsector == -1 && neartagsprite == -1)

View file

@ -2509,11 +2509,11 @@ void checksectors_r(int snum)
if (p->gm & MODE_TYPE || sprite[p->i].extra <= 0) return; if (p->gm & MODE_TYPE || sprite[p->i].extra <= 0) return;
if (ud.cashman && PlayerInput(snum, SK_OPEN)) if (ud.cashman && PlayerInput(snum, SKB_OPEN))
fi.lotsofmoney(&sprite[p->i], 2); fi.lotsofmoney(&sprite[p->i], 2);
if (!(PlayerInput(snum, SK_OPEN)) && !PlayerInput(snum, SK_ESCAPE)) if (!(PlayerInput(snum, SKB_OPEN)) && !PlayerInput(snum, SKB_ESCAPE))
p->toggle_key_flag = 0; p->toggle_key_flag = 0;
else if (!p->toggle_key_flag) else if (!p->toggle_key_flag)
@ -2735,7 +2735,7 @@ void checksectors_r(int snum)
} }
} }
if (!PlayerInput(snum, SK_OPEN)) return; if (!PlayerInput(snum, SKB_OPEN)) return;
if (neartagwall == -1 && neartagsector == -1 && neartagsprite == -1) if (neartagwall == -1 && neartagsector == -1 && neartagsprite == -1)
if (abs(hits(p->i)) < 512) if (abs(hits(p->i)) < 512)

View file

@ -1,12 +1,13 @@
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
/* /*
Copyright (C) 2010 EDuke32 developers and contributors Copyright (C) 1996, 2003 - 3D Realms Entertainment
This file is part of EDuke32. This file is part of Duke Nukem 3D version 1.5 - Atomic Edition
EDuke32 is free software; you can redistribute it and/or Duke Nukem 3D is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License version 2 modify it under the terms of the GNU General Public License
as published by the Free Software Foundation. as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -16,408 +17,414 @@ See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
Original Source: 1996 - Todd Replogle
Prepared for public release: 03/21/2003 - Charlie Wiederhold, 3D Realms
Modifications for JonoF's port by Jonathon Fowler (jf@jonof.id.au)
*/ */
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
#define KICK_HIT 0 enum
#define PISTOL_RICOCHET 1 {
#define PISTOL_BODYHIT 2 KICK_HIT = 0,
#define PISTOL_FIRE 3 PISTOL_RICOCHET = 1,
#define EJECT_CLIP 4 PISTOL_BODYHIT = 2,
#define INSERT_CLIP 5 PISTOL_FIRE = 3,
#define CHAINGUN_FIRE 6 EJECT_CLIP = 4,
#define RPG_SHOOT 7 INSERT_CLIP = 5,
#define POOLBALLHIT 8 CHAINGUN_FIRE = 6,
#define RPG_EXPLODE 9 RPG_SHOOT = 7,
#define CAT_FIRE 10 POOLBALLHIT = 8,
#define SHRINKER_FIRE 11 RPG_EXPLODE = 9,
#define ACTOR_SHRINKING 12 CAT_FIRE = 10,
#define PIPEBOMB_BOUNCE 13 SHRINKER_FIRE = 11,
#define PIPEBOMB_EXPLODE 14 ACTOR_SHRINKING = 12,
#define LASERTRIP_ONWALL 15 PIPEBOMB_BOUNCE = 13,
#define LASERTRIP_ARMING 16 PIPEBOMB_EXPLODE = 14,
#define LASERTRIP_EXPLODE 17 LASERTRIP_ONWALL = 15,
#define VENT_BUST 18 LASERTRIP_ARMING = 16,
#define GLASS_BREAKING 19 LASERTRIP_EXPLODE = 17,
#define GLASS_HEAVYBREAK 20 VENT_BUST = 18,
#define SHORT_CIRCUIT 21 GLASS_BREAKING = 19,
#define ITEM_SPLASH 22 GLASS_HEAVYBREAK = 20,
#define DUKE_BREATHING 23 SHORT_CIRCUIT = 21,
#define DUKE_EXHALING 24 ITEM_SPLASH = 22,
#define DUKE_GASP 25 DUKE_BREATHING = 23,
#define SLIM_RECOG 26 DUKE_EXHALING = 24,
// #define ENDSEQVOL3SND1 27 DUKE_GASP = 25,
#define DUKE_URINATE 28 SLIM_RECOG = 26,
#define ENDSEQVOL3SND2 29
#define ENDSEQVOL3SND3 30 DUKE_URINATE = 28,
#define DUKE_PASSWIND 32 ENDSEQVOL3SND2 = 29,
#define DUKE_CRACK 33 ENDSEQVOL3SND3 = 30,
#define SLIM_ATTACK 34 DUKE_PASSWIND = 32,
#define SOMETHINGHITFORCE 35 DUKE_CRACK = 33,
#define DUKE_DRINKING 36 SLIM_ATTACK = 34,
#define DUKE_KILLED1 37 SOMETHINGHITFORCE = 35,
#define DUKE_GRUNT 38 DUKE_DRINKING = 36,
#define DUKE_HARTBEAT 39 DUKE_KILLED1 = 37,
#define DUKE_ONWATER 40 DUKE_GRUNT = 38,
#define DUKE_DEAD 41 DUKE_HARTBEAT = 39,
#define DUKE_LAND 42 DUKE_ONWATER = 40,
#define DUKE_WALKINDUCTS 43 DUKE_DEAD = 41,
#define DUKE_GLAD 44 DUKE_LAND = 42,
#define DUKE_YES 45 DUKE_WALKINDUCTS = 43,
#define DUKE_HEHE 46 DUKE_GLAD = 44,
#define DUKE_SHUCKS 47 DUKE_YES = 45,
#define DUKE_UNDERWATER 48 DUKE_HEHE = 46,
#define DUKE_JETPACK_ON 49 DUKE_SHUCKS = 47,
#define DUKE_JETPACK_IDLE 50 DUKE_UNDERWATER = 48,
#define DUKE_JETPACK_OFF 51 DUKE_JETPACK_ON = 49,
#define LIZTROOP_GROWL 52 DUKE_JETPACK_IDLE = 50,
#define LIZTROOP_TALK1 53 DUKE_JETPACK_OFF = 51,
#define LIZTROOP_TALK2 54 LIZTROOP_GROWL = 52,
#define LIZTROOP_TALK3 55 LIZTROOP_TALK1 = 53,
#define DUKETALKTOBOSS 56 LIZTROOP_TALK2 = 54,
#define LIZCAPT_GROWL 57 LIZTROOP_TALK3 = 55,
#define LIZCAPT_TALK1 58 DUKETALKTOBOSS = 56,
#define LIZCAPT_TALK2 59 LIZCAPT_GROWL = 57,
#define LIZCAPT_TALK3 60 LIZCAPT_TALK1 = 58,
#define LIZARD_BEG 61 LIZCAPT_TALK2 = 59,
#define LIZARD_PAIN 62 LIZCAPT_TALK3 = 60,
#define LIZARD_DEATH 63 LIZARD_BEG = 61,
#define LIZARD_SPIT 64 LIZARD_PAIN = 62,
#define DRONE1_HISSRATTLE 65 LIZARD_DEATH = 63,
#define DRONE1_HISSSCREECH 66 LIZARD_SPIT = 64,
#define DUKE_TIP2 67 DRONE1_HISSRATTLE = 65,
#define FLESH_BURNING 68 DRONE1_HISSSCREECH = 66,
#define SQUISHED 69 DUKE_TIP2 = 67,
#define TELEPORTER 70 FLESH_BURNING = 68,
#define ELEVATOR_ON 71 SQUISHED = 69,
#define DUKE_KILLED3 72 TELEPORTER = 70,
#define ELEVATOR_OFF 73 ELEVATOR_ON = 71,
#define DOOR_OPERATE1 74 DUKE_KILLED3 = 72,
#define SUBWAY 75 ELEVATOR_OFF = 73,
#define SWITCH_ON 76 DOOR_OPERATE1 = 74,
#define FAN 77 SUBWAY = 75,
#define DUKE_GETWEAPON3 78 SWITCH_ON = 76,
#define FLUSH_TOILET 79 FAN = 77,
#define HOVER_CRAFT 80 DUKE_GETWEAPON3 = 78,
#define EARTHQUAKE 81 FLUSH_TOILET = 79,
#define INTRUDER_ALERT 82 HOVER_CRAFT = 80,
#define END_OF_LEVEL_WARN 83 EARTHQUAKE = 81,
#define ENGINE_OPERATING 84 INTRUDER_ALERT = 82,
#define REACTOR_ON 85 END_OF_LEVEL_WARN = 83,
#define COMPUTER_AMBIENCE 86 ENGINE_OPERATING = 84,
#define GEARS_GRINDING 87 REACTOR_ON = 85,
#define BUBBLE_AMBIENCE 88 COMPUTER_AMBIENCE = 86,
#define MACHINE_AMBIENCE 89 GEARS_GRINDING = 87,
#define SEWER_AMBIENCE 90 BUBBLE_AMBIENCE = 88,
#define WIND_AMBIENCE 91 MACHINE_AMBIENCE = 89,
#define SOMETHING_DRIPPING 92 SEWER_AMBIENCE = 90,
#define STEAM_HISSING 93 WIND_AMBIENCE = 91,
#define THEATER_BREATH 94 SOMETHING_DRIPPING = 92,
#define BAR_MUSIC 95 STEAM_HISSING = 93,
#define BOS1_ROAM 96 THEATER_BREATH = 94,
#define BOS1_RECOG 97 BAR_MUSIC = 95,
#define BOS1_ATTACK1 98 BOS1_ROAM = 96,
#define BOS1_PAIN 99 BOS1_RECOG = 97,
#define BOS1_DYING 100 BOS1_ATTACK1 = 98,
#define BOS2_ROAM 101 BOS1_PAIN = 99,
#define BOS2_RECOG 102 BOS1_DYING =100,
#define BOS2_ATTACK 103 BOS2_ROAM =101,
#define BOS2_PAIN 104 BOS2_RECOG =102,
#define BOS2_DYING 105 BOS2_ATTACK =103,
#define GETATOMICHEALTH 106 BOS2_PAIN =104,
#define DUKE_GETWEAPON2 107 BOS2_DYING =105,
#define BOS3_DYING 108 GETATOMICHEALTH =106,
#define SHOTGUN_FIRE 109 DUKE_GETWEAPON2 =107,
#define PRED_ROAM 110 BOS3_DYING =108,
#define PRED_RECOG 111 SHOTGUN_FIRE =109,
#define PRED_ATTACK 112 PRED_ROAM =110,
#define PRED_PAIN 113 PRED_RECOG =111,
#define PRED_DYING 114 PRED_ATTACK =112,
#define CAPT_ROAM 115 PRED_PAIN =113,
#define CAPT_ATTACK 116 PRED_DYING =114,
#define CAPT_RECOG 117 CAPT_ROAM =115,
#define CAPT_PAIN 118 CAPT_ATTACK =116,
#define CAPT_DYING 119 CAPT_RECOG =117,
#define PIG_ROAM 120 CAPT_PAIN =118,
#define PIG_RECOG 121 CAPT_DYING =119,
#define PIG_ATTACK 122 PIG_ROAM =120,
#define PIG_PAIN 123 PIG_RECOG =121,
#define PIG_DYING 124 PIG_ATTACK =122,
#define RECO_ROAM 125 PIG_PAIN =123,
#define RECO_RECOG 126 PIG_DYING =124,
#define RECO_ATTACK 127 RECO_ROAM =125,
#define RECO_PAIN 128 RECO_RECOG =126,
#define RECO_DYING 129 RECO_ATTACK =127,
#define DRON_ROAM 130 RECO_PAIN =128,
#define DRON_RECOG 131 RECO_DYING =129,
#define DRON_ATTACK1 132 DRON_ROAM =130,
#define DRON_PAIN 133 DRON_RECOG =131,
#define DRON_DYING 134 DRON_ATTACK1 =132,
#define COMM_ROAM 135 DRON_PAIN =133,
#define COMM_RECOG 136 DRON_DYING =134,
#define COMM_ATTACK 137 COMM_ROAM =135,
#define COMM_PAIN 138 COMM_RECOG =136,
#define COMM_DYING 139 COMM_ATTACK =137,
#define OCTA_ROAM 140 COMM_PAIN =138,
#define OCTA_RECOG 141 COMM_DYING =139,
#define OCTA_ATTACK1 142 OCTA_ROAM =140,
#define OCTA_PAIN 143 OCTA_RECOG =141,
#define OCTA_DYING 144 OCTA_ATTACK1 =142,
#define TURR_ROAM 145 OCTA_PAIN =143,
#define TURR_RECOG 146 OCTA_DYING =144,
#define TURR_ATTACK 147 TURR_ROAM =145,
#define DUMPSTER_MOVE 148 TURR_RECOG =146,
#define SLIM_DYING 149 TURR_ATTACK =147,
#define BOS3_ROAM 150 DUMPSTER_MOVE =148,
#define BOS3_RECOG 151 SLIM_DYING =149,
#define BOS3_ATTACK1 152 BOS3_ROAM =150,
#define BOS3_PAIN 153 BOS3_RECOG =151,
#define BOS1_ATTACK2 154 BOS3_ATTACK1 =152,
#define COMM_SPIN 155 BOS3_PAIN =153,
#define BOS1_WALK 156 BOS1_ATTACK2 =154,
#define DRON_ATTACK2 157 COMM_SPIN =155,
#define THUD 158 BOS1_WALK =156,
#define OCTA_ATTACK2 159 DRON_ATTACK2 =157,
#define WIERDSHOT_FLY 160 THUD =158,
#define TURR_PAIN 161 OCTA_ATTACK2 =159,
#define TURR_DYING 162 WIERDSHOT_FLY =160,
#define SLIM_ROAM 163 TURR_PAIN =161,
#define LADY_SCREAM 164 TURR_DYING =162,
#define DOOR_OPERATE2 165 SLIM_ROAM =163,
#define DOOR_OPERATE3 166 LADY_SCREAM =164,
#define DOOR_OPERATE4 167 DOOR_OPERATE2 =165,
#define BORNTOBEWILDSND 168 DOOR_OPERATE3 =166,
#define SHOTGUN_COCK 169 DOOR_OPERATE4 =167,
#define GENERIC_AMBIENCE1 170 BORNTOBEWILDSND =168,
#define GENERIC_AMBIENCE2 171 SHOTGUN_COCK =169,
#define GENERIC_AMBIENCE3 172 GENERIC_AMBIENCE1 =170,
#define GENERIC_AMBIENCE4 173 GENERIC_AMBIENCE2 =171,
#define GENERIC_AMBIENCE5 174 GENERIC_AMBIENCE3 =172,
#define GENERIC_AMBIENCE6 175 GENERIC_AMBIENCE4 =173,
#define BOS3_ATTACK2 176 GENERIC_AMBIENCE5 =174,
#define GENERIC_AMBIENCE17 177 GENERIC_AMBIENCE6 =175,
#define GENERIC_AMBIENCE18 178 BOS3_ATTACK2 =176,
#define GENERIC_AMBIENCE19 179 GENERIC_AMBIENCE17 =177,
#define GENERIC_AMBIENCE20 180 GENERIC_AMBIENCE18 =178,
#define GENERIC_AMBIENCE21 181 GENERIC_AMBIENCE19 =179,
#define GENERIC_AMBIENCE22 182 GENERIC_AMBIENCE20 =180,
#define SECRETLEVELSND 183 GENERIC_AMBIENCE21 =181,
#define GENERIC_AMBIENCE8 184 GENERIC_AMBIENCE22 =182,
#define GENERIC_AMBIENCE9 185 SECRETLEVELSND =183,
#define GENERIC_AMBIENCE10 186 GENERIC_AMBIENCE8 =184,
#define GENERIC_AMBIENCE11 187 GENERIC_AMBIENCE9 =185,
#define GENERIC_AMBIENCE12 188 GENERIC_AMBIENCE10 =186,
#define GENERIC_AMBIENCE13 189 GENERIC_AMBIENCE11 =187,
#define GENERIC_AMBIENCE14 190 GENERIC_AMBIENCE12 =188,
#define GENERIC_AMBIENCE15 192 GENERIC_AMBIENCE13 =189,
#define GENERIC_AMBIENCE16 193 GENERIC_AMBIENCE14 =190,
#define FIRE_CRACKLE 194 GENERIC_AMBIENCE15 =192,
#define BONUS_SPEECH1 195 GENERIC_AMBIENCE16 =193,
#define BONUS_SPEECH2 196 FIRE_CRACKLE =194,
#define BONUS_SPEECH3 197 BONUS_SPEECH1 =195,
#define PIG_CAPTURE_DUKE 198 BONUS_SPEECH2 =196,
#define BONUS_SPEECH4 199 BONUS_SPEECH3 =197,
#define DUKE_LAND_HURT 200 PIG_CAPTURE_DUKE =198,
#define DUKE_HIT_STRIPPER1 201 BONUS_SPEECH4 =199,
#define DUKE_TIP1 202 DUKE_LAND_HURT =200,
#define DUKE_KILLED2 203 DUKE_HIT_STRIPPER1 =201,
#define PRED_ROAM2 204 DUKE_TIP1 =202,
#define PIG_ROAM2 205 DUKE_KILLED2 =203,
#define DUKE_GETWEAPON1 206 PRED_ROAM2 =204,
#define DUKE_SEARCH2 207 PIG_ROAM2 =205,
#define DUKE_CRACK2 208 DUKE_GETWEAPON1 =206,
#define DUKE_SEARCH 209 DUKE_SEARCH2 =207,
#define DUKE_GET 210 DUKE_CRACK2 =208,
#define DUKE_LONGTERM_PAIN 211 DUKE_SEARCH =209,
#define MONITOR_ACTIVE 212 DUKE_GET =210,
#define NITEVISION_ONOFF 213 DUKE_LONGTERM_PAIN =211,
#define DUKE_HIT_STRIPPER2 214 MONITOR_ACTIVE =212,
#define DUKE_CRACK_FIRST 215 NITEVISION_ONOFF =213,
#define DUKE_USEMEDKIT 216 DUKE_HIT_STRIPPER2 =214,
#define DUKE_TAKEPILLS 217 DUKE_CRACK_FIRST =215,
#define DUKE_PISSRELIEF 218 DUKE_USEMEDKIT =216,
#define SELECT_WEAPON 219 DUKE_TAKEPILLS =217,
#define WATER_GURGLE 220 DUKE_PISSRELIEF =218,
#define DUKE_GETWEAPON4 221 SELECT_WEAPON =219,
#define JIBBED_ACTOR1 222 WATER_GURGLE =220,
#define JIBBED_ACTOR2 223 DUKE_GETWEAPON4 =221,
#define JIBBED_ACTOR3 224 JIBBED_ACTOR1 =222,
#define JIBBED_ACTOR4 225 JIBBED_ACTOR2 =223,
#define JIBBED_ACTOR5 226 JIBBED_ACTOR3 =224,
#define JIBBED_ACTOR6 227 JIBBED_ACTOR4 =225,
#define JIBBED_ACTOR7 228 JIBBED_ACTOR5 =226,
#define DUKE_GOTHEALTHATLOW 229 JIBBED_ACTOR6 =227,
#define BOSSTALKTODUKE 230 JIBBED_ACTOR7 =228,
#define WAR_AMBIENCE1 231 DUKE_GOTHEALTHATLOW =229,
#define WAR_AMBIENCE2 232 BOSSTALKTODUKE =230,
#define WAR_AMBIENCE3 233 WAR_AMBIENCE1 =231,
#define WAR_AMBIENCE4 234 WAR_AMBIENCE2 =232,
#define WAR_AMBIENCE5 235 WAR_AMBIENCE3 =233,
#define WAR_AMBIENCE6 236 WAR_AMBIENCE4 =234,
#define WAR_AMBIENCE7 237 WAR_AMBIENCE5 =235,
#define WAR_AMBIENCE8 238 WAR_AMBIENCE6 =236,
#define WAR_AMBIENCE9 239 WAR_AMBIENCE7 =237,
#define WAR_AMBIENCE10 240 WAR_AMBIENCE8 =238,
#define ALIEN_TALK1 241 WAR_AMBIENCE9 =239,
#define ALIEN_TALK2 242 WAR_AMBIENCE10 =240,
#define EXITMENUSOUND 243 ALIEN_TALK1 =241,
#define FLY_BY 244 ALIEN_TALK2 =242,
#define DUKE_SCREAM 245 EXITMENUSOUND =243,
#define SHRINKER_HIT 246 FLY_BY =244,
#define RATTY 247 DUKE_SCREAM =245,
#define INTO_MENU 248 SHRINKER_HIT =246,
#define BONUSMUSIC 249 RATTY =247,
#define DUKE_BOOBY 250 INTO_MENU =248,
#define DUKE_TALKTOBOSSFALL 251 BONUSMUSIC =249,
#define DUKE_LOOKINTOMIRROR 252 DUKE_BOOBY =250,
#define PIG_ROAM3 253 DUKE_TALKTOBOSSFALL =251,
#define KILLME 254 DUKE_LOOKINTOMIRROR =252,
#define DRON_JETSND 255 PIG_ROAM3 =253,
#define SPACE_DOOR1 256 KILLME =254,
#define SPACE_DOOR2 257 DRON_JETSND =255,
#define SPACE_DOOR3 258 SPACE_DOOR1 =256,
#define SPACE_DOOR4 259 SPACE_DOOR2 =257,
#define SPACE_DOOR5 260 SPACE_DOOR3 =258,
#define ALIEN_ELEVATOR1 261 SPACE_DOOR4 =259,
#define VAULT_DOOR 262 SPACE_DOOR5 =260,
#define JIBBED_ACTOR13 263 ALIEN_ELEVATOR1 =261,
#define DUKE_GETWEAPON6 264 VAULT_DOOR =262,
#define JIBBED_ACTOR8 265 JIBBED_ACTOR13 =263,
#define JIBBED_ACTOR9 266 DUKE_GETWEAPON6 =264,
#define JIBBED_ACTOR10 267 JIBBED_ACTOR8 =265,
#define JIBBED_ACTOR11 268 JIBBED_ACTOR9 =266,
#define JIBBED_ACTOR12 269 JIBBED_ACTOR10 =267,
#define DUKE_KILLED4 270 JIBBED_ACTOR11 =268,
#define DUKE_KILLED5 271 JIBBED_ACTOR12 =269,
#define ALIEN_SWITCH1 272 DUKE_KILLED4 =270,
#define DUKE_STEPONFECES 273 DUKE_KILLED5 =271,
#define DUKE_LONGTERM_PAIN2 274 ALIEN_SWITCH1 =272,
#define DUKE_LONGTERM_PAIN3 275 DUKE_STEPONFECES =273,
#define DUKE_LONGTERM_PAIN4 276 DUKE_LONGTERM_PAIN2 =274,
#define COMPANB2 277 DUKE_LONGTERM_PAIN3 =275,
#define KTIT 278 DUKE_LONGTERM_PAIN4 =276,
#define HELICOP_IDLE 279 COMPANB2 =277,
#define STEPNIT 280 KTIT =278,
#define SPACE_AMBIENCE1 281 HELICOP_IDLE =279,
#define SPACE_AMBIENCE2 282 STEPNIT =280,
#define SLIM_HATCH 283 SPACE_AMBIENCE1 =281,
#define RIPHEADNECK 284 SPACE_AMBIENCE2 =282,
#define FOUNDJONES 285 SLIM_HATCH =283,
#define ALIEN_DOOR1 286 RIPHEADNECK =284,
#define ALIEN_DOOR2 287 FOUNDJONES =285,
#define ENDSEQVOL3SND4 288 ALIEN_DOOR1 =286,
#define ENDSEQVOL3SND5 289 ALIEN_DOOR2 =287,
#define ENDSEQVOL3SND6 290 ENDSEQVOL3SND4 =288,
#define ENDSEQVOL3SND7 291 ENDSEQVOL3SND5 =289,
#define ENDSEQVOL3SND8 292 ENDSEQVOL3SND6 =290,
#define ENDSEQVOL3SND9 293 ENDSEQVOL3SND7 =291,
#define WHIPYOURASS 294 ENDSEQVOL3SND8 =292,
#define ENDSEQVOL2SND1 295 ENDSEQVOL3SND9 =293,
#define ENDSEQVOL2SND2 296 WHIPYOURASS =294,
#define ENDSEQVOL2SND3 297 ENDSEQVOL2SND1 =295,
#define ENDSEQVOL2SND4 298 ENDSEQVOL2SND2 =296,
#define ENDSEQVOL2SND5 299 ENDSEQVOL2SND3 =297,
#define ENDSEQVOL2SND6 300 ENDSEQVOL2SND4 =298,
#define ENDSEQVOL2SND7 301 ENDSEQVOL2SND5 =299,
#define GENERIC_AMBIENCE23 302 ENDSEQVOL2SND6 =300,
#define SOMETHINGFROZE 303 ENDSEQVOL2SND7 =301,
#define DUKE_LONGTERM_PAIN5 304 GENERIC_AMBIENCE23 =302,
#define DUKE_LONGTERM_PAIN6 305 SOMETHINGFROZE =303,
#define DUKE_LONGTERM_PAIN7 306 DUKE_LONGTERM_PAIN5 =304,
#define DUKE_LONGTERM_PAIN8 307 DUKE_LONGTERM_PAIN6 =305,
#define WIND_REPEAT 308 DUKE_LONGTERM_PAIN7 =306,
#define MYENEMY_ROAM 309 DUKE_LONGTERM_PAIN8 =307,
#define MYENEMY_HURT 310 WIND_REPEAT =308,
#define MYENEMY_DEAD 311 MYENEMY_ROAM =309,
#define MYENEMY_SHOOT 312 MYENEMY_HURT =310,
#define STORE_MUSIC 313 MYENEMY_DEAD =311,
#define STORE_MUSIC_BROKE 314 MYENEMY_SHOOT =312,
#define ACTOR_GROWING 315 STORE_MUSIC =313,
#define NEWBEAST_ROAM 316 STORE_MUSIC_BROKE =314,
#define NEWBEAST_RECOG 317 ACTOR_GROWING =315,
#define NEWBEAST_ATTACK 318 NEWBEAST_ROAM =316,
#define NEWBEAST_PAIN 319 NEWBEAST_RECOG =317,
#define NEWBEAST_DYING 320 NEWBEAST_ATTACK =318,
#define NEWBEAST_SPIT 321 NEWBEAST_PAIN =319,
#define VOL4_1 322 NEWBEAST_DYING =320,
#define SUPERMARKET 323 NEWBEAST_SPIT =321,
#define MOUSEANNOY 324 VOL4_1 =322,
#define BOOKEM 325 SUPERMARKET =323,
#define SUPERMARKETCRY 326 MOUSEANNOY =324,
#define DESTRUCT 327 BOOKEM =325,
#define EATFOOD 328 SUPERMARKETCRY =326,
#define MAKEMYDAY 329 DESTRUCT =327,
#define WITNESSSTAND 330 EATFOOD =328,
#define VACATIONSPEECH 331 MAKEMYDAY =329,
#define YIPPEE1 332 WITNESSSTAND =330,
#define YOHOO1 333 VACATIONSPEECH =331,
#define YOHOO2 334 YIPPEE1 =332,
#define DOLPHINSND 335 YOHOO1 =333,
#define TOUGHGALSND1 336 YOHOO2 =334,
#define TOUGHGALSND2 337 DOLPHINSND =335,
#define TOUGHGALSND3 338 TOUGHGALSND1 =336,
#define TOUGHGALSND4 339 TOUGHGALSND2 =337,
#define TANK_ROAM 340 TOUGHGALSND3 =338,
#define BOS4_ROAM 341 TOUGHGALSND4 =339,
#define BOS4_RECOG 342 TANK_ROAM =340,
#define BOS4_ATTACK 343 BOS4_ROAM =341,
#define BOS4_PAIN 344 BOS4_RECOG =342,
#define BOS4_DYING 345 BOS4_ATTACK =343,
#define NEWBEAST_ATTACKMISS 346 BOS4_PAIN =344,
#define VOL4_2 347 BOS4_DYING =345,
#define COOKINGDEEPFRIER 348 NEWBEAST_ATTACKMISS =346,
#define WHINING_DOG 349 VOL4_2 =347,
#define DEAD_DOG 350 COOKINGDEEPFRIER =348,
#define LIGHTNING_SLAP 351 WHINING_DOG =349,
#define THUNDER 352 DEAD_DOG =350,
#define HAPPYMOUSESND1 353 LIGHTNING_SLAP =351,
#define HAPPYMOUSESND2 354 THUNDER =352,
#define HAPPYMOUSESND3 355 HAPPYMOUSESND1 =353,
#define HAPPYMOUSESND4 356 HAPPYMOUSESND2 =354,
#define ALARM 357 HAPPYMOUSESND3 =355,
#define RAIN 358 HAPPYMOUSESND4 =356,
#define DTAG_GREENRUN 359 ALARM =357,
#define DTAG_BROWNRUN 360 RAIN =358,
#define DTAG_GREENSCORE 361 DTAG_GREENRUN =359,
#define DTAG_BROWNSCORE 362 DTAG_BROWNRUN =360,
#define INTRO4_1 363 DTAG_GREENSCORE =361,
#define INTRO4_2 364 DTAG_BROWNSCORE =362,
#define INTRO4_3 365 INTRO4_1 =363,
#define INTRO4_4 366 INTRO4_2 =364,
#define INTRO4_5 367 INTRO4_3 =365,
#define INTRO4_6 368 INTRO4_4 =366,
#define SCREECH 369 INTRO4_5 =367,
#define BOSS4_DEADSPEECH 370 INTRO4_6 =368,
#define BOSS4_FIRSTSEE 371 SCREECH =369,
#define PARTY_SPEECH 372 BOSS4_DEADSPEECH =370,
#define POSTAL_SPEECH 373 BOSS4_FIRSTSEE =371,
#define TGSPEECH 374 PARTY_SPEECH =372,
#define DOGROOMSPEECH 375 POSTAL_SPEECH =373,
#define SMACKED 376 TGSPEECH =374,
#define MDEVSPEECH 377 DOGROOMSPEECH =375,
#define AREA51SPEECH 378 SMACKED =376,
#define JEEPSOUND 379 MDEVSPEECH =377,
#define BIGDOORSLAM 380 AREA51SPEECH =378,
#define BOS4_LAY 381 JEEPSOUND =379,
#define WAVESOUND 382 BIGDOORSLAM =380,
#define ILLBEBACK 383 BOS4_LAY =381,
#define VOL4ENDSND1 384 WAVESOUND =382,
#define VOL4ENDSND2 385 ILLBEBACK =383,
#define EXPANDERHIT 386 VOL4ENDSND1 =384,
#define SNAKESPEECH 387 VOL4ENDSND2 =385,
#define EXPANDERSHOOT 388 EXPANDERHIT =386,
#define GETBACKTOWORK 389 SNAKESPEECH =387,
#define JIBBED_ACTOR14 390 EXPANDERSHOOT =388,
#define JIBBED_ACTOR15 391 GETBACKTOWORK =389,
#define INTRO4_B 392 JIBBED_ACTOR14 =390,
#define BIGBANG 393 JIBBED_ACTOR15 =391,
#define HORNSND 394 INTRO4_B =392,
#define BELLSND 395 BIGBANG =393,
#define GOAWAY 396 SMACKIT =394,
#define JOKE 397 BELLSND =395,
#define FLAMETHROWER_INTRO 398 GOAWAY =396,
#define FLAMETHROWER_LOOP 399 JOKE =397,
#define FLAMETHROWER_END 400 FLAMETHROWER_INTRO =398,
#define E5L7_DUKE_QUIT_YOU 401 FLAMETHROWER_LOOP =399,
FLAMETHROWER_END =400,
E5L7_DUKE_QUIT_YOU =401,
};

View file

@ -344,7 +344,7 @@ void S_Update(void)
int32_t ca, cs; int32_t ca, cs;
auto& gm = g_player[myconnectindex].ps->gm; auto& gm = g_player[myconnectindex].ps->gm;
if (RR && !Mus_IsPlaying() && (gm && gm & MODE_GAME)) if (isRR() && !Mus_IsPlaying() && (gm && gm & MODE_GAME))
S_PlayRRMusic(); S_PlayRRMusic();
S_GetCamera(&c, &ca, &cs); S_GetCamera(&c, &ca, &cs);
@ -597,13 +597,13 @@ static bool cd_disabled = false; // This is in case mus_redbook is enabled bu
void S_PlayLevelMusic(unsigned int m) void S_PlayLevelMusic(unsigned int m)
{ {
auto& mr = m == USERMAPMUSICFAKESLOT ? userMapRecord : mapList[m]; auto& mr = m == USERMAPMUSICFAKESLOT ? userMapRecord : mapList[m];
if (RR && mr.music.IsEmpty() && mus_redbook && !cd_disabled) return; if (isRR() && mr.music.IsEmpty() && mus_redbook && !cd_disabled) return;
Mus_Play(mr.labelName, mr.music, true); Mus_Play(mr.labelName, mr.music, true);
} }
void S_PlaySpecialMusic(unsigned int m) void S_PlaySpecialMusic(unsigned int m)
{ {
if (RR) return; // Can only be MUS_LOADING, RR does not use it. if (isRR()) return; // Can only be MUS_LOADING, isRR() does not use it.
auto& musicfn = mapList[m].music; auto& musicfn = mapList[m].music;
if (musicfn.IsNotEmpty()) if (musicfn.IsNotEmpty())
{ {
@ -620,7 +620,7 @@ void S_PlaySpecialMusic(unsigned int m)
void S_PlayRRMusic(int newTrack) void S_PlayRRMusic(int newTrack)
{ {
if (!RR || !mus_redbook || cd_disabled || currentLevel->music.IsNotEmpty()) if (!isRR() || !mus_redbook || cd_disabled || currentLevel->music.IsNotEmpty())
return; return;
Mus_Stop(); Mus_Stop();

View file

@ -44,28 +44,6 @@ BEGIN_DUKE_NS
#define ACTOR_MAXFALLINGZVEL 6144 #define ACTOR_MAXFALLINGZVEL 6144
#define ACTOR_ONWATER_ADDZ (24<<8) #define ACTOR_ONWATER_ADDZ (24<<8)
// KEEPINSYNC lunatic/con_lang.lua
enum
{
STAT_DEFAULT = 0,
STAT_ACTOR = 1,
STAT_ZOMBIEACTOR = 2,
STAT_EFFECTOR = 3,
STAT_PROJECTILE = 4,
STAT_MISC = 5,
STAT_STANDABLE = 6,
STAT_LOCATOR = 7,
STAT_ACTIVATOR = 8,
STAT_TRANSPORT = 9,
STAT_PLAYER = 10,
STAT_FX = 11,
STAT_FALLER = 12,
STAT_DUMMYPLAYER = 13,
STAT_LIGHT = 14,
STAT_RAROR = 15,
STAT_NETALLOC = MAXSTATUS-1
};
// Defines the motion characteristics of an actor // Defines the motion characteristics of an actor
enum amoveflags_t enum amoveflags_t

View file

@ -14,7 +14,6 @@
#include "palettecontainer.h" #include "palettecontainer.h"
#include "common.h" #include "common.h"
#include "common_game.h"
BEGIN_DUKE_NS BEGIN_DUKE_NS

View file

@ -121,7 +121,7 @@ void G_HandleLocalKeys(void)
{ {
if (G_ChangeHudLayout(1)) if (G_ChangeHudLayout(1))
{ {
S_PlaySound(RR ? 341 : THUD, CHAN_AUTO, CHANF_UI); S_PlaySound(isRR() ? 341 : THUD, CHAN_AUTO, CHANF_UI);
} }
} }
else else
@ -138,7 +138,7 @@ void G_HandleLocalKeys(void)
{ {
if (G_ChangeHudLayout(-1)) if (G_ChangeHudLayout(-1))
{ {
S_PlaySound(RR ? 341 : THUD, CHAN_AUTO, CHANF_UI); S_PlaySound(isRR() ? 341 : THUD, CHAN_AUTO, CHANF_UI);
} }
} }
else else
@ -223,7 +223,7 @@ void G_HandleLocalKeys(void)
{ {
buttonMap.ClearButton(gamefunc_Third_Person_View); buttonMap.ClearButton(gamefunc_Third_Person_View);
if (!RRRA || (!g_player[myconnectindex].ps->OnMotorcycle && !g_player[myconnectindex].ps->OnBoat)) if (!isRRRA() || (!g_player[myconnectindex].ps->OnMotorcycle && !g_player[myconnectindex].ps->OnBoat))
{ {
g_player[myconnectindex].ps->over_shoulder_on = !g_player[myconnectindex].ps->over_shoulder_on; g_player[myconnectindex].ps->over_shoulder_on = !g_player[myconnectindex].ps->over_shoulder_on;
@ -557,7 +557,7 @@ static const char* actions[] = {
"Inventory", "Inventory",
"Inventory_Left", "Inventory_Left",
"Inventory_Right", "Inventory_Right",
"Holo_Duke", // Duke3D", RR "Holo_Duke", // Duke3D", isRR()
"Jetpack", "Jetpack",
"NightVision", "NightVision",
"MedKit", "MedKit",
@ -644,14 +644,14 @@ int GameInterface::app_main()
S_InitSound(); S_InitSound();
if (RR) if (isRR())
{ {
g_cdTrack = -1; g_cdTrack = -1;
} }
InitCheats(); InitCheats();
if (SHAREWARE) if (VOLUMEONE)
g_Shareware = 1; g_Shareware = 1;
else else
{ {
@ -701,7 +701,7 @@ int GameInterface::app_main()
tileDelete(TILE_MIRROR); tileDelete(TILE_MIRROR);
skiptile = TILE_W_FORCEFIELD + 1; skiptile = TILE_W_FORCEFIELD + 1;
if (RR) if (isRR())
tileDelete(0); tileDelete(0);
tileDelete(13); tileDelete(13);
@ -823,9 +823,9 @@ MAIN_LOOP_RESTART:
{ {
ototalclock += TICSPERFRAME; ototalclock += TICSPERFRAME;
if (RRRA && g_player[myconnectindex].ps->OnMotorcycle) if (isRRRA() && g_player[myconnectindex].ps->OnMotorcycle)
P_GetInputMotorcycle(myconnectindex); P_GetInputMotorcycle(myconnectindex);
else if (RRRA && g_player[myconnectindex].ps->OnBoat) else if (isRRRA() && g_player[myconnectindex].ps->OnBoat)
P_GetInputBoat(myconnectindex); P_GetInputBoat(myconnectindex);
else else
P_GetInput(myconnectindex); P_GetInput(myconnectindex);
@ -868,9 +868,9 @@ MAIN_LOOP_RESTART:
if (G_FPSLimit()) if (G_FPSLimit())
{ {
if (RRRA && g_player[myconnectindex].ps->OnMotorcycle) if (isRRRA() && g_player[myconnectindex].ps->OnMotorcycle)
P_GetInputMotorcycle(myconnectindex); P_GetInputMotorcycle(myconnectindex);
else if (RRRA && g_player[myconnectindex].ps->OnBoat) else if (isRRRA() && g_player[myconnectindex].ps->OnBoat)
P_GetInputBoat(myconnectindex); P_GetInputBoat(myconnectindex);
else else
P_GetInput(myconnectindex); P_GetInput(myconnectindex);

View file

@ -206,7 +206,7 @@ void P_GetInput(int const playerNum)
if (localInput.fvel < keyMove && localInput.fvel > -keyMove) if (localInput.fvel < keyMove && localInput.fvel > -keyMove)
{ {
if (RR) if (isRR())
{ {
/*if (buttonMap.ButtonDown(gamefunc_Quick_Kick)) /*if (buttonMap.ButtonDown(gamefunc_Quick_Kick))
{ {
@ -283,7 +283,7 @@ void P_GetInput(int const playerNum)
else if (weaponSelection == gamefunc_Weapon_1-1) else if (weaponSelection == gamefunc_Weapon_1-1)
weaponSelection = 0; weaponSelection = 0;
if ((localInput.bits & 0xf00) == 0) if ((localInput.bits & SKB_WEAPONMASK_BITS) == 0)
localInput.bits |= (weaponSelection << SK_WEAPON_BITS); localInput.bits |= (weaponSelection << SK_WEAPON_BITS);
localInput.bits |= (buttonMap.ButtonDown(gamefunc_Fire) << SK_FIRE); localInput.bits |= (buttonMap.ButtonDown(gamefunc_Fire) << SK_FIRE);
@ -333,14 +333,14 @@ void P_GetInput(int const playerNum)
localInput.bits |= inputState.GetKeyStatus(sc_Pause) << SK_PAUSE; localInput.bits |= inputState.GetKeyStatus(sc_Pause) << SK_PAUSE;
//localInput.bits |= ((uint32_t)inputState.GetKeyStatus(sc_Escape)) << SK_ESCAPE; fixme.This needs to be done differently //localInput.bits |= ((uint32_t)inputState.GetKeyStatus(sc_Escape)) << SK_ESCAPE; fixme.This needs to be done differently
if (RR) if (isRR())
{ {
if (TEST_SYNC_KEY(localInput.bits, SK_CROUCH)) if (localInput.bits & SKB_CROUCH)
localInput.bits &= ~(1 << SK_JUMP); localInput.bits &= ~SKB_JUMP;
if (pPlayer->drink_amt > 88) if (pPlayer->drink_amt > 88)
localInput.bits |= 1 << SK_LOOK_LEFT; localInput.bits |= SKB_LOOK_LEFT;
if (pPlayer->drink_amt > 99) if (pPlayer->drink_amt > 99)
localInput.bits |= 1 << SK_LOOK_DOWN; localInput.bits |= SKB_LOOK_DOWN;
} }
if (buttonMap.ButtonDown(gamefunc_Dpad_Select)) if (buttonMap.ButtonDown(gamefunc_Dpad_Select))
@ -635,11 +635,6 @@ void P_GetInputMotorcycle(int playerNum)
localInput.q16avel = fix16_sadd(localInput.q16avel, input.q16avel); localInput.q16avel = fix16_sadd(localInput.q16avel, input.q16avel);
pPlayer->q16ang = fix16_sadd(pPlayer->q16ang, input.q16avel) & 0x7FFFFFF; pPlayer->q16ang = fix16_sadd(pPlayer->q16ang, input.q16avel) & 0x7FFFFFF;
localInput.fvel = clamp((input.fvel += pPlayer->MotoSpeed), -(MAXVELMOTO / 8), MAXVELMOTO); localInput.fvel = clamp((input.fvel += pPlayer->MotoSpeed), -(MAXVELMOTO / 8), MAXVELMOTO);
if (TEST_SYNC_KEY(localInput.bits, SK_JUMP))
{
localInput.bits |= 1;
}
} }
void P_GetInputBoat(int playerNum) void P_GetInputBoat(int playerNum)

View file

@ -52,7 +52,7 @@ static inline int G_CheckExitSprite(int spriteNum) { return ((uint16_t)sprite[sp
void G_InitRRRASkies(void) void G_InitRRRASkies(void)
{ {
if (!RRRA) if (!isRRRA())
return; return;
for (bssize_t i = 0; i < MAXSECTORS; i++) for (bssize_t i = 0; i < MAXSECTORS; i++)
@ -100,7 +100,7 @@ void G_NewGame(int volumeNum, int levelNum, int skillNum)
G_BonusScreen(1); G_BonusScreen(1);
} }
if (RR && !RRRA && ud.level_number == 6 && ud.volume_number == 0) if (isRR() && !isRRRA() && ud.level_number == 6 && ud.volume_number == 0)
G_BonusScreen(0); G_BonusScreen(0);
#endif #endif
@ -117,7 +117,7 @@ void G_NewGame(int volumeNum, int levelNum, int skillNum)
int const UserMap = Menu_HaveUserMap(); int const UserMap = Menu_HaveUserMap();
// we don't want the intro to play after the multiplayer setup screen // we don't want the intro to play after the multiplayer setup screen
if (!RR && (!g_netServer && ud.multimode < 2) && UserMap == 0 && if (!isRR() && (!g_netServer && ud.multimode < 2) && UserMap == 0 &&
levelNum == 0 && volumeNum == 3) levelNum == 0 && volumeNum == 3)
{ {
e4intro([](bool) {}); e4intro([](bool) {});
@ -139,17 +139,17 @@ void G_NewGame(int volumeNum, int levelNum, int skillNum)
{ {
for (bssize_t weaponNum = 0; weaponNum < 12/*MAX_WEAPONS*/; weaponNum++) for (bssize_t weaponNum = 0; weaponNum < 12/*MAX_WEAPONS*/; weaponNum++)
{ {
auto const worksLike = WW2GI ? PWEAPON(0, weaponNum, WorksLike) : weaponNum; auto const worksLike = isWW2GI() ? PWEAPON(0, weaponNum, WorksLike) : weaponNum;
if (worksLike == PISTOL_WEAPON) if (worksLike == PISTOL_WEAPON)
{ {
pPlayer->curr_weapon = weaponNum; pPlayer->curr_weapon = weaponNum;
pPlayer->gotweapon.Set(weaponNum); pPlayer->gotweapon.Set(weaponNum);
pPlayer->ammo_amount[weaponNum] = min<int16_t>(max_ammo_amount[weaponNum], 48); pPlayer->ammo_amount[weaponNum] = min<int16_t>(max_ammo_amount[weaponNum], 48);
} }
else if (worksLike == KNEE_WEAPON || (!RR && worksLike == HANDREMOTE_WEAPON) || (RRRA && worksLike == SLINGBLADE_WEAPON)) else if (worksLike == KNEE_WEAPON || (!isRR() && worksLike == HANDREMOTE_WEAPON) || (isRRRA() && worksLike == SLINGBLADE_WEAPON))
{ {
pPlayer->gotweapon.Set(weaponNum); pPlayer->gotweapon.Set(weaponNum);
if (RRRA) if (isRRRA())
pPlayer->ammo_amount[KNEE_WEAPON] = 1; pPlayer->ammo_amount[KNEE_WEAPON] = 1;
} }
} }
@ -248,7 +248,7 @@ static int LoadTheMap(MapRecord &mi, DukePlayer_t *pPlayer, int gameMode)
SECRET_SetMapName(currentLevel->DisplayName(), currentLevel->name); SECRET_SetMapName(currentLevel->DisplayName(), currentLevel->name);
STAT_NewLevel(boardfilename); STAT_NewLevel(boardfilename);
G_LoadMapHack(levelName, boardfilename); G_LoadMapHack(levelName, boardfilename);
userMapRecord.music = G_SetupFilenameBasedMusic(boardfilename, !RR ? "dethtoll.mid" : nullptr); userMapRecord.music = G_SetupFilenameBasedMusic(boardfilename, !isRR() ? "dethtoll.mid" : nullptr);
} }
else if (engineLoadBoard(mi.fileName, VOLUMEONE, &pPlayer->pos, &lbang, &pPlayer->cursectnum) < 0) else if (engineLoadBoard(mi.fileName, VOLUMEONE, &pPlayer->pos, &lbang, &pPlayer->cursectnum) < 0)
{ {
@ -263,7 +263,7 @@ static int LoadTheMap(MapRecord &mi, DukePlayer_t *pPlayer, int gameMode)
G_LoadMapHack(levelName, mi.fileName); G_LoadMapHack(levelName, mi.fileName);
} }
if (RR && !RRRA && ud.volume_number == 1 && ud.level_number == 1) if (isRR() && !isRRRA() && ud.volume_number == 1 && ud.level_number == 1)
{ {
for (bssize_t i = PISTOL_WEAPON; i < MAX_WEAPONS; i++) for (bssize_t i = PISTOL_WEAPON; i < MAX_WEAPONS; i++)
g_player[0].ps->ammo_amount[i] = 0; g_player[0].ps->ammo_amount[i] = 0;
@ -281,7 +281,7 @@ static int LoadTheMap(MapRecord &mi, DukePlayer_t *pPlayer, int gameMode)
G_InitRRRASkies(); G_InitRRRASkies();
if (RRRA && ud.level_number == 2 && ud.volume_number == 0) if (isRRRA() && ud.level_number == 2 && ud.volume_number == 0)
{ {
for (bssize_t i = PISTOL_WEAPON; i < MAX_WEAPONS; i++) for (bssize_t i = PISTOL_WEAPON; i < MAX_WEAPONS; i++)
g_player[0].ps->ammo_amount[i] = 0; g_player[0].ps->ammo_amount[i] = 0;
@ -347,8 +347,8 @@ int G_EnterLevel(int gameMode)
} }
} }
// Redirect the final RR level to a valid map record so that currentLevel can point to something. // Redirect the final isRR() level to a valid map record so that currentLevel can point to something.
mii = (RR && g_lastLevel)? 127 : (ud.volume_number*MAXLEVELS)+ud.level_number; mii = (isRR() && g_lastLevel)? 127 : (ud.volume_number*MAXLEVELS)+ud.level_number;
auto& mi = mapList[mii]; auto& mi = mapList[mii];
if (mi.fileName.IsEmpty() && !Menu_HaveUserMap()) if (mi.fileName.IsEmpty() && !Menu_HaveUserMap())
@ -368,7 +368,7 @@ int G_EnterLevel(int gameMode)
if (res != 0) return res; if (res != 0) return res;
// Try this first so that it can disable the CD player if no tracks are found. // Try this first so that it can disable the CD player if no tracks are found.
if (RR && !(gameMode & MODE_DEMO)) if (isRR() && !(gameMode & MODE_DEMO))
S_PlayRRMusic(); S_PlayRRMusic();
if (ud.recstat != 2) if (ud.recstat != 2)

View file

@ -158,7 +158,7 @@ void G_DisplayRest(int32_t smoothratio)
} }
} }
palaccum_add(&tint, &pp->pals, pp->pals.f); palaccum_add(&tint, &pp->pals, pp->pals.f);
if (!RR) if (!isRR())
{ {
static const palette_t loogiepal = { 0, 63, 0, 0 }; static const palette_t loogiepal = { 0, 63, 0, 0 };
@ -207,7 +207,7 @@ void G_DisplayRest(int32_t smoothratio)
{ {
if (ud.overhead_on != 2) if (ud.overhead_on != 2)
{ {
if (!RR && pp->newowner >= 0) if (!isRR() && pp->newowner >= 0)
cameratext(pp->newowner); cameratext(pp->newowner);
else else
{ {
@ -217,7 +217,7 @@ void G_DisplayRest(int32_t smoothratio)
if (pp->over_shoulder_on == 0) if (pp->over_shoulder_on == 0)
fi.displaymasks(screenpeek); fi.displaymasks(screenpeek);
} }
if (!RR) if (!isRR())
moveclouds(); moveclouds();
} }
@ -278,7 +278,7 @@ void G_DisplayRest(int32_t smoothratio)
if (isRR()) drawstatusbar_r(screenpeek); if (isRR()) drawstatusbar_r(screenpeek);
else drawstatusbar_d(screenpeek); else drawstatusbar_d(screenpeek);
if (!DEER && g_player[myconnectindex].ps->newowner == -1 && ud.overhead_on == 0 && cl_crosshair && ud.camerasprite == -1) if (g_player[myconnectindex].ps->newowner == -1 && ud.overhead_on == 0 && cl_crosshair && ud.camerasprite == -1)
{ {
int32_t a = TILE_CROSSHAIR; int32_t a = TILE_CROSSHAIR;
@ -288,7 +288,7 @@ void G_DisplayRest(int32_t smoothratio)
//vec2_t crosshairpos = { ud.returnvar[0], ud.returnvar[1] }; //vec2_t crosshairpos = { ud.returnvar[0], ud.returnvar[1] };
uint32_t crosshair_o = 1|2; uint32_t crosshair_o = 1|2;
uint32_t crosshair_scale = divscale16(cl_crosshairscale, 100); uint32_t crosshair_scale = divscale16(cl_crosshairscale, 100);
if (RR) if (isRR())
crosshair_scale >>= 1; crosshair_scale >>= 1;
rotatesprite_win(crosshairpos.x, crosshairpos.y, crosshair_scale, 0, a, 0, 0, crosshair_o); rotatesprite_win(crosshairpos.x, crosshairpos.y, crosshair_scale, 0, a, 0, 0, crosshair_o);