mirror of
https://github.com/ZDoom/raze-gles.git
synced 2025-03-01 06:31:13 +00:00
CON cleanup/tweaks. This improves the game update time by about 5% in some of my test scenarios.
git-svn-id: https://svn.eduke32.com/eduke32@7261 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
0bbde29c85
commit
72d80890e2
3 changed files with 587 additions and 717 deletions
source/duke3d/src
|
@ -144,19 +144,19 @@ static tokenmap_t const vm_keywords[] =
|
||||||
{ "addammo", CON_ADDAMMO },
|
{ "addammo", CON_ADDAMMO },
|
||||||
{ "addinventory", CON_ADDINVENTORY },
|
{ "addinventory", CON_ADDINVENTORY },
|
||||||
{ "addkills", CON_ADDKILLS },
|
{ "addkills", CON_ADDKILLS },
|
||||||
{ "addlog", CON_ADDLOG },
|
{ "addlog", CON_ADDLOGVAR },
|
||||||
{ "addlogvar", CON_ADDLOGVAR },
|
{ "addlogvar", CON_ADDLOGVAR },
|
||||||
{ "addphealth", CON_ADDPHEALTH },
|
{ "addphealth", CON_ADDPHEALTH },
|
||||||
{ "addstrength", CON_ADDSTRENGTH },
|
{ "addstrength", CON_ADDSTRENGTH },
|
||||||
{ "addvar", CON_ADDVAR },
|
{ "addvar", CON_ADDVAR },
|
||||||
{ "addvarvar", CON_ADDVARVAR },
|
{ "addvarvar", CON_ADDVARVAR },
|
||||||
{ "addweapon", CON_ADDWEAPON },
|
{ "addweapon", CON_ADDWEAPON },
|
||||||
{ "addweaponvar", CON_ADDWEAPONVAR },
|
{ "addweaponvar", CON_ADDWEAPON },
|
||||||
{ "ai", CON_AI },
|
{ "ai", CON_AI },
|
||||||
{ "andvar", CON_ANDVAR },
|
{ "andvar", CON_ANDVAR },
|
||||||
{ "andvarvar", CON_ANDVARVAR },
|
{ "andvarvar", CON_ANDVARVAR },
|
||||||
{ "angoff", CON_ANGOFF },
|
{ "angoff", CON_ANGOFF },
|
||||||
{ "angoffvar", CON_ANGOFFVAR },
|
{ "angoffvar", CON_ANGOFF },
|
||||||
{ "appendevent", CON_APPENDEVENT },
|
{ "appendevent", CON_APPENDEVENT },
|
||||||
{ "betaname", CON_BETANAME },
|
{ "betaname", CON_BETANAME },
|
||||||
{ "break", CON_BREAK },
|
{ "break", CON_BREAK },
|
||||||
|
@ -225,18 +225,18 @@ static tokenmap_t const vm_keywords[] =
|
||||||
{ "ends", CON_ENDS },
|
{ "ends", CON_ENDS },
|
||||||
{ "endswitch", CON_ENDSWITCH },
|
{ "endswitch", CON_ENDSWITCH },
|
||||||
{ "enhanced", CON_ENHANCED },
|
{ "enhanced", CON_ENHANCED },
|
||||||
{ "eqspawnvar", CON_EQSPAWNVAR },
|
{ "eqspawnvar", CON_EQSPAWN },
|
||||||
{ "eshootvar", CON_ESHOOTVAR },
|
{ "eshootvar", CON_ESHOOT },
|
||||||
{ "espawnvar", CON_ESPAWNVAR },
|
{ "espawnvar", CON_ESPAWN },
|
||||||
{ "eventloadactor", CON_EVENTLOADACTOR },
|
{ "eventloadactor", CON_EVENTLOADACTOR },
|
||||||
{ "ezshootvar", CON_EZSHOOTVAR },
|
{ "ezshootvar", CON_EZSHOOT },
|
||||||
{ "fall", CON_FALL },
|
{ "fall", CON_FALL },
|
||||||
{ "findnearactor3dvar", CON_FINDNEARACTOR3DVAR },
|
{ "findnearactor3dvar", CON_FINDNEARACTOR3D },
|
||||||
{ "findnearactorvar", CON_FINDNEARACTORVAR },
|
{ "findnearactorvar", CON_FINDNEARACTOR },
|
||||||
{ "findnearactorzvar", CON_FINDNEARACTORZVAR },
|
{ "findnearactorzvar", CON_FINDNEARACTORZ },
|
||||||
{ "findnearsprite3dvar", CON_FINDNEARSPRITE3DVAR },
|
{ "findnearsprite3dvar", CON_FINDNEARSPRITE3D },
|
||||||
{ "findnearspritevar", CON_FINDNEARSPRITEVAR },
|
{ "findnearspritevar", CON_FINDNEARSPRITE },
|
||||||
{ "findnearspritezvar", CON_FINDNEARSPRITEZVAR },
|
{ "findnearspritezvar", CON_FINDNEARSPRITEZ },
|
||||||
{ "findotherplayer", CON_FINDOTHERPLAYER },
|
{ "findotherplayer", CON_FINDOTHERPLAYER },
|
||||||
{ "findplayer", CON_FINDPLAYER },
|
{ "findplayer", CON_FINDPLAYER },
|
||||||
{ "flash", CON_FLASH },
|
{ "flash", CON_FLASH },
|
||||||
|
@ -278,14 +278,14 @@ static tokenmap_t const vm_keywords[] =
|
||||||
{ "getwall", CON_GETWALL },
|
{ "getwall", CON_GETWALL },
|
||||||
{ "getzrange", CON_GETZRANGE },
|
{ "getzrange", CON_GETZRANGE },
|
||||||
{ "globalsound", CON_GLOBALSOUND },
|
{ "globalsound", CON_GLOBALSOUND },
|
||||||
{ "globalsoundvar", CON_GLOBALSOUNDVAR },
|
{ "globalsoundvar", CON_GLOBALSOUND },
|
||||||
{ "gmaxammo", CON_GMAXAMMO },
|
{ "gmaxammo", CON_GMAXAMMO },
|
||||||
{ "guniqhudid", CON_GUNIQHUDID },
|
{ "guniqhudid", CON_GUNIQHUDID },
|
||||||
{ "guts", CON_GUTS },
|
{ "guts", CON_GUTS },
|
||||||
{ "headspritesect", CON_HEADSPRITESECT },
|
{ "headspritesect", CON_HEADSPRITESECT },
|
||||||
{ "headspritestat", CON_HEADSPRITESTAT },
|
{ "headspritestat", CON_HEADSPRITESTAT },
|
||||||
{ "hitradius", CON_HITRADIUS },
|
{ "hitradius", CON_HITRADIUS },
|
||||||
{ "hitradiusvar", CON_HITRADIUSVAR },
|
{ "hitradiusvar", CON_HITRADIUS },
|
||||||
{ "hitscan", CON_HITSCAN },
|
{ "hitscan", CON_HITSCAN },
|
||||||
{ "ifaction", CON_IFACTION },
|
{ "ifaction", CON_IFACTION },
|
||||||
{ "ifactioncount", CON_IFACTIONCOUNT },
|
{ "ifactioncount", CON_IFACTIONCOUNT },
|
||||||
|
@ -416,7 +416,7 @@ static tokenmap_t const vm_keywords[] =
|
||||||
{ "preloadtrackslotforswap", CON_PRELOADTRACKSLOTFORSWAP },
|
{ "preloadtrackslotforswap", CON_PRELOADTRACKSLOTFORSWAP },
|
||||||
{ "pstomp", CON_PSTOMP },
|
{ "pstomp", CON_PSTOMP },
|
||||||
{ "qgetsysstr", CON_QGETSYSSTR },
|
{ "qgetsysstr", CON_QGETSYSSTR },
|
||||||
{ "qspawnvar", CON_QSPAWNVAR },
|
{ "qspawnvar", CON_QSPAWN },
|
||||||
{ "qsprintf", CON_QSPRINTF },
|
{ "qsprintf", CON_QSPRINTF },
|
||||||
{ "qstrcat", CON_QSTRCAT },
|
{ "qstrcat", CON_QSTRCAT },
|
||||||
{ "qstrcmp", CON_QSTRCMP },
|
{ "qstrcmp", CON_QSTRCMP },
|
||||||
|
@ -488,7 +488,7 @@ static tokenmap_t const vm_keywords[] =
|
||||||
{ "shiftvarr", CON_SHIFTVARR },
|
{ "shiftvarr", CON_SHIFTVARR },
|
||||||
{ "shiftvarvarl", CON_SHIFTVARVARL },
|
{ "shiftvarvarl", CON_SHIFTVARVARL },
|
||||||
{ "shiftvarvarr", CON_SHIFTVARVARR },
|
{ "shiftvarvarr", CON_SHIFTVARVARR },
|
||||||
{ "shootvar", CON_SHOOTVAR },
|
{ "shootvar", CON_SHOOT },
|
||||||
{ "showview", CON_SHOWVIEW },
|
{ "showview", CON_SHOWVIEW },
|
||||||
{ "showviewunbiased", CON_SHOWVIEWUNBIASED },
|
{ "showviewunbiased", CON_SHOWVIEWUNBIASED },
|
||||||
{ "showviewq16", CON_SHOWVIEWQ16 },
|
{ "showviewq16", CON_SHOWVIEWQ16 },
|
||||||
|
@ -500,8 +500,8 @@ static tokenmap_t const vm_keywords[] =
|
||||||
{ "smaxammo", CON_SMAXAMMO },
|
{ "smaxammo", CON_SMAXAMMO },
|
||||||
{ "sound", CON_SOUND },
|
{ "sound", CON_SOUND },
|
||||||
{ "soundonce", CON_SOUNDONCE },
|
{ "soundonce", CON_SOUNDONCE },
|
||||||
{ "soundoncevar", CON_SOUNDONCEVAR },
|
{ "soundoncevar", CON_SOUNDONCE },
|
||||||
{ "soundvar", CON_SOUNDVAR },
|
{ "soundvar", CON_SOUND },
|
||||||
{ "spawn", CON_SPAWN },
|
{ "spawn", CON_SPAWN },
|
||||||
{ "spawnceilingglass", CON_SPAWNCEILINGGLASS },
|
{ "spawnceilingglass", CON_SPAWNCEILINGGLASS },
|
||||||
{ "spawnwallstainedglass", CON_SPAWNWALLSTAINEDGLASS },
|
{ "spawnwallstainedglass", CON_SPAWNWALLSTAINEDGLASS },
|
||||||
|
@ -521,13 +521,13 @@ static tokenmap_t const vm_keywords[] =
|
||||||
{ "startscreen", CON_STARTSCREEN },
|
{ "startscreen", CON_STARTSCREEN },
|
||||||
{ "starttrack", CON_STARTTRACK },
|
{ "starttrack", CON_STARTTRACK },
|
||||||
{ "starttrackslot", CON_STARTTRACKSLOT },
|
{ "starttrackslot", CON_STARTTRACKSLOT },
|
||||||
{ "starttrackvar", CON_STARTTRACKVAR },
|
{ "starttrackvar", CON_STARTTRACK },
|
||||||
{ "state", CON_STATE },
|
{ "state", CON_STATE },
|
||||||
{ "stopactorsound", CON_STOPACTORSOUND },
|
{ "stopactorsound", CON_STOPACTORSOUND },
|
||||||
{ "stopallmusic", CON_STOPALLMUSIC },
|
{ "stopallmusic", CON_STOPALLMUSIC },
|
||||||
{ "stopallsounds", CON_STOPALLSOUNDS },
|
{ "stopallsounds", CON_STOPALLSOUNDS },
|
||||||
{ "stopsound", CON_STOPSOUND },
|
{ "stopsound", CON_STOPSOUND },
|
||||||
{ "stopsoundvar", CON_STOPSOUNDVAR },
|
{ "stopsoundvar", CON_STOPSOUND },
|
||||||
{ "strength", CON_STRENGTH },
|
{ "strength", CON_STRENGTH },
|
||||||
{ "subvar", CON_SUBVAR },
|
{ "subvar", CON_SUBVAR },
|
||||||
{ "subvarvar", CON_SUBVARVAR },
|
{ "subvarvar", CON_SUBVARVAR },
|
||||||
|
@ -554,7 +554,7 @@ static tokenmap_t const vm_keywords[] =
|
||||||
{ "writearraytofile", CON_WRITEARRAYTOFILE },
|
{ "writearraytofile", CON_WRITEARRAYTOFILE },
|
||||||
{ "xorvar", CON_XORVAR },
|
{ "xorvar", CON_XORVAR },
|
||||||
{ "xorvarvar", CON_XORVARVAR },
|
{ "xorvarvar", CON_XORVARVAR },
|
||||||
{ "zshootvar", CON_ZSHOOTVAR },
|
{ "zshootvar", CON_ZSHOOT },
|
||||||
{ "{", CON_LEFTBRACE },
|
{ "{", CON_LEFTBRACE },
|
||||||
{ "}", CON_RIGHTBRACE },
|
{ "}", CON_RIGHTBRACE },
|
||||||
|
|
||||||
|
@ -621,22 +621,22 @@ static tokenmap_t const vm_keywords[] =
|
||||||
|
|
||||||
{ "qputs", CON_REDEFINEQUOTE },
|
{ "qputs", CON_REDEFINEQUOTE },
|
||||||
|
|
||||||
{ "espawn", CON_ESPAWNVAR },
|
{ "espawn", CON_ESPAWN },
|
||||||
{ "qspawn", CON_QSPAWNVAR },
|
{ "qspawn", CON_QSPAWN },
|
||||||
{ "eqspawn", CON_EQSPAWNVAR },
|
{ "eqspawn", CON_EQSPAWN },
|
||||||
|
|
||||||
{ "eshoot", CON_ESHOOTVAR },
|
{ "eshoot", CON_ESHOOT },
|
||||||
{ "zshoot", CON_ZSHOOTVAR },
|
{ "zshoot", CON_ZSHOOT },
|
||||||
{ "ezshoot", CON_EZSHOOTVAR },
|
{ "ezshoot", CON_EZSHOOT },
|
||||||
{ "shoot", CON_SHOOTVAR },
|
{ "shoot", CON_SHOOT },
|
||||||
|
|
||||||
{ "findnearactor", CON_FINDNEARACTORVAR },
|
{ "findnearactor", CON_FINDNEARACTOR },
|
||||||
{ "findnearactor3d", CON_FINDNEARACTOR3DVAR },
|
{ "findnearactor3d", CON_FINDNEARACTOR3D },
|
||||||
{ "findnearactorz", CON_FINDNEARACTORZVAR },
|
{ "findnearactorz", CON_FINDNEARACTORZ },
|
||||||
|
|
||||||
{ "findnearsprite", CON_FINDNEARSPRITEVAR },
|
{ "findnearsprite", CON_FINDNEARSPRITE },
|
||||||
{ "findnearsprite3d", CON_FINDNEARSPRITE3DVAR },
|
{ "findnearsprite3d", CON_FINDNEARSPRITE3D },
|
||||||
{ "findnearspritez", CON_FINDNEARSPRITEZVAR },
|
{ "findnearspritez", CON_FINDNEARSPRITEZ },
|
||||||
};
|
};
|
||||||
|
|
||||||
static const vec2_t varvartable[] =
|
static const vec2_t varvartable[] =
|
||||||
|
@ -3099,7 +3099,7 @@ DO_DEFSTATE:
|
||||||
C_GetManyVars(4);
|
C_GetManyVars(4);
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case CON_HITRADIUSVAR:
|
case CON_HITRADIUS:
|
||||||
case CON_DRAWLINE256:
|
case CON_DRAWLINE256:
|
||||||
C_GetManyVars(5);
|
C_GetManyVars(5);
|
||||||
continue;
|
continue;
|
||||||
|
@ -3108,14 +3108,8 @@ DO_DEFSTATE:
|
||||||
C_GetManyVars(6);
|
C_GetManyVars(6);
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case CON_HITRADIUS:
|
|
||||||
C_GetNextValue(LABEL_DEFINE);
|
|
||||||
C_GetNextValue(LABEL_DEFINE);
|
|
||||||
C_GetNextValue(LABEL_DEFINE);
|
|
||||||
fallthrough__;
|
|
||||||
case CON_ADDAMMO:
|
case CON_ADDAMMO:
|
||||||
case CON_ADDINVENTORY:
|
case CON_ADDINVENTORY:
|
||||||
case CON_ADDWEAPON:
|
|
||||||
case CON_DEBRIS:
|
case CON_DEBRIS:
|
||||||
case CON_GUTS:
|
case CON_GUTS:
|
||||||
case CON_SIZEAT:
|
case CON_SIZEAT:
|
||||||
|
@ -3125,7 +3119,6 @@ DO_DEFSTATE:
|
||||||
case CON_ADDKILLS:
|
case CON_ADDKILLS:
|
||||||
case CON_ADDPHEALTH:
|
case CON_ADDPHEALTH:
|
||||||
case CON_ADDSTRENGTH:
|
case CON_ADDSTRENGTH:
|
||||||
case CON_ANGOFF:
|
|
||||||
case CON_CACTOR:
|
case CON_CACTOR:
|
||||||
case CON_CLIPDIST:
|
case CON_CLIPDIST:
|
||||||
case CON_COUNT:
|
case CON_COUNT:
|
||||||
|
@ -3133,7 +3126,6 @@ DO_DEFSTATE:
|
||||||
case CON_DEBUG:
|
case CON_DEBUG:
|
||||||
case CON_ENDOFGAME:
|
case CON_ENDOFGAME:
|
||||||
case CON_ENDOFLEVEL:
|
case CON_ENDOFLEVEL:
|
||||||
case CON_GLOBALSOUND:
|
|
||||||
case CON_LOTSOFGLASS:
|
case CON_LOTSOFGLASS:
|
||||||
case CON_MAIL:
|
case CON_MAIL:
|
||||||
case CON_MONEY:
|
case CON_MONEY:
|
||||||
|
@ -3142,11 +3134,8 @@ DO_DEFSTATE:
|
||||||
case CON_SAVE:
|
case CON_SAVE:
|
||||||
case CON_SAVENN:
|
case CON_SAVENN:
|
||||||
case CON_SLEEPTIME:
|
case CON_SLEEPTIME:
|
||||||
case CON_SOUND:
|
|
||||||
case CON_SOUNDONCE:
|
|
||||||
case CON_SPAWN:
|
case CON_SPAWN:
|
||||||
case CON_SPRITEPAL:
|
case CON_SPRITEPAL:
|
||||||
case CON_STOPSOUND:
|
|
||||||
case CON_STRENGTH:
|
case CON_STRENGTH:
|
||||||
C_GetNextValue(LABEL_DEFINE);
|
C_GetNextValue(LABEL_DEFINE);
|
||||||
continue;
|
continue;
|
||||||
|
@ -3213,12 +3202,12 @@ DO_DEFSTATE:
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
case CON_FINDNEARACTOR3DVAR:
|
case CON_FINDNEARACTOR3D:
|
||||||
case CON_FINDNEARACTORVAR:
|
case CON_FINDNEARACTOR:
|
||||||
case CON_FINDNEARACTORZVAR:
|
case CON_FINDNEARACTORZ:
|
||||||
case CON_FINDNEARSPRITE3DVAR:
|
case CON_FINDNEARSPRITE3D:
|
||||||
case CON_FINDNEARSPRITEVAR:
|
case CON_FINDNEARSPRITE:
|
||||||
case CON_FINDNEARSPRITEZVAR:
|
case CON_FINDNEARSPRITEZ:
|
||||||
{
|
{
|
||||||
C_GetNextValue(LABEL_DEFINE); // get <type>
|
C_GetNextValue(LABEL_DEFINE); // get <type>
|
||||||
|
|
||||||
|
@ -3226,8 +3215,8 @@ DO_DEFSTATE:
|
||||||
C_GetNextVar();
|
C_GetNextVar();
|
||||||
switch (tw)
|
switch (tw)
|
||||||
{
|
{
|
||||||
case CON_FINDNEARACTORZVAR:
|
case CON_FINDNEARACTORZ:
|
||||||
case CON_FINDNEARSPRITEZVAR:
|
case CON_FINDNEARSPRITEZ:
|
||||||
C_GetNextVar();
|
C_GetNextVar();
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -3568,17 +3557,17 @@ setvarvar:
|
||||||
fallthrough__;
|
fallthrough__;
|
||||||
case CON_ACTIVATECHEAT:
|
case CON_ACTIVATECHEAT:
|
||||||
case CON_ADDLOGVAR:
|
case CON_ADDLOGVAR:
|
||||||
case CON_ANGOFFVAR:
|
case CON_ANGOFF:
|
||||||
case CON_CHECKACTIVATORMOTION:
|
case CON_CHECKACTIVATORMOTION:
|
||||||
case CON_CHECKAVAILINVEN:
|
case CON_CHECKAVAILINVEN:
|
||||||
case CON_CHECKAVAILWEAPON:
|
case CON_CHECKAVAILWEAPON:
|
||||||
case CON_CLEARMAPSTATE:
|
case CON_CLEARMAPSTATE:
|
||||||
case CON_CMENU:
|
case CON_CMENU:
|
||||||
case CON_ECHO:
|
case CON_ECHO:
|
||||||
case CON_EQSPAWNVAR:
|
case CON_EQSPAWN:
|
||||||
case CON_ESHOOTVAR:
|
case CON_ESHOOT:
|
||||||
case CON_ESPAWNVAR:
|
case CON_ESPAWN:
|
||||||
case CON_GLOBALSOUNDVAR:
|
case CON_GLOBALSOUND:
|
||||||
case CON_GUNIQHUDID:
|
case CON_GUNIQHUDID:
|
||||||
case CON_INITTIMER:
|
case CON_INITTIMER:
|
||||||
case CON_JUMP:
|
case CON_JUMP:
|
||||||
|
@ -3586,7 +3575,7 @@ setvarvar:
|
||||||
case CON_MOVESECTOR:
|
case CON_MOVESECTOR:
|
||||||
case CON_OPERATEMASTERSWITCHES:
|
case CON_OPERATEMASTERSWITCHES:
|
||||||
case CON_OPERATERESPAWNS:
|
case CON_OPERATERESPAWNS:
|
||||||
case CON_QSPAWNVAR:
|
case CON_QSPAWN:
|
||||||
case CON_QUAKE:
|
case CON_QUAKE:
|
||||||
case CON_RESETPLAYERFLAGS:
|
case CON_RESETPLAYERFLAGS:
|
||||||
case CON_SAVEGAMEVAR:
|
case CON_SAVEGAMEVAR:
|
||||||
|
@ -3597,12 +3586,12 @@ setvarvar:
|
||||||
case CON_SETGAMEPALETTE:
|
case CON_SETGAMEPALETTE:
|
||||||
case CON_SETMUSICPOSITION:
|
case CON_SETMUSICPOSITION:
|
||||||
case CON_SETPLAYERANGLE:
|
case CON_SETPLAYERANGLE:
|
||||||
case CON_SHOOTVAR:
|
case CON_SHOOT:
|
||||||
case CON_SOUNDONCEVAR:
|
case CON_SOUNDONCE:
|
||||||
case CON_SOUNDVAR:
|
case CON_SOUND:
|
||||||
case CON_STARTCUTSCENE:
|
case CON_STARTCUTSCENE:
|
||||||
case CON_STARTTRACKVAR:
|
case CON_STARTTRACK:
|
||||||
case CON_STOPSOUNDVAR:
|
case CON_STOPSOUND:
|
||||||
case CON_TIME:
|
case CON_TIME:
|
||||||
case CON_USERQUOTE:
|
case CON_USERQUOTE:
|
||||||
C_GetNextVar();
|
C_GetNextVar();
|
||||||
|
@ -3634,7 +3623,7 @@ setvarvar:
|
||||||
case CON_ACTORSOUND:
|
case CON_ACTORSOUND:
|
||||||
case CON_CHANGESPRITESECT:
|
case CON_CHANGESPRITESECT:
|
||||||
case CON_CHANGESPRITESTAT:
|
case CON_CHANGESPRITESTAT:
|
||||||
case CON_EZSHOOTVAR:
|
case CON_EZSHOOT:
|
||||||
case CON_GETPNAME:
|
case CON_GETPNAME:
|
||||||
case CON_PRELOADTRACKSLOTFORSWAP:
|
case CON_PRELOADTRACKSLOTFORSWAP:
|
||||||
case CON_QGETSYSSTR:
|
case CON_QGETSYSSTR:
|
||||||
|
@ -3647,7 +3636,7 @@ setvarvar:
|
||||||
case CON_STARTTRACKSLOT:
|
case CON_STARTTRACKSLOT:
|
||||||
case CON_STOPACTORSOUND:
|
case CON_STOPACTORSOUND:
|
||||||
case CON_SWAPTRACKSLOT:
|
case CON_SWAPTRACKSLOT:
|
||||||
case CON_ZSHOOTVAR:
|
case CON_ZSHOOT:
|
||||||
C_GetManyVars(2);
|
C_GetManyVars(2);
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -3892,7 +3881,7 @@ setvarvar:
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case CON_ACTIVATEBYSECTOR:
|
case CON_ACTIVATEBYSECTOR:
|
||||||
case CON_ADDWEAPONVAR:
|
case CON_ADDWEAPON:
|
||||||
case CON_DIST:
|
case CON_DIST:
|
||||||
case CON_DIVSCALE:
|
case CON_DIVSCALE:
|
||||||
case CON_GETANGLE:
|
case CON_GETANGLE:
|
||||||
|
@ -4141,11 +4130,6 @@ setvarvar:
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case CON_STARTTRACK:
|
|
||||||
// one parameter (track#)
|
|
||||||
C_GetNextValue(LABEL_DEFINE);
|
|
||||||
continue;
|
|
||||||
|
|
||||||
case CON_IFACTORSOUND:
|
case CON_IFACTORSOUND:
|
||||||
case CON_IFVARVARA:
|
case CON_IFVARVARA:
|
||||||
case CON_IFVARVARAE:
|
case CON_IFVARVARAE:
|
||||||
|
@ -5634,7 +5618,6 @@ repeatcase:
|
||||||
g_scriptPtr--;
|
g_scriptPtr--;
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case CON_ADDLOG:
|
|
||||||
case CON_FALL:
|
case CON_FALL:
|
||||||
case CON_GETLASTPAL:
|
case CON_GETLASTPAL:
|
||||||
case CON_GETTEXTURECEILING:
|
case CON_GETTEXTURECEILING:
|
||||||
|
|
|
@ -836,449 +836,432 @@ enum IterationTypes_t
|
||||||
|
|
||||||
enum ScriptKeywords_t
|
enum ScriptKeywords_t
|
||||||
{
|
{
|
||||||
CON_ELSE, // 0
|
CON_ACTION,
|
||||||
CON_ACTOR, // 1
|
CON_ACTIVATE,
|
||||||
CON_ADDAMMO, // 2
|
CON_ACTIVATEBYSECTOR,
|
||||||
CON_IFRND, // 3
|
CON_ACTIVATECHEAT,
|
||||||
CON_ENDA, // 4
|
CON_ACTORSOUND,
|
||||||
CON_IFCANSEE, // 5
|
CON_ADDAMMO,
|
||||||
CON_IFHITWEAPON, // 6
|
CON_ADDINVENTORY,
|
||||||
CON_ACTION, // 7
|
CON_ADDKILLS,
|
||||||
CON_IFPDISTL, // 8
|
CON_ADDLOGVAR,
|
||||||
CON_IFPDISTG, // 9
|
CON_ADDPHEALTH,
|
||||||
CON_DEFINELEVELNAME, // 10
|
CON_ADDSTRENGTH,
|
||||||
CON_STRENGTH, // 11
|
CON_ADDVAR,
|
||||||
CON_BREAK, // 12
|
CON_ADDVARVAR,
|
||||||
CON_SHOOT, // 13
|
CON_ADDWEAPON,
|
||||||
CON_PALFROM, // 14
|
CON_AI,
|
||||||
CON_SOUND, // 15
|
CON_ANDVAR,
|
||||||
CON_FALL, // 16
|
CON_ANDVARVAR,
|
||||||
CON_STATE, // 17
|
CON_ANGOFF,
|
||||||
CON_ENDS, // 18
|
CON_BREAK,
|
||||||
CON_DEFINE, // 19
|
CON_CACTOR,
|
||||||
CON_RETURN, // 20
|
CON_CALCHYPOTENUSE,
|
||||||
CON_IFAI, // 21
|
CON_CANSEE,
|
||||||
CON_KILLIT, // 22
|
CON_CANSEESPR,
|
||||||
CON_ADDWEAPON, // 23
|
CON_CHANGESPRITESECT,
|
||||||
CON_AI, // 24
|
CON_CHANGESPRITESTAT,
|
||||||
CON_ADDPHEALTH, // 25
|
CON_CHECKACTIVATORMOTION,
|
||||||
CON_IFDEAD, // 26
|
CON_CHECKAVAILINVEN,
|
||||||
CON_IFSQUISHED, // 27
|
CON_CHECKAVAILWEAPON,
|
||||||
CON_SIZETO, // 28
|
CON_CLAMP,
|
||||||
CON_LEFTBRACE, // 29
|
CON_CLEARMAPSTATE,
|
||||||
CON_RIGHTBRACE, // 30
|
CON_CLIPDIST,
|
||||||
CON_SPAWN, // 31
|
CON_CLIPMOVE,
|
||||||
CON_MOVE, // 32
|
CON_CLIPMOVENOSLIDE,
|
||||||
CON_IFWASWEAPON, // 33
|
CON_CMENU,
|
||||||
CON_IFACTION, // 34
|
CON_COPY,
|
||||||
CON_IFACTIONCOUNT, // 35
|
CON_COS,
|
||||||
CON_RESETACTIONCOUNT, // 36
|
CON_COUNT,
|
||||||
CON_DEBRIS, // 37
|
CON_CSTAT,
|
||||||
CON_PSTOMP, // 38
|
CON_CSTATOR,
|
||||||
CON_BLOCKCOMMENT, // 39 deprecated
|
CON_DEBRIS,
|
||||||
CON_CSTAT, // 40
|
CON_DEBUG,
|
||||||
CON_IFMOVE, // 41
|
CON_DIGITALNUMBER,
|
||||||
CON_RESETPLAYER, // 42
|
CON_DIGITALNUMBERZ,
|
||||||
CON_IFONWATER, // 43
|
CON_DISPLAYRAND,
|
||||||
CON_IFINWATER, // 44
|
CON_DISPLAYRANDVAR,
|
||||||
CON_IFCANSHOOTTARGET, // 45
|
CON_DISPLAYRANDVARVAR,
|
||||||
CON_IFCOUNT, // 46
|
CON_DIST,
|
||||||
CON_RESETCOUNT, // 47
|
CON_DIVR,
|
||||||
CON_ADDINVENTORY, // 48
|
CON_DIVRU,
|
||||||
CON_IFACTORNOTSTAYPUT, // 49
|
CON_DIVSCALE,
|
||||||
CON_HITRADIUS, // 50
|
CON_DIVVAR,
|
||||||
CON_IFP, // 51
|
CON_DIVVARVAR,
|
||||||
CON_COUNT, // 52
|
CON_DRAGPOINT,
|
||||||
CON_IFACTOR, // 53
|
CON_DRAWLINE256,
|
||||||
CON_MUSIC, // 54
|
CON_DRAWLINERGB,
|
||||||
CON_INCLUDE, // 55
|
CON_ECHO,
|
||||||
CON_IFSTRENGTH, // 56
|
CON_ELSE,
|
||||||
CON_DEFINESOUND, // 57
|
CON_ENDA,
|
||||||
CON_GUTS, // 58
|
CON_ENDEVENT,
|
||||||
CON_IFSPAWNEDBY, // 59
|
CON_ENDOFGAME,
|
||||||
CON_GAMESTARTUP, // 60
|
CON_ENDOFLEVEL,
|
||||||
CON_WACKPLAYER, // 61
|
CON_ENDS,
|
||||||
CON_IFGAPZL, // 62
|
CON_ENDSWITCH,
|
||||||
CON_IFHITSPACE, // 63
|
CON_EQSPAWN,
|
||||||
CON_IFOUTSIDE, // 64
|
CON_ESHOOT,
|
||||||
CON_IFMULTIPLAYER, // 65
|
CON_ESPAWN,
|
||||||
CON_OPERATE, // 66
|
CON_EVENTLOADACTOR,
|
||||||
CON_IFINSPACE, // 67
|
CON_EZSHOOT,
|
||||||
CON_DEBUG, // 68
|
CON_FALL,
|
||||||
CON_ENDOFGAME, // 69
|
CON_FINDNEARACTOR3D,
|
||||||
CON_IFBULLETNEAR, // 70
|
CON_FINDNEARACTOR,
|
||||||
CON_IFRESPAWN, // 71
|
CON_FINDNEARACTORZ,
|
||||||
CON_IFFLOORDISTL, // 72
|
CON_FINDNEARSPRITE3D,
|
||||||
CON_IFCEILINGDISTL, // 73
|
CON_FINDNEARSPRITE,
|
||||||
CON_SPRITEPAL, // 74
|
CON_FINDNEARSPRITEZ,
|
||||||
CON_IFPINVENTORY, // 75
|
CON_FINDOTHERPLAYER,
|
||||||
CON_BETANAME, // 76
|
CON_FINDPLAYER,
|
||||||
CON_CACTOR, // 77
|
CON_FLASH,
|
||||||
CON_IFPHEALTHL, // 78
|
CON_FOR,
|
||||||
CON_DEFINEQUOTE, // 79
|
CON_GAMETEXT,
|
||||||
CON_QUOTE, // 80
|
CON_GAMETEXTZ,
|
||||||
CON_IFINOUTERSPACE, // 81
|
CON_GETACTOR,
|
||||||
CON_IFNOTMOVING, // 82
|
CON_GETACTORANGLE,
|
||||||
CON_RESPAWNHITAG, // 83
|
CON_GETACTORSTRUCT,
|
||||||
CON_TIP, // 84
|
CON_GETACTORVAR,
|
||||||
CON_IFSPRITEPAL, // 85
|
CON_GETANGLE,
|
||||||
CON_MONEY, // 86
|
CON_GETANGLETOTARGET,
|
||||||
CON_SOUNDONCE, // 87
|
CON_GETARRAYSIZE,
|
||||||
CON_ADDKILLS, // 88
|
CON_GETCEILZOFSLOPE,
|
||||||
CON_STOPSOUND, // 89
|
CON_GETCLOSESTCOL,
|
||||||
CON_IFAWAYFROMWALL, // 90
|
CON_GETCURRADDRESS,
|
||||||
CON_IFCANSEETARGET, // 91
|
CON_GETFLORZOFSLOPE,
|
||||||
CON_GLOBALSOUND, // 92
|
CON_GETINCANGLE,
|
||||||
CON_LOTSOFGLASS, // 93
|
CON_GETINPUT,
|
||||||
CON_IFGOTWEAPONCE, // 94
|
CON_GETKEYNAME,
|
||||||
CON_GETLASTPAL, // 95
|
CON_GETLASTPAL,
|
||||||
CON_PKICK, // 96
|
CON_GETMUSICPOSITION,
|
||||||
CON_MIKESND, // 97
|
CON_GETPLAYER,
|
||||||
CON_USERACTOR, // 98
|
CON_GETPLAYERANGLE,
|
||||||
CON_SIZEAT, // 99
|
CON_GETPLAYERVAR,
|
||||||
CON_ADDSTRENGTH, // 100
|
CON_GETPNAME,
|
||||||
CON_CSTATOR, // 101
|
CON_GETPROJECTILE,
|
||||||
CON_MAIL, // 102
|
CON_GETSECTOR,
|
||||||
CON_PAPER, // 103
|
CON_GETSPRITEEXT,
|
||||||
CON_TOSSWEAPON, // 104
|
CON_GETSPRITESTRUCT,
|
||||||
CON_SLEEPTIME, // 105
|
CON_GETTEXTURECEILING,
|
||||||
CON_NULLOP, // 106
|
CON_GETTEXTUREFLOOR,
|
||||||
CON_DEFINEVOLUMENAME, // 107
|
CON_GETTHISPROJECTILE,
|
||||||
CON_DEFINESKILLNAME, // 108
|
CON_GETTICKS,
|
||||||
CON_IFNOSOUNDS, // 109
|
CON_GETTILEDATA,
|
||||||
CON_CLIPDIST, // 110
|
CON_GETTIMEDATE,
|
||||||
CON_IFANGDIFFL, // 111
|
CON_GETTSPR,
|
||||||
CON_GAMEVAR, // 112
|
CON_GETUSERDEF,
|
||||||
CON_IFVARL, // 113
|
CON_GETWALL,
|
||||||
CON_IFVARG, // 114
|
CON_GETZRANGE,
|
||||||
CON_SETVARVAR, // 115
|
CON_GLOBALSOUND,
|
||||||
CON_SETVAR, // 116
|
CON_GMAXAMMO,
|
||||||
CON_ADDVARVAR, // 117
|
CON_GUNIQHUDID,
|
||||||
CON_ADDVAR, // 118
|
CON_GUTS,
|
||||||
CON_IFVARVARL, // 119
|
CON_HEADSPRITESECT,
|
||||||
CON_IFVARVARG, // 120
|
CON_HEADSPRITESTAT,
|
||||||
CON_ADDLOGVAR, // 121
|
CON_HITRADIUS,
|
||||||
CON_ADDLOG, // 122
|
CON_HITSCAN,
|
||||||
CON_ONEVENT, // 123
|
CON_IFACTION,
|
||||||
CON_ENDEVENT, // 124
|
CON_IFACTIONCOUNT,
|
||||||
CON_IFVARE, // 125
|
CON_IFACTOR,
|
||||||
CON_IFVARVARE, // 126
|
CON_IFACTORNOTSTAYPUT,
|
||||||
CON_SPGETLOTAG, // 127
|
CON_IFACTORSOUND,
|
||||||
CON_SPGETHITAG, // 128
|
CON_IFAI,
|
||||||
CON_SECTGETLOTAG, // 129
|
CON_IFANGDIFFL,
|
||||||
CON_SECTGETHITAG, // 130
|
CON_IFAWAYFROMWALL,
|
||||||
CON_IFSOUND, // 131
|
CON_IFBULLETNEAR,
|
||||||
CON_GETTEXTUREFLOOR, // 132
|
CON_IFCANSEE,
|
||||||
CON_GETTEXTURECEILING, // 133
|
CON_IFCANSEETARGET,
|
||||||
CON_INITTIMER, // 134
|
CON_IFCANSHOOTTARGET,
|
||||||
CON_STARTTRACK, // 135
|
CON_IFCEILINGDISTL,
|
||||||
CON_RANDVAR, // 136
|
CON_IFCLIENT,
|
||||||
CON_ENHANCED, // 137
|
CON_IFCOUNT,
|
||||||
CON_GETANGLETOTARGET, // 138
|
CON_IFCUTSCENE,
|
||||||
CON_GETACTORANGLE, // 139
|
CON_IFDEAD,
|
||||||
CON_SETACTORANGLE, // 140
|
CON_IFFLOORDISTL,
|
||||||
CON_MULVAR, // 141
|
CON_IFGAPZL,
|
||||||
CON_MULVARVAR, // 142
|
CON_IFGOTWEAPONCE,
|
||||||
CON_DIVVAR, // 143
|
CON_IFHITSPACE,
|
||||||
CON_DIVVARVAR, // 144
|
CON_IFHITWEAPON,
|
||||||
CON_MODVAR, // 145
|
CON_IFINOUTERSPACE,
|
||||||
CON_MODVARVAR, // 146
|
CON_IFINSPACE,
|
||||||
CON_ANDVAR, // 147
|
CON_IFINWATER,
|
||||||
CON_ANDVARVAR, // 148
|
CON_IFMOVE,
|
||||||
CON_ORVAR, // 149
|
CON_IFMULTIPLAYER,
|
||||||
CON_ORVARVAR, // 150
|
CON_IFNOSOUNDS,
|
||||||
CON_GETPLAYERANGLE, // 151
|
CON_IFNOTMOVING,
|
||||||
CON_SETPLAYERANGLE, // 152
|
CON_IFONWATER,
|
||||||
CON_LOCKPLAYER, // 153
|
CON_IFOUTSIDE,
|
||||||
CON_SETSECTOR, // 154
|
CON_IFP,
|
||||||
CON_GETSECTOR, // 155
|
CON_IFPDISTG,
|
||||||
CON_SETACTOR, // 156
|
CON_IFPDISTL,
|
||||||
CON_GETACTOR, // 157
|
CON_IFPHEALTHL,
|
||||||
CON_SETWALL, // 158
|
CON_IFPINVENTORY,
|
||||||
CON_GETWALL, // 159
|
CON_IFPLAYBACKON,
|
||||||
CON_FINDNEARACTOR, // 160
|
CON_IFPLAYERSL,
|
||||||
CON_FINDNEARACTORVAR, // 161
|
CON_IFRESPAWN,
|
||||||
CON_SETACTORVAR, // 162
|
CON_IFRND,
|
||||||
CON_GETACTORVAR, // 163
|
CON_IFSERVER,
|
||||||
CON_ESPAWN, // 164
|
CON_IFSOUND,
|
||||||
CON_GETPLAYER, // 165
|
CON_IFSPAWNEDBY,
|
||||||
CON_SETPLAYER, // 166
|
CON_IFSPRITEPAL,
|
||||||
CON_SQRT, // 167
|
CON_IFSQUISHED,
|
||||||
CON_EVENTLOADACTOR, // 168
|
CON_IFSTRENGTH,
|
||||||
CON_ESPAWNVAR, // 169
|
CON_IFVARA,
|
||||||
CON_GETUSERDEF, // 170
|
CON_IFVARAE,
|
||||||
CON_SETUSERDEF, // 171
|
CON_IFVARAND,
|
||||||
CON_SUBVARVAR, // 172
|
CON_IFVARB,
|
||||||
CON_SUBVAR, // 173
|
CON_IFVARBE,
|
||||||
CON_IFVARN, // 174
|
CON_IFVARBOTH,
|
||||||
CON_IFVARVARN, // 175
|
CON_IFVARE,
|
||||||
CON_IFVARAND, // 176
|
CON_IFVAREITHER,
|
||||||
CON_IFVARVARAND, // 177
|
CON_IFVARG,
|
||||||
CON_MYOS, // 178
|
CON_IFVARGE,
|
||||||
CON_MYOSPAL, // 179
|
CON_IFVARL,
|
||||||
CON_DISPLAYRAND, // 180
|
CON_IFVARLE,
|
||||||
CON_SIN, // 181
|
CON_IFVARN,
|
||||||
CON_XORVARVAR, // 182
|
CON_IFVAROR,
|
||||||
CON_XORVAR, // 183
|
CON_IFVARVARA,
|
||||||
CON_RANDVARVAR, // 184
|
CON_IFVARVARAE,
|
||||||
CON_MYOSX, // 185
|
CON_IFVARVARAND,
|
||||||
CON_MYOSPALX, // 186
|
CON_IFVARVARB,
|
||||||
CON_GMAXAMMO, // 187
|
CON_IFVARVARBE,
|
||||||
CON_SMAXAMMO, // 188
|
CON_IFVARVARBOTH,
|
||||||
CON_STARTLEVEL, // 189
|
CON_IFVARVARE,
|
||||||
CON_ESHOOT, // 190
|
CON_IFVARVAREITHER,
|
||||||
CON_QSPAWN, // 191
|
CON_IFVARVARG,
|
||||||
CON_ROTATESPRITE, // 192
|
CON_IFVARVARGE,
|
||||||
CON_DEFINEPROJECTILE, // 193
|
CON_IFVARVARL,
|
||||||
CON_SPRITESHADOW, // 194
|
CON_IFVARVARLE,
|
||||||
CON_COS, // 195
|
CON_IFVARVARN,
|
||||||
CON_ESHOOTVAR, // 196
|
CON_IFVARVAROR,
|
||||||
CON_FINDNEARACTOR3D, // 197
|
CON_IFVARVARXOR,
|
||||||
CON_FINDNEARACTOR3DVAR, // 198
|
CON_IFVARXOR,
|
||||||
CON_FLASH, // 199
|
CON_IFWASWEAPON,
|
||||||
CON_QSPAWNVAR, // 200
|
CON_INITTIMER,
|
||||||
CON_EQSPAWN, // 201
|
CON_INSERTSPRITEQ,
|
||||||
CON_EQSPAWNVAR, // 202
|
CON_INV,
|
||||||
CON_MINITEXT, // 203
|
CON_JUMP,
|
||||||
CON_GAMETEXT, // 204
|
CON_KILLIT,
|
||||||
CON_DIGITALNUMBER, // 205
|
CON_KLABS,
|
||||||
CON_ADDWEAPONVAR, // 206
|
CON_LDIST,
|
||||||
CON_SETPROJECTILE, // 207
|
CON_LEFTBRACE,
|
||||||
CON_ANGOFF, // 208
|
CON_LINEINTERSECT,
|
||||||
CON_UPDATESECTOR, // 209
|
CON_LOADMAPSTATE,
|
||||||
CON_INSERTSPRITEQ, // 210
|
CON_LOCKPLAYER,
|
||||||
CON_ANGOFFVAR, // 211
|
CON_LOTSOFGLASS,
|
||||||
CON_WHILEVARN, // 212
|
CON_MAIL,
|
||||||
CON_SWITCH, // 213
|
CON_MIKESND,
|
||||||
CON_CASE, // 214
|
CON_MINITEXT,
|
||||||
CON_DEFAULT, // 215
|
CON_MODVAR,
|
||||||
CON_ENDSWITCH, // 216
|
CON_MODVARVAR,
|
||||||
CON_SHOOTVAR, // 217
|
CON_MONEY,
|
||||||
CON_SOUNDVAR, // 218
|
CON_MOVE,
|
||||||
CON_FINDPLAYER, // 219
|
CON_MOVESECTOR,
|
||||||
CON_FINDOTHERPLAYER, // 220
|
CON_MOVESPRITE,
|
||||||
CON_ACTIVATEBYSECTOR, // 221
|
CON_MULSCALE,
|
||||||
CON_OPERATESECTORS, // 222
|
CON_MULVAR,
|
||||||
CON_OPERATERESPAWNS, // 223
|
CON_MULVARVAR,
|
||||||
CON_OPERATEACTIVATORS, // 224
|
CON_MUSIC,
|
||||||
CON_OPERATEMASTERSWITCHES, // 225
|
CON_MYOS,
|
||||||
CON_CHECKACTIVATORMOTION, // 226
|
CON_MYOSPAL,
|
||||||
CON_ZSHOOT, // 227
|
CON_MYOSPALX,
|
||||||
CON_DIST, // 228
|
CON_MYOSX,
|
||||||
CON_LDIST, // 229
|
CON_NEARTAG,
|
||||||
CON_SHIFTVARL, // 230
|
CON_NEXTSECTORNEIGHBORZ,
|
||||||
CON_SHIFTVARR, // 231
|
CON_NEXTSPRITESECT,
|
||||||
CON_SPRITENVG, // 232
|
CON_NEXTSPRITESTAT,
|
||||||
CON_GETANGLE, // 233
|
CON_NULLOP,
|
||||||
CON_WHILEVARVARN, // 234
|
CON_OPERATE,
|
||||||
CON_HITSCAN, // 235
|
CON_OPERATEACTIVATORS,
|
||||||
CON_TIME, // 236
|
CON_OPERATEMASTERSWITCHES,
|
||||||
CON_GETPLAYERVAR, // 237
|
CON_OPERATERESPAWNS,
|
||||||
CON_SETPLAYERVAR, // 238
|
CON_OPERATESECTORS,
|
||||||
CON_MULSCALE, // 239
|
CON_ORVAR,
|
||||||
CON_SETASPECT, // 240
|
CON_ORVARVAR,
|
||||||
CON_EZSHOOT, // 241
|
CON_PALFROM,
|
||||||
CON_SPRITENOSHADE, // 242
|
CON_PAPER,
|
||||||
CON_MOVESPRITE, // 243
|
CON_PKICK,
|
||||||
CON_CHECKAVAILWEAPON, // 244
|
CON_PRECACHE,
|
||||||
CON_SOUNDONCEVAR, // 245
|
CON_PRELOADTRACKSLOTFORSWAP,
|
||||||
CON_UPDATESECTORZ, // 246
|
CON_PREVSPRITESECT,
|
||||||
CON_STOPALLSOUNDS, // 247
|
CON_PREVSPRITESTAT,
|
||||||
CON_SSP, // 248
|
CON_PSTOMP,
|
||||||
CON_STOPSOUNDVAR, // 249
|
CON_QGETSYSSTR,
|
||||||
CON_DISPLAYRANDVAR, // 250
|
CON_QSPAWN,
|
||||||
CON_DISPLAYRANDVARVAR, // 251
|
CON_QSPRINTF,
|
||||||
CON_CHECKAVAILINVEN, // 252
|
CON_QSTRCAT,
|
||||||
CON_GLOBALSOUNDVAR, // 253
|
CON_QSTRCMP,
|
||||||
CON_GUNIQHUDID, // 254
|
CON_QSTRCPY,
|
||||||
CON_GETPROJECTILE, // 255
|
CON_QSTRDIM,
|
||||||
CON_GETTHISPROJECTILE, // 256
|
CON_QSTRLEN,
|
||||||
CON_SETTHISPROJECTILE, // 257
|
CON_QSTRNCAT,
|
||||||
CON_DEFINECHEAT, // 258
|
CON_QSUBSTR,
|
||||||
CON_CHEATKEYS, // 259
|
CON_QUAKE,
|
||||||
CON_USERQUOTE, // 260
|
CON_QUOTE,
|
||||||
CON_PRECACHE, // 261
|
CON_RANDVAR,
|
||||||
CON_DEFINEGAMEFUNCNAME, // 262
|
CON_RANDVARVAR,
|
||||||
CON_REDEFINEQUOTE, // 263
|
CON_RAYINTERSECT,
|
||||||
CON_QSPRINTF, // 264
|
CON_READARRAYFROMFILE,
|
||||||
CON_GETPNAME, // 265
|
CON_READGAMEVAR,
|
||||||
CON_QSTRCAT, // 266
|
CON_REDEFINEQUOTE,
|
||||||
CON_QSTRCPY, // 267
|
CON_RESETACTIONCOUNT,
|
||||||
CON_SETSPRITE, // 268
|
CON_RESETCOUNT,
|
||||||
CON_ROTATEPOINT, // 269
|
CON_RESETPLAYER,
|
||||||
CON_DRAGPOINT, // 270
|
CON_RESETPLAYERFLAGS,
|
||||||
CON_GETZRANGE, // 271
|
CON_RESIZEARRAY,
|
||||||
CON_CHANGESPRITESTAT, // 272
|
CON_RESPAWNHITAG,
|
||||||
CON_GETCEILZOFSLOPE, // 273
|
CON_RETURN,
|
||||||
CON_GETFLORZOFSLOPE, // 274
|
CON_RIGHTBRACE,
|
||||||
CON_NEARTAG, // 275
|
CON_ROTATEPOINT,
|
||||||
CON_DEFINEGAMETYPE, // 276
|
CON_ROTATESPRITE,
|
||||||
CON_CHANGESPRITESECT, // 277
|
CON_ROTATESPRITE16,
|
||||||
CON_SPRITEFLAGS, // 278
|
CON_ROTATESPRITEA,
|
||||||
CON_SAVEGAMEVAR, // 279
|
CON_SAVE,
|
||||||
CON_READGAMEVAR, // 280
|
CON_SAVEGAMEVAR,
|
||||||
CON_FINDNEARSPRITE, // 281
|
CON_SAVEMAPSTATE,
|
||||||
CON_FINDNEARSPRITEVAR, // 282
|
CON_SAVENN,
|
||||||
CON_FINDNEARSPRITE3D, // 283
|
CON_SCALEVAR,
|
||||||
CON_FINDNEARSPRITE3DVAR,// 284
|
CON_SCREENPAL,
|
||||||
CON_DYNAMICREMAP, // 285
|
CON_SCREENSOUND,
|
||||||
CON_SETINPUT, // 286
|
CON_SCREENTEXT,
|
||||||
CON_GETINPUT, // 287
|
CON_SECTCLEARINTERPOLATION,
|
||||||
CON_SAVE, // 288
|
CON_SECTGETHITAG,
|
||||||
CON_CANSEE, // 289
|
CON_SECTGETLOTAG,
|
||||||
CON_CANSEESPR, // 290
|
CON_SECTOROFWALL,
|
||||||
CON_FINDNEARACTORZ, // 291
|
CON_SECTSETINTERPOLATION,
|
||||||
CON_FINDNEARACTORZVAR, // 292
|
CON_SETACTOR,
|
||||||
CON_FINDNEARSPRITEZ, // 293
|
CON_SETACTORANGLE,
|
||||||
CON_FINDNEARSPRITEZVAR, // 294
|
CON_SETACTORSOUNDPITCH,
|
||||||
CON_ZSHOOTVAR, // 295
|
CON_SETACTORSTRUCT,
|
||||||
CON_EZSHOOTVAR, // 296
|
CON_SETACTORVAR,
|
||||||
CON_GETCURRADDRESS, // 297
|
CON_SETARRAY,
|
||||||
CON_JUMP, // 298
|
CON_SETASPECT,
|
||||||
CON_QSTRLEN, // 299
|
CON_SETGAMEPALETTE,
|
||||||
CON_GETINCANGLE, // 300
|
CON_SETINPUT,
|
||||||
CON_QUAKE, // 301
|
CON_SETMUSICPOSITION,
|
||||||
CON_SHOWVIEW, // 302
|
CON_SETPLAYER,
|
||||||
CON_HEADSPRITESTAT, // 303
|
CON_SETPLAYERANGLE,
|
||||||
CON_PREVSPRITESTAT, // 304
|
CON_SETPLAYERVAR,
|
||||||
CON_NEXTSPRITESTAT, // 305
|
CON_SETPROJECTILE,
|
||||||
CON_HEADSPRITESECT, // 306
|
CON_SETSECTOR,
|
||||||
CON_PREVSPRITESECT, // 307
|
CON_SETSPRITE,
|
||||||
CON_NEXTSPRITESECT, // 308
|
CON_SETSPRITEEXT,
|
||||||
CON_GETKEYNAME, // 309
|
CON_SETSPRITESTRUCT,
|
||||||
CON_QSUBSTR, // 310
|
CON_SETTHISPROJECTILE,
|
||||||
CON_GAMETEXTZ, // 311
|
CON_SETTILEDATA,
|
||||||
CON_DIGITALNUMBERZ, // 312
|
CON_SETTSPR,
|
||||||
CON_SPRITENOPAL, // 313
|
CON_SETUSERDEF,
|
||||||
CON_HITRADIUSVAR, // 314
|
CON_SETVAR,
|
||||||
CON_ROTATESPRITE16, // 315
|
CON_SETVARVAR,
|
||||||
CON_GAMEARRAY, // 316
|
CON_SETWALL,
|
||||||
CON_SETARRAY, // 317
|
CON_SHADETO,
|
||||||
CON_RESIZEARRAY, // 318
|
CON_SHIFTVARL,
|
||||||
CON_WRITEARRAYTOFILE, // 319
|
CON_SHIFTVARR,
|
||||||
CON_READARRAYFROMFILE, // 320
|
CON_SHIFTVARVARL,
|
||||||
CON_STARTTRACKVAR, // 321
|
CON_SHIFTVARVARR,
|
||||||
CON_QGETSYSSTR, // 322
|
CON_SHOOT,
|
||||||
CON_GETTICKS, // 323
|
CON_SHOWVIEW,
|
||||||
CON_GETTSPR, // 324
|
CON_SHOWVIEWQ16,
|
||||||
CON_SETTSPR, // 325
|
CON_SHOWVIEWQ16UNBIASED,
|
||||||
CON_SAVEMAPSTATE, // 326
|
CON_SHOWVIEWUNBIASED,
|
||||||
CON_LOADMAPSTATE, // 327
|
CON_SIN,
|
||||||
CON_CLEARMAPSTATE, // 328
|
CON_SIZEAT,
|
||||||
CON_SCRIPTSIZE, // 329
|
CON_SIZETO,
|
||||||
CON_SETGAMENAME, // 330
|
CON_SLEEPTIME,
|
||||||
CON_CMENU, // 331
|
CON_SMAXAMMO,
|
||||||
CON_GETTIMEDATE, // 332
|
CON_SOUNDONCE,
|
||||||
CON_ACTIVATECHEAT, // 333
|
CON_SOUND,
|
||||||
CON_SETGAMEPALETTE, // 334
|
CON_SPAWN,
|
||||||
CON_SETDEFNAME, // 335
|
CON_SPAWNCEILINGGLASS,
|
||||||
CON_SETCFGNAME, // 336
|
CON_SPAWNWALLGLASS,
|
||||||
CON_IFVAROR, // 337
|
CON_SPAWNWALLSTAINEDGLASS,
|
||||||
CON_IFVARVAROR, // 338
|
CON_SPGETHITAG,
|
||||||
CON_IFVARXOR, // 339
|
CON_SPGETLOTAG,
|
||||||
CON_IFVARVARXOR, // 340
|
CON_SPRITEFLAGS,
|
||||||
CON_IFVAREITHER, // 341
|
CON_SPRITEPAL,
|
||||||
CON_IFVARVAREITHER, // 342
|
CON_SQRT,
|
||||||
CON_GETARRAYSIZE, // 343
|
CON_SSP,
|
||||||
CON_SAVENN, // 344
|
CON_STARTCUTSCENE,
|
||||||
CON_COPY, // 345
|
CON_STARTLEVEL,
|
||||||
CON_INV, // 346
|
CON_STARTSCREEN,
|
||||||
CON_SECTOROFWALL, // 347
|
CON_STARTTRACKSLOT,
|
||||||
CON_QSTRNCAT, // 348
|
CON_STARTTRACK,
|
||||||
CON_IFACTORSOUND, // 349
|
CON_STATE,
|
||||||
CON_STOPACTORSOUND, // 350
|
CON_STOPACTORSOUND,
|
||||||
CON_IFCLIENT, // 351
|
CON_STOPALLMUSIC,
|
||||||
CON_IFSERVER, // 352
|
CON_STOPALLSOUNDS,
|
||||||
CON_SECTSETINTERPOLATION, // 353
|
CON_STOPSOUND,
|
||||||
CON_SECTCLEARINTERPOLATION, // 354
|
CON_STRENGTH,
|
||||||
CON_CLIPMOVE, // 355
|
CON_SUBVAR,
|
||||||
CON_LINEINTERSECT, // 356
|
CON_SUBVARVAR,
|
||||||
CON_RAYINTERSECT, // 357
|
CON_SWAPARRAYS,
|
||||||
CON_CALCHYPOTENUSE, // 358
|
CON_SWAPTRACKSLOT,
|
||||||
CON_CLIPMOVENOSLIDE, // 359
|
CON_SWITCH,
|
||||||
CON_INCLUDEDEFAULT, // 360
|
CON_TIME,
|
||||||
CON_SETACTORSOUNDPITCH, // 361
|
CON_TIP,
|
||||||
CON_ECHO, // 362
|
CON_TOSSWEAPON,
|
||||||
CON_SHOWVIEWUNBIASED, // 363
|
CON_UPDATESECTOR,
|
||||||
CON_ROTATESPRITEA, // 364
|
CON_UPDATESECTORZ,
|
||||||
CON_SHADETO, // 365
|
CON_USERQUOTE,
|
||||||
CON_ENDOFLEVEL, // 366
|
CON_WACKPLAYER,
|
||||||
CON_IFPLAYERSL, // 367
|
CON_WHILEVARL,
|
||||||
CON_ACTIVATE, // 368
|
CON_WHILEVARN,
|
||||||
CON_QSTRDIM, // 369
|
CON_WHILEVARVARL,
|
||||||
CON_SCREENTEXT, // 370
|
CON_WHILEVARVARN,
|
||||||
CON_DYNAMICSOUNDREMAP, // 371
|
CON_WRITEARRAYTOFILE,
|
||||||
CON_SCREENSOUND, // 372
|
CON_XORVAR,
|
||||||
CON_GETMUSICPOSITION, // 373
|
CON_XORVARVAR,
|
||||||
CON_SETMUSICPOSITION, // 374
|
CON_ZSHOOT,
|
||||||
CON_UNDEFINEVOLUME, // 375
|
|
||||||
CON_UNDEFINESKILL, // 376
|
CON_OPCODE_END,
|
||||||
CON_UNDEFINELEVEL, // 377
|
|
||||||
CON_STARTCUTSCENE, // 378
|
// these are the keywords that don't get written into the bytecode
|
||||||
CON_IFCUTSCENE, // 379
|
CON_ACTOR,
|
||||||
CON_DEFINEVOLUMEFLAGS, // 380
|
CON_APPENDEVENT,
|
||||||
CON_RESETPLAYERFLAGS, // 381
|
CON_BETANAME,
|
||||||
CON_APPENDEVENT, // 382
|
CON_CASE,
|
||||||
CON_DEFSTATE, // 383
|
CON_CHEATKEYS,
|
||||||
CON_SHIFTVARVARL, // 384
|
CON_DAMAGEEVENTTILE,
|
||||||
CON_SHIFTVARVARR, // 385
|
CON_DAMAGEEVENTTILERANGE,
|
||||||
CON_IFVARVARLE, // 386
|
CON_DEFAULT,
|
||||||
CON_IFVARVARGE, // 387
|
CON_DEFINE,
|
||||||
CON_IFVARVARBOTH, // 388
|
CON_DEFINECHEAT,
|
||||||
CON_WHILEVARL, // 389
|
CON_DEFINEGAMEFUNCNAME,
|
||||||
CON_WHILEVARVARL, // 390
|
CON_DEFINEGAMETYPE,
|
||||||
CON_KLABS, // 391
|
CON_DEFINELEVELNAME,
|
||||||
CON_IFVARLE, // 392
|
CON_DEFINEPROJECTILE,
|
||||||
CON_IFVARGE, // 393
|
CON_DEFINEQUOTE,
|
||||||
CON_IFVARBOTH, // 394
|
CON_DEFINESKILLNAME,
|
||||||
CON_MOVESECTOR, // 395
|
CON_DEFINESOUND,
|
||||||
CON_FOR, // 396
|
CON_DEFINEVOLUMEFLAGS,
|
||||||
CON_NEXTSECTORNEIGHBORZ,// 397
|
CON_DEFINEVOLUMENAME,
|
||||||
CON_CLAMP, // 398
|
CON_DEFSTATE,
|
||||||
CON_IFPLAYBACKON, // 399
|
CON_DYNAMICREMAP,
|
||||||
CON_DIVSCALE, // 400
|
CON_DYNAMICSOUNDREMAP,
|
||||||
CON_SCALEVAR, // 401
|
CON_ENHANCED,
|
||||||
CON_UNDEFINEGAMEFUNC, // 402
|
CON_GAMEARRAY,
|
||||||
CON_GETCLOSESTCOL, // 403
|
CON_GAMESTARTUP,
|
||||||
CON_DRAWLINE256, // 404
|
CON_GAMEVAR,
|
||||||
CON_DRAWLINERGB, // 405
|
CON_INCLUDE,
|
||||||
CON_STARTTRACKSLOT, // 406
|
CON_INCLUDEDEFAULT,
|
||||||
CON_STOPALLMUSIC, // 407
|
CON_ONEVENT,
|
||||||
CON_ACTORSOUND, // 408
|
CON_SCRIPTSIZE,
|
||||||
CON_STARTSCREEN, // 409
|
CON_SETCFGNAME,
|
||||||
CON_SCREENPAL, // 410
|
CON_SETDEFNAME,
|
||||||
CON_QSTRCMP, // 411
|
CON_SETGAMENAME,
|
||||||
CON_DIVR, // 412
|
CON_SPRITENOPAL,
|
||||||
CON_DIVRU, // 413
|
CON_SPRITENOSHADE,
|
||||||
CON_SWAPTRACKSLOT, // 414
|
CON_SPRITENVG,
|
||||||
CON_PRELOADTRACKSLOTFORSWAP, // 415
|
CON_SPRITESHADOW,
|
||||||
CON_IFVARA, // 416
|
CON_UNDEFINECHEAT,
|
||||||
CON_IFVARVARA, // 417
|
CON_UNDEFINEGAMEFUNC,
|
||||||
CON_IFVARAE, // 418
|
CON_UNDEFINELEVEL,
|
||||||
CON_IFVARVARAE, // 419
|
CON_UNDEFINESKILL,
|
||||||
CON_IFVARB, // 420
|
CON_UNDEFINEVOLUME,
|
||||||
CON_IFVARVARB, // 421
|
CON_USERACTOR,
|
||||||
CON_IFVARBE, // 422
|
|
||||||
CON_IFVARVARBE, // 423
|
|
||||||
CON_UNDEFINECHEAT, // 424
|
|
||||||
CON_SHOWVIEWQ16, // 425
|
|
||||||
CON_SHOWVIEWQ16UNBIASED,// 426
|
|
||||||
CON_GETTILEDATA, // 427
|
|
||||||
CON_SETTILEDATA, // 428
|
|
||||||
CON_DAMAGEEVENTTILE, // 429
|
|
||||||
CON_DAMAGEEVENTTILERANGE, // 430
|
|
||||||
CON_SPAWNWALLGLASS, // 431
|
|
||||||
CON_SPAWNWALLSTAINEDGLASS, // 432
|
|
||||||
CON_SPAWNCEILINGGLASS, // 433
|
|
||||||
CON_SWAPARRAYS, // 434
|
|
||||||
CON_GETACTORSTRUCT, // 435
|
|
||||||
CON_SETACTORSTRUCT, // 436
|
|
||||||
CON_GETSPRITEEXT, // 437
|
|
||||||
CON_SETSPRITEEXT, // 438
|
|
||||||
CON_GETSPRITESTRUCT, // 439
|
|
||||||
CON_SETSPRITESTRUCT, // 440
|
|
||||||
CON_END
|
CON_END
|
||||||
};
|
};
|
||||||
|
|
||||||
// KEEPINSYNC with the keyword list in lunatic/con_lang.lua
|
// KEEPINSYNC with the keyword list in lunatic/con_lang.lua
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -74,6 +74,7 @@ GAMEEXEC_STATIC void VM_Execute(native_t loop);
|
||||||
# include "gamestructures.cpp"
|
# include "gamestructures.cpp"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// be careful when changing this--the assignment used as a condition doubles as a null pointer check
|
||||||
#define VM_CONDITIONAL(xxx) \
|
#define VM_CONDITIONAL(xxx) \
|
||||||
{ \
|
{ \
|
||||||
if ((xxx) || ((insptr = (intptr_t *)insptr[1]) && ((*insptr & VM_INSTMASK) == CON_ELSE))) \
|
if ((xxx) || ((insptr = (intptr_t *)insptr[1]) && ((*insptr & VM_INSTMASK) == CON_ELSE))) \
|
||||||
|
@ -86,11 +87,9 @@ GAMEEXEC_STATIC void VM_Execute(native_t loop);
|
||||||
#if !defined LUNATIC
|
#if !defined LUNATIC
|
||||||
void VM_ScriptInfo(intptr_t const *ptr, int range)
|
void VM_ScriptInfo(intptr_t const *ptr, int range)
|
||||||
{
|
{
|
||||||
if (!apScript || (!vm.pSprite && !vm.pPlayer && g_currentEvent == -1))
|
if (!apScript || !ptr || g_currentEvent == -1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (ptr)
|
|
||||||
{
|
|
||||||
initprintf("\n");
|
initprintf("\n");
|
||||||
|
|
||||||
for (auto pScript = max<intptr_t const *>(ptr - (range >> 1), apScript),
|
for (auto pScript = max<intptr_t const *>(ptr - (range >> 1), apScript),
|
||||||
|
@ -100,14 +99,13 @@ void VM_ScriptInfo(intptr_t const *ptr, int range)
|
||||||
{
|
{
|
||||||
initprintf("%5d: %3d: ", (int32_t)(pScript - apScript), (int32_t)(pScript - ptr));
|
initprintf("%5d: %3d: ", (int32_t)(pScript - apScript), (int32_t)(pScript - ptr));
|
||||||
|
|
||||||
if (*pScript >> 12 && (*pScript & VM_INSTMASK) < CON_END)
|
if (*pScript >> 12 && (*pScript & VM_INSTMASK) < CON_OPCODE_END)
|
||||||
initprintf("%5d %s\n", (int32_t)(*pScript >> 12), VM_GetKeywordForID(*pScript & VM_INSTMASK));
|
initprintf("%5d %s\n", (int32_t)(*pScript >> 12), VM_GetKeywordForID(*pScript & VM_INSTMASK));
|
||||||
else
|
else
|
||||||
initprintf("%d\n", (int32_t)*pScript);
|
initprintf("%d\n", (int32_t)*pScript);
|
||||||
}
|
}
|
||||||
|
|
||||||
initprintf("\n");
|
initprintf("\n");
|
||||||
}
|
|
||||||
|
|
||||||
if (ptr == insptr)
|
if (ptr == insptr)
|
||||||
{
|
{
|
||||||
|
@ -155,43 +153,39 @@ static FORCE_INLINE int32_t VM_EventCommon__(int const &eventNum, int const &spr
|
||||||
static void VM_DummySprite(void)
|
static void VM_DummySprite(void)
|
||||||
{
|
{
|
||||||
static uspritetype dummy_sprite;
|
static uspritetype dummy_sprite;
|
||||||
static actor_t dummy;
|
static actor_t dummy_actor;
|
||||||
|
|
||||||
vm.pUSprite = &dummy_sprite;
|
vm.pUSprite = &dummy_sprite;
|
||||||
vm.pActor = &dummy;
|
vm.pActor = &dummy_actor;
|
||||||
vm.pData = &dummy.t_data[0];
|
vm.pData = &dummy_actor.t_data[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
static FORCE_INLINE int32_t VM_EventCommon__(int const &eventNum, int const &spriteNum, int const &playerNum, int const &playerDist, int32_t returnValue)
|
static FORCE_INLINE int32_t VM_EventCommon__(int const &eventNum, int const &spriteNum, int const &playerNum, int const &playerDist, int32_t returnValue)
|
||||||
{
|
{
|
||||||
double const t = timerGetHiTicks();
|
vmstate_t const tempvm = { spriteNum, playerNum, playerDist, 0, &sprite[spriteNum], &actor[spriteNum].t_data[0], g_player[playerNum].ps, &actor[spriteNum] };
|
||||||
vmstate_t const tempvm = { spriteNum, playerNum, playerDist, 0, NULL, NULL, g_player[playerNum].ps, NULL };
|
|
||||||
|
|
||||||
auto & returnVar = aGameVars[g_returnVarID].global;
|
typedef struct
|
||||||
int const backupReturnVar = returnVar;
|
{
|
||||||
int const backupEvent = g_currentEvent;
|
vmstate_t vm;
|
||||||
|
intptr_t returnVar;
|
||||||
|
int currentEvent;
|
||||||
|
intptr_t const *insptr;
|
||||||
|
} eventbackup_t;
|
||||||
|
|
||||||
returnVar = returnValue;
|
auto &returnVar = aGameVars[g_returnVarID].global;
|
||||||
|
eventbackup_t const backup = { vm, returnVar, eventNum, insptr };
|
||||||
g_currentEvent = eventNum;
|
g_currentEvent = eventNum;
|
||||||
|
|
||||||
auto const backupinsptr = insptr;
|
double const t = timerGetHiTicks();
|
||||||
const vmstate_t vm_backup = vm;
|
|
||||||
|
|
||||||
insptr = apScript + apScriptEvents[eventNum];
|
|
||||||
vm = tempvm;
|
vm = tempvm;
|
||||||
|
returnVar = returnValue;
|
||||||
|
insptr = apScript + apScriptEvents[eventNum];
|
||||||
|
|
||||||
// check tempvm instead of vm... this way, we are not actually loading
|
if (EDUKE32_PREDICT_FALSE((unsigned)spriteNum >= MAXSPRITES))
|
||||||
// FROM vm anywhere until VM_Execute() is called
|
|
||||||
if (EDUKE32_PREDICT_FALSE((unsigned) tempvm.spriteNum >= MAXSPRITES))
|
|
||||||
VM_DummySprite();
|
VM_DummySprite();
|
||||||
else
|
|
||||||
{
|
|
||||||
vm.pSprite = &sprite[spriteNum];
|
|
||||||
vm.pActor = &actor[spriteNum];
|
|
||||||
vm.pData = &actor[spriteNum].t_data[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((unsigned)playerNum >= (unsigned)g_mostConcurrentPlayers)
|
if (EDUKE32_PREDICT_FALSE((unsigned)playerNum >= (unsigned)g_mostConcurrentPlayers))
|
||||||
vm.pPlayer = g_player[0].ps;
|
vm.pPlayer = g_player[0].ps;
|
||||||
|
|
||||||
VM_Execute(1);
|
VM_Execute(1);
|
||||||
|
@ -202,11 +196,12 @@ static FORCE_INLINE int32_t VM_EventCommon__(int const &eventNum, int const &spr
|
||||||
// this needs to happen after VM_DeleteSprite() because VM_DeleteSprite()
|
// this needs to happen after VM_DeleteSprite() because VM_DeleteSprite()
|
||||||
// can trigger additional events
|
// can trigger additional events
|
||||||
|
|
||||||
vm = vm_backup;
|
|
||||||
insptr = backupinsptr;
|
|
||||||
g_currentEvent = backupEvent;
|
|
||||||
returnValue = returnVar;
|
returnValue = returnVar;
|
||||||
returnVar = backupReturnVar;
|
|
||||||
|
vm = backup.vm;
|
||||||
|
returnVar = backup.returnVar;
|
||||||
|
g_currentEvent = backup.currentEvent;
|
||||||
|
insptr = backup.insptr;
|
||||||
|
|
||||||
g_eventTotalMs[eventNum] += timerGetHiTicks()-t;
|
g_eventTotalMs[eventNum] += timerGetHiTicks()-t;
|
||||||
g_eventCalls[eventNum]++;
|
g_eventCalls[eventNum]++;
|
||||||
|
@ -1271,23 +1266,24 @@ void Screen_Play(void)
|
||||||
#if !defined LUNATIC
|
#if !defined LUNATIC
|
||||||
GAMEEXEC_STATIC void VM_Execute(native_t loop)
|
GAMEEXEC_STATIC void VM_Execute(native_t loop)
|
||||||
{
|
{
|
||||||
native_t tw = *insptr;
|
native_t tw;
|
||||||
DukePlayer_t *const pPlayer = vm.pPlayer;
|
auto const pPlayer = vm.pPlayer;
|
||||||
|
|
||||||
// jump directly into the loop, skipping branches during the first iteration
|
do
|
||||||
goto next_instruction;
|
|
||||||
|
|
||||||
while (loop && (vm.flags & (VM_RETURN|VM_KILL|VM_NOEXECUTE)) == 0)
|
|
||||||
{
|
{
|
||||||
tw = *insptr;
|
|
||||||
|
|
||||||
next_instruction:
|
next_instruction:
|
||||||
|
tw = *insptr;
|
||||||
g_errorLineNum = tw >> 12;
|
g_errorLineNum = tw >> 12;
|
||||||
g_tw = tw &= VM_INSTMASK;
|
g_tw = tw &= VM_INSTMASK;
|
||||||
|
|
||||||
if (tw == CON_LEFTBRACE)
|
if (tw == CON_ELSE)
|
||||||
{
|
{
|
||||||
tw = *(++insptr), loop++;
|
insptr = (intptr_t *)insptr[1];
|
||||||
|
goto next_instruction;
|
||||||
|
}
|
||||||
|
else if (tw == CON_LEFTBRACE)
|
||||||
|
{
|
||||||
|
insptr++, loop++;
|
||||||
goto next_instruction;
|
goto next_instruction;
|
||||||
}
|
}
|
||||||
else if (tw == CON_RIGHTBRACE)
|
else if (tw == CON_RIGHTBRACE)
|
||||||
|
@ -1295,22 +1291,17 @@ next_instruction:
|
||||||
insptr++, loop--;
|
insptr++, loop--;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if (tw == CON_ELSE)
|
else switch (tw)
|
||||||
{
|
{
|
||||||
insptr = (intptr_t *)insptr[1];
|
case CON_STATE:
|
||||||
tw = *insptr;
|
|
||||||
goto next_instruction;
|
|
||||||
}
|
|
||||||
else if (tw == CON_STATE)
|
|
||||||
{
|
{
|
||||||
auto tempscrptr = &insptr[2];
|
auto tempscrptr = &insptr[2];
|
||||||
insptr = (intptr_t *)insptr[1];
|
insptr = (intptr_t *)insptr[1];
|
||||||
VM_Execute(1);
|
VM_Execute(1);
|
||||||
insptr = tempscrptr;
|
insptr = tempscrptr;
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
else switch (tw)
|
continue;
|
||||||
{
|
|
||||||
case CON_SETVAR:
|
case CON_SETVAR:
|
||||||
insptr++;
|
insptr++;
|
||||||
if ((aGameVars[*insptr].flags & (GAMEVAR_USER_MASK | GAMEVAR_PTR_MASK)) == 0)
|
if ((aGameVars[*insptr].flags & (GAMEVAR_USER_MASK | GAMEVAR_PTR_MASK)) == 0)
|
||||||
|
@ -2687,18 +2678,6 @@ badindex:
|
||||||
vm.pSprite->yrepeat = (uint8_t)*insptr++;
|
vm.pSprite->yrepeat = (uint8_t)*insptr++;
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case CON_SOUNDONCE:
|
|
||||||
if (EDUKE32_PREDICT_FALSE((unsigned)*(++insptr) >= MAXSOUNDS))
|
|
||||||
{
|
|
||||||
CON_ERRPRINTF("invalid sound %d\n", (int32_t)*insptr++);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!S_CheckSoundPlaying(vm.spriteNum, *insptr++))
|
|
||||||
A_PlaySound(insptr[-1], vm.spriteNum);
|
|
||||||
|
|
||||||
continue;
|
|
||||||
|
|
||||||
case CON_IFACTORSOUND:
|
case CON_IFACTORSOUND:
|
||||||
insptr++;
|
insptr++;
|
||||||
{
|
{
|
||||||
|
@ -2726,17 +2705,6 @@ badindex:
|
||||||
// VM_DoConditional(SoundOwner[*insptr][0].ow == vm.spriteNum);
|
// VM_DoConditional(SoundOwner[*insptr][0].ow == vm.spriteNum);
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case CON_STOPSOUND:
|
|
||||||
if (EDUKE32_PREDICT_FALSE((unsigned)*(++insptr) >= MAXSOUNDS))
|
|
||||||
{
|
|
||||||
CON_ERRPRINTF("invalid sound %d\n", (int32_t)*insptr);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (S_CheckSoundPlaying(vm.spriteNum, *insptr))
|
|
||||||
S_StopSound((int16_t)*insptr);
|
|
||||||
insptr++;
|
|
||||||
continue;
|
|
||||||
|
|
||||||
case CON_STOPACTORSOUND:
|
case CON_STOPACTORSOUND:
|
||||||
insptr++;
|
insptr++;
|
||||||
{
|
{
|
||||||
|
@ -2790,30 +2758,6 @@ badindex:
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
case CON_GLOBALSOUND:
|
|
||||||
if (EDUKE32_PREDICT_FALSE((unsigned)*(++insptr) >= MAXSOUNDS))
|
|
||||||
{
|
|
||||||
CON_ERRPRINTF("invalid sound %d\n", (int32_t)*insptr);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (vm.playerNum == screenpeek || (g_gametypeFlags[ud.coop] & GAMETYPE_COOPSOUND)
|
|
||||||
#ifdef SPLITSCREEN_MOD_HACKS
|
|
||||||
|| (g_fakeMultiMode == 2)
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
A_PlaySound(*insptr, g_player[screenpeek].ps->i);
|
|
||||||
insptr++;
|
|
||||||
continue;
|
|
||||||
|
|
||||||
case CON_SOUND:
|
|
||||||
if (EDUKE32_PREDICT_FALSE((unsigned)*(++insptr) >= MAXSOUNDS))
|
|
||||||
{
|
|
||||||
CON_ERRPRINTF("invalid sound %d\n", (int32_t)*insptr);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
A_PlaySound(*insptr++, vm.spriteNum);
|
|
||||||
continue;
|
|
||||||
|
|
||||||
case CON_TIP:
|
case CON_TIP:
|
||||||
insptr++;
|
insptr++;
|
||||||
pPlayer->tipincs = GAMETICSPERSEC;
|
pPlayer->tipincs = GAMETICSPERSEC;
|
||||||
|
@ -2919,14 +2863,6 @@ badindex:
|
||||||
vm.flags |= VM_KILL;
|
vm.flags |= VM_KILL;
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case CON_ADDWEAPON:
|
|
||||||
insptr++;
|
|
||||||
{
|
|
||||||
int const weaponNum = *insptr++;
|
|
||||||
VM_AddWeapon(pPlayer, weaponNum, *insptr++);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
case CON_DEBUG:
|
case CON_DEBUG:
|
||||||
insptr++;
|
insptr++;
|
||||||
buildprint(*insptr++, "\n");
|
buildprint(*insptr++, "\n");
|
||||||
|
@ -3006,7 +2942,7 @@ badindex:
|
||||||
vm.pSprite->ang = krand() & 2047;
|
vm.pSprite->ang = krand() & 2047;
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case CON_ADDWEAPONVAR:
|
case CON_ADDWEAPON:
|
||||||
insptr++;
|
insptr++;
|
||||||
{
|
{
|
||||||
int const weaponNum = Gv_GetVarX(*insptr++);
|
int const weaponNum = Gv_GetVarX(*insptr++);
|
||||||
|
@ -3694,9 +3630,9 @@ badindex:
|
||||||
|
|
||||||
case CON_TIME: insptr += 2; continue;
|
case CON_TIME: insptr += 2; continue;
|
||||||
|
|
||||||
case CON_ESPAWNVAR:
|
case CON_ESPAWN:
|
||||||
case CON_EQSPAWNVAR:
|
case CON_EQSPAWN:
|
||||||
case CON_QSPAWNVAR:
|
case CON_QSPAWN:
|
||||||
insptr++;
|
insptr++;
|
||||||
{
|
{
|
||||||
int const tileNum = Gv_GetVarX(*insptr++);
|
int const tileNum = Gv_GetVarX(*insptr++);
|
||||||
|
@ -3711,12 +3647,12 @@ badindex:
|
||||||
|
|
||||||
switch (tw)
|
switch (tw)
|
||||||
{
|
{
|
||||||
case CON_EQSPAWNVAR:
|
case CON_EQSPAWN:
|
||||||
if (spriteNum != -1)
|
if (spriteNum != -1)
|
||||||
A_AddToDeleteQueue(spriteNum);
|
A_AddToDeleteQueue(spriteNum);
|
||||||
fallthrough__;
|
fallthrough__;
|
||||||
case CON_ESPAWNVAR: aGameVars[g_returnVarID].global = spriteNum; break;
|
case CON_ESPAWN: aGameVars[g_returnVarID].global = spriteNum; break;
|
||||||
case CON_QSPAWNVAR:
|
case CON_QSPAWN:
|
||||||
if (spriteNum != -1)
|
if (spriteNum != -1)
|
||||||
A_AddToDeleteQueue(spriteNum);
|
A_AddToDeleteQueue(spriteNum);
|
||||||
break;
|
break;
|
||||||
|
@ -3724,8 +3660,8 @@ badindex:
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
case CON_SHOOTVAR:
|
case CON_SHOOT:
|
||||||
case CON_ESHOOTVAR:
|
case CON_ESHOOT:
|
||||||
insptr++;
|
insptr++;
|
||||||
{
|
{
|
||||||
int j = Gv_GetVarX(*insptr++);
|
int j = Gv_GetVarX(*insptr++);
|
||||||
|
@ -3738,14 +3674,14 @@ badindex:
|
||||||
|
|
||||||
j = A_Shoot(vm.spriteNum, j);
|
j = A_Shoot(vm.spriteNum, j);
|
||||||
|
|
||||||
if (tw == CON_ESHOOTVAR)
|
if (tw == CON_ESHOOT)
|
||||||
aGameVars[g_returnVarID].global = j;
|
aGameVars[g_returnVarID].global = j;
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
case CON_EZSHOOTVAR:
|
case CON_EZSHOOT:
|
||||||
case CON_ZSHOOTVAR:
|
case CON_ZSHOOT:
|
||||||
insptr++;
|
insptr++;
|
||||||
{
|
{
|
||||||
int const zvel = (int16_t)Gv_GetVarX(*insptr++);
|
int const zvel = (int16_t)Gv_GetVarX(*insptr++);
|
||||||
|
@ -3759,7 +3695,7 @@ badindex:
|
||||||
|
|
||||||
j = A_ShootWithZvel(vm.spriteNum, j, zvel);
|
j = A_ShootWithZvel(vm.spriteNum, j, zvel);
|
||||||
|
|
||||||
if (tw == CON_EZSHOOTVAR)
|
if (tw == CON_EZSHOOT)
|
||||||
aGameVars[g_returnVarID].global = j;
|
aGameVars[g_returnVarID].global = j;
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
|
@ -3770,10 +3706,10 @@ badindex:
|
||||||
Menu_Change(Gv_GetVarX(*insptr++));
|
Menu_Change(Gv_GetVarX(*insptr++));
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case CON_SOUNDVAR:
|
case CON_SOUND:
|
||||||
case CON_STOPSOUNDVAR:
|
case CON_STOPSOUND:
|
||||||
case CON_SOUNDONCEVAR:
|
case CON_SOUNDONCE:
|
||||||
case CON_GLOBALSOUNDVAR:
|
case CON_GLOBALSOUND:
|
||||||
case CON_SCREENSOUND:
|
case CON_SCREENSOUND:
|
||||||
insptr++;
|
insptr++;
|
||||||
{
|
{
|
||||||
|
@ -3787,15 +3723,15 @@ badindex:
|
||||||
|
|
||||||
switch (tw)
|
switch (tw)
|
||||||
{
|
{
|
||||||
case CON_SOUNDONCEVAR:
|
case CON_SOUNDONCE:
|
||||||
if (!S_CheckSoundPlaying(vm.spriteNum, soundNum))
|
if (!S_CheckSoundPlaying(vm.spriteNum, soundNum))
|
||||||
{
|
{
|
||||||
fallthrough__;
|
fallthrough__;
|
||||||
case CON_SOUNDVAR: A_PlaySound((int16_t)soundNum, vm.spriteNum);
|
case CON_SOUND: A_PlaySound((int16_t)soundNum, vm.spriteNum);
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
case CON_GLOBALSOUNDVAR: A_PlaySound((int16_t)soundNum, g_player[screenpeek].ps->i); continue;
|
case CON_GLOBALSOUND: A_PlaySound((int16_t)soundNum, g_player[screenpeek].ps->i); continue;
|
||||||
case CON_STOPSOUNDVAR:
|
case CON_STOPSOUND:
|
||||||
if (S_CheckSoundPlaying(vm.spriteNum, soundNum))
|
if (S_CheckSoundPlaying(vm.spriteNum, soundNum))
|
||||||
S_StopSound((int16_t)soundNum);
|
S_StopSound((int16_t)soundNum);
|
||||||
continue;
|
continue;
|
||||||
|
@ -4059,11 +3995,6 @@ badindex:
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
case CON_ANGOFF:
|
|
||||||
insptr++;
|
|
||||||
spriteext[vm.spriteNum].angoff = *insptr++;
|
|
||||||
continue;
|
|
||||||
|
|
||||||
case CON_GETZRANGE:
|
case CON_GETZRANGE:
|
||||||
insptr++;
|
insptr++;
|
||||||
{
|
{
|
||||||
|
@ -4563,7 +4494,7 @@ badindex:
|
||||||
insptr++;
|
insptr++;
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case CON_HITRADIUSVAR:
|
case CON_HITRADIUS:
|
||||||
insptr++;
|
insptr++;
|
||||||
{
|
{
|
||||||
int32_t params[5];
|
int32_t params[5];
|
||||||
|
@ -4572,11 +4503,6 @@ badindex:
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case CON_HITRADIUS:
|
|
||||||
A_RadiusDamage(vm.spriteNum, insptr[1], insptr[2], insptr[3], insptr[4], insptr[5]);
|
|
||||||
insptr += 6;
|
|
||||||
continue;
|
|
||||||
|
|
||||||
case CON_IFP:
|
case CON_IFP:
|
||||||
{
|
{
|
||||||
int const moveFlags = *(++insptr);
|
int const moveFlags = *(++insptr);
|
||||||
|
@ -4830,14 +4756,6 @@ badindex:
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
case CON_ADDLOG:
|
|
||||||
{
|
|
||||||
insptr++;
|
|
||||||
|
|
||||||
initprintf(OSDTEXT_GREEN "CONLOG: L=%d\n", g_errorLineNum);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
case CON_ADDLOGVAR:
|
case CON_ADDLOGVAR:
|
||||||
insptr++;
|
insptr++;
|
||||||
{
|
{
|
||||||
|
@ -4943,10 +4861,10 @@ badindex:
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
case CON_FINDNEARACTORVAR:
|
case CON_FINDNEARACTOR:
|
||||||
case CON_FINDNEARSPRITEVAR:
|
case CON_FINDNEARSPRITE:
|
||||||
case CON_FINDNEARACTOR3DVAR:
|
case CON_FINDNEARACTOR3D:
|
||||||
case CON_FINDNEARSPRITE3DVAR:
|
case CON_FINDNEARSPRITE3D:
|
||||||
insptr++;
|
insptr++;
|
||||||
{
|
{
|
||||||
// syntax findnearactorvar <type> <maxdistvar> <getvar>
|
// syntax findnearactorvar <type> <maxdistvar> <getvar>
|
||||||
|
@ -4962,10 +4880,10 @@ badindex:
|
||||||
int findStatnum = STAT_ACTOR;
|
int findStatnum = STAT_ACTOR;
|
||||||
int spriteNum;
|
int spriteNum;
|
||||||
|
|
||||||
if (tw == CON_FINDNEARSPRITEVAR || tw == CON_FINDNEARSPRITE3DVAR)
|
if (tw == CON_FINDNEARSPRITE || tw == CON_FINDNEARSPRITE3D)
|
||||||
findStatnum = MAXSTATUS - 1;
|
findStatnum = MAXSTATUS - 1;
|
||||||
|
|
||||||
if (tw == CON_FINDNEARACTOR3DVAR || tw == CON_FINDNEARSPRITE3DVAR)
|
if (tw == CON_FINDNEARACTOR3D || tw == CON_FINDNEARSPRITE3D)
|
||||||
{
|
{
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
|
@ -4982,7 +4900,7 @@ badindex:
|
||||||
}
|
}
|
||||||
spriteNum = nextspritestat[spriteNum];
|
spriteNum = nextspritestat[spriteNum];
|
||||||
}
|
}
|
||||||
if (spriteNum == MAXSPRITES || tw == CON_FINDNEARACTOR3DVAR)
|
if (spriteNum == MAXSPRITES || tw == CON_FINDNEARACTOR3D)
|
||||||
break;
|
break;
|
||||||
} while (findStatnum--);
|
} while (findStatnum--);
|
||||||
Gv_SetVarX(returnVar, foundSprite);
|
Gv_SetVarX(returnVar, foundSprite);
|
||||||
|
@ -5005,15 +4923,15 @@ badindex:
|
||||||
spriteNum = nextspritestat[spriteNum];
|
spriteNum = nextspritestat[spriteNum];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (spriteNum == MAXSPRITES || tw == CON_FINDNEARACTORVAR)
|
if (spriteNum == MAXSPRITES || tw == CON_FINDNEARACTOR)
|
||||||
break;
|
break;
|
||||||
} while (findStatnum--);
|
} while (findStatnum--);
|
||||||
Gv_SetVarX(returnVar, foundSprite);
|
Gv_SetVarX(returnVar, foundSprite);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
case CON_FINDNEARACTORZVAR:
|
case CON_FINDNEARACTORZ:
|
||||||
case CON_FINDNEARSPRITEZVAR:
|
case CON_FINDNEARSPRITEZ:
|
||||||
insptr++;
|
insptr++;
|
||||||
{
|
{
|
||||||
// syntax findnearactorvar <type> <maxdistvar> <getvar>
|
// syntax findnearactorvar <type> <maxdistvar> <getvar>
|
||||||
|
@ -5031,7 +4949,7 @@ badindex:
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
int spriteNum = headspritestat[tw == CON_FINDNEARACTORZVAR ? STAT_ACTOR : findStatnum]; // all sprites
|
int spriteNum = headspritestat[tw == CON_FINDNEARACTORZ ? STAT_ACTOR : findStatnum]; // all sprites
|
||||||
|
|
||||||
if (spriteNum == -1)
|
if (spriteNum == -1)
|
||||||
continue;
|
continue;
|
||||||
|
@ -5052,7 +4970,7 @@ badindex:
|
||||||
spriteNum = nextspritestat[spriteNum];
|
spriteNum = nextspritestat[spriteNum];
|
||||||
} while (spriteNum >= 0);
|
} while (spriteNum >= 0);
|
||||||
|
|
||||||
if (tw == CON_FINDNEARACTORZVAR || spriteNum == MAXSPRITES)
|
if (tw == CON_FINDNEARACTORZ || spriteNum == MAXSPRITES)
|
||||||
break;
|
break;
|
||||||
} while (findStatnum--);
|
} while (findStatnum--);
|
||||||
Gv_SetVarX(returnVar, foundSprite);
|
Gv_SetVarX(returnVar, foundSprite);
|
||||||
|
@ -5163,7 +5081,7 @@ badindex:
|
||||||
Gv_SetVarX(*insptr++, getangle(vm.pActor->lastv.x - vm.pSprite->x, vm.pActor->lastv.y - vm.pSprite->y));
|
Gv_SetVarX(*insptr++, getangle(vm.pActor->lastv.x - vm.pSprite->x, vm.pActor->lastv.y - vm.pSprite->y));
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case CON_ANGOFFVAR:
|
case CON_ANGOFF:
|
||||||
insptr++;
|
insptr++;
|
||||||
spriteext[vm.spriteNum].angoff = Gv_GetVarX(*insptr++);
|
spriteext[vm.spriteNum].angoff = Gv_GetVarX(*insptr++);
|
||||||
continue;
|
continue;
|
||||||
|
@ -5725,11 +5643,6 @@ badindex:
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case CON_STARTTRACK:
|
case CON_STARTTRACK:
|
||||||
insptr++;
|
|
||||||
G_StartTrackSlotWrap(ud.volume_number, *(insptr++));
|
|
||||||
continue;
|
|
||||||
|
|
||||||
case CON_STARTTRACKVAR:
|
|
||||||
insptr++;
|
insptr++;
|
||||||
G_StartTrackSlotWrap(ud.volume_number, Gv_GetVarX(*(insptr++)));
|
G_StartTrackSlotWrap(ud.volume_number, Gv_GetVarX(*(insptr++)));
|
||||||
continue;
|
continue;
|
||||||
|
@ -5994,7 +5907,7 @@ badindex:
|
||||||
"Thank you!");
|
"Thank you!");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
} while (loop && (vm.flags & (VM_RETURN|VM_KILL|VM_NOEXECUTE)) == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// NORECURSE
|
// NORECURSE
|
||||||
|
@ -6065,7 +5978,8 @@ void VM_UpdateAnim(int spriteNum, int32_t *pData)
|
||||||
// NORECURSE
|
// NORECURSE
|
||||||
void A_Execute(int spriteNum, int playerNum, int playerDist)
|
void A_Execute(int spriteNum, int playerNum, int playerDist)
|
||||||
{
|
{
|
||||||
vmstate_t tempvm
|
// for some reason this is faster than using the C++ syntax; e.g vm = vmstate_t{ ... }
|
||||||
|
vmstate_t const tempvm
|
||||||
= { spriteNum, playerNum, playerDist, 0, &sprite[spriteNum], &actor[spriteNum].t_data[0], g_player[playerNum].ps, &actor[spriteNum] };
|
= { spriteNum, playerNum, playerDist, 0, &sprite[spriteNum], &actor[spriteNum].t_data[0], g_player[playerNum].ps, &actor[spriteNum] };
|
||||||
vm = tempvm;
|
vm = tempvm;
|
||||||
|
|
||||||
|
@ -6095,34 +6009,24 @@ void A_Execute(int spriteNum, int playerNum, int playerDist)
|
||||||
|
|
||||||
VM_UpdateAnim(vm.spriteNum, vm.pData);
|
VM_UpdateAnim(vm.spriteNum, vm.pData);
|
||||||
|
|
||||||
|
double t = timerGetHiTicks();
|
||||||
#ifdef LUNATIC
|
#ifdef LUNATIC
|
||||||
int const picnum = vm.pSprite->picnum;
|
int const picnum = vm.pSprite->picnum;
|
||||||
|
|
||||||
if (L_IsInitialized(&g_ElState) && El_HaveActor(picnum))
|
if (L_IsInitialized(&g_ElState) && El_HaveActor(picnum))
|
||||||
{
|
|
||||||
double t = timerGetHiTicks();
|
|
||||||
|
|
||||||
killit = (El_CallActor(&g_ElState, picnum, spriteNum, playerNum, playerDist)==1);
|
killit = (El_CallActor(&g_ElState, picnum, spriteNum, playerNum, playerDist)==1);
|
||||||
|
|
||||||
t = timerGetHiTicks()-t;
|
|
||||||
g_actorTotalMs[picnum] += t;
|
|
||||||
g_actorMinMs[picnum] = min(g_actorMinMs[picnum], t);
|
|
||||||
g_actorMaxMs[picnum] = max(g_actorMaxMs[picnum], t);
|
|
||||||
g_actorCalls[picnum]++;
|
|
||||||
}
|
|
||||||
#else
|
#else
|
||||||
double t = timerGetHiTicks();
|
|
||||||
int const picnum = vm.pSprite->picnum;
|
int const picnum = vm.pSprite->picnum;
|
||||||
insptr = 4 + (g_tile[vm.pSprite->picnum].execPtr);
|
insptr = 4 + (g_tile[vm.pSprite->picnum].execPtr);
|
||||||
VM_Execute(1);
|
VM_Execute(1);
|
||||||
insptr = NULL;
|
insptr = NULL;
|
||||||
|
#endif
|
||||||
|
|
||||||
t = timerGetHiTicks()-t;
|
t = timerGetHiTicks()-t;
|
||||||
g_actorTotalMs[picnum] += t;
|
g_actorTotalMs[picnum] += t;
|
||||||
g_actorMinMs[picnum] = min(g_actorMinMs[picnum], t);
|
g_actorMinMs[picnum] = min(g_actorMinMs[picnum], t);
|
||||||
g_actorMaxMs[picnum] = max(g_actorMaxMs[picnum], t);
|
g_actorMaxMs[picnum] = max(g_actorMaxMs[picnum], t);
|
||||||
g_actorCalls[picnum]++;
|
g_actorCalls[picnum]++;
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef LUNATIC
|
#ifdef LUNATIC
|
||||||
if (killit)
|
if (killit)
|
||||||
|
|
Loading…
Reference in a new issue