mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-30 21:31:03 +00:00
source/duke3d/src: Remove almost all "#ifdef LUNATIC" blocks.
Surrounding "#if !defined LUNATIC"/"#endif" pairs are also covered. # Conflicts: # source/duke3d/src/astub.cpp # source/duke3d/src/cmdline.cpp # source/duke3d/src/demo.cpp # source/duke3d/src/duke3d.h # source/duke3d/src/game.cpp # source/duke3d/src/game.h # source/duke3d/src/gamedef.cpp # source/duke3d/src/gamedef.h # source/duke3d/src/gameexec.cpp # source/duke3d/src/gameexec.h # source/duke3d/src/gamevars.cpp # source/duke3d/src/gamevars.h # source/duke3d/src/namesdyn.cpp # source/duke3d/src/osdcmds.cpp # source/duke3d/src/premap.cpp # source/duke3d/src/savegame.cpp # source/duke3d/src/savegame.h # source/duke3d/src/sbar.cpp # source/duke3d/src/screens.cpp
This commit is contained in:
parent
1a1039a2d3
commit
7cf7ccfd05
21 changed files with 18 additions and 474 deletions
|
@ -916,13 +916,8 @@ void A_MoveSector(int spriteNum)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
// NOTE: T5 is AC_ACTION_ID
|
// NOTE: T5 is AC_ACTION_ID
|
||||||
# define LIGHTRAD_PICOFS(i) (T5(i) ? *(apScript + T5(i)) + (*(apScript + T5(i) + 2)) * AC_CURFRAME(actor[i].t_data) : 0)
|
#define LIGHTRAD_PICOFS(i) (T5(i) ? *(apScript + T5(i)) + (*(apScript + T5(i) + 2)) * AC_CURFRAME(actor[i].t_data) : 0)
|
||||||
#else
|
|
||||||
// startframe + viewtype*[cyclic counter]
|
|
||||||
# define LIGHTRAD_PICOFS(i) (actor[i].ac.startframe + actor[i].ac.viewtype * AC_CURFRAME(actor[i].t_data))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// this is the same crap as in game.c's tspr manipulation. puke.
|
// this is the same crap as in game.c's tspr manipulation. puke.
|
||||||
// XXX: may access tilesizy out-of-bounds by bad user code.
|
// XXX: may access tilesizy out-of-bounds by bad user code.
|
||||||
|
|
|
@ -193,9 +193,9 @@ error_wopen_demo:
|
||||||
ud.reccnt = 0;
|
ud.reccnt = 0;
|
||||||
ud.recstat = m_recstat = 1; //
|
ud.recstat = m_recstat = 1; //
|
||||||
|
|
||||||
# if KRANDDEBUG
|
#if KRANDDEBUG
|
||||||
krd_enable(1);
|
krd_enable(1);
|
||||||
# endif
|
#endif
|
||||||
g_demo_cnt = 1;
|
g_demo_cnt = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -164,9 +164,6 @@ enum GameEvent_t {
|
||||||
EVENT_NEWGAMECUSTOM,
|
EVENT_NEWGAMECUSTOM,
|
||||||
EVENT_INITCOMPLETE,
|
EVENT_INITCOMPLETE,
|
||||||
EVENT_CAPIR,
|
EVENT_CAPIR,
|
||||||
#ifdef LUNATIC
|
|
||||||
EVENT_ANIMATEALLSPRITES,
|
|
||||||
#endif
|
|
||||||
MAXEVENTS
|
MAXEVENTS
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1059,13 +1059,7 @@ int32_t A_InsertSprite(int16_t whatsect,int32_t s_x,int32_t s_y,int32_t s_z,int1
|
||||||
spriteext[newSprite] = {};
|
spriteext[newSprite] = {};
|
||||||
spritesmooth[newSprite] = {};
|
spritesmooth[newSprite] = {};
|
||||||
|
|
||||||
#if defined LUNATIC
|
|
||||||
if (!g_noResetVars)
|
|
||||||
#endif
|
|
||||||
A_ResetVars(newSprite);
|
A_ResetVars(newSprite);
|
||||||
#if defined LUNATIC
|
|
||||||
g_noResetVars = 0;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (VM_HaveEvent(EVENT_EGS))
|
if (VM_HaveEvent(EVENT_EGS))
|
||||||
{
|
{
|
||||||
|
@ -3501,11 +3495,7 @@ void G_DoSpriteAnimations(int32_t ourx, int32_t oury, int32_t ourz, int32_t oura
|
||||||
{
|
{
|
||||||
int32_t switchpic;
|
int32_t switchpic;
|
||||||
int32_t curframe;
|
int32_t curframe;
|
||||||
#if !defined LUNATIC
|
|
||||||
int32_t scrofs_action;
|
int32_t scrofs_action;
|
||||||
#else
|
|
||||||
int32_t startframe, viewtype;
|
|
||||||
#endif
|
|
||||||
//is the perfect time to animate sprites
|
//is the perfect time to animate sprites
|
||||||
auto const t = &tsprite[j];
|
auto const t = &tsprite[j];
|
||||||
const int32_t i = t->owner;
|
const int32_t i = t->owner;
|
||||||
|
@ -3552,12 +3542,7 @@ void G_DoSpriteAnimations(int32_t ourx, int32_t oury, int32_t ourz, int32_t oura
|
||||||
const int32_t sect = pSprite->sectnum;
|
const int32_t sect = pSprite->sectnum;
|
||||||
|
|
||||||
curframe = AC_CURFRAME(actor[i].t_data);
|
curframe = AC_CURFRAME(actor[i].t_data);
|
||||||
#if !defined LUNATIC
|
|
||||||
scrofs_action = AC_ACTION_ID(actor[i].t_data);
|
scrofs_action = AC_ACTION_ID(actor[i].t_data);
|
||||||
#else
|
|
||||||
startframe = actor[i].ac.startframe;
|
|
||||||
viewtype = actor[i].ac.viewtype;
|
|
||||||
#endif
|
|
||||||
switchpic = pSprite->picnum;
|
switchpic = pSprite->picnum;
|
||||||
// Some special cases because dynamictostatic system can't handle
|
// Some special cases because dynamictostatic system can't handle
|
||||||
// addition to constants.
|
// addition to constants.
|
||||||
|
@ -3792,12 +3777,10 @@ void G_DoSpriteAnimations(int32_t ourx, int32_t oury, int32_t ourz, int32_t oura
|
||||||
{
|
{
|
||||||
// Display APLAYER sprites with action PSTAND when viewed through
|
// Display APLAYER sprites with action PSTAND when viewed through
|
||||||
// a camera. Not implemented for Lunatic.
|
// a camera. Not implemented for Lunatic.
|
||||||
#if !defined LUNATIC
|
|
||||||
const intptr_t *aplayer_scr = g_tile[APLAYER].execPtr;
|
const intptr_t *aplayer_scr = g_tile[APLAYER].execPtr;
|
||||||
// [0]=strength, [1]=actionofs, [2]=moveofs
|
// [0]=strength, [1]=actionofs, [2]=moveofs
|
||||||
|
|
||||||
scrofs_action = aplayer_scr[1];
|
scrofs_action = aplayer_scr[1];
|
||||||
#endif
|
|
||||||
curframe = 0;
|
curframe = 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -3892,15 +3875,11 @@ PALONLY:
|
||||||
|
|
||||||
if (G_TileHasActor(pSprite->picnum))
|
if (G_TileHasActor(pSprite->picnum))
|
||||||
{
|
{
|
||||||
#if !defined LUNATIC
|
|
||||||
if ((unsigned)scrofs_action + ACTION_PARAM_COUNT > (unsigned)g_scriptSize)
|
if ((unsigned)scrofs_action + ACTION_PARAM_COUNT > (unsigned)g_scriptSize)
|
||||||
goto skip;
|
goto skip;
|
||||||
|
|
||||||
int32_t viewtype = apScript[scrofs_action + ACTION_VIEWTYPE];
|
int32_t viewtype = apScript[scrofs_action + ACTION_VIEWTYPE];
|
||||||
uint16_t const action_flags = apScript[scrofs_action + ACTION_FLAGS];
|
uint16_t const action_flags = apScript[scrofs_action + ACTION_FLAGS];
|
||||||
#else
|
|
||||||
uint16_t const action_flags = actor[i].ac.flags;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int const invertp = viewtype < 0;
|
int const invertp = viewtype < 0;
|
||||||
l = klabs(viewtype);
|
l = klabs(viewtype);
|
||||||
|
@ -3953,11 +3932,7 @@ PALONLY:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
t->picnum += frameOffset + apScript[scrofs_action + ACTION_STARTFRAME] + viewtype*curframe;
|
t->picnum += frameOffset + apScript[scrofs_action + ACTION_STARTFRAME] + viewtype*curframe;
|
||||||
#else
|
|
||||||
t->picnum += frameOffset + startframe + viewtype*curframe;
|
|
||||||
#endif
|
|
||||||
// XXX: t->picnum can be out-of-bounds by bad user code.
|
// XXX: t->picnum can be out-of-bounds by bad user code.
|
||||||
|
|
||||||
if (viewtype > 0)
|
if (viewtype > 0)
|
||||||
|
@ -3972,9 +3947,7 @@ PALONLY:
|
||||||
/* completemirror() already reverses the drawn frame, so the above isn't necessary.
|
/* completemirror() already reverses the drawn frame, so the above isn't necessary.
|
||||||
* Even Polymost's and Polymer's mirror seems to function correctly this way. */
|
* Even Polymost's and Polymer's mirror seems to function correctly this way. */
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
skip:
|
skip:
|
||||||
#endif
|
|
||||||
// Night vision goggles tsprite tinting.
|
// Night vision goggles tsprite tinting.
|
||||||
// XXX: Currently, for the splitscreen mod, sprites will be pal6-colored iff the first
|
// XXX: Currently, for the splitscreen mod, sprites will be pal6-colored iff the first
|
||||||
// player has nightvision on. We should pass stuff like "from which player is this view
|
// player has nightvision on. We should pass stuff like "from which player is this view
|
||||||
|
@ -4057,11 +4030,7 @@ skip:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef LUNATIC
|
|
||||||
bool const haveAction = false; // FIXME!
|
|
||||||
#else
|
|
||||||
bool const haveAction = scrofs_action != 0 && (unsigned)scrofs_action + ACTION_PARAM_COUNT <= (unsigned)g_scriptSize;
|
bool const haveAction = scrofs_action != 0 && (unsigned)scrofs_action + ACTION_PARAM_COUNT <= (unsigned)g_scriptSize;
|
||||||
#endif
|
|
||||||
|
|
||||||
switch (DYNAMICTILEMAP(pSprite->picnum))
|
switch (DYNAMICTILEMAP(pSprite->picnum))
|
||||||
{
|
{
|
||||||
|
@ -4196,9 +4165,6 @@ skip:
|
||||||
G_DoEventAnimSprites(j);
|
G_DoEventAnimSprites(j);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef LUNATIC
|
|
||||||
VM_OnEvent(EVENT_ANIMATEALLSPRITES);
|
|
||||||
#endif
|
|
||||||
#ifdef DEBUGGINGAIDS
|
#ifdef DEBUGGINGAIDS
|
||||||
g_spriteStat.numonscreen = spritesortcnt;
|
g_spriteStat.numonscreen = spritesortcnt;
|
||||||
#endif
|
#endif
|
||||||
|
@ -5170,7 +5136,6 @@ static void G_Cleanup(void)
|
||||||
Xfree(g_player[i].input);
|
Xfree(g_player[i].input);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
if (label != (char *)&sprite[0]) Xfree(label);
|
if (label != (char *)&sprite[0]) Xfree(label);
|
||||||
if (labelcode != (int32_t *)§or[0]) Xfree(labelcode);
|
if (labelcode != (int32_t *)§or[0]) Xfree(labelcode);
|
||||||
if (labeltype != (uint8_t*)&wall[0]) Xfree(labeltype);
|
if (labeltype != (uint8_t*)&wall[0]) Xfree(labeltype);
|
||||||
|
@ -5184,7 +5149,6 @@ static void G_Cleanup(void)
|
||||||
hash_free(&h_gamevars);
|
hash_free(&h_gamevars);
|
||||||
hash_free(&h_arrays);
|
hash_free(&h_arrays);
|
||||||
hash_free(&h_labels);
|
hash_free(&h_labels);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -5209,16 +5173,10 @@ void G_Shutdown(void)
|
||||||
|
|
||||||
static void G_CompileScripts(void)
|
static void G_CompileScripts(void)
|
||||||
{
|
{
|
||||||
#if !defined LUNATIC
|
|
||||||
label = (char *)&sprite[0]; // V8: 16384*44/64 = 11264 V7: 4096*44/64 = 2816
|
label = (char *)&sprite[0]; // V8: 16384*44/64 = 11264 V7: 4096*44/64 = 2816
|
||||||
labelcode = (int32_t *)§or[0]; // V8: 4096*40/4 = 40960 V7: 1024*40/4 = 10240
|
labelcode = (int32_t *)§or[0]; // V8: 4096*40/4 = 40960 V7: 1024*40/4 = 10240
|
||||||
labeltype = (uint8_t *)&wall[0]; // V8: 16384*32 = 524288 V7: 8192*32/4 = 262144
|
labeltype = (uint8_t *)&wall[0]; // V8: 16384*32 = 524288 V7: 8192*32/4 = 262144
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined LUNATIC
|
|
||||||
Gv_Init();
|
|
||||||
C_InitProjectiles();
|
|
||||||
#else
|
|
||||||
C_Compile(G_ConFile());
|
C_Compile(G_ConFile());
|
||||||
|
|
||||||
if ((uint32_t)g_labelCnt > MAXSPRITES*sizeof(spritetype)/64) // see the arithmetic above for why
|
if ((uint32_t)g_labelCnt > MAXSPRITES*sizeof(spritetype)/64) // see the arithmetic above for why
|
||||||
|
@ -5241,7 +5199,6 @@ static void G_CompileScripts(void)
|
||||||
Bmemset(wall, 0, MAXWALLS*sizeof(walltype));
|
Bmemset(wall, 0, MAXWALLS*sizeof(walltype));
|
||||||
|
|
||||||
VM_OnEvent(EVENT_INIT);
|
VM_OnEvent(EVENT_INIT);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void G_CheckGametype(void)
|
static inline void G_CheckGametype(void)
|
||||||
|
@ -5305,52 +5262,6 @@ static void A_InitEnemyFlags(void)
|
||||||
}
|
}
|
||||||
#undef SETFLAG
|
#undef SETFLAG
|
||||||
|
|
||||||
#ifdef LUNATIC
|
|
||||||
// Will be used to store CON code translated to Lua.
|
|
||||||
int32_t g_elCONSize;
|
|
||||||
char *g_elCON; // NOT 0-terminated!
|
|
||||||
|
|
||||||
LUNATIC_EXTERN void El_SetCON(const char *conluacode)
|
|
||||||
{
|
|
||||||
int32_t slen = Bstrlen(conluacode);
|
|
||||||
|
|
||||||
g_elCON = (char *)Xmalloc(slen);
|
|
||||||
|
|
||||||
g_elCONSize = slen;
|
|
||||||
Bmemcpy(g_elCON, conluacode, slen);
|
|
||||||
}
|
|
||||||
|
|
||||||
void El_CreateGameState(void)
|
|
||||||
{
|
|
||||||
int32_t i;
|
|
||||||
|
|
||||||
El_DestroyState(&g_ElState);
|
|
||||||
|
|
||||||
if ((i = El_CreateState(&g_ElState, "game")))
|
|
||||||
{
|
|
||||||
Printf("Lunatic: Error initializing global ELua state (code %d)\n", i);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
extern const char luaJIT_BC__defs_game[];
|
|
||||||
|
|
||||||
if ((i = L_RunString(&g_ElState, luaJIT_BC__defs_game,
|
|
||||||
LUNATIC_DEFS_BC_SIZE, "_defs_game.lua")))
|
|
||||||
{
|
|
||||||
Printf("Lunatic: Error preparing global ELua state (code %d)\n", i);
|
|
||||||
El_DestroyState(&g_ElState);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (i)
|
|
||||||
G_GameExit("Failure setting up Lunatic!");
|
|
||||||
|
|
||||||
# if !defined DEBUGGINGAIDS
|
|
||||||
El_ClearErrors();
|
|
||||||
# endif
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Throw in everything here that needs to be called after a Lua game state
|
// Throw in everything here that needs to be called after a Lua game state
|
||||||
// recreation (or on initial startup in a non-Lunatic build.)
|
// recreation (or on initial startup in a non-Lunatic build.)
|
||||||
void G_PostCreateGameState(void)
|
void G_PostCreateGameState(void)
|
||||||
|
@ -5371,11 +5282,6 @@ static void G_Startup(void)
|
||||||
if (engineInit())
|
if (engineInit())
|
||||||
G_FatalEngineError();
|
G_FatalEngineError();
|
||||||
|
|
||||||
#ifdef LUNATIC
|
|
||||||
El_CreateGameState();
|
|
||||||
C_InitQuotes();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
G_InitDynamicTiles();
|
G_InitDynamicTiles();
|
||||||
G_InitDynamicSounds();
|
G_InitDynamicSounds();
|
||||||
|
|
||||||
|
@ -5383,11 +5289,6 @@ static void G_Startup(void)
|
||||||
G_InitMultiPsky(CLOUDYOCEAN, MOONSKY1, BIGORBIT1, LA);
|
G_InitMultiPsky(CLOUDYOCEAN, MOONSKY1, BIGORBIT1, LA);
|
||||||
Gv_FinalizeWeaponDefaults();
|
Gv_FinalizeWeaponDefaults();
|
||||||
G_PostCreateGameState();
|
G_PostCreateGameState();
|
||||||
#ifdef LUNATIC
|
|
||||||
// NOTE: This is only effective for CON-defined EVENT_INIT. See EVENT_INIT
|
|
||||||
// not in _defs_game.lua.
|
|
||||||
VM_OnEvent(EVENT_INIT);
|
|
||||||
#endif
|
|
||||||
if (g_netServer || ud.multimode > 1) G_CheckGametype();
|
if (g_netServer || ud.multimode > 1) G_CheckGametype();
|
||||||
|
|
||||||
if (userConfig.CommandMap.IsNotEmpty())
|
if (userConfig.CommandMap.IsNotEmpty())
|
||||||
|
|
|
@ -113,9 +113,9 @@ static inline int32_t G_GetLogoFlags(void)
|
||||||
return Gv_GetVarByLabel("LOGO_FLAGS",255, -1, -1);
|
return Gv_GetVarByLabel("LOGO_FLAGS",255, -1, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
# define CAMERA(Membname) (ud.camera ## Membname)
|
#define CAMERA(Membname) (ud.camera ## Membname)
|
||||||
# define CAMERADIST g_cameraDistance
|
#define CAMERADIST g_cameraDistance
|
||||||
# define CAMERACLOCK g_cameraClock
|
#define CAMERACLOCK g_cameraClock
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -212,10 +212,8 @@ extern char ror_protectedsectors[MAXSECTORS];
|
||||||
|
|
||||||
extern int32_t g_Debug;
|
extern int32_t g_Debug;
|
||||||
extern int32_t g_Shareware;
|
extern int32_t g_Shareware;
|
||||||
#if !defined LUNATIC
|
|
||||||
extern int32_t g_cameraClock;
|
extern int32_t g_cameraClock;
|
||||||
extern int32_t g_cameraDistance;
|
extern int32_t g_cameraDistance;
|
||||||
#endif
|
|
||||||
extern int32_t g_crosshairSum;
|
extern int32_t g_crosshairSum;
|
||||||
extern int32_t g_doQuickSave;
|
extern int32_t g_doQuickSave;
|
||||||
extern int32_t g_levelTextTime;
|
extern int32_t g_levelTextTime;
|
||||||
|
@ -241,9 +239,6 @@ void Yax_SetBunchZs(int32_t sectnum, int32_t cf, int32_t daz);
|
||||||
#define Yax_SetBunchZs(sectnum, cf, daz)
|
#define Yax_SetBunchZs(sectnum, cf, daz)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef LUNATIC
|
|
||||||
void El_CreateGameState(void);
|
|
||||||
#endif
|
|
||||||
void G_PostCreateGameState(void);
|
void G_PostCreateGameState(void);
|
||||||
|
|
||||||
void A_SpawnCeilingGlass(int spriteNum,int sectNum,int glassCnt);
|
void A_SpawnCeilingGlass(int spriteNum,int sectNum,int glassCnt);
|
||||||
|
|
|
@ -58,7 +58,6 @@ int32_t g_lineNumber;
|
||||||
uint32_t g_scriptcrc;
|
uint32_t g_scriptcrc;
|
||||||
char g_szBuf[1024];
|
char g_szBuf[1024];
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
static char *textptr;
|
static char *textptr;
|
||||||
|
|
||||||
static char g_szCurrentBlockName[64] = "(none)";
|
static char g_szCurrentBlockName[64] = "(none)";
|
||||||
|
@ -89,17 +88,11 @@ static intptr_t *g_caseTablePtr;
|
||||||
|
|
||||||
static bool C_ParseCommand(bool loop = false);
|
static bool C_ParseCommand(bool loop = false);
|
||||||
static void C_SetScriptSize(int32_t newsize);
|
static void C_SetScriptSize(int32_t newsize);
|
||||||
#endif
|
|
||||||
|
|
||||||
int32_t g_errorCnt;
|
int32_t g_errorCnt;
|
||||||
int32_t g_warningCnt;
|
int32_t g_warningCnt;
|
||||||
int32_t g_numXStrings;
|
int32_t g_numXStrings;
|
||||||
|
|
||||||
#ifdef LUNATIC
|
|
||||||
weapondata_t g_playerWeapon[MAXPLAYERS][MAX_WEAPONS];
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
static char *C_GetLabelType(int const type)
|
static char *C_GetLabelType(int const type)
|
||||||
{
|
{
|
||||||
static tokenmap_t const LabelType[] =
|
static tokenmap_t const LabelType[] =
|
||||||
|
@ -867,7 +860,6 @@ char const *VM_GetKeywordForID(int32_t id)
|
||||||
|
|
||||||
return "<unknown instruction>";
|
return "<unknown instruction>";
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
// KEEPINSYNC with enum GameEvent_t and lunatic/con_lang.lua
|
// KEEPINSYNC with enum GameEvent_t and lunatic/con_lang.lua
|
||||||
const char *EventNames[MAXEVENTS] =
|
const char *EventNames[MAXEVENTS] =
|
||||||
|
@ -1029,9 +1021,6 @@ const char *EventNames[MAXEVENTS] =
|
||||||
"EVENT_NEWGAMECUSTOM",
|
"EVENT_NEWGAMECUSTOM",
|
||||||
"EVENT_INITCOMPLETE",
|
"EVENT_INITCOMPLETE",
|
||||||
"EVENT_CAPIR",
|
"EVENT_CAPIR",
|
||||||
#ifdef LUNATIC
|
|
||||||
"EVENT_ANIMATEALLSPRITES",
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
uint8_t *bitptr; // pointer to bitmap of which bytecode positions contain pointers
|
uint8_t *bitptr; // pointer to bitmap of which bytecode positions contain pointers
|
||||||
|
@ -1040,7 +1029,6 @@ uint8_t *bitptr; // pointer to bitmap of which bytecode positions contain pointe
|
||||||
#define BITPTR_CLEAR(x) bitmap_clear(bitptr, x)
|
#define BITPTR_CLEAR(x) bitmap_clear(bitptr, x)
|
||||||
#define BITPTR_IS_POINTER(x) bitmap_test(bitptr, x)
|
#define BITPTR_IS_POINTER(x) bitmap_test(bitptr, x)
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
hashtable_t h_arrays = { MAXGAMEARRAYS >> 1, NULL };
|
hashtable_t h_arrays = { MAXGAMEARRAYS >> 1, NULL };
|
||||||
hashtable_t h_gamevars = { MAXGAMEVARS >> 1, NULL };
|
hashtable_t h_gamevars = { MAXGAMEVARS >> 1, NULL };
|
||||||
hashtable_t h_labels = { 11264 >> 1, NULL };
|
hashtable_t h_labels = { 11264 >> 1, NULL };
|
||||||
|
@ -1981,7 +1969,6 @@ static void C_Include(const char *confile)
|
||||||
|
|
||||||
Xfree(mptr);
|
Xfree(mptr);
|
||||||
}
|
}
|
||||||
#endif // !defined LUNATIC
|
|
||||||
|
|
||||||
void G_DoGameStartup(const int32_t *params)
|
void G_DoGameStartup(const int32_t *params)
|
||||||
{
|
{
|
||||||
|
@ -2215,7 +2202,6 @@ void C_InitQuotes(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
static inline void C_BitOrNextValue(int32_t *valptr)
|
static inline void C_BitOrNextValue(int32_t *valptr)
|
||||||
{
|
{
|
||||||
C_GetNextValue(LABEL_DEFINE);
|
C_GetNextValue(LABEL_DEFINE);
|
||||||
|
@ -5807,7 +5793,6 @@ static void C_AddDefaultDefinitions(void)
|
||||||
|
|
||||||
C_AddDefinition("NO", 0, LABEL_DEFINE | LABEL_ACTION | LABEL_AI | LABEL_MOVE);
|
C_AddDefinition("NO", 0, LABEL_DEFINE | LABEL_ACTION | LABEL_AI | LABEL_MOVE);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
void C_InitProjectiles(void)
|
void C_InitProjectiles(void)
|
||||||
{
|
{
|
||||||
|
@ -5842,7 +5827,6 @@ void C_InitProjectiles(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
static char const * C_ScriptVersionString(int32_t version)
|
static char const * C_ScriptVersionString(int32_t version)
|
||||||
{
|
{
|
||||||
#ifdef EDUKE32_STANDALONE
|
#ifdef EDUKE32_STANDALONE
|
||||||
|
@ -6129,6 +6113,5 @@ void C_ReportError(int error)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
END_DUKE_NS
|
END_DUKE_NS
|
||||||
|
|
|
@ -78,10 +78,8 @@ enum
|
||||||
g_warningCnt++; \
|
g_warningCnt++; \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
extern intptr_t const * insptr;
|
extern intptr_t const * insptr;
|
||||||
void VM_ScriptInfo(intptr_t const * const ptr, int const range);
|
void VM_ScriptInfo(intptr_t const * const ptr, int const range);
|
||||||
#endif
|
|
||||||
|
|
||||||
extern hashtable_t h_gamevars;
|
extern hashtable_t h_gamevars;
|
||||||
extern hashtable_t h_arrays;
|
extern hashtable_t h_arrays;
|
||||||
|
@ -141,9 +139,7 @@ extern uint8_t *bitptr;
|
||||||
|
|
||||||
extern const char *EventNames[MAXEVENTS];
|
extern const char *EventNames[MAXEVENTS];
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
extern intptr_t *g_scriptPtr;
|
extern intptr_t *g_scriptPtr;
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef projectile_t defaultprojectile_t;
|
typedef projectile_t defaultprojectile_t;
|
||||||
|
|
||||||
|
@ -179,8 +175,6 @@ void C_DefineVolumeFlags(int32_t vol, int32_t flags);
|
||||||
void C_UndefineVolume(int32_t vol);
|
void C_UndefineVolume(int32_t vol);
|
||||||
void C_UndefineSkill(int32_t skill);
|
void C_UndefineSkill(int32_t skill);
|
||||||
void C_UndefineLevel(int32_t vol, int32_t lev);
|
void C_UndefineLevel(int32_t vol, int32_t lev);
|
||||||
#if defined LUNATIC
|
|
||||||
#else
|
|
||||||
void C_ReportError(int error);
|
void C_ReportError(int error);
|
||||||
void C_Compile(const char *filenam);
|
void C_Compile(const char *filenam);
|
||||||
|
|
||||||
|
@ -756,7 +750,6 @@ enum PalDataLabel_t
|
||||||
PALDATA_END
|
PALDATA_END
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
|
||||||
// KEEPINSYNC lunatic/con_lang.lua
|
// KEEPINSYNC lunatic/con_lang.lua
|
||||||
enum ProjectileLabel_t
|
enum ProjectileLabel_t
|
||||||
{
|
{
|
||||||
|
@ -792,7 +785,6 @@ enum ProjectileLabel_t
|
||||||
PROJ_USERDATA,
|
PROJ_USERDATA,
|
||||||
PROJ_END
|
PROJ_END
|
||||||
};
|
};
|
||||||
#if !defined LUNATIC
|
|
||||||
|
|
||||||
enum IterationTypes_t
|
enum IterationTypes_t
|
||||||
{
|
{
|
||||||
|
@ -1362,8 +1354,6 @@ enum ScriptKeywords_t
|
||||||
#undef ENUM_TRANSFORM
|
#undef ENUM_TRANSFORM
|
||||||
#undef COMMA
|
#undef COMMA
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_DUKE_NS
|
END_DUKE_NS
|
||||||
|
|
||||||
#endif // gamedef_h_
|
#endif // gamedef_h_
|
||||||
|
|
|
@ -65,9 +65,6 @@ BEGIN_DUKE_NS
|
||||||
|
|
||||||
vmstate_t vm;
|
vmstate_t vm;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
int32_t g_tw;
|
int32_t g_tw;
|
||||||
int32_t g_currentEvent = -1;
|
int32_t g_currentEvent = -1;
|
||||||
|
|
||||||
|
@ -91,9 +88,6 @@ double g_eventTotalMs[MAXEVENTS], g_actorTotalMs[MAXTILES], g_actorMinMs[MAXTILE
|
||||||
|
|
||||||
GAMEEXEC_STATIC void VM_Execute(int const loop = false);
|
GAMEEXEC_STATIC void VM_Execute(int const loop = false);
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
void VM_ScriptInfo(intptr_t const * const ptr, int const range)
|
void VM_ScriptInfo(intptr_t const * const ptr, int const range)
|
||||||
{
|
{
|
||||||
if (!apScript || !ptr || g_currentEvent == -1)
|
if (!apScript || !ptr || g_currentEvent == -1)
|
||||||
|
@ -128,7 +122,6 @@ void VM_ScriptInfo(intptr_t const * const ptr, int const range)
|
||||||
Printf("g_errorLineNum: %d, g_tw: %d\n", VM_DECODE_LINE_NUMBER(g_tw), VM_DECODE_INST(g_tw));
|
Printf("g_errorLineNum: %d, g_tw: %d\n", VM_DECODE_LINE_NUMBER(g_tw), VM_DECODE_INST(g_tw));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
static void VM_DeleteSprite(int const spriteNum, int const playerNum)
|
static void VM_DeleteSprite(int const spriteNum, int const playerNum)
|
||||||
{
|
{
|
||||||
|
@ -144,24 +137,6 @@ static void VM_DeleteSprite(int const spriteNum, int const playerNum)
|
||||||
|
|
||||||
intptr_t apScriptEvents[MAXEVENTS];
|
intptr_t apScriptEvents[MAXEVENTS];
|
||||||
|
|
||||||
// May recurse, e.g. through EVENT_XXX -> ... -> EVENT_KILLIT
|
|
||||||
#ifdef LUNATIC
|
|
||||||
static FORCE_INLINE int32_t VM_EventInlineInternal__(int const &eventNum, int const &spriteNum, int const &playerNum, int const &playerDist, int32_t returnValue)
|
|
||||||
{
|
|
||||||
const double t = timerGetHiTicks();
|
|
||||||
int32_t ret = El_CallEvent(&g_ElState, eventNum, spriteNum, playerNum, playerDist, &returnValue);
|
|
||||||
|
|
||||||
// NOTE: the run times are those of the called event plus any events
|
|
||||||
// called by it, *not* "self" time.
|
|
||||||
g_eventTotalMs[eventNum] += timerGetHiTicks()-t;
|
|
||||||
g_eventCalls[eventNum]++;
|
|
||||||
|
|
||||||
if (ret == 1)
|
|
||||||
VM_DeleteSprite(spriteNum, playerNum);
|
|
||||||
|
|
||||||
return returnValue;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
static uspritetype dummy_sprite;
|
static uspritetype dummy_sprite;
|
||||||
static actor_t dummy_actor;
|
static actor_t dummy_actor;
|
||||||
|
|
||||||
|
@ -223,7 +198,6 @@ static FORCE_INLINE int32_t VM_EventInlineInternal__(int const eventNum, int con
|
||||||
|
|
||||||
return returnValue;
|
return returnValue;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
// the idea here is that the compiler inlines the call to VM_EventInlineInternal__() and gives us a set of
|
// the idea here is that the compiler inlines the call to VM_EventInlineInternal__() and gives us a set of
|
||||||
// functions which are optimized further based on distance/return having values known at compile time
|
// functions which are optimized further based on distance/return having values known at compile time
|
||||||
|
@ -290,7 +264,6 @@ static int VM_CheckSquished(void)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
GAMEEXEC_STATIC GAMEEXEC_INLINE void P_ForceAngle(DukePlayer_t *pPlayer)
|
GAMEEXEC_STATIC GAMEEXEC_INLINE void P_ForceAngle(DukePlayer_t *pPlayer)
|
||||||
{
|
{
|
||||||
int const nAngle = 128-(krand()&255);
|
int const nAngle = 128-(krand()&255);
|
||||||
|
@ -300,7 +273,6 @@ GAMEEXEC_STATIC GAMEEXEC_INLINE void P_ForceAngle(DukePlayer_t *pPlayer)
|
||||||
pPlayer->q16rotscrnang = fix16_from_int(nAngle >> 1);
|
pPlayer->q16rotscrnang = fix16_from_int(nAngle >> 1);
|
||||||
pPlayer->q16look_ang = pPlayer->q16rotscrnang;
|
pPlayer->q16look_ang = pPlayer->q16rotscrnang;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
// wow, this function sucks
|
// wow, this function sucks
|
||||||
|
|
||||||
|
@ -533,7 +505,6 @@ GAMEEXEC_STATIC void VM_AlterAng(int32_t const moveFlags)
|
||||||
{
|
{
|
||||||
int const elapsedTics = (AC_COUNT(vm.pData))&31;
|
int const elapsedTics = (AC_COUNT(vm.pData))&31;
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
if (EDUKE32_PREDICT_FALSE((unsigned)AC_MOVE_ID(vm.pData) >= (unsigned)g_scriptSize-1))
|
if (EDUKE32_PREDICT_FALSE((unsigned)AC_MOVE_ID(vm.pData) >= (unsigned)g_scriptSize-1))
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -545,10 +516,6 @@ GAMEEXEC_STATIC void VM_AlterAng(int32_t const moveFlags)
|
||||||
auto const moveptr = apScript + AC_MOVE_ID(vm.pData);
|
auto const moveptr = apScript + AC_MOVE_ID(vm.pData);
|
||||||
auto &hvel = moveptr[0];
|
auto &hvel = moveptr[0];
|
||||||
auto &vvel = moveptr[1];
|
auto &vvel = moveptr[1];
|
||||||
#else
|
|
||||||
auto &hvel = vm.pActor->mv.hvel;
|
|
||||||
auto &vvel = vm.pActor->mv.vvel;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
vm.pSprite->xvel += (hvel - vm.pSprite->xvel)/5;
|
vm.pSprite->xvel += (hvel - vm.pSprite->xvel)/5;
|
||||||
if (vm.pSprite->zvel < 648)
|
if (vm.pSprite->zvel < 648)
|
||||||
|
@ -691,7 +658,6 @@ GAMEEXEC_STATIC void VM_Move(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
if (EDUKE32_PREDICT_FALSE((unsigned)AC_MOVE_ID(vm.pData) >= (unsigned)g_scriptSize-1))
|
if (EDUKE32_PREDICT_FALSE((unsigned)AC_MOVE_ID(vm.pData) >= (unsigned)g_scriptSize-1))
|
||||||
{
|
{
|
||||||
AC_MOVE_ID(vm.pData) = 0;
|
AC_MOVE_ID(vm.pData) = 0;
|
||||||
|
@ -702,10 +668,6 @@ GAMEEXEC_STATIC void VM_Move(void)
|
||||||
auto const moveptr = apScript + AC_MOVE_ID(vm.pData);
|
auto const moveptr = apScript + AC_MOVE_ID(vm.pData);
|
||||||
auto &hvel = moveptr[0];
|
auto &hvel = moveptr[0];
|
||||||
auto &vvel = moveptr[1];
|
auto &vvel = moveptr[1];
|
||||||
#else
|
|
||||||
auto &hvel = vm.pActor->mv.hvel;
|
|
||||||
auto &vvel = vm.pActor->mv.vvel;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (movflags & geth)
|
if (movflags & geth)
|
||||||
vm.pSprite->xvel += (hvel - vm.pSprite->xvel) >> 1;
|
vm.pSprite->xvel += (hvel - vm.pSprite->xvel) >> 1;
|
||||||
|
@ -880,9 +842,6 @@ static void P_AddWeaponMaybeSwitch(DukePlayer_t * const ps, int const weaponNum)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined LUNATIC
|
|
||||||
void P_AddWeaponMaybeSwitchI(int32_t snum, int32_t weap) { P_AddWeaponMaybeSwitch(g_player[snum].ps, weap); }
|
|
||||||
#else
|
|
||||||
static void P_AddWeaponAmmoCommon(DukePlayer_t * const pPlayer, int const weaponNum, int const nAmount)
|
static void P_AddWeaponAmmoCommon(DukePlayer_t * const pPlayer, int const weaponNum, int const nAmount)
|
||||||
{
|
{
|
||||||
P_AddAmmo(pPlayer, weaponNum, nAmount);
|
P_AddAmmo(pPlayer, weaponNum, nAmount);
|
||||||
|
@ -963,17 +922,12 @@ static void VM_AddInventory(DukePlayer_t * const pPlayer, int const itemNum, int
|
||||||
default: CON_ERRPRINTF("invalid inventory item %d\n", itemNum); break;
|
default: CON_ERRPRINTF("invalid inventory item %d\n", itemNum); break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
static int A_GetVerticalVel(actor_t const * const pActor)
|
static int A_GetVerticalVel(actor_t const * const pActor)
|
||||||
{
|
{
|
||||||
#ifdef LUNATIC
|
|
||||||
return pActor->mv.vvel;
|
|
||||||
#else
|
|
||||||
int32_t moveScriptOfs = AC_MOVE_ID(pActor->t_data);
|
int32_t moveScriptOfs = AC_MOVE_ID(pActor->t_data);
|
||||||
|
|
||||||
return ((unsigned) moveScriptOfs < (unsigned) g_scriptSize - 1) ? apScript[moveScriptOfs + 1] : 0;
|
return ((unsigned) moveScriptOfs < (unsigned) g_scriptSize - 1) ? apScript[moveScriptOfs + 1] : 0;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t A_GetWaterZOffset(int const spriteNum)
|
static int32_t A_GetWaterZOffset(int const spriteNum)
|
||||||
|
@ -1167,7 +1121,6 @@ static int G_StartTrackSlot(int const volumeNum, int const levelNum)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef LUNATIC
|
|
||||||
static int G_StartTrackSlotWrap(int const volumeNum, int const levelNum)
|
static int G_StartTrackSlotWrap(int const volumeNum, int const levelNum)
|
||||||
{
|
{
|
||||||
if (EDUKE32_PREDICT_FALSE(G_StartTrackSlot(volumeNum, levelNum)))
|
if (EDUKE32_PREDICT_FALSE(G_StartTrackSlot(volumeNum, levelNum)))
|
||||||
|
@ -1178,9 +1131,6 @@ static int G_StartTrackSlotWrap(int const volumeNum, int const levelNum)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
int G_StartTrack(int const levelNum) { return G_StartTrackSlot(ud.volume_number, levelNum); }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
LUNATIC_EXTERN void G_ShowView(vec3_t vec, fix16_t a, fix16_t horiz, int sect, int ix1, int iy1, int ix2, int iy2, int unbiasedp)
|
LUNATIC_EXTERN void G_ShowView(vec3_t vec, fix16_t a, fix16_t horiz, int sect, int ix1, int iy1, int ix2, int iy2, int unbiasedp)
|
||||||
{
|
{
|
||||||
|
@ -1338,7 +1288,6 @@ static void ResizeArray(int const arrayNum, int const newSize)
|
||||||
Xaligned_free(oldArray);
|
Xaligned_free(oldArray);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
#if defined __GNUC__ || defined __clang__
|
#if defined __GNUC__ || defined __clang__
|
||||||
// # define CON_USE_COMPUTED_GOTO does not work anymore with some of the changes.
|
// # define CON_USE_COMPUTED_GOTO does not work anymore with some of the changes.
|
||||||
#endif
|
#endif
|
||||||
|
@ -6261,11 +6210,9 @@ void A_LoadActor(int const spriteNum)
|
||||||
if (vm.flags & VM_KILL)
|
if (vm.flags & VM_KILL)
|
||||||
A_DeleteSprite(vm.spriteNum);
|
A_DeleteSprite(vm.spriteNum);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
void VM_UpdateAnim(int const spriteNum, int32_t * const pData)
|
void VM_UpdateAnim(int const spriteNum, int32_t * const pData)
|
||||||
{
|
{
|
||||||
#if !defined LUNATIC
|
|
||||||
size_t const actionofs = AC_ACTION_ID(pData);
|
size_t const actionofs = AC_ACTION_ID(pData);
|
||||||
auto const actionptr = (actionofs != 0 && actionofs + (ACTION_PARAM_COUNT-1) < (unsigned) g_scriptSize) ? &apScript[actionofs] : NULL;
|
auto const actionptr = (actionofs != 0 && actionofs + (ACTION_PARAM_COUNT-1) < (unsigned) g_scriptSize) ? &apScript[actionofs] : NULL;
|
||||||
|
|
||||||
|
@ -6274,11 +6221,6 @@ void VM_UpdateAnim(int const spriteNum, int32_t * const pData)
|
||||||
int const action_frames = actionptr[ACTION_NUMFRAMES];
|
int const action_frames = actionptr[ACTION_NUMFRAMES];
|
||||||
int const action_incval = actionptr[ACTION_INCVAL];
|
int const action_incval = actionptr[ACTION_INCVAL];
|
||||||
int const action_delay = actionptr[ACTION_DELAY];
|
int const action_delay = actionptr[ACTION_DELAY];
|
||||||
#else
|
|
||||||
int const action_frames = actor[spriteNum].ac.numframes;
|
|
||||||
int const action_incval = actor[spriteNum].ac.incval;
|
|
||||||
int const action_delay = actor[spriteNum].ac.delay;
|
|
||||||
#endif
|
|
||||||
auto actionticsptr = &AC_ACTIONTICS(&sprite[spriteNum], &actor[spriteNum]);
|
auto actionticsptr = &AC_ACTIONTICS(&sprite[spriteNum], &actor[spriteNum]);
|
||||||
*actionticsptr += TICSPERFRAME;
|
*actionticsptr += TICSPERFRAME;
|
||||||
|
|
||||||
|
@ -6331,15 +6273,9 @@ void A_Execute(int const spriteNum, int const playerNum, int const playerDist)
|
||||||
|
|
||||||
double t = timerGetHiTicks();
|
double t = timerGetHiTicks();
|
||||||
|
|
||||||
#ifdef LUNATIC
|
|
||||||
int32_t killit=0;
|
|
||||||
if (L_IsInitialized(&g_ElState) && El_HaveActor(picnum))
|
|
||||||
killit = (El_CallActor(&g_ElState, picnum, spriteNum, playerNum, playerDist)==1);
|
|
||||||
#else
|
|
||||||
insptr = 4 + (g_tile[vm.pSprite->picnum].execPtr);
|
insptr = 4 + (g_tile[vm.pSprite->picnum].execPtr);
|
||||||
VM_Execute(true);
|
VM_Execute(true);
|
||||||
insptr = NULL;
|
insptr = NULL;
|
||||||
#endif
|
|
||||||
|
|
||||||
t = timerGetHiTicks()-t;
|
t = timerGetHiTicks()-t;
|
||||||
g_actorTotalMs[picnum] += t;
|
g_actorTotalMs[picnum] += t;
|
||||||
|
@ -6347,11 +6283,7 @@ void A_Execute(int const spriteNum, int const playerNum, int const playerDist)
|
||||||
g_actorMaxMs[picnum] = max(g_actorMaxMs[picnum], t);
|
g_actorMaxMs[picnum] = max(g_actorMaxMs[picnum], t);
|
||||||
g_actorCalls[picnum]++;
|
g_actorCalls[picnum]++;
|
||||||
|
|
||||||
#ifdef LUNATIC
|
|
||||||
if (!killit)
|
|
||||||
#else
|
|
||||||
if ((vm.flags & VM_KILL) == 0)
|
if ((vm.flags & VM_KILL) == 0)
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
VM_Move();
|
VM_Move();
|
||||||
|
|
||||||
|
@ -6431,10 +6363,8 @@ void G_SaveMapState(void)
|
||||||
Bmemcpy(&save->sprite[0],&sprite[0],sizeof(spritetype)*MAXSPRITES);
|
Bmemcpy(&save->sprite[0],&sprite[0],sizeof(spritetype)*MAXSPRITES);
|
||||||
|
|
||||||
// If we're in EVENT_ANIMATESPRITES, we'll be saving pointer values to disk :-/
|
// If we're in EVENT_ANIMATESPRITES, we'll be saving pointer values to disk :-/
|
||||||
#if !defined LUNATIC
|
|
||||||
if (EDUKE32_PREDICT_FALSE(g_currentEvent == EVENT_ANIMATESPRITES))
|
if (EDUKE32_PREDICT_FALSE(g_currentEvent == EVENT_ANIMATESPRITES))
|
||||||
Printf("Line %d: savemapstate called from EVENT_ANIMATESPRITES. WHY?\n", VM_DECODE_LINE_NUMBER(g_tw));
|
Printf("Line %d: savemapstate called from EVENT_ANIMATESPRITES. WHY?\n", VM_DECODE_LINE_NUMBER(g_tw));
|
||||||
#endif
|
|
||||||
Bmemcpy(&save->spriteext[0],&spriteext[0],sizeof(spriteext_t)*MAXSPRITES);
|
Bmemcpy(&save->spriteext[0],&spriteext[0],sizeof(spriteext_t)*MAXSPRITES);
|
||||||
#ifndef NEW_MAP_FORMAT
|
#ifndef NEW_MAP_FORMAT
|
||||||
Bmemcpy(&save->wallext[0],&wallext[0],sizeof(wallext_t)*MAXWALLS);
|
Bmemcpy(&save->wallext[0],&wallext[0],sizeof(wallext_t)*MAXWALLS);
|
||||||
|
@ -6492,7 +6422,6 @@ void G_SaveMapState(void)
|
||||||
save->randomseed = randomseed;
|
save->randomseed = randomseed;
|
||||||
save->g_globalRandom = g_globalRandom;
|
save->g_globalRandom = g_globalRandom;
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
for (native_t i=g_gameVarCount-1; i>=0; i--)
|
for (native_t i=g_gameVarCount-1; i>=0; i--)
|
||||||
{
|
{
|
||||||
if (aGameVars[i].flags & GAMEVAR_NORESET)
|
if (aGameVars[i].flags & GAMEVAR_NORESET)
|
||||||
|
@ -6523,21 +6452,6 @@ void G_SaveMapState(void)
|
||||||
save->arrays[i] = (intptr_t *)Xaligned_alloc(ARRAY_ALIGNMENT, Gv_GetArrayAllocSize(i));
|
save->arrays[i] = (intptr_t *)Xaligned_alloc(ARRAY_ALIGNMENT, Gv_GetArrayAllocSize(i));
|
||||||
Bmemcpy(&save->arrays[i][0], aGameArrays[i].pValues, Gv_GetArrayAllocSize(i));
|
Bmemcpy(&save->arrays[i][0], aGameArrays[i].pValues, Gv_GetArrayAllocSize(i));
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
int32_t slen;
|
|
||||||
const char *svcode = El_SerializeGamevars(&slen, levelNum);
|
|
||||||
|
|
||||||
if (slen < 0)
|
|
||||||
{
|
|
||||||
El_OnError("ERROR: savemapstate: serialization failed!");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
char *savecode = Xstrdup(svcode);
|
|
||||||
Xfree(save->savecode);
|
|
||||||
save->savecode = savecode;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
ototalclock = totalclock;
|
ototalclock = totalclock;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6569,14 +6483,12 @@ void G_RestoreMapState(void)
|
||||||
|
|
||||||
// If we're restoring from EVENT_ANIMATESPRITES, all spriteext[].tspr
|
// If we're restoring from EVENT_ANIMATESPRITES, all spriteext[].tspr
|
||||||
// will be overwritten, so NULL them.
|
// will be overwritten, so NULL them.
|
||||||
#if !defined LUNATIC
|
|
||||||
if (EDUKE32_PREDICT_FALSE(g_currentEvent == EVENT_ANIMATESPRITES))
|
if (EDUKE32_PREDICT_FALSE(g_currentEvent == EVENT_ANIMATESPRITES))
|
||||||
{
|
{
|
||||||
Printf("Line %d: loadmapstate called from EVENT_ANIMATESPRITES. WHY?\n", VM_DECODE_LINE_NUMBER(g_tw));
|
Printf("Line %d: loadmapstate called from EVENT_ANIMATESPRITES. WHY?\n", VM_DECODE_LINE_NUMBER(g_tw));
|
||||||
for (native_t i=0; i<MAXSPRITES; i++)
|
for (native_t i=0; i<MAXSPRITES; i++)
|
||||||
spriteext[i].tspr = NULL;
|
spriteext[i].tspr = NULL;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
Numsprites = pSavedState->numsprites;
|
Numsprites = pSavedState->numsprites;
|
||||||
tailspritefree = pSavedState->tailspritefree;
|
tailspritefree = pSavedState->tailspritefree;
|
||||||
Bmemcpy(&headspritesect[0],&pSavedState->headspritesect[0],sizeof(headspritesect));
|
Bmemcpy(&headspritesect[0],&pSavedState->headspritesect[0],sizeof(headspritesect));
|
||||||
|
@ -6624,7 +6536,6 @@ void G_RestoreMapState(void)
|
||||||
randomseed = pSavedState->randomseed;
|
randomseed = pSavedState->randomseed;
|
||||||
g_globalRandom = pSavedState->g_globalRandom;
|
g_globalRandom = pSavedState->g_globalRandom;
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
for (native_t i=g_gameVarCount-1; i>=0; i--)
|
for (native_t i=g_gameVarCount-1; i>=0; i--)
|
||||||
{
|
{
|
||||||
if (aGameVars[i].flags & GAMEVAR_NORESET)
|
if (aGameVars[i].flags & GAMEVAR_NORESET)
|
||||||
|
@ -6658,12 +6569,6 @@ void G_RestoreMapState(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
Gv_RefreshPointers();
|
Gv_RefreshPointers();
|
||||||
#else
|
|
||||||
if (pSavedState->savecode)
|
|
||||||
{
|
|
||||||
El_RestoreGamevars(pSavedState->savecode);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
// Update g_player[].ps->i (sprite indices of players) to be consistent
|
// Update g_player[].ps->i (sprite indices of players) to be consistent
|
||||||
// with just loaded sprites.
|
// with just loaded sprites.
|
||||||
// Otherwise, crashes may ensue: e.g. WGR2 SVN r391, map spiderden:
|
// Otherwise, crashes may ensue: e.g. WGR2 SVN r391, map spiderden:
|
||||||
|
@ -6721,22 +6626,6 @@ void G_RestoreMapState(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef LUNATIC
|
|
||||||
void VM_FallSprite(int32_t i) { VM_Fall(i, &sprite[i]); }
|
|
||||||
|
|
||||||
int32_t VM_ResetPlayer2(int32_t snum, int32_t flags) { return VM_ResetPlayer(snum, 0, flags); }
|
|
||||||
|
|
||||||
int32_t VM_CheckSquished2(int32_t i, int32_t snum)
|
|
||||||
{
|
|
||||||
vm.spriteNum = i;
|
|
||||||
vm.pSprite = &sprite[i];
|
|
||||||
vm.playerNum = snum;
|
|
||||||
vm.pPlayer = g_player[snum].ps;
|
|
||||||
|
|
||||||
return VM_CheckSquished();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// MYOS* CON commands.
|
// MYOS* CON commands.
|
||||||
void VM_DrawTileGeneric(int32_t x, int32_t y, int32_t zoom, int32_t tilenum, int32_t shade, int32_t orientation, int32_t p)
|
void VM_DrawTileGeneric(int32_t x, int32_t y, int32_t zoom, int32_t tilenum, int32_t shade, int32_t orientation, int32_t p)
|
||||||
{
|
{
|
||||||
|
@ -6753,7 +6642,6 @@ void VM_DrawTileGeneric(int32_t x, int32_t y, int32_t zoom, int32_t tilenum, int
|
||||||
rotatesprite_win(x, y, zoom, rotAngle, tilenum, shade, p, 2|orientation);
|
rotatesprite_win(x, y, zoom, rotAngle, tilenum, shade, p, 2|orientation);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
void VM_DrawTile(int32_t x, int32_t y, int32_t tilenum, int32_t shade, int32_t orientation)
|
void VM_DrawTile(int32_t x, int32_t y, int32_t tilenum, int32_t shade, int32_t orientation)
|
||||||
{
|
{
|
||||||
auto const pPlayer = g_player[screenpeek].ps;
|
auto const pPlayer = g_player[screenpeek].ps;
|
||||||
|
@ -6769,7 +6657,4 @@ void VM_DrawTileSmall(int32_t x, int32_t y, int32_t tilenum, int32_t shade, int3
|
||||||
|
|
||||||
VM_DrawTileGeneric(x, y, 32768, tilenum, shade, orientation, tilePal);
|
VM_DrawTileGeneric(x, y, 32768, tilenum, shade, orientation, tilePal);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_DUKE_NS
|
END_DUKE_NS
|
||||||
|
|
|
@ -71,12 +71,10 @@ enum vmflags_t
|
||||||
extern int32_t ticrandomseed;
|
extern int32_t ticrandomseed;
|
||||||
|
|
||||||
extern vmstate_t vm;
|
extern vmstate_t vm;
|
||||||
#if !defined LUNATIC
|
|
||||||
extern int32_t g_tw;
|
extern int32_t g_tw;
|
||||||
extern int32_t g_currentEvent;
|
extern int32_t g_currentEvent;
|
||||||
|
|
||||||
void A_LoadActor(int const spriteNum);
|
void A_LoadActor(int const spriteNum);
|
||||||
#endif
|
|
||||||
|
|
||||||
extern uint32_t g_eventCalls[MAXEVENTS], g_actorCalls[MAXTILES];
|
extern uint32_t g_eventCalls[MAXEVENTS], g_actorCalls[MAXTILES];
|
||||||
extern double g_eventTotalMs[MAXEVENTS], g_actorTotalMs[MAXTILES], g_actorMinMs[MAXTILES], g_actorMaxMs[MAXTILES];
|
extern double g_eventTotalMs[MAXEVENTS], g_actorTotalMs[MAXTILES], g_actorMinMs[MAXTILES], g_actorMaxMs[MAXTILES];
|
||||||
|
@ -93,7 +91,6 @@ void G_SaveMapState();
|
||||||
void VM_DrawTileGeneric(int32_t x, int32_t y, int32_t zoom, int32_t tilenum,
|
void VM_DrawTileGeneric(int32_t x, int32_t y, int32_t zoom, int32_t tilenum,
|
||||||
int32_t shade, int32_t orientation, int32_t p);
|
int32_t shade, int32_t orientation, int32_t p);
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
void VM_DrawTile(int32_t x, int32_t y, int32_t tilenum, int32_t shade, int32_t orientation);
|
void VM_DrawTile(int32_t x, int32_t y, int32_t tilenum, int32_t shade, int32_t orientation);
|
||||||
static inline void VM_DrawTilePal(int32_t x, int32_t y, int32_t tilenum, int32_t shade, int32_t orientation, int32_t p)
|
static inline void VM_DrawTilePal(int32_t x, int32_t y, int32_t tilenum, int32_t shade, int32_t orientation, int32_t p)
|
||||||
{
|
{
|
||||||
|
@ -104,7 +101,6 @@ static inline void VM_DrawTilePalSmall(int32_t x, int32_t y, int32_t tilenum, in
|
||||||
VM_DrawTileGeneric(x, y, 32768, tilenum, shade, orientation, p);
|
VM_DrawTileGeneric(x, y, 32768, tilenum, shade, orientation, p);
|
||||||
}
|
}
|
||||||
void VM_DrawTileSmall(int32_t x, int32_t y, int32_t tilenum, int32_t shade, int32_t orientation);
|
void VM_DrawTileSmall(int32_t x, int32_t y, int32_t tilenum, int32_t shade, int32_t orientation);
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#define CON_ERRPRINTF(Text, ...) do { \
|
#define CON_ERRPRINTF(Text, ...) do { \
|
||||||
|
|
|
@ -30,12 +30,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
#include "gamestructures.h"
|
#include "gamestructures.h"
|
||||||
|
|
||||||
BEGIN_DUKE_NS
|
BEGIN_DUKE_NS
|
||||||
|
|
||||||
#ifdef LUNATIC
|
|
||||||
int32_t g_noResetVars;
|
|
||||||
LUNATIC_CB void (*A_ResetVars)(int32_t spriteNum);
|
|
||||||
#else
|
|
||||||
|
|
||||||
gamevar_t aGameVars[MAXGAMEVARS];
|
gamevar_t aGameVars[MAXGAMEVARS];
|
||||||
gamearray_t aGameArrays[MAXGAMEARRAYS];
|
gamearray_t aGameArrays[MAXGAMEARRAYS];
|
||||||
int32_t g_gameVarCount = 0;
|
int32_t g_gameVarCount = 0;
|
||||||
|
@ -833,12 +827,10 @@ static intptr_t *Gv_GetVarDataPtr(const char *szGameLabel)
|
||||||
|
|
||||||
return &(var.global);
|
return &(var.global);
|
||||||
}
|
}
|
||||||
#endif // !defined LUNATIC
|
|
||||||
|
|
||||||
void Gv_ResetSystemDefaults(void)
|
void Gv_ResetSystemDefaults(void)
|
||||||
{
|
{
|
||||||
// call many times...
|
// call many times...
|
||||||
#if !defined LUNATIC
|
|
||||||
char aszBuf[64];
|
char aszBuf[64];
|
||||||
|
|
||||||
//AddLog("ResetWeaponDefaults");
|
//AddLog("ResetWeaponDefaults");
|
||||||
|
@ -901,7 +893,6 @@ void Gv_ResetSystemDefaults(void)
|
||||||
g_weaponVarID = Gv_GetVarIndex("WEAPON");
|
g_weaponVarID = Gv_GetVarIndex("WEAPON");
|
||||||
g_worksLikeVarID = Gv_GetVarIndex("WORKSLIKE");
|
g_worksLikeVarID = Gv_GetVarIndex("WORKSLIKE");
|
||||||
g_zRangeVarID = Gv_GetVarIndex("ZRANGE");
|
g_zRangeVarID = Gv_GetVarIndex("ZRANGE");
|
||||||
#endif
|
|
||||||
|
|
||||||
for (auto & tile : g_tile)
|
for (auto & tile : g_tile)
|
||||||
if (tile.defproj)
|
if (tile.defproj)
|
||||||
|
@ -1131,16 +1122,13 @@ void Gv_FinalizeWeaponDefaults(void)
|
||||||
#undef FINISH_WEAPON_DEFAULT_X
|
#undef FINISH_WEAPON_DEFAULT_X
|
||||||
#undef POSTADDWEAPONVAR
|
#undef POSTADDWEAPONVAR
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
static int32_t lastvisinc;
|
static int32_t lastvisinc;
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
static void Gv_AddSystemVars(void)
|
static void Gv_AddSystemVars(void)
|
||||||
{
|
{
|
||||||
// only call ONCE
|
// only call ONCE
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
// special vars for struct access
|
// special vars for struct access
|
||||||
// KEEPINSYNC gamedef.h: enum QuickStructureAccess_t (including order)
|
// KEEPINSYNC gamedef.h: enum QuickStructureAccess_t (including order)
|
||||||
Gv_NewVar("sprite", -1, GAMEVAR_READONLY | GAMEVAR_SYSTEM | GAMEVAR_SPECIAL);
|
Gv_NewVar("sprite", -1, GAMEVAR_READONLY | GAMEVAR_SYSTEM | GAMEVAR_SPECIAL);
|
||||||
|
@ -1159,7 +1147,6 @@ static void Gv_AddSystemVars(void)
|
||||||
Gv_NewVar("input", -1, GAMEVAR_READONLY | GAMEVAR_SYSTEM | GAMEVAR_SPECIAL);
|
Gv_NewVar("input", -1, GAMEVAR_READONLY | GAMEVAR_SYSTEM | GAMEVAR_SPECIAL);
|
||||||
Gv_NewVar("tiledata", -1, GAMEVAR_READONLY | GAMEVAR_SYSTEM | GAMEVAR_SPECIAL);
|
Gv_NewVar("tiledata", -1, GAMEVAR_READONLY | GAMEVAR_SYSTEM | GAMEVAR_SPECIAL);
|
||||||
Gv_NewVar("paldata", -1, GAMEVAR_READONLY | GAMEVAR_SYSTEM | GAMEVAR_SPECIAL);
|
Gv_NewVar("paldata", -1, GAMEVAR_READONLY | GAMEVAR_SYSTEM | GAMEVAR_SPECIAL);
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef EDUKE32_STANDALONE
|
#ifndef EDUKE32_STANDALONE
|
||||||
if (NAM_WW2GI)
|
if (NAM_WW2GI)
|
||||||
|
@ -1230,21 +1217,6 @@ static void Gv_AddSystemVars(void)
|
||||||
ADDWEAPONVAR(i, WorksLike);
|
ADDWEAPONVAR(i, WorksLike);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef LUNATIC
|
|
||||||
for (int i=0; i<MAXPLAYERS; i++)
|
|
||||||
{
|
|
||||||
auto ps = g_player[i].ps;
|
|
||||||
|
|
||||||
ps->pipebombControl = NAM_WW2GI ? PIPEBOMB_TIMER : PIPEBOMB_REMOTE;
|
|
||||||
ps->pipebombLifetime = NAM_GRENADE_LIFETIME;
|
|
||||||
ps->pipebombLifetimeVar = NAM_GRENADE_LIFETIME_VAR;
|
|
||||||
|
|
||||||
ps->tripbombControl = TRIPBOMB_TRIPWIRE;
|
|
||||||
ps->tripbombLifetime = NAM_GRENADE_LIFETIME;
|
|
||||||
ps->tripbombLifetimeVar = NAM_GRENADE_LIFETIME_VAR;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
|
|
||||||
#ifndef EDUKE32_STANDALONE
|
#ifndef EDUKE32_STANDALONE
|
||||||
Gv_NewVar("GRENADE_LIFETIME", NAM_GRENADE_LIFETIME, GAMEVAR_SYSTEM | GAMEVAR_PERPLAYER);
|
Gv_NewVar("GRENADE_LIFETIME", NAM_GRENADE_LIFETIME, GAMEVAR_SYSTEM | GAMEVAR_PERPLAYER);
|
||||||
Gv_NewVar("GRENADE_LIFETIME_VAR", NAM_GRENADE_LIFETIME_VAR, GAMEVAR_SYSTEM | GAMEVAR_PERPLAYER);
|
Gv_NewVar("GRENADE_LIFETIME_VAR", NAM_GRENADE_LIFETIME_VAR, GAMEVAR_SYSTEM | GAMEVAR_PERPLAYER);
|
||||||
|
@ -1318,11 +1290,11 @@ static void Gv_AddSystemVars(void)
|
||||||
Gv_NewVar("ydim", (intptr_t)&ydim, GAMEVAR_SYSTEM | GAMEVAR_INT32PTR | GAMEVAR_READONLY);
|
Gv_NewVar("ydim", (intptr_t)&ydim, GAMEVAR_SYSTEM | GAMEVAR_INT32PTR | GAMEVAR_READONLY);
|
||||||
Gv_NewVar("yxaspect", (intptr_t)&yxaspect, GAMEVAR_SYSTEM | GAMEVAR_INT32PTR | GAMEVAR_READONLY);
|
Gv_NewVar("yxaspect", (intptr_t)&yxaspect, GAMEVAR_SYSTEM | GAMEVAR_INT32PTR | GAMEVAR_READONLY);
|
||||||
|
|
||||||
# ifdef USE_OPENGL
|
#ifdef USE_OPENGL
|
||||||
Gv_NewVar("rendmode", (intptr_t)&rendmode, GAMEVAR_READONLY | GAMEVAR_SYSTEM | GAMEVAR_INT32PTR);
|
Gv_NewVar("rendmode", (intptr_t)&rendmode, GAMEVAR_READONLY | GAMEVAR_SYSTEM | GAMEVAR_INT32PTR);
|
||||||
# else
|
#else
|
||||||
Gv_NewVar("rendmode", 0, GAMEVAR_READONLY | GAMEVAR_SYSTEM);
|
Gv_NewVar("rendmode", 0, GAMEVAR_READONLY | GAMEVAR_SYSTEM);
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
// SYSTEM_GAMEARRAY
|
// SYSTEM_GAMEARRAY
|
||||||
Gv_NewArray("gotpic", (void *)&gotpic[0], MAXTILES, GAMEARRAY_SYSTEM | GAMEARRAY_BITMAP);
|
Gv_NewArray("gotpic", (void *)&gotpic[0], MAXTILES, GAMEARRAY_SYSTEM | GAMEARRAY_BITMAP);
|
||||||
|
@ -1330,33 +1302,22 @@ static void Gv_AddSystemVars(void)
|
||||||
Gv_NewArray("show2dsector", (void *)&show2dsector, MAXSECTORS, GAMEARRAY_SYSTEM | GAMEARRAY_BITMAP);
|
Gv_NewArray("show2dsector", (void *)&show2dsector, MAXSECTORS, GAMEARRAY_SYSTEM | GAMEARRAY_BITMAP);
|
||||||
Gv_NewArray("tilesizx", (void *)tileWidth, MAXTILES, GAMEARRAY_SYSTEM | GAMEARRAY_FUNC | GAMEARRAY_READONLY);
|
Gv_NewArray("tilesizx", (void *)tileWidth, MAXTILES, GAMEARRAY_SYSTEM | GAMEARRAY_FUNC | GAMEARRAY_READONLY);
|
||||||
Gv_NewArray("tilesizy", (void *)tileHeight, MAXTILES, GAMEARRAY_SYSTEM | GAMEARRAY_FUNC | GAMEARRAY_READONLY);
|
Gv_NewArray("tilesizy", (void *)tileHeight, MAXTILES, GAMEARRAY_SYSTEM | GAMEARRAY_FUNC | GAMEARRAY_READONLY);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef ADDWEAPONVAR
|
#undef ADDWEAPONVAR
|
||||||
|
|
||||||
void Gv_Init(void)
|
void Gv_Init(void)
|
||||||
{
|
{
|
||||||
#if !defined LUNATIC
|
|
||||||
// already initialized
|
// already initialized
|
||||||
if (aGameVars[0].flags)
|
if (aGameVars[0].flags)
|
||||||
return;
|
return;
|
||||||
#else
|
|
||||||
static int32_t inited=0;
|
|
||||||
if (inited)
|
|
||||||
return;
|
|
||||||
inited = 1;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Set up weapon defaults, g_playerWeapon[][].
|
// Set up weapon defaults, g_playerWeapon[][].
|
||||||
Gv_AddSystemVars();
|
Gv_AddSystemVars();
|
||||||
#if !defined LUNATIC
|
|
||||||
Gv_InitWeaponPointers();
|
Gv_InitWeaponPointers();
|
||||||
#endif
|
|
||||||
Gv_ResetSystemDefaults();
|
Gv_ResetSystemDefaults();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
void Gv_InitWeaponPointers(void)
|
void Gv_InitWeaponPointers(void)
|
||||||
{
|
{
|
||||||
char aszBuf[64];
|
char aszBuf[64];
|
||||||
|
@ -1470,14 +1431,12 @@ void Gv_RefreshPointers(void)
|
||||||
aGameVars[Gv_GetVarIndex("ydim")].global = (intptr_t)&ydim;
|
aGameVars[Gv_GetVarIndex("ydim")].global = (intptr_t)&ydim;
|
||||||
aGameVars[Gv_GetVarIndex("yxaspect")].global = (intptr_t)&yxaspect;
|
aGameVars[Gv_GetVarIndex("yxaspect")].global = (intptr_t)&yxaspect;
|
||||||
|
|
||||||
# ifdef USE_OPENGL
|
#ifdef USE_OPENGL
|
||||||
aGameVars[Gv_GetVarIndex("rendmode")].global = (intptr_t)&rendmode;
|
aGameVars[Gv_GetVarIndex("rendmode")].global = (intptr_t)&rendmode;
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
aGameArrays[Gv_GetArrayIndex("gotpic")].pValues = (intptr_t *)&gotpic[0];
|
aGameArrays[Gv_GetArrayIndex("gotpic")].pValues = (intptr_t *)&gotpic[0];
|
||||||
aGameArrays[Gv_GetArrayIndex("tilesizx")].pValues = (intptr_t *)tileWidth;
|
aGameArrays[Gv_GetArrayIndex("tilesizx")].pValues = (intptr_t *)tileWidth;
|
||||||
aGameArrays[Gv_GetArrayIndex("tilesizy")].pValues = (intptr_t *)tileHeight;
|
aGameArrays[Gv_GetArrayIndex("tilesizy")].pValues = (intptr_t *)tileHeight;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
END_DUKE_NS
|
END_DUKE_NS
|
||||||
|
|
|
@ -61,8 +61,6 @@ enum GamevarFlags_t
|
||||||
GAMEVAR_PTR_MASK = GAMEVAR_INT32PTR | GAMEVAR_INT16PTR | GAMEVAR_Q16PTR | GAMEVAR_RAWQ16PTR,
|
GAMEVAR_PTR_MASK = GAMEVAR_INT32PTR | GAMEVAR_INT16PTR | GAMEVAR_Q16PTR | GAMEVAR_RAWQ16PTR,
|
||||||
};
|
};
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
|
|
||||||
// Alignments for per-player and per-actor variables.
|
// Alignments for per-player and per-actor variables.
|
||||||
#define PLAYER_VAR_ALIGNMENT (sizeof(intptr_t))
|
#define PLAYER_VAR_ALIGNMENT (sizeof(intptr_t))
|
||||||
#define ACTOR_VAR_ALIGNMENT 16
|
#define ACTOR_VAR_ALIGNMENT 16
|
||||||
|
@ -160,16 +158,11 @@ void Gv_ResetVars(void);
|
||||||
int Gv_ReadSave(FileReader &kFile);
|
int Gv_ReadSave(FileReader &kFile);
|
||||||
void Gv_WriteSave(FileWriter &fil);
|
void Gv_WriteSave(FileWriter &fil);
|
||||||
void Gv_Clear(void);
|
void Gv_Clear(void);
|
||||||
#else
|
|
||||||
extern int32_t g_noResetVars;
|
|
||||||
extern LUNATIC_CB void (*A_ResetVars)(int32_t spriteNum);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void Gv_ResetSystemDefaults(void);
|
void Gv_ResetSystemDefaults(void);
|
||||||
void Gv_Init(void);
|
void Gv_Init(void);
|
||||||
void Gv_FinalizeWeaponDefaults(void);
|
void Gv_FinalizeWeaponDefaults(void);
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
static inline int __fastcall VM_GetStruct(uint32_t const flags, intptr_t * const addr)
|
static inline int __fastcall VM_GetStruct(uint32_t const flags, intptr_t * const addr)
|
||||||
{
|
{
|
||||||
Bassert(flags & (LABEL_CHAR|LABEL_SHORT|LABEL_INT));
|
Bassert(flags & (LABEL_CHAR|LABEL_SHORT|LABEL_INT));
|
||||||
|
@ -290,8 +283,6 @@ VM_GAMEVAR_OPERATOR(Gv_ShiftVarR, >>=)
|
||||||
|
|
||||||
#undef VM_GAMEVAR_OPERATOR
|
#undef VM_GAMEVAR_OPERATOR
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
END_DUKE_NS
|
END_DUKE_NS
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -661,10 +661,8 @@ void G_InitDynamicTiles(void);
|
||||||
|
|
||||||
void G_ProcessDynamicTileMapping(const char *szLabel, int32_t lValue);
|
void G_ProcessDynamicTileMapping(const char *szLabel, int32_t lValue);
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
void inithashnames(void);
|
void inithashnames(void);
|
||||||
void freehashnames(void);
|
void freehashnames(void);
|
||||||
#endif
|
|
||||||
|
|
||||||
extern int32_t ACCESS_ICON;
|
extern int32_t ACCESS_ICON;
|
||||||
extern int32_t ACCESSCARD;
|
extern int32_t ACCESSCARD;
|
||||||
|
|
|
@ -364,19 +364,11 @@ static int GetAutoAimAng(int spriteNum, int playerNum, int projecTile, int zAdju
|
||||||
|
|
||||||
Bassert((unsigned)playerNum < MAXPLAYERS);
|
Bassert((unsigned)playerNum < MAXPLAYERS);
|
||||||
|
|
||||||
#ifdef LUNATIC
|
|
||||||
g_player[playerNum].ps->autoaimang = g_player[playerNum].ps->auto_aim == 3 ? AUTO_AIM_ANGLE<<1 : AUTO_AIM_ANGLE;
|
|
||||||
#else
|
|
||||||
Gv_SetVar(g_aimAngleVarID, g_player[playerNum].ps->auto_aim == 3 ? AUTO_AIM_ANGLE<<1 : AUTO_AIM_ANGLE, spriteNum, playerNum);
|
Gv_SetVar(g_aimAngleVarID, g_player[playerNum].ps->auto_aim == 3 ? AUTO_AIM_ANGLE<<1 : AUTO_AIM_ANGLE, spriteNum, playerNum);
|
||||||
#endif
|
|
||||||
|
|
||||||
VM_OnEvent(EVENT_GETAUTOAIMANGLE, spriteNum, playerNum);
|
VM_OnEvent(EVENT_GETAUTOAIMANGLE, spriteNum, playerNum);
|
||||||
|
|
||||||
#ifdef LUNATIC
|
|
||||||
int aimang = g_player[playerNum].ps->autoaimang;
|
|
||||||
#else
|
|
||||||
int aimang = Gv_GetVar(g_aimAngleVarID, spriteNum, playerNum);
|
int aimang = Gv_GetVar(g_aimAngleVarID, spriteNum, playerNum);
|
||||||
#endif
|
|
||||||
if (aimang > 0)
|
if (aimang > 0)
|
||||||
returnSprite = A_FindTargetSprite(&sprite[spriteNum], aimang, projecTile);
|
returnSprite = A_FindTargetSprite(&sprite[spriteNum], aimang, projecTile);
|
||||||
|
|
||||||
|
@ -483,23 +475,13 @@ static void P_PreFireHitscan(int spriteNum, int playerNum, int projecTile, vec3_
|
||||||
|
|
||||||
auto const pPlayer = g_player[playerNum].ps;
|
auto const pPlayer = g_player[playerNum].ps;
|
||||||
|
|
||||||
#ifdef LUNATIC
|
|
||||||
pPlayer->angrange = angRange;
|
|
||||||
pPlayer->zrange = zRange;
|
|
||||||
#else
|
|
||||||
Gv_SetVar(g_angRangeVarID, angRange, spriteNum, playerNum);
|
Gv_SetVar(g_angRangeVarID, angRange, spriteNum, playerNum);
|
||||||
Gv_SetVar(g_zRangeVarID, zRange, spriteNum, playerNum);
|
Gv_SetVar(g_zRangeVarID, zRange, spriteNum, playerNum);
|
||||||
#endif
|
|
||||||
|
|
||||||
VM_OnEvent(EVENT_GETSHOTRANGE, spriteNum, playerNum);
|
VM_OnEvent(EVENT_GETSHOTRANGE, spriteNum, playerNum);
|
||||||
|
|
||||||
#ifdef LUNATIC
|
|
||||||
angRange = pPlayer->angrange;
|
|
||||||
zRange = pPlayer->zrange;
|
|
||||||
#else
|
|
||||||
angRange = Gv_GetVar(g_angRangeVarID, spriteNum, playerNum);
|
angRange = Gv_GetVar(g_angRangeVarID, spriteNum, playerNum);
|
||||||
zRange = Gv_GetVar(g_zRangeVarID, spriteNum, playerNum);
|
zRange = Gv_GetVar(g_zRangeVarID, spriteNum, playerNum);
|
||||||
#endif
|
|
||||||
|
|
||||||
if (accurateAim)
|
if (accurateAim)
|
||||||
{
|
{
|
||||||
|
@ -1511,24 +1493,15 @@ static int32_t A_ShootHardcoded(int spriteNum, int projecTile, int shootAng, vec
|
||||||
if (placeMine == 1)
|
if (placeMine == 1)
|
||||||
{
|
{
|
||||||
int const tripBombMode = (playerNum < 0) ? 0 :
|
int const tripBombMode = (playerNum < 0) ? 0 :
|
||||||
#ifdef LUNATIC
|
|
||||||
g_player[playerNum].ps->tripbombControl;
|
|
||||||
#else
|
|
||||||
Gv_GetVarByLabel("TRIPBOMB_CONTROL", TRIPBOMB_TRIPWIRE,
|
Gv_GetVarByLabel("TRIPBOMB_CONTROL", TRIPBOMB_TRIPWIRE,
|
||||||
g_player[playerNum].ps->i, playerNum);
|
g_player[playerNum].ps->i, playerNum);
|
||||||
#endif
|
|
||||||
int const spawnedSprite = A_InsertSprite(hitData.sect, hitData.pos.x, hitData.pos.y, hitData.pos.z, TRIPBOMB, -16, 4, 5,
|
int const spawnedSprite = A_InsertSprite(hitData.sect, hitData.pos.x, hitData.pos.y, hitData.pos.z, TRIPBOMB, -16, 4, 5,
|
||||||
shootAng, 0, 0, spriteNum, 6);
|
shootAng, 0, 0, spriteNum, 6);
|
||||||
if (tripBombMode & TRIPBOMB_TIMER)
|
if (tripBombMode & TRIPBOMB_TIMER)
|
||||||
{
|
{
|
||||||
#ifdef LUNATIC
|
|
||||||
int32_t lLifetime = g_player[playerNum].ps->tripbombLifetime;
|
|
||||||
int32_t lLifetimeVar = g_player[playerNum].ps->tripbombLifetimeVar;
|
|
||||||
#else
|
|
||||||
int32_t lLifetime = Gv_GetVarByLabel("STICKYBOMB_LIFETIME", NAM_GRENADE_LIFETIME, g_player[playerNum].ps->i, playerNum);
|
int32_t lLifetime = Gv_GetVarByLabel("STICKYBOMB_LIFETIME", NAM_GRENADE_LIFETIME, g_player[playerNum].ps->i, playerNum);
|
||||||
int32_t lLifetimeVar
|
int32_t lLifetimeVar
|
||||||
= Gv_GetVarByLabel("STICKYBOMB_LIFETIME_VAR", NAM_GRENADE_LIFETIME_VAR, g_player[playerNum].ps->i, playerNum);
|
= Gv_GetVarByLabel("STICKYBOMB_LIFETIME_VAR", NAM_GRENADE_LIFETIME_VAR, g_player[playerNum].ps->i, playerNum);
|
||||||
#endif
|
|
||||||
// set timer. blows up when at zero....
|
// set timer. blows up when at zero....
|
||||||
actor[spawnedSprite].t_data[7] = lLifetime + mulscale14(krand(), lLifetimeVar) - lLifetimeVar;
|
actor[spawnedSprite].t_data[7] = lLifetime + mulscale14(krand(), lLifetimeVar) - lLifetimeVar;
|
||||||
// TIMER_CONTROL
|
// TIMER_CONTROL
|
||||||
|
@ -3814,13 +3787,6 @@ void P_CheckWeapon(DukePlayer_t *pPlayer)
|
||||||
P_ChangeWeapon(pPlayer, weaponNum);
|
P_ChangeWeapon(pPlayer, weaponNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef LUNATIC
|
|
||||||
void P_CheckWeaponI(int playerNum)
|
|
||||||
{
|
|
||||||
P_CheckWeapon(g_player[playerNum].ps);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static void DoWallTouchDamage(const DukePlayer_t *pPlayer, int32_t wallNum)
|
static void DoWallTouchDamage(const DukePlayer_t *pPlayer, int32_t wallNum)
|
||||||
{
|
{
|
||||||
vec3_t const davect = { pPlayer->pos.x + (sintable[(fix16_to_int(pPlayer->q16ang) + 512) & 2047] >> 9),
|
vec3_t const davect = { pPlayer->pos.x + (sintable[(fix16_to_int(pPlayer->q16ang) + 512) & 2047] >> 9),
|
||||||
|
@ -4108,11 +4074,7 @@ void P_FragPlayer(int playerNum)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef LUNATIC
|
#define PIPEBOMB_CONTROL(playerNum) (Gv_GetVarByLabel("PIPEBOMB_CONTROL", PIPEBOMB_REMOTE, -1, playerNum))
|
||||||
# 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)
|
static void P_ProcessWeapon(int playerNum)
|
||||||
{
|
{
|
||||||
|
@ -4430,13 +4392,8 @@ static void P_ProcessWeapon(int playerNum)
|
||||||
|
|
||||||
if (pipeBombType & PIPEBOMB_TIMER)
|
if (pipeBombType & PIPEBOMB_TIMER)
|
||||||
{
|
{
|
||||||
#ifdef LUNATIC
|
|
||||||
int pipeLifeTime = g_player[playerNum].ps->pipebombLifetime;
|
|
||||||
int pipeLifeVariance = g_player[playerNum].ps->pipebombLifetimeVar;
|
|
||||||
#else
|
|
||||||
int pipeLifeTime = Gv_GetVarByLabel("GRENADE_LIFETIME", NAM_GRENADE_LIFETIME, -1, playerNum);
|
int pipeLifeTime = Gv_GetVarByLabel("GRENADE_LIFETIME", NAM_GRENADE_LIFETIME, -1, playerNum);
|
||||||
int pipeLifeVariance = Gv_GetVarByLabel("GRENADE_LIFETIME_VAR", NAM_GRENADE_LIFETIME_VAR, -1, playerNum);
|
int pipeLifeVariance = Gv_GetVarByLabel("GRENADE_LIFETIME_VAR", NAM_GRENADE_LIFETIME_VAR, -1, playerNum);
|
||||||
#endif
|
|
||||||
actor[pipeSpriteNum].t_data[7]= pipeLifeTime
|
actor[pipeSpriteNum].t_data[7]= pipeLifeTime
|
||||||
+ mulscale14(krand(), pipeLifeVariance)
|
+ mulscale14(krand(), pipeLifeVariance)
|
||||||
- pipeLifeVariance;
|
- pipeLifeVariance;
|
||||||
|
|
|
@ -152,13 +152,6 @@ typedef struct {
|
||||||
int32_t autostep, autostep_sbw;
|
int32_t autostep, autostep_sbw;
|
||||||
|
|
||||||
uint32_t interface_toggle;
|
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 max_actors_killed, actors_killed;
|
||||||
uint16_t gotweapon, zoom;
|
uint16_t gotweapon, zoom;
|
||||||
|
|
||||||
|
@ -213,14 +206,6 @@ typedef struct {
|
||||||
|
|
||||||
int8_t last_used_weapon;
|
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 crouch_toggle;
|
||||||
int8_t padding_[1];
|
int8_t padding_[1];
|
||||||
} DukePlayer_t;
|
} DukePlayer_t;
|
||||||
|
@ -277,11 +262,7 @@ typedef struct
|
||||||
int32_t FlashColor; // Muzzle flash color
|
int32_t FlashColor; // Muzzle flash color
|
||||||
} weapondata_t;
|
} weapondata_t;
|
||||||
|
|
||||||
#ifdef LUNATIC
|
#define PWEAPON(Player, Weapon, Wmember) (aplWeapon ## Wmember [Weapon][Player])
|
||||||
# define PWEAPON(Player, Weapon, Wmember) (g_playerWeapon[Player][Weapon].Wmember)
|
|
||||||
extern weapondata_t g_playerWeapon[MAXPLAYERS][MAX_WEAPONS];
|
|
||||||
#else
|
|
||||||
# define PWEAPON(Player, Weapon, Wmember) (aplWeapon ## Wmember [Weapon][Player])
|
|
||||||
extern intptr_t *aplWeaponClip[MAX_WEAPONS]; // number of items in clip
|
extern intptr_t *aplWeaponClip[MAX_WEAPONS]; // number of items in clip
|
||||||
extern intptr_t *aplWeaponReload[MAX_WEAPONS]; // delay to reload (include fire)
|
extern intptr_t *aplWeaponReload[MAX_WEAPONS]; // delay to reload (include fire)
|
||||||
extern intptr_t *aplWeaponFireDelay[MAX_WEAPONS]; // delay to fire
|
extern intptr_t *aplWeaponFireDelay[MAX_WEAPONS]; // delay to fire
|
||||||
|
@ -301,7 +282,6 @@ extern intptr_t *aplWeaponReloadSound1[MAX_WEAPONS]; // Sound of maga
|
||||||
extern intptr_t *aplWeaponReloadSound2[MAX_WEAPONS]; // Sound of magazine being inserted
|
extern intptr_t *aplWeaponReloadSound2[MAX_WEAPONS]; // Sound of magazine being inserted
|
||||||
extern intptr_t *aplWeaponSelectSound[MAX_WEAPONS]; // Sound for weapon selection
|
extern intptr_t *aplWeaponSelectSound[MAX_WEAPONS]; // Sound for weapon selection
|
||||||
extern intptr_t *aplWeaponFlashColor[MAX_WEAPONS]; // Color for polymer muzzle flash
|
extern intptr_t *aplWeaponFlashColor[MAX_WEAPONS]; // Color for polymer muzzle flash
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int32_t workslike, cstat; // 8b
|
int32_t workslike, cstat; // 8b
|
||||||
|
@ -348,19 +328,10 @@ static inline int A_Shoot(int spriteNum, int projecTile)
|
||||||
|
|
||||||
static inline void P_PalFrom(DukePlayer_t *pPlayer, uint8_t f, uint8_t r, uint8_t g, uint8_t b)
|
static inline void P_PalFrom(DukePlayer_t *pPlayer, uint8_t f, uint8_t r, uint8_t g, uint8_t b)
|
||||||
{
|
{
|
||||||
#ifdef LUNATIC
|
pPlayer->pals.f = f;
|
||||||
// Compare with _defs_game.lua: player[]:_palfrom().
|
pPlayer->pals.r = r;
|
||||||
if (pPlayer->pals.f == 0 || pPlayer->palsfadeprio <= 0)
|
pPlayer->pals.g = g;
|
||||||
#endif
|
pPlayer->pals.b = b;
|
||||||
{
|
|
||||||
pPlayer->pals.f = f;
|
|
||||||
pPlayer->pals.r = r;
|
|
||||||
pPlayer->pals.g = g;
|
|
||||||
pPlayer->pals.b = b;
|
|
||||||
#ifdef LUNATIC
|
|
||||||
pPlayer->palsfadespeed = pPlayer->palsfadenext = 0;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void P_AddKills(DukePlayer_t * pPlayer, uint16_t kills);
|
void P_AddKills(DukePlayer_t * pPlayer, uint16_t kills);
|
||||||
|
@ -388,15 +359,7 @@ int P_GetOverheadPal(const DukePlayer_t *pPlayer);
|
||||||
|
|
||||||
int Proj_GetDamage(projectile_t const *pProj);
|
int Proj_GetDamage(projectile_t const *pProj);
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
void P_SetWeaponGamevars(int playerNum, const DukePlayer_t *pPlayer);
|
void P_SetWeaponGamevars(int playerNum, const DukePlayer_t *pPlayer);
|
||||||
#else
|
|
||||||
static inline void P_SetWeaponGamevars(int playerNum, const DukePlayer_t *pPlayer)
|
|
||||||
{
|
|
||||||
UNREFERENCED_PARAMETER(playerNum);
|
|
||||||
UNREFERENCED_PARAMETER(pPlayer);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Get the player index given an APLAYER sprite pointer.
|
// Get the player index given an APLAYER sprite pointer.
|
||||||
static inline int P_GetP(const void *pSprite)
|
static inline int P_GetP(const void *pSprite)
|
||||||
|
|
|
@ -1277,9 +1277,7 @@ static void prelevel(int g)
|
||||||
for (int nextSprite, SPRITES_OF_STAT_SAFE(STAT_DEFAULT, i, nextSprite))
|
for (int nextSprite, SPRITES_OF_STAT_SAFE(STAT_DEFAULT, i, nextSprite))
|
||||||
{
|
{
|
||||||
A_ResetVars(i);
|
A_ResetVars(i);
|
||||||
#if !defined LUNATIC
|
|
||||||
A_LoadActor(i);
|
A_LoadActor(i);
|
||||||
#endif
|
|
||||||
VM_OnEvent(EVENT_LOADACTOR, i);
|
VM_OnEvent(EVENT_LOADACTOR, i);
|
||||||
|
|
||||||
A_MaybeProcessEffector(i);
|
A_MaybeProcessEffector(i);
|
||||||
|
@ -1362,11 +1360,9 @@ void G_NewGame(int volumeNum, int levelNum, int skillNum)
|
||||||
|
|
||||||
M_ClearMenus();
|
M_ClearMenus();
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
Gv_ResetVars();
|
Gv_ResetVars();
|
||||||
Gv_InitWeaponPointers();
|
Gv_InitWeaponPointers();
|
||||||
Gv_RefreshPointers();
|
Gv_RefreshPointers();
|
||||||
#endif
|
|
||||||
Gv_ResetSystemDefaults();
|
Gv_ResetSystemDefaults();
|
||||||
|
|
||||||
for (int i=0; i < (MAXVOLUMES*MAXLEVELS); i++)
|
for (int i=0; i < (MAXVOLUMES*MAXLEVELS); i++)
|
||||||
|
@ -1391,13 +1387,6 @@ void G_NewGame(int volumeNum, int levelNum, int skillNum)
|
||||||
|
|
||||||
display_mirror = 0;
|
display_mirror = 0;
|
||||||
|
|
||||||
#ifdef LUNATIC
|
|
||||||
// NOTE: Lunatic state creation is relatively early. No map has yet been loaded.
|
|
||||||
// XXX: What about the cases where G_EnterLevel() is called without a preceding G_NewGame()?
|
|
||||||
El_CreateGameState();
|
|
||||||
G_PostCreateGameState();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
VM_OnEvent(EVENT_NEWGAME, g_player[screenpeek].ps->i, screenpeek);
|
VM_OnEvent(EVENT_NEWGAME, g_player[screenpeek].ps->i, screenpeek);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1924,7 +1913,6 @@ void G_FreeMapState(int levelNum)
|
||||||
if (board.savedstate == NULL)
|
if (board.savedstate == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
for (int j=0; j<g_gameVarCount; j++)
|
for (int j=0; j<g_gameVarCount; j++)
|
||||||
{
|
{
|
||||||
if (aGameVars[j].flags & GAMEVAR_NORESET)
|
if (aGameVars[j].flags & GAMEVAR_NORESET)
|
||||||
|
@ -1939,9 +1927,6 @@ void G_FreeMapState(int levelNum)
|
||||||
if (aGameArrays[j].flags & GAMEARRAY_RESTORE)
|
if (aGameArrays[j].flags & GAMEARRAY_RESTORE)
|
||||||
ALIGNED_FREE_AND_NULL(board.savedstate->arrays[j]);
|
ALIGNED_FREE_AND_NULL(board.savedstate->arrays[j]);
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
Xfree(board.savedstate->savecode);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ALIGNED_FREE_AND_NULL(board.savedstate);
|
ALIGNED_FREE_AND_NULL(board.savedstate);
|
||||||
}
|
}
|
||||||
|
|
|
@ -297,11 +297,9 @@ int32_t G_LoadPlayer(FSaveGameNode *sv)
|
||||||
|
|
||||||
M_ClearMenus();
|
M_ClearMenus();
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
Gv_ResetVars();
|
Gv_ResetVars();
|
||||||
Gv_InitWeaponPointers();
|
Gv_InitWeaponPointers();
|
||||||
Gv_RefreshPointers();
|
Gv_RefreshPointers();
|
||||||
#endif
|
|
||||||
Gv_ResetSystemDefaults();
|
Gv_ResetSystemDefaults();
|
||||||
|
|
||||||
for (int i=0; i < (MAXVOLUMES*MAXLEVELS); i++)
|
for (int i=0; i < (MAXVOLUMES*MAXLEVELS); i++)
|
||||||
|
@ -1136,9 +1134,6 @@ static const dataspec_t svgm_script[] =
|
||||||
{ DS_LOADFN, (void *) &sv_postprojectileload, 0, 1 },
|
{ DS_LOADFN, (void *) &sv_postprojectileload, 0, 1 },
|
||||||
{ 0, &actor[0], sizeof(actor_t), MAXSPRITES },
|
{ 0, &actor[0], sizeof(actor_t), MAXSPRITES },
|
||||||
{ DS_SAVEFN|DS_LOADFN, (void *)&sv_postactordata, 0, 1 },
|
{ DS_SAVEFN|DS_LOADFN, (void *)&sv_postactordata, 0, 1 },
|
||||||
#if defined LUNATIC
|
|
||||||
{ DS_LOADFN|DS_NOCHK, (void *)&sv_create_lua_state, 0, 1 },
|
|
||||||
#endif
|
|
||||||
{ DS_END, 0, 0, 0 }
|
{ DS_END, 0, 0, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1189,7 +1184,6 @@ static uint8_t *svdiff;
|
||||||
|
|
||||||
#include "gamedef.h"
|
#include "gamedef.h"
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
#define SV_SKIPMASK (/*GAMEVAR_SYSTEM|*/ GAMEVAR_READONLY | GAMEVAR_PTR_MASK | /*GAMEVAR_NORESET |*/ GAMEVAR_SPECIAL)
|
#define SV_SKIPMASK (/*GAMEVAR_SYSTEM|*/ GAMEVAR_READONLY | GAMEVAR_PTR_MASK | /*GAMEVAR_NORESET |*/ GAMEVAR_SPECIAL)
|
||||||
|
|
||||||
static char svgm_vars_string [] = "blK:vars";
|
static char svgm_vars_string [] = "blK:vars";
|
||||||
|
@ -1259,7 +1253,6 @@ static void sv_makevarspec()
|
||||||
svgm_vars[vcnt].size = 0;
|
svgm_vars[vcnt].size = 0;
|
||||||
svgm_vars[vcnt].cnt = 0;
|
svgm_vars[vcnt].cnt = 0;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
void sv_freemem()
|
void sv_freemem()
|
||||||
{
|
{
|
||||||
|
@ -1285,12 +1278,8 @@ int32_t sv_saveandmakesnapshot(FileWriter &fil, int8_t spot)
|
||||||
savehead_t h;
|
savehead_t h;
|
||||||
|
|
||||||
// calculate total snapshot size
|
// calculate total snapshot size
|
||||||
#if !defined LUNATIC
|
|
||||||
sv_makevarspec();
|
sv_makevarspec();
|
||||||
svsnapsiz = calcsz((const dataspec_t *)svgm_vars);
|
svsnapsiz = calcsz((const dataspec_t *)svgm_vars);
|
||||||
#else
|
|
||||||
svsnapsiz = 0;
|
|
||||||
#endif
|
|
||||||
svsnapsiz += calcsz(svgm_udnetw) + calcsz(svgm_secwsp) + calcsz(svgm_script) + calcsz(svgm_anmisc);
|
svsnapsiz += calcsz(svgm_udnetw) + calcsz(svgm_secwsp) + calcsz(svgm_script) + calcsz(svgm_anmisc);
|
||||||
|
|
||||||
|
|
||||||
|
@ -1490,9 +1479,7 @@ uint32_t sv_writediff(FileWriter *fil)
|
||||||
cmpspecdata(svgm_secwsp, &p, &d);
|
cmpspecdata(svgm_secwsp, &p, &d);
|
||||||
cmpspecdata(svgm_script, &p, &d);
|
cmpspecdata(svgm_script, &p, &d);
|
||||||
cmpspecdata(svgm_anmisc, &p, &d);
|
cmpspecdata(svgm_anmisc, &p, &d);
|
||||||
#if !defined LUNATIC
|
|
||||||
cmpspecdata((const dataspec_t *)svgm_vars, &p, &d);
|
cmpspecdata((const dataspec_t *)svgm_vars, &p, &d);
|
||||||
#endif
|
|
||||||
|
|
||||||
if (p != svsnapshot+svsnapsiz)
|
if (p != svsnapshot+svsnapsiz)
|
||||||
Printf("sv_writediff: dump+siz=%p, p=%p!\n", svsnapshot+svsnapsiz, p);
|
Printf("sv_writediff: dump+siz=%p, p=%p!\n", svsnapshot+svsnapsiz, p);
|
||||||
|
@ -1524,9 +1511,7 @@ int32_t sv_readdiff(FileReader &fil)
|
||||||
if (applydiff(svgm_secwsp, &p, &d)) return -4;
|
if (applydiff(svgm_secwsp, &p, &d)) return -4;
|
||||||
if (applydiff(svgm_script, &p, &d)) return -5;
|
if (applydiff(svgm_script, &p, &d)) return -5;
|
||||||
if (applydiff(svgm_anmisc, &p, &d)) return -6;
|
if (applydiff(svgm_anmisc, &p, &d)) return -6;
|
||||||
#if !defined LUNATIC
|
|
||||||
if (applydiff((const dataspec_t *)svgm_vars, &p, &d)) return -7;
|
if (applydiff((const dataspec_t *)svgm_vars, &p, &d)) return -7;
|
||||||
#endif
|
|
||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
|
@ -1680,12 +1665,6 @@ static void sv_restload()
|
||||||
# define PRINTSIZE(name) do { } while (0)
|
# define PRINTSIZE(name) do { } while (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef LUNATIC
|
|
||||||
// <levelnum>: if we're not serializing for a mapstate, -1
|
|
||||||
// otherwise, the linearized level number
|
|
||||||
LUNATIC_CB const char *(*El_SerializeGamevars)(int32_t *slenptr, int32_t levelnum);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static uint8_t *dosaveplayer2(FileWriter &fil, uint8_t *mem)
|
static uint8_t *dosaveplayer2(FileWriter &fil, uint8_t *mem)
|
||||||
{
|
{
|
||||||
#ifdef DEBUGGINGAIDS
|
#ifdef DEBUGGINGAIDS
|
||||||
|
@ -1701,11 +1680,9 @@ static uint8_t *dosaveplayer2(FileWriter &fil, uint8_t *mem)
|
||||||
mem=writespecdata(svgm_anmisc, &fil, mem); // animates, quotes & misc.
|
mem=writespecdata(svgm_anmisc, &fil, mem); // animates, quotes & misc.
|
||||||
PRINTSIZE("animisc");
|
PRINTSIZE("animisc");
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
Gv_WriteSave(fil); // gamevars
|
Gv_WriteSave(fil); // gamevars
|
||||||
mem=writespecdata((const dataspec_t *)svgm_vars, 0, mem);
|
mem=writespecdata((const dataspec_t *)svgm_vars, 0, mem);
|
||||||
PRINTSIZE("vars");
|
PRINTSIZE("vars");
|
||||||
#endif
|
|
||||||
|
|
||||||
return mem;
|
return mem;
|
||||||
}
|
}
|
||||||
|
@ -1727,7 +1704,6 @@ static int32_t doloadplayer2(FileReader &fil, uint8_t **memptr)
|
||||||
if (readspecdata(svgm_anmisc, &fil, &mem)) return -6;
|
if (readspecdata(svgm_anmisc, &fil, &mem)) return -6;
|
||||||
PRINTSIZE("animisc");
|
PRINTSIZE("animisc");
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if ((i = Gv_ReadSave(fil))) return i;
|
if ((i = Gv_ReadSave(fil))) return i;
|
||||||
|
@ -1744,7 +1720,6 @@ static int32_t doloadplayer2(FileReader &fil, uint8_t **memptr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
PRINTSIZE("vars");
|
PRINTSIZE("vars");
|
||||||
#endif
|
|
||||||
|
|
||||||
if (memptr)
|
if (memptr)
|
||||||
*memptr = mem;
|
*memptr = mem;
|
||||||
|
@ -1763,9 +1738,7 @@ int32_t sv_updatestate(int32_t frominit)
|
||||||
if (readspecdata(svgm_script, nullptr, &p)) return -5;
|
if (readspecdata(svgm_script, nullptr, &p)) return -5;
|
||||||
if (readspecdata(svgm_anmisc, nullptr, &p)) return -6;
|
if (readspecdata(svgm_anmisc, nullptr, &p)) return -6;
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
if (readspecdata((const dataspec_t *)svgm_vars, nullptr, &p)) return -8;
|
if (readspecdata((const dataspec_t *)svgm_vars, nullptr, &p)) return -8;
|
||||||
#endif
|
|
||||||
|
|
||||||
if (p != pbeg+svsnapsiz)
|
if (p != pbeg+svsnapsiz)
|
||||||
{
|
{
|
||||||
|
@ -1884,11 +1857,7 @@ static void postloadplayer(int32_t savegamep)
|
||||||
|
|
||||||
//8
|
//8
|
||||||
// if (savegamep) ?
|
// if (savegamep) ?
|
||||||
#ifdef LUNATIC
|
|
||||||
G_ResetTimers(1);
|
|
||||||
#else
|
|
||||||
G_ResetTimers(0);
|
G_ResetTimers(0);
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef USE_STRUCT_TRACKERS
|
#ifdef USE_STRUCT_TRACKERS
|
||||||
Bmemset(sectorchanged, 0, sizeof(sectorchanged));
|
Bmemset(sectorchanged, 0, sizeof(sectorchanged));
|
||||||
|
|
|
@ -28,11 +28,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
BEGIN_DUKE_NS
|
BEGIN_DUKE_NS
|
||||||
|
|
||||||
|
|
||||||
#ifdef LUNATIC
|
#define SV_MAJOR_VER 1
|
||||||
# define SV_MAJOR_VER 2
|
|
||||||
#else
|
|
||||||
# define SV_MAJOR_VER 1
|
|
||||||
#endif
|
|
||||||
#define SV_MINOR_VER 7
|
#define SV_MINOR_VER 7
|
||||||
|
|
||||||
#pragma pack(push,1)
|
#pragma pack(push,1)
|
||||||
|
|
|
@ -1038,11 +1038,7 @@ void G_DrawBackground(void)
|
||||||
// Gv_SetVar(g_iReturnVarID,tilesizx[MENUTILE]==320&&tilesizy[MENUTILE]==200?MENUTILE:BIGHOLE, -1, -1);
|
// Gv_SetVar(g_iReturnVarID,tilesizx[MENUTILE]==320&&tilesizy[MENUTILE]==200?MENUTILE:BIGHOLE, -1, -1);
|
||||||
bgtile = VM_OnEventWithReturn(EVENT_GETMENUTILE, g_player[screenpeek].ps->i, screenpeek, bgtile);
|
bgtile = VM_OnEventWithReturn(EVENT_GETMENUTILE, g_player[screenpeek].ps->i, screenpeek, bgtile);
|
||||||
// MENU_TILE: is the menu tile tileable?
|
// MENU_TILE: is the menu tile tileable?
|
||||||
#if !defined LUNATIC
|
|
||||||
if (Gv_GetVarByLabel("MENU_TILE", !fstilep, -1, -1))
|
if (Gv_GetVarByLabel("MENU_TILE", !fstilep, -1, -1))
|
||||||
#else
|
|
||||||
if (!fstilep)
|
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
if ((unsigned) bgtile < MAXTILES)
|
if ((unsigned) bgtile < MAXTILES)
|
||||||
for (y=y1; y<y2; y+=tilesiz[bgtile].y)
|
for (y=y1; y<y2; y+=tilesiz[bgtile].y)
|
||||||
|
|
|
@ -958,10 +958,6 @@ void G_DisplayRest(int32_t smoothratio)
|
||||||
G_ShowScores();
|
G_ShowScores();
|
||||||
|
|
||||||
|
|
||||||
#ifdef LUNATIC
|
|
||||||
El_DisplayErrors();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef EDUKE32_TOUCH_DEVICES
|
#ifndef EDUKE32_TOUCH_DEVICES
|
||||||
if (VOLUMEONE)
|
if (VOLUMEONE)
|
||||||
{
|
{
|
||||||
|
@ -1070,10 +1066,6 @@ static void fadepaltile(int32_t r, int32_t g, int32_t b, int32_t start, int32_t
|
||||||
} while (start != end+step);
|
} while (start != end+step);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef LUNATIC
|
|
||||||
int32_t g_logoFlags = 255;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __ANDROID__
|
#ifdef __ANDROID__
|
||||||
int inExtraScreens = 0;
|
int inExtraScreens = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -338,7 +338,6 @@ int32_t FLAMETHROWER_LOOP = FLAMETHROWER_LOOP__STATIC;
|
||||||
int32_t FLAMETHROWER_END = FLAMETHROWER_END__STATIC;
|
int32_t FLAMETHROWER_END = FLAMETHROWER_END__STATIC;
|
||||||
int32_t E5L7_DUKE_QUIT_YOU = E5L7_DUKE_QUIT_YOU__STATIC;
|
int32_t E5L7_DUKE_QUIT_YOU = E5L7_DUKE_QUIT_YOU__STATIC;
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
static hashtable_t h_names = {512, NULL};
|
static hashtable_t h_names = {512, NULL};
|
||||||
|
|
||||||
void G_ProcessDynamicSoundMapping(const char *szLabel, int32_t lValue)
|
void G_ProcessDynamicSoundMapping(const char *szLabel, int32_t lValue)
|
||||||
|
@ -372,7 +371,6 @@ void freesoundhashnames(void)
|
||||||
hash_free(&h_names);
|
hash_free(&h_names);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
// This is run after all CON define's have been processed to set up the
|
// This is run after all CON define's have been processed to set up the
|
||||||
// dynamic->static sound mapping.
|
// dynamic->static sound mapping.
|
||||||
|
|
|
@ -178,10 +178,8 @@ void G_InitDynamicSounds(void);
|
||||||
|
|
||||||
void G_ProcessDynamicSoundMapping(const char *szLabel, int32_t lValue);
|
void G_ProcessDynamicSoundMapping(const char *szLabel, int32_t lValue);
|
||||||
|
|
||||||
#if !defined LUNATIC
|
|
||||||
void initsoundhashnames(void);
|
void initsoundhashnames(void);
|
||||||
void freesoundhashnames(void);
|
void freesoundhashnames(void);
|
||||||
#endif
|
|
||||||
|
|
||||||
extern int32_t ALIEN_SWITCH1;
|
extern int32_t ALIEN_SWITCH1;
|
||||||
extern int32_t BIGBANG;
|
extern int32_t BIGBANG;
|
||||||
|
|
Loading…
Reference in a new issue