diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 4b79449e0..23eaa330f 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -602,7 +602,6 @@ file( GLOB HEADER_FILES common/rendering/hwrenderer/data/*.h common/rendering/hwrenderer/postprocessing/*.h common/rendering/hwrenderer/utility/*.h - dukerr/*.h build/src/*.h platform/win32/*.h @@ -813,9 +812,6 @@ set (PCH_SOURCES common/rendering/hwrenderer/postprocessing/hw_postprocess.cpp common/rendering/hwrenderer/postprocessing/hw_postprocess_cvars.cpp common/rendering/hwrenderer/utility/hw_shaderpatcher.cpp - - dukerr/namesdyn.cpp - dukerr/soundsdyn.cpp ) macro( use_precompiled_header ) @@ -982,7 +978,6 @@ install(TARGETS ${PROJECT_NAME} DESTINATION ${INSTALL_PATH} COMPONENT "Game executable") -source_group("DukeRR" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/dukerr/.+") source_group("Utility" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/utility/.+") source_group("Core" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/.+") source_group("Core\\Textures" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/common/textures/.+") diff --git a/source/blood/src/blood.cpp b/source/blood/src/blood.cpp index 6d2fdc526..f825cdc00 100644 --- a/source/blood/src/blood.cpp +++ b/source/blood/src/blood.cpp @@ -397,6 +397,30 @@ void PreloadCache(void) if ((++cnt & 7) == 0) gameHandleEvents(); + +#if 0 + if (videoGetRenderMode() != REND_CLASSIC && totalclock - clock > (kTicRate>>2)) + { + int const percentComplete = min(100, tabledivide32_noinline(100 * cnt, nPrecacheCount)); + + // this just prevents the loading screen percentage bar from making large jumps + while (percentDisplayed < percentComplete) + { + gameHandleEvents(); + Bsprintf(tempbuf, "Loaded %d%% (%d/%d textures)\n", percentDisplayed, cnt, nPrecacheCount); + viewLoadingScreenUpdate(tempbuf, percentDisplayed); + videoNextPage(); + + if (totalclock - clock >= 1) + { + clock = totalclock; + percentDisplayed++; + } + } + + clock = totalclock; + } +#endif } } memset(gotpic,0,sizeof(gotpic)); @@ -1272,6 +1296,20 @@ RESTART: gRestartGame = 0; gGameStarted = 0; levelSetupOptions(0,0); +#if 0 + // What's this loop for? Needs checking + while (gGameMenuMgr.m_bActive) + { + gGameMenuMgr.Process(); + gameHandleEvents(); + if (G_FPSLimit()) + { + videoClearScreen(0); + gGameMenuMgr.Draw(); + videoNextPage(); + } + } +#endif if (gGameOptions.nGameType != 0) { if (!gDemo.at0 && gDemo.at59ef > 0 && gGameOptions.nGameType == 0 && !bNoDemo && demo_playloop) diff --git a/source/blood/src/network.cpp b/source/blood/src/network.cpp index f560c5c94..76dab0cd7 100644 --- a/source/blood/src/network.cpp +++ b/source/blood/src/network.cpp @@ -1011,7 +1011,13 @@ void netInitialize(bool bConsole) while (numplayers < gNetPlayers) { handleevents(); - +#if 0 + if (quitevent) + { + netServerDisconnect(); + QuitGame(); + } +#endif if (!bConsole && inputState.GetKeyStatus(sc_Escape)) { netServerDisconnect(); @@ -1168,7 +1174,13 @@ void netInitialize(bool bConsole) while (bWaitServer) { handleevents(); - +#if 0 + if (quitevent) + { + netClientDisconnect(); + QuitGame(); + } +#endif if (!bConsole && inputState.GetKeyStatus(sc_Escape)) { netClientDisconnect(); diff --git a/source/common/ns.h b/source/common/ns.h index 83681e827..8ad103b2d 100644 --- a/source/common/ns.h +++ b/source/common/ns.h @@ -2,13 +2,10 @@ #ifndef NO_NAMESPACE -#define BEGIN_DUKERR_NS namespace DukeRR { -#define END_DUKERR_NS } - -#define BEGIN_DUKE_NS namespace DukeRR{} namespace Duke { using namespace DukeRR; +#define BEGIN_DUKE_NS namespace Duke { #define END_DUKE_NS } -#define BEGIN_RR_NS namespace DukeRR{} namespace Redneck { using namespace DukeRR; +#define BEGIN_RR_NS namespace Redneck { #define END_RR_NS } #define BEGIN_BLD_NS namespace Blood { @@ -21,10 +18,7 @@ #define END_PS_NS } #else - -#define BEGIN_DUKERR_NS -#define END_DUKERR_NS - + #define BEGIN_DUKE_NS #define END_DUKE_NS diff --git a/source/common/rts.cpp b/source/common/rts.cpp index 7c464cb58..5ce19f36d 100644 --- a/source/common/rts.cpp +++ b/source/common/rts.cpp @@ -40,7 +40,6 @@ #include "m_swap.h" #include "s_soundinternal.h" -const char* G_DefaultRtsFile(void); struct WadInfo { @@ -68,7 +67,6 @@ struct LumpInfoInternal static FString RTSName; static TArray RTSFile; static TArray LumpInfo; -static bool checked; void RTS_Init(const char *filename) @@ -82,11 +80,6 @@ void RTS_Init(const char *filename) bool RTS_IsInitialized() { if (LumpInfo.Size() > 0) return true; - if (RTSName.IsEmpty() && !checked) - { - RTSName = G_DefaultRtsFile(); - checked = true; - } if (RTSName.IsEmpty()) return false; auto fr = fileSystem.OpenFileReader(RTSName, 0); RTSName = ""; // don't try ever again. diff --git a/source/common/searchpaths.cpp b/source/common/searchpaths.cpp index c5a83becb..993fd68cf 100644 --- a/source/common/searchpaths.cpp +++ b/source/common/searchpaths.cpp @@ -971,35 +971,6 @@ const char* G_ConFile(void) return userConfig.DefaultCon.IsNotEmpty() ? userConfig.DefaultCon.GetChars() : G_DefaultConFile(); } -const char* G_DefaultRtsFile(void) -{ - if (g_gameType & GAMEFLAG_DUKE) - return "DUKE.RTS"; - else if (g_gameType & GAMEFLAG_WW2GI) - return "WW2GI.RTS"; - else if (g_gameType & GAMEFLAG_NAPALM) - { - if (!fileSystem.FileExists("NAPALM.RTS") && fileSystem.FileExists("NAM.RTS")) - return "NAM.RTS"; - else - return "NAPALM.RTS"; - } - else if (g_gameType & GAMEFLAG_NAM) - { - if (!fileSystem.FileExists("NAM.RTS") && fileSystem.FileExists("NAPALM.RTS")) - return "NAPALM.RTS"; - else - return "NAM.RTS"; - } - else if (g_gameType & GAMEFLAG_RRALL) - return "REDNECK.RTS"; - else if (g_gameType & GAMEFLAG_SW) - return "SW.RTS"; - - return ""; -} - - #if 0 // Should this be added to the game data collector? diff --git a/source/duke3d/CMakeLists.txt b/source/duke3d/CMakeLists.txt index fbf31412f..cb852ddc7 100644 --- a/source/duke3d/CMakeLists.txt +++ b/source/duke3d/CMakeLists.txt @@ -16,6 +16,7 @@ set( PCH_SOURCES src/gameexec.cpp src/gamevars.cpp src/global.cpp + src/namesdyn.cpp src/network.cpp src/osdcmds.cpp src/player.cpp @@ -26,6 +27,7 @@ set( PCH_SOURCES src/text.cpp src/sector.cpp src/sounds.cpp + src/soundsdyn.cpp src/d_menu.cpp ) diff --git a/source/duke3d/src/actors.h b/source/duke3d/src/actors.h index c6900b455..c648fe411 100644 --- a/source/duke3d/src/actors.h +++ b/source/duke3d/src/actors.h @@ -24,12 +24,164 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #define actors_h_ #include "player.h" -# include "dukerr/namesdyn.h" -#include "dukerr/actors.h" +# include "namesdyn.h" BEGIN_DUKE_NS + +#define MAXSLEEPDIST 16384 +#define SLEEPTIME 1536 +#define ACTOR_FLOOR_OFFSET (1<<8) +#define ZOFFSET2 (16<<8) +#define ZOFFSET3 (8<<8) +#define ZOFFSET4 (12<<8) +#define ZOFFSET5 (32<<8) +#define ZOFFSET6 (4<<8) + +#define ACTOR_MAXFALLINGZVEL 6144 +#define ACTOR_ONWATER_ADDZ (24<<8) + +// KEEPINSYNC lunatic/con_lang.lua +#define STAT_DEFAULT 0 +#define STAT_ACTOR 1 +#define STAT_ZOMBIEACTOR 2 +#define STAT_EFFECTOR 3 +#define STAT_PROJECTILE 4 +#define STAT_MISC 5 +#define STAT_STANDABLE 6 +#define STAT_LOCATOR 7 +#define STAT_ACTIVATOR 8 +#define STAT_TRANSPORT 9 +#define STAT_PLAYER 10 +#define STAT_FX 11 +#define STAT_FALLER 12 +#define STAT_DUMMYPLAYER 13 +#define STAT_LIGHT 14 +#define STAT_NETALLOC (MAXSTATUS-1) + + +// Defines the motion characteristics of an actor +enum amoveflags_t +{ + face_player = 1, + geth = 2, + getv = 4, + random_angle = 8, + face_player_slow = 16, + spin = 32, + face_player_smart = 64, + fleeenemy = 128, + jumptoplayer_only = 256, + jumptoplayer_bits = 257, // NOTE: two bits set! + seekplayer = 512, + furthestdir = 1024, + dodgebullet = 4096 +}; + +// Defines for 'useractor' keyword +enum uactortypes_t +{ + notenemy, + enemy, + enemystayput +}; + +// These macros are there to give names to the t_data[]/T*/vm.g_t[] indices +// when used with actors. Greppability of source code is certainly a virtue. +#define AC_COUNT(t) ((t)[0]) /* the actor's count */ +/* The ID of the actor's current move. In C-CON, the bytecode offset to the + * move composite: */ +#define AC_MOVE_ID(t) ((t)[1]) +#define AC_ACTION_COUNT(t) ((t)[2]) /* the actor's action count */ +#define AC_CURFRAME(t) ((t)[3]) /* the actor's current frame offset */ +/* The ID of the actor's current action. In C-CON, the bytecode offset to the + * action composite: */ +#define AC_ACTION_ID(t) ((t)[4]) +#define AC_AI_ID(t) ((t)[5]) /* the ID of the actor's current ai */ + +enum actionparams +{ + ACTION_STARTFRAME = 0, + ACTION_NUMFRAMES, + ACTION_VIEWTYPE, + ACTION_INCVAL, + ACTION_DELAY, + ACTION_FLAGS, + ACTION_PARAM_COUNT, +}; + +enum actionflags +{ + AF_VIEWPOINT = 1u<<0u, +}; + +#ifdef LUNATIC +struct action +{ + // These members MUST be in this exact order because FFI cdata of this type + // can be initialized by passing a table with numeric indices (con.action). + int16_t startframe, numframes; + int16_t viewtype, incval, delay; + uint16_t flags; +}; + +struct move +{ + // These members MUST be in this exact order. + int16_t hvel, vvel; +}; + +#pragma pack(push,1) +typedef struct { int32_t id; struct move mv; } con_move_t; +typedef struct { int32_t id; struct action ac; } con_action_t; +#pragma pack(pop) +#endif + +// Select an actor's actiontics and movflags locations depending on +// whether we compile the Lunatic build. +// : sprite pointer +// : actor_t pointer +#ifdef LUNATIC +# define AC_ACTIONTICS(spr, a) ((a)->actiontics) +# define AC_MOVFLAGS(spr, a) ((a)->movflags) +#else +# define AC_ACTIONTICS(spr, a) ((spr)->lotag) +# define AC_MOVFLAGS(spr, a) ((spr)->hitag) +#endif + // (+ 40 16 16 4 8 6 8 6 4 20) #pragma pack(push, 1) +typedef struct +{ + int32_t t_data[10]; // 40b sometimes used to hold offsets to con code + +#ifdef LUNATIC + // total: 18b + struct move mv; + struct action ac; + // Gets incremented by TICSPERFRAME on each A_Execute() call: + uint16_t actiontics; + // Movement flags, sprite[i].hitag in C-CON: + uint16_t movflags; +#endif + + int32_t flags; // 4b + vec3_t bpos; // 12b + int32_t floorz, ceilingz; // 8b + vec2_t lastv; // 8b + int16_t picnum, ang, extra, owner; // 8b + int16_t movflag, tempang, timetosleep; // 6b + int16_t stayput; // 2b + + uint8_t cgg, lasttransport; // 2b + // NOTE: 'dispicnum' is updated every frame, not in sync with game tics! + int16_t dispicnum; // 2b + +#ifdef POLYMER + int16_t lightId, lightmaxrange; // 4b + _prlight *lightptr; // 4b/8b aligned on 96 bytes + uint8_t lightcount, filler[3]; +#endif +} actor_t; // note: fields in this struct DO NOT have to be in this order, // however if you add something to this struct, please make sure @@ -54,6 +206,26 @@ typedef struct netactor_s t_data_8, t_data_9; +#ifdef LUNATIC + + int32_t + hvel, + vvel; + + + int32_t + startframe, + numframes; + + int32_t + viewtype, + incval, + delay; + + int32_t + actiontics; +#endif + int32_t flags; @@ -84,6 +256,10 @@ typedef struct netactor_s dispicnum; +#if defined LUNATIC + int32_t movflags; +#endif + // note: lightId, lightcount, lightmaxrange are not synchronized between client and server int32_t @@ -175,6 +351,86 @@ typedef struct netactor_s } netactor_t; #pragma pack(pop) +typedef struct +{ +#if !defined LUNATIC + intptr_t *execPtr; // pointer to CON script for this tile, formerly actorscrptr + intptr_t *loadPtr; // pointer to load time CON script, formerly actorLoadEventScrPtr or something +#endif + projectile_t *proj; + projectile_t *defproj; + uint32_t flags; // formerly SpriteFlags, ActorType + int32_t cacherange; // formerly SpriteCache +} tiledata_t; + + +// KEEPINSYNC lunatic/con_lang.lua +enum sflags_t +{ + SFLAG_SHADOW = 0x00000001, + SFLAG_NVG = 0x00000002, + SFLAG_NOSHADE = 0x00000004, + SFLAG_PROJECTILE = 0x00000008, + SFLAG_DECAL = 0x00000010, + SFLAG_BADGUY = 0x00000020, + SFLAG_NOPAL = 0x00000040, + SFLAG_NOEVENTCODE = 0x00000080, + SFLAG_NOLIGHT = 0x00000100, + SFLAG_USEACTIVATOR = 0x00000200, + SFLAG_NULL = 0x00000400, // null sprite in multiplayer + SFLAG_NOCLIP = 0x00000800, // clipmove it with cliptype 0 + SFLAG_NOFLOORSHADOW = 0x00001000, // for temp. internal use, per-tile flag not checked + SFLAG_SMOOTHMOVE = 0x00002000, + SFLAG_NOTELEPORT = 0x00004000, + SFLAG_BADGUYSTAYPUT = 0x00008000, + SFLAG_CACHE = 0x00010000, + // rotation-fixed wrt a pivot point to prevent position diverging due to + // roundoff error accumulation: + SFLAG_ROTFIXED = 0x00020000, + SFLAG_HARDCODED_BADGUY = 0x00040000, + SFLAG_DIDNOSE7WATER = 0x00080000, // used temporarily + SFLAG_NODAMAGEPUSH = 0x00100000, + SFLAG_NOWATERDIP = 0x00200000, + SFLAG_HURTSPAWNBLOOD = 0x00400000, + SFLAG_GREENSLIMEFOOD = 0x00800000, + SFLAG_REALCLIPDIST = 0x01000000, + SFLAG_WAKEUPBADGUYS = 0x02000000, + SFLAG_DAMAGEEVENT = 0x04000000, + SFLAG_NOWATERSECTOR = 0x08000000, + SFLAG_QUEUEDFORDELETE = 0x10000000, +}; + +// Custom projectiles "workslike" flags. +// XXX: Currently not predefined from CON. +enum pflags_t +{ + PROJECTILE_HITSCAN = 0x00000001, + PROJECTILE_RPG = 0x00000002, + PROJECTILE_BOUNCESOFFWALLS = 0x00000004, + PROJECTILE_BOUNCESOFFMIRRORS = 0x00000008, + PROJECTILE_KNEE = 0x00000010, + PROJECTILE_WATERBUBBLES = 0x00000020, + PROJECTILE_TIMED = 0x00000040, + PROJECTILE_BOUNCESOFFSPRITES = 0x00000080, + PROJECTILE_SPIT = 0x00000100, + PROJECTILE_COOLEXPLOSION1 = 0x00000200, + PROJECTILE_BLOOD = 0x00000400, + PROJECTILE_LOSESVELOCITY = 0x00000800, + PROJECTILE_NOAIM = 0x00001000, + PROJECTILE_RANDDECALSIZE = 0x00002000, + PROJECTILE_EXPLODEONTIMER = 0x00004000, + PROJECTILE_RPG_IMPACT = 0x00008000, + PROJECTILE_RADIUS_PICNUM = 0x00010000, + PROJECTILE_ACCURATE_AUTOAIM = 0x00020000, + PROJECTILE_FORCEIMPACT = 0x00040000, + PROJECTILE_REALCLIPDIST = 0x00080000, + PROJECTILE_ACCURATE = 0x00100000, + PROJECTILE_NOSETOWNERSHADE = 0x00200000, + PROJECTILE_RPG_IMPACT_DAMAGE = 0x00400000, + PROJECTILE_MOVED = 0x80000000, // internal flag, do not document + PROJECTILE_TYPE_MASK = PROJECTILE_HITSCAN | PROJECTILE_RPG | PROJECTILE_KNEE | PROJECTILE_BLOOD, +}; + extern tiledata_t g_tile[MAXTILES]; extern actor_t actor[MAXSPRITES]; extern int32_t block_deletesprite; @@ -207,65 +463,83 @@ void G_MoveWorld(void); void G_RefreshLights(void); void G_StopInterpolation(const int32_t *posptr); -inline int A_CheckEnemyTile(int tileNum); -inline int A_SetSprite(int spriteNum, uint32_t cliptype); -inline int32_t A_MoveSprite(int spriteNum, vec3_t const* change, uint32_t cliptype); - -inline int G_CheckForSpaceCeiling(int sectnum); -inline int G_CheckForSpaceFloor(int sectnum); - -inline int A_CheckEnemySprite(void const* s); - // PK 20110701: changed input argument: int32_t i (== sprite, whose sectnum...) --> sectnum directly void Sect_ToggleInterpolation(int sectnum, int setInterpolation); -inline void Sect_ClearInterpolation(int sectnum) { Sect_ToggleInterpolation(sectnum, 0); } -inline void Sect_SetInterpolation(int sectnum) { Sect_ToggleInterpolation(sectnum, 1); } +static FORCE_INLINE void Sect_ClearInterpolation(int sectnum) { Sect_ToggleInterpolation(sectnum, 0); } +static FORCE_INLINE void Sect_SetInterpolation(int sectnum) { Sect_ToggleInterpolation(sectnum, 1); } + +#ifdef LUNATIC +int32_t G_ToggleWallInterpolation(int32_t w, int32_t doset); +#endif + +#if KRANDDEBUG +# define ACTOR_INLINE __fastcall +# define ACTOR_INLINE_HEADER extern __fastcall +#else +# define ACTOR_INLINE EXTERN_INLINE +# define ACTOR_INLINE_HEADER EXTERN_INLINE_HEADER +#endif extern int32_t A_MoveSpriteClipdist(int32_t spritenum, vec3_t const * change, uint32_t cliptype, int32_t clipdist); +ACTOR_INLINE_HEADER int A_CheckEnemyTile(int tileNum); +ACTOR_INLINE_HEADER int A_SetSprite(int spriteNum, uint32_t cliptype); +ACTOR_INLINE_HEADER int32_t A_MoveSprite(int spriteNum, vec3_t const * change, uint32_t cliptype); + +EXTERN_INLINE_HEADER int G_CheckForSpaceCeiling(int sectnum); +EXTERN_INLINE_HEADER int G_CheckForSpaceFloor(int sectnum); + +EXTERN_INLINE_HEADER int A_CheckEnemySprite(void const * s); -inline int A_CheckEnemyTile(int const tileNum) +#if defined actors_c_ || !defined DISABLE_INLINING + +# if !KRANDDEBUG || (KRANDDEBUG && defined actors_c_) + +ACTOR_INLINE int A_CheckEnemyTile(int const tileNum) { return ((g_tile[tileNum].flags & (SFLAG_HARDCODED_BADGUY | SFLAG_BADGUY)) != 0); } -inline int A_SetSprite(int const spriteNum, uint32_t cliptype) +ACTOR_INLINE int A_SetSprite(int const spriteNum, uint32_t cliptype) { vec3_t const davect = { (sprite[spriteNum].xvel * (sintable[(sprite[spriteNum].ang + 512) & 2047])) >> 14, (sprite[spriteNum].xvel * (sintable[sprite[spriteNum].ang & 2047])) >> 14, sprite[spriteNum].zvel }; return (A_MoveSprite(spriteNum, &davect, cliptype) == 0); } -inline int A_SetSpriteNoZ(int const spriteNum, uint32_t cliptype) +ACTOR_INLINE int A_SetSpriteNoZ(int const spriteNum, uint32_t cliptype) { vec3_t const davect = { (sprite[spriteNum].xvel * (sintable[(sprite[spriteNum].ang + 512) & 2047])) >> 14, (sprite[spriteNum].xvel * (sintable[sprite[spriteNum].ang & 2047])) >> 14, 0 }; return (A_MoveSprite(spriteNum, &davect, cliptype) == 0); } -inline int32_t A_MoveSprite(int const spriteNum, vec3_t const * const change, uint32_t cliptype) +ACTOR_INLINE int32_t A_MoveSprite(int const spriteNum, vec3_t const * const change, uint32_t cliptype) { return A_MoveSpriteClipdist(spriteNum, change, cliptype, -1); } -inline int G_CheckForSpaceCeiling(int const sectnum) +# endif + +EXTERN_INLINE int G_CheckForSpaceCeiling(int const sectnum) { return ((sector[sectnum].ceilingstat&1) && sector[sectnum].ceilingpal == 0 && (sector[sectnum].ceilingpicnum==MOONSKY1 || sector[sectnum].ceilingpicnum==BIGORBIT1)); } -inline int G_CheckForSpaceFloor(int const sectnum) +EXTERN_INLINE int G_CheckForSpaceFloor(int const sectnum) { return ((sector[sectnum].floorstat&1) && sector[sectnum].ceilingpal == 0 && (sector[sectnum].floorpicnum==MOONSKY1 || sector[sectnum].floorpicnum==BIGORBIT1)); } -inline int A_CheckEnemySprite(void const * const pSprite) +EXTERN_INLINE int A_CheckEnemySprite(void const * const pSprite) { return A_CheckEnemyTile(((uspriteptr_t) pSprite)->picnum); } - END_DUKE_NS #endif + +#endif diff --git a/source/duke3d/src/common.cpp b/source/duke3d/src/common.cpp index 18f3cf829..ff6be1845 100644 --- a/source/duke3d/src/common.cpp +++ b/source/duke3d/src/common.cpp @@ -15,7 +15,7 @@ #include "common.h" -#include "dukerr/common_game.h" +#include "common_game.h" BEGIN_DUKE_NS diff --git a/source/duke3d/src/common_game.h b/source/duke3d/src/common_game.h new file mode 100644 index 000000000..335e1a315 --- /dev/null +++ b/source/duke3d/src/common_game.h @@ -0,0 +1,71 @@ +// +// 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 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 DUKEBETA ((g_gameType & GAMEFLAG_DUKEBETA) == GAMEFLAG_DUKEBETA) +#define FURY (g_gameType & GAMEFLAG_FURY) + +enum Games_t { + GAME_DUKE = 0, + GAME_NAM, + GAME_NAPALM, + GAME_WW2GI, + GAMECOUNT +}; + +typedef enum basepal_ { + BASEPAL = 0, + WATERPAL, + SLIMEPAL, + DREALMSPAL, + TITLEPAL, + ENDINGPAL, // 5 + ANIMPAL, + BASEPALCOUNT +} basepal_t; + +#include "v_text.h" + +extern int loaddefinitions_game(const char *fn, int32_t preload); + +////////// + +extern void G_InitMultiPsky(int CLOUDYOCEAN__DYN, int MOONSKY1__DYN, int BIGORBIT1__DYN, int LA__DYN); +extern void G_SetupGlobalPsky(void); + +////////// + +extern void G_LoadLookups(void); + +////////// + +static inline void Duke_ApplySpritePropertiesToTSprite(tspriteptr_t tspr, uspriteptr_t spr) +{ + EDUKE32_STATIC_ASSERT(CSTAT_SPRITE_RESERVED1 >> 9 == TSPR_FLAGS_DRAW_LAST); + EDUKE32_STATIC_ASSERT(CSTAT_SPRITE_RESERVED4 >> 11 == TSPR_FLAGS_NO_SHADOW); + EDUKE32_STATIC_ASSERT(CSTAT_SPRITE_RESERVED5 >> 11 == TSPR_FLAGS_INVISIBLE_WITH_SHADOW); + + auto const cstat = spr->cstat; + tspr->clipdist |= ((cstat & CSTAT_SPRITE_RESERVED1) >> 9) | ((cstat & (CSTAT_SPRITE_RESERVED4 | CSTAT_SPRITE_RESERVED5)) >> 11); +} + +void Duke_CommonCleanup(void); + +END_DUKE_NS +#endif diff --git a/source/duke3d/src/d_menu.cpp b/source/duke3d/src/d_menu.cpp index 49ad014d1..bdb7e0959 100644 --- a/source/duke3d/src/d_menu.cpp +++ b/source/duke3d/src/d_menu.cpp @@ -37,7 +37,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #include "menu/menu.h" #include "gstrings.h" #include "version.h" -#include "dukerr/namesdyn.h" +#include "namesdyn.h" #include "menus.h" #include "../../glbackend/glbackend.h" @@ -603,7 +603,7 @@ bool GameInterface::DrawSpecialScreen(const DVector2 &origin, int tilenum) int32_t m, l; if (!haveCredits) { - if (tilenum == 2504) + if (tilenum == CREDITSTEXT1) { Menu_DrawBackground(origin); m = int(origin.X * 65536) + (20 << 16); @@ -663,7 +663,7 @@ bool GameInterface::DrawSpecialScreen(const DVector2 &origin, int tilenum) shadowminitext(m, l, "Michael Hadwin", 12); l += 7 << 16; return true; } - else if (tilenum == 2505) + else if (tilenum == CREDITSTEXT2__STATIC) { Menu_DrawBackground(origin); m = int(origin.X * 65536) + (20 << 16); @@ -705,7 +705,7 @@ bool GameInterface::DrawSpecialScreen(const DVector2 &origin, int tilenum) shadowminitext(m, l, "Thanks for the hardware, guys.", 12); l += 7 << 16; return true; } - else if (tilenum == 2506) + else if (tilenum == CREDITSTEXT3) { Menu_DrawBackground(origin); mgametextcenter(int(origin.X * 65536), int(origin.Y * 65536) + (50 << 16), "Duke Nukem 3D is a trademark of\n" diff --git a/source/duke3d/src/duke3d.h b/source/duke3d/src/duke3d.h index c668fb82c..454a6765f 100644 --- a/source/duke3d/src/duke3d.h +++ b/source/duke3d/src/duke3d.h @@ -107,7 +107,7 @@ EDUKE32_STATIC_ASSERT(7 <= MAXTILES-MAXUSERTILES); //#define DEBUG_VALGRIND_NO_SMC #include "actors.h" -#include "dukerr/common_game.h" +#include "common_game.h" #include "config.h" #include "gamecontrol.h" #include "game.h" @@ -116,15 +116,15 @@ EDUKE32_STATIC_ASSERT(7 <= MAXTILES-MAXUSERTILES); #include "gamevars.h" #include "global.h" #include "inv.h" -#include "dukerr/macros.h" -#include "dukerr/namesdyn.h" +#include "macros.h" +#include "namesdyn.h" #include "network.h" #include "player.h" -#include "dukerr/quotes.h" +#include "quotes.h" #include "rts.h" #include "sector.h" #include "sounds.h" -#include "dukerr/soundsdyn.h" +#include "soundsdyn.h" #include "text.h" BEGIN_DUKE_NS diff --git a/source/dukerr/events_defs.h b/source/duke3d/src/events_defs.h similarity index 97% rename from source/dukerr/events_defs.h rename to source/duke3d/src/events_defs.h index 463f1de1e..2ab9b2749 100644 --- a/source/dukerr/events_defs.h +++ b/source/duke3d/src/events_defs.h @@ -2,7 +2,7 @@ #ifndef EDUKE32_EVENTS_DEFS_H_ #define EDUKE32_EVENTS_DEFS_H_ -BEGIN_DUKERR_NS +BEGIN_DUKE_NS // the order of these can't be changed or else compatibility with EDuke 2.0 mods will break // KEEPINSYNC with EventNames[] and lunatic/con_lang.lua @@ -46,7 +46,6 @@ enum GameEvent_t { EVENT_USEMEDKIT, EVENT_USEJETPACK, EVENT_TURNAROUND, - // The following are EDuke32 only. EVENT_DISPLAYWEAPON, EVENT_FIREWEAPON, // 40 EVENT_SELECTWEAPON, @@ -168,10 +167,9 @@ enum GameEvent_t { #ifdef LUNATIC EVENT_ANIMATEALLSPRITES, #endif - MAXEVENTS, - MAXEVENTS_RR = EVENT_DISPLAYWEAPON + MAXEVENTS }; -END_DUKERR_NS +END_DUKE_NS #endif diff --git a/source/duke3d/src/game.cpp b/source/duke3d/src/game.cpp index 5d49e82f8..0da3d91ff 100644 --- a/source/duke3d/src/game.cpp +++ b/source/duke3d/src/game.cpp @@ -66,13 +66,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. BEGIN_DUKE_NS -extern void G_InitMultiPsky(int CLOUDYOCEAN__DYN, int MOONSKY1__DYN, int BIGORBIT1__DYN, int LA__DYN); -extern void G_LoadLookups(void); - -////////// - - - int32_t g_quitDeadline = 0; int32_t g_cameraDistance = 0, g_cameraClock = 0; @@ -85,6 +78,10 @@ int32_t vote_map = -1, vote_episode = -1; int32_t g_Debug = 0; +#ifndef EDUKE32_STANDALONE +static const char *defaultrtsfilename[GAMECOUNT] = { "DUKE.RTS", "NAM.RTS", "NAPALM.RTS", "WW2GI.RTS" }; +#endif + int32_t g_Shareware = 0; int32_t tempwallptr; @@ -99,6 +96,32 @@ int32_t g_levelTextTime = 0; extern char forcegl; #endif +const char *G_DefaultRtsFile(void) +{ +#ifndef EDUKE32_STANDALONE + if (DUKE) + return defaultrtsfilename[GAME_DUKE]; + else if (WW2GI) + return defaultrtsfilename[GAME_WW2GI]; + else if (NAPALM) + { + if (!fileSystem.FileExists(defaultrtsfilename[GAME_NAPALM]) && fileSystem.FileExists(defaultrtsfilename[GAME_NAM])) + return defaultrtsfilename[GAME_NAM]; // NAM/NAPALM Sharing + else + return defaultrtsfilename[GAME_NAPALM]; + } + else if (NAM) + { + if (!fileSystem.FileExists(defaultrtsfilename[GAME_NAM]) && fileSystem.FileExists(defaultrtsfilename[GAME_NAPALM])) + return defaultrtsfilename[GAME_NAPALM]; // NAM/NAPALM Sharing + else + return defaultrtsfilename[GAME_NAM]; + } +#endif + + return ""; +} + enum gametokens { T_INCLUDE = 0, @@ -196,16 +219,6 @@ int32_t A_CheckInventorySprite(spritetype *s) } -static inline void Duke_ApplySpritePropertiesToTSprite(tspriteptr_t tspr, uspriteptr_t spr) -{ - EDUKE32_STATIC_ASSERT(CSTAT_SPRITE_RESERVED1 >> 9 == TSPR_FLAGS_DRAW_LAST); - EDUKE32_STATIC_ASSERT(CSTAT_SPRITE_RESERVED4 >> 11 == TSPR_FLAGS_NO_SHADOW); - EDUKE32_STATIC_ASSERT(CSTAT_SPRITE_RESERVED5 >> 11 == TSPR_FLAGS_INVISIBLE_WITH_SHADOW); - - auto const cstat = spr->cstat; - tspr->clipdist |= ((cstat & CSTAT_SPRITE_RESERVED1) >> 9) | ((cstat & (CSTAT_SPRITE_RESERVED4 | CSTAT_SPRITE_RESERVED5)) >> 11); -} - void G_GameExit(const char *msg) { diff --git a/source/duke3d/src/game.h b/source/duke3d/src/game.h index ca1c25c36..e0f50d1b3 100644 --- a/source/duke3d/src/game.h +++ b/source/duke3d/src/game.h @@ -205,6 +205,8 @@ static inline int Menu_HaveUserMap(void) return (boardfilename[0] != 0 && m_level_number == 7 && ud.m_volume_number == 0); } +extern const char *G_DefaultRtsFile(void); + #ifdef LEGACY_ROR extern char ror_protectedsectors[MAXSECTORS]; #endif diff --git a/source/duke3d/src/gamedef.cpp b/source/duke3d/src/gamedef.cpp index 9e94d5ac7..dbffb79e6 100644 --- a/source/duke3d/src/gamedef.cpp +++ b/source/duke3d/src/gamedef.cpp @@ -27,11 +27,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #include "cheats.h" #include "common.h" -#include "dukerr/common_game.h" +#include "common_game.h" #include "m_crc32.h" #include "duke3d.h" #include "gameexec.h" -#include "dukerr/namesdyn.h" +#include "namesdyn.h" #include "osd.h" #include "savegame.h" #include "printf.h" diff --git a/source/duke3d/src/gamedef.h b/source/duke3d/src/gamedef.h index bed0074eb..5e5819b04 100644 --- a/source/duke3d/src/gamedef.h +++ b/source/duke3d/src/gamedef.h @@ -30,7 +30,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #include "cheats.h" #include "common.h" // tokenlist #include "player.h" // projectile_t -#include "dukerr/events_defs.h" +#include "events_defs.h" BEGIN_DUKE_NS diff --git a/source/duke3d/src/gameexec.h b/source/duke3d/src/gameexec.h index 838d699c8..8f90c7007 100644 --- a/source/duke3d/src/gameexec.h +++ b/source/duke3d/src/gameexec.h @@ -24,7 +24,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #define gameexec_h_ #include "build.h" -#include "dukerr/events_defs.h" +#include "events_defs.h" #include "gamedef.h" // vmstate_t #include "sector.h" // mapstate_t #include "zstring.h" diff --git a/source/duke3d/src/global.cpp b/source/duke3d/src/global.cpp index 0e895cbd0..efddc8e1d 100644 --- a/source/duke3d/src/global.cpp +++ b/source/duke3d/src/global.cpp @@ -103,6 +103,25 @@ int32_t g_spriteGravity = 176; int32_t g_timerTicsPerSecond = TICRATE; int32_t g_tripbombRadius = 3880; +int16_t g_blimpSpawnItems[15] = +{ + RPGSPRITE__STATIC, + CHAINGUNSPRITE__STATIC, + DEVISTATORAMMO__STATIC, + RPGAMMO__STATIC, + RPGAMMO__STATIC, + JETPACK__STATIC, + SHIELD__STATIC, + FIRSTAID__STATIC, + STEROIDS__STATIC, + RPGAMMO__STATIC, + RPGAMMO__STATIC, + RPGSPRITE__STATIC, + RPGAMMO__STATIC, + FREEZESPRITE__STATIC, + FREEZEAMMO__STATIC +}; + char CheatKeys[2] = { sc_D, sc_N }; END_DUKE_NS diff --git a/source/duke3d/src/global.h b/source/duke3d/src/global.h index bcf962901..7be73c3b3 100644 --- a/source/duke3d/src/global.h +++ b/source/duke3d/src/global.h @@ -27,7 +27,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #include "compat.h" #include "duke3d.h" #include "mmulti.h" -#include "dukerr/quotes.h" +#include "quotes.h" #include "sector.h" #include "sounds.h" #include "menu/menu.h" @@ -177,6 +177,7 @@ extern int32_t g_timerTicsPerSecond; extern int32_t g_tripbombRadius; extern int32_t g_volumeCnt; +extern int16_t g_blimpSpawnItems[15]; extern int32_t g_gametypeFlags[MAXGAMETYPES]; diff --git a/source/duke3d/src/inv.h b/source/duke3d/src/inv.h index 856ac1430..e85b9f1d0 100644 --- a/source/duke3d/src/inv.h +++ b/source/duke3d/src/inv.h @@ -22,8 +22,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #pragma once -#include "dukerr/namesdyn.h" - BEGIN_DUKE_NS enum dukeinv_t @@ -60,4 +58,21 @@ extern int const icon_to_inv[ICON_MAX]; extern int const inv_to_icon[GET_MAX]; +enum dukeweapon_t +{ + KNEE_WEAPON, // 0 + PISTOL_WEAPON, + SHOTGUN_WEAPON, + CHAINGUN_WEAPON, + RPG_WEAPON, + HANDBOMB_WEAPON, // 5 + SHRINKER_WEAPON, + DEVISTATOR_WEAPON, + TRIPBOMB_WEAPON, + FREEZE_WEAPON, + HANDREMOTE_WEAPON, // 10 + GROW_WEAPON, + MAX_WEAPONS +}; + END_DUKE_NS diff --git a/source/duke3d/src/keys.h b/source/duke3d/src/keys.h new file mode 100644 index 000000000..90fede7cd --- /dev/null +++ b/source/duke3d/src/keys.h @@ -0,0 +1,152 @@ +//------------------------------------------------------------------------- +/* +Copyright (C) 2010 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 KEYS_H + +#define KEYS_H + +BEGIN_DUKE_NS + + #define NUM_CODES 128 + + #define ESC 0x1B + #define ENTER 0x0D + + #define KEYSC_ESC 0x01 + #define KEYSC_1 0x02 + #define KEYSC_2 0x03 + #define KEYSC_3 0x04 + #define KEYSC_4 0x05 + #define KEYSC_5 0x06 + #define KEYSC_6 0x07 + #define KEYSC_7 0x08 + #define KEYSC_8 0x09 + #define KEYSC_9 0x0a + #define KEYSC_0 0x0b + #define KEYSC_DASH 0x0c + #define KEYSC_EQUAL 0x0d + + #define KEYSC_BS 0x0e + #define KEYSC_TAB 0x0f + #define KEYSC_Q 0x10 + #define KEYSC_W 0x11 + #define KEYSC_E 0x12 + #define KEYSC_R 0x13 + #define KEYSC_T 0x14 + #define KEYSC_Y 0x15 + #define KEYSC_U 0x16 + #define KEYSC_I 0x17 + #define KEYSC_O 0x18 + #define KEYSC_P 0x19 + #define KEYSC_LBRACK 0x1a + #define KEYSC_RBRACK 0x1b + #define KEYSC_ENTER 0x1c + + #define KEYSC_LCTRL 0x1d + #define KEYSC_A 0x1e + #define KEYSC_S 0x1f + #define KEYSC_D 0x20 + #define KEYSC_F 0x21 + #define KEYSC_G 0x22 + #define KEYSC_H 0x23 + #define KEYSC_J 0x24 + #define KEYSC_K 0x25 + #define KEYSC_L 0x26 + #define KEYSC_SEMI 0x27 + #define KEYSC_QUOTE 0x28 + #define KEYSC_BQUOTE 0x29 + #define KEYSC_TILDE 0x29 + + #define KEYSC_LSHIFT 0x2a + #define KEYSC_BSLASH 0x2b + #define KEYSC_Z 0x2c + #define KEYSC_X 0x2d + #define KEYSC_C 0x2e + #define KEYSC_V 0x2f + #define KEYSC_B 0x30 + #define KEYSC_N 0x31 + #define KEYSC_M 0x32 + #define KEYSC_COMMA 0x33 + #define KEYSC_PERIOD 0x34 + #define KEYSC_SLASH 0x35 + #define KEYSC_RSHIFT 0x36 + #define KEYSC_gSTAR 0x37 + + #define KEYSC_LALT 0x38 + #define KEYSC_SPACE 0x39 + #define KEYSC_CAPS 0x3a + + #define KEYSC_F1 0x3b + #define KEYSC_F2 0x3c + #define KEYSC_F3 0x3d + #define KEYSC_F4 0x3e + #define KEYSC_F5 0x3f + #define KEYSC_F6 0x40 + #define KEYSC_F7 0x41 + #define KEYSC_F8 0x42 + #define KEYSC_F9 0x43 + #define KEYSC_F10 0x44 + + #define KEYSC_gNUM 0x45 + #define KEYSC_SCROLL 0x46 + + #define KEYSC_gHOME 0x47 + #define KEYSC_gUP 0x48 + #define KEYSC_gPGUP 0x49 + #define KEYSC_gMINUS 0x4a + #define KEYSC_gLEFT 0x4b + #define KEYSC_gKP5 0x4c + #define KEYSC_gRIGHT 0x4d + #define KEYSC_gPLUS 0x4e + #define KEYSC_gEND 0x4f + #define KEYSC_gDOWN 0x50 + #define KEYSC_gPGDN 0x51 + #define KEYSC_gINS 0x52 + #define KEYSC_gDEL 0x53 + + #define KEYSC_F11 0x57 + #define KEYSC_F12 0x58 + + #define KEYSC_gENTER 0x9C + #define KEYSC_RCTRL 0x9D + #define KEYSC_gSLASH 0xB5 + #define KEYSC_RALT 0xB8 + #define KEYSC_PRTSCN 0xB7 + #define KEYSC_PAUSE 0xC5 + #define KEYSC_HOME 0xC7 + #define KEYSC_UP 0xC8 + #define KEYSC_PGUP 0xC9 + #define KEYSC_LEFT 0xCB + #define KEYSC_RIGHT 0xCD + #define KEYSC_END 0xCF + #define KEYSC_DOWN 0xD0 + #define KEYSC_PGDN 0xD1 + #define KEYSC_INSERT 0xD2 + #define KEYSC_DELETE 0xD3 + + #define asc_Esc 27 + #define asc_Enter 13 + #define asc_Space 32 + +END_DUKE_NS + +#endif diff --git a/source/duke3d/src/macros.h b/source/duke3d/src/macros.h new file mode 100644 index 000000000..05084c269 --- /dev/null +++ b/source/duke3d/src/macros.h @@ -0,0 +1,197 @@ +//------------------------------------------------------------------------- +/* +Copyright (C) 2010 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 EDUKE32_MACROS_H_ +#define EDUKE32_MACROS_H_ + +#include "mmulti.h" + +BEGIN_DUKE_NS + + +// Macros, some from SW source + +#define BGSTRETCH (hud_bgstretch ? 1024 : 0) + +#ifndef EDUKE32_STANDALONE +#define RANDOMSCRAP(s, i) A_InsertSprite(s->sectnum,s->x+(krand()&255)-128,s->y+(krand()&255)-128,s->z-ZOFFSET3-(krand()&8191),\ + SCRAP6+(krand()&15),-8,48,48,krand()&2047,(krand()&63)+64,-512-(krand()&2047),i,5) +#endif + +#define GTFLAGS(x) (g_gametypeFlags[ud.coop] & x) + +#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_CONNECT(i) i = 0; i != -1; i = connectpoint2[i] + +#define TEST(flags,mask) ((flags) & (mask)) +#define SET(flags,mask) ((flags) |= (mask)) +#define RESET(flags,mask) ((flags) &= ~(mask)) +#define FLIP(flags,mask) ((flags) ^= (mask)) + +// mask definitions + +#define BIT(shift) (1u<<(shift)) + +#define TEST_SYNC_KEY(bits, sync_num) (!!TEST((bits), BIT(sync_num))) + +#ifndef EDUKE32_STANDALONE +#define AFLAMABLE(X) (X==BOX||X==TREE1||X==TREE2||X==TIRE||X==CONE) +#else +#define AFLAMABLE(X) (0) +#endif +#define rnd(X) ((krand()>>8)>=(255-(X))) + +// +// NETWORK - REDEFINABLE SHARED (SYNC) KEYS BIT POSITIONS +// + +#define SK_JUMP 0 +#define SK_CROUCH 1 +#define SK_FIRE 2 +#define SK_AIM_UP 3 +#define SK_AIM_DOWN 4 +#define SK_RUN 5 +#define SK_LOOK_LEFT 6 +#define SK_LOOK_RIGHT 7 +// weapons take up 4 bits... +#define SK_WEAPON_BITS 8 +#define SK_WEAPON_BITS1 9 +#define SK_WEAPON_BITS2 10 +#define SK_WEAPON_BITS3 11 +#define SK_STEROIDS 12 +#define SK_LOOK_UP 13 +#define SK_LOOK_DOWN 14 +#define SK_NIGHTVISION 15 +#define SK_MEDKIT 16 +#define SK_MULTIFLAG 17 +#define SK_CENTER_VIEW 18 +#define SK_HOLSTER 19 +#define SK_INV_LEFT 20 +#define SK_PAUSE 21 +#define SK_QUICK_KICK 22 +#define SK_AIMMODE 23 +#define SK_HOLODUKE 24 +#define SK_JETPACK 25 +#define SK_GAMEQUIT 26 +#define SK_INV_RIGHT 27 +#define SK_TURNAROUND 28 +#define SK_OPEN 29 +#define SK_INVENTORY 30 +#define SK_ESCAPE 31 + +// rotatesprite flags +#define ROTATE_SPRITE_TRANSLUCENT (BIT(0)) +#define ROTATE_SPRITE_VIEW_CLIP (BIT(1)) // clip to view +#define ROTATE_SPRITE_YFLIP (BIT(2)) +#define ROTATE_SPRITE_IGNORE_START_MOST (BIT(3)) // don't clip to startumost +#define ROTATE_SPRITE_SCREEN_CLIP (BIT(1)|BIT(3)) // use window +#define ROTATE_SPRITE_CORNER (BIT(4)) // place sprite from upper left corner +#define ROTATE_SPRITE_TRANS_FLIP (BIT(5)) +#define ROTATE_SPRITE_NON_MASK (BIT(6)) // non masked sprites +#define ROTATE_SPRITE_ALL_PAGES (BIT(7)) // copies to all pages + +#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) + + +//cstat, bit 0: 1 = Blocking sprite (use with clipmove, getzrange) "B" +// bit 1: 1 = 50/50 transluscence, 0 = normal "T" +// bit 2: 1 = x-flipped, 0 = normal "F" +// bit 3: 1 = y-flipped, 0 = normal "F" +// bits 5-4: 00 = FACE sprite (default) "R" +// 01 = WALL sprite (like masked walls) +// 10 = FLOOR sprite (parallel to ceilings&floors) +// 11 = SPIN sprite (face sprite that can spin 2draw style - not done yet) +// bit 6: 1 = 1-sided sprite, 0 = normal "1" +// bit 7: 1 = Real centered centering, 0 = foot center "C" +// bit 8: 1 = Blocking sprite (use with hitscan) "H" +// bit 9: reserved +// bit 10: reserved +// bit 11: 1 = determine shade based only on its own shade member (see CON's spritenoshade command), i.e. +// don't take over shade from parallaxed ceiling/nonparallaxed floor +// (NOTE: implemented on the game side) +// bit 12: reserved +// bit 13: reserved +// bit 14: reserved +// bit 15: 1 = Invisible sprite, 0 = not invisible +#define CSTAT_SPRITE_NOSHADE BIT(11) +#define CSTAT_SPRITE_BREAKABLE (CSTAT_SPRITE_BLOCK_HITSCAN) + +#define SP(i) sprite[i].yvel +#define SX(i) sprite[i].x +#define SY(i) sprite[i].y +#define SZ(i) sprite[i].z +#define SS(i) sprite[i].shade +#define PN(i) sprite[i].picnum +#define SA(i) sprite[i].ang +//#define SV sprite[i].xvel +//#define ZV sprite[i].zvel +//#define RX sprite[i].xrepeat +//#define RY sprite[i].yrepeat +#define OW(i) sprite[i].owner +#define CS(i) sprite[i].cstat +#define SH(i) sprite[i].extra +//#define CX sprite[i].xoffset +//#define CY sprite[i].yoffset +//#define CD sprite[i].clipdist +//#define PL sprite[i].pal +#define SLT(i) sprite[i].lotag +#define SHT(i) sprite[i].hitag +#define SECT(i) sprite[i].sectnum + +#define T1(i) actor[i].t_data[0] +#define T2(i) actor[i].t_data[1] +#define T3(i) actor[i].t_data[2] +#define T4(i) actor[i].t_data[3] +#define T5(i) actor[i].t_data[4] +#define T6(i) actor[i].t_data[5] + +END_DUKE_NS + +#endif diff --git a/source/duke3d/src/namesdyn.cpp b/source/duke3d/src/namesdyn.cpp new file mode 100644 index 000000000..d4b8fb520 --- /dev/null +++ b/source/duke3d/src/namesdyn.cpp @@ -0,0 +1,1313 @@ +//------------------------------------------------------------------------- +/* +Copyright (C) 2010 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. +*/ +//------------------------------------------------------------------------- + +#include "ns.h" // Must come before everything else! + +#include "compat.h" +#include "build.h" + +#include "namesdyn.h" +#include "global.h" +#include "gamecontrol.h" + +BEGIN_DUKE_NS + +# define DVPTR(x) &x + +int16_t DynamicTileMap[MAXTILES]; + +struct dynitem +{ + const char *str; + int32_t *dynvalptr; + const int16_t staticval; +}; + +LUNATIC_EXTERN struct dynitem g_dynTileList[] = +{ + { "ACCESS_ICON", DVPTR(ACCESS_ICON), ACCESS_ICON__STATIC }, + { "ACCESSCARD", DVPTR(ACCESSCARD), ACCESSCARD__STATIC }, + { "ACCESSSWITCH", DVPTR(ACCESSSWITCH), ACCESSSWITCH__STATIC }, + { "ACCESSSWITCH2", DVPTR(ACCESSSWITCH2), ACCESSSWITCH2__STATIC }, + { "ACTIVATOR", DVPTR(ACTIVATOR), ACTIVATOR__STATIC }, + { "ACTIVATORLOCKED", DVPTR(ACTIVATORLOCKED), ACTIVATORLOCKED__STATIC }, + { "AIRTANK", DVPTR(AIRTANK), AIRTANK__STATIC }, + { "AIRTANK_ICON", DVPTR(AIRTANK_ICON), AIRTANK_ICON__STATIC }, + { "ALIENSWITCH", DVPTR(ALIENSWITCH), ALIENSWITCH__STATIC }, + { "AMMO", DVPTR(AMMO), AMMO__STATIC }, + { "AMMOBOX", DVPTR(AMMOBOX), AMMOBOX__STATIC }, + { "AMMOLOTS", DVPTR(AMMOLOTS), AMMOLOTS__STATIC }, + { "ANTENNA", DVPTR(ANTENNA), ANTENNA__STATIC }, + { "APLAYER", DVPTR(APLAYER), APLAYER__STATIC }, + { "APLAYERTOP", DVPTR(APLAYERTOP), APLAYERTOP__STATIC }, + { "ARMJIB1", DVPTR(ARMJIB1), ARMJIB1__STATIC }, + { "ARROW", DVPTR(ARROW), ARROW__STATIC }, + { "ATM", DVPTR(ATM), ATM__STATIC }, + { "ATMBROKE", DVPTR(ATMBROKE), ATMBROKE__STATIC }, + { "ATOMICHEALTH", DVPTR(ATOMICHEALTH), ATOMICHEALTH__STATIC }, + { "BANNER", DVPTR(BANNER), BANNER__STATIC }, + { "BARBROKE", DVPTR(BARBROKE), BARBROKE__STATIC }, + { "BATTERYAMMO", DVPTR(BATTERYAMMO), BATTERYAMMO__STATIC }, + { "BETASCREEN", DVPTR(BETASCREEN), BETASCREEN__STATIC }, + { "BETAVERSION", DVPTR(BETAVERSION), BETAVERSION__STATIC }, + { "BGRATE1", DVPTR(BGRATE1), BGRATE1__STATIC }, + { "BIGALPHANUM", DVPTR(BIGALPHANUM), BIGALPHANUM__STATIC }, + { "BIGAPPOS", DVPTR(BIGAPPOS), BIGAPPOS__STATIC }, + { "BIGCOLIN", DVPTR(BIGCOLIN), BIGCOLIN__STATIC }, + { "BIGCOMMA", DVPTR(BIGCOMMA), BIGCOMMA__STATIC }, + { "BIGFORCE", DVPTR(BIGFORCE), BIGFORCE__STATIC }, + { "BIGHOLE", DVPTR(BIGHOLE), BIGHOLE__STATIC }, + { "BIGORBIT1", DVPTR(BIGORBIT1), BIGORBIT1__STATIC }, + { "BIGPERIOD", DVPTR(BIGPERIOD), BIGPERIOD__STATIC }, + { "BIGQ", DVPTR(BIGQ), BIGQ__STATIC }, + { "BIGSEMI", DVPTR(BIGSEMI), BIGSEMI__STATIC }, + { "BIGX", DVPTR(BIGX_), BIGX__STATIC }, + { "BLANKSCREEN", DVPTR(BLANKSCREEN), BLANKSCREEN__STATIC }, + { "BLIMP", DVPTR(BLIMP), BLIMP__STATIC }, + { "BLOOD", DVPTR(BLOOD), BLOOD__STATIC }, + { "BLOODPOOL", DVPTR(BLOODPOOL), BLOODPOOL__STATIC }, + { "BLOODSPLAT1", DVPTR(BLOODSPLAT1), BLOODSPLAT1__STATIC }, + { "BLOODSPLAT2", DVPTR(BLOODSPLAT2), BLOODSPLAT2__STATIC }, + { "BLOODSPLAT3", DVPTR(BLOODSPLAT3), BLOODSPLAT3__STATIC }, + { "BLOODSPLAT4", DVPTR(BLOODSPLAT4), BLOODSPLAT4__STATIC }, + { "BLOODYPOLE", DVPTR(BLOODYPOLE), BLOODYPOLE__STATIC }, + { "BOLT1", DVPTR(BOLT1), BOLT1__STATIC }, + { "BONUSSCREEN", DVPTR(BONUSSCREEN), BONUSSCREEN__STATIC }, + { "BOOT_ICON", DVPTR(BOOT_ICON), BOOT_ICON__STATIC }, + { "BOOTS", DVPTR(BOOTS), BOOTS__STATIC }, + { "BORNTOBEWILDSCREEN", DVPTR(BORNTOBEWILDSCREEN), BORNTOBEWILDSCREEN__STATIC }, + { "BOSS1", DVPTR(BOSS1), BOSS1__STATIC }, + { "BOSS1LOB", DVPTR(BOSS1LOB), BOSS1LOB__STATIC }, + { "BOSS1SHOOT", DVPTR(BOSS1SHOOT), BOSS1SHOOT__STATIC }, + { "BOSS1STAYPUT", DVPTR(BOSS1STAYPUT), BOSS1STAYPUT__STATIC }, + { "BOSS2", DVPTR(BOSS2), BOSS2__STATIC }, + { "BOSS3", DVPTR(BOSS3), BOSS3__STATIC }, + { "BOSS4", DVPTR(BOSS4), BOSS4__STATIC }, + { "BOSS4STAYPUT", DVPTR(BOSS4STAYPUT), BOSS4STAYPUT__STATIC }, + { "BOSSTOP", DVPTR(BOSSTOP), BOSSTOP__STATIC }, + { "BOTTLE1", DVPTR(BOTTLE1), BOTTLE1__STATIC }, + { "BOTTLE10", DVPTR(BOTTLE10), BOTTLE10__STATIC }, + { "BOTTLE11", DVPTR(BOTTLE11), BOTTLE11__STATIC }, + { "BOTTLE12", DVPTR(BOTTLE12), BOTTLE12__STATIC }, + { "BOTTLE13", DVPTR(BOTTLE13), BOTTLE13__STATIC }, + { "BOTTLE14", DVPTR(BOTTLE14), BOTTLE14__STATIC }, + { "BOTTLE15", DVPTR(BOTTLE15), BOTTLE15__STATIC }, + { "BOTTLE16", DVPTR(BOTTLE16), BOTTLE16__STATIC }, + { "BOTTLE17", DVPTR(BOTTLE17), BOTTLE17__STATIC }, + { "BOTTLE18", DVPTR(BOTTLE18), BOTTLE18__STATIC }, + { "BOTTLE19", DVPTR(BOTTLE19), BOTTLE19__STATIC }, + { "BOTTLE2", DVPTR(BOTTLE2), BOTTLE2__STATIC }, + { "BOTTLE3", DVPTR(BOTTLE3), BOTTLE3__STATIC }, + { "BOTTLE4", DVPTR(BOTTLE4), BOTTLE4__STATIC }, + { "BOTTLE5", DVPTR(BOTTLE5), BOTTLE5__STATIC }, + { "BOTTLE6", DVPTR(BOTTLE6), BOTTLE6__STATIC }, + { "BOTTLE7", DVPTR(BOTTLE7), BOTTLE7__STATIC }, + { "BOTTLE8", DVPTR(BOTTLE8), BOTTLE8__STATIC }, + { "BOTTOMSTATUSBAR", DVPTR(BOTTOMSTATUSBAR), BOTTOMSTATUSBAR__STATIC }, + { "BOUNCEMINE", DVPTR(BOUNCEMINE), BOUNCEMINE__STATIC }, + { "BOX", DVPTR(BOX), BOX__STATIC }, + { "BPANNEL1", DVPTR(BPANNEL1), BPANNEL1__STATIC }, + { "BPANNEL3", DVPTR(BPANNEL3), BPANNEL3__STATIC }, + { "BROKEFIREHYDRENT", DVPTR(BROKEFIREHYDRENT), BROKEFIREHYDRENT__STATIC }, + { "BROKEHYDROPLANT", DVPTR(BROKEHYDROPLANT), BROKEHYDROPLANT__STATIC }, + { "BROKENCHAIR", DVPTR(BROKENCHAIR), BROKENCHAIR__STATIC }, + { "BULLETHOLE", DVPTR(BULLETHOLE), BULLETHOLE__STATIC }, + { "BURNING", DVPTR(BURNING), BURNING__STATIC }, + { "BURNING2", DVPTR(BURNING2), BURNING2__STATIC }, + { "CACTUS", DVPTR(CACTUS), CACTUS__STATIC }, + { "CACTUSBROKE", DVPTR(CACTUSBROKE), CACTUSBROKE__STATIC }, + { "CAMCORNER", DVPTR(CAMCORNER), CAMCORNER__STATIC }, + { "CAMERA1", DVPTR(CAMERA1), CAMERA1__STATIC }, + { "CAMERALIGHT", DVPTR(CAMERALIGHT), CAMERALIGHT__STATIC }, + { "CAMERAPOLE", DVPTR(CAMERAPOLE), CAMERAPOLE__STATIC }, + { "CAMLIGHT", DVPTR(CAMLIGHT), CAMLIGHT__STATIC }, + { "CANWITHSOMETHING", DVPTR(CANWITHSOMETHING), CANWITHSOMETHING__STATIC }, + { "CANWITHSOMETHING2", DVPTR(CANWITHSOMETHING2), CANWITHSOMETHING2__STATIC }, + { "CANWITHSOMETHING3", DVPTR(CANWITHSOMETHING3), CANWITHSOMETHING3__STATIC }, + { "CANWITHSOMETHING4", DVPTR(CANWITHSOMETHING4), CANWITHSOMETHING4__STATIC }, + { "CEILINGSTEAM", DVPTR(CEILINGSTEAM), CEILINGSTEAM__STATIC }, + { "CHAINGUN", DVPTR(CHAINGUN), CHAINGUN__STATIC }, + { "CHAINGUNSPRITE", DVPTR(CHAINGUNSPRITE), CHAINGUNSPRITE__STATIC }, + { "CHAIR1", DVPTR(CHAIR1), CHAIR1__STATIC }, + { "CHAIR2", DVPTR(CHAIR2), CHAIR2__STATIC }, + { "CHAIR3", DVPTR(CHAIR3), CHAIR3__STATIC }, + { "CIRCLEPANNEL", DVPTR(CIRCLEPANNEL), CIRCLEPANNEL__STATIC }, + { "CIRCLEPANNELBROKE", DVPTR(CIRCLEPANNELBROKE), CIRCLEPANNELBROKE__STATIC }, + { "CLOUDYOCEAN", DVPTR(CLOUDYOCEAN), CLOUDYOCEAN__STATIC }, + { "CLOUDYSKIES", DVPTR(CLOUDYSKIES), CLOUDYSKIES__STATIC }, + { "COLA", DVPTR(COLA), COLA__STATIC }, + { "COLAMACHINE", DVPTR(COLAMACHINE), COLAMACHINE__STATIC }, + { "COMMANDER", DVPTR(COMMANDER), COMMANDER__STATIC }, + { "COMMANDERSTAYPUT", DVPTR(COMMANDERSTAYPUT), COMMANDERSTAYPUT__STATIC }, + { "CONE", DVPTR(CONE), CONE__STATIC }, + { "COOLEXPLOSION1", DVPTR(COOLEXPLOSION1), COOLEXPLOSION1__STATIC }, + { "CRACK1", DVPTR(CRACK1), CRACK1__STATIC }, + { "CRACK2", DVPTR(CRACK2), CRACK2__STATIC }, + { "CRACK3", DVPTR(CRACK3), CRACK3__STATIC }, + { "CRACK4", DVPTR(CRACK4), CRACK4__STATIC }, + { "CRACKKNUCKLES", DVPTR(CRACKKNUCKLES), CRACKKNUCKLES__STATIC }, + { "CRANE", DVPTR(CRANE), CRANE__STATIC }, + { "CRANEPOLE", DVPTR(CRANEPOLE), CRANEPOLE__STATIC }, + { "CREDITSTEXT1", DVPTR(CREDITSTEXT1), CREDITSTEXT1__STATIC }, + { "CREDITSTEXT2", DVPTR(CREDITSTEXT2), CREDITSTEXT2__STATIC }, + { "CREDITSTEXT3", DVPTR(CREDITSTEXT3), CREDITSTEXT3__STATIC }, + { "CROSSHAIR", DVPTR(CROSSHAIR), CROSSHAIR__STATIC }, + { "CRYSTALAMMO", DVPTR(CRYSTALAMMO), CRYSTALAMMO__STATIC }, + { "CYCLER", DVPTR(CYCLER), CYCLER__STATIC }, + { "DEVISTATOR", DVPTR(DEVISTATOR), DEVISTATOR__STATIC }, + { "DEVISTATORAMMO", DVPTR(DEVISTATORAMMO), DEVISTATORAMMO__STATIC }, + { "DEVISTATORSPRITE", DVPTR(DEVISTATORSPRITE), DEVISTATORSPRITE__STATIC }, + { "DIGITALNUM", DVPTR(DIGITALNUM), DIGITALNUM__STATIC }, + { "DIPSWITCH", DVPTR(DIPSWITCH), DIPSWITCH__STATIC }, + { "DIPSWITCH2", DVPTR(DIPSWITCH2), DIPSWITCH2__STATIC }, + { "DIPSWITCH3", DVPTR(DIPSWITCH3), DIPSWITCH3__STATIC }, + { "DOLPHIN1", DVPTR(DOLPHIN1), DOLPHIN1__STATIC }, + { "DOLPHIN2", DVPTR(DOLPHIN2), DOLPHIN2__STATIC }, + { "DOMELITE", DVPTR(DOMELITE), DOMELITE__STATIC }, + { "DOORSHOCK", DVPTR(DOORSHOCK), DOORSHOCK__STATIC }, + { "DOORTILE1", DVPTR(DOORTILE1), DOORTILE1__STATIC }, + { "DOORTILE10", DVPTR(DOORTILE10), DOORTILE10__STATIC }, + { "DOORTILE11", DVPTR(DOORTILE11), DOORTILE11__STATIC }, + { "DOORTILE12", DVPTR(DOORTILE12), DOORTILE12__STATIC }, + { "DOORTILE14", DVPTR(DOORTILE14), DOORTILE14__STATIC }, + { "DOORTILE15", DVPTR(DOORTILE15), DOORTILE15__STATIC }, + { "DOORTILE16", DVPTR(DOORTILE16), DOORTILE16__STATIC }, + { "DOORTILE17", DVPTR(DOORTILE17), DOORTILE17__STATIC }, + { "DOORTILE18", DVPTR(DOORTILE18), DOORTILE18__STATIC }, + { "DOORTILE19", DVPTR(DOORTILE19), DOORTILE19__STATIC }, + { "DOORTILE2", DVPTR(DOORTILE2), DOORTILE2__STATIC }, + { "DOORTILE20", DVPTR(DOORTILE20), DOORTILE20__STATIC }, + { "DOORTILE21", DVPTR(DOORTILE21), DOORTILE21__STATIC }, + { "DOORTILE22", DVPTR(DOORTILE22), DOORTILE22__STATIC }, + { "DOORTILE23", DVPTR(DOORTILE23), DOORTILE23__STATIC }, + { "DOORTILE3", DVPTR(DOORTILE3), DOORTILE3__STATIC }, + { "DOORTILE4", DVPTR(DOORTILE4), DOORTILE4__STATIC }, + { "DOORTILE5", DVPTR(DOORTILE5), DOORTILE5__STATIC }, + { "DOORTILE6", DVPTR(DOORTILE6), DOORTILE6__STATIC }, + { "DOORTILE7", DVPTR(DOORTILE7), DOORTILE7__STATIC }, + { "DOORTILE8", DVPTR(DOORTILE8), DOORTILE8__STATIC }, + { "DOORTILE9", DVPTR(DOORTILE9), DOORTILE9__STATIC }, + { "DREALMS", DVPTR(DREALMS), DREALMS__STATIC }, + { "DRONE", DVPTR(DRONE), DRONE__STATIC }, + { "DUCK", DVPTR(DUCK), DUCK__STATIC }, + { "DUKECAR", DVPTR(DUKECAR), DUKECAR__STATIC }, + { "DUKEGUN", DVPTR(DUKEGUN), DUKEGUN__STATIC }, + { "DUKELEG", DVPTR(DUKELEG), DUKELEG__STATIC }, + { "DUKELYINGDEAD", DVPTR(DUKELYINGDEAD), DUKELYINGDEAD__STATIC }, + { "DUKENUKEM", DVPTR(DUKENUKEM), DUKENUKEM__STATIC }, + { "DUKETAG", DVPTR(DUKETAG), DUKETAG__STATIC }, + { "DUKETORSO", DVPTR(DUKETORSO), DUKETORSO__STATIC }, + { "EGG", DVPTR(EGG), EGG__STATIC }, + { "ENDALPHANUM", DVPTR(ENDALPHANUM), ENDALPHANUM__STATIC }, + { "EXPLODINGBARREL", DVPTR(EXPLODINGBARREL), EXPLODINGBARREL__STATIC }, + { "EXPLODINGBARREL2", DVPTR(EXPLODINGBARREL2), EXPLODINGBARREL2__STATIC }, + { "EXPLOSION2", DVPTR(EXPLOSION2), EXPLOSION2__STATIC }, + { "EXPLOSION2BOT", DVPTR(EXPLOSION2BOT), EXPLOSION2BOT__STATIC }, + { "F1HELP", DVPTR(F1HELP), F1HELP__STATIC }, + { "FANSHADOW", DVPTR(FANSHADOW), FANSHADOW__STATIC }, + { "FANSHADOWBROKE", DVPTR(FANSHADOWBROKE), FANSHADOWBROKE__STATIC }, + { "FANSPRITE", DVPTR(FANSPRITE), FANSPRITE__STATIC }, + { "FANSPRITEBROKE", DVPTR(FANSPRITEBROKE), FANSPRITEBROKE__STATIC }, + { "FECES", DVPTR(FECES), FECES__STATIC }, + { "FEM1", DVPTR(FEM1), FEM1__STATIC }, + { "FEM10", DVPTR(FEM10), FEM10__STATIC }, + { "FEM2", DVPTR(FEM2), FEM2__STATIC }, + { "FEM3", DVPTR(FEM3), FEM3__STATIC }, + { "FEM4", DVPTR(FEM4), FEM4__STATIC }, + { "FEM5", DVPTR(FEM5), FEM5__STATIC }, + { "FEM6", DVPTR(FEM6), FEM6__STATIC }, + { "FEM6PAD", DVPTR(FEM6PAD), FEM6PAD__STATIC }, + { "FEM7", DVPTR(FEM7), FEM7__STATIC }, + { "FEM8", DVPTR(FEM8), FEM8__STATIC }, + { "FEM9", DVPTR(FEM9), FEM9__STATIC }, + { "FEMMAG1", DVPTR(FEMMAG1), FEMMAG1__STATIC }, + { "FEMMAG2", DVPTR(FEMMAG2), FEMMAG2__STATIC }, + { "FEMPIC1", DVPTR(FEMPIC1), FEMPIC1__STATIC }, + { "FEMPIC2", DVPTR(FEMPIC2), FEMPIC2__STATIC }, + { "FEMPIC3", DVPTR(FEMPIC3), FEMPIC3__STATIC }, + { "FEMPIC4", DVPTR(FEMPIC4), FEMPIC4__STATIC }, + { "FEMPIC5", DVPTR(FEMPIC5), FEMPIC5__STATIC }, + { "FEMPIC6", DVPTR(FEMPIC6), FEMPIC6__STATIC }, + { "FEMPIC7", DVPTR(FEMPIC7), FEMPIC7__STATIC }, + { "FETUS", DVPTR(FETUS), FETUS__STATIC }, + { "FETUSBROKE", DVPTR(FETUSBROKE), FETUSBROKE__STATIC }, + { "FETUSJIB", DVPTR(FETUSJIB), FETUSJIB__STATIC }, + { "FIRE", DVPTR(FIRE), FIRE__STATIC }, + { "FIRE2", DVPTR(FIRE2), FIRE2__STATIC }, + { "FIREBARREL", DVPTR(FIREBARREL), FIREBARREL__STATIC }, + { "FIREEXT", DVPTR(FIREEXT), FIREEXT__STATIC }, + { "FIRELASER", DVPTR(FIRELASER), FIRELASER__STATIC }, + { "FIREVASE", DVPTR(FIREVASE), FIREVASE__STATIC }, + { "FIRSTAID", DVPTR(FIRSTAID), FIRSTAID__STATIC }, + { "FIRSTAID_ICON", DVPTR(FIRSTAID_ICON), FIRSTAID_ICON__STATIC }, + { "FIRSTGUN", DVPTR(FIRSTGUN), FIRSTGUN__STATIC }, + { "FIRSTGUNRELOAD", DVPTR(FIRSTGUNRELOAD), FIRSTGUNRELOAD__STATIC }, + { "FIRSTGUNSPRITE", DVPTR(FIRSTGUNSPRITE), FIRSTGUNSPRITE__STATIC }, + { "FIST", DVPTR(FIST), FIST__STATIC }, + { "FLOORFLAME", DVPTR(FLOORFLAME), FLOORFLAME__STATIC }, + { "FLOORPLASMA", DVPTR(FLOORPLASMA), FLOORPLASMA__STATIC }, + { "FLOORSLIME", DVPTR(FLOORSLIME), FLOORSLIME__STATIC }, + { "FOF", DVPTR(FOF), FOF__STATIC }, + { "FOODOBJECT16", DVPTR(FOODOBJECT16), FOODOBJECT16__STATIC }, + { "FOOTPRINTS", DVPTR(FOOTPRINTS), FOOTPRINTS__STATIC }, + { "FOOTPRINTS2", DVPTR(FOOTPRINTS2), FOOTPRINTS2__STATIC }, + { "FOOTPRINTS3", DVPTR(FOOTPRINTS3), FOOTPRINTS3__STATIC }, + { "FOOTPRINTS4", DVPTR(FOOTPRINTS4), FOOTPRINTS4__STATIC }, + { "FORCERIPPLE", DVPTR(FORCERIPPLE), FORCERIPPLE__STATIC }, + { "FORCESPHERE", DVPTR(FORCESPHERE), FORCESPHERE__STATIC }, + { "FRAGBAR", DVPTR(FRAGBAR), FRAGBAR__STATIC }, + { "FRAMEEFFECT1", DVPTR(FRAMEEFFECT1), FRAMEEFFECT1__STATIC }, + { "FRAMEEFFECT1_13", DVPTR(FRAMEEFFECT1_13), FRAMEEFFECT1_13__STATIC }, + { "FRANKENSTINESWITCH", DVPTR(FRANKENSTINESWITCH), FRANKENSTINESWITCH__STATIC }, + { "FREEZE", DVPTR(FREEZE), FREEZE__STATIC }, + { "FREEZEAMMO", DVPTR(FREEZEAMMO), FREEZEAMMO__STATIC }, + { "FREEZEBLAST", DVPTR(FREEZEBLAST), FREEZEBLAST__STATIC }, + { "FREEZESPRITE", DVPTR(FREEZESPRITE), FREEZESPRITE__STATIC }, + { "FUELPOD", DVPTR(FUELPOD), FUELPOD__STATIC }, + { "GENERICPOLE", DVPTR(GENERICPOLE), GENERICPOLE__STATIC }, + { "GENERICPOLE2", DVPTR(GENERICPOLE2), GENERICPOLE2__STATIC }, + { "GLASS", DVPTR(GLASS), GLASS__STATIC }, + { "GLASS2", DVPTR(GLASS2), GLASS2__STATIC }, + { "GLASSPIECES", DVPTR(GLASSPIECES), GLASSPIECES__STATIC }, + { "GPSPEED", DVPTR(GPSPEED), GPSPEED__STATIC }, + { "GRATE1", DVPTR(GRATE1), GRATE1__STATIC }, + { "GREENSLIME", DVPTR(GREENSLIME), GREENSLIME__STATIC }, + { "GROWAMMO", DVPTR(GROWAMMO), GROWAMMO__STATIC }, + { "GROWSPARK", DVPTR(GROWSPARK), GROWSPARK__STATIC }, + { "GROWSPRITEICON", DVPTR(GROWSPRITEICON), GROWSPRITEICON__STATIC }, + { "HANDHOLDINGACCESS", DVPTR(HANDHOLDINGACCESS), HANDHOLDINGACCESS__STATIC }, + { "HANDHOLDINGLASER", DVPTR(HANDHOLDINGLASER), HANDHOLDINGLASER__STATIC }, + { "HANDPRINTSWITCH", DVPTR(HANDPRINTSWITCH), HANDPRINTSWITCH__STATIC }, + { "HANDREMOTE", DVPTR(HANDREMOTE), HANDREMOTE__STATIC }, + { "HANDSWITCH", DVPTR(HANDSWITCH), HANDSWITCH__STATIC }, + { "HANDTHROW", DVPTR(HANDTHROW), HANDTHROW__STATIC }, + { "HANGLIGHT", DVPTR(HANGLIGHT), HANGLIGHT__STATIC }, + { "HBOMBAMMO", DVPTR(HBOMBAMMO), HBOMBAMMO__STATIC }, + { "HEADJIB1", DVPTR(HEADJIB1), HEADJIB1__STATIC }, + { "HEALTHBOX", DVPTR(HEALTHBOX), HEALTHBOX__STATIC }, + { "HEAT_ICON", DVPTR(HEAT_ICON), HEAT_ICON__STATIC }, + { "HEATSENSOR", DVPTR(HEATSENSOR), HEATSENSOR__STATIC }, + { "HEAVYHBOMB", DVPTR(HEAVYHBOMB), HEAVYHBOMB__STATIC }, + { "HELECOPT", DVPTR(HELECOPT), HELECOPT__STATIC }, + { "HOLODUKE", DVPTR(HOLODUKE), HOLODUKE__STATIC }, + { "HOLODUKE_ICON", DVPTR(HOLODUKE_ICON), HOLODUKE_ICON__STATIC }, + { "HORSEONSIDE", DVPTR(HORSEONSIDE), HORSEONSIDE__STATIC }, + { "HOTMEAT", DVPTR(HOTMEAT), HOTMEAT__STATIC }, + { "HURTRAIL", DVPTR(HURTRAIL), HURTRAIL__STATIC }, + { "HYDRENT", DVPTR(HYDRENT), HYDRENT__STATIC }, + { "HYDROPLANT", DVPTR(HYDROPLANT), HYDROPLANT__STATIC }, + { "INDY", DVPTR(INDY), INDY__STATIC }, + { "INGAMEDUKETHREEDEE", DVPTR(INGAMEDUKETHREEDEE), INGAMEDUKETHREEDEE__STATIC }, + { "INNERJAW", DVPTR(INNERJAW), INNERJAW__STATIC }, + { "INVENTORYBOX", DVPTR(INVENTORYBOX), INVENTORYBOX__STATIC }, + { "IVUNIT", DVPTR(IVUNIT), IVUNIT__STATIC }, + { "JETPACK", DVPTR(JETPACK), JETPACK__STATIC }, + { "JETPACK_ICON", DVPTR(JETPACK_ICON), JETPACK_ICON__STATIC }, + { "JIBS1", DVPTR(JIBS1), JIBS1__STATIC }, + { "JIBS2", DVPTR(JIBS2), JIBS2__STATIC }, + { "JIBS3", DVPTR(JIBS3), JIBS3__STATIC }, + { "JIBS4", DVPTR(JIBS4), JIBS4__STATIC }, + { "JIBS5", DVPTR(JIBS5), JIBS5__STATIC }, + { "JIBS6", DVPTR(JIBS6), JIBS6__STATIC }, + { "JURYGUY", DVPTR(JURYGUY), JURYGUY__STATIC }, + { "KILLSICON", DVPTR(KILLSICON), KILLSICON__STATIC }, + { "KNEE", DVPTR(KNEE), KNEE__STATIC }, + { "LA", DVPTR(LA), LA__STATIC }, + { "LASERLINE", DVPTR(LASERLINE), LASERLINE__STATIC }, + { "LASERSITE", DVPTR(LASERSITE), LASERSITE__STATIC }, + { "LEGJIB1", DVPTR(LEGJIB1), LEGJIB1__STATIC }, + { "LETTER", DVPTR(LETTER), LETTER__STATIC }, + { "LIGHTSWITCH", DVPTR(LIGHTSWITCH), LIGHTSWITCH__STATIC }, + { "LIGHTSWITCH2", DVPTR(LIGHTSWITCH2), LIGHTSWITCH2__STATIC }, + { "LIZMAN", DVPTR(LIZMAN), LIZMAN__STATIC }, + { "LIZMANARM1", DVPTR(LIZMANARM1), LIZMANARM1__STATIC }, + { "LIZMANFEEDING", DVPTR(LIZMANFEEDING), LIZMANFEEDING__STATIC }, + { "LIZMANHEAD1", DVPTR(LIZMANHEAD1), LIZMANHEAD1__STATIC }, + { "LIZMANJUMP", DVPTR(LIZMANJUMP), LIZMANJUMP__STATIC }, + { "LIZMANLEG1", DVPTR(LIZMANLEG1), LIZMANLEG1__STATIC }, + { "LIZMANSPITTING", DVPTR(LIZMANSPITTING), LIZMANSPITTING__STATIC }, + { "LIZMANSTAYPUT", DVPTR(LIZMANSTAYPUT), LIZMANSTAYPUT__STATIC }, + { "LIZTROOP", DVPTR(LIZTROOP), LIZTROOP__STATIC }, + { "LIZTROOPDUCKING", DVPTR(LIZTROOPDUCKING), LIZTROOPDUCKING__STATIC }, + { "LIZTROOPJETPACK", DVPTR(LIZTROOPJETPACK), LIZTROOPJETPACK__STATIC }, + { "LIZTROOPJUSTSIT", DVPTR(LIZTROOPJUSTSIT), LIZTROOPJUSTSIT__STATIC }, + { "LIZTROOPONTOILET", DVPTR(LIZTROOPONTOILET), LIZTROOPONTOILET__STATIC }, + { "LIZTROOPRUNNING", DVPTR(LIZTROOPRUNNING), LIZTROOPRUNNING__STATIC }, + { "LIZTROOPSHOOT", DVPTR(LIZTROOPSHOOT), LIZTROOPSHOOT__STATIC }, + { "LIZTROOPSTAYPUT", DVPTR(LIZTROOPSTAYPUT), LIZTROOPSTAYPUT__STATIC }, + { "LOADSCREEN", DVPTR(LOADSCREEN), LOADSCREEN__STATIC }, + { "LOCATORS", DVPTR(LOCATORS), LOCATORS__STATIC }, + { "LOCKSWITCH1", DVPTR(LOCKSWITCH1), LOCKSWITCH1__STATIC }, + { "LOOGIE", DVPTR(LOOGIE), LOOGIE__STATIC }, + { "LUKE", DVPTR(LUKE), LUKE__STATIC }, + { "MAIL", DVPTR(MAIL), MAIL__STATIC }, + { "MAN", DVPTR(MAN), MAN__STATIC }, + { "MAN2", DVPTR(MAN2), MAN2__STATIC }, + { "MASKWALL1", DVPTR(MASKWALL1), MASKWALL1__STATIC }, + { "MASKWALL10", DVPTR(MASKWALL10), MASKWALL10__STATIC }, + { "MASKWALL11", DVPTR(MASKWALL11), MASKWALL11__STATIC }, + { "MASKWALL12", DVPTR(MASKWALL12), MASKWALL12__STATIC }, + { "MASKWALL13", DVPTR(MASKWALL13), MASKWALL13__STATIC }, + { "MASKWALL14", DVPTR(MASKWALL14), MASKWALL14__STATIC }, + { "MASKWALL15", DVPTR(MASKWALL15), MASKWALL15__STATIC }, + { "MASKWALL2", DVPTR(MASKWALL2), MASKWALL2__STATIC }, + { "MASKWALL3", DVPTR(MASKWALL3), MASKWALL3__STATIC }, + { "MASKWALL4", DVPTR(MASKWALL4), MASKWALL4__STATIC }, + { "MASKWALL5", DVPTR(MASKWALL5), MASKWALL5__STATIC }, + { "MASKWALL6", DVPTR(MASKWALL6), MASKWALL6__STATIC }, + { "MASKWALL7", DVPTR(MASKWALL7), MASKWALL7__STATIC }, + { "MASKWALL8", DVPTR(MASKWALL8), MASKWALL8__STATIC }, + { "MASKWALL9", DVPTR(MASKWALL9), MASKWALL9__STATIC }, + { "MASTERSWITCH", DVPTR(MASTERSWITCH), MASTERSWITCH__STATIC }, + { "MENUBAR", DVPTR(MENUBAR), MENUBAR__STATIC }, + { "MENUSCREEN", DVPTR(MENUSCREEN), MENUSCREEN__STATIC }, + { "MIKE", DVPTR(MIKE), MIKE__STATIC }, + { "MINIFONT", DVPTR(MINIFONT), MINIFONT__STATIC }, + { "MIRROR", DVPTR(MIRROR), MIRROR__STATIC }, + { "MIRRORBROKE", DVPTR(MIRRORBROKE), MIRRORBROKE__STATIC }, + { "MONEY", DVPTR(MONEY), MONEY__STATIC }, + { "MONK", DVPTR(MONK), MONK__STATIC }, + { "MOONSKY1", DVPTR(MOONSKY1), MOONSKY1__STATIC }, + { "MORTER", DVPTR(MORTER), MORTER__STATIC }, + { "MOVIECAMERA", DVPTR(MOVIECAMERA), MOVIECAMERA__STATIC }, + { "MULTISWITCH", DVPTR(MULTISWITCH), MULTISWITCH__STATIC }, + { "MUSICANDSFX", DVPTR(MUSICANDSFX), MUSICANDSFX__STATIC }, + { "NAKED1", DVPTR(NAKED1), NAKED1__STATIC }, + { "NATURALLIGHTNING", DVPTR(NATURALLIGHTNING), NATURALLIGHTNING__STATIC }, + { "NEON1", DVPTR(NEON1), NEON1__STATIC }, + { "NEON2", DVPTR(NEON2), NEON2__STATIC }, + { "NEON3", DVPTR(NEON3), NEON3__STATIC }, + { "NEON4", DVPTR(NEON4), NEON4__STATIC }, + { "NEON5", DVPTR(NEON5), NEON5__STATIC }, + { "NEON6", DVPTR(NEON6), NEON6__STATIC }, + { "NEWBEAST", DVPTR(NEWBEAST), NEWBEAST__STATIC }, + { "NEWBEASTSTAYPUT", DVPTR(NEWBEASTSTAYPUT), NEWBEASTSTAYPUT__STATIC }, + { "NUKEBARREL", DVPTR(NUKEBARREL), NUKEBARREL__STATIC }, + { "NUKEBARRELDENTED", DVPTR(NUKEBARRELDENTED), NUKEBARRELDENTED__STATIC }, + { "NUKEBARRELLEAKED", DVPTR(NUKEBARRELLEAKED), NUKEBARRELLEAKED__STATIC }, + { "NUKEBUTTON", DVPTR(NUKEBUTTON), NUKEBUTTON__STATIC }, + { "OCEANSPRITE1", DVPTR(OCEANSPRITE1), OCEANSPRITE1__STATIC }, + { "OCEANSPRITE2", DVPTR(OCEANSPRITE2), OCEANSPRITE2__STATIC }, + { "OCEANSPRITE3", DVPTR(OCEANSPRITE3), OCEANSPRITE3__STATIC }, + { "OCEANSPRITE4", DVPTR(OCEANSPRITE4), OCEANSPRITE4__STATIC }, + { "OCEANSPRITE5", DVPTR(OCEANSPRITE5), OCEANSPRITE5__STATIC }, + { "OCTABRAIN", DVPTR(OCTABRAIN), OCTABRAIN__STATIC }, + { "OCTABRAINSTAYPUT", DVPTR(OCTABRAINSTAYPUT), OCTABRAINSTAYPUT__STATIC }, + { "OJ", DVPTR(OJ), OJ__STATIC }, + { "OOZ", DVPTR(OOZ), OOZ__STATIC }, + { "OOZ2", DVPTR(OOZ2), OOZ2__STATIC }, + { "OOZFILTER", DVPTR(OOZFILTER), OOZFILTER__STATIC }, + { "ORDERING", DVPTR(ORDERING), ORDERING__STATIC }, + { "ORGANTIC", DVPTR(ORGANTIC), ORGANTIC__STATIC }, + { "PANNEL1", DVPTR(PANNEL1), PANNEL1__STATIC }, + { "PANNEL2", DVPTR(PANNEL2), PANNEL2__STATIC }, + { "PANNEL3", DVPTR(PANNEL3), PANNEL3__STATIC }, + { "PAPER", DVPTR(PAPER), PAPER__STATIC }, + { "PIGCOP", DVPTR(PIGCOP), PIGCOP__STATIC }, + { "PIGCOPDIVE", DVPTR(PIGCOPDIVE), PIGCOPDIVE__STATIC }, + { "PIGCOPSTAYPUT", DVPTR(PIGCOPSTAYPUT), PIGCOPSTAYPUT__STATIC }, + { "PIPE1", DVPTR(PIPE1), PIPE1__STATIC }, + { "PIPE1B", DVPTR(PIPE1B), PIPE1B__STATIC }, + { "PIPE2", DVPTR(PIPE2), PIPE2__STATIC }, + { "PIPE2B", DVPTR(PIPE2B), PIPE2B__STATIC }, + { "PIPE3", DVPTR(PIPE3), PIPE3__STATIC }, + { "PIPE3B", DVPTR(PIPE3B), PIPE3B__STATIC }, + { "PIPE4", DVPTR(PIPE4), PIPE4__STATIC }, + { "PIPE4B", DVPTR(PIPE4B), PIPE4B__STATIC }, + { "PIPE5", DVPTR(PIPE5), PIPE5__STATIC }, + { "PIPE5B", DVPTR(PIPE5B), PIPE5B__STATIC }, + { "PIPE6", DVPTR(PIPE6), PIPE6__STATIC }, + { "PIPE6B", DVPTR(PIPE6B), PIPE6B__STATIC }, + { "PLAYERONWATER", DVPTR(PLAYERONWATER), PLAYERONWATER__STATIC }, + { "PLUG", DVPTR(PLUG), PLUG__STATIC }, + { "PLUTOPAKSPRITE", DVPTR(PLUTOPAKSPRITE), PLUTOPAKSPRITE__STATIC }, + { "POCKET", DVPTR(POCKET), POCKET__STATIC }, + { "PODFEM1", DVPTR(PODFEM1), PODFEM1__STATIC }, + { "POT1", DVPTR(POT1), POT1__STATIC }, + { "POT2", DVPTR(POT2), POT2__STATIC }, + { "POT3", DVPTR(POT3), POT3__STATIC }, + { "POWERSWITCH1", DVPTR(POWERSWITCH1), POWERSWITCH1__STATIC }, + { "POWERSWITCH2", DVPTR(POWERSWITCH2), POWERSWITCH2__STATIC }, + { "PUKE", DVPTR(PUKE), PUKE__STATIC }, + { "PULLSWITCH", DVPTR(PULLSWITCH), PULLSWITCH__STATIC }, + { "PURPLELAVA", DVPTR(PURPLELAVA), PURPLELAVA__STATIC }, + { "QUEBALL", DVPTR(QUEBALL), QUEBALL__STATIC }, + { "RADIUSEXPLOSION", DVPTR(RADIUSEXPLOSION), RADIUSEXPLOSION__STATIC }, + { "RAT", DVPTR(RAT), RAT__STATIC }, + { "REACTOR", DVPTR(REACTOR), REACTOR__STATIC }, + { "REACTOR2", DVPTR(REACTOR2), REACTOR2__STATIC }, + { "REACTOR2BURNT", DVPTR(REACTOR2BURNT), REACTOR2BURNT__STATIC }, + { "REACTOR2SPARK", DVPTR(REACTOR2SPARK), REACTOR2SPARK__STATIC }, + { "REACTORBURNT", DVPTR(REACTORBURNT), REACTORBURNT__STATIC }, + { "REACTORSPARK", DVPTR(REACTORSPARK), REACTORSPARK__STATIC }, + { "RECON", DVPTR(RECON), RECON__STATIC }, + { "RESPAWN", DVPTR(RESPAWN), RESPAWN__STATIC }, + { "RESPAWNMARKERGREEN", DVPTR(RESPAWNMARKERGREEN), RESPAWNMARKERGREEN__STATIC }, + { "RESPAWNMARKERRED", DVPTR(RESPAWNMARKERRED), RESPAWNMARKERRED__STATIC }, + { "RESPAWNMARKERYELLOW", DVPTR(RESPAWNMARKERYELLOW), RESPAWNMARKERYELLOW__STATIC }, + { "ROTATEGUN", DVPTR(ROTATEGUN), ROTATEGUN__STATIC }, + { "RPG", DVPTR(RPG), RPG__STATIC }, + { "RPGAMMO", DVPTR(RPGAMMO), RPGAMMO__STATIC }, + { "RPGGUN", DVPTR(RPGGUN), RPGGUN__STATIC }, + { "RPGSPRITE", DVPTR(RPGSPRITE), RPGSPRITE__STATIC }, + { "RUBBERCAN", DVPTR(RUBBERCAN), RUBBERCAN__STATIC }, + { "SATELITE", DVPTR(SATELITE), SATELITE__STATIC }, + { "SCALE", DVPTR(SCALE), SCALE__STATIC }, + { "SCRAP1", DVPTR(SCRAP1), SCRAP1__STATIC }, + { "SCRAP2", DVPTR(SCRAP2), SCRAP2__STATIC }, + { "SCRAP3", DVPTR(SCRAP3), SCRAP3__STATIC }, + { "SCRAP4", DVPTR(SCRAP4), SCRAP4__STATIC }, + { "SCRAP5", DVPTR(SCRAP5), SCRAP5__STATIC }, + { "SCRAP6", DVPTR(SCRAP6), SCRAP6__STATIC }, + { "SCREENBREAK1", DVPTR(SCREENBREAK1), SCREENBREAK1__STATIC }, + { "SCREENBREAK10", DVPTR(SCREENBREAK10), SCREENBREAK10__STATIC }, + { "SCREENBREAK11", DVPTR(SCREENBREAK11), SCREENBREAK11__STATIC }, + { "SCREENBREAK12", DVPTR(SCREENBREAK12), SCREENBREAK12__STATIC }, + { "SCREENBREAK13", DVPTR(SCREENBREAK13), SCREENBREAK13__STATIC }, + { "SCREENBREAK14", DVPTR(SCREENBREAK14), SCREENBREAK14__STATIC }, + { "SCREENBREAK15", DVPTR(SCREENBREAK15), SCREENBREAK15__STATIC }, + { "SCREENBREAK16", DVPTR(SCREENBREAK16), SCREENBREAK16__STATIC }, + { "SCREENBREAK17", DVPTR(SCREENBREAK17), SCREENBREAK17__STATIC }, + { "SCREENBREAK18", DVPTR(SCREENBREAK18), SCREENBREAK18__STATIC }, + { "SCREENBREAK19", DVPTR(SCREENBREAK19), SCREENBREAK19__STATIC }, + { "SCREENBREAK2", DVPTR(SCREENBREAK2), SCREENBREAK2__STATIC }, + { "SCREENBREAK3", DVPTR(SCREENBREAK3), SCREENBREAK3__STATIC }, + { "SCREENBREAK4", DVPTR(SCREENBREAK4), SCREENBREAK4__STATIC }, + { "SCREENBREAK5", DVPTR(SCREENBREAK5), SCREENBREAK5__STATIC }, + { "SCREENBREAK6", DVPTR(SCREENBREAK6), SCREENBREAK6__STATIC }, + { "SCREENBREAK7", DVPTR(SCREENBREAK7), SCREENBREAK7__STATIC }, + { "SCREENBREAK8", DVPTR(SCREENBREAK8), SCREENBREAK8__STATIC }, + { "SCREENBREAK9", DVPTR(SCREENBREAK9), SCREENBREAK9__STATIC }, + { "SCUBAMASK", DVPTR(SCUBAMASK), SCUBAMASK__STATIC }, + { "SECTOREFFECTOR", DVPTR(SECTOREFFECTOR), SECTOREFFECTOR__STATIC }, + { "SEENINE", DVPTR(SEENINE), SEENINE__STATIC }, + { "SEENINEDEAD", DVPTR(SEENINEDEAD), SEENINEDEAD__STATIC }, + { "SELECTDIR", DVPTR(SELECTDIR), SELECTDIR__STATIC }, + { "SHARK", DVPTR(SHARK), SHARK__STATIC }, + { "SHELL", DVPTR(SHELL), SHELL__STATIC }, + { "SHIELD", DVPTR(SHIELD), SHIELD__STATIC }, + { "SHOTGUN", DVPTR(SHOTGUN), SHOTGUN__STATIC }, + { "SHOTGUNAMMO", DVPTR(SHOTGUNAMMO), SHOTGUNAMMO__STATIC }, + { "SHOTGUNSHELL", DVPTR(SHOTGUNSHELL), SHOTGUNSHELL__STATIC }, + { "SHOTGUNSPRITE", DVPTR(SHOTGUNSPRITE), SHOTGUNSPRITE__STATIC }, + { "SHOTSPARK1", DVPTR(SHOTSPARK1), SHOTSPARK1__STATIC }, + { "SHRINKER", DVPTR(SHRINKER), SHRINKER__STATIC }, + { "SHRINKEREXPLOSION", DVPTR(SHRINKEREXPLOSION), SHRINKEREXPLOSION__STATIC }, + { "SHRINKERSPRITE", DVPTR(SHRINKERSPRITE), SHRINKERSPRITE__STATIC }, + { "SHRINKSPARK", DVPTR(SHRINKSPARK), SHRINKSPARK__STATIC }, + { "SIDEBOLT1", DVPTR(SIDEBOLT1), SIDEBOLT1__STATIC }, + { "SIGN1", DVPTR(SIGN1), SIGN1__STATIC }, + { "SIGN2", DVPTR(SIGN2), SIGN2__STATIC }, + { "SIXPAK", DVPTR(SIXPAK), SIXPAK__STATIC }, + { "SLIDEBAR", DVPTR(SLIDEBAR), SLIDEBAR__STATIC }, + { "SLOTDOOR", DVPTR(SLOTDOOR), SLOTDOOR__STATIC }, + { "SMALLFNTCURSOR", DVPTR(SMALLFNTCURSOR), SMALLFNTCURSOR__STATIC }, + { "SMALLSMOKE", DVPTR(SMALLSMOKE), SMALLSMOKE__STATIC }, + { "SOLARPANNEL", DVPTR(SOLARPANNEL), SOLARPANNEL__STATIC }, + { "SPACEDOORSWITCH", DVPTR(SPACEDOORSWITCH), SPACEDOORSWITCH__STATIC }, + { "SPACELIGHTSWITCH", DVPTR(SPACELIGHTSWITCH), SPACELIGHTSWITCH__STATIC }, + { "SPACEMARINE", DVPTR(SPACEMARINE), SPACEMARINE__STATIC }, + { "SPEAKER", DVPTR(SPEAKER), SPEAKER__STATIC }, + { "SPINNINGNUKEICON", DVPTR(SPINNINGNUKEICON), SPINNINGNUKEICON__STATIC }, + { "SPIT", DVPTR(SPIT), SPIT__STATIC }, + { "SPOTLITE", DVPTR(SPOTLITE), SPOTLITE__STATIC }, + { "STAINGLASS1", DVPTR(STAINGLASS1), STAINGLASS1__STATIC }, + { "STALL", DVPTR(STALL), STALL__STATIC }, + { "STALLBROKE", DVPTR(STALLBROKE), STALLBROKE__STATIC }, + { "STARTALPHANUM", DVPTR(STARTALPHANUM), STARTALPHANUM__STATIC }, + { "STATIC", DVPTR(STATIC), STATIC__STATIC }, + { "STATUE", DVPTR(STATUE), STATUE__STATIC }, + { "STATUEFLASH", DVPTR(STATUEFLASH), STATUEFLASH__STATIC }, + { "STEAM", DVPTR(STEAM), STEAM__STATIC }, + { "STEROIDS", DVPTR(STEROIDS), STEROIDS__STATIC }, + { "STEROIDS_ICON", DVPTR(STEROIDS_ICON), STEROIDS_ICON__STATIC }, + { "STRIPEBALL", DVPTR(STRIPEBALL), STRIPEBALL__STATIC }, + { "SUSHIPLATE1", DVPTR(SUSHIPLATE1), SUSHIPLATE1__STATIC }, + { "SUSHIPLATE2", DVPTR(SUSHIPLATE2), SUSHIPLATE2__STATIC }, + { "SUSHIPLATE3", DVPTR(SUSHIPLATE3), SUSHIPLATE3__STATIC }, + { "SUSHIPLATE4", DVPTR(SUSHIPLATE4), SUSHIPLATE4__STATIC }, + { "SUSHIPLATE5", DVPTR(SUSHIPLATE5), SUSHIPLATE5__STATIC }, + { "TAMPON", DVPTR(TAMPON), TAMPON__STATIC }, + { "TANK", DVPTR(TANK), TANK__STATIC }, + { "TARGET", DVPTR(TARGET), TARGET__STATIC }, + { "TECHLIGHT2", DVPTR(TECHLIGHT2), TECHLIGHT2__STATIC }, + { "TECHLIGHT4", DVPTR(TECHLIGHT4), TECHLIGHT4__STATIC }, + { "TECHLIGHTBUST2", DVPTR(TECHLIGHTBUST2), TECHLIGHTBUST2__STATIC }, + { "TECHLIGHTBUST4", DVPTR(TECHLIGHTBUST4), TECHLIGHTBUST4__STATIC }, + { "TECHSWITCH", DVPTR(TECHSWITCH), TECHSWITCH__STATIC }, + { "TENSCREEN", DVPTR(TENSCREEN), TENSCREEN__STATIC }, + { "TEXTBOX", DVPTR(TEXTBOX), TEXTBOX__STATIC }, + { "TEXTSTORY", DVPTR(TEXTSTORY), TEXTSTORY__STATIC }, + { "THREEBYFIVE", DVPTR(THREEBYFIVE), THREEBYFIVE__STATIC }, + { "THREEDEE", DVPTR(THREEDEE), THREEDEE__STATIC }, + { "TIP", DVPTR(TIP), TIP__STATIC }, + { "TIRE", DVPTR(TIRE), TIRE__STATIC }, + { "TOILET", DVPTR(TOILET), TOILET__STATIC }, + { "TOILETBROKE", DVPTR(TOILETBROKE), TOILETBROKE__STATIC }, + { "TOILETWATER", DVPTR(TOILETWATER), TOILETWATER__STATIC }, + { "TONGUE", DVPTR(TONGUE), TONGUE__STATIC }, + { "TOUCHPLATE", DVPTR(TOUCHPLATE), TOUCHPLATE__STATIC }, + { "TOUGHGAL", DVPTR(TOUGHGAL), TOUGHGAL__STATIC }, + { "TRANSPORTERBEAM", DVPTR(TRANSPORTERBEAM), TRANSPORTERBEAM__STATIC }, + { "TRANSPORTERSTAR", DVPTR(TRANSPORTERSTAR), TRANSPORTERSTAR__STATIC }, + { "TRASH", DVPTR(TRASH), TRASH__STATIC }, + { "TREE1", DVPTR(TREE1), TREE1__STATIC }, + { "TREE2", DVPTR(TREE2), TREE2__STATIC }, + { "TRIPBOMB", DVPTR(TRIPBOMB), TRIPBOMB__STATIC }, + { "TRIPBOMBSPRITE", DVPTR(TRIPBOMBSPRITE), TRIPBOMBSPRITE__STATIC }, + { "TRIPODCAMERA", DVPTR(TRIPODCAMERA), TRIPODCAMERA__STATIC }, + { "VACUUM", DVPTR(VACUUM), VACUUM__STATIC }, + { "VASE", DVPTR(VASE), VASE__STATIC }, + { "VENDMACHINE", DVPTR(VENDMACHINE), VENDMACHINE__STATIC }, + { "VICTORY1", DVPTR(VICTORY1), VICTORY1__STATIC }, + { "VIEWBORDER", DVPTR(VIEWBORDER), VIEWBORDER__STATIC }, + { "VIEWSCREEN", DVPTR(VIEWSCREEN), VIEWSCREEN__STATIC }, + { "VIEWSCREEN2", DVPTR(VIEWSCREEN2), VIEWSCREEN2__STATIC }, + { "W_FORCEFIELD", DVPTR(W_FORCEFIELD), W_FORCEFIELD__STATIC }, + { "W_HITTECHWALL1", DVPTR(W_HITTECHWALL1), W_HITTECHWALL1__STATIC }, + { "W_HITTECHWALL10", DVPTR(W_HITTECHWALL10), W_HITTECHWALL10__STATIC }, + { "W_HITTECHWALL15", DVPTR(W_HITTECHWALL15), W_HITTECHWALL15__STATIC }, + { "W_HITTECHWALL16", DVPTR(W_HITTECHWALL16), W_HITTECHWALL16__STATIC }, + { "W_HITTECHWALL2", DVPTR(W_HITTECHWALL2), W_HITTECHWALL2__STATIC }, + { "W_HITTECHWALL3", DVPTR(W_HITTECHWALL3), W_HITTECHWALL3__STATIC }, + { "W_HITTECHWALL4", DVPTR(W_HITTECHWALL4), W_HITTECHWALL4__STATIC }, + { "W_MILKSHELF", DVPTR(W_MILKSHELF), W_MILKSHELF__STATIC }, + { "W_MILKSHELFBROKE", DVPTR(W_MILKSHELFBROKE), W_MILKSHELFBROKE__STATIC }, + { "W_NUMBERS", DVPTR(W_NUMBERS), W_NUMBERS__STATIC }, + { "W_SCREENBREAK", DVPTR(W_SCREENBREAK), W_SCREENBREAK__STATIC }, + { "W_TECHWALL1", DVPTR(W_TECHWALL1), W_TECHWALL1__STATIC }, + { "W_TECHWALL10", DVPTR(W_TECHWALL10), W_TECHWALL10__STATIC }, + { "W_TECHWALL11", DVPTR(W_TECHWALL11), W_TECHWALL11__STATIC }, + { "W_TECHWALL12", DVPTR(W_TECHWALL12), W_TECHWALL12__STATIC }, + { "W_TECHWALL13", DVPTR(W_TECHWALL13), W_TECHWALL13__STATIC }, + { "W_TECHWALL14", DVPTR(W_TECHWALL14), W_TECHWALL14__STATIC }, + { "W_TECHWALL15", DVPTR(W_TECHWALL15), W_TECHWALL15__STATIC }, + { "W_TECHWALL16", DVPTR(W_TECHWALL16), W_TECHWALL16__STATIC }, + { "W_TECHWALL2", DVPTR(W_TECHWALL2), W_TECHWALL2__STATIC }, + { "W_TECHWALL3", DVPTR(W_TECHWALL3), W_TECHWALL3__STATIC }, + { "W_TECHWALL4", DVPTR(W_TECHWALL4), W_TECHWALL4__STATIC }, + { "W_TECHWALL5", DVPTR(W_TECHWALL5), W_TECHWALL5__STATIC }, + { "W_TECHWALL6", DVPTR(W_TECHWALL6), W_TECHWALL6__STATIC }, + { "W_TECHWALL7", DVPTR(W_TECHWALL7), W_TECHWALL7__STATIC }, + { "W_TECHWALL8", DVPTR(W_TECHWALL8), W_TECHWALL8__STATIC }, + { "W_TECHWALL9", DVPTR(W_TECHWALL9), W_TECHWALL9__STATIC }, + { "WAITTOBESEATED", DVPTR(WAITTOBESEATED), WAITTOBESEATED__STATIC }, + { "WALLBLOOD1", DVPTR(WALLBLOOD1), WALLBLOOD1__STATIC }, + { "WALLBLOOD2", DVPTR(WALLBLOOD2), WALLBLOOD2__STATIC }, + { "WALLBLOOD3", DVPTR(WALLBLOOD3), WALLBLOOD3__STATIC }, + { "WALLBLOOD4", DVPTR(WALLBLOOD4), WALLBLOOD4__STATIC }, + { "WALLBLOOD5", DVPTR(WALLBLOOD5), WALLBLOOD5__STATIC }, + { "WALLBLOOD7", DVPTR(WALLBLOOD7), WALLBLOOD7__STATIC }, + { "WALLBLOOD8", DVPTR(WALLBLOOD8), WALLBLOOD8__STATIC }, + { "WALLLIGHT1", DVPTR(WALLLIGHT1), WALLLIGHT1__STATIC }, + { "WALLLIGHT2", DVPTR(WALLLIGHT2), WALLLIGHT2__STATIC }, + { "WALLLIGHT3", DVPTR(WALLLIGHT3), WALLLIGHT3__STATIC }, + { "WALLLIGHT4", DVPTR(WALLLIGHT4), WALLLIGHT4__STATIC }, + { "WALLLIGHTBUST1", DVPTR(WALLLIGHTBUST1), WALLLIGHTBUST1__STATIC }, + { "WALLLIGHTBUST2", DVPTR(WALLLIGHTBUST2), WALLLIGHTBUST2__STATIC }, + { "WALLLIGHTBUST3", DVPTR(WALLLIGHTBUST3), WALLLIGHTBUST3__STATIC }, + { "WALLLIGHTBUST4", DVPTR(WALLLIGHTBUST4), WALLLIGHTBUST4__STATIC }, + { "WATERBUBBLE", DVPTR(WATERBUBBLE), WATERBUBBLE__STATIC }, + { "WATERBUBBLEMAKER", DVPTR(WATERBUBBLEMAKER), WATERBUBBLEMAKER__STATIC }, + { "WATERDRIP", DVPTR(WATERDRIP), WATERDRIP__STATIC }, + { "WATERDRIPSPLASH", DVPTR(WATERDRIPSPLASH), WATERDRIPSPLASH__STATIC }, + { "WATERFOUNTAIN", DVPTR(WATERFOUNTAIN), WATERFOUNTAIN__STATIC }, + { "WATERFOUNTAINBROKE", DVPTR(WATERFOUNTAINBROKE), WATERFOUNTAINBROKE__STATIC }, + { "WATERSPLASH2", DVPTR(WATERSPLASH2), WATERSPLASH2__STATIC }, + { "WATERTILE2", DVPTR(WATERTILE2), WATERTILE2__STATIC }, + { "WEATHERWARN", DVPTR(WEATHERWARN), WEATHERWARN__STATIC }, + { "WINDOWBORDER1", DVPTR(WINDOWBORDER1), WINDOWBORDER1__STATIC }, + { "WINDOWBORDER2", DVPTR(WINDOWBORDER2), WINDOWBORDER2__STATIC }, + { "WOMAN", DVPTR(WOMAN), WOMAN__STATIC }, + { "WOODENHORSE", DVPTR(WOODENHORSE), WOODENHORSE__STATIC }, + { "XXXSTACY", DVPTR(XXXSTACY), XXXSTACY__STATIC }, + }; + + +int32_t ACCESS_ICON = ACCESS_ICON__STATIC; +int32_t ACCESSCARD = ACCESSCARD__STATIC; +int32_t ACCESSSWITCH = ACCESSSWITCH__STATIC; +int32_t ACCESSSWITCH2 = ACCESSSWITCH2__STATIC; +int32_t ACTIVATOR = ACTIVATOR__STATIC; +int32_t ACTIVATORLOCKED = ACTIVATORLOCKED__STATIC; +int32_t AIRTANK = AIRTANK__STATIC; +int32_t AIRTANK_ICON = AIRTANK_ICON__STATIC; +int32_t ALIENSWITCH = ALIENSWITCH__STATIC; +int32_t AMMO = AMMO__STATIC; +int32_t AMMOBOX = AMMOBOX__STATIC; +int32_t AMMOLOTS = AMMOLOTS__STATIC; +int32_t ANTENNA = ANTENNA__STATIC; +int32_t APLAYER = APLAYER__STATIC; +int32_t APLAYERTOP = APLAYERTOP__STATIC; +int32_t ARMJIB1 = ARMJIB1__STATIC; +int32_t ARROW = ARROW__STATIC; +int32_t ATM = ATM__STATIC; +int32_t ATMBROKE = ATMBROKE__STATIC; +int32_t ATOMICHEALTH = ATOMICHEALTH__STATIC; +int32_t BANNER = BANNER__STATIC; +int32_t BARBROKE = BARBROKE__STATIC; +int32_t BATTERYAMMO = BATTERYAMMO__STATIC; +int32_t BETASCREEN = BETASCREEN__STATIC; +int32_t BETAVERSION = BETAVERSION__STATIC; +int32_t BGRATE1 = BGRATE1__STATIC; +int32_t BIGALPHANUM = BIGALPHANUM__STATIC; +int32_t BIGAPPOS = BIGAPPOS__STATIC; +int32_t BIGCOLIN = BIGCOLIN__STATIC; +int32_t BIGCOMMA = BIGCOMMA__STATIC; +int32_t BIGFORCE = BIGFORCE__STATIC; +int32_t BIGHOLE = BIGHOLE__STATIC; +int32_t BIGORBIT1 = BIGORBIT1__STATIC; +int32_t BIGPERIOD = BIGPERIOD__STATIC; +int32_t BIGQ = BIGQ__STATIC; +int32_t BIGSEMI = BIGSEMI__STATIC; +int32_t BIGX_ = BIGX__STATIC; // "BIGX" clashes on the Wii? +int32_t BLANKSCREEN = BLANKSCREEN__STATIC; +int32_t BLIMP = BLIMP__STATIC; +int32_t BLOOD = BLOOD__STATIC; +int32_t BLOODPOOL = BLOODPOOL__STATIC; +int32_t BLOODSPLAT1 = BLOODSPLAT1__STATIC; +int32_t BLOODSPLAT2 = BLOODSPLAT2__STATIC; +int32_t BLOODSPLAT3 = BLOODSPLAT3__STATIC; +int32_t BLOODSPLAT4 = BLOODSPLAT4__STATIC; +int32_t BLOODYPOLE = BLOODYPOLE__STATIC; +int32_t BOLT1 = BOLT1__STATIC; +int32_t BONUSSCREEN = BONUSSCREEN__STATIC; +int32_t BOOT_ICON = BOOT_ICON__STATIC; +int32_t BOOTS = BOOTS__STATIC; +int32_t BORNTOBEWILDSCREEN = BORNTOBEWILDSCREEN__STATIC; +int32_t BOSS1 = BOSS1__STATIC; +int32_t BOSS1LOB = BOSS1LOB__STATIC; +int32_t BOSS1SHOOT = BOSS1SHOOT__STATIC; +int32_t BOSS1STAYPUT = BOSS1STAYPUT__STATIC; +int32_t BOSS2 = BOSS2__STATIC; +int32_t BOSS3 = BOSS3__STATIC; +int32_t BOSS4 = BOSS4__STATIC; +int32_t BOSS4STAYPUT = BOSS4STAYPUT__STATIC; +int32_t BOSSTOP = BOSSTOP__STATIC; +int32_t BOTTLE1 = BOTTLE1__STATIC; +int32_t BOTTLE10 = BOTTLE10__STATIC; +int32_t BOTTLE11 = BOTTLE11__STATIC; +int32_t BOTTLE12 = BOTTLE12__STATIC; +int32_t BOTTLE13 = BOTTLE13__STATIC; +int32_t BOTTLE14 = BOTTLE14__STATIC; +int32_t BOTTLE15 = BOTTLE15__STATIC; +int32_t BOTTLE16 = BOTTLE16__STATIC; +int32_t BOTTLE17 = BOTTLE17__STATIC; +int32_t BOTTLE18 = BOTTLE18__STATIC; +int32_t BOTTLE19 = BOTTLE19__STATIC; +int32_t BOTTLE2 = BOTTLE2__STATIC; +int32_t BOTTLE3 = BOTTLE3__STATIC; +int32_t BOTTLE4 = BOTTLE4__STATIC; +int32_t BOTTLE5 = BOTTLE5__STATIC; +int32_t BOTTLE6 = BOTTLE6__STATIC; +int32_t BOTTLE7 = BOTTLE7__STATIC; +int32_t BOTTLE8 = BOTTLE8__STATIC; +int32_t BOTTOMSTATUSBAR = BOTTOMSTATUSBAR__STATIC; +int32_t BOUNCEMINE = BOUNCEMINE__STATIC; +int32_t BOX = BOX__STATIC; +int32_t BPANNEL1 = BPANNEL1__STATIC; +int32_t BPANNEL3 = BPANNEL3__STATIC; +int32_t BROKEFIREHYDRENT = BROKEFIREHYDRENT__STATIC; +int32_t BROKEHYDROPLANT = BROKEHYDROPLANT__STATIC; +int32_t BROKENCHAIR = BROKENCHAIR__STATIC; +int32_t BULLETHOLE = BULLETHOLE__STATIC; +int32_t BURNING = BURNING__STATIC; +int32_t BURNING2 = BURNING2__STATIC; +int32_t CACTUS = CACTUS__STATIC; +int32_t CACTUSBROKE = CACTUSBROKE__STATIC; +int32_t CAMCORNER = CAMCORNER__STATIC; +int32_t CAMERA1 = CAMERA1__STATIC; +int32_t CAMERALIGHT = CAMERALIGHT__STATIC; +int32_t CAMERAPOLE = CAMERAPOLE__STATIC; +int32_t CAMLIGHT = CAMLIGHT__STATIC; +int32_t CANWITHSOMETHING = CANWITHSOMETHING__STATIC; +int32_t CANWITHSOMETHING2 = CANWITHSOMETHING2__STATIC; +int32_t CANWITHSOMETHING3 = CANWITHSOMETHING3__STATIC; +int32_t CANWITHSOMETHING4 = CANWITHSOMETHING4__STATIC; +int32_t CEILINGSTEAM = CEILINGSTEAM__STATIC; +int32_t CHAINGUN = CHAINGUN__STATIC; +int32_t CHAINGUNSPRITE = CHAINGUNSPRITE__STATIC; +int32_t CHAIR1 = CHAIR1__STATIC; +int32_t CHAIR2 = CHAIR2__STATIC; +int32_t CHAIR3 = CHAIR3__STATIC; +int32_t CIRCLEPANNEL = CIRCLEPANNEL__STATIC; +int32_t CIRCLEPANNELBROKE = CIRCLEPANNELBROKE__STATIC; +int32_t CLOUDYOCEAN = CLOUDYOCEAN__STATIC; +int32_t CLOUDYSKIES = CLOUDYSKIES__STATIC; +int32_t COLA = COLA__STATIC; +int32_t COLAMACHINE = COLAMACHINE__STATIC; +int32_t COMMANDER = COMMANDER__STATIC; +int32_t COMMANDERSTAYPUT = COMMANDERSTAYPUT__STATIC; +int32_t CONE = CONE__STATIC; +int32_t COOLEXPLOSION1 = COOLEXPLOSION1__STATIC; +int32_t CRACK1 = CRACK1__STATIC; +int32_t CRACK2 = CRACK2__STATIC; +int32_t CRACK3 = CRACK3__STATIC; +int32_t CRACK4 = CRACK4__STATIC; +int32_t CRACKKNUCKLES = CRACKKNUCKLES__STATIC; +int32_t CRANE = CRANE__STATIC; +int32_t CRANEPOLE = CRANEPOLE__STATIC; +int32_t CREDITSTEXT1 = CREDITSTEXT1__STATIC; +int32_t CREDITSTEXT2 = CREDITSTEXT2__STATIC; +int32_t CREDITSTEXT3 = CREDITSTEXT3__STATIC; +int32_t CROSSHAIR = CROSSHAIR__STATIC; +int32_t CRYSTALAMMO = CRYSTALAMMO__STATIC; +int32_t CYCLER = CYCLER__STATIC; +int32_t DEVISTATOR = DEVISTATOR__STATIC; +int32_t DEVISTATORAMMO = DEVISTATORAMMO__STATIC; +int32_t DEVISTATORSPRITE = DEVISTATORSPRITE__STATIC; +int32_t DIGITALNUM = DIGITALNUM__STATIC; +int32_t DIPSWITCH = DIPSWITCH__STATIC; +int32_t DIPSWITCH2 = DIPSWITCH2__STATIC; +int32_t DIPSWITCH3 = DIPSWITCH3__STATIC; +int32_t DOLPHIN1 = DOLPHIN1__STATIC; +int32_t DOLPHIN2 = DOLPHIN2__STATIC; +int32_t DOMELITE = DOMELITE__STATIC; +int32_t DOORSHOCK = DOORSHOCK__STATIC; +int32_t DOORTILE1 = DOORTILE1__STATIC; +int32_t DOORTILE10 = DOORTILE10__STATIC; +int32_t DOORTILE11 = DOORTILE11__STATIC; +int32_t DOORTILE12 = DOORTILE12__STATIC; +int32_t DOORTILE14 = DOORTILE14__STATIC; +int32_t DOORTILE15 = DOORTILE15__STATIC; +int32_t DOORTILE16 = DOORTILE16__STATIC; +int32_t DOORTILE17 = DOORTILE17__STATIC; +int32_t DOORTILE18 = DOORTILE18__STATIC; +int32_t DOORTILE19 = DOORTILE19__STATIC; +int32_t DOORTILE2 = DOORTILE2__STATIC; +int32_t DOORTILE20 = DOORTILE20__STATIC; +int32_t DOORTILE21 = DOORTILE21__STATIC; +int32_t DOORTILE22 = DOORTILE22__STATIC; +int32_t DOORTILE23 = DOORTILE23__STATIC; +int32_t DOORTILE3 = DOORTILE3__STATIC; +int32_t DOORTILE4 = DOORTILE4__STATIC; +int32_t DOORTILE5 = DOORTILE5__STATIC; +int32_t DOORTILE6 = DOORTILE6__STATIC; +int32_t DOORTILE7 = DOORTILE7__STATIC; +int32_t DOORTILE8 = DOORTILE8__STATIC; +int32_t DOORTILE9 = DOORTILE9__STATIC; +int32_t DREALMS = DREALMS__STATIC; +int32_t DRONE = DRONE__STATIC; +int32_t DUCK = DUCK__STATIC; +int32_t DUKECAR = DUKECAR__STATIC; +int32_t DUKEGUN = DUKEGUN__STATIC; +int32_t DUKELEG = DUKELEG__STATIC; +int32_t DUKELYINGDEAD = DUKELYINGDEAD__STATIC; +int32_t DUKENUKEM = DUKENUKEM__STATIC; +int32_t DUKETAG = DUKETAG__STATIC; +int32_t DUKETORSO = DUKETORSO__STATIC; +int32_t EGG = EGG__STATIC; +int32_t ENDALPHANUM = ENDALPHANUM__STATIC; +int32_t EXPLODINGBARREL = EXPLODINGBARREL__STATIC; +int32_t EXPLODINGBARREL2 = EXPLODINGBARREL2__STATIC; +int32_t EXPLOSION2 = EXPLOSION2__STATIC; +int32_t EXPLOSION2BOT = EXPLOSION2BOT__STATIC; +int32_t F1HELP = F1HELP__STATIC; +int32_t FANSHADOW = FANSHADOW__STATIC; +int32_t FANSHADOWBROKE = FANSHADOWBROKE__STATIC; +int32_t FANSPRITE = FANSPRITE__STATIC; +int32_t FANSPRITEBROKE = FANSPRITEBROKE__STATIC; +int32_t FECES = FECES__STATIC; +int32_t FEM1 = FEM1__STATIC; +int32_t FEM10 = FEM10__STATIC; +int32_t FEM2 = FEM2__STATIC; +int32_t FEM3 = FEM3__STATIC; +int32_t FEM4 = FEM4__STATIC; +int32_t FEM5 = FEM5__STATIC; +int32_t FEM6 = FEM6__STATIC; +int32_t FEM6PAD = FEM6PAD__STATIC; +int32_t FEM7 = FEM7__STATIC; +int32_t FEM8 = FEM8__STATIC; +int32_t FEM9 = FEM9__STATIC; +int32_t FEMMAG1 = FEMMAG1__STATIC; +int32_t FEMMAG2 = FEMMAG2__STATIC; +int32_t FEMPIC1 = FEMPIC1__STATIC; +int32_t FEMPIC2 = FEMPIC2__STATIC; +int32_t FEMPIC3 = FEMPIC3__STATIC; +int32_t FEMPIC4 = FEMPIC4__STATIC; +int32_t FEMPIC5 = FEMPIC5__STATIC; +int32_t FEMPIC6 = FEMPIC6__STATIC; +int32_t FEMPIC7 = FEMPIC7__STATIC; +int32_t FETUS = FETUS__STATIC; +int32_t FETUSBROKE = FETUSBROKE__STATIC; +int32_t FETUSJIB = FETUSJIB__STATIC; +int32_t FIRE = FIRE__STATIC; +int32_t FIRE2 = FIRE2__STATIC; +int32_t FIREBARREL = FIREBARREL__STATIC; +int32_t FIREEXT = FIREEXT__STATIC; +int32_t FIRELASER = FIRELASER__STATIC; +int32_t FIREVASE = FIREVASE__STATIC; +int32_t FIRSTAID = FIRSTAID__STATIC; +int32_t FIRSTAID_ICON = FIRSTAID_ICON__STATIC; +int32_t FIRSTGUN = FIRSTGUN__STATIC; +int32_t FIRSTGUNRELOAD = FIRSTGUNRELOAD__STATIC; +int32_t FIRSTGUNSPRITE = FIRSTGUNSPRITE__STATIC; +int32_t FIST = FIST__STATIC; +int32_t FLOORFLAME = FLOORFLAME__STATIC; +int32_t FLOORPLASMA = FLOORPLASMA__STATIC; +int32_t FLOORSLIME = FLOORSLIME__STATIC; +int32_t FOF = FOF__STATIC; +int32_t FOODOBJECT16 = FOODOBJECT16__STATIC; +int32_t FOOTPRINTS = FOOTPRINTS__STATIC; +int32_t FOOTPRINTS2 = FOOTPRINTS2__STATIC; +int32_t FOOTPRINTS3 = FOOTPRINTS3__STATIC; +int32_t FOOTPRINTS4 = FOOTPRINTS4__STATIC; +int32_t FORCERIPPLE = FORCERIPPLE__STATIC; +int32_t FORCESPHERE = FORCESPHERE__STATIC; +int32_t FRAGBAR = FRAGBAR__STATIC; +int32_t FRAMEEFFECT1 = FRAMEEFFECT1__STATIC; +int32_t FRAMEEFFECT1_13 = FRAMEEFFECT1_13__STATIC; +int32_t FRANKENSTINESWITCH = FRANKENSTINESWITCH__STATIC; +int32_t FREEZE = FREEZE__STATIC; +int32_t FREEZEAMMO = FREEZEAMMO__STATIC; +int32_t FREEZEBLAST = FREEZEBLAST__STATIC; +int32_t FREEZESPRITE = FREEZESPRITE__STATIC; +int32_t FUELPOD = FUELPOD__STATIC; +int32_t GENERICPOLE = GENERICPOLE__STATIC; +int32_t GENERICPOLE2 = GENERICPOLE2__STATIC; +int32_t GLASS = GLASS__STATIC; +int32_t GLASS2 = GLASS2__STATIC; +int32_t GLASSPIECES = GLASSPIECES__STATIC; +int32_t GPSPEED = GPSPEED__STATIC; +int32_t GRATE1 = GRATE1__STATIC; +int32_t GREENSLIME = GREENSLIME__STATIC; +int32_t GROWAMMO = GROWAMMO__STATIC; +int32_t GROWSPARK = GROWSPARK__STATIC; +int32_t GROWSPRITEICON = GROWSPRITEICON__STATIC; +int32_t HANDHOLDINGACCESS = HANDHOLDINGACCESS__STATIC; +int32_t HANDHOLDINGLASER = HANDHOLDINGLASER__STATIC; +int32_t HANDPRINTSWITCH = HANDPRINTSWITCH__STATIC; +int32_t HANDREMOTE = HANDREMOTE__STATIC; +int32_t HANDSWITCH = HANDSWITCH__STATIC; +int32_t HANDTHROW = HANDTHROW__STATIC; +int32_t HANGLIGHT = HANGLIGHT__STATIC; +int32_t HBOMBAMMO = HBOMBAMMO__STATIC; +int32_t HEADJIB1 = HEADJIB1__STATIC; +int32_t HEALTHBOX = HEALTHBOX__STATIC; +int32_t HEAT_ICON = HEAT_ICON__STATIC; +int32_t HEATSENSOR = HEATSENSOR__STATIC; +int32_t HEAVYHBOMB = HEAVYHBOMB__STATIC; +int32_t HELECOPT = HELECOPT__STATIC; +int32_t HOLODUKE = HOLODUKE__STATIC; +int32_t HOLODUKE_ICON = HOLODUKE_ICON__STATIC; +int32_t HORSEONSIDE = HORSEONSIDE__STATIC; +int32_t HOTMEAT = HOTMEAT__STATIC; +int32_t HURTRAIL = HURTRAIL__STATIC; +int32_t HYDRENT = HYDRENT__STATIC; +int32_t HYDROPLANT = HYDROPLANT__STATIC; +int32_t INDY = INDY__STATIC; +int32_t INGAMEDUKETHREEDEE = INGAMEDUKETHREEDEE__STATIC; +int32_t INNERJAW = INNERJAW__STATIC; +int32_t INVENTORYBOX = INVENTORYBOX__STATIC; +int32_t IVUNIT = IVUNIT__STATIC; +int32_t JETPACK = JETPACK__STATIC; +int32_t JETPACK_ICON = JETPACK_ICON__STATIC; +int32_t JIBS1 = JIBS1__STATIC; +int32_t JIBS2 = JIBS2__STATIC; +int32_t JIBS3 = JIBS3__STATIC; +int32_t JIBS4 = JIBS4__STATIC; +int32_t JIBS5 = JIBS5__STATIC; +int32_t JIBS6 = JIBS6__STATIC; +int32_t JURYGUY = JURYGUY__STATIC; +int32_t KILLSICON = KILLSICON__STATIC; +int32_t KNEE = KNEE__STATIC; +int32_t LA = LA__STATIC; +int32_t LASERLINE = LASERLINE__STATIC; +int32_t LASERSITE = LASERSITE__STATIC; +int32_t LEGJIB1 = LEGJIB1__STATIC; +int32_t LETTER = LETTER__STATIC; +int32_t LIGHTSWITCH = LIGHTSWITCH__STATIC; +int32_t LIGHTSWITCH2 = LIGHTSWITCH2__STATIC; +int32_t LIZMAN = LIZMAN__STATIC; +int32_t LIZMANARM1 = LIZMANARM1__STATIC; +int32_t LIZMANFEEDING = LIZMANFEEDING__STATIC; +int32_t LIZMANHEAD1 = LIZMANHEAD1__STATIC; +int32_t LIZMANJUMP = LIZMANJUMP__STATIC; +int32_t LIZMANLEG1 = LIZMANLEG1__STATIC; +int32_t LIZMANSPITTING = LIZMANSPITTING__STATIC; +int32_t LIZMANSTAYPUT = LIZMANSTAYPUT__STATIC; +int32_t LIZTROOP = LIZTROOP__STATIC; +int32_t LIZTROOPDUCKING = LIZTROOPDUCKING__STATIC; +int32_t LIZTROOPJETPACK = LIZTROOPJETPACK__STATIC; +int32_t LIZTROOPJUSTSIT = LIZTROOPJUSTSIT__STATIC; +int32_t LIZTROOPONTOILET = LIZTROOPONTOILET__STATIC; +int32_t LIZTROOPRUNNING = LIZTROOPRUNNING__STATIC; +int32_t LIZTROOPSHOOT = LIZTROOPSHOOT__STATIC; +int32_t LIZTROOPSTAYPUT = LIZTROOPSTAYPUT__STATIC; +int32_t LOADSCREEN = LOADSCREEN__STATIC; +int32_t LOCATORS = LOCATORS__STATIC; +int32_t LOCKSWITCH1 = LOCKSWITCH1__STATIC; +int32_t LOOGIE = LOOGIE__STATIC; +int32_t LUKE = LUKE__STATIC; +int32_t MAIL = MAIL__STATIC; +int32_t MAN = MAN__STATIC; +int32_t MAN2 = MAN2__STATIC; +int32_t MASKWALL1 = MASKWALL1__STATIC; +int32_t MASKWALL10 = MASKWALL10__STATIC; +int32_t MASKWALL11 = MASKWALL11__STATIC; +int32_t MASKWALL12 = MASKWALL12__STATIC; +int32_t MASKWALL13 = MASKWALL13__STATIC; +int32_t MASKWALL14 = MASKWALL14__STATIC; +int32_t MASKWALL15 = MASKWALL15__STATIC; +int32_t MASKWALL2 = MASKWALL2__STATIC; +int32_t MASKWALL3 = MASKWALL3__STATIC; +int32_t MASKWALL4 = MASKWALL4__STATIC; +int32_t MASKWALL5 = MASKWALL5__STATIC; +int32_t MASKWALL6 = MASKWALL6__STATIC; +int32_t MASKWALL7 = MASKWALL7__STATIC; +int32_t MASKWALL8 = MASKWALL8__STATIC; +int32_t MASKWALL9 = MASKWALL9__STATIC; +int32_t MASTERSWITCH = MASTERSWITCH__STATIC; +int32_t MENUBAR = MENUBAR__STATIC; +int32_t MENUSCREEN = MENUSCREEN__STATIC; +int32_t MIKE = MIKE__STATIC; +int32_t MINIFONT = MINIFONT__STATIC; +int32_t MIRROR = MIRROR__STATIC; +int32_t MIRRORBROKE = MIRRORBROKE__STATIC; +int32_t MONEY = MONEY__STATIC; +int32_t MONK = MONK__STATIC; +int32_t MOONSKY1 = MOONSKY1__STATIC; +int32_t MORTER = MORTER__STATIC; +int32_t MOVIECAMERA = MOVIECAMERA__STATIC; +int32_t MULTISWITCH = MULTISWITCH__STATIC; +int32_t MUSICANDSFX = MUSICANDSFX__STATIC; +int32_t NAKED1 = NAKED1__STATIC; +int32_t NATURALLIGHTNING = NATURALLIGHTNING__STATIC; +int32_t NEON1 = NEON1__STATIC; +int32_t NEON2 = NEON2__STATIC; +int32_t NEON3 = NEON3__STATIC; +int32_t NEON4 = NEON4__STATIC; +int32_t NEON5 = NEON5__STATIC; +int32_t NEON6 = NEON6__STATIC; +int32_t NEWBEAST = NEWBEAST__STATIC; +int32_t NEWBEASTSTAYPUT = NEWBEASTSTAYPUT__STATIC; +int32_t NUKEBARREL = NUKEBARREL__STATIC; +int32_t NUKEBARRELDENTED = NUKEBARRELDENTED__STATIC; +int32_t NUKEBARRELLEAKED = NUKEBARRELLEAKED__STATIC; +int32_t NUKEBUTTON = NUKEBUTTON__STATIC; +int32_t OCEANSPRITE1 = OCEANSPRITE1__STATIC; +int32_t OCEANSPRITE2 = OCEANSPRITE2__STATIC; +int32_t OCEANSPRITE3 = OCEANSPRITE3__STATIC; +int32_t OCEANSPRITE4 = OCEANSPRITE4__STATIC; +int32_t OCEANSPRITE5 = OCEANSPRITE5__STATIC; +int32_t OCTABRAIN = OCTABRAIN__STATIC; +int32_t OCTABRAINSTAYPUT = OCTABRAINSTAYPUT__STATIC; +int32_t OJ = OJ__STATIC; +int32_t OOZ = OOZ__STATIC; +int32_t OOZ2 = OOZ2__STATIC; +int32_t OOZFILTER = OOZFILTER__STATIC; +int32_t ORDERING = ORDERING__STATIC; +int32_t ORGANTIC = ORGANTIC__STATIC; +int32_t PANNEL1 = PANNEL1__STATIC; +int32_t PANNEL2 = PANNEL2__STATIC; +int32_t PANNEL3 = PANNEL3__STATIC; +int32_t PAPER = PAPER__STATIC; +int32_t PIGCOP = PIGCOP__STATIC; +int32_t PIGCOPDIVE = PIGCOPDIVE__STATIC; +int32_t PIGCOPSTAYPUT = PIGCOPSTAYPUT__STATIC; +int32_t PIPE1 = PIPE1__STATIC; +int32_t PIPE1B = PIPE1B__STATIC; +int32_t PIPE2 = PIPE2__STATIC; +int32_t PIPE2B = PIPE2B__STATIC; +int32_t PIPE3 = PIPE3__STATIC; +int32_t PIPE3B = PIPE3B__STATIC; +int32_t PIPE4 = PIPE4__STATIC; +int32_t PIPE4B = PIPE4B__STATIC; +int32_t PIPE5 = PIPE5__STATIC; +int32_t PIPE5B = PIPE5B__STATIC; +int32_t PIPE6 = PIPE6__STATIC; +int32_t PIPE6B = PIPE6B__STATIC; +int32_t PLAYERONWATER = PLAYERONWATER__STATIC; +int32_t PLUG = PLUG__STATIC; +int32_t PLUTOPAKSPRITE = PLUTOPAKSPRITE__STATIC; +int32_t POCKET = POCKET__STATIC; +int32_t PODFEM1 = PODFEM1__STATIC; +int32_t POT1 = POT1__STATIC; +int32_t POT2 = POT2__STATIC; +int32_t POT3 = POT3__STATIC; +int32_t POWERSWITCH1 = POWERSWITCH1__STATIC; +int32_t POWERSWITCH2 = POWERSWITCH2__STATIC; +int32_t PUKE = PUKE__STATIC; +int32_t PULLSWITCH = PULLSWITCH__STATIC; +int32_t PURPLELAVA = PURPLELAVA__STATIC; +int32_t QUEBALL = QUEBALL__STATIC; +int32_t RADIUSEXPLOSION = RADIUSEXPLOSION__STATIC; +int32_t RAT = RAT__STATIC; +int32_t REACTOR = REACTOR__STATIC; +int32_t REACTOR2 = REACTOR2__STATIC; +int32_t REACTOR2BURNT = REACTOR2BURNT__STATIC; +int32_t REACTOR2SPARK = REACTOR2SPARK__STATIC; +int32_t REACTORBURNT = REACTORBURNT__STATIC; +int32_t REACTORSPARK = REACTORSPARK__STATIC; +int32_t RECON = RECON__STATIC; +int32_t RESPAWN = RESPAWN__STATIC; +int32_t RESPAWNMARKERGREEN = RESPAWNMARKERGREEN__STATIC; +int32_t RESPAWNMARKERRED = RESPAWNMARKERRED__STATIC; +int32_t RESPAWNMARKERYELLOW = RESPAWNMARKERYELLOW__STATIC; +int32_t ROTATEGUN = ROTATEGUN__STATIC; +int32_t RPG = RPG__STATIC; +int32_t RPGAMMO = RPGAMMO__STATIC; +int32_t RPGGUN = RPGGUN__STATIC; +int32_t RPGSPRITE = RPGSPRITE__STATIC; +int32_t RUBBERCAN = RUBBERCAN__STATIC; +int32_t SATELITE = SATELITE__STATIC; +int32_t SCALE = SCALE__STATIC; +int32_t SCRAP1 = SCRAP1__STATIC; +int32_t SCRAP2 = SCRAP2__STATIC; +int32_t SCRAP3 = SCRAP3__STATIC; +int32_t SCRAP4 = SCRAP4__STATIC; +int32_t SCRAP5 = SCRAP5__STATIC; +int32_t SCRAP6 = SCRAP6__STATIC; +int32_t SCREENBREAK1 = SCREENBREAK1__STATIC; +int32_t SCREENBREAK10 = SCREENBREAK10__STATIC; +int32_t SCREENBREAK11 = SCREENBREAK11__STATIC; +int32_t SCREENBREAK12 = SCREENBREAK12__STATIC; +int32_t SCREENBREAK13 = SCREENBREAK13__STATIC; +int32_t SCREENBREAK14 = SCREENBREAK14__STATIC; +int32_t SCREENBREAK15 = SCREENBREAK15__STATIC; +int32_t SCREENBREAK16 = SCREENBREAK16__STATIC; +int32_t SCREENBREAK17 = SCREENBREAK17__STATIC; +int32_t SCREENBREAK18 = SCREENBREAK18__STATIC; +int32_t SCREENBREAK19 = SCREENBREAK19__STATIC; +int32_t SCREENBREAK2 = SCREENBREAK2__STATIC; +int32_t SCREENBREAK3 = SCREENBREAK3__STATIC; +int32_t SCREENBREAK4 = SCREENBREAK4__STATIC; +int32_t SCREENBREAK5 = SCREENBREAK5__STATIC; +int32_t SCREENBREAK6 = SCREENBREAK6__STATIC; +int32_t SCREENBREAK7 = SCREENBREAK7__STATIC; +int32_t SCREENBREAK8 = SCREENBREAK8__STATIC; +int32_t SCREENBREAK9 = SCREENBREAK9__STATIC; +int32_t SCUBAMASK = SCUBAMASK__STATIC; +int32_t SECTOREFFECTOR = SECTOREFFECTOR__STATIC; +int32_t SEENINE = SEENINE__STATIC; +int32_t SEENINEDEAD = SEENINEDEAD__STATIC; +int32_t SELECTDIR = SELECTDIR__STATIC; +int32_t SHARK = SHARK__STATIC; +int32_t SHELL = SHELL__STATIC; +int32_t SHIELD = SHIELD__STATIC; +int32_t SHOTGUN = SHOTGUN__STATIC; +int32_t SHOTGUNAMMO = SHOTGUNAMMO__STATIC; +int32_t SHOTGUNSHELL = SHOTGUNSHELL__STATIC; +int32_t SHOTGUNSPRITE = SHOTGUNSPRITE__STATIC; +int32_t SHOTSPARK1 = SHOTSPARK1__STATIC; +int32_t SHRINKER = SHRINKER__STATIC; +int32_t SHRINKEREXPLOSION = SHRINKEREXPLOSION__STATIC; +int32_t SHRINKERSPRITE = SHRINKERSPRITE__STATIC; +int32_t SHRINKSPARK = SHRINKSPARK__STATIC; +int32_t SIDEBOLT1 = SIDEBOLT1__STATIC; +int32_t SIGN1 = SIGN1__STATIC; +int32_t SIGN2 = SIGN2__STATIC; +int32_t SIXPAK = SIXPAK__STATIC; +int32_t SLIDEBAR = SLIDEBAR__STATIC; +int32_t SLOTDOOR = SLOTDOOR__STATIC; +int32_t SMALLFNTCURSOR = SMALLFNTCURSOR__STATIC; +int32_t SMALLSMOKE = SMALLSMOKE__STATIC; +int32_t SOLARPANNEL = SOLARPANNEL__STATIC; +int32_t SPACEDOORSWITCH = SPACEDOORSWITCH__STATIC; +int32_t SPACELIGHTSWITCH = SPACELIGHTSWITCH__STATIC; +int32_t SPACEMARINE = SPACEMARINE__STATIC; +int32_t SPEAKER = SPEAKER__STATIC; +int32_t SPINNINGNUKEICON = SPINNINGNUKEICON__STATIC; +int32_t SPIT = SPIT__STATIC; +int32_t SPOTLITE = SPOTLITE__STATIC; +int32_t STAINGLASS1 = STAINGLASS1__STATIC; +int32_t STALL = STALL__STATIC; +int32_t STALLBROKE = STALLBROKE__STATIC; +int32_t STARTALPHANUM = STARTALPHANUM__STATIC; +int32_t STATIC = STATIC__STATIC; +int32_t STATUE = STATUE__STATIC; +int32_t STATUEFLASH = STATUEFLASH__STATIC; +int32_t STEAM = STEAM__STATIC; +int32_t STEROIDS = STEROIDS__STATIC; +int32_t STEROIDS_ICON = STEROIDS_ICON__STATIC; +int32_t STRIPEBALL = STRIPEBALL__STATIC; +int32_t SUSHIPLATE1 = SUSHIPLATE1__STATIC; +int32_t SUSHIPLATE2 = SUSHIPLATE2__STATIC; +int32_t SUSHIPLATE3 = SUSHIPLATE3__STATIC; +int32_t SUSHIPLATE4 = SUSHIPLATE4__STATIC; +int32_t SUSHIPLATE5 = SUSHIPLATE5__STATIC; +int32_t TAMPON = TAMPON__STATIC; +int32_t TANK = TANK__STATIC; +int32_t TARGET = TARGET__STATIC; +int32_t TECHLIGHT2 = TECHLIGHT2__STATIC; +int32_t TECHLIGHT4 = TECHLIGHT4__STATIC; +int32_t TECHLIGHTBUST2 = TECHLIGHTBUST2__STATIC; +int32_t TECHLIGHTBUST4 = TECHLIGHTBUST4__STATIC; +int32_t TECHSWITCH = TECHSWITCH__STATIC; +int32_t TENSCREEN = TENSCREEN__STATIC; +int32_t TEXTBOX = TEXTBOX__STATIC; +int32_t TEXTSTORY = TEXTSTORY__STATIC; +int32_t THREEBYFIVE = THREEBYFIVE__STATIC; +int32_t THREEDEE = THREEDEE__STATIC; +int32_t TIP = TIP__STATIC; +int32_t TIRE = TIRE__STATIC; +int32_t TOILET = TOILET__STATIC; +int32_t TOILETBROKE = TOILETBROKE__STATIC; +int32_t TOILETWATER = TOILETWATER__STATIC; +int32_t TONGUE = TONGUE__STATIC; +int32_t TOUCHPLATE = TOUCHPLATE__STATIC; +int32_t TOUGHGAL = TOUGHGAL__STATIC; +int32_t TRANSPORTERBEAM = TRANSPORTERBEAM__STATIC; +int32_t TRANSPORTERSTAR = TRANSPORTERSTAR__STATIC; +int32_t TRASH = TRASH__STATIC; +int32_t TREE1 = TREE1__STATIC; +int32_t TREE2 = TREE2__STATIC; +int32_t TRIPBOMB = TRIPBOMB__STATIC; +int32_t TRIPBOMBSPRITE = TRIPBOMBSPRITE__STATIC; +int32_t TRIPODCAMERA = TRIPODCAMERA__STATIC; +int32_t VACUUM = VACUUM__STATIC; +int32_t VASE = VASE__STATIC; +int32_t VENDMACHINE = VENDMACHINE__STATIC; +int32_t VICTORY1 = VICTORY1__STATIC; +int32_t VIEWBORDER = VIEWBORDER__STATIC; +int32_t VIEWSCREEN = VIEWSCREEN__STATIC; +int32_t VIEWSCREEN2 = VIEWSCREEN2__STATIC; +int32_t W_FORCEFIELD = W_FORCEFIELD__STATIC; +int32_t W_HITTECHWALL1 = W_HITTECHWALL1__STATIC; +int32_t W_HITTECHWALL10 = W_HITTECHWALL10__STATIC; +int32_t W_HITTECHWALL15 = W_HITTECHWALL15__STATIC; +int32_t W_HITTECHWALL16 = W_HITTECHWALL16__STATIC; +int32_t W_HITTECHWALL2 = W_HITTECHWALL2__STATIC; +int32_t W_HITTECHWALL3 = W_HITTECHWALL3__STATIC; +int32_t W_HITTECHWALL4 = W_HITTECHWALL4__STATIC; +int32_t W_MILKSHELF = W_MILKSHELF__STATIC; +int32_t W_MILKSHELFBROKE = W_MILKSHELFBROKE__STATIC; +int32_t W_NUMBERS = W_NUMBERS__STATIC; +int32_t W_SCREENBREAK = W_SCREENBREAK__STATIC; +int32_t W_TECHWALL1 = W_TECHWALL1__STATIC; +int32_t W_TECHWALL10 = W_TECHWALL10__STATIC; +int32_t W_TECHWALL11 = W_TECHWALL11__STATIC; +int32_t W_TECHWALL12 = W_TECHWALL12__STATIC; +int32_t W_TECHWALL13 = W_TECHWALL13__STATIC; +int32_t W_TECHWALL14 = W_TECHWALL14__STATIC; +int32_t W_TECHWALL15 = W_TECHWALL15__STATIC; +int32_t W_TECHWALL16 = W_TECHWALL16__STATIC; +int32_t W_TECHWALL2 = W_TECHWALL2__STATIC; +int32_t W_TECHWALL3 = W_TECHWALL3__STATIC; +int32_t W_TECHWALL4 = W_TECHWALL4__STATIC; +int32_t W_TECHWALL5 = W_TECHWALL5__STATIC; +int32_t W_TECHWALL6 = W_TECHWALL6__STATIC; +int32_t W_TECHWALL7 = W_TECHWALL7__STATIC; +int32_t W_TECHWALL8 = W_TECHWALL8__STATIC; +int32_t W_TECHWALL9 = W_TECHWALL9__STATIC; +int32_t WAITTOBESEATED = WAITTOBESEATED__STATIC; +int32_t WALLBLOOD1 = WALLBLOOD1__STATIC; +int32_t WALLBLOOD2 = WALLBLOOD2__STATIC; +int32_t WALLBLOOD3 = WALLBLOOD3__STATIC; +int32_t WALLBLOOD4 = WALLBLOOD4__STATIC; +int32_t WALLBLOOD5 = WALLBLOOD5__STATIC; +int32_t WALLBLOOD7 = WALLBLOOD7__STATIC; +int32_t WALLBLOOD8 = WALLBLOOD8__STATIC; +int32_t WALLLIGHT1 = WALLLIGHT1__STATIC; +int32_t WALLLIGHT2 = WALLLIGHT2__STATIC; +int32_t WALLLIGHT3 = WALLLIGHT3__STATIC; +int32_t WALLLIGHT4 = WALLLIGHT4__STATIC; +int32_t WALLLIGHTBUST1 = WALLLIGHTBUST1__STATIC; +int32_t WALLLIGHTBUST2 = WALLLIGHTBUST2__STATIC; +int32_t WALLLIGHTBUST3 = WALLLIGHTBUST3__STATIC; +int32_t WALLLIGHTBUST4 = WALLLIGHTBUST4__STATIC; +int32_t WATERBUBBLE = WATERBUBBLE__STATIC; +int32_t WATERBUBBLEMAKER = WATERBUBBLEMAKER__STATIC; +int32_t WATERDRIP = WATERDRIP__STATIC; +int32_t WATERDRIPSPLASH = WATERDRIPSPLASH__STATIC; +int32_t WATERFOUNTAIN = WATERFOUNTAIN__STATIC; +int32_t WATERFOUNTAINBROKE = WATERFOUNTAINBROKE__STATIC; +int32_t WATERSPLASH2 = WATERSPLASH2__STATIC; +int32_t WATERTILE2 = WATERTILE2__STATIC; +int32_t WEATHERWARN = WEATHERWARN__STATIC; +int32_t WINDOWBORDER1 = WINDOWBORDER1__STATIC; +int32_t WINDOWBORDER2 = WINDOWBORDER2__STATIC; +int32_t WOMAN = WOMAN__STATIC; +int32_t WOODENHORSE = WOODENHORSE__STATIC; +int32_t XXXSTACY = XXXSTACY__STATIC; + +static hashtable_t h_names = {512, NULL}; + +void G_ProcessDynamicTileMapping(const char *szLabel, int32_t lValue) +{ + if ((unsigned)lValue >= MAXTILES || !szLabel) + return; + + int const i = hash_find(&h_names,szLabel); + + if (i>=0) + { + struct dynitem *di = &g_dynTileList[i]; + *di->dynvalptr = lValue; + } +} + +void inithashnames(void) +{ + hash_init(&h_names); + + for (int i=0; i < ARRAY_SSIZE(g_dynTileList); i++) + hash_add(&h_names, g_dynTileList[i].str, i, 0); +} + +void freehashnames(void) +{ + hash_free(&h_names); +} + +// This is run after all CON define's have been processed to set up the +// dynamic->static tile mapping. +void G_InitDynamicTiles(void) +{ + Bmemset(DynamicTileMap, 0, sizeof(DynamicTileMap)); + + for (auto & i : g_dynTileList) + { + DynamicTileMap[*(i.dynvalptr)] = i.staticval; + NameToTileIndex.Insert(i.str, *(i.dynvalptr)); + } + + g_blimpSpawnItems[0] = RPGSPRITE; + g_blimpSpawnItems[1] = CHAINGUNSPRITE; + g_blimpSpawnItems[2] = DEVISTATORAMMO; + g_blimpSpawnItems[3] = RPGAMMO; + g_blimpSpawnItems[4] = RPGAMMO; + g_blimpSpawnItems[5] = JETPACK; + g_blimpSpawnItems[6] = SHIELD; + g_blimpSpawnItems[7] = FIRSTAID; + g_blimpSpawnItems[8] = STEROIDS; + g_blimpSpawnItems[9] = RPGAMMO; + g_blimpSpawnItems[10] = RPGAMMO; + g_blimpSpawnItems[11] = RPGSPRITE; + g_blimpSpawnItems[12] = RPGAMMO; + g_blimpSpawnItems[13] = FREEZESPRITE; + g_blimpSpawnItems[14] = FREEZEAMMO; + + WeaponPickupSprites[0] = KNEE; + WeaponPickupSprites[1] = FIRSTGUNSPRITE; + WeaponPickupSprites[2] = SHOTGUNSPRITE; + WeaponPickupSprites[3] = CHAINGUNSPRITE; + WeaponPickupSprites[4] = RPGSPRITE; + WeaponPickupSprites[5] = HEAVYHBOMB; + WeaponPickupSprites[6] = SHRINKERSPRITE; + WeaponPickupSprites[7] = DEVISTATORSPRITE; + WeaponPickupSprites[8] = TRIPBOMBSPRITE; + WeaponPickupSprites[9] = FREEZESPRITE; + WeaponPickupSprites[10] = HEAVYHBOMB; + WeaponPickupSprites[11] = SHRINKERSPRITE; +} +END_DUKE_NS diff --git a/source/duke3d/src/namesdyn.h b/source/duke3d/src/namesdyn.h new file mode 100644 index 000000000..6b5dcfe24 --- /dev/null +++ b/source/duke3d/src/namesdyn.h @@ -0,0 +1,1238 @@ +//------------------------------------------------------------------------- +/* +Copyright (C) 2010 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 namesdyn_h__ +#define namesdyn_h__ + +BEGIN_DUKE_NS + + +#define SECTOREFFECTOR__STATIC 1 +#define ACTIVATOR__STATIC 2 +#define TOUCHPLATE__STATIC 3 +#define ACTIVATORLOCKED__STATIC 4 +#define MUSICANDSFX__STATIC 5 +#define LOCATORS__STATIC 6 +#define CYCLER__STATIC 7 +#define MASTERSWITCH__STATIC 8 +#define RESPAWN__STATIC 9 +#define GPSPEED__STATIC 10 +#define FOF__STATIC 13 +#define ARROW__STATIC 20 +#define FIRSTGUNSPRITE__STATIC 21 +#define CHAINGUNSPRITE__STATIC 22 +#define RPGSPRITE__STATIC 23 +#define FREEZESPRITE__STATIC 24 +#define SHRINKERSPRITE__STATIC 25 +#define HEAVYHBOMB__STATIC 26 +#define TRIPBOMBSPRITE__STATIC 27 +#define SHOTGUNSPRITE__STATIC 28 +#define DEVISTATORSPRITE__STATIC 29 +#define HEALTHBOX__STATIC 30 +#define AMMOBOX__STATIC 31 +#define GROWSPRITEICON__STATIC 32 +#define INVENTORYBOX__STATIC 33 +#define FREEZEAMMO__STATIC 37 +#define AMMO__STATIC 40 +#define BATTERYAMMO__STATIC 41 +#define DEVISTATORAMMO__STATIC 42 +#define RPGAMMO__STATIC 44 +#define GROWAMMO__STATIC 45 +#define CRYSTALAMMO__STATIC 46 +#define HBOMBAMMO__STATIC 47 +#define AMMOLOTS__STATIC 48 +#define SHOTGUNAMMO__STATIC 49 +#define COLA__STATIC 51 +#define SIXPAK__STATIC 52 +#define FIRSTAID__STATIC 53 +#define SHIELD__STATIC 54 +#define STEROIDS__STATIC 55 +#define AIRTANK__STATIC 56 +#define JETPACK__STATIC 57 +#define HEATSENSOR__STATIC 59 +#define ACCESSCARD__STATIC 60 +#define BOOTS__STATIC 61 +#define MIRRORBROKE__STATIC 70 +#define CLOUDYOCEAN__STATIC 78 +#define CLOUDYSKIES__STATIC 79 +#define MOONSKY1__STATIC 80 +#define BIGORBIT1__STATIC 84 +#define LA__STATIC 89 +#define ATOMICHEALTH__STATIC 100 +#define TECHLIGHT2__STATIC 120 +#define TECHLIGHTBUST2__STATIC 121 +#define TECHLIGHT4__STATIC 122 +#define TECHLIGHTBUST4__STATIC 123 +#define WALLLIGHT4__STATIC 124 +#define WALLLIGHTBUST4__STATIC 125 +#define ACCESSSWITCH__STATIC 130 +#define SLOTDOOR__STATIC 132 +#define LIGHTSWITCH__STATIC 134 +#define SPACEDOORSWITCH__STATIC 136 +#define SPACELIGHTSWITCH__STATIC 138 +#define FRANKENSTINESWITCH__STATIC 140 +#define NUKEBUTTON__STATIC 142 +#define MULTISWITCH__STATIC 146 +#define DOORTILE5__STATIC 150 +#define DOORTILE6__STATIC 151 +#define DOORTILE1__STATIC 152 +#define DOORTILE2__STATIC 153 +#define DOORTILE3__STATIC 154 +#define DOORTILE4__STATIC 155 +#define DOORTILE7__STATIC 156 +#define DOORTILE8__STATIC 157 +#define DOORTILE9__STATIC 158 +#define DOORTILE10__STATIC 159 +#define DOORSHOCK__STATIC 160 +#define DIPSWITCH__STATIC 162 +#define DIPSWITCH2__STATIC 164 +#define TECHSWITCH__STATIC 166 +#define DIPSWITCH3__STATIC 168 +#define ACCESSSWITCH2__STATIC 170 +#define FLOORSLIME__STATIC 200 +#define BIGFORCE__STATIC 230 +#define MASKWALL9__STATIC 255 +#define SCREENBREAK1__STATIC 263 +#define SCREENBREAK2__STATIC 264 +#define SCREENBREAK3__STATIC 265 +#define SCREENBREAK4__STATIC 266 +#define SCREENBREAK5__STATIC 267 +#define SCREENBREAK6__STATIC 268 +#define SCREENBREAK7__STATIC 269 +#define SCREENBREAK8__STATIC 270 +#define SCREENBREAK9__STATIC 271 +#define SCREENBREAK10__STATIC 272 +#define SCREENBREAK11__STATIC 273 +#define SCREENBREAK12__STATIC 274 +#define SCREENBREAK13__STATIC 275 +#define MASKWALL1__STATIC 285 +#define W_TECHWALL1__STATIC 293 +#define W_TECHWALL2__STATIC 297 +#define W_TECHWALL15__STATIC 299 +#define W_TECHWALL3__STATIC 301 +#define W_TECHWALL4__STATIC 305 +#define W_TECHWALL10__STATIC 306 +#define W_TECHWALL16__STATIC 307 +#define WATERTILE2__STATIC 336 +#define BPANNEL1__STATIC 341 +#define PANNEL1__STATIC 342 +#define PANNEL2__STATIC 343 +#define STATIC__STATIC 351 +#define W_SCREENBREAK__STATIC 357 +#define W_HITTECHWALL3__STATIC 360 +#define W_HITTECHWALL4__STATIC 361 +#define W_HITTECHWALL2__STATIC 362 +#define W_HITTECHWALL1__STATIC 363 +#define MASKWALL10__STATIC 387 +#define MASKWALL11__STATIC 391 +#define DOORTILE22__STATIC 395 +#define FANSPRITE__STATIC 407 +#define FANSPRITEBROKE__STATIC 411 +#define FANSHADOW__STATIC 412 +#define FANSHADOWBROKE__STATIC 416 +#define DOORTILE18__STATIC 447 +#define DOORTILE19__STATIC 448 +#define DOORTILE20__STATIC 449 +#define VIEWSCREEN2__STATIC 499 +#define VIEWSCREEN__STATIC 502 +#define GLASS__STATIC 503 +#define GLASS2__STATIC 504 +#define STAINGLASS1__STATIC 510 +#define MASKWALL5__STATIC 514 +#define SATELITE__STATIC 516 +#define FUELPOD__STATIC 517 +#define CRACK1__STATIC 546 +#define CRACK2__STATIC 547 +#define CRACK3__STATIC 548 +#define CRACK4__STATIC 549 +#define FOOTPRINTS__STATIC 550 +#define DOMELITE__STATIC 551 +#define CAMERAPOLE__STATIC 554 +#define CHAIR1__STATIC 556 +#define CHAIR2__STATIC 557 +#define BROKENCHAIR__STATIC 559 +#define MIRROR__STATIC 560 +#define WATERFOUNTAIN__STATIC 563 +#define WATERFOUNTAINBROKE__STATIC 567 +#define FEMMAG1__STATIC 568 +#define TOILET__STATIC 569 +#define STALL__STATIC 571 +#define STALLBROKE__STATIC 573 +#define FEMMAG2__STATIC 577 +#define REACTOR2__STATIC 578 +#define REACTOR2BURNT__STATIC 579 +#define REACTOR2SPARK__STATIC 580 +#define GRATE1__STATIC 595 +#define BGRATE1__STATIC 596 +#define SOLARPANNEL__STATIC 602 +#define NAKED1__STATIC 603 +#define ANTENNA__STATIC 607 +#define MASKWALL12__STATIC 609 +#define TOILETBROKE__STATIC 615 +#define PIPE2__STATIC 616 +#define PIPE1B__STATIC 617 +#define PIPE3__STATIC 618 +#define PIPE1__STATIC 619 +#define CAMERA1__STATIC 621 +#define PIPE2B__STATIC 633 +#define BOLT1__STATIC 634 +#define W_NUMBERS__STATIC 640 +#define WATERDRIP__STATIC 660 +#define WATERBUBBLE__STATIC 661 +#define WATERBUBBLEMAKER__STATIC 662 +#define W_FORCEFIELD__STATIC 663 +#define VACUUM__STATIC 669 +#define FOOTPRINTS2__STATIC 672 +#define FOOTPRINTS3__STATIC 673 +#define FOOTPRINTS4__STATIC 674 +#define EGG__STATIC 675 +#define SCALE__STATIC 678 +#define CHAIR3__STATIC 680 +#define CAMERALIGHT__STATIC 685 +#define MOVIECAMERA__STATIC 686 +#define IVUNIT__STATIC 689 +#define POT1__STATIC 694 +#define POT2__STATIC 695 +#define POT3__STATIC 697 +#define PIPE3B__STATIC 700 +#define WALLLIGHT3__STATIC 701 +#define WALLLIGHTBUST3__STATIC 702 +#define WALLLIGHT1__STATIC 703 +#define WALLLIGHTBUST1__STATIC 704 +#define WALLLIGHT2__STATIC 705 +#define WALLLIGHTBUST2__STATIC 706 +#define LIGHTSWITCH2__STATIC 712 +#define WAITTOBESEATED__STATIC 716 +#define DOORTILE14__STATIC 717 +#define STATUE__STATIC 753 +#define MIKE__STATIC 762 +#define VASE__STATIC 765 +#define SUSHIPLATE1__STATIC 768 +#define SUSHIPLATE2__STATIC 769 +#define SUSHIPLATE3__STATIC 774 +#define SUSHIPLATE4__STATIC 779 +#define DOORTILE16__STATIC 781 +#define SUSHIPLATE5__STATIC 792 +#define OJ__STATIC 806 +#define MASKWALL13__STATIC 830 +#define HURTRAIL__STATIC 859 +#define POWERSWITCH1__STATIC 860 +#define LOCKSWITCH1__STATIC 862 +#define POWERSWITCH2__STATIC 864 +#define ATM__STATIC 867 +#define STATUEFLASH__STATIC 869 +#define ATMBROKE__STATIC 888 +#define STRIPEBALL__STATIC 901 +#define QUEBALL__STATIC 902 +#define POCKET__STATIC 903 +#define WOODENHORSE__STATIC 904 +#define TREE1__STATIC 908 +#define TREE2__STATIC 910 +#define CACTUS__STATIC 911 +#define MASKWALL2__STATIC 913 +#define MASKWALL3__STATIC 914 +#define MASKWALL4__STATIC 915 +#define FIREEXT__STATIC 916 +#define TOILETWATER__STATIC 921 +#define NEON1__STATIC 925 +#define NEON2__STATIC 926 +#define CACTUSBROKE__STATIC 939 +#define BOUNCEMINE__STATIC 940 +#define BROKEFIREHYDRENT__STATIC 950 +#define BOX__STATIC 951 +#define BULLETHOLE__STATIC 952 +#define BOTTLE1__STATIC 954 +#define BOTTLE2__STATIC 955 +#define BOTTLE3__STATIC 956 +#define BOTTLE4__STATIC 957 +#define FEMPIC5__STATIC 963 +#define FEMPIC6__STATIC 964 +#define FEMPIC7__STATIC 965 +#define HYDROPLANT__STATIC 969 +#define OCEANSPRITE1__STATIC 971 +#define OCEANSPRITE2__STATIC 972 +#define OCEANSPRITE3__STATIC 973 +#define OCEANSPRITE4__STATIC 974 +#define OCEANSPRITE5__STATIC 975 +#define GENERICPOLE__STATIC 977 +#define CONE__STATIC 978 +#define HANGLIGHT__STATIC 979 +#define HYDRENT__STATIC 981 +#define MASKWALL14__STATIC 988 +#define TIRE__STATIC 990 +#define PIPE5__STATIC 994 +#define PIPE6__STATIC 995 +#define PIPE4__STATIC 996 +#define PIPE4B__STATIC 997 +#define BROKEHYDROPLANT__STATIC 1003 +#define PIPE5B__STATIC 1005 +#define NEON3__STATIC 1007 +#define NEON4__STATIC 1008 +#define NEON5__STATIC 1009 +#define BOTTLE5__STATIC 1012 +#define BOTTLE6__STATIC 1013 +#define BOTTLE8__STATIC 1014 +#define SPOTLITE__STATIC 1020 +#define MASKWALL15__STATIC 1024 +#define BOTTLE7__STATIC 1025 +#define HORSEONSIDE__STATIC 1026 +#define GLASSPIECES__STATIC 1031 +#define NEON6__STATIC 1046 +#define MASKWALL6__STATIC 1059 +#define RUBBERCAN__STATIC 1062 +#define PLUG__STATIC 1069 +#define OOZFILTER__STATIC 1079 +#define FLOORPLASMA__STATIC 1082 +#define REACTOR__STATIC 1088 +#define REACTORSPARK__STATIC 1092 +#define REACTORBURNT__STATIC 1096 +#define DOORTILE15__STATIC 1102 +#define HANDSWITCH__STATIC 1111 +#define CIRCLEPANNEL__STATIC 1113 +#define CIRCLEPANNELBROKE__STATIC 1114 +#define PULLSWITCH__STATIC 1122 +#define MASKWALL8__STATIC 1124 +#define BIGHOLE__STATIC 1141 +#define ALIENSWITCH__STATIC 1142 +#define DOORTILE21__STATIC 1144 +#define HANDPRINTSWITCH__STATIC 1155 +#define BOTTLE10__STATIC 1157 +#define BOTTLE11__STATIC 1158 +#define BOTTLE12__STATIC 1159 +#define BOTTLE13__STATIC 1160 +#define BOTTLE14__STATIC 1161 +#define BOTTLE15__STATIC 1162 +#define BOTTLE16__STATIC 1163 +#define BOTTLE17__STATIC 1164 +#define BOTTLE18__STATIC 1165 +#define BOTTLE19__STATIC 1166 +#define DOORTILE17__STATIC 1169 +#define MASKWALL7__STATIC 1174 +#define DOORTILE11__STATIC 1178 +#define DOORTILE12__STATIC 1179 +#define VENDMACHINE__STATIC 1212 +#define COLAMACHINE__STATIC 1215 +#define CRANEPOLE__STATIC 1221 +#define CRANE__STATIC 1222 +#define BARBROKE__STATIC 1225 +#define BLOODPOOL__STATIC 1226 +#define NUKEBARREL__STATIC 1227 +#define NUKEBARRELDENTED__STATIC 1228 +#define NUKEBARRELLEAKED__STATIC 1229 +#define CANWITHSOMETHING__STATIC 1232 +#define MONEY__STATIC 1233 +#define BANNER__STATIC 1236 +#define EXPLODINGBARREL__STATIC 1238 +#define EXPLODINGBARREL2__STATIC 1239 +#define FIREBARREL__STATIC 1240 +#define SEENINE__STATIC 1247 +#define SEENINEDEAD__STATIC 1248 +#define STEAM__STATIC 1250 +#define CEILINGSTEAM__STATIC 1255 +#define PIPE6B__STATIC 1260 +#define TRANSPORTERBEAM__STATIC 1261 +#define RAT__STATIC 1267 +#define TRASH__STATIC 1272 +#define FEMPIC1__STATIC 1280 +#define FEMPIC2__STATIC 1289 +#define BLANKSCREEN__STATIC 1293 +#define PODFEM1__STATIC 1294 +#define FEMPIC3__STATIC 1298 +#define FEMPIC4__STATIC 1306 +#define FEM1__STATIC 1312 +#define FEM2__STATIC 1317 +#define FEM3__STATIC 1321 +#define FEM5__STATIC 1323 +#define BLOODYPOLE__STATIC 1324 +#define FEM4__STATIC 1325 +#define FEM6__STATIC 1334 +#define FEM6PAD__STATIC 1335 +#define FEM8__STATIC 1336 +#define HELECOPT__STATIC 1346 +#define FETUSJIB__STATIC 1347 +#define HOLODUKE__STATIC 1348 +#define SPACEMARINE__STATIC 1353 +#define INDY__STATIC 1355 +#define FETUS__STATIC 1358 +#define FETUSBROKE__STATIC 1359 +#define MONK__STATIC 1352 +#define LUKE__STATIC 1354 +#define COOLEXPLOSION1__STATIC 1360 +#define WATERSPLASH2__STATIC 1380 +#define FIREVASE__STATIC 1390 +#define FEM7__STATIC 1395 +#define APLAYERTOP__STATIC 1400 +#define APLAYER__STATIC 1405 +#define PLAYERONWATER__STATIC 1420 +#define DUKELYINGDEAD__STATIC 1518 +#define DUKETORSO__STATIC 1520 +#define DUKEGUN__STATIC 1528 +#define DUKELEG__STATIC 1536 +#define SHARK__STATIC 1550 +#define BLOOD__STATIC 1620 +#define FIRELASER__STATIC 1625 +#define TRANSPORTERSTAR__STATIC 1630 +#define SPIT__STATIC 1636 +#define LOOGIE__STATIC 1637 +#define FIST__STATIC 1640 +#define FREEZEBLAST__STATIC 1641 +#define SHRINKSPARK__STATIC 1646 +#define TONGUE__STATIC 1647 +#define MORTER__STATIC 1650 +#define SHRINKEREXPLOSION__STATIC 1656 +#define RADIUSEXPLOSION__STATIC 1670 +#define FORCERIPPLE__STATIC 1671 +#define LIZTROOP__STATIC 1680 +#define LIZTROOPRUNNING__STATIC 1681 +#define LIZTROOPSTAYPUT__STATIC 1682 +#define LIZTROOPSHOOT__STATIC 1715 +#define LIZTROOPJETPACK__STATIC 1725 +#define LIZTROOPONTOILET__STATIC 1741 +#define LIZTROOPJUSTSIT__STATIC 1742 +#define LIZTROOPDUCKING__STATIC 1744 +#define HEADJIB1__STATIC 1768 +#define ARMJIB1__STATIC 1772 +#define LEGJIB1__STATIC 1776 +#define OCTABRAIN__STATIC 1820 +#define OCTABRAINSTAYPUT__STATIC 1821 +#define INNERJAW__STATIC 1860 +#define DRONE__STATIC 1880 +#define EXPLOSION2__STATIC 1890 +#define COMMANDER__STATIC 1920 +#define COMMANDERSTAYPUT__STATIC 1921 +#define RECON__STATIC 1960 +#define TANK__STATIC 1975 +#define PIGCOP__STATIC 2000 +#define PIGCOPSTAYPUT__STATIC 2001 +#define PIGCOPDIVE__STATIC 2045 +#define LIZMAN__STATIC 2120 +#define LIZMANSTAYPUT__STATIC 2121 +#define LIZMANSPITTING__STATIC 2150 +#define LIZMANFEEDING__STATIC 2160 +#define LIZMANJUMP__STATIC 2165 +#define FECES__STATIC 2200 +#define LIZMANHEAD1__STATIC 2201 +#define LIZMANARM1__STATIC 2205 +#define LIZMANLEG1__STATIC 2209 +#define EXPLOSION2BOT__STATIC 2219 +#define JIBS1__STATIC 2245 +#define JIBS2__STATIC 2250 +#define JIBS3__STATIC 2255 +#define JIBS4__STATIC 2260 +#define JIBS5__STATIC 2265 +#define BURNING__STATIC 2270 +#define FIRE__STATIC 2271 +#define JIBS6__STATIC 2286 +#define BLOODSPLAT1__STATIC 2296 +#define BLOODSPLAT3__STATIC 2297 +#define BLOODSPLAT2__STATIC 2298 +#define BLOODSPLAT4__STATIC 2299 +#define OOZ__STATIC 2300 +#define OOZ2__STATIC 2309 +#define WALLBLOOD1__STATIC 2301 +#define WALLBLOOD2__STATIC 2302 +#define WALLBLOOD3__STATIC 2303 +#define WALLBLOOD4__STATIC 2304 +#define WALLBLOOD5__STATIC 2305 +#define WALLBLOOD7__STATIC 2307 +#define WALLBLOOD8__STATIC 2308 +#define BURNING2__STATIC 2310 +#define FIRE2__STATIC 2311 +#define CRACKKNUCKLES__STATIC 2324 +#define SMALLSMOKE__STATIC 2329 +#define FLOORFLAME__STATIC 2333 +#define ROTATEGUN__STATIC 2360 +#define GREENSLIME__STATIC 2370 +#define WATERDRIPSPLASH__STATIC 2380 +#define SCRAP6__STATIC 2390 +#define SCRAP1__STATIC 2400 +#define SCRAP2__STATIC 2404 +#define SCRAP3__STATIC 2408 +#define SCRAP4__STATIC 2412 +#define SCRAP5__STATIC 2416 +#define ORGANTIC__STATIC 2420 +#define BETAVERSION__STATIC 2440 +#define SELECTDIR__STATIC 2444 +#define F1HELP__STATIC 2445 +#define GROWSPARK__STATIC 2448 +#define MENUSCREEN__STATIC 2456 +#define MENUBAR__STATIC 2457 +#define KILLSICON__STATIC 2458 +#define FIRSTAID_ICON__STATIC 2460 +#define HEAT_ICON__STATIC 2461 +#define BOTTOMSTATUSBAR__STATIC 2462 +#define BOOT_ICON__STATIC 2463 +#define FRAGBAR__STATIC 2465 +#define JETPACK_ICON__STATIC 2467 +#define AIRTANK_ICON__STATIC 2468 +#define STEROIDS_ICON__STATIC 2469 +#define HOLODUKE_ICON__STATIC 2470 +#define ACCESS_ICON__STATIC 2471 +#define DIGITALNUM__STATIC 2472 +#define DUKECAR__STATIC 2491 +#define CAMCORNER__STATIC 2482 +#define CAMLIGHT__STATIC 2484 +#define SLIDEBAR__STATIC 2489 +#define DREALMS__STATIC 2492 +#define BETASCREEN__STATIC 2493 +#define WINDOWBORDER1__STATIC 2494 +#define TEXTBOX__STATIC 2495 +#define WINDOWBORDER2__STATIC 2496 +#define DUKENUKEM__STATIC 2497 +#define THREEDEE__STATIC 2498 +#define INGAMEDUKETHREEDEE__STATIC 2499 +#define TENSCREEN__STATIC 2500 +#define PLUTOPAKSPRITE__STATIC 2501 +#define CREDITSTEXT1__STATIC 2504 +#define CREDITSTEXT2__STATIC 2505 +#define CREDITSTEXT3__STATIC 2506 +#define DEVISTATOR__STATIC 2510 +#define KNEE__STATIC 2521 +#define CROSSHAIR__STATIC 2523 +#define FIRSTGUN__STATIC 2524 +#define FIRSTGUNRELOAD__STATIC 2528 +#define SHELL__STATIC 2533 +#define SHOTGUNSHELL__STATIC 2535 +#define CHAINGUN__STATIC 2536 +#define RPGGUN__STATIC 2544 +#define FREEZE__STATIC 2548 +#define SHRINKER__STATIC 2556 +#define HANDHOLDINGLASER__STATIC 2563 +#define TRIPBOMB__STATIC 2566 +#define LASERLINE__STATIC 2567 +#define HANDHOLDINGACCESS__STATIC 2568 +#define HANDREMOTE__STATIC 2570 +#define HANDTHROW__STATIC 2573 +#define TIP__STATIC 2576 +#define SCUBAMASK__STATIC 2581 +#define FORCESPHERE__STATIC 2590 +#define SHOTSPARK1__STATIC 2595 +#define RPG__STATIC 2605 +#define LASERSITE__STATIC 2612 +#define SHOTGUN__STATIC 2613 +#define BOSS1__STATIC 2630 +#define BOSS1STAYPUT__STATIC 2631 +#define BOSS1SHOOT__STATIC 2660 +#define BOSS1LOB__STATIC 2670 +#define BOSSTOP__STATIC 2696 +#define BOSS2__STATIC 2710 +#define BOSS3__STATIC 2760 +#define SPINNINGNUKEICON__STATIC 2813 +#define SMALLFNTCURSOR__STATIC 2821 +#define STARTALPHANUM__STATIC 2822 +#define ENDALPHANUM__STATIC 2915 +#define BIGALPHANUM__STATIC 2940 +#define BIGPERIOD__STATIC 3002 +#define BIGCOMMA__STATIC 3003 +#define BIGX__STATIC 3004 +#define BIGQ__STATIC 3005 +#define BIGSEMI__STATIC 3006 +#define BIGCOLIN__STATIC 3007 +#define THREEBYFIVE__STATIC 3010 +#define BIGAPPOS__STATIC 3022 +#define MINIFONT__STATIC 3072 +#define RESPAWNMARKERRED__STATIC 3190 +#define RESPAWNMARKERYELLOW__STATIC 3200 +#define RESPAWNMARKERGREEN__STATIC 3210 +#define BONUSSCREEN__STATIC 3240 +#define VIEWBORDER__STATIC 3250 +#define VICTORY1__STATIC 3260 +#define ORDERING__STATIC 3270 +#define TEXTSTORY__STATIC 3280 +#define LOADSCREEN__STATIC 3281 +#define BORNTOBEWILDSCREEN__STATIC 3370 +#define BLIMP__STATIC 3400 +#define FEM9__STATIC 3450 +#define FRAMEEFFECT1_13__STATIC 3999 +#define FRAMEEFFECT1__STATIC 4095 +#define PANNEL3__STATIC 4099 +#define SCREENBREAK14__STATIC 4120 +#define SCREENBREAK15__STATIC 4123 +#define SCREENBREAK19__STATIC 4125 +#define SCREENBREAK16__STATIC 4127 +#define SCREENBREAK17__STATIC 4128 +#define SCREENBREAK18__STATIC 4129 +#define W_TECHWALL11__STATIC 4130 +#define W_TECHWALL12__STATIC 4131 +#define W_TECHWALL13__STATIC 4132 +#define W_TECHWALL14__STATIC 4133 +#define W_TECHWALL5__STATIC 4134 +#define W_TECHWALL6__STATIC 4136 +#define W_TECHWALL7__STATIC 4138 +#define W_TECHWALL8__STATIC 4140 +#define W_TECHWALL9__STATIC 4142 +#define BPANNEL3__STATIC 4100 +#define W_HITTECHWALL16__STATIC 4144 +#define W_HITTECHWALL10__STATIC 4145 +#define W_HITTECHWALL15__STATIC 4147 +#define W_MILKSHELF__STATIC 4181 +#define W_MILKSHELFBROKE__STATIC 4203 +#define PURPLELAVA__STATIC 4240 +#define TARGET__STATIC 4359 +#define DUCK__STATIC 4361 +#define PUKE__STATIC 4389 +#define DOORTILE23__STATIC 4391 +#define SPEAKER__STATIC 4397 +#define MAIL__STATIC 4410 +#define HOTMEAT__STATIC 4427 +#define TRIPODCAMERA__STATIC 4444 +#define PAPER__STATIC 4460 +#define GENERICPOLE2__STATIC 4465 +#define XXXSTACY__STATIC 4470 +#define LETTER__STATIC 4502 +#define SIDEBOLT1__STATIC 4525 +#define FOODOBJECT16__STATIC 4545 +#define TAMPON__STATIC 4557 +#define CANWITHSOMETHING2__STATIC 4580 +#define CANWITHSOMETHING3__STATIC 4581 +#define CANWITHSOMETHING4__STATIC 4582 +#define DOLPHIN1__STATIC 4591 +#define DOLPHIN2__STATIC 4592 +#define NEWBEAST__STATIC 4610 +#define NEWBEASTSTAYPUT__STATIC 4611 +#define BOSS4__STATIC 4740 +#define BOSS4STAYPUT__STATIC 4741 +#define FEM10__STATIC 4864 +#define TOUGHGAL__STATIC 4866 +#define MAN__STATIC 4871 +#define MAN2__STATIC 4872 +#define WOMAN__STATIC 4874 +#define NATURALLIGHTNING__STATIC 4890 +#define WEATHERWARN__STATIC 4893 +#define DUKETAG__STATIC 4900 +#define SIGN1__STATIC 4909 +#define SIGN2__STATIC 4912 +#define JURYGUY__STATIC 4943 + +extern int16_t DynamicTileMap[MAXTILES]; + +void G_InitDynamicTiles(void); + +void G_ProcessDynamicTileMapping(const char *szLabel, int32_t lValue); + +#if !defined LUNATIC +void inithashnames(void); +void freehashnames(void); +#endif + +extern int32_t ACCESS_ICON; +extern int32_t ACCESSCARD; +extern int32_t ACCESSSWITCH; +extern int32_t ACCESSSWITCH2; +extern int32_t ACTIVATOR; +extern int32_t ACTIVATORLOCKED; +extern int32_t AIRTANK; +extern int32_t AIRTANK_ICON; +extern int32_t ALIENSWITCH; +extern int32_t AMMO; +extern int32_t AMMOBOX; +extern int32_t AMMOLOTS; +extern int32_t ANTENNA; +extern int32_t APLAYER; +extern int32_t APLAYERTOP; +extern int32_t ARMJIB1; +extern int32_t ARROW; +extern int32_t ATM; +extern int32_t ATMBROKE; +extern int32_t ATOMICHEALTH; +extern int32_t BANNER; +extern int32_t BARBROKE; +extern int32_t BATTERYAMMO; +extern int32_t BETASCREEN; +extern int32_t BETAVERSION; +extern int32_t BGRATE1; +extern int32_t BIGALPHANUM; +extern int32_t BIGAPPOS; +extern int32_t BIGCOLIN; +extern int32_t BIGCOMMA; +extern int32_t BIGFORCE; +extern int32_t BIGHOLE; +extern int32_t BIGORBIT1; +extern int32_t BIGPERIOD; +extern int32_t BIGQ; +extern int32_t BIGSEMI; +extern int32_t BIGX_; +extern int32_t BLANKSCREEN; +extern int32_t BLIMP; +extern int32_t BLOOD; +extern int32_t BLOODPOOL; +extern int32_t BLOODSPLAT1; +extern int32_t BLOODSPLAT2; +extern int32_t BLOODSPLAT3; +extern int32_t BLOODSPLAT4; +extern int32_t BLOODYPOLE; +extern int32_t BOLT1; +extern int32_t BONUSSCREEN; +extern int32_t BOOT_ICON; +extern int32_t BOOTS; +extern int32_t BORNTOBEWILDSCREEN; +extern int32_t BOSS1; +extern int32_t BOSS1LOB; +extern int32_t BOSS1SHOOT; +extern int32_t BOSS1STAYPUT; +extern int32_t BOSS2; +extern int32_t BOSS3; +extern int32_t BOSS4; +extern int32_t BOSS4STAYPUT; +extern int32_t BOSSTOP; +extern int32_t BOTTLE1; +extern int32_t BOTTLE10; +extern int32_t BOTTLE11; +extern int32_t BOTTLE12; +extern int32_t BOTTLE13; +extern int32_t BOTTLE14; +extern int32_t BOTTLE15; +extern int32_t BOTTLE16; +extern int32_t BOTTLE17; +extern int32_t BOTTLE18; +extern int32_t BOTTLE19; +extern int32_t BOTTLE2; +extern int32_t BOTTLE3; +extern int32_t BOTTLE4; +extern int32_t BOTTLE5; +extern int32_t BOTTLE6; +extern int32_t BOTTLE7; +extern int32_t BOTTLE8; +extern int32_t BOTTOMSTATUSBAR; +extern int32_t BOUNCEMINE; +extern int32_t BOX; +extern int32_t BPANNEL1; +extern int32_t BPANNEL3; +extern int32_t BROKEFIREHYDRENT; +extern int32_t BROKEHYDROPLANT; +extern int32_t BROKENCHAIR; +extern int32_t BULLETHOLE; +extern int32_t BURNING; +extern int32_t BURNING2; +extern int32_t CACTUS; +extern int32_t CACTUSBROKE; +extern int32_t CAMCORNER; +extern int32_t CAMERA1; +extern int32_t CAMERALIGHT; +extern int32_t CAMERAPOLE; +extern int32_t CAMLIGHT; +extern int32_t CANWITHSOMETHING; +extern int32_t CANWITHSOMETHING2; +extern int32_t CANWITHSOMETHING3; +extern int32_t CANWITHSOMETHING4; +extern int32_t CEILINGSTEAM; +extern int32_t CHAINGUN; +extern int32_t CHAINGUNSPRITE; +extern int32_t CHAIR1; +extern int32_t CHAIR2; +extern int32_t CHAIR3; +extern int32_t CIRCLEPANNEL; +extern int32_t CIRCLEPANNELBROKE; +extern int32_t CLOUDYOCEAN; +extern int32_t CLOUDYSKIES; +extern int32_t COLA; +extern int32_t COLAMACHINE; +extern int32_t COMMANDER; +extern int32_t COMMANDERSTAYPUT; +extern int32_t CONE; +extern int32_t COOLEXPLOSION1; +extern int32_t CRACK1; +extern int32_t CRACK2; +extern int32_t CRACK3; +extern int32_t CRACK4; +extern int32_t CRACKKNUCKLES; +extern int32_t CRANE; +extern int32_t CRANEPOLE; +extern int32_t CREDITSTEXT1; +extern int32_t CREDITSTEXT2; +extern int32_t CREDITSTEXT3; +extern int32_t CROSSHAIR; +extern int32_t CRYSTALAMMO; +extern int32_t CYCLER; +extern int32_t DEVISTATOR; +extern int32_t DEVISTATORAMMO; +extern int32_t DEVISTATORSPRITE; +extern int32_t DIGITALNUM; +extern int32_t DIPSWITCH; +extern int32_t DIPSWITCH2; +extern int32_t DIPSWITCH3; +extern int32_t DOLPHIN1; +extern int32_t DOLPHIN2; +extern int32_t DOMELITE; +extern int32_t DOORSHOCK; +extern int32_t DOORTILE1; +extern int32_t DOORTILE10; +extern int32_t DOORTILE11; +extern int32_t DOORTILE12; +extern int32_t DOORTILE14; +extern int32_t DOORTILE15; +extern int32_t DOORTILE16; +extern int32_t DOORTILE17; +extern int32_t DOORTILE18; +extern int32_t DOORTILE19; +extern int32_t DOORTILE2; +extern int32_t DOORTILE20; +extern int32_t DOORTILE21; +extern int32_t DOORTILE22; +extern int32_t DOORTILE23; +extern int32_t DOORTILE3; +extern int32_t DOORTILE4; +extern int32_t DOORTILE5; +extern int32_t DOORTILE6; +extern int32_t DOORTILE7; +extern int32_t DOORTILE8; +extern int32_t DOORTILE9; +extern int32_t DREALMS; +extern int32_t DRONE; +extern int32_t DUCK; +extern int32_t DUKECAR; +extern int32_t DUKEGUN; +extern int32_t DUKELEG; +extern int32_t DUKELYINGDEAD; +extern int32_t DUKENUKEM; +extern int32_t DUKETAG; +extern int32_t DUKETORSO; +extern int32_t EGG; +extern int32_t ENDALPHANUM; +extern int32_t EXPLODINGBARREL; +extern int32_t EXPLODINGBARREL2; +extern int32_t EXPLOSION2; +extern int32_t EXPLOSION2BOT; +extern int32_t F1HELP; +extern int32_t FANSHADOW; +extern int32_t FANSHADOWBROKE; +extern int32_t FANSPRITE; +extern int32_t FANSPRITEBROKE; +extern int32_t FECES; +extern int32_t FEM1; +extern int32_t FEM10; +extern int32_t FEM2; +extern int32_t FEM3; +extern int32_t FEM4; +extern int32_t FEM5; +extern int32_t FEM6; +extern int32_t FEM6PAD; +extern int32_t FEM7; +extern int32_t FEM8; +extern int32_t FEM9; +extern int32_t FEMMAG1; +extern int32_t FEMMAG2; +extern int32_t FEMPIC1; +extern int32_t FEMPIC2; +extern int32_t FEMPIC3; +extern int32_t FEMPIC4; +extern int32_t FEMPIC5; +extern int32_t FEMPIC6; +extern int32_t FEMPIC7; +extern int32_t FETUS; +extern int32_t FETUSBROKE; +extern int32_t FETUSJIB; +extern int32_t FIRE; +extern int32_t FIRE2; +extern int32_t FIREBARREL; +extern int32_t FIREEXT; +extern int32_t FIRELASER; +extern int32_t FIREVASE; +extern int32_t FIRSTAID; +extern int32_t FIRSTAID_ICON; +extern int32_t FIRSTGUN; +extern int32_t FIRSTGUNRELOAD; +extern int32_t FIRSTGUNSPRITE; +extern int32_t FIST; +extern int32_t FLOORFLAME; +extern int32_t FLOORPLASMA; +extern int32_t FLOORSLIME; +extern int32_t FOF; +extern int32_t FOODOBJECT16; +extern int32_t FOOTPRINTS; +extern int32_t FOOTPRINTS2; +extern int32_t FOOTPRINTS3; +extern int32_t FOOTPRINTS4; +extern int32_t FORCERIPPLE; +extern int32_t FORCESPHERE; +extern int32_t FRAGBAR; +extern int32_t FRAMEEFFECT1; +extern int32_t FRAMEEFFECT1_13; +extern int32_t FRANKENSTINESWITCH; +extern int32_t FREEZE; +extern int32_t FREEZEAMMO; +extern int32_t FREEZEBLAST; +extern int32_t FREEZESPRITE; +extern int32_t FUELPOD; +extern int32_t GENERICPOLE; +extern int32_t GENERICPOLE2; +extern int32_t GLASS; +extern int32_t GLASS2; +extern int32_t GLASSPIECES; +extern int32_t GPSPEED; +extern int32_t GRATE1; +extern int32_t GREENSLIME; +extern int32_t GROWAMMO; +extern int32_t GROWSPARK; +extern int32_t GROWSPRITEICON; +extern int32_t HANDHOLDINGACCESS; +extern int32_t HANDHOLDINGLASER; +extern int32_t HANDPRINTSWITCH; +extern int32_t HANDREMOTE; +extern int32_t HANDSWITCH; +extern int32_t HANDTHROW; +extern int32_t HANGLIGHT; +extern int32_t HBOMBAMMO; +extern int32_t HEADJIB1; +extern int32_t HEALTHBOX; +extern int32_t HEAT_ICON; +extern int32_t HEATSENSOR; +extern int32_t HEAVYHBOMB; +extern int32_t HELECOPT; +extern int32_t HOLODUKE; +extern int32_t HOLODUKE_ICON; +extern int32_t HORSEONSIDE; +extern int32_t HOTMEAT; +extern int32_t HURTRAIL; +extern int32_t HYDRENT; +extern int32_t HYDROPLANT; +extern int32_t INDY; +extern int32_t INGAMEDUKETHREEDEE; +extern int32_t INNERJAW; +extern int32_t INVENTORYBOX; +extern int32_t IVUNIT; +extern int32_t JETPACK; +extern int32_t JETPACK_ICON; +extern int32_t JIBS1; +extern int32_t JIBS2; +extern int32_t JIBS3; +extern int32_t JIBS4; +extern int32_t JIBS5; +extern int32_t JIBS6; +extern int32_t JURYGUY; +extern int32_t KILLSICON; +extern int32_t KNEE; +extern int32_t LA; +extern int32_t LASERLINE; +extern int32_t LASERSITE; +extern int32_t LEGJIB1; +extern int32_t LETTER; +extern int32_t LIGHTSWITCH; +extern int32_t LIGHTSWITCH2; +extern int32_t LIZMAN; +extern int32_t LIZMANARM1; +extern int32_t LIZMANFEEDING; +extern int32_t LIZMANHEAD1; +extern int32_t LIZMANJUMP; +extern int32_t LIZMANLEG1; +extern int32_t LIZMANSPITTING; +extern int32_t LIZMANSTAYPUT; +extern int32_t LIZTROOP; +extern int32_t LIZTROOPDUCKING; +extern int32_t LIZTROOPJETPACK; +extern int32_t LIZTROOPJUSTSIT; +extern int32_t LIZTROOPONTOILET; +extern int32_t LIZTROOPRUNNING; +extern int32_t LIZTROOPSHOOT; +extern int32_t LIZTROOPSTAYPUT; +extern int32_t LOADSCREEN; +extern int32_t LOCATORS; +extern int32_t LOCKSWITCH1; +extern int32_t LOOGIE; +extern int32_t LUKE; +extern int32_t MAIL; +extern int32_t MAN; +extern int32_t MAN2; +extern int32_t MASKWALL1; +extern int32_t MASKWALL10; +extern int32_t MASKWALL11; +extern int32_t MASKWALL12; +extern int32_t MASKWALL13; +extern int32_t MASKWALL14; +extern int32_t MASKWALL15; +extern int32_t MASKWALL2; +extern int32_t MASKWALL3; +extern int32_t MASKWALL4; +extern int32_t MASKWALL5; +extern int32_t MASKWALL6; +extern int32_t MASKWALL7; +extern int32_t MASKWALL8; +extern int32_t MASKWALL9; +extern int32_t MASTERSWITCH; +extern int32_t MENUBAR; +extern int32_t MENUSCREEN; +extern int32_t MIKE; +extern int32_t MINIFONT; +extern int32_t MIRROR; +extern int32_t MIRRORBROKE; +extern int32_t MONEY; +extern int32_t MONK; +extern int32_t MOONSKY1; +extern int32_t MORTER; +extern int32_t MOVIECAMERA; +extern int32_t MULTISWITCH; +extern int32_t MUSICANDSFX; +extern int32_t NAKED1; +extern int32_t NATURALLIGHTNING; +extern int32_t NEON1; +extern int32_t NEON2; +extern int32_t NEON3; +extern int32_t NEON4; +extern int32_t NEON5; +extern int32_t NEON6; +extern int32_t NEWBEAST; +extern int32_t NEWBEASTSTAYPUT; +extern int32_t NUKEBARREL; +extern int32_t NUKEBARRELDENTED; +extern int32_t NUKEBARRELLEAKED; +extern int32_t NUKEBUTTON; +extern int32_t OCEANSPRITE1; +extern int32_t OCEANSPRITE2; +extern int32_t OCEANSPRITE3; +extern int32_t OCEANSPRITE4; +extern int32_t OCEANSPRITE5; +extern int32_t OCTABRAIN; +extern int32_t OCTABRAINSTAYPUT; +extern int32_t OJ; +extern int32_t OOZ; +extern int32_t OOZ2; +extern int32_t OOZFILTER; +extern int32_t ORDERING; +extern int32_t ORGANTIC; +extern int32_t PANNEL1; +extern int32_t PANNEL2; +extern int32_t PANNEL3; +extern int32_t PAPER; +extern int32_t PIGCOP; +extern int32_t PIGCOPDIVE; +extern int32_t PIGCOPSTAYPUT; +extern int32_t PIPE1; +extern int32_t PIPE1B; +extern int32_t PIPE2; +extern int32_t PIPE2B; +extern int32_t PIPE3; +extern int32_t PIPE3B; +extern int32_t PIPE4; +extern int32_t PIPE4B; +extern int32_t PIPE5; +extern int32_t PIPE5B; +extern int32_t PIPE6; +extern int32_t PIPE6B; +extern int32_t PLAYERONWATER; +extern int32_t PLUG; +extern int32_t PLUTOPAKSPRITE; +extern int32_t POCKET; +extern int32_t PODFEM1; +extern int32_t POT1; +extern int32_t POT2; +extern int32_t POT3; +extern int32_t POWERSWITCH1; +extern int32_t POWERSWITCH2; +extern int32_t PUKE; +extern int32_t PULLSWITCH; +extern int32_t PURPLELAVA; +extern int32_t QUEBALL; +extern int32_t RADIUSEXPLOSION; +extern int32_t RAT; +extern int32_t REACTOR; +extern int32_t REACTOR2; +extern int32_t REACTOR2BURNT; +extern int32_t REACTOR2SPARK; +extern int32_t REACTORBURNT; +extern int32_t REACTORSPARK; +extern int32_t RECON; +extern int32_t RESPAWN; +extern int32_t RESPAWNMARKERGREEN; +extern int32_t RESPAWNMARKERRED; +extern int32_t RESPAWNMARKERYELLOW; +extern int32_t ROTATEGUN; +extern int32_t RPG; +extern int32_t RPGAMMO; +extern int32_t RPGGUN; +extern int32_t RPGSPRITE; +extern int32_t RUBBERCAN; +extern int32_t SATELITE; +extern int32_t SCALE; +extern int32_t SCRAP1; +extern int32_t SCRAP2; +extern int32_t SCRAP3; +extern int32_t SCRAP4; +extern int32_t SCRAP5; +extern int32_t SCRAP6; +extern int32_t SCREENBREAK1; +extern int32_t SCREENBREAK10; +extern int32_t SCREENBREAK11; +extern int32_t SCREENBREAK12; +extern int32_t SCREENBREAK13; +extern int32_t SCREENBREAK14; +extern int32_t SCREENBREAK15; +extern int32_t SCREENBREAK16; +extern int32_t SCREENBREAK17; +extern int32_t SCREENBREAK18; +extern int32_t SCREENBREAK19; +extern int32_t SCREENBREAK2; +extern int32_t SCREENBREAK3; +extern int32_t SCREENBREAK4; +extern int32_t SCREENBREAK5; +extern int32_t SCREENBREAK6; +extern int32_t SCREENBREAK7; +extern int32_t SCREENBREAK8; +extern int32_t SCREENBREAK9; +extern int32_t SCUBAMASK; +extern int32_t SECTOREFFECTOR; +extern int32_t SEENINE; +extern int32_t SEENINEDEAD; +extern int32_t SELECTDIR; +extern int32_t SHARK; +extern int32_t SHELL; +extern int32_t SHIELD; +extern int32_t SHOTGUN; +extern int32_t SHOTGUNAMMO; +extern int32_t SHOTGUNSHELL; +extern int32_t SHOTGUNSPRITE; +extern int32_t SHOTSPARK1; +extern int32_t SHRINKER; +extern int32_t SHRINKEREXPLOSION; +extern int32_t SHRINKERSPRITE; +extern int32_t SHRINKSPARK; +extern int32_t SIDEBOLT1; +extern int32_t SIGN1; +extern int32_t SIGN2; +extern int32_t SIXPAK; +extern int32_t SLIDEBAR; +extern int32_t SLOTDOOR; +extern int32_t SMALLFNTCURSOR; +extern int32_t SMALLSMOKE; +extern int32_t SOLARPANNEL; +extern int32_t SPACEDOORSWITCH; +extern int32_t SPACELIGHTSWITCH; +extern int32_t SPACEMARINE; +extern int32_t SPEAKER; +extern int32_t SPINNINGNUKEICON; +extern int32_t SPIT; +extern int32_t SPOTLITE; +extern int32_t STAINGLASS1; +extern int32_t STALL; +extern int32_t STALLBROKE; +extern int32_t STARTALPHANUM; +extern int32_t STATIC; +extern int32_t STATUE; +extern int32_t STATUEFLASH; +extern int32_t STEAM; +extern int32_t STEROIDS; +extern int32_t STEROIDS_ICON; +extern int32_t STRIPEBALL; +extern int32_t SUSHIPLATE1; +extern int32_t SUSHIPLATE2; +extern int32_t SUSHIPLATE3; +extern int32_t SUSHIPLATE4; +extern int32_t SUSHIPLATE5; +extern int32_t TAMPON; +extern int32_t TANK; +extern int32_t TARGET; +extern int32_t TECHLIGHT2; +extern int32_t TECHLIGHT4; +extern int32_t TECHLIGHTBUST2; +extern int32_t TECHLIGHTBUST4; +extern int32_t TECHSWITCH; +extern int32_t TENSCREEN; +extern int32_t TEXTBOX; +extern int32_t TEXTSTORY; +extern int32_t THREEBYFIVE; +extern int32_t THREEDEE; +extern int32_t TIP; +extern int32_t TIRE; +extern int32_t TOILET; +extern int32_t TOILETBROKE; +extern int32_t TOILETWATER; +extern int32_t TONGUE; +extern int32_t TOUCHPLATE; +extern int32_t TOUGHGAL; +extern int32_t TRANSPORTERBEAM; +extern int32_t TRANSPORTERSTAR; +extern int32_t TRASH; +extern int32_t TREE1; +extern int32_t TREE2; +extern int32_t TRIPBOMB; +extern int32_t TRIPBOMBSPRITE; +extern int32_t TRIPODCAMERA; +extern int32_t VACUUM; +extern int32_t VASE; +extern int32_t VENDMACHINE; +extern int32_t VICTORY1; +extern int32_t VIEWBORDER; +extern int32_t VIEWSCREEN; +extern int32_t VIEWSCREEN2; +extern int32_t W_FORCEFIELD; +extern int32_t W_HITTECHWALL1; +extern int32_t W_HITTECHWALL10; +extern int32_t W_HITTECHWALL15; +extern int32_t W_HITTECHWALL16; +extern int32_t W_HITTECHWALL2; +extern int32_t W_HITTECHWALL3; +extern int32_t W_HITTECHWALL4; +extern int32_t W_MILKSHELF; +extern int32_t W_MILKSHELFBROKE; +extern int32_t W_NUMBERS; +extern int32_t W_SCREENBREAK; +extern int32_t W_TECHWALL1; +extern int32_t W_TECHWALL10; +extern int32_t W_TECHWALL11; +extern int32_t W_TECHWALL12; +extern int32_t W_TECHWALL13; +extern int32_t W_TECHWALL14; +extern int32_t W_TECHWALL15; +extern int32_t W_TECHWALL16; +extern int32_t W_TECHWALL2; +extern int32_t W_TECHWALL3; +extern int32_t W_TECHWALL4; +extern int32_t W_TECHWALL5; +extern int32_t W_TECHWALL6; +extern int32_t W_TECHWALL7; +extern int32_t W_TECHWALL8; +extern int32_t W_TECHWALL9; +extern int32_t WAITTOBESEATED; +extern int32_t WALLBLOOD1; +extern int32_t WALLBLOOD2; +extern int32_t WALLBLOOD3; +extern int32_t WALLBLOOD4; +extern int32_t WALLBLOOD5; +extern int32_t WALLBLOOD7; +extern int32_t WALLBLOOD8; +extern int32_t WALLLIGHT1; +extern int32_t WALLLIGHT2; +extern int32_t WALLLIGHT3; +extern int32_t WALLLIGHT4; +extern int32_t WALLLIGHTBUST1; +extern int32_t WALLLIGHTBUST2; +extern int32_t WALLLIGHTBUST3; +extern int32_t WALLLIGHTBUST4; +extern int32_t WATERBUBBLE; +extern int32_t WATERBUBBLEMAKER; +extern int32_t WATERDRIP; +extern int32_t WATERDRIPSPLASH; +extern int32_t WATERFOUNTAIN; +extern int32_t WATERFOUNTAINBROKE; +extern int32_t WATERSPLASH2; +extern int32_t WATERTILE2; +extern int32_t WEATHERWARN; +extern int32_t WINDOWBORDER1; +extern int32_t WINDOWBORDER2; +extern int32_t WOMAN; +extern int32_t WOODENHORSE; +extern int32_t XXXSTACY; + +#define DYNAMICTILEMAP(Tilenum) (DynamicTileMap[Tilenum]) + +END_DUKE_NS + +#endif // namesdyn_h__ diff --git a/source/duke3d/src/player.cpp b/source/duke3d/src/player.cpp index 410e2a372..0ecfd9c46 100644 --- a/source/duke3d/src/player.cpp +++ b/source/duke3d/src/player.cpp @@ -1763,10 +1763,10 @@ static void G_DrawTileScaled(int drawX, int drawY, int tileNum, int drawShade, i int drawYOffset = 0; int drawXOffset = 192<<16; - switch (DYNAMICWEAPONMAP(hudweap.cur)) + switch (hudweap.cur) { - case DEVISTATOR_WEAPON__STATIC: - case TRIPBOMB_WEAPON__STATIC: + case DEVISTATOR_WEAPON: + case TRIPBOMB_WEAPON: drawXOffset = 160<<16; break; default: @@ -2257,9 +2257,9 @@ void P_DisplayWeapon(void) int const weaponPal = P_GetHudPal(pPlayer); if (!FURY) - switch (DYNAMICWEAPONMAP(currentWeapon)) + switch (currentWeapon) { - case KNEE_WEAPON__STATIC: + case KNEE_WEAPON: { int const kneePal = P_GetKneePal(pPlayer, weaponPal); @@ -2274,7 +2274,7 @@ void P_DisplayWeapon(void) break; } - case TRIPBOMB_WEAPON__STATIC: + case TRIPBOMB_WEAPON: weaponX += 8; weaponYOffset -= 10; @@ -2292,7 +2292,7 @@ void P_DisplayWeapon(void) weaponPal); break; - case RPG_WEAPON__STATIC: + case RPG_WEAPON: weaponX -= sintable[(768 + ((*weaponFrame) << 7)) & 2047] >> 11; weaponYOffset += sintable[(768 + ((*weaponFrame) << 7)) & 2047] >> 11; @@ -2320,7 +2320,7 @@ void P_DisplayWeapon(void) weaponBits, weaponPal); break; - case SHOTGUN_WEAPON__STATIC: + case SHOTGUN_WEAPON: weaponX -= 8; if (WW2GI) @@ -2427,7 +2427,7 @@ void P_DisplayWeapon(void) } break; - case CHAINGUN_WEAPON__STATIC: + case CHAINGUN_WEAPON: if (*weaponFrame > 0) { weaponYOffset -= sintable[(*weaponFrame)<<7]>>12; @@ -2554,7 +2554,7 @@ void P_DisplayWeapon(void) CHAINGUN, weaponShade, weaponBits, weaponPal); break; - case PISTOL_WEAPON__STATIC: + case PISTOL_WEAPON: if ((*weaponFrame) < PWEAPON(screenpeek, PISTOL_WEAPON, TotalTime)+1) { static uint8_t pistolFrames[] = { 0, 1, 2 }; @@ -2613,7 +2613,7 @@ void P_DisplayWeapon(void) break; - case HANDBOMB_WEAPON__STATIC: + case HANDBOMB_WEAPON: { static uint8_t pipebombFrames [] = { 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2 }; @@ -2663,7 +2663,7 @@ void P_DisplayWeapon(void) } break; - case HANDREMOTE_WEAPON__STATIC: + case HANDREMOTE_WEAPON: { static uint8_t remoteFrames[] = { 0, 1, 1, 2, 1, 1, 0, 0, 0, 0, 0 }; @@ -2676,7 +2676,7 @@ void P_DisplayWeapon(void) } break; - case DEVISTATOR_WEAPON__STATIC: + case DEVISTATOR_WEAPON: if (WW2GI) { if (*weaponFrame) @@ -2761,7 +2761,7 @@ void P_DisplayWeapon(void) } break; - case FREEZE_WEAPON__STATIC: + case FREEZE_WEAPON: if (!(duke3d_globalflags & DUKE3D_NO_WIDESCREEN_PINNING) && DUKE) weaponBits |= 512; @@ -2785,8 +2785,8 @@ void P_DisplayWeapon(void) FREEZE, weaponShade, weaponBits, weaponPal); break; - case GROW_WEAPON__STATIC: - case SHRINKER_WEAPON__STATIC: + case GROW_WEAPON: + case SHRINKER_WEAPON: weaponX += 28; weaponY += 18; @@ -3332,6 +3332,10 @@ access_incs: return 0; } +int16_t WeaponPickupSprites[MAX_WEAPONS] = { KNEE__STATIC, FIRSTGUNSPRITE__STATIC, SHOTGUNSPRITE__STATIC, + CHAINGUNSPRITE__STATIC, RPGSPRITE__STATIC, HEAVYHBOMB__STATIC, SHRINKERSPRITE__STATIC, DEVISTATORSPRITE__STATIC, + TRIPBOMBSPRITE__STATIC, FREEZESPRITE__STATIC, HEAVYHBOMB__STATIC, SHRINKERSPRITE__STATIC + }; // this is used for player deaths void P_DropWeapon(int const playerNum) { @@ -3345,10 +3349,10 @@ void P_DropWeapon(int const playerNum) A_Spawn(pPlayer->i, WeaponPickupSprites[currentWeapon]); #ifndef EDUKE32_STANDALONE else if (!FURY) - switch (DYNAMICWEAPONMAP(PWEAPON(playerNum, currentWeapon, WorksLike))) + switch (PWEAPON(playerNum, currentWeapon, WorksLike)) { - case RPG_WEAPON__STATIC: - case HANDBOMB_WEAPON__STATIC: A_Spawn(pPlayer->i, EXPLOSION2); break; + case RPG_WEAPON: + case HANDBOMB_WEAPON: A_Spawn(pPlayer->i, EXPLOSION2); break; } #endif } @@ -3813,7 +3817,11 @@ void P_FragPlayer(int playerNum) } } +#ifdef LUNATIC +# define PIPEBOMB_CONTROL(playerNum) (g_player[playerNum].ps->pipebombControl) +#else # define PIPEBOMB_CONTROL(playerNum) (Gv_GetVarByLabel("PIPEBOMB_CONTROL", PIPEBOMB_REMOTE, -1, playerNum)) +#endif static void P_ProcessWeapon(int playerNum) { @@ -3972,9 +3980,9 @@ static void P_ProcessWeapon(int playerNum) // this event is deprecated VM_OnEvent(EVENT_FIREWEAPON, pPlayer->i, playerNum); - switch (DYNAMICWEAPONMAP(PWEAPON(playerNum, pPlayer->curr_weapon, WorksLike))) + switch (PWEAPON(playerNum, pPlayer->curr_weapon, WorksLike)) { - case HANDBOMB_WEAPON__STATIC: + case HANDBOMB_WEAPON: pPlayer->hbomb_hold_delay = 0; if (pPlayer->ammo_amount[pPlayer->curr_weapon] > 0) { @@ -3984,7 +3992,7 @@ static void P_ProcessWeapon(int playerNum) } break; - case HANDREMOTE_WEAPON__STATIC: + case HANDREMOTE_WEAPON: pPlayer->hbomb_hold_delay = 0; (*weaponFrame) = 1; if (PWEAPON(playerNum, pPlayer->curr_weapon, InitialSound) > 0) @@ -3992,7 +4000,7 @@ static void P_ProcessWeapon(int playerNum) break; - case TRIPBOMB_WEAPON__STATIC: + case TRIPBOMB_WEAPON: if (pPlayer->ammo_amount[pPlayer->curr_weapon] > 0) { hitdata_t hitData; @@ -4037,13 +4045,13 @@ static void P_ProcessWeapon(int playerNum) } break; - case PISTOL_WEAPON__STATIC: - case SHOTGUN_WEAPON__STATIC: - case CHAINGUN_WEAPON__STATIC: - case SHRINKER_WEAPON__STATIC: - case GROW_WEAPON__STATIC: - case FREEZE_WEAPON__STATIC: - case RPG_WEAPON__STATIC: + case PISTOL_WEAPON: + case SHOTGUN_WEAPON: + case CHAINGUN_WEAPON: + case SHRINKER_WEAPON: + case GROW_WEAPON: + case FREEZE_WEAPON: + case RPG_WEAPON: if (pPlayer->ammo_amount[pPlayer->curr_weapon] > 0) { (*weaponFrame) = 1; @@ -4052,7 +4060,7 @@ static void P_ProcessWeapon(int playerNum) } break; - case DEVISTATOR_WEAPON__STATIC: + case DEVISTATOR_WEAPON: if (pPlayer->ammo_amount[pPlayer->curr_weapon] > 0) { (*weaponFrame) = 1; @@ -4062,7 +4070,7 @@ static void P_ProcessWeapon(int playerNum) } break; - case KNEE_WEAPON__STATIC: + case KNEE_WEAPON: if (pPlayer->quick_kick == 0) { (*weaponFrame) = 1; diff --git a/source/duke3d/src/player.h b/source/duke3d/src/player.h index 9023fe93d..0bf261bb3 100644 --- a/source/duke3d/src/player.h +++ b/source/duke3d/src/player.h @@ -131,7 +131,7 @@ typedef struct { uint8_t extbits; } input_t; -//#pragma pack(push,1) +#pragma pack(push,1) // XXX: r1625 changed a lot types here, among others // * int32_t --> int16_t // * int16_t --> int8_t @@ -152,7 +152,13 @@ typedef struct { int32_t autostep, autostep_sbw; uint32_t interface_toggle; +#ifdef LUNATIC + int32_t pipebombControl, pipebombLifetime, pipebombLifetimeVar; + int32_t tripbombControl, tripbombLifetime, tripbombLifetimeVar; + int32_t zrange; + int16_t angrange, autoaimang; +#endif uint16_t max_actors_killed, actors_killed; uint16_t gotweapon, zoom; @@ -204,7 +210,16 @@ typedef struct { int8_t last_used_weapon; +#ifdef LUNATIC + int8_t palsfadespeed, palsfadenext, palsfadeprio, padding2_; + + // The player index. Always valid since we have no loose DukePlayer_t's + // anywhere (like with spritetype_t): g_player[i].ps->wa.idx == i. + struct { int32_t idx; } wa; +#endif + int8_t crouch_toggle; + int8_t padding_[1]; } DukePlayer_t; // KEEPINSYNC lunatic/_defs_game.lua @@ -224,7 +239,7 @@ typedef struct { char user_name[32]; uint32_t revision; } playerdata_t; -//#pragma pack(pop) +#pragma pack(pop) // KEEPINSYNC lunatic/con_lang.lua typedef struct @@ -277,11 +292,7 @@ extern intptr_t *aplWeaponSelectSound[MAX_WEAPONS]; // Sound for wea extern intptr_t *aplWeaponFlashColor[MAX_WEAPONS]; // Color for polymer muzzle flash #endif -// is referenced by shared code so it needs to be in the shared namespace. -END_DUKE_NS -BEGIN_DUKERR_NS -struct projectile_t -{ +typedef struct { int32_t workslike, cstat; // 8b int32_t hitradius, range, flashcolor; // 12b int16_t spawns, sound, isound, vel; // 8b @@ -295,10 +306,7 @@ struct projectile_t uint8_t clipdist; // 1b int8_t filler[2]; // 2b int32_t userdata; // 4b -}; - -END_DUKERR_NS -BEGIN_DUKE_NS +} projectile_t; // KEEPINSYNC lunatic/_defs_game.lua typedef struct { @@ -311,6 +319,7 @@ typedef struct { extern input_t inputfifo[MOVEFIFOSIZ][MAXPLAYERS]; extern playerspawn_t g_playerSpawnPoints[MAXPLAYERS]; extern playerdata_t *const g_player; +extern int16_t WeaponPickupSprites[MAX_WEAPONS]; extern hudweapon_t hudweap; extern int32_t g_levelTextTime; extern int32_t g_numObituaries; diff --git a/source/duke3d/src/premap.cpp b/source/duke3d/src/premap.cpp index 16f9fc760..cadec65f9 100644 --- a/source/duke3d/src/premap.cpp +++ b/source/duke3d/src/premap.cpp @@ -37,8 +37,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. BEGIN_DUKE_NS -extern void G_SetupGlobalPsky(void); - static uint8_t precachehightile[2][(MAXTILES+7)>>3]; static int32_t g_precacheCount; diff --git a/source/dukerr/quotes.h b/source/duke3d/src/quotes.h similarity index 100% rename from source/dukerr/quotes.h rename to source/duke3d/src/quotes.h diff --git a/source/duke3d/src/sector.cpp b/source/duke3d/src/sector.cpp index 61456cced..376944cce 100644 --- a/source/duke3d/src/sector.cpp +++ b/source/duke3d/src/sector.cpp @@ -2793,9 +2793,9 @@ CHECKINV1: { // this accounts for the expander when handling next/previous - switch (DYNAMICWEAPONMAP(currentWeapon)) + switch (currentWeapon) { - case DEVISTATOR_WEAPON__STATIC: + case DEVISTATOR_WEAPON: if ((int32_t) weaponNum == -1) { if (PLUTOPAK) @@ -2807,11 +2807,11 @@ CHECKINV1: currentWeapon++; break; - case GROW_WEAPON__STATIC: + case GROW_WEAPON: currentWeapon = ((int32_t) weaponNum == -1) ? SHRINKER_WEAPON : DEVISTATOR_WEAPON; break; - case SHRINKER_WEAPON__STATIC: + case SHRINKER_WEAPON: if ((int32_t)weaponNum == 1) { if (PLUTOPAK) @@ -2823,7 +2823,7 @@ CHECKINV1: currentWeapon--; break; - case HANDREMOTE_WEAPON__STATIC: + case HANDREMOTE_WEAPON: i = currentWeapon = HANDBOMB_WEAPON; fallthrough__; default: @@ -2857,12 +2857,12 @@ CHECKINV1: if (weaponNum >= 12) // alt weapon, last used weapon { uint32_t const weaponNumSwitch = weaponNum == 13 ? pPlayer->last_used_weapon : pPlayer->curr_weapon; - switch (DYNAMICWEAPONMAP(weaponNumSwitch)) + switch (weaponNumSwitch) { - case HANDREMOTE_WEAPON__STATIC: + case HANDREMOTE_WEAPON: weaponNum = HANDBOMB_WEAPON; break; - case GROW_WEAPON__STATIC: + case GROW_WEAPON: weaponNum = SHRINKER_WEAPON; break; default: @@ -2918,28 +2918,28 @@ CHECKINV1: pPlayer->weapon_pos = WEAPON_POS_LOWER; } else if ((uint32_t)weaponNum < MAX_WEAPONS && (pPlayer->gotweapon & (1<curr_weapon != weaponNum) - switch (DYNAMICWEAPONMAP(weaponNum)) + switch (weaponNum) { - case PISTOL_WEAPON__STATIC: - case SHOTGUN_WEAPON__STATIC: - case CHAINGUN_WEAPON__STATIC: - case RPG_WEAPON__STATIC: - case DEVISTATOR_WEAPON__STATIC: - case FREEZE_WEAPON__STATIC: - case GROW_WEAPON__STATIC: - case SHRINKER_WEAPON__STATIC: + case PISTOL_WEAPON: + case SHOTGUN_WEAPON: + case CHAINGUN_WEAPON: + case RPG_WEAPON: + case DEVISTATOR_WEAPON: + case FREEZE_WEAPON: + case GROW_WEAPON: + case SHRINKER_WEAPON: if (pPlayer->ammo_amount[weaponNum] == 0 && pPlayer->show_empty_weapon == 0) { pPlayer->last_full_weapon = pPlayer->curr_weapon; pPlayer->show_empty_weapon = 32; } fallthrough__; - case KNEE_WEAPON__STATIC: - case HANDREMOTE_WEAPON__STATIC: + case KNEE_WEAPON: + case HANDREMOTE_WEAPON: P_AddWeapon(pPlayer, weaponNum, 1); break; - case HANDBOMB_WEAPON__STATIC: - case TRIPBOMB_WEAPON__STATIC: + case HANDBOMB_WEAPON: + case TRIPBOMB_WEAPON: if (pPlayer->ammo_amount[weaponNum] > 0 && (pPlayer->gotweapon & (1<= MAXSOUNDS || !szLabel) + return; + + int const i = hash_find(&h_names,szLabel); + + if (i>=0) + { + struct dynitem *di = &g_dynSoundList[i]; +#ifdef DEBUGGINGAIDS + if (g_scriptDebug && di->staticval != lValue) + OSD_Printf("REMAP %s (%d) --> %d\n", di->str, di->staticval, lValue); +#endif + *di->dynvalptr = lValue; + } +} + +void initsoundhashnames(void) +{ + hash_init(&h_names); + + for (int i=0; i < ARRAY_SSIZE(g_dynSoundList); i++) + hash_add(&h_names, g_dynSoundList[i].str, i, 0); +} + +void freesoundhashnames(void) +{ + hash_free(&h_names); +} +#endif +#endif + +// This is run after all CON define's have been processed to set up the +// dynamic->static sound mapping. +void G_InitDynamicSounds(void) +{ + Bmemset(DynamicSoundMap, 0, sizeof(DynamicSoundMap)); + + for (auto & i : g_dynSoundList) +#ifdef DYNSOUNDREMAP_ENABLE + DynamicSoundMap[*(i.dynvalptr)] = i.staticval; +#else + DynamicSoundMap[i.staticval] = i.staticval; +#endif + +} +END_DUKE_NS diff --git a/source/duke3d/src/soundsdyn.h b/source/duke3d/src/soundsdyn.h new file mode 100644 index 000000000..72e65da91 --- /dev/null +++ b/source/duke3d/src/soundsdyn.h @@ -0,0 +1,338 @@ +//------------------------------------------------------------------------- +/* +Copyright (C) 2013 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 soundsdyn_h__ +#define soundsdyn_h__ + +BEGIN_DUKE_NS + +#define DYNSOUNDREMAP_ENABLE + + +#define KICK_HIT__STATIC 0 +#define PISTOL_RICOCHET__STATIC 1 +#define PISTOL_BODYHIT__STATIC 2 +#define PISTOL_FIRE__STATIC 3 +#define EJECT_CLIP__STATIC 4 +#define INSERT_CLIP__STATIC 5 +#define CHAINGUN_FIRE__STATIC 6 +#define RPG_SHOOT__STATIC 7 +#define POOLBALLHIT__STATIC 8 +#define RPG_EXPLODE__STATIC 9 +#define CAT_FIRE__STATIC 10 +#define SHRINKER_FIRE__STATIC 11 +#define PIPEBOMB_BOUNCE__STATIC 13 +#define PIPEBOMB_EXPLODE__STATIC 14 +#define LASERTRIP_ONWALL__STATIC 15 +#define LASERTRIP_ARMING__STATIC 16 +#define LASERTRIP_EXPLODE__STATIC 17 +#define VENT_BUST__STATIC 18 +#define GLASS_BREAKING__STATIC 19 +#define GLASS_HEAVYBREAK__STATIC 20 +#define SHORT_CIRCUIT__STATIC 21 +#define ITEM_SPLASH__STATIC 22 +#define DUKE_GASP__STATIC 25 +#define SLIM_RECOG__STATIC 26 +#define DUKE_URINATE__STATIC 28 +#define ENDSEQVOL3SND2__STATIC 29 +#define ENDSEQVOL3SND3__STATIC 30 +#define DUKE_CRACK__STATIC 33 +#define SLIM_ATTACK__STATIC 34 +#define SOMETHINGHITFORCE__STATIC 35 +#define DUKE_DRINKING__STATIC 36 +#define DUKE_GRUNT__STATIC 38 +#define DUKE_HARTBEAT__STATIC 39 +#define DUKE_ONWATER__STATIC 40 +#define DUKE_LAND__STATIC 42 +#define DUKE_WALKINDUCTS__STATIC 43 +#define DUKE_UNDERWATER__STATIC 48 +#define DUKE_JETPACK_ON__STATIC 49 +#define DUKE_JETPACK_IDLE__STATIC 50 +#define DUKE_JETPACK_OFF__STATIC 51 +#define DUKETALKTOBOSS__STATIC 56 +#define SQUISHED__STATIC 69 +#define TELEPORTER__STATIC 70 +#define ELEVATOR_ON__STATIC 71 +#define ELEVATOR_OFF__STATIC 73 +#define SUBWAY__STATIC 75 +#define SWITCH_ON__STATIC 76 +#define FLUSH_TOILET__STATIC 79 +#define EARTHQUAKE__STATIC 81 +#define END_OF_LEVEL_WARN__STATIC 83 +#define WIND_AMBIENCE__STATIC 91 +#define SOMETHING_DRIPPING__STATIC 92 +#define BOS1_RECOG__STATIC 97 +#define BOS2_RECOG__STATIC 102 +#define DUKE_GETWEAPON2__STATIC 107 +#define SHOTGUN_FIRE__STATIC 109 +#define PRED_RECOG__STATIC 111 +#define CAPT_RECOG__STATIC 117 +#define PIG_RECOG__STATIC 121 +#define RECO_ROAM__STATIC 125 +#define RECO_RECOG__STATIC 126 +#define RECO_ATTACK__STATIC 127 +#define RECO_PAIN__STATIC 128 +#define DRON_RECOG__STATIC 131 +#define COMM_RECOG__STATIC 136 +#define OCTA_RECOG__STATIC 141 +#define TURR_RECOG__STATIC 146 +#define SLIM_DYING__STATIC 149 +#define BOS3_RECOG__STATIC 151 +#define BOS1_WALK__STATIC 156 +#define THUD__STATIC 158 +#define WIERDSHOT_FLY__STATIC 160 +#define SLIM_ROAM__STATIC 163 +#define SHOTGUN_COCK__STATIC 169 +#define GENERIC_AMBIENCE17__STATIC 177 +#define BONUS_SPEECH1__STATIC 195 +#define BONUS_SPEECH2__STATIC 196 +#define BONUS_SPEECH3__STATIC 197 +#define BONUS_SPEECH4__STATIC 199 +#define DUKE_LAND_HURT__STATIC 200 +#define DUKE_SEARCH2__STATIC 207 +#define DUKE_CRACK2__STATIC 208 +#define DUKE_SEARCH__STATIC 209 +#define DUKE_GET__STATIC 210 +#define DUKE_LONGTERM_PAIN__STATIC 211 +#define MONITOR_ACTIVE__STATIC 212 +#define NITEVISION_ONOFF__STATIC 213 +#define DUKE_CRACK_FIRST__STATIC 215 +#define DUKE_USEMEDKIT__STATIC 216 +#define DUKE_TAKEPILLS__STATIC 217 +#define DUKE_PISSRELIEF__STATIC 218 +#define SELECT_WEAPON__STATIC 219 +#define JIBBED_ACTOR5__STATIC 226 +#define JIBBED_ACTOR6__STATIC 227 +#define DUKE_GOTHEALTHATLOW__STATIC 229 +#define BOSSTALKTODUKE__STATIC 230 +#define WAR_AMBIENCE2__STATIC 232 +#define EXITMENUSOUND__STATIC 243 +#define FLY_BY__STATIC 244 +#define DUKE_SCREAM__STATIC 245 +#define SHRINKER_HIT__STATIC 246 +#define RATTY__STATIC 247 +#define BONUSMUSIC__STATIC 249 +#define DUKE_GETWEAPON6__STATIC 264 +#define ALIEN_SWITCH1__STATIC 272 +#define RIPHEADNECK__STATIC 284 +#define ENDSEQVOL3SND4__STATIC 288 +#define ENDSEQVOL3SND5__STATIC 289 +#define ENDSEQVOL3SND6__STATIC 290 +#define ENDSEQVOL3SND7__STATIC 291 +#define ENDSEQVOL3SND8__STATIC 292 +#define ENDSEQVOL3SND9__STATIC 293 +#define WHIPYOURASS__STATIC 294 +#define ENDSEQVOL2SND1__STATIC 295 +#define ENDSEQVOL2SND2__STATIC 296 +#define ENDSEQVOL2SND3__STATIC 297 +#define ENDSEQVOL2SND4__STATIC 298 +#define ENDSEQVOL2SND5__STATIC 299 +#define ENDSEQVOL2SND6__STATIC 300 +#define ENDSEQVOL2SND7__STATIC 301 +#define SOMETHINGFROZE__STATIC 303 +#define WIND_REPEAT__STATIC 308 +#define BOS4_RECOG__STATIC 342 +#define LIGHTNING_SLAP__STATIC 351 +#define THUNDER__STATIC 352 +#define INTRO4_1__STATIC 363 +#define INTRO4_2__STATIC 364 +#define INTRO4_3__STATIC 365 +#define INTRO4_4__STATIC 366 +#define INTRO4_5__STATIC 367 +#define INTRO4_6__STATIC 368 +#define BOSS4_DEADSPEECH__STATIC 370 +#define BOSS4_FIRSTSEE__STATIC 371 +#define VOL4ENDSND1__STATIC 384 +#define VOL4ENDSND2__STATIC 385 +#define EXPANDERSHOOT__STATIC 388 +#define INTRO4_B__STATIC 392 +#define BIGBANG__STATIC 393 + +extern int16_t DynamicSoundMap[MAXSOUNDS]; + +void G_InitDynamicSounds(void); + +#ifdef DYNSOUNDREMAP_ENABLE + +void G_ProcessDynamicSoundMapping(const char *szLabel, int32_t lValue); + +#if !defined LUNATIC +void initsoundhashnames(void); +void freesoundhashnames(void); +#endif + +extern int32_t ALIEN_SWITCH1; +extern int32_t BIGBANG; +extern int32_t BONUS_SPEECH1; +extern int32_t BONUS_SPEECH2; +extern int32_t BONUS_SPEECH3; +extern int32_t BONUS_SPEECH4; +extern int32_t BONUSMUSIC; +extern int32_t BOS1_RECOG; +extern int32_t BOS1_WALK; +extern int32_t BOS2_RECOG; +extern int32_t BOS3_RECOG; +extern int32_t BOS4_RECOG; +extern int32_t BOSS4_DEADSPEECH; +extern int32_t BOSS4_FIRSTSEE; +extern int32_t BOSSTALKTODUKE; +extern int32_t CAPT_RECOG; +extern int32_t CAT_FIRE; +extern int32_t CHAINGUN_FIRE; +extern int32_t COMM_RECOG; +extern int32_t DRON_RECOG; +extern int32_t DUKE_CRACK; +extern int32_t DUKE_CRACK_FIRST; +extern int32_t DUKE_CRACK2; +extern int32_t DUKE_DRINKING; +extern int32_t DUKE_GASP; +extern int32_t DUKE_GET; +extern int32_t DUKE_GETWEAPON2; +extern int32_t DUKE_GETWEAPON6; +extern int32_t DUKE_GOTHEALTHATLOW; +extern int32_t DUKE_GRUNT; +extern int32_t DUKE_HARTBEAT; +extern int32_t DUKE_JETPACK_IDLE; +extern int32_t DUKE_JETPACK_OFF; +extern int32_t DUKE_JETPACK_ON; +extern int32_t DUKE_LAND; +extern int32_t DUKE_LAND_HURT; +extern int32_t DUKE_LONGTERM_PAIN; +extern int32_t DUKE_ONWATER; +extern int32_t DUKE_PISSRELIEF; +extern int32_t DUKE_SCREAM; +extern int32_t DUKE_SEARCH; +extern int32_t DUKE_SEARCH2; +extern int32_t DUKE_TAKEPILLS; +extern int32_t DUKE_UNDERWATER; +extern int32_t DUKE_URINATE; +extern int32_t DUKE_USEMEDKIT; +extern int32_t DUKE_WALKINDUCTS; +extern int32_t DUKETALKTOBOSS; +extern int32_t EARTHQUAKE; +extern int32_t EJECT_CLIP; +extern int32_t ELEVATOR_OFF; +extern int32_t ELEVATOR_ON; +extern int32_t END_OF_LEVEL_WARN; +extern int32_t ENDSEQVOL2SND1; +extern int32_t ENDSEQVOL2SND2; +extern int32_t ENDSEQVOL2SND3; +extern int32_t ENDSEQVOL2SND4; +extern int32_t ENDSEQVOL2SND5; +extern int32_t ENDSEQVOL2SND6; +extern int32_t ENDSEQVOL2SND7; +extern int32_t ENDSEQVOL3SND2; +extern int32_t ENDSEQVOL3SND3; +extern int32_t ENDSEQVOL3SND4; +extern int32_t ENDSEQVOL3SND5; +extern int32_t ENDSEQVOL3SND6; +extern int32_t ENDSEQVOL3SND7; +extern int32_t ENDSEQVOL3SND8; +extern int32_t ENDSEQVOL3SND9; +extern int32_t EXITMENUSOUND; +extern int32_t EXPANDERSHOOT; +extern int32_t FLUSH_TOILET; +extern int32_t FLY_BY; +extern int32_t GENERIC_AMBIENCE17; +extern int32_t GLASS_BREAKING; +extern int32_t GLASS_HEAVYBREAK; +extern int32_t INSERT_CLIP; +extern int32_t INTRO4_1; +extern int32_t INTRO4_2; +extern int32_t INTRO4_3; +extern int32_t INTRO4_4; +extern int32_t INTRO4_5; +extern int32_t INTRO4_6; +extern int32_t INTRO4_B; +extern int32_t ITEM_SPLASH; +extern int32_t JIBBED_ACTOR5; +extern int32_t JIBBED_ACTOR6; +extern int32_t KICK_HIT; +extern int32_t LASERTRIP_ARMING; +extern int32_t LASERTRIP_EXPLODE; +extern int32_t LASERTRIP_ONWALL; +extern int32_t LIGHTNING_SLAP; +extern int32_t MONITOR_ACTIVE; +extern int32_t NITEVISION_ONOFF; +extern int32_t OCTA_RECOG; +extern int32_t PIG_RECOG; +extern int32_t PIPEBOMB_BOUNCE; +extern int32_t PIPEBOMB_EXPLODE; +extern int32_t PISTOL_BODYHIT; +extern int32_t PISTOL_FIRE; +extern int32_t PISTOL_RICOCHET; +extern int32_t POOLBALLHIT; +extern int32_t PRED_RECOG; +extern int32_t RATTY; +extern int32_t RECO_ATTACK; +extern int32_t RECO_PAIN; +extern int32_t RECO_RECOG; +extern int32_t RECO_ROAM; +extern int32_t RIPHEADNECK; +extern int32_t RPG_EXPLODE; +extern int32_t RPG_SHOOT; +extern int32_t SELECT_WEAPON; +extern int32_t SHORT_CIRCUIT; +extern int32_t SHOTGUN_COCK; +extern int32_t SHOTGUN_FIRE; +extern int32_t SHRINKER_FIRE; +extern int32_t SHRINKER_HIT; +extern int32_t SLIM_ATTACK; +extern int32_t SLIM_DYING; +extern int32_t SLIM_RECOG; +extern int32_t SLIM_ROAM; +extern int32_t SOMETHING_DRIPPING; +extern int32_t SOMETHINGFROZE; +extern int32_t SOMETHINGHITFORCE; +extern int32_t SQUISHED; +extern int32_t SUBWAY; +extern int32_t SWITCH_ON; +extern int32_t TELEPORTER; +extern int32_t THUD; +extern int32_t THUNDER; +extern int32_t TURR_RECOG; +extern int32_t VENT_BUST; +extern int32_t VOL4ENDSND1; +extern int32_t VOL4ENDSND2; +extern int32_t WAR_AMBIENCE2; +extern int32_t WHIPYOURASS; +extern int32_t WIERDSHOT_FLY; +extern int32_t WIND_AMBIENCE; +extern int32_t WIND_REPEAT; + +#define DYNAMICSOUNDMAP(Soundnum) (DynamicSoundMap[Soundnum]) + +#else /* if !defined DYNSOUNDREMAP_ENABLE */ + +#define G_ProcessDynamicSoundMapping(x, y) ((void)(0)) + +#define initsoundhashnames() ((void)0) +#define freesoundhashnames() ((void)0) + +#include "soundefs.h" + +#define DYNAMICSOUNDMAP(Soundnum) (Soundnum) + +#endif + +END_DUKE_NS + +#endif // soundsdyn_h__ diff --git a/source/dukerr/actors.h b/source/dukerr/actors.h deleted file mode 100644 index 4d960e55b..000000000 --- a/source/dukerr/actors.h +++ /dev/null @@ -1,240 +0,0 @@ -//------------------------------------------------------------------------- -/* -Copyright (C) 2010 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 __actors_h_ -#define __actors_h_ - -BEGIN_DUKERR_NS - -#define MAXSLEEPDIST 16384 -#define SLEEPTIME 1536 -#define ACTOR_FLOOR_OFFSET (1<<8) -#define ZOFFSET (1<<8) -#define ZOFFSET2 (16<<8) -#define ZOFFSET3 (8<<8) -#define ZOFFSET4 (12<<8) -#define ZOFFSET5 (32<<8) -#define ZOFFSET6 (4<<8) - -#define ACTOR_MAXFALLINGZVEL 6144 -#define ACTOR_ONWATER_ADDZ (24<<8) - -// KEEPINSYNC lunatic/con_lang.lua -#define STAT_DEFAULT 0 -#define STAT_ACTOR 1 -#define STAT_ZOMBIEACTOR 2 -#define STAT_EFFECTOR 3 -#define STAT_PROJECTILE 4 -#define STAT_MISC 5 -#define STAT_STANDABLE 6 -#define STAT_LOCATOR 7 -#define STAT_ACTIVATOR 8 -#define STAT_TRANSPORT 9 -#define STAT_PLAYER 10 -#define STAT_FX 11 -#define STAT_FALLER 12 -#define STAT_DUMMYPLAYER 13 -#define STAT_LIGHT 14 -#define STAT_RAROR 15 -#define STAT_NETALLOC (MAXSTATUS-1) - - -// Defines the motion characteristics of an actor -enum amoveflags_t -{ - face_player = 1, - geth = 2, - getv = 4, - random_angle = 8, - face_player_slow = 16, - spin = 32, - face_player_smart = 64, - fleeenemy = 128, - jumptoplayer_only = 256, - jumptoplayer_bits = 257, // NOTE: two bits set! - seekplayer = 512, - furthestdir = 1024, - dodgebullet = 4096, - justjump2 = 8192, - windang = 16384, - antifaceplayerslow = 32768 -}; - -// Defines for 'useractor' keyword -enum uactortypes_t -{ - notenemy, - enemy, - enemystayput -}; - -// These macros are there to give names to the t_data[]/T*/vm.g_t[] indices -// when used with actors. Greppability of source code is certainly a virtue. -#define AC_COUNT(t) ((t)[0]) /* the actor's count */ -/* The ID of the actor's current move. In C-CON, the bytecode offset to the - * move composite: */ -#define AC_MOVE_ID(t) ((t)[1]) -#define AC_ACTION_COUNT(t) ((t)[2]) /* the actor's action count */ -#define AC_CURFRAME(t) ((t)[3]) /* the actor's current frame offset */ -/* The ID of the actor's current action. In C-CON, the bytecode offset to the - * action composite: */ -#define AC_ACTION_ID(t) ((t)[4]) -#define AC_AI_ID(t) ((t)[5]) /* the ID of the actor's current ai */ - -enum actionparams -{ - ACTION_STARTFRAME = 0, - ACTION_NUMFRAMES, - ACTION_VIEWTYPE, - ACTION_INCVAL, - ACTION_DELAY, - ACTION_FLAGS, - ACTION_PARAM_COUNT, -}; - -enum actionflags -{ - AF_VIEWPOINT = 1u<<0u, -}; - -// Select an actor's actiontics and movflags locations depending on -// whether we compile the Lunatic build. -// : sprite pointer -// : actor_t pointer -# define AC_ACTIONTICS(spr, a) ((spr)->lotag) -# define AC_MOVFLAGS(spr, a) ((spr)->hitag) - -// (+ 40 16 16 4 8 6 8 6 4 20) -#pragma pack(push, 1) -struct actor_t -{ - int32_t t_data[10]; // 40b sometimes used to hold offsets to con code - - int32_t flags; // 4b - vec3_t bpos; // 12b - int32_t floorz, ceilingz; // 8b - vec2_t lastv; // 8b - int16_t picnum, ang, extra, owner; // 8b - int16_t movflag, tempang, timetosleep; // 6b - int16_t stayput; // 2b - - uint8_t cgg, lasttransport; // 2b - // NOTE: 'dispicnum' is updated every frame, not in sync with game tics! - int16_t dispicnum; // 2b - -#ifdef POLYMER - int16_t lightId, lightmaxrange; // 4b - _prlight *lightptr; // 4b/8b aligned on 96 bytes - uint8_t lightcount, filler[3]; -#endif -}; - -#pragma pack(pop) - -struct projectile_t; - -struct tiledata_t -{ - intptr_t *execPtr; // pointer to CON script for this tile, formerly actorscrptr - intptr_t *loadPtr; // pointer to load time CON script, formerly actorLoadEventScrPtr or something - projectile_t *proj; - projectile_t *defproj; - uint32_t flags; // formerly SpriteFlags, ActorType - int32_t cacherange; // formerly SpriteCache -}; - - -// KEEPINSYNC lunatic/con_lang.lua -enum sflags_t -{ - SFLAG_SHADOW = 0x00000001, - SFLAG_NVG = 0x00000002, - SFLAG_NOSHADE = 0x00000004, - SFLAG_PROJECTILE = 0x00000008, - SFLAG_DECAL = 0x00000010, - SFLAG_BADGUY = 0x00000020, - SFLAG_NOPAL = 0x00000040, - SFLAG_NOEVENTCODE = 0x00000080, - SFLAG_NOLIGHT = 0x00000100, - SFLAG_USEACTIVATOR = 0x00000200, - SFLAG_NULL = 0x00000400, // null sprite in multiplayer - SFLAG_NOCLIP = 0x00000800, // clipmove it with cliptype 0 - SFLAG_NOFLOORSHADOW = 0x00001000, // for temp. internal use, per-tile flag not checked - SFLAG_SMOOTHMOVE = 0x00002000, - SFLAG_NOTELEPORT = 0x00004000, - SFLAG_BADGUYSTAYPUT = 0x00008000, - SFLAG_CACHE = 0x00010000, - // rotation-fixed wrt a pivot point to prevent position diverging due to - // roundoff error accumulation: - SFLAG_ROTFIXED = 0x00020000, - SFLAG_HARDCODED_BADGUY = 0x00040000, - SFLAG_DIDNOSE7WATER = 0x00080000, // used temporarily - SFLAG_NODAMAGEPUSH = 0x00100000, - SFLAG_NOWATERDIP = 0x00200000, - SFLAG_HURTSPAWNBLOOD = 0x00400000, - SFLAG_GREENSLIMEFOOD = 0x00800000, - SFLAG_REALCLIPDIST = 0x01000000, - SFLAG_WAKEUPBADGUYS = 0x02000000, - SFLAG_DAMAGEEVENT = 0x04000000, - SFLAG_NOWATERSECTOR = 0x08000000, - SFLAG_QUEUEDFORDELETE = 0x10000000, - SFLAG_BADGUY_TILE = 0x20000000, // these are from RedNukem and had to be renumbered. - SFLAG_KILLCOUNT = 0x40000000, - SFLAG_NOCANSEECHECK = 0x80000000, -}; - -// Custom projectiles "workslike" flags. -// XXX: Currently not predefined from CON. -enum pflags_t -{ - PROJECTILE_HITSCAN = 0x00000001, - PROJECTILE_RPG = 0x00000002, - PROJECTILE_BOUNCESOFFWALLS = 0x00000004, - PROJECTILE_BOUNCESOFFMIRRORS = 0x00000008, - PROJECTILE_KNEE = 0x00000010, - PROJECTILE_WATERBUBBLES = 0x00000020, - PROJECTILE_TIMED = 0x00000040, - PROJECTILE_BOUNCESOFFSPRITES = 0x00000080, - PROJECTILE_SPIT = 0x00000100, - PROJECTILE_COOLEXPLOSION1 = 0x00000200, - PROJECTILE_BLOOD = 0x00000400, - PROJECTILE_LOSESVELOCITY = 0x00000800, - PROJECTILE_NOAIM = 0x00001000, - PROJECTILE_RANDDECALSIZE = 0x00002000, - PROJECTILE_EXPLODEONTIMER = 0x00004000, - PROJECTILE_RPG_IMPACT = 0x00008000, - PROJECTILE_RADIUS_PICNUM = 0x00010000, - PROJECTILE_ACCURATE_AUTOAIM = 0x00020000, - PROJECTILE_FORCEIMPACT = 0x00040000, - PROJECTILE_REALCLIPDIST = 0x00080000, - PROJECTILE_ACCURATE = 0x00100000, - PROJECTILE_NOSETOWNERSHADE = 0x00200000, - PROJECTILE_RPG_IMPACT_DAMAGE = 0x00400000, - PROJECTILE_MOVED = 0x80000000, // internal flag, do not document - PROJECTILE_TYPE_MASK = PROJECTILE_HITSCAN | PROJECTILE_RPG | PROJECTILE_KNEE | PROJECTILE_BLOOD, -}; - - -END_DUKE_NS - -#endif - diff --git a/source/rr/CMakeLists.txt b/source/rr/CMakeLists.txt index 0468d5a12..ca8eeeb42 100644 --- a/source/rr/CMakeLists.txt +++ b/source/rr/CMakeLists.txt @@ -13,6 +13,7 @@ set( PCH_SOURCES src/gameexec.cpp src/gamevars.cpp src/global.cpp + src/namesdyn.cpp src/net.cpp src/osdcmds.cpp src/player.cpp @@ -23,6 +24,7 @@ set( PCH_SOURCES src/text.cpp src/sector.cpp src/sounds.cpp + src/soundsdyn.cpp src/rrdh.cpp) add_game_library( rr ) diff --git a/source/rr/src/actors.cpp b/source/rr/src/actors.cpp index 24f7a3cd2..3735d6388 100644 --- a/source/rr/src/actors.cpp +++ b/source/rr/src/actors.cpp @@ -420,7 +420,7 @@ int32_t A_MoveSprite(int32_t spriteNum, vec3_t const * const change, uint32_t cl { // Handle potential stayput condition (map-provided or hard-coded). if (newSectnum < 0 - || ((actor[spriteNum].stayput >= 0 && actor[spriteNum].stayput != newSectnum) + || ((actor[spriteNum].actorstayput >= 0 && actor[spriteNum].actorstayput != newSectnum) || (!RR && ((pSprite->picnum == BOSS2 && pSprite->pal == 0 && sector[newSectnum].lotag != ST_3) || ((pSprite->picnum == BOSS1 || pSprite->picnum == BOSS2) && sector[newSectnum].lotag == ST_1_ABOVE_WATER) || (sector[newSectnum].lotag == ST_1_ABOVE_WATER diff --git a/source/rr/src/actors.h b/source/rr/src/actors.h index 0e2b8d5b0..ff7ca7616 100644 --- a/source/rr/src/actors.h +++ b/source/rr/src/actors.h @@ -24,13 +24,132 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #define actors_h_ #include "player.h" -# include "dukerr/namesdyn.h" -#include "dukerr/actors.h" +# include "namesdyn.h" BEGIN_RR_NS +#define MAXSLEEPDIST 16384 +#define SLEEPTIME 1536 +#define ZOFFSET (1<<8) +#define ZOFFSET2 (16<<8) +#define ZOFFSET3 (8<<8) +#define ZOFFSET4 (12<<8) +#define ZOFFSET5 (32<<8) +#define ZOFFSET6 (4<<8) + +#define ACTOR_MAXFALLINGZVEL 6144 +#define ACTOR_ONWATER_ADDZ (24<<8) + +// KEEPINSYNC lunatic/con_lang.lua +#define STAT_DEFAULT 0 +#define STAT_ACTOR 1 +#define STAT_ZOMBIEACTOR 2 +#define STAT_EFFECTOR 3 +#define STAT_PROJECTILE 4 +#define STAT_MISC 5 +#define STAT_STANDABLE 6 +#define STAT_LOCATOR 7 +#define STAT_ACTIVATOR 8 +#define STAT_TRANSPORT 9 +#define STAT_PLAYER 10 +#define STAT_FX 11 +#define STAT_FALLER 12 +#define STAT_DUMMYPLAYER 13 +#define STAT_LIGHT 14 +#define STAT_RAROR 15 +#define STAT_NETALLOC MAXSTATUS-1 + + +// Defines the motion characteristics of an actor +enum amoveflags_t +{ + face_player = 1, + geth = 2, + getv = 4, + random_angle = 8, + face_player_slow = 16, + spin = 32, + face_player_smart = 64, + fleeenemy = 128, + jumptoplayer_only = 256, + jumptoplayer_bits = 257, // NOTE: two bits set! + seekplayer = 512, + furthestdir = 1024, + dodgebullet = 4096, + justjump2 = 8192, + windang = 16384, + antifaceplayerslow = 32768 +}; + +// Defines for 'useractor' keyword +enum uactortypes_t +{ + notenemy, + enemy, + enemystayput +}; + +// These macros are there to give names to the t_data[]/T*/vm.g_t[] indices +// when used with actors. Greppability of source code is certainly a virtue. +#define AC_COUNT(t) ((t)[0]) /* the actor's count */ +/* The ID of the actor's current move. In C-CON, the bytecode offset to the + * move composite: */ +#define AC_MOVE_ID(t) ((t)[1]) +#define AC_ACTION_COUNT(t) ((t)[2]) /* the actor's action count */ +#define AC_CURFRAME(t) ((t)[3]) /* the actor's current frame offset */ +/* The ID of the actor's current action. In C-CON, the bytecode offset to the + * action composite: */ +#define AC_ACTION_ID(t) ((t)[4]) +#define AC_AI_ID(t) ((t)[5]) /* the ID of the actor's current ai */ + +enum actionparams +{ + ACTION_STARTFRAME = 0, + ACTION_NUMFRAMES, + ACTION_VIEWTYPE, + ACTION_INCVAL, + ACTION_DELAY, + ACTION_FLAGS, + ACTION_PARAM_COUNT, +}; + +enum actionflags +{ + AF_VIEWPOINT = 1u<<0u, +}; + +// Select an actor's actiontics and movflags locations depending on +// whether we compile the Lunatic build. +// : sprite pointer +// : actor_t pointer +# define AC_ACTIONTICS(spr, a) ((spr)->lotag) +# define AC_MOVFLAGS(spr, a) ((spr)->hitag) + // (+ 40 16 16 4 8 6 8 6 4 20) #pragma pack(push, 1) +typedef struct +{ + int32_t t_data[10]; // 40b sometimes used to hold offsets to con code + + int32_t flags; // 4b + vec3_t bpos; // 12b + int32_t floorz, ceilingz; // 8b + vec2_t lastv; // 8b + int16_t picnum, ang, extra, owner; // 8b + int16_t movflag, tempang, timetosleep; // 6b + int16_t actorstayput; // 2b + + uint8_t cgg, lasttransport; // 2b + // NOTE: 'dispicnum' is updated every frame, not in sync with game tics! + int16_t dispicnum; // 2b + +#ifdef POLYMER + int16_t lightId, lightmaxrange; // 4b + _prlight *lightptr; // 4b/8b aligned on 96 bytes + uint8_t lightcount, filler[3]; +#endif +} actor_t; + // this struct needs to match the beginning of actor_t above typedef struct { @@ -42,7 +161,7 @@ typedef struct vec2_t lastv; // 8b int16_t picnum, ang, extra, owner; // 8b int16_t movflag, tempang, timetosleep; // 6b - int16_t stayput; + int16_t actorstayput; uint8_t cgg, lasttransport; @@ -50,6 +169,84 @@ typedef struct int16_t netIndex; } netactor_t; #pragma pack(pop) + +typedef struct +{ + intptr_t *execPtr; // pointer to CON script for this tile, formerly actorscrptr + intptr_t *loadPtr; // pointer to load time CON script, formerly actorLoadEventScrPtr or something + uint32_t flags; // formerly SpriteFlags, ActorType + int32_t cacherange; // formerly SpriteCache +} tiledata_t; + + +// KEEPINSYNC lunatic/con_lang.lua +enum sflags_t +{ + SFLAG_SHADOW = 0x00000001, + SFLAG_NVG = 0x00000002, + SFLAG_NOSHADE = 0x00000004, + SFLAG_PROJECTILE = 0x00000008, + SFLAG_DECAL = 0x00000010, + SFLAG_BADGUY = 0x00000020, + SFLAG_NOPAL = 0x00000040, + SFLAG_NOEVENTCODE = 0x00000080, + SFLAG_NOLIGHT = 0x00000100, + SFLAG_USEACTIVATOR = 0x00000200, + SFLAG_NULL = 0x00000400, // null sprite in multiplayer + SFLAG_NOCLIP = 0x00000800, // clipmove it with cliptype 0 + SFLAG_NOFLOORSHADOW = 0x00001000, // for temp. internal use, per-tile flag not checked + SFLAG_SMOOTHMOVE = 0x00002000, + SFLAG_NOTELEPORT = 0x00004000, + SFLAG_BADGUYSTAYPUT = 0x00008000, + SFLAG_CACHE = 0x00010000, + // rotation-fixed wrt a pivot point to prevent position diverging due to + // roundoff error accumulation: + SFLAG_ROTFIXED = 0x00020000, + SFLAG_HARDCODED_BADGUY = 0x00040000, + SFLAG_DIDNOSE7WATER = 0x00080000, // used temporarily + SFLAG_NODAMAGEPUSH = 0x00100000, + SFLAG_NOWATERDIP = 0x00200000, + SFLAG_HURTSPAWNBLOOD = 0x00400000, + SFLAG_GREENSLIMEFOOD = 0x00800000, + SFLAG_REALCLIPDIST = 0x01000000, + SFLAG_WAKEUPBADGUYS = 0x02000000, + SFLAG_DAMAGEEVENT = 0x04000000, + SFLAG_BADGUY_TILE = 0x08000000, + SFLAG_KILLCOUNT = 0x10000000, + SFLAG_NOCANSEECHECK = 0x20000000, +}; + +// Custom projectiles "workslike" flags. +// XXX: Currently not predefined from CON. +enum pflags_t +{ + PROJECTILE_HITSCAN = 0x00000001, + PROJECTILE_RPG = 0x00000002, + PROJECTILE_BOUNCESOFFWALLS = 0x00000004, + PROJECTILE_BOUNCESOFFMIRRORS = 0x00000008, + PROJECTILE_KNEE = 0x00000010, + PROJECTILE_WATERBUBBLES = 0x00000020, + PROJECTILE_TIMED = 0x00000040, + PROJECTILE_BOUNCESOFFSPRITES = 0x00000080, + PROJECTILE_SPIT = 0x00000100, + PROJECTILE_COOLEXPLOSION1 = 0x00000200, + PROJECTILE_BLOOD = 0x00000400, + PROJECTILE_LOSESVELOCITY = 0x00000800, + PROJECTILE_NOAIM = 0x00001000, + PROJECTILE_RANDDECALSIZE = 0x00002000, + PROJECTILE_EXPLODEONTIMER = 0x00004000, + PROJECTILE_RPG_IMPACT = 0x00008000, + PROJECTILE_RADIUS_PICNUM = 0x00010000, + PROJECTILE_ACCURATE_AUTOAIM = 0x00020000, + PROJECTILE_FORCEIMPACT = 0x00040000, + PROJECTILE_REALCLIPDIST = 0x00080000, + PROJECTILE_ACCURATE = 0x00100000, + PROJECTILE_NOSETOWNERSHADE = 0x00200000, + PROJECTILE_RPG_IMPACT_DAMAGE = 0x00400000, + PROJECTILE_MOVED = 0x80000000, // internal flag, do not document + PROJECTILE_TYPE_MASK = PROJECTILE_HITSCAN | PROJECTILE_RPG | PROJECTILE_KNEE | PROJECTILE_BLOOD, +}; + extern tiledata_t g_tile[MAXTILES]; extern actor_t actor[MAXSPRITES]; extern int32_t block_deletesprite; diff --git a/source/rr/src/common.cpp b/source/rr/src/common.cpp index 721fa0723..4ad9d1f6c 100644 --- a/source/rr/src/common.cpp +++ b/source/rr/src/common.cpp @@ -14,7 +14,7 @@ #include "common.h" -#include "dukerr/common_game.h" +#include "common_game.h" BEGIN_RR_NS diff --git a/source/dukerr/common_game.h b/source/rr/src/common_game.h similarity index 64% rename from source/dukerr/common_game.h rename to source/rr/src/common_game.h index 205bed9f4..9919ba050 100644 --- a/source/dukerr/common_game.h +++ b/source/rr/src/common_game.h @@ -9,7 +9,7 @@ #include "gamecontrol.h" -BEGIN_DUKERR_NS +BEGIN_RR_NS #define DUKE (g_gameType & GAMEFLAG_DUKE) @@ -21,8 +21,18 @@ BEGIN_DUKERR_NS #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 FURY (g_gameType & GAMEFLAG_FURY) +//#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 +}; typedef enum basepal_ { BASEPAL = 0, @@ -39,6 +49,17 @@ typedef enum basepal_ { #include "v_text.h" +extern int loaddefinitions_game(const char *fn, int32_t preload); + +////////// + +extern void G_InitMultiPsky(int CLOUDYOCEAN__DYN, int MOONSKY1__DYN, int BIGORBIT1__DYN, int LA__DYN); +extern void G_SetupGlobalPsky(void); + +////////// + +extern void G_LoadLookups(void); + ////////// END_RR_NS diff --git a/source/rr/src/d_menu.cpp b/source/rr/src/d_menu.cpp index 840b19c68..50bb444de 100644 --- a/source/rr/src/d_menu.cpp +++ b/source/rr/src/d_menu.cpp @@ -37,7 +37,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #include "menu/menu.h" #include "gstrings.h" #include "version.h" -#include "dukerr/namesdyn.h" +#include "namesdyn.h" #include "../../glbackend/glbackend.h" diff --git a/source/rr/src/demo.cpp b/source/rr/src/demo.cpp index 86cfa2f4d..85bfc03a9 100644 --- a/source/rr/src/demo.cpp +++ b/source/rr/src/demo.cpp @@ -727,6 +727,8 @@ nextdemo_nomenu: // if fast-forwarding, we must update totalclock totalclock += TICSPERFRAME; +// OSD_Printf("t:%d, l+T:%d; cnt:%d, goal:%d%s", totalclock, (lockclock+TICSPERFRAME), +// g_demo_cnt, g_demo_goalCnt, g_demo_cnt>=g_demo_goalCnt?" ":"\n"); if (g_demo_cnt>=g_demo_goalCnt) { g_demo_goalCnt = 0; @@ -812,6 +814,16 @@ nextdemo_nomenu: if (g_demo_showStats) { + #if 0 + if (g_demo_cntgm&MODE_MENU) goto RECHECK; +#if KRANDDEBUG + if (foundemo) + krd_print("krandplay.log"); +#endif + // finished playing a demo and not in menu: // return so that e.g. the title can be shown return 1; diff --git a/source/rr/src/duke3d.h b/source/rr/src/duke3d.h index 3d70e27d5..a51ec6a40 100644 --- a/source/rr/src/duke3d.h +++ b/source/rr/src/duke3d.h @@ -109,25 +109,26 @@ EDUKE32_STATIC_ASSERT(7 <= MAXTILES-MAXUSERTILES); END_RR_NS #include "actors.h" -#include "dukerr/common_game.h" +#include "common_game.h" #include "config.h" #include "gamecontrol.h" #include "game.h" #include "gamedef.h" +#include "gamedefs.h" #include "gameexec.h" #include "gamevars.h" #include "global.h" #include "inv.h" -#include "dukerr/macros.h" -#include "dukerr/namesdyn.h" +#include "macros.h" +#include "namesdyn.h" #include "net.h" #include "player.h" -#include "dukerr/quotes.h" +#include "quotes.h" #include "rts.h" #include "text.h" #include "sector.h" #include "sounds.h" -#include "dukerr/soundsdyn.h" +#include "soundsdyn.h" #include "rrdh.h" BEGIN_RR_NS diff --git a/source/rr/src/events_defs.h b/source/rr/src/events_defs.h new file mode 100644 index 000000000..377a4c231 --- /dev/null +++ b/source/rr/src/events_defs.h @@ -0,0 +1,51 @@ + +#ifndef EDUKE32_EVENTS_DEFS_H_ +#define EDUKE32_EVENTS_DEFS_H_ + +// the order of these can't be changed or else compatibility with EDuke 2.0 mods will break +// KEEPINSYNC with EventNames[] and lunatic/con_lang.lua +enum GameEvent_t { + EVENT_INIT, // 0 + EVENT_ENTERLEVEL, + EVENT_RESETWEAPONS, + EVENT_RESETINVENTORY, + EVENT_HOLSTER, + EVENT_LOOKLEFT, // 5 + EVENT_LOOKRIGHT, + EVENT_SOARUP, + EVENT_SOARDOWN, + EVENT_CROUCH, + EVENT_JUMP, // 10 + EVENT_RETURNTOCENTER, + EVENT_LOOKUP, + EVENT_LOOKDOWN, + EVENT_AIMUP, + EVENT_FIRE, // 15 + EVENT_CHANGEWEAPON, + EVENT_GETSHOTRANGE, + EVENT_GETAUTOAIMANGLE, + EVENT_GETLOADTILE, + EVENT_CHEATGETSTEROIDS, // 20 + EVENT_CHEATGETHEAT, + EVENT_CHEATGETBOOT, + EVENT_CHEATGETSHIELD, + EVENT_CHEATGETSCUBA, + EVENT_CHEATGETHOLODUKE, // 25 + EVENT_CHEATGETJETPACK, + EVENT_CHEATGETFIRSTAID, + EVENT_QUICKKICK, + EVENT_INVENTORY, + EVENT_USENIGHTVISION, // 30 + EVENT_USESTEROIDS, + EVENT_INVENTORYLEFT, + EVENT_INVENTORYRIGHT, + EVENT_HOLODUKEON, + EVENT_HOLODUKEOFF, // 35 + EVENT_USEMEDKIT, + EVENT_USEJETPACK, + EVENT_TURNAROUND, + MAXEVENTS, + EVENT_AIMDOWN = EVENT_AIMUP, +}; + +#endif diff --git a/source/rr/src/game.cpp b/source/rr/src/game.cpp index 8d508a7e2..3e0ff6cc1 100644 --- a/source/rr/src/game.cpp +++ b/source/rr/src/game.cpp @@ -1,4 +1,4 @@ -//------------------------------------------------------------------------- +//------------------------------------------------------------------------- /* Copyright (C) 2016 EDuke32 developers and contributors @@ -63,9 +63,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. BEGIN_RR_NS -extern void G_InitMultiPsky(int CLOUDYOCEAN__DYN, int MOONSKY1__DYN, int BIGORBIT1__DYN, int LA__DYN); -extern void G_LoadLookups(void); - int32_t g_quitDeadline = 0; @@ -79,6 +76,8 @@ int32_t vote_map = -1, vote_episode = -1; int32_t g_Debug = 0; +const char *defaultrtsfilename[GAMECOUNT] = { "DUKE.RTS", "REDNECK.RTS", "REDNECK.RTS", "NAM.RTS", "NAPALM.RTS" }; + int32_t g_Shareware = 0; int32_t tempwallptr; @@ -95,6 +94,30 @@ int32_t g_levelTextTime = 0; extern char forcegl; #endif +const char *G_DefaultRtsFile(void) +{ + if (DUKE) + return defaultrtsfilename[GAME_DUKE]; + else if (NAPALM) + { + if (!fileSystem.FileExists(defaultrtsfilename[GAME_NAPALM]) && fileSystem.FileExists(defaultrtsfilename[GAME_NAM])) + return defaultrtsfilename[GAME_NAM]; // NAM/NAPALM Sharing + else + return defaultrtsfilename[GAME_NAPALM]; + } + else if (NAM) + { + if (!fileSystem.FileExists(defaultrtsfilename[GAME_NAM]) && fileSystem.FileExists(defaultrtsfilename[GAME_NAPALM])) + return defaultrtsfilename[GAME_NAPALM]; // NAM/NAPALM Sharing + else + return defaultrtsfilename[GAME_NAM]; + } + else if (RR) + return defaultrtsfilename[GAME_RR]; + + return defaultrtsfilename[0]; +} + enum gametokens { T_INCLUDE = 0, @@ -1526,7 +1549,7 @@ int32_t A_InsertSprite(int16_t whatsect,int32_t s_x,int32_t s_y,int32_t s_z,int1 actor[i].ceilingz = actor[s_ow].ceilingz; } - actor[i].stayput = actor[i].extra = -1; + actor[i].actorstayput = actor[i].extra = -1; #ifdef POLYMER actor[i].lightId = -1; #endif @@ -1609,7 +1632,7 @@ int A_Spawn(int spriteNum, int tileNum) pActor->floorz = sector[pSprite->sectnum].floorz; pActor->ceilingz = sector[pSprite->sectnum].ceilingz; - pActor->stayput = pActor->extra = -1; + pActor->actorstayput = pActor->extra = -1; #ifdef POLYMER pActor->lightId = -1; @@ -1720,7 +1743,7 @@ default_case: A_Fall(newSprite); if (A_CheckSpriteFlags(newSprite, SFLAG_BADGUYSTAYPUT)) - pActor->stayput = pSprite->sectnum; + pActor->actorstayput = pSprite->sectnum; if (!RR || A_CheckSpriteFlags(newSprite, SFLAG_KILLCOUNT)) g_player[myconnectindex].ps->max_actors_killed++; @@ -2873,7 +2896,7 @@ rrbloodpool_fallthrough: case COMMANDERSTAYPUT__STATIC: case BOSS4STAYPUT__STATIC: if (RR) goto default_case; - pActor->stayput = pSprite->sectnum; + pActor->actorstayput = pSprite->sectnum; fallthrough__; case BOSS1__STATIC: case BOSS2__STATIC: @@ -3035,7 +3058,7 @@ rrbloodpool_fallthrough: case CHEERSTAYPUT__STATICRR: case SBMOVE__STATICRR: if ((RRRA && pSprite->picnum == SBMOVE) || (!RRRA && (pSprite->picnum == SBSWIPE || pSprite->picnum == CHEERSTAYPUT))) goto default_case; - pActor->stayput = pSprite->sectnum; + pActor->actorstayput = pSprite->sectnum; fallthrough__; case BOULDER__STATICRR: case BOULDER1__STATICRR: @@ -6934,8 +6957,6 @@ static void G_Startup(void) G_FatalEngineError(); G_InitDynamicTiles(); - if (RR) PHEIGHT = PHEIGHT_RR; - G_InitDynamicSounds(); // These depend on having the dynamic tile and/or sound mappings set up: diff --git a/source/rr/src/game.h b/source/rr/src/game.h index f784bf975..f8a5b1cea 100644 --- a/source/rr/src/game.h +++ b/source/rr/src/game.h @@ -27,6 +27,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #endif #include "fix16.h" +#include "gamedefs.h" #include "gamedef.h" #include "net.h" #include "mmulti.h" @@ -199,6 +200,9 @@ static inline int Menu_HaveUserMap(void) return (boardfilename[0] != 0 && m_level_number == 7 && ud.m_volume_number == 0); } +extern const char *defaultrtsfilename[GAMECOUNT]; +extern const char *G_DefaultRtsFile(void); + #ifdef LEGACY_ROR extern char ror_protectedsectors[MAXSECTORS]; #endif diff --git a/source/rr/src/gamedef.cpp b/source/rr/src/gamedef.cpp index 01bae6554..7f0ee1a5b 100644 --- a/source/rr/src/gamedef.cpp +++ b/source/rr/src/gamedef.cpp @@ -23,12 +23,12 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #include "ns.h" // Must come before everything else! #include "duke3d.h" -#include "dukerr/namesdyn.h" +#include "namesdyn.h" #include "gamedef.h" #include "gameexec.h" #include "savegame.h" #include "common.h" -#include "dukerr/common_game.h" +#include "common_game.h" #include "cheats.h" #include "m_argv.h" @@ -63,7 +63,7 @@ static int32_t g_numBraces = 0; static int32_t C_ParseCommand(int32_t loop); static int32_t C_SetScriptSize(int32_t size); -static intptr_t apScriptGameEventEnd[MAXEVENTS_RR]; +static intptr_t apScriptGameEventEnd[MAXEVENTS]; static intptr_t g_parsingActorPtr; static intptr_t g_scriptEventOffset; static char *textptr; @@ -324,6 +324,7 @@ void C_InitHashes() for (auto &varvar : varvartable) inthash_add(&h_varvar, varvar.x, varvar.y, 0); + //inithashnames(); initsoundhashnames(); for (tokenmap_t const & keyword : vm_keywords) @@ -1315,6 +1316,8 @@ static int32_t C_ParseCommand(int32_t loop) hash_add(&h_labels,label+(g_labelCnt<<6),g_labelCnt,0); labeltype[g_labelCnt] = LABEL_DEFINE; labelcode[g_labelCnt++] = *(g_scriptPtr-1); + //if (*(g_scriptPtr-1) >= 0 && *(g_scriptPtr-1) < MAXTILES && g_dynamicTileMapping) + // G_ProcessDynamicTileMapping(label+((g_labelCnt-1)<<6),*(g_scriptPtr-1)); } g_scriptPtr -= 2; continue; @@ -1729,7 +1732,7 @@ static int32_t C_ParseCommand(int32_t loop) g_currentEvent = j; //Bsprintf(g_szBuf,"Adding Event for %d at %lX",j, g_parsingEventPtr); //AddLog(g_szBuf); - if (EDUKE32_PREDICT_FALSE((unsigned)j > MAXEVENTS_RR-1)) + if (EDUKE32_PREDICT_FALSE((unsigned)j > MAXEVENTS-1)) { initprintf("%s:%d: error: invalid event ID.\n",g_scriptFileName,g_lineNumber); g_errorCnt++; @@ -2721,6 +2724,7 @@ void C_Compile(const char *fileName) for (auto *i : tables_free) hash_free(i); + //freehashnames(); freesoundhashnames(); if (g_scriptDebug) diff --git a/source/rr/src/gamedef.h b/source/rr/src/gamedef.h index 1fe52368c..7a93438f8 100644 --- a/source/rr/src/gamedef.h +++ b/source/rr/src/gamedef.h @@ -28,7 +28,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #include "cheats.h" #include "common.h" // tokenlist #include "player.h" // projectile_t -#include "dukerr/events_defs.h" BEGIN_RR_NS @@ -81,7 +80,8 @@ extern int32_t g_weaponVarID; // var ID of "WEAPON" extern int32_t g_worksLikeVarID; // var ID of "WORKSLIKE" extern int32_t g_zRangeVarID; // var ID of "ZRANGE" -extern intptr_t apScriptEvents[MAXEVENTS_RR]; +#include "events_defs.h" +extern intptr_t apScriptEvents[MAXEVENTS]; extern char g_scriptFileName[BMAX_PATH]; diff --git a/source/rr/src/gamedefs.h b/source/rr/src/gamedefs.h new file mode 100644 index 000000000..e69de29bb diff --git a/source/rr/src/gameexec.cpp b/source/rr/src/gameexec.cpp index 380a21516..25c8da986 100644 --- a/source/rr/src/gameexec.cpp +++ b/source/rr/src/gameexec.cpp @@ -130,7 +130,7 @@ static void VM_DeleteSprite(int const spriteNum, int const playerNum) A_DeleteSprite(spriteNum); } -intptr_t apScriptEvents[MAXEVENTS_RR]; +intptr_t apScriptEvents[MAXEVENTS]; static uspritetype dummy_sprite; static actor_t dummy_actor; @@ -1389,7 +1389,7 @@ GAMEEXEC_STATIC void VM_Execute(native_t loop) vm.pActor->timetosleep = SLEEPTIME; continue; - case CON_IFACTORNOTSTAYPUT: VM_CONDITIONAL(vm.pActor->stayput == -1); continue; + case CON_IFACTORNOTSTAYPUT: VM_CONDITIONAL(vm.pActor->actorstayput == -1); continue; case CON_IFCANSEE: { @@ -1911,7 +1911,7 @@ GAMEEXEC_STATIC void VM_Execute(native_t loop) } else P_AddKills(pPlayer, *insptr); insptr++; - vm.pActor->stayput = -1; + vm.pActor->actorstayput = -1; continue; case CON_LOTSOFGLASS: diff --git a/source/rr/src/gamevars.cpp b/source/rr/src/gamevars.cpp index 490b7ad26..7ba0abd0e 100644 --- a/source/rr/src/gamevars.cpp +++ b/source/rr/src/gamevars.cpp @@ -25,7 +25,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #include "duke3d.h" #include "menus.h" #include "savegame.h" -#include "dukerr/namesdyn.h" +#include "namesdyn.h" #include "gamevars.h" //#include "vfs.h" diff --git a/source/rr/src/global.cpp b/source/rr/src/global.cpp index 4c91c348a..09922db2b 100644 --- a/source/rr/src/global.cpp +++ b/source/rr/src/global.cpp @@ -99,6 +99,24 @@ int32_t g_spriteGravity = 176; int32_t g_timerTicsPerSecond = TICRATE; int32_t g_tripbombRadius = 3880; +int16_t g_blimpSpawnItems[15] = +{ + RPGSPRITE__STATIC, + CHAINGUNSPRITE__STATIC, + DEVISTATORAMMO__STATIC, + RPGAMMO__STATIC, + RPGAMMO__STATIC, + JETPACK__STATIC, + SHIELD__STATIC, + FIRSTAID__STATIC, + STEROIDS__STATIC, + RPGAMMO__STATIC, + RPGAMMO__STATIC, + RPGSPRITE__STATIC, + RPGAMMO__STATIC, + FREEZESPRITE__STATIC, + FREEZEAMMO__STATIC +}; char CheatKeys[2] = { sc_D, sc_N }; diff --git a/source/rr/src/global.h b/source/rr/src/global.h index 9fdb2ae21..be920e86d 100644 --- a/source/rr/src/global.h +++ b/source/rr/src/global.h @@ -27,7 +27,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #include "compat.h" #include "duke3d.h" #include "mmulti.h" -#include "dukerr/quotes.h" +#include "quotes.h" #include "sector.h" #include "sounds.h" @@ -275,6 +275,7 @@ extern int32_t g_timerTicsPerSecond; extern int32_t g_tripbombRadius; extern int32_t g_volumeCnt; +extern int16_t g_blimpSpawnItems[15]; extern int32_t g_gametypeFlags[MAXGAMETYPES]; extern const char *s_buildDate; diff --git a/source/rr/src/keys.h b/source/rr/src/keys.h new file mode 100644 index 000000000..06f06fbf6 --- /dev/null +++ b/source/rr/src/keys.h @@ -0,0 +1,153 @@ +//------------------------------------------------------------------------- +/* +Copyright (C) 2010 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 KEYS_H + +BEGIN_RR_NS + + +#define KEYS_H + + #define NUM_CODES 128 + + #define ESC 0x1B + #define ENTER 0x0D + + #define KEYSC_ESC 0x01 + #define KEYSC_1 0x02 + #define KEYSC_2 0x03 + #define KEYSC_3 0x04 + #define KEYSC_4 0x05 + #define KEYSC_5 0x06 + #define KEYSC_6 0x07 + #define KEYSC_7 0x08 + #define KEYSC_8 0x09 + #define KEYSC_9 0x0a + #define KEYSC_0 0x0b + #define KEYSC_DASH 0x0c + #define KEYSC_EQUAL 0x0d + + #define KEYSC_BS 0x0e + #define KEYSC_TAB 0x0f + #define KEYSC_Q 0x10 + #define KEYSC_W 0x11 + #define KEYSC_E 0x12 + #define KEYSC_R 0x13 + #define KEYSC_T 0x14 + #define KEYSC_Y 0x15 + #define KEYSC_U 0x16 + #define KEYSC_I 0x17 + #define KEYSC_O 0x18 + #define KEYSC_P 0x19 + #define KEYSC_LBRACK 0x1a + #define KEYSC_RBRACK 0x1b + #define KEYSC_ENTER 0x1c + + #define KEYSC_LCTRL 0x1d + #define KEYSC_A 0x1e + #define KEYSC_S 0x1f + #define KEYSC_D 0x20 + #define KEYSC_F 0x21 + #define KEYSC_G 0x22 + #define KEYSC_H 0x23 + #define KEYSC_J 0x24 + #define KEYSC_K 0x25 + #define KEYSC_L 0x26 + #define KEYSC_SEMI 0x27 + #define KEYSC_QUOTE 0x28 + #define KEYSC_BQUOTE 0x29 + #define KEYSC_TILDE 0x29 + + #define KEYSC_LSHIFT 0x2a + #define KEYSC_BSLASH 0x2b + #define KEYSC_Z 0x2c + #define KEYSC_X 0x2d + #define KEYSC_C 0x2e + #define KEYSC_V 0x2f + #define KEYSC_B 0x30 + #define KEYSC_N 0x31 + #define KEYSC_M 0x32 + #define KEYSC_COMMA 0x33 + #define KEYSC_PERIOD 0x34 + #define KEYSC_SLASH 0x35 + #define KEYSC_RSHIFT 0x36 + #define KEYSC_gSTAR 0x37 + + #define KEYSC_LALT 0x38 + #define KEYSC_SPACE 0x39 + #define KEYSC_CAPS 0x3a + + #define KEYSC_F1 0x3b + #define KEYSC_F2 0x3c + #define KEYSC_F3 0x3d + #define KEYSC_F4 0x3e + #define KEYSC_F5 0x3f + #define KEYSC_F6 0x40 + #define KEYSC_F7 0x41 + #define KEYSC_F8 0x42 + #define KEYSC_F9 0x43 + #define KEYSC_F10 0x44 + + #define KEYSC_gNUM 0x45 + #define KEYSC_SCROLL 0x46 + + #define KEYSC_gHOME 0x47 + #define KEYSC_gUP 0x48 + #define KEYSC_gPGUP 0x49 + #define KEYSC_gMINUS 0x4a + #define KEYSC_gLEFT 0x4b + #define KEYSC_gKP5 0x4c + #define KEYSC_gRIGHT 0x4d + #define KEYSC_gPLUS 0x4e + #define KEYSC_gEND 0x4f + #define KEYSC_gDOWN 0x50 + #define KEYSC_gPGDN 0x51 + #define KEYSC_gINS 0x52 + #define KEYSC_gDEL 0x53 + + #define KEYSC_F11 0x57 + #define KEYSC_F12 0x58 + + #define KEYSC_gENTER 0x9C + #define KEYSC_RCTRL 0x9D + #define KEYSC_gSLASH 0xB5 + #define KEYSC_RALT 0xB8 + #define KEYSC_PRTSCN 0xB7 + #define KEYSC_PAUSE 0xC5 + #define KEYSC_HOME 0xC7 + #define KEYSC_UP 0xC8 + #define KEYSC_PGUP 0xC9 + #define KEYSC_LEFT 0xCB + #define KEYSC_RIGHT 0xCD + #define KEYSC_END 0xCF + #define KEYSC_DOWN 0xD0 + #define KEYSC_PGDN 0xD1 + #define KEYSC_INSERT 0xD2 + #define KEYSC_DELETE 0xD3 + + #define asc_Esc 27 + #define asc_Enter 13 + #define asc_Space 32 + +END_RR_NS + +#endif diff --git a/source/dukerr/macros.h b/source/rr/src/macros.h similarity index 99% rename from source/dukerr/macros.h rename to source/rr/src/macros.h index 45f1f4756..0a60ae583 100644 --- a/source/dukerr/macros.h +++ b/source/rr/src/macros.h @@ -25,7 +25,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #include "mmulti.h" -BEGIN_DUKERR_NS +BEGIN_RR_NS // Macros, some from SW source @@ -207,6 +207,6 @@ static FORCE_INLINE int32_t krand2(void) #define T5(i) actor[i].t_data[4] #define T6(i) actor[i].t_data[5] -END_DUKERR_NS +END_RR_NS #endif diff --git a/source/dukerr/namesdyn.cpp b/source/rr/src/namesdyn.cpp similarity index 99% rename from source/dukerr/namesdyn.cpp rename to source/rr/src/namesdyn.cpp index 1b9b400ef..a10efc178 100644 --- a/source/dukerr/namesdyn.cpp +++ b/source/rr/src/namesdyn.cpp @@ -25,9 +25,10 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #include "build.h" #include "namesdyn.h" +#include "global.h" #include "gamecontrol.h" -BEGIN_DUKERR_NS +BEGIN_RR_NS #define DVPTR(x) &x @@ -42,31 +43,6 @@ struct dynitem const int16_t staticval_rr; }; -int16_t g_blimpSpawnItems[15] = -{ - RPGSPRITE__STATIC, - CHAINGUNSPRITE__STATIC, - DEVISTATORAMMO__STATIC, - RPGAMMO__STATIC, - RPGAMMO__STATIC, - JETPACK__STATIC, - SHIELD__STATIC, - FIRSTAID__STATIC, - STEROIDS__STATIC, - RPGAMMO__STATIC, - RPGAMMO__STATIC, - RPGSPRITE__STATIC, - RPGAMMO__STATIC, - FREEZESPRITE__STATIC, - FREEZEAMMO__STATIC -}; - -int16_t WeaponPickupSprites[MAX_WEAPONS] = { KNEE__STATIC, FIRSTGUNSPRITE__STATIC, SHOTGUNSPRITE__STATIC, - CHAINGUNSPRITE__STATIC, RPGSPRITE__STATIC, HEAVYHBOMB__STATIC, SHRINKERSPRITE__STATIC, DEVISTATORSPRITE__STATIC, - TRIPBOMBSPRITE__STATIC, FREEZESPRITE__STATIC, HEAVYHBOMB__STATIC, SHRINKERSPRITE__STATIC - }; - - static struct dynitem g_dynTileList[] = { { "SECTOREFFECTOR", DVPTR(SECTOREFFECTOR), SECTOREFFECTOR__STATIC, SECTOREFFECTOR__STATICRR }, @@ -669,7 +645,6 @@ static struct dynitem g_dynTileList[] = { "FOOTPRINT", DVPTR(FOOTPRINT), FOOTPRINT__STATIC, FOOTPRINT__STATICRR }, { "POOP", DVPTR(POOP), POOP__STATIC, POOP__STATICRR }, { "FRAMEEFFECT1", DVPTR(FRAMEEFFECT1), FRAMEEFFECT1__STATIC, FRAMEEFFECT1__STATICRR }, - { "FRAMEEFFECT1_13", DVPTR(FRAMEEFFECT1_13), FRAMEEFFECT1_13__STATIC, FRAMEEFFECT1_13__STATICRR }, { "PANNEL3", DVPTR(PANNEL3), PANNEL3__STATIC, PANNEL3__STATICRR }, { "SCREENBREAK14", DVPTR(SCREENBREAK14), SCREENBREAK14__STATIC, SCREENBREAK14__STATICRR }, { "SCREENBREAK15", DVPTR(SCREENBREAK15), SCREENBREAK15__STATIC, SCREENBREAK15__STATICRR }, @@ -2090,7 +2065,6 @@ int32_t FEM9 = FEM9__STATIC; int32_t FOOTPRINT = FOOTPRINT__STATIC; int32_t POOP = POOP__STATIC; int32_t FRAMEEFFECT1 = FRAMEEFFECT1__STATIC; -int32_t FRAMEEFFECT1_13 = FRAMEEFFECT1_13__STATIC; int32_t PANNEL3 = PANNEL3__STATIC; int32_t SCREENBREAK14 = SCREENBREAK14__STATIC; int32_t SCREENBREAK15 = SCREENBREAK15__STATIC; @@ -2909,6 +2883,7 @@ int32_t MAMA = 0; int32_t MAMAJIBA = 0; int32_t MAMAJIBB = 0; +#if 0 static hashtable_t h_names = {512, NULL}; void G_ProcessDynamicTileMapping(const char *szLabel, int32_t lValue) @@ -2922,6 +2897,10 @@ void G_ProcessDynamicTileMapping(const char *szLabel, int32_t lValue) if (i>=0) { struct dynitem *di = &g_dynTileList[i]; +#ifdef DEBUGGINGAIDS + if (g_scriptDebug && di->staticval != lValue) + OSD_Printf("REMAP %s (%d) --> %d\n", di->str, di->staticval, lValue); +#endif *di->dynvalptr = lValue; } } @@ -2940,6 +2919,7 @@ void freehashnames(void) { hash_free(&h_names); } +#endif static struct dynitem g_dynWeaponList[] = @@ -2990,17 +2970,18 @@ void G_InitDynamicTiles(void) Bmemset(DynamicTileMap, 0, sizeof(DynamicTileMap)); - if (g_gameType & GAMEFLAG_RR) + if (RR) { for (i = 0; g_dynTileList[i].staticval >= 0; i++) { *(g_dynTileList[i].dynvalptr) = -g_dynTileList[i].staticval_rr; - if ((g_gameType & GAMEFLAG_RRRA) && *(g_dynTileList[i].dynvalptr) == -UFO1__STATICRR) *(g_dynTileList[i].dynvalptr) = -UFO1__STATICRRRA; + if (RRRA && *(g_dynTileList[i].dynvalptr) == -UFO1__STATICRR) *(g_dynTileList[i].dynvalptr) = -UFO1__STATICRRRA; DynamicTileMap[*(g_dynTileList[i].dynvalptr)] = g_dynTileList[i].staticval_rr; NameToTileIndex.Insert(g_dynTileList[i].str, *(g_dynTileList[i].dynvalptr)); } for (i = 0; g_dynWeaponList[i].staticval >= 0; i++) *(g_dynWeaponList[i].dynvalptr) = g_dynWeaponList[i].staticval_rr; + PHEIGHT = PHEIGHT_RR; } for (i=0; g_dynTileList[i].staticval >= 0; i++) @@ -3031,7 +3012,7 @@ void G_InitDynamicTiles(void) g_blimpSpawnItems[13] = FREEZESPRITE; g_blimpSpawnItems[14] = FREEZEAMMO; - if (g_gameType & GAMEFLAG_RR) + if (RR) { WeaponPickupSprites[0] = KNEE; WeaponPickupSprites[1] = FIRSTGUNSPRITE; @@ -3061,5 +3042,10 @@ void G_InitDynamicTiles(void) WeaponPickupSprites[10] = HEAVYHBOMB; WeaponPickupSprites[11] = SHRINKERSPRITE; } + + // ouch... the big background image takes up a fuckload of memory and takes a second to load! +#ifdef EDUKE32_GLES + MENUSCREEN = LOADSCREEN = BETASCREEN; +#endif } -END_DUKERR_NS +END_RR_NS diff --git a/source/dukerr/namesdyn.h b/source/rr/src/namesdyn.h similarity index 99% rename from source/dukerr/namesdyn.h rename to source/rr/src/namesdyn.h index 9636b33d5..3c00d7107 100644 --- a/source/dukerr/namesdyn.h +++ b/source/rr/src/namesdyn.h @@ -23,7 +23,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #ifndef namesdyn_h__ #define namesdyn_h__ -BEGIN_DUKERR_NS +BEGIN_RR_NS #define SECTOREFFECTOR__STATIC 1 @@ -625,7 +625,6 @@ BEGIN_DUKERR_NS #define FEM9__STATIC 3450 #define FOOTPRINT__STATIC 3701 #define POOP__STATIC 4094 -#define FRAMEEFFECT1_13__STATIC 3999 #define FRAMEEFFECT1__STATIC 4095 #define PANNEL3__STATIC 4099 #define SCREENBREAK14__STATIC 4120 @@ -1312,7 +1311,6 @@ BEGIN_DUKERR_NS #define FOOTPRINT__STATICRR -1160 #define POOP__STATICRR -2998 #define FRAMEEFFECT1__STATICRR -2999 -#define FRAMEEFFECT1_13__STATICRR -3000 #define PANNEL3__STATICRR -3005 #define SCREENBREAK14__STATICRR -3008 #define SCREENBREAK15__STATICRR -3009 @@ -2731,7 +2729,6 @@ extern int32_t FEM9; extern int32_t FOOTPRINT; extern int32_t POOP; extern int32_t FRAMEEFFECT1; -extern int32_t FRAMEEFFECT1_13; extern int32_t PANNEL3; extern int32_t SCREENBREAK14; extern int32_t SCREENBREAK15; @@ -3596,9 +3593,6 @@ extern int32_t CHICKEN_WEAPON; #define DYNAMICWEAPONMAP(Weaponnum) (DynamicWeaponMap[Weaponnum]) -extern int16_t g_blimpSpawnItems[15]; -extern int16_t WeaponPickupSprites[MAX_WEAPONS]; - -END_DUKERR_NS +END_RR_NS #endif // namesdyn_h__ diff --git a/source/rr/src/player.cpp b/source/rr/src/player.cpp index efb36d1e8..066b98ded 100644 --- a/source/rr/src/player.cpp +++ b/source/rr/src/player.cpp @@ -4580,7 +4580,10 @@ static int32_t P_DoCounters(int playerNum) return 0; } - +int16_t WeaponPickupSprites[MAX_WEAPONS] = { KNEE__STATIC, FIRSTGUNSPRITE__STATIC, SHOTGUNSPRITE__STATIC, + CHAINGUNSPRITE__STATIC, RPGSPRITE__STATIC, HEAVYHBOMB__STATIC, SHRINKERSPRITE__STATIC, DEVISTATORSPRITE__STATIC, + TRIPBOMBSPRITE__STATIC, FREEZESPRITE__STATIC, HEAVYHBOMB__STATIC, SHRINKERSPRITE__STATIC + }; // this is used for player deaths void P_DropWeapon(int const playerNum) { @@ -8765,7 +8768,7 @@ HORIZONLY:; } else if (TEST_SYNC_KEY(playerBits, SK_AIM_DOWN) && (!RRRA || !pPlayer->on_motorcycle)) { - if (VM_OnEvent(/*EVENT_AIMDOWN*/EVENT_AIMUP,pPlayer->i,playerNum) == 0) // changed to allow the constant to be reused in EDuke. + if (VM_OnEvent(EVENT_AIMDOWN,pPlayer->i,playerNum) == 0) { pPlayer->q16horiz -= fix16_from_int(6<<(int)(TEST_SYNC_KEY(playerBits, SK_RUN))); centerHoriz++; diff --git a/source/rr/src/player.h b/source/rr/src/player.h index ccd326b14..6ea7101c2 100644 --- a/source/rr/src/player.h +++ b/source/rr/src/player.h @@ -24,7 +24,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #define player_h_ #include "inv.h" -#include "dukerr/namesdyn.h" +#include "namesdyn.h" #include "fix16.h" #include "net.h" @@ -299,6 +299,7 @@ typedef struct { extern input_t inputfifo[MOVEFIFOSIZ][MAXPLAYERS]; extern playerspawn_t g_playerSpawnPoints[MAXPLAYERS]; extern playerdata_t *const g_player; +extern int16_t WeaponPickupSprites[MAX_WEAPONS]; extern hudweapon_t hudweap; extern int32_t g_levelTextTime; extern int32_t g_numObituaries; diff --git a/source/rr/src/premap.cpp b/source/rr/src/premap.cpp index a9828228e..ef3633bf0 100644 --- a/source/rr/src/premap.cpp +++ b/source/rr/src/premap.cpp @@ -36,8 +36,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. BEGIN_RR_NS -extern void G_SetupGlobalPsky(void); - static int32_t g_whichPalForPlayer = 9; static uint8_t precachehightile[2][MAXTILES>>3]; @@ -828,7 +826,7 @@ void P_ResetPlayer(int playerNum) actor[pPlayer->i].cgg = 0; actor[pPlayer->i].movflag = 0; actor[pPlayer->i].tempang = 0; - actor[pPlayer->i].stayput = -1; + actor[pPlayer->i].actorstayput = -1; actor[pPlayer->i].dispicnum = 0; actor[pPlayer->i].owner = pPlayer->i; actor[pPlayer->i].t_data[4] = 0; diff --git a/source/rr/src/quotes.h b/source/rr/src/quotes.h new file mode 100644 index 000000000..46858c821 --- /dev/null +++ b/source/rr/src/quotes.h @@ -0,0 +1,97 @@ +//------------------------------------------------------------------------- +/* +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 diff --git a/source/rr/src/sector.h b/source/rr/src/sector.h index ecd93e882..f0613f5ec 100644 --- a/source/rr/src/sector.h +++ b/source/rr/src/sector.h @@ -25,8 +25,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #include "actors.h" // actor_t #include "gamevars.h" -#include "dukerr/macros.h" -#include "dukerr/namesdyn.h" // for G_GetForcefieldPicnum() +#include "macros.h" +#include "namesdyn.h" // for G_GetForcefieldPicnum() #include "player.h" // playerspawn_t BEGIN_RR_NS diff --git a/source/rr/src/soundefs.h b/source/rr/src/soundefs.h new file mode 100644 index 000000000..f72481312 --- /dev/null +++ b/source/rr/src/soundefs.h @@ -0,0 +1,418 @@ +//------------------------------------------------------------------------- +/* +Copyright (C) 2010 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. +*/ +//------------------------------------------------------------------------- + +#define KICK_HIT 0 +#define PISTOL_RICOCHET 1 +#define PISTOL_BODYHIT 2 +#define PISTOL_FIRE 3 +#define EJECT_CLIP 4 +#define INSERT_CLIP 5 +#define CHAINGUN_FIRE 6 +#define RPG_SHOOT 7 +#define POOLBALLHIT 8 +#define RPG_EXPLODE 9 +#define CAT_FIRE 10 +#define SHRINKER_FIRE 11 +#define ACTOR_SHRINKING 12 +#define PIPEBOMB_BOUNCE 13 +#define PIPEBOMB_EXPLODE 14 +#define LASERTRIP_ONWALL 15 +#define LASERTRIP_ARMING 16 +#define LASERTRIP_EXPLODE 17 +#define VENT_BUST 18 +#define GLASS_BREAKING 19 +#define GLASS_HEAVYBREAK 20 +#define SHORT_CIRCUIT 21 +#define ITEM_SPLASH 22 +#define DUKE_BREATHING 23 +#define DUKE_EXHALING 24 +#define DUKE_GASP 25 +#define SLIM_RECOG 26 +// #define ENDSEQVOL3SND1 27 +#define DUKE_URINATE 28 +#define ENDSEQVOL3SND2 29 +#define ENDSEQVOL3SND3 30 +#define DUKE_PASSWIND 32 +#define DUKE_CRACK 33 +#define SLIM_ATTACK 34 +#define SOMETHINGHITFORCE 35 +#define DUKE_DRINKING 36 +#define DUKE_KILLED1 37 +#define DUKE_GRUNT 38 +#define DUKE_HARTBEAT 39 +#define DUKE_ONWATER 40 +#define DUKE_DEAD 41 +#define DUKE_LAND 42 +#define DUKE_WALKINDUCTS 43 +#define DUKE_GLAD 44 +#define DUKE_YES 45 +#define DUKE_HEHE 46 +#define DUKE_SHUCKS 47 +#define DUKE_UNDERWATER 48 +#define DUKE_JETPACK_ON 49 +#define DUKE_JETPACK_IDLE 50 +#define DUKE_JETPACK_OFF 51 +#define LIZTROOP_GROWL 52 +#define LIZTROOP_TALK1 53 +#define LIZTROOP_TALK2 54 +#define LIZTROOP_TALK3 55 +#define DUKETALKTOBOSS 56 +#define LIZCAPT_GROWL 57 +#define LIZCAPT_TALK1 58 +#define LIZCAPT_TALK2 59 +#define LIZCAPT_TALK3 60 +#define LIZARD_BEG 61 +#define LIZARD_PAIN 62 +#define LIZARD_DEATH 63 +#define LIZARD_SPIT 64 +#define DRONE1_HISSRATTLE 65 +#define DRONE1_HISSSCREECH 66 +#define DUKE_TIP2 67 +#define FLESH_BURNING 68 +#define SQUISHED 69 +#define TELEPORTER 70 +#define ELEVATOR_ON 71 +#define DUKE_KILLED3 72 +#define ELEVATOR_OFF 73 +#define DOOR_OPERATE1 74 +#define SUBWAY 75 +#define SWITCH_ON 76 +#define FAN 77 +#define DUKE_GETWEAPON3 78 +#define FLUSH_TOILET 79 +#define HOVER_CRAFT 80 +#define EARTHQUAKE 81 +#define INTRUDER_ALERT 82 +#define END_OF_LEVEL_WARN 83 +#define ENGINE_OPERATING 84 +#define REACTOR_ON 85 +#define COMPUTER_AMBIENCE 86 +#define GEARS_GRINDING 87 +#define BUBBLE_AMBIENCE 88 +#define MACHINE_AMBIENCE 89 +#define SEWER_AMBIENCE 90 +#define WIND_AMBIENCE 91 +#define SOMETHING_DRIPPING 92 +#define STEAM_HISSING 93 +#define THEATER_BREATH 94 +#define BAR_MUSIC 95 +#define BOS1_ROAM 96 +#define BOS1_RECOG 97 +#define BOS1_ATTACK1 98 +#define BOS1_PAIN 99 +#define BOS1_DYING 100 +#define BOS2_ROAM 101 +#define BOS2_RECOG 102 +#define BOS2_ATTACK 103 +#define BOS2_PAIN 104 +#define BOS2_DYING 105 +#define GETATOMICHEALTH 106 +#define DUKE_GETWEAPON2 107 +#define BOS3_DYING 108 +#define SHOTGUN_FIRE 109 +#define PRED_ROAM 110 +#define PRED_RECOG 111 +#define PRED_ATTACK 112 +#define PRED_PAIN 113 +#define PRED_DYING 114 +#define CAPT_ROAM 115 +#define CAPT_ATTACK 116 +#define CAPT_RECOG 117 +#define CAPT_PAIN 118 +#define CAPT_DYING 119 +#define PIG_ROAM 120 +#define PIG_RECOG 121 +#define PIG_ATTACK 122 +#define PIG_PAIN 123 +#define PIG_DYING 124 +#define RECO_ROAM 125 +#define RECO_RECOG 126 +#define RECO_ATTACK 127 +#define RECO_PAIN 128 +#define RECO_DYING 129 +#define DRON_ROAM 130 +#define DRON_RECOG 131 +#define DRON_ATTACK1 132 +#define DRON_PAIN 133 +#define DRON_DYING 134 +#define COMM_ROAM 135 +#define COMM_RECOG 136 +#define COMM_ATTACK 137 +#define COMM_PAIN 138 +#define COMM_DYING 139 +#define OCTA_ROAM 140 +#define OCTA_RECOG 141 +#define OCTA_ATTACK1 142 +#define OCTA_PAIN 143 +#define OCTA_DYING 144 +#define TURR_ROAM 145 +#define TURR_RECOG 146 +#define TURR_ATTACK 147 +#define DUMPSTER_MOVE 148 +#define SLIM_DYING 149 +#define BOS3_ROAM 150 +#define BOS3_RECOG 151 +#define BOS3_ATTACK1 152 +#define BOS3_PAIN 153 +#define BOS1_ATTACK2 154 +#define COMM_SPIN 155 +#define BOS1_WALK 156 +#define DRON_ATTACK2 157 +#define THUD 158 +#define OCTA_ATTACK2 159 +#define WIERDSHOT_FLY 160 +#define TURR_PAIN 161 +#define TURR_DYING 162 +#define SLIM_ROAM 163 +#define LADY_SCREAM 164 +#define DOOR_OPERATE2 165 +#define DOOR_OPERATE3 166 +#define DOOR_OPERATE4 167 +#define BORNTOBEWILDSND 168 +#define SHOTGUN_COCK 169 +#define GENERIC_AMBIENCE1 170 +#define GENERIC_AMBIENCE2 171 +#define GENERIC_AMBIENCE3 172 +#define GENERIC_AMBIENCE4 173 +#define GENERIC_AMBIENCE5 174 +#define GENERIC_AMBIENCE6 175 +#define BOS3_ATTACK2 176 +#define GENERIC_AMBIENCE17 177 +#define GENERIC_AMBIENCE18 178 +#define GENERIC_AMBIENCE19 179 +#define GENERIC_AMBIENCE20 180 +#define GENERIC_AMBIENCE21 181 +#define GENERIC_AMBIENCE22 182 +#define SECRETLEVELSND 183 +#define GENERIC_AMBIENCE8 184 +#define GENERIC_AMBIENCE9 185 +#define GENERIC_AMBIENCE10 186 +#define GENERIC_AMBIENCE11 187 +#define GENERIC_AMBIENCE12 188 +#define GENERIC_AMBIENCE13 189 +#define GENERIC_AMBIENCE14 190 +#define GENERIC_AMBIENCE15 192 +#define GENERIC_AMBIENCE16 193 +#define FIRE_CRACKLE 194 +#define BONUS_SPEECH1 195 +#define BONUS_SPEECH2 196 +#define BONUS_SPEECH3 197 +#define PIG_CAPTURE_DUKE 198 +#define BONUS_SPEECH4 199 +#define DUKE_LAND_HURT 200 +#define DUKE_HIT_STRIPPER1 201 +#define DUKE_TIP1 202 +#define DUKE_KILLED2 203 +#define PRED_ROAM2 204 +#define PIG_ROAM2 205 +#define DUKE_GETWEAPON1 206 +#define DUKE_SEARCH2 207 +#define DUKE_CRACK2 208 +#define DUKE_SEARCH 209 +#define DUKE_GET 210 +#define DUKE_LONGTERM_PAIN 211 +#define MONITOR_ACTIVE 212 +#define NITEVISION_ONOFF 213 +#define DUKE_HIT_STRIPPER2 214 +#define DUKE_CRACK_FIRST 215 +#define DUKE_USEMEDKIT 216 +#define DUKE_TAKEPILLS 217 +#define DUKE_PISSRELIEF 218 +#define SELECT_WEAPON 219 +#define WATER_GURGLE 220 +#define DUKE_GETWEAPON4 221 +#define JIBBED_ACTOR1 222 +#define JIBBED_ACTOR2 223 +#define JIBBED_ACTOR3 224 +#define JIBBED_ACTOR4 225 +#define JIBBED_ACTOR5 226 +#define JIBBED_ACTOR6 227 +#define JIBBED_ACTOR7 228 +#define DUKE_GOTHEALTHATLOW 229 +#define BOSSTALKTODUKE 230 +#define WAR_AMBIENCE1 231 +#define WAR_AMBIENCE2 232 +#define WAR_AMBIENCE3 233 +#define WAR_AMBIENCE4 234 +#define WAR_AMBIENCE5 235 +#define WAR_AMBIENCE6 236 +#define WAR_AMBIENCE7 237 +#define WAR_AMBIENCE8 238 +#define WAR_AMBIENCE9 239 +#define WAR_AMBIENCE10 240 +#define ALIEN_TALK1 241 +#define ALIEN_TALK2 242 +#define EXITMENUSOUND 243 +#define FLY_BY 244 +#define DUKE_SCREAM 245 +#define SHRINKER_HIT 246 +#define RATTY 247 +#define INTO_MENU 248 +#define BONUSMUSIC 249 +#define DUKE_BOOBY 250 +#define DUKE_TALKTOBOSSFALL 251 +#define DUKE_LOOKINTOMIRROR 252 +#define PIG_ROAM3 253 +#define KILLME 254 +#define DRON_JETSND 255 +#define SPACE_DOOR1 256 +#define SPACE_DOOR2 257 +#define SPACE_DOOR3 258 +#define SPACE_DOOR4 259 +#define SPACE_DOOR5 260 +#define ALIEN_ELEVATOR1 261 +#define VAULT_DOOR 262 +#define JIBBED_ACTOR13 263 +#define DUKE_GETWEAPON6 264 +#define JIBBED_ACTOR8 265 +#define JIBBED_ACTOR9 266 +#define JIBBED_ACTOR10 267 +#define JIBBED_ACTOR11 268 +#define JIBBED_ACTOR12 269 +#define DUKE_KILLED4 270 +#define DUKE_KILLED5 271 +#define ALIEN_SWITCH1 272 +#define DUKE_STEPONFECES 273 +#define DUKE_LONGTERM_PAIN2 274 +#define DUKE_LONGTERM_PAIN3 275 +#define DUKE_LONGTERM_PAIN4 276 +#define COMPANB2 277 +#define KTIT 278 +#define HELICOP_IDLE 279 +#define STEPNIT 280 +#define SPACE_AMBIENCE1 281 +#define SPACE_AMBIENCE2 282 +#define SLIM_HATCH 283 +#define RIPHEADNECK 284 +#define FOUNDJONES 285 +#define ALIEN_DOOR1 286 +#define ALIEN_DOOR2 287 +#define ENDSEQVOL3SND4 288 +#define ENDSEQVOL3SND5 289 +#define ENDSEQVOL3SND6 290 +#define ENDSEQVOL3SND7 291 +#define ENDSEQVOL3SND8 292 +#define ENDSEQVOL3SND9 293 +#define WHIPYOURASS 294 +#define ENDSEQVOL2SND1 295 +#define ENDSEQVOL2SND2 296 +#define ENDSEQVOL2SND3 297 +#define ENDSEQVOL2SND4 298 +#define ENDSEQVOL2SND5 299 +#define ENDSEQVOL2SND6 300 +#define ENDSEQVOL2SND7 301 +#define GENERIC_AMBIENCE23 302 +#define SOMETHINGFROZE 303 +#define DUKE_LONGTERM_PAIN5 304 +#define DUKE_LONGTERM_PAIN6 305 +#define DUKE_LONGTERM_PAIN7 306 +#define DUKE_LONGTERM_PAIN8 307 +#define WIND_REPEAT 308 +#define MYENEMY_ROAM 309 +#define MYENEMY_HURT 310 +#define MYENEMY_DEAD 311 +#define MYENEMY_SHOOT 312 +#define STORE_MUSIC 313 +#define STORE_MUSIC_BROKE 314 +#define ACTOR_GROWING 315 +#define NEWBEAST_ROAM 316 +#define NEWBEAST_RECOG 317 +#define NEWBEAST_ATTACK 318 +#define NEWBEAST_PAIN 319 +#define NEWBEAST_DYING 320 +#define NEWBEAST_SPIT 321 +#define VOL4_1 322 +#define SUPERMARKET 323 +#define MOUSEANNOY 324 +#define BOOKEM 325 +#define SUPERMARKETCRY 326 +#define DESTRUCT 327 +#define EATFOOD 328 +#define MAKEMYDAY 329 +#define WITNESSSTAND 330 +#define VACATIONSPEECH 331 +#define YIPPEE1 332 +#define YOHOO1 333 +#define YOHOO2 334 +#define DOLPHINSND 335 +#define TOUGHGALSND1 336 +#define TOUGHGALSND2 337 +#define TOUGHGALSND3 338 +#define TOUGHGALSND4 339 +#define TANK_ROAM 340 +#define BOS4_ROAM 341 +#define BOS4_RECOG 342 +#define BOS4_ATTACK 343 +#define BOS4_PAIN 344 +#define BOS4_DYING 345 +#define NEWBEAST_ATTACKMISS 346 +#define VOL4_2 347 +#define COOKINGDEEPFRIER 348 +#define WHINING_DOG 349 +#define DEAD_DOG 350 +#define LIGHTNING_SLAP 351 +#define THUNDER 352 +#define HAPPYMOUSESND1 353 +#define HAPPYMOUSESND2 354 +#define HAPPYMOUSESND3 355 +#define HAPPYMOUSESND4 356 +#define ALARM 357 +#define RAIN 358 +#define DTAG_GREENRUN 359 +#define DTAG_BROWNRUN 360 +#define DTAG_GREENSCORE 361 +#define DTAG_BROWNSCORE 362 +#define INTRO4_1 363 +#define INTRO4_2 364 +#define INTRO4_3 365 +#define INTRO4_4 366 +#define INTRO4_5 367 +#define INTRO4_6 368 +#define SCREECH 369 +#define BOSS4_DEADSPEECH 370 +#define BOSS4_FIRSTSEE 371 +#define PARTY_SPEECH 372 +#define POSTAL_SPEECH 373 +#define TGSPEECH 374 +#define DOGROOMSPEECH 375 +#define SMACKED 376 +#define MDEVSPEECH 377 +#define AREA51SPEECH 378 +#define JEEPSOUND 379 +#define BIGDOORSLAM 380 +#define BOS4_LAY 381 +#define WAVESOUND 382 +#define ILLBEBACK 383 +#define VOL4ENDSND1 384 +#define VOL4ENDSND2 385 +#define EXPANDERHIT 386 +#define SNAKESPEECH 387 +#define EXPANDERSHOOT 388 +#define GETBACKTOWORK 389 +#define JIBBED_ACTOR14 390 +#define JIBBED_ACTOR15 391 +#define INTRO4_B 392 +#define BIGBANG 393 +#define HORNSND 394 +#define BELLSND 395 +#define GOAWAY 396 +#define JOKE 397 diff --git a/source/rr/src/sounds.h b/source/rr/src/sounds.h index 80fa457fd..719ae0beb 100644 --- a/source/rr/src/sounds.h +++ b/source/rr/src/sounds.h @@ -29,13 +29,14 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #ifndef sounds_public_h_ #define sounds_public_h_ -#include "dukerr/sounds_common.h" +#include "sounds_common.h" #include "sound/s_soundinternal.h" #include "z_music.h" BEGIN_RR_NS // KEEPINSYNC lunatic/con_lang.lua +#define MAXSOUNDS 4096 #define LOUDESTVOLUME 111 enum esound_t diff --git a/source/rr/src/sounds_common.h b/source/rr/src/sounds_common.h new file mode 100644 index 000000000..5c0dae7ff --- /dev/null +++ b/source/rr/src/sounds_common.h @@ -0,0 +1,38 @@ +//------------------------------------------------------------------------- +/* +Copyright (C) 2013 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 EDUKE32_SOUNDS_COMMON_H +#define EDUKE32_SOUNDS_COMMON_H + +// Sound flags +enum { + SF_LOOP = 1, + SF_MSFX = 2, + SF_TALK = 4, + SF_ADULT = 8, + SF_GLOBAL = 16, + SF_ONEINST_INTERNAL = 32, + + SF_DTAG = 128, +}; + +#endif diff --git a/source/dukerr/soundsdyn.cpp b/source/rr/src/soundsdyn.cpp similarity index 98% rename from source/dukerr/soundsdyn.cpp rename to source/rr/src/soundsdyn.cpp index ee3dcfe5c..ae64f6d0f 100644 --- a/source/dukerr/soundsdyn.cpp +++ b/source/rr/src/soundsdyn.cpp @@ -25,9 +25,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #include "build.h" #include "namesdyn.h" +#include "sounds.h" #include "soundsdyn.h" +#include "global.h" -BEGIN_DUKERR_NS +BEGIN_RR_NS #ifdef DYNSOUNDREMAP_ENABLE # define DVPTR(x) &x @@ -332,10 +334,12 @@ static hashtable_t h_names = {512, NULL}; void G_ProcessDynamicSoundMapping(const char *szLabel, int32_t lValue) { + int32_t i; + if ((unsigned)lValue >= MAXSOUNDS || !szLabel) return; - int i = hash_find(&h_names,szLabel); + i = hash_find(&h_names,szLabel); if (i>=0) { struct sdynitem *di = &g_dynSoundList[i]; @@ -349,10 +353,11 @@ void G_ProcessDynamicSoundMapping(const char *szLabel, int32_t lValue) void initsoundhashnames(void) { + int32_t i; hash_init(&h_names); - for (int i=0; g_dynSoundList[i].staticval >= 0; i++) + for (i=0; g_dynSoundList[i].staticval >= 0; i++) hash_add(&h_names, g_dynSoundList[i].str, i, 0); } @@ -366,10 +371,11 @@ void freesoundhashnames(void) // dynamic->static sound mapping. void G_InitDynamicSounds(void) { + int32_t i; Bmemset(DynamicSoundMap, 0, sizeof(DynamicSoundMap)); - for (int i = 0; g_dynSoundList[i].staticval >= 0; i++) + for (i=0; g_dynSoundList[i].staticval >= 0; i++) #ifdef DYNSOUNDREMAP_ENABLE DynamicSoundMap[*(g_dynSoundList[i].dynvalptr)] = g_dynSoundList[i].staticval; #else diff --git a/source/dukerr/soundsdyn.h b/source/rr/src/soundsdyn.h similarity index 99% rename from source/dukerr/soundsdyn.h rename to source/rr/src/soundsdyn.h index dff862a31..cca3c2154 100644 --- a/source/dukerr/soundsdyn.h +++ b/source/rr/src/soundsdyn.h @@ -20,11 +20,10 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ //------------------------------------------------------------------------- -BEGIN_DUKERR_NS +BEGIN_RR_NS #define DYNSOUNDREMAP_ENABLE -#define MAXSOUNDS 4096 #define KICK_HIT__STATIC 0 #define PISTOL_RICOCHET__STATIC 1 diff --git a/source/sw/src/common_game.h b/source/sw/src/common_game.h index ad3485d4f..6b4b207b3 100644 --- a/source/sw/src/common_game.h +++ b/source/sw/src/common_game.h @@ -78,6 +78,38 @@ BEGIN_SW_NS #define DEFAULTSOCKETNUMBER 0x8849 +// Default RTS file + +#define DEFAULTRTSFILE "sw.rts" + +// Default RTS path + +#define DEFAULTRTSPATH ".\\" + +// Default UserLevel path + +#define DEFAULTLEVELPATH ".\\" + +// Default External Control file + +#define DEFAULTCONTROLFILE "EXTERNAL.EXE" + +// Default Help file + +#define DEFAULTHELPFILE "SWHELP.EXE" + +// RTS extension + +#define RTSEXTENSION "RTS" + +// MAP extension + +#define MAPEXTENSION "MAP" + +// Default Player name + +#define DEFAULTPLAYERNAME "KATO" + // Default Macros #define MACRO1 "Burn baby burn..." diff --git a/wadsrc/static/engine/menudef.txt b/wadsrc/static/engine/menudef.txt index d6c65340d..a4f79dcee 100644 --- a/wadsrc/static/engine/menudef.txt +++ b/wadsrc/static/engine/menudef.txt @@ -516,9 +516,9 @@ ImageScroller "CreditsMenu" { ifgame(Duke, Nam, WW2GI) { - ImageItem "#2504", 990 - ImageItem "#2505", 991 - ImageItem "#2506", 992 + ImageItem "CREDITSTEXT1", 990 + ImageItem "CREDITSTEXT2", 991 + ImageItem "CREDITSTEXT3", 992 animatedtransition class "Duke.ImageScrollerMenu" }