This should hopefully fix the disaster with events caused by my last couple of commits ;)

git-svn-id: https://svn.eduke32.com/eduke32@2656 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
terminx 2012-05-16 00:45:10 +00:00
parent 3548c50724
commit 2ca8dc1c38
9 changed files with 123 additions and 274 deletions

View file

@ -514,9 +514,7 @@ void A_DeleteSprite(int32_t s)
{ {
int32_t p, pl=A_FindPlayer(&sprite[s],&p); int32_t p, pl=A_FindPlayer(&sprite[s],&p);
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_KILLIT, s, pl, p, 0))
VM_OnEvent(EVENT_KILLIT, s, pl, p);
if (aGameVars[g_iReturnVarID].val.lValue)
return; return;
} }
@ -8264,7 +8262,7 @@ void G_MoveWorld(void)
j = nextspritestat[i]; j = nextspritestat[i];
pl = A_FindPlayer(&sprite[i], &p); pl = A_FindPlayer(&sprite[i], &p);
VM_OnEvent(EVENT_GAME,i, pl, p); VM_OnEvent(EVENT_GAME,i, pl, p, 0);
i = j; i = j;
} }
} }

View file

@ -2859,10 +2859,7 @@ void G_DisplayRest(int32_t smoothratio)
if (pp->invdisptime > 0) G_DrawInventory(pp); if (pp->invdisptime > 0) G_DrawInventory(pp);
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_DISPLAYSBAR, g_player[screenpeek].ps->i, screenpeek, -1, 0) == 0)
if (apScriptGameEvent[EVENT_DISPLAYSBAR])
VM_OnEvent(EVENT_DISPLAYSBAR, g_player[screenpeek].ps->i, screenpeek, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
G_DrawStatusBar(screenpeek); G_DrawStatusBar(screenpeek);
G_PrintGameQuotes(); G_PrintGameQuotes();
@ -2923,15 +2920,11 @@ void G_DisplayRest(int32_t smoothratio)
} }
if (apScriptGameEvent[EVENT_DISPLAYREST]) if (apScriptGameEvent[EVENT_DISPLAYREST])
VM_OnEvent(EVENT_DISPLAYREST, g_player[screenpeek].ps->i, screenpeek, -1); VM_OnEvent(EVENT_DISPLAYREST, g_player[screenpeek].ps->i, screenpeek, -1, 0);
if (g_player[myconnectindex].ps->newowner == -1 && ud.overhead_on == 0 && ud.crosshair && ud.camerasprite == -1) if (g_player[myconnectindex].ps->newowner == -1 && ud.overhead_on == 0 && ud.crosshair && ud.camerasprite == -1)
{ {
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_DISPLAYCROSSHAIR, g_player[screenpeek].ps->i, screenpeek, -1, 0) == 0)
if (apScriptGameEvent[EVENT_DISPLAYCROSSHAIR])
VM_OnEvent(EVENT_DISPLAYCROSSHAIR, g_player[screenpeek].ps->i, screenpeek, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
int32_t x, y; int32_t x, y;
#ifdef GEKKO #ifdef GEKKO
@ -3160,22 +3153,24 @@ void G_DrawBackground(void)
} }
else else
{ {
int32_t bgtile;
if (getrendermode() >= 3) if (getrendermode() >= 3)
clearview(0); clearview(0);
// when not rendering a game, fullscreen wipe // when not rendering a game, fullscreen wipe
#define MENUTILE (!getrendermode()?MENUSCREEN:LOADSCREEN) #define MENUTILE (!getrendermode()?MENUSCREEN:LOADSCREEN)
// 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);
aGameVars[g_iReturnVarID].val.lValue = (tilesizx[MENUTILE]==320&&tilesizy[MENUTILE]==200?MENUTILE:BIGHOLE); bgtile = (tilesizx[MENUTILE]==320&&tilesizy[MENUTILE]==200?MENUTILE:BIGHOLE);
if (apScriptGameEvent[EVENT_GETMENUTILE]) if (apScriptGameEvent[EVENT_GETMENUTILE])
VM_OnEvent(EVENT_GETMENUTILE, -1, myconnectindex, -1); bgtile = VM_OnEvent(EVENT_GETMENUTILE, -1, myconnectindex, -1, bgtile);
if (Gv_GetVarByLabel("MENU_TILE", tilesizx[MENUTILE]==320&&tilesizy[MENUTILE]==200?0:1, -1, -1)) if (Gv_GetVarByLabel("MENU_TILE", tilesizx[MENUTILE]==320&&tilesizy[MENUTILE]==200?0:1, -1, -1))
{ {
for (y=y1; y<y2; y+=tilesizy[aGameVars[g_iReturnVarID].val.lValue]) for (y=y1; y<y2; y+=tilesizy[bgtile])
for (x=0; x<xdim; x+=tilesizx[aGameVars[g_iReturnVarID].val.lValue]) for (x=0; x<xdim; x+=tilesizx[bgtile])
rotatesprite_fs(x<<16,y<<16,65536L,0,aGameVars[g_iReturnVarID].val.lValue,bpp==8?16:8,0,8+16+64); rotatesprite_fs(x<<16,y<<16,65536L,0,bgtile,bpp==8?16:8,0,8+16+64);
} }
else rotatesprite_fs(320<<15,200<<15,65536L,0,aGameVars[g_iReturnVarID].val.lValue,bpp==8?16:8,0,2+8+64+(ud.bgstretch?1024:0)); else rotatesprite_fs(320<<15,200<<15,65536L,0,bgtile,bpp==8?16:8,0,2+8+64+(ud.bgstretch?1024:0));
return; return;
} }
@ -3722,7 +3717,7 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio)
} }
if (apScriptGameEvent[EVENT_DISPLAYROOMS]) if (apScriptGameEvent[EVENT_DISPLAYROOMS])
VM_OnEvent(EVENT_DISPLAYROOMS, g_player[screenpeek].ps->i, screenpeek, -1); VM_OnEvent(EVENT_DISPLAYROOMS, g_player[screenpeek].ps->i, screenpeek, -1, 0);
ud.camerahoriz = clamp(ud.camerahoriz, HORIZ_MIN, HORIZ_MAX); ud.camerahoriz = clamp(ud.camerahoriz, HORIZ_MIN, HORIZ_MAX);
@ -3994,7 +3989,7 @@ int32_t A_InsertSprite(int32_t whatsect,int32_t s_x,int32_t s_y,int32_t s_z,int3
int32_t pl=A_FindPlayer(s, &p); int32_t pl=A_FindPlayer(s, &p);
block_deletesprite++; block_deletesprite++;
VM_OnEvent(EVENT_EGS, i, pl, p); VM_OnEvent(EVENT_EGS, i, pl, p, 0);
block_deletesprite--; block_deletesprite--;
} }
@ -5728,7 +5723,7 @@ int32_t A_Spawn(int32_t j, int32_t pn)
if (apScriptGameEvent[EVENT_SPAWN]) if (apScriptGameEvent[EVENT_SPAWN])
{ {
int32_t pl=A_FindPlayer(&sprite[i],&p); int32_t pl=A_FindPlayer(&sprite[i],&p);
VM_OnEvent(EVENT_SPAWN,i, pl, p); VM_OnEvent(EVENT_SPAWN,i, pl, p, 0);
} }
return i; return i;
} }
@ -5958,7 +5953,7 @@ SPAWN_END:
if (apScriptGameEvent[EVENT_SPAWN]) if (apScriptGameEvent[EVENT_SPAWN])
{ {
int32_t pl=A_FindPlayer(&sprite[i],&p); int32_t pl=A_FindPlayer(&sprite[i],&p);
VM_OnEvent(EVENT_SPAWN,i, pl, p); VM_OnEvent(EVENT_SPAWN,i, pl, p, 0);
} }
// spawning is technically not allowed to fail in BUILD, so we just hide whatever // spawning is technically not allowed to fail in BUILD, so we just hide whatever
@ -6903,7 +6898,7 @@ skip:
if (tsprite[j].owner < MAXSPRITES && tsprite[j].owner >= 0 && spriteext[tsprite[j].owner].flags & SPREXT_TSPRACCESS) if (tsprite[j].owner < MAXSPRITES && tsprite[j].owner >= 0 && spriteext[tsprite[j].owner].flags & SPREXT_TSPRACCESS)
{ {
spriteext[tsprite[j].owner].tspr = (spritetype *)&tsprite[j]; spriteext[tsprite[j].owner].tspr = (spritetype *)&tsprite[j];
VM_OnEvent(EVENT_ANIMATESPRITES,tsprite[j].owner, myconnectindex, -1); VM_OnEvent(EVENT_ANIMATESPRITES,tsprite[j].owner, myconnectindex, -1, 0);
} }
} }
while (j--); while (j--);
@ -6914,7 +6909,7 @@ skip:
if (tsprite[j].owner >= 0 && tsprite[j].owner < MAXSPRITES && spriteext[tsprite[j].owner].flags & SPREXT_TSPRACCESS) if (tsprite[j].owner >= 0 && tsprite[j].owner < MAXSPRITES && spriteext[tsprite[j].owner].flags & SPREXT_TSPRACCESS)
{ {
spriteext[tsprite[j].owner].tspr = (spritetype *)&tsprite[j]; spriteext[tsprite[j].owner].tspr = (spritetype *)&tsprite[j];
VM_OnEvent(EVENT_ANIMATESPRITES,tsprite[j].owner, myconnectindex, -1); VM_OnEvent(EVENT_ANIMATESPRITES,tsprite[j].owner, myconnectindex, -1, 0);
} }
} }
} }
@ -6987,9 +6982,7 @@ enum cheatindex_t
static void doinvcheat(int32_t invidx, int32_t defaultnum, int32_t event) static void doinvcheat(int32_t invidx, int32_t defaultnum, int32_t event)
{ {
Gv_SetVar(g_iReturnVarID, defaultnum, g_player[myconnectindex].ps->i, myconnectindex); if (VM_OnEvent(event, g_player[myconnectindex].ps->i, myconnectindex, -1, defaultnum) >= 0)
VM_OnEvent(event, g_player[myconnectindex].ps->i, myconnectindex, -1);
if (aGameVars[g_iReturnVarID].val.lValue >=0)
{ {
g_player[myconnectindex].ps->inv_amount[invidx] = g_player[myconnectindex].ps->inv_amount[invidx] =
aGameVars[g_iReturnVarID].val.lValue; aGameVars[g_iReturnVarID].val.lValue;
@ -9333,7 +9326,7 @@ static void G_DisplayLogo(void)
} }
} }
VM_OnEvent(EVENT_LOGO, -1, screenpeek, -1); VM_OnEvent(EVENT_LOGO, -1, screenpeek, -1, 0);
G_HandleAsync(); G_HandleAsync();
@ -9486,7 +9479,7 @@ static void G_CompileScripts(void)
Bmemset(sector, 0, MAXSECTORS*sizeof(sectortype)); Bmemset(sector, 0, MAXSECTORS*sizeof(sectortype));
Bmemset(wall, 0, MAXWALLS*sizeof(walltype)); Bmemset(wall, 0, MAXWALLS*sizeof(walltype));
VM_OnEvent(EVENT_INIT, -1, -1, -1); VM_OnEvent(EVENT_INIT, -1, -1, -1, 0);
pathsearchmode = psm; pathsearchmode = psm;
} }
@ -11646,7 +11639,7 @@ FRAGBONUS:
else else
break; break;
VM_OnEvent(EVENT_DISPLAYBONUSSCREEN, g_player[screenpeek].ps->i, screenpeek, -1); VM_OnEvent(EVENT_DISPLAYBONUSSCREEN, g_player[screenpeek].ps->i, screenpeek, -1, 0);
nextpage(); nextpage();
} }
while (1); while (1);

View file

@ -93,14 +93,14 @@ void VM_ScriptInfo(void)
initprintf("g_errorLineNum: %d, g_tw: %d\n",g_errorLineNum,g_tw); initprintf("g_errorLineNum: %d, g_tw: %d\n",g_errorLineNum,g_tw);
} }
void VM_OnEvent(register int32_t iEventID, register int32_t iActor, register int32_t iPlayer, register int32_t lDist) int32_t VM_OnEvent(int32_t iEventID, int32_t iActor, int32_t iPlayer, int32_t lDist, int32_t iReturn)
{ {
#ifdef LUNATIC_ENABLE #ifdef LUNATIC_ENABLE
if (El_IsInitialized(&g_ElState)) if (El_IsInitialized(&g_ElState))
El_CallEvent(&g_ElState, iEventID); El_CallEvent(&g_ElState, iEventID);
#endif #endif
if (!apScriptGameEvent[iEventID]) if (!apScriptGameEvent[iEventID])
return; return iReturn;
{ {
intptr_t *oinsptr=insptr; intptr_t *oinsptr=insptr;
@ -114,6 +114,7 @@ void VM_OnEvent(register int32_t iEventID, register int32_t iActor, register int
int32_t backupReturnVar = aGameVars[g_iReturnVarID].val.lValue; int32_t backupReturnVar = aGameVars[g_iReturnVarID].val.lValue;
int32_t backupEventExec = g_currentEventExec; int32_t backupEventExec = g_currentEventExec;
aGameVars[g_iReturnVarID].val.lValue = iReturn;
g_currentEventExec = iEventID; g_currentEventExec = iEventID;
insptr = apScriptGameEvent[iEventID]; insptr = apScriptGameEvent[iEventID];
@ -135,7 +136,10 @@ void VM_OnEvent(register int32_t iEventID, register int32_t iActor, register int
insptr = oinsptr; insptr = oinsptr;
g_currentEventExec = backupEventExec; g_currentEventExec = backupEventExec;
iReturn = aGameVars[g_iReturnVarID].val.lValue;
aGameVars[g_iReturnVarID].val.lValue = backupReturnVar; aGameVars[g_iReturnVarID].val.lValue = backupReturnVar;
return iReturn;
} }
} }

View file

@ -143,7 +143,7 @@ void G_RestoreMapState(mapstate_t *save);
void G_SaveMapState(mapstate_t *save); void G_SaveMapState(mapstate_t *save);
void G_SaveMapState(mapstate_t *save); void G_SaveMapState(mapstate_t *save);
void Gv_RefreshPointers(void); void Gv_RefreshPointers(void);
void VM_OnEvent(register int32_t iEventID,register int32_t iActor,register int32_t iPlayer,register int32_t lDist); int32_t VM_OnEvent(int32_t iEventID,int32_t iActor,int32_t iPlayer,int32_t lDist, int32_t iReturn);
void VM_ScriptInfo(void); void VM_ScriptInfo(void);
#endif #endif

View file

@ -658,7 +658,7 @@ void M_DisplayMenus(void)
return; return;
} }
if (apScriptGameEvent[EVENT_DISPLAYMENU]) if (apScriptGameEvent[EVENT_DISPLAYMENU])
VM_OnEvent(EVENT_DISPLAYMENU, g_player[screenpeek].ps->i, screenpeek, -1); VM_OnEvent(EVENT_DISPLAYMENU, g_player[screenpeek].ps->i, screenpeek, -1, 0);
g_player[myconnectindex].ps->gm &= (0xff-MODE_TYPE); g_player[myconnectindex].ps->gm &= (0xff-MODE_TYPE);
g_player[myconnectindex].ps->fta = 0; g_player[myconnectindex].ps->fta = 0;
@ -5480,7 +5480,7 @@ VOLUME_ALL_40x:
break; break;
} }
if (apScriptGameEvent[EVENT_DISPLAYMENUREST]) if (apScriptGameEvent[EVENT_DISPLAYMENUREST])
VM_OnEvent(EVENT_DISPLAYMENUREST, g_player[myconnectindex].ps->i, myconnectindex, -1); VM_OnEvent(EVENT_DISPLAYMENUREST, g_player[myconnectindex].ps->i, myconnectindex, -1, 0);
if ((g_player[myconnectindex].ps->gm&MODE_MENU) != MODE_MENU) if ((g_player[myconnectindex].ps->gm&MODE_MENU) != MODE_MENU)
{ {

View file

@ -73,11 +73,7 @@ static void P_IncurDamage(DukePlayer_t *p)
{ {
int32_t damage; int32_t damage;
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_INCURDAMAGE, p->i, sprite[p->i].yvel, -1, 0) == 0)
if (apScriptGameEvent[EVENT_INCURDAMAGE])
VM_OnEvent(EVENT_INCURDAMAGE, p->i, sprite[p->i].yvel, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
sprite[p->i].extra -= p->extra_extra8>>8; sprite[p->i].extra -= p->extra_extra8>>8;
@ -601,7 +597,7 @@ int32_t A_Shoot(int32_t i,int32_t atwith)
Gv_SetVar(g_iAimAngleVarID,AUTO_AIM_ANGLE,i,p); Gv_SetVar(g_iAimAngleVarID,AUTO_AIM_ANGLE,i,p);
if (apScriptGameEvent[EVENT_GETAUTOAIMANGLE]) if (apScriptGameEvent[EVENT_GETAUTOAIMANGLE])
VM_OnEvent(EVENT_GETAUTOAIMANGLE, i, p, -1); VM_OnEvent(EVENT_GETAUTOAIMANGLE, i, p, -1, 0);
j=-1; j=-1;
if (Gv_GetVar(g_iAimAngleVarID,i,p) > 0) if (Gv_GetVar(g_iAimAngleVarID,i,p) > 0)
{ {
@ -623,7 +619,10 @@ int32_t A_Shoot(int32_t i,int32_t atwith)
Gv_SetVar(g_iAngRangeVarID,angRange, i,p); Gv_SetVar(g_iAngRangeVarID,angRange, i,p);
Gv_SetVar(g_iZRangeVarID,zRange,i,p); Gv_SetVar(g_iZRangeVarID,zRange,i,p);
VM_OnEvent(EVENT_GETSHOTRANGE, i,p, -1);
if (apScriptGameEvent[EVENT_GETSHOTRANGE])
VM_OnEvent(EVENT_GETSHOTRANGE, i,p, -1, 0);
angRange=Gv_GetVar(g_iAngRangeVarID,i,p); angRange=Gv_GetVar(g_iAngRangeVarID,i,p);
zRange=Gv_GetVar(g_iZRangeVarID,i,p); zRange=Gv_GetVar(g_iZRangeVarID,i,p);
@ -950,7 +949,7 @@ DOSKIPBULLETHOLE:
// j = A_FindTargetSprite( s, AUTO_AIM_ANGLE ); // 48 // j = A_FindTargetSprite( s, AUTO_AIM_ANGLE ); // 48
Gv_SetVar(g_iAimAngleVarID,AUTO_AIM_ANGLE,i,p); Gv_SetVar(g_iAimAngleVarID,AUTO_AIM_ANGLE,i,p);
if (apScriptGameEvent[EVENT_GETAUTOAIMANGLE]) if (apScriptGameEvent[EVENT_GETAUTOAIMANGLE])
VM_OnEvent(EVENT_GETAUTOAIMANGLE, i, p, -1); VM_OnEvent(EVENT_GETAUTOAIMANGLE, i, p, -1, 0);
j=-1; j=-1;
if (Gv_GetVar(g_iAimAngleVarID,i,p) > 0) if (Gv_GetVar(g_iAimAngleVarID,i,p) > 0)
@ -1199,7 +1198,7 @@ DOSKIPBULLETHOLE:
Gv_SetVar(g_iAimAngleVarID,AUTO_AIM_ANGLE,i,p); Gv_SetVar(g_iAimAngleVarID,AUTO_AIM_ANGLE,i,p);
if (apScriptGameEvent[EVENT_GETAUTOAIMANGLE]) if (apScriptGameEvent[EVENT_GETAUTOAIMANGLE])
VM_OnEvent(EVENT_GETAUTOAIMANGLE, i, p, -1); VM_OnEvent(EVENT_GETAUTOAIMANGLE, i, p, -1, 0);
j=-1; j=-1;
if (Gv_GetVar(g_iAimAngleVarID,i,p) > 0) if (Gv_GetVar(g_iAimAngleVarID,i,p) > 0)
{ {
@ -1223,7 +1222,8 @@ DOSKIPBULLETHOLE:
Gv_SetVar(g_iAngRangeVarID,angRange, i,p); Gv_SetVar(g_iAngRangeVarID,angRange, i,p);
Gv_SetVar(g_iZRangeVarID,zRange,i,p); Gv_SetVar(g_iZRangeVarID,zRange,i,p);
VM_OnEvent(EVENT_GETSHOTRANGE, i,p, -1); if (apScriptGameEvent[EVENT_GETSHOTRANGE])
VM_OnEvent(EVENT_GETSHOTRANGE, i,p, -1, 0);
angRange=Gv_GetVar(g_iAngRangeVarID,i,p); angRange=Gv_GetVar(g_iAngRangeVarID,i,p);
zRange=Gv_GetVar(g_iZRangeVarID,i,p); zRange=Gv_GetVar(g_iZRangeVarID,i,p);
@ -1499,7 +1499,7 @@ SKIPBULLETHOLE:
// j = A_FindTargetSprite( s, AUTO_AIM_ANGLE ); // j = A_FindTargetSprite( s, AUTO_AIM_ANGLE );
Gv_SetVar(g_iAimAngleVarID,AUTO_AIM_ANGLE,i,p); Gv_SetVar(g_iAimAngleVarID,AUTO_AIM_ANGLE,i,p);
if (apScriptGameEvent[EVENT_GETAUTOAIMANGLE]) if (apScriptGameEvent[EVENT_GETAUTOAIMANGLE])
VM_OnEvent(EVENT_GETAUTOAIMANGLE, i, p, -1); VM_OnEvent(EVENT_GETAUTOAIMANGLE, i, p, -1, 0);
j=-1; j=-1;
if (Gv_GetVar(g_iAimAngleVarID,i,p) > 0) if (Gv_GetVar(g_iAimAngleVarID,i,p) > 0)
{ {
@ -1589,7 +1589,7 @@ SKIPBULLETHOLE:
// j = A_FindTargetSprite( s, AUTO_AIM_ANGLE ); // 48 // j = A_FindTargetSprite( s, AUTO_AIM_ANGLE ); // 48
Gv_SetVar(g_iAimAngleVarID,AUTO_AIM_ANGLE,i,p); Gv_SetVar(g_iAimAngleVarID,AUTO_AIM_ANGLE,i,p);
if (apScriptGameEvent[EVENT_GETAUTOAIMANGLE]) if (apScriptGameEvent[EVENT_GETAUTOAIMANGLE])
VM_OnEvent(EVENT_GETAUTOAIMANGLE, i, p, -1); VM_OnEvent(EVENT_GETAUTOAIMANGLE, i, p, -1, 0);
j=-1; j=-1;
if (Gv_GetVar(g_iAimAngleVarID,i,p) > 0) if (Gv_GetVar(g_iAimAngleVarID,i,p) > 0)
{ {
@ -1799,7 +1799,7 @@ SKIPBULLETHOLE:
// j = A_FindTargetSprite( s, AUTO_AIM_ANGLE ); // j = A_FindTargetSprite( s, AUTO_AIM_ANGLE );
Gv_SetVar(g_iAimAngleVarID,AUTO_AIM_ANGLE,i,p); Gv_SetVar(g_iAimAngleVarID,AUTO_AIM_ANGLE,i,p);
if (apScriptGameEvent[EVENT_GETAUTOAIMANGLE]) if (apScriptGameEvent[EVENT_GETAUTOAIMANGLE])
VM_OnEvent(EVENT_GETAUTOAIMANGLE, i, p, -1); VM_OnEvent(EVENT_GETAUTOAIMANGLE, i, p, -1, 0);
j=-1; j=-1;
if (Gv_GetVar(g_iAimAngleVarID,i,p) > 0) if (Gv_GetVar(g_iAimAngleVarID,i,p) > 0)
{ {
@ -1899,7 +1899,7 @@ SKIPBULLETHOLE:
// j = A_FindTargetSprite( s, AUTO_AIM_ANGLE ); // j = A_FindTargetSprite( s, AUTO_AIM_ANGLE );
Gv_SetVar(g_iAimAngleVarID,AUTO_AIM_ANGLE,i,p); Gv_SetVar(g_iAimAngleVarID,AUTO_AIM_ANGLE,i,p);
if (apScriptGameEvent[EVENT_GETAUTOAIMANGLE]) if (apScriptGameEvent[EVENT_GETAUTOAIMANGLE])
VM_OnEvent(EVENT_GETAUTOAIMANGLE, i, p, -1); VM_OnEvent(EVENT_GETAUTOAIMANGLE, i, p, -1, 0);
j=-1; j=-1;
if (Gv_GetVar(g_iAimAngleVarID,i,p) > 0) if (Gv_GetVar(g_iAimAngleVarID,i,p) > 0)
{ {
@ -2139,12 +2139,7 @@ void P_FireWeapon(DukePlayer_t *p)
{ {
int32_t i, snum = sprite[p->i].yvel; int32_t i, snum = sprite[p->i].yvel;
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_DOFIRE, p->i, snum, -1, 0) == 0)
if (apScriptGameEvent[EVENT_DOFIRE])
VM_OnEvent(EVENT_DOFIRE, p->i, snum, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
if (p->weapon_pos != 0) return; if (p->weapon_pos != 0) return;
@ -2356,11 +2351,7 @@ void P_DisplayWeapon(int32_t snum)
g_kb=*kb; g_kb=*kb;
g_looking_angSR1=p->look_ang>>1; g_looking_angSR1=p->look_ang>>1;
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_DISPLAYWEAPON, p->i, screenpeek, -1, 0) == 0)
if (apScriptGameEvent[EVENT_DISPLAYWEAPON])
VM_OnEvent(EVENT_DISPLAYWEAPON, p->i, screenpeek, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
j = 14-p->quick_kick; j = 14-p->quick_kick;
if (j != 14 || p->last_quick_kick) if (j != 14 || p->last_quick_kick)
@ -2403,11 +2394,7 @@ void P_DisplayWeapon(int32_t snum)
switch (cw) switch (cw)
{ {
case KNEE_WEAPON: case KNEE_WEAPON:
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_DRAWWEAPON,g_player[screenpeek].ps->i,screenpeek, -1, 0) == 0)
if (apScriptGameEvent[EVENT_DRAWWEAPON])
VM_OnEvent(EVENT_DRAWWEAPON,g_player[screenpeek].ps->i,screenpeek, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
if ((*kb) > 0) if ((*kb) > 0)
{ {
@ -2427,12 +2414,7 @@ void P_DisplayWeapon(int32_t snum)
break; break;
case TRIPBOMB_WEAPON: case TRIPBOMB_WEAPON:
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_DRAWWEAPON,g_player[screenpeek].ps->i,screenpeek, -1, 0) == 0)
if (apScriptGameEvent[EVENT_DRAWWEAPON])
VM_OnEvent(EVENT_DRAWWEAPON,g_player[screenpeek].ps->i,screenpeek, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
weapon_xoffset += 8; weapon_xoffset += 8;
gun_pos -= 10; gun_pos -= 10;
@ -2460,12 +2442,7 @@ void P_DisplayWeapon(int32_t snum)
break; break;
case RPG_WEAPON: case RPG_WEAPON:
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_DRAWWEAPON,g_player[screenpeek].ps->i,screenpeek, -1, 0) == 0)
if (apScriptGameEvent[EVENT_DRAWWEAPON])
VM_OnEvent(EVENT_DRAWWEAPON,g_player[screenpeek].ps->i,screenpeek, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
weapon_xoffset -= sintable[(768+((*kb)<<7))&2047]>>11; weapon_xoffset -= sintable[(768+((*kb)<<7))&2047]>>11;
gun_pos += sintable[(768+((*kb)<<7))&2047]>>11; gun_pos += sintable[(768+((*kb)<<7))&2047]>>11;
@ -2482,12 +2459,7 @@ void P_DisplayWeapon(int32_t snum)
break; break;
case SHOTGUN_WEAPON: case SHOTGUN_WEAPON:
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_DRAWWEAPON,g_player[screenpeek].ps->i,screenpeek, -1, 0) == 0)
if (apScriptGameEvent[EVENT_DRAWWEAPON])
VM_OnEvent(EVENT_DRAWWEAPON,g_player[screenpeek].ps->i,screenpeek, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
weapon_xoffset -= 8; weapon_xoffset -= 8;
@ -2577,12 +2549,7 @@ void P_DisplayWeapon(int32_t snum)
case CHAINGUN_WEAPON: case CHAINGUN_WEAPON:
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_DRAWWEAPON,g_player[screenpeek].ps->i,screenpeek, -1, 0) == 0)
if (apScriptGameEvent[EVENT_DRAWWEAPON])
VM_OnEvent(EVENT_DRAWWEAPON,g_player[screenpeek].ps->i,screenpeek, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
if (*kb > 0) if (*kb > 0)
{ {
@ -2631,12 +2598,7 @@ void P_DisplayWeapon(int32_t snum)
break; break;
case PISTOL_WEAPON: case PISTOL_WEAPON:
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_DRAWWEAPON,g_player[screenpeek].ps->i,screenpeek, -1, 0) == 0)
if (apScriptGameEvent[EVENT_DRAWWEAPON])
VM_OnEvent(EVENT_DRAWWEAPON,g_player[screenpeek].ps->i,screenpeek, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
if ((*kb) < *aplWeaponTotalTime[PISTOL_WEAPON]+1) if ((*kb) < *aplWeaponTotalTime[PISTOL_WEAPON]+1)
{ {
@ -2700,12 +2662,7 @@ void P_DisplayWeapon(int32_t snum)
break; break;
case HANDBOMB_WEAPON: case HANDBOMB_WEAPON:
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_DRAWWEAPON,g_player[screenpeek].ps->i,screenpeek, -1, 0) == 0)
if (apScriptGameEvent[EVENT_DRAWWEAPON])
VM_OnEvent(EVENT_DRAWWEAPON,g_player[screenpeek].ps->i,screenpeek, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
guniqhudid = cw; guniqhudid = cw;
if ((*kb)) if ((*kb))
@ -2732,12 +2689,7 @@ void P_DisplayWeapon(int32_t snum)
break; break;
case HANDREMOTE_WEAPON: case HANDREMOTE_WEAPON:
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_DRAWWEAPON,g_player[screenpeek].ps->i,screenpeek, -1, 0) == 0)
if (apScriptGameEvent[EVENT_DRAWWEAPON])
VM_OnEvent(EVENT_DRAWWEAPON,g_player[screenpeek].ps->i,screenpeek, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
static uint8_t remote_frames[] = {0,1,1,2,1,1,0,0,0,0,0}; static uint8_t remote_frames[] = {0,1,1,2,1,1,0,0,0,0,0};
@ -2752,12 +2704,7 @@ void P_DisplayWeapon(int32_t snum)
break; break;
case DEVISTATOR_WEAPON: case DEVISTATOR_WEAPON:
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_DRAWWEAPON,g_player[screenpeek].ps->i,screenpeek, -1, 0) == 0)
if (apScriptGameEvent[EVENT_DRAWWEAPON])
VM_OnEvent(EVENT_DRAWWEAPON,g_player[screenpeek].ps->i,screenpeek, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
if ((*kb) < (*aplWeaponTotalTime[DEVISTATOR_WEAPON]+1) && (*kb) > 0) if ((*kb) < (*aplWeaponTotalTime[DEVISTATOR_WEAPON]+1) && (*kb) > 0)
{ {
@ -2794,12 +2741,7 @@ void P_DisplayWeapon(int32_t snum)
break; break;
case FREEZE_WEAPON: case FREEZE_WEAPON:
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_DRAWWEAPON,g_player[screenpeek].ps->i,screenpeek, -1, 0) == 0)
if (apScriptGameEvent[EVENT_DRAWWEAPON])
VM_OnEvent(EVENT_DRAWWEAPON,g_player[screenpeek].ps->i,screenpeek, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
if ((*kb) < (aplWeaponTotalTime[p->curr_weapon][snum]+1) && (*kb) > 0) if ((*kb) < (aplWeaponTotalTime[p->curr_weapon][snum]+1) && (*kb) > 0)
{ {
@ -2827,12 +2769,7 @@ void P_DisplayWeapon(int32_t snum)
break; break;
case GROW_WEAPON: case GROW_WEAPON:
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_DRAWWEAPON,g_player[screenpeek].ps->i,screenpeek, -1, 0) == 0)
if (apScriptGameEvent[EVENT_DRAWWEAPON])
VM_OnEvent(EVENT_DRAWWEAPON,g_player[screenpeek].ps->i,screenpeek, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
weapon_xoffset += 28; weapon_xoffset += 28;
looking_arc += 18; looking_arc += 18;
@ -2872,12 +2809,7 @@ void P_DisplayWeapon(int32_t snum)
break; break;
case SHRINKER_WEAPON: case SHRINKER_WEAPON:
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_DRAWWEAPON,g_player[screenpeek].ps->i,screenpeek, -1, 0) == 0)
if (apScriptGameEvent[EVENT_DRAWWEAPON])
VM_OnEvent(EVENT_DRAWWEAPON,g_player[screenpeek].ps->i,screenpeek, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
weapon_xoffset += 28; weapon_xoffset += 28;
looking_arc += 18; looking_arc += 18;
@ -3501,7 +3433,7 @@ void P_AddWeapon(DukePlayer_t *p,int32_t weapon)
p->kickback_pic = 0; p->kickback_pic = 0;
if (p->curr_weapon != weapon && apScriptGameEvent[EVENT_CHANGEWEAPON]) if (p->curr_weapon != weapon && apScriptGameEvent[EVENT_CHANGEWEAPON])
VM_OnEvent(EVENT_CHANGEWEAPON,p->i, snum, -1); VM_OnEvent(EVENT_CHANGEWEAPON,p->i, snum, -1, 0);
p->curr_weapon = weapon; p->curr_weapon = weapon;
@ -3579,7 +3511,7 @@ void P_CheckWeapon(DukePlayer_t *p)
Gv_SetVar(g_iWorksLikeVarID, (unsigned)p->curr_weapon < MAX_WEAPONS ? aplWeaponWorksLike[p->curr_weapon][snum] : -1, p->i, snum); Gv_SetVar(g_iWorksLikeVarID, (unsigned)p->curr_weapon < MAX_WEAPONS ? aplWeaponWorksLike[p->curr_weapon][snum] : -1, p->i, snum);
if (apScriptGameEvent[EVENT_CHANGEWEAPON]) if (apScriptGameEvent[EVENT_CHANGEWEAPON])
VM_OnEvent(EVENT_CHANGEWEAPON,p->i, snum, -1); VM_OnEvent(EVENT_CHANGEWEAPON,p->i, snum, -1, 0);
p->kickback_pic = 0; p->kickback_pic = 0;
if (p->holster_weapon == 1) if (p->holster_weapon == 1)
{ {
@ -3591,11 +3523,8 @@ void P_CheckWeapon(DukePlayer_t *p)
void P_CheckTouchDamage(DukePlayer_t *p,int32_t j) void P_CheckTouchDamage(DukePlayer_t *p,int32_t j)
{ {
aGameVars[g_iReturnVarID].val.lValue = j; if (VM_OnEvent(EVENT_CHECKTOUCHDAMAGE, p->i, sprite[p->i].yvel, -1, j) == -1)
if (apScriptGameEvent[EVENT_CHECKTOUCHDAMAGE]) return;
VM_OnEvent(EVENT_CHECKTOUCHDAMAGE, p->i, sprite[p->i].yvel, -1);
if (aGameVars[g_iReturnVarID].val.lValue == -1) return;
if ((j&49152) == 49152) if ((j&49152) == 49152)
{ {
@ -3670,11 +3599,8 @@ int32_t P_CheckFloorDamage(DukePlayer_t *p, int32_t j)
{ {
spritetype *s = &sprite[p->i]; spritetype *s = &sprite[p->i];
aGameVars[g_iReturnVarID].val.lValue = j; if ((unsigned)(j = VM_OnEvent(EVENT_CHECKFLOORDAMAGE, p->i, sprite[p->i].yvel, -1, j)) >= MAXTILES)
if (apScriptGameEvent[EVENT_CHECKFLOORDAMAGE]) return 0;
VM_OnEvent(EVENT_CHECKFLOORDAMAGE, p->i, sprite[p->i].yvel, -1);
if ((unsigned)(j = aGameVars[g_iReturnVarID].val.lValue) >= MAXTILES) return 0;
switch (DYNAMICTILEMAP(j)) switch (DYNAMICTILEMAP(j))
{ {
@ -3895,19 +3821,17 @@ void P_ProcessWeapon(int32_t snum)
{ {
Gv_SetVar(g_iWeaponVarID,p->curr_weapon,p->i,snum); Gv_SetVar(g_iWeaponVarID,p->curr_weapon,p->i,snum);
Gv_SetVar(g_iWorksLikeVarID,aplWeaponWorksLike[p->curr_weapon][snum],p->i,snum); Gv_SetVar(g_iWorksLikeVarID,aplWeaponWorksLike[p->curr_weapon][snum],p->i,snum);
aGameVars[g_iReturnVarID].val.lValue = 0;
VM_OnEvent(EVENT_PRESSEDFIRE, p->i, snum, -1); if (VM_OnEvent(EVENT_PRESSEDFIRE, p->i, snum, -1, 0) != 0)
if (aGameVars[g_iReturnVarID].val.lValue != 0)
sb_snum &= ~BIT(SK_FIRE); sb_snum &= ~BIT(SK_FIRE);
} }
if (TEST_SYNC_KEY(sb_snum, SK_HOLSTER)) // 'Holster Weapon if (TEST_SYNC_KEY(sb_snum, SK_HOLSTER)) // 'Holster Weapon
{ {
aGameVars[g_iReturnVarID].val.lValue = 0;
Gv_SetVar(g_iWeaponVarID,p->curr_weapon,p->i,snum); Gv_SetVar(g_iWeaponVarID,p->curr_weapon,p->i,snum);
Gv_SetVar(g_iWorksLikeVarID,aplWeaponWorksLike[p->curr_weapon][snum],p->i,snum); Gv_SetVar(g_iWorksLikeVarID,aplWeaponWorksLike[p->curr_weapon][snum],p->i,snum);
VM_OnEvent(EVENT_HOLSTER, p->i, snum, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0) if (VM_OnEvent(EVENT_HOLSTER, p->i, snum, -1, 0) == 0)
{ {
if (*aplWeaponWorksLike[p->curr_weapon] != KNEE_WEAPON) if (*aplWeaponWorksLike[p->curr_weapon] != KNEE_WEAPON)
{ {
@ -4006,17 +3930,13 @@ void P_ProcessWeapon(int32_t snum)
} }
else else
{ {
aGameVars[g_iReturnVarID].val.lValue = 0;
Gv_SetVar(g_iWeaponVarID,p->curr_weapon,p->i,snum); Gv_SetVar(g_iWeaponVarID,p->curr_weapon,p->i,snum);
Gv_SetVar(g_iWorksLikeVarID,aplWeaponWorksLike[p->curr_weapon][snum],p->i,snum); Gv_SetVar(g_iWorksLikeVarID,aplWeaponWorksLike[p->curr_weapon][snum],p->i,snum);
if (apScriptGameEvent[EVENT_FIRE]) if (VM_OnEvent(EVENT_FIRE, p->i, snum, -1, 0) == 0)
VM_OnEvent(EVENT_FIRE, p->i, snum, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
if (apScriptGameEvent[EVENT_FIREWEAPON]) // this event is deprecated if (apScriptGameEvent[EVENT_FIREWEAPON]) // this event is deprecated
VM_OnEvent(EVENT_FIREWEAPON, p->i, snum, -1); VM_OnEvent(EVENT_FIREWEAPON, p->i, snum, -1, 0);
switch (aplWeaponWorksLike[p->curr_weapon][snum]) switch (aplWeaponWorksLike[p->curr_weapon][snum])
{ {
@ -4500,7 +4420,7 @@ void P_ProcessInput(int32_t snum)
p->player_par++; p->player_par++;
VM_OnEvent(EVENT_PROCESSINPUT, p->i, snum, -1); VM_OnEvent(EVENT_PROCESSINPUT, p->i, snum, -1, 0);
if (p->cheat_phase > 0) sb_snum = 0; if (p->cheat_phase > 0) sb_snum = 0;
@ -4731,9 +4651,7 @@ void P_ProcessInput(int32_t snum)
if (TEST_SYNC_KEY(sb_snum, SK_LOOK_LEFT)) if (TEST_SYNC_KEY(sb_snum, SK_LOOK_LEFT))
{ {
// look_left // look_left
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_LOOKLEFT,p->i,snum, -1, 0) == 0)
VM_OnEvent(EVENT_LOOKLEFT,p->i,snum, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
p->look_ang -= 152; p->look_ang -= 152;
p->rotscrnang += 24; p->rotscrnang += 24;
@ -4743,9 +4661,7 @@ void P_ProcessInput(int32_t snum)
if (TEST_SYNC_KEY(sb_snum, SK_LOOK_RIGHT)) if (TEST_SYNC_KEY(sb_snum, SK_LOOK_RIGHT))
{ {
// look_right // look_right
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_LOOKRIGHT,p->i,snum, -1, 0) == 0)
VM_OnEvent(EVENT_LOOKRIGHT,p->i,snum, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
p->look_ang += 152; p->look_ang += 152;
p->rotscrnang -= 24; p->rotscrnang -= 24;
@ -4814,9 +4730,7 @@ void P_ProcessInput(int32_t snum)
if (TEST_SYNC_KEY(sb_snum, SK_JUMP)) if (TEST_SYNC_KEY(sb_snum, SK_JUMP))
{ {
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_SWIMUP,p->i,snum, -1, 0) == 0)
VM_OnEvent(EVENT_SWIMUP,p->i,snum, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
// jump // jump
if (p->vel.z > 0) p->vel.z = 0; if (p->vel.z > 0) p->vel.z = 0;
@ -4826,9 +4740,7 @@ void P_ProcessInput(int32_t snum)
} }
else if (TEST_SYNC_KEY(sb_snum, SK_CROUCH)) else if (TEST_SYNC_KEY(sb_snum, SK_CROUCH))
{ {
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_SWIMDOWN,p->i,snum, -1, 0) == 0)
VM_OnEvent(EVENT_SWIMDOWN,p->i,snum, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
// crouch // crouch
if (p->vel.z < 0) p->vel.z = 0; if (p->vel.z < 0) p->vel.z = 0;
@ -4904,9 +4816,7 @@ void P_ProcessInput(int32_t snum)
if (TEST_SYNC_KEY(sb_snum, SK_JUMP)) //A (soar high) if (TEST_SYNC_KEY(sb_snum, SK_JUMP)) //A (soar high)
{ {
// jump // jump
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_SOARUP,p->i,snum, -1, 0) == 0)
VM_OnEvent(EVENT_SOARUP,p->i,snum, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
p->pos.z -= j; p->pos.z -= j;
p->crack_time = 777; p->crack_time = 777;
@ -4916,9 +4826,7 @@ void P_ProcessInput(int32_t snum)
if (TEST_SYNC_KEY(sb_snum, SK_CROUCH)) //Z (soar low) if (TEST_SYNC_KEY(sb_snum, SK_CROUCH)) //Z (soar low)
{ {
// crouch // crouch
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_SOARDOWN,p->i,snum, -1, 0) == 0)
VM_OnEvent(EVENT_SOARDOWN,p->i,snum, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
p->pos.z += j; p->pos.z += j;
p->crack_time = 777; p->crack_time = 777;
@ -5101,9 +5009,7 @@ void P_ProcessInput(int32_t snum)
if (TEST_SYNC_KEY(sb_snum, SK_CROUCH)) if (TEST_SYNC_KEY(sb_snum, SK_CROUCH))
{ {
// crouching // crouching
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_CROUCH,p->i,snum, -1, 0) == 0)
VM_OnEvent(EVENT_CROUCH,p->i,snum, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
p->pos.z += (2048+768); p->pos.z += (2048+768);
p->crack_time = 777; p->crack_time = 777;
@ -5118,9 +5024,7 @@ void P_ProcessInput(int32_t snum)
if (p->jumping_counter == 0) if (p->jumping_counter == 0)
if ((fz-cz) > (56<<8)) if ((fz-cz) > (56<<8))
{ {
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_JUMP,p->i,snum, -1, 0) == 0)
VM_OnEvent(EVENT_JUMP,p->i,snum, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
p->jumping_counter = 1; p->jumping_counter = 1;
p->jumping_toggle = 1; p->jumping_toggle = 1;
@ -5226,22 +5130,22 @@ void P_ProcessInput(int32_t snum)
} }
if (g_player[snum].sync->extbits&(1)) if (g_player[snum].sync->extbits&(1))
VM_OnEvent(EVENT_MOVEFORWARD,p->i,snum, -1); VM_OnEvent(EVENT_MOVEFORWARD,p->i,snum, -1, 0);
if (g_player[snum].sync->extbits&(1<<1)) if (g_player[snum].sync->extbits&(1<<1))
VM_OnEvent(EVENT_MOVEBACKWARD,p->i,snum, -1); VM_OnEvent(EVENT_MOVEBACKWARD,p->i,snum, -1, 0);
if (g_player[snum].sync->extbits&(1<<2)) if (g_player[snum].sync->extbits&(1<<2))
VM_OnEvent(EVENT_STRAFELEFT,p->i,snum, -1); VM_OnEvent(EVENT_STRAFELEFT,p->i,snum, -1, 0);
if (g_player[snum].sync->extbits&(1<<3)) if (g_player[snum].sync->extbits&(1<<3))
VM_OnEvent(EVENT_STRAFERIGHT,p->i,snum, -1); VM_OnEvent(EVENT_STRAFERIGHT,p->i,snum, -1, 0);
if (g_player[snum].sync->extbits&(1<<4) || g_player[snum].sync->avel < 0) if (g_player[snum].sync->extbits&(1<<4) || g_player[snum].sync->avel < 0)
VM_OnEvent(EVENT_TURNLEFT,p->i,snum, -1); VM_OnEvent(EVENT_TURNLEFT,p->i,snum, -1, 0);
if (g_player[snum].sync->extbits&(1<<5) || g_player[snum].sync->avel > 0) if (g_player[snum].sync->extbits&(1<<5) || g_player[snum].sync->avel > 0)
VM_OnEvent(EVENT_TURNRIGHT,p->i,snum, -1); VM_OnEvent(EVENT_TURNRIGHT,p->i,snum, -1, 0);
if (p->vel.x || p->vel.y || g_player[snum].sync->fvel || g_player[snum].sync->svel) if (p->vel.x || p->vel.y || g_player[snum].sync->fvel || g_player[snum].sync->svel)
{ {
@ -5416,18 +5320,12 @@ HORIZONLY:
i = 0; i = 0;
if (TEST_SYNC_KEY(sb_snum, SK_CENTER_VIEW) || p->hard_landing) if (TEST_SYNC_KEY(sb_snum, SK_CENTER_VIEW) || p->hard_landing)
{ if (VM_OnEvent(EVENT_RETURNTOCENTER,p->i,snum, -1, 0) == 0)
aGameVars[g_iReturnVarID].val.lValue = 0;
VM_OnEvent(EVENT_RETURNTOCENTER,p->i,snum, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
p->return_to_center = 9; p->return_to_center = 9;
}
if (TEST_SYNC_KEY(sb_snum, SK_LOOK_UP)) if (TEST_SYNC_KEY(sb_snum, SK_LOOK_UP))
{ {
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_LOOKUP,p->i,snum, -1, 0) == 0)
VM_OnEvent(EVENT_LOOKUP,p->i,snum, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
p->return_to_center = 9; p->return_to_center = 9;
if (TEST_SYNC_KEY(sb_snum, SK_RUN)) p->horiz += 12; if (TEST_SYNC_KEY(sb_snum, SK_RUN)) p->horiz += 12;
@ -5438,9 +5336,7 @@ HORIZONLY:
if (TEST_SYNC_KEY(sb_snum, SK_LOOK_DOWN)) if (TEST_SYNC_KEY(sb_snum, SK_LOOK_DOWN))
{ {
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_LOOKDOWN,p->i,snum, -1, 0) == 0)
VM_OnEvent(EVENT_LOOKDOWN,p->i,snum, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
p->return_to_center = 9; p->return_to_center = 9;
if (TEST_SYNC_KEY(sb_snum, SK_RUN)) p->horiz -= 12; if (TEST_SYNC_KEY(sb_snum, SK_RUN)) p->horiz -= 12;
@ -5451,9 +5347,7 @@ HORIZONLY:
if (TEST_SYNC_KEY(sb_snum, SK_AIM_UP)) if (TEST_SYNC_KEY(sb_snum, SK_AIM_UP))
{ {
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_AIMUP,p->i,snum, -1, 0) == 0)
VM_OnEvent(EVENT_AIMUP,p->i,snum, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
if (TEST_SYNC_KEY(sb_snum, SK_RUN)) p->horiz += 6; if (TEST_SYNC_KEY(sb_snum, SK_RUN)) p->horiz += 6;
p->horiz += 6; p->horiz += 6;
@ -5463,9 +5357,7 @@ HORIZONLY:
if (TEST_SYNC_KEY(sb_snum, SK_AIM_DOWN)) if (TEST_SYNC_KEY(sb_snum, SK_AIM_DOWN))
{ {
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_AIMDOWN,p->i,snum, -1, 0) == 0)
VM_OnEvent(EVENT_AIMDOWN,p->i,snum, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
if (TEST_SYNC_KEY(sb_snum, SK_RUN)) p->horiz -= 6; if (TEST_SYNC_KEY(sb_snum, SK_RUN)) p->horiz -= 6;
p->horiz -= 6; p->horiz -= 6;

View file

@ -344,10 +344,7 @@ static void G_DoLoadScreen(char *statustext, int32_t percent)
if (ud.recstat != 2) if (ud.recstat != 2)
{ {
/*Gv_SetVar(g_iReturnVarID,LOADSCREEN, -1, -1);*/ j = VM_OnEvent(EVENT_GETLOADTILE, -1, myconnectindex, -1, LOADSCREEN);
aGameVars[g_iReturnVarID].val.lValue = LOADSCREEN;
VM_OnEvent(EVENT_GETLOADTILE, -1, myconnectindex, -1);
j = aGameVars[g_iReturnVarID].val.lValue;
//g_player[myconnectindex].ps->palette = palette; //g_player[myconnectindex].ps->palette = palette;
P_SetGamePalette(g_player[myconnectindex].ps, BASEPAL, 0 /*1*/); // JBF 20040308 P_SetGamePalette(g_player[myconnectindex].ps, BASEPAL, 0 /*1*/); // JBF 20040308
@ -396,7 +393,7 @@ static void G_DoLoadScreen(char *statustext, int32_t percent)
rotatesprite(158<<16,144<<16,65536,0,929,0,0,2+8+16,0,0,ii,ydim-1); rotatesprite(158<<16,144<<16,65536,0,929,0,0,2+8+16,0,0,ii,ydim-1);
} }
VM_OnEvent(EVENT_DISPLAYLOADINGSCREEN, g_player[screenpeek].ps->i, screenpeek, -1); VM_OnEvent(EVENT_DISPLAYLOADINGSCREEN, g_player[screenpeek].ps->i, screenpeek, -1, 0);
nextpage(); nextpage();
if (!statustext) if (!statustext)
@ -416,9 +413,7 @@ static void G_DoLoadScreen(char *statustext, int32_t percent)
} }
/*Gv_SetVar(g_iReturnVarID,LOADSCREEN, -1, -1);*/ /*Gv_SetVar(g_iReturnVarID,LOADSCREEN, -1, -1);*/
aGameVars[g_iReturnVarID].val.lValue = LOADSCREEN; j = VM_OnEvent(EVENT_GETLOADTILE, -1, myconnectindex, -1, LOADSCREEN);
VM_OnEvent(EVENT_GETLOADTILE, -1, myconnectindex, -1);
j = aGameVars[g_iReturnVarID].val.lValue;
if ((uint32_t)j < 2*MAXTILES) if ((uint32_t)j < 2*MAXTILES)
{ {
@ -433,7 +428,7 @@ static void G_DoLoadScreen(char *statustext, int32_t percent)
menutext(160,105,0,0,"Loading..."); menutext(160,105,0,0,"Loading...");
if (statustext) gametext(160,180,statustext,0,2+8+16); if (statustext) gametext(160,180,statustext,0,2+8+16);
VM_OnEvent(EVENT_DISPLAYLOADINGSCREEN, g_player[screenpeek].ps->i, screenpeek, -1); VM_OnEvent(EVENT_DISPLAYLOADINGSCREEN, g_player[screenpeek].ps->i, screenpeek, -1, 0);
nextpage(); nextpage();
} }
} }
@ -733,7 +728,7 @@ void P_ResetPlayer(int32_t snum)
g_player[snum].ps->movement_lock = 0; g_player[snum].ps->movement_lock = 0;
if (apScriptGameEvent[EVENT_RESETPLAYER]) if (apScriptGameEvent[EVENT_RESETPLAYER])
VM_OnEvent(EVENT_RESETPLAYER, g_player[snum].ps->i, snum, -1); VM_OnEvent(EVENT_RESETPLAYER, g_player[snum].ps->i, snum, -1, 0);
} }
void P_ResetStatus(int32_t snum) void P_ResetStatus(int32_t snum)
@ -843,7 +838,7 @@ void P_ResetStatus(int32_t snum)
p->frag_ps = snum; p->frag_ps = snum;
P_UpdateScreenPal(p); P_UpdateScreenPal(p);
VM_OnEvent(EVENT_RESETPLAYER, p->i, snum, -1); VM_OnEvent(EVENT_RESETPLAYER, p->i, snum, -1, 0);
} }
void P_ResetWeapons(int32_t snum) void P_ResetWeapons(int32_t snum)
@ -864,7 +859,7 @@ void P_ResetWeapons(int32_t snum)
p->show_empty_weapon= 0; p->show_empty_weapon= 0;
p->last_pissed_time = 0; p->last_pissed_time = 0;
p->holster_weapon = 0; p->holster_weapon = 0;
VM_OnEvent(EVENT_RESETWEAPONS, p->i, snum, -1); VM_OnEvent(EVENT_RESETWEAPONS, p->i, snum, -1, 0);
} }
void P_ResetInventory(int32_t snum) void P_ResetInventory(int32_t snum)
@ -881,7 +876,7 @@ void P_ResetInventory(int32_t snum)
p->inv_amount[GET_SHIELD] = g_startArmorAmount; p->inv_amount[GET_SHIELD] = g_startArmorAmount;
p->inven_icon = 0; p->inven_icon = 0;
VM_OnEvent(EVENT_RESETINVENTORY, p->i, snum, -1); VM_OnEvent(EVENT_RESETINVENTORY, p->i, snum, -1, 0);
} }
static void resetprestat(int32_t snum,int32_t g) static void resetprestat(int32_t snum,int32_t g)
@ -1166,7 +1161,7 @@ static inline void prelevel(char g)
nexti = nextspritestat[i]; nexti = nextspritestat[i];
A_ResetVars(i); A_ResetVars(i);
A_LoadActor(i); A_LoadActor(i);
VM_OnEvent(EVENT_LOADACTOR, i, -1, -1); VM_OnEvent(EVENT_LOADACTOR, i, -1, -1, 0);
if (sprite[i].lotag == -1 && (sprite[i].cstat&16)) if (sprite[i].lotag == -1 && (sprite[i].cstat&16))
{ {
g_player[0].ps->exitx = SX; g_player[0].ps->exitx = SX;
@ -1568,7 +1563,7 @@ void G_NewGame(int32_t vn,int32_t ln,int32_t sk)
display_mirror = 0; display_mirror = 0;
VM_OnEvent(EVENT_NEWGAME, g_player[screenpeek].ps->i, screenpeek, -1); VM_OnEvent(EVENT_NEWGAME, g_player[screenpeek].ps->i, screenpeek, -1, 0);
} }
static void resetpspritevars(char g) static void resetpspritevars(char g)
@ -2121,7 +2116,7 @@ int32_t G_EnterLevel(int32_t g)
// variables are set by pointer... // variables are set by pointer...
Bmemcpy(&currentboardfilename[0],&boardfilename[0],BMAX_PATH); Bmemcpy(&currentboardfilename[0],&boardfilename[0],BMAX_PATH);
VM_OnEvent(EVENT_ENTERLEVEL, -1, -1, -1); VM_OnEvent(EVENT_ENTERLEVEL, -1, -1, -1, 0);
OSD_Printf(OSDTEXT_YELLOW "E%dL%d: %s\n",ud.volume_number+1,ud.level_number+1, OSD_Printf(OSDTEXT_YELLOW "E%dL%d: %s\n",ud.volume_number+1,ud.level_number+1,
MapInfo[(ud.volume_number*MAXLEVELS)+ud.level_number].name); MapInfo[(ud.volume_number*MAXLEVELS)+ud.level_number].name);

View file

@ -2514,9 +2514,7 @@ void P_HandleSharedKeys(int32_t snum)
if (TEST_SYNC_KEY(sb_snum, SK_QUICK_KICK) && p->quick_kick == 0) if (TEST_SYNC_KEY(sb_snum, SK_QUICK_KICK) && p->quick_kick == 0)
if (p->curr_weapon != KNEE_WEAPON || p->kickback_pic == 0) if (p->curr_weapon != KNEE_WEAPON || p->kickback_pic == 0)
{ {
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_QUICKKICK,g_player[snum].ps->i,snum, -1, 0) == 0)
VM_OnEvent(EVENT_QUICKKICK,g_player[snum].ps->i,snum, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
p->quick_kick = 14; p->quick_kick = 14;
if (p->fta == 0 || p->ftq == 80) if (p->fta == 0 || p->ftq == 80)
@ -2560,9 +2558,7 @@ void P_HandleSharedKeys(int32_t snum)
if (TEST_SYNC_KEY(sb_snum, SK_INVENTORY) && p->newowner == -1) // inventory button generates event for selected item if (TEST_SYNC_KEY(sb_snum, SK_INVENTORY) && p->newowner == -1) // inventory button generates event for selected item
{ {
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_INVENTORY,g_player[snum].ps->i,snum, -1, 0) == 0)
VM_OnEvent(EVENT_INVENTORY,g_player[snum].ps->i,snum, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
switch (p->inven_icon) switch (p->inven_icon)
{ {
@ -2587,9 +2583,7 @@ void P_HandleSharedKeys(int32_t snum)
if (TEST_SYNC_KEY(sb_snum, SK_NIGHTVISION)) if (TEST_SYNC_KEY(sb_snum, SK_NIGHTVISION))
{ {
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_USENIGHTVISION,g_player[snum].ps->i,snum, -1, 0) == 0
VM_OnEvent(EVENT_USENIGHTVISION,g_player[snum].ps->i,snum, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0
&& p->inv_amount[GET_HEATS] > 0) && p->inv_amount[GET_HEATS] > 0)
{ {
p->heat_on = !p->heat_on; p->heat_on = !p->heat_on;
@ -2602,9 +2596,7 @@ void P_HandleSharedKeys(int32_t snum)
if (TEST_SYNC_KEY(sb_snum, SK_STEROIDS)) if (TEST_SYNC_KEY(sb_snum, SK_STEROIDS))
{ {
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_USESTEROIDS,g_player[snum].ps->i,snum, -1, 0) == 0)
VM_OnEvent(EVENT_USESTEROIDS,g_player[snum].ps->i,snum, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
if (p->inv_amount[GET_STEROIDS] == 400) if (p->inv_amount[GET_STEROIDS] == 400)
{ {
@ -2689,16 +2681,12 @@ CHECKINV1:
if (TEST_SYNC_KEY(sb_snum, SK_INV_LEFT)) // Inventory_Left if (TEST_SYNC_KEY(sb_snum, SK_INV_LEFT)) // Inventory_Left
{ {
/*Gv_SetVar(g_iReturnVarID,dainv,g_player[snum].ps->i,snum);*/ /*Gv_SetVar(g_iReturnVarID,dainv,g_player[snum].ps->i,snum);*/
aGameVars[g_iReturnVarID].val.lValue = dainv; dainv = VM_OnEvent(EVENT_INVENTORYLEFT,g_player[snum].ps->i,snum, -1, dainv);
VM_OnEvent(EVENT_INVENTORYLEFT,g_player[snum].ps->i,snum, -1);
dainv=aGameVars[g_iReturnVarID].val.lValue;
} }
else if (TEST_SYNC_KEY(sb_snum, SK_INV_RIGHT)) // Inventory_Right else if (TEST_SYNC_KEY(sb_snum, SK_INV_RIGHT)) // Inventory_Right
{ {
/*Gv_SetVar(g_iReturnVarID,dainv,g_player[snum].ps->i,snum);*/ /*Gv_SetVar(g_iReturnVarID,dainv,g_player[snum].ps->i,snum);*/
aGameVars[g_iReturnVarID].val.lValue = dainv; dainv = VM_OnEvent(EVENT_INVENTORYRIGHT,g_player[snum].ps->i,snum, -1, dainv);
VM_OnEvent(EVENT_INVENTORYRIGHT,g_player[snum].ps->i,snum, -1);
dainv=aGameVars[g_iReturnVarID].val.lValue;
} }
if (dainv >= 1) if (dainv >= 1)
@ -2724,13 +2712,13 @@ CHECKINV1:
case -1: case -1:
break; break;
default: default:
VM_OnEvent(EVENT_WEAPKEY1+j,p->i,snum, -1); VM_OnEvent(EVENT_WEAPKEY1+j,p->i,snum, -1, 0);
break; break;
case 10: case 10:
VM_OnEvent(EVENT_PREVIOUSWEAPON,p->i,snum, -1); VM_OnEvent(EVENT_PREVIOUSWEAPON,p->i,snum, -1, 0);
break; break;
case 11: case 11:
VM_OnEvent(EVENT_NEXTWEAPON,p->i,snum, -1); VM_OnEvent(EVENT_NEXTWEAPON,p->i,snum, -1, 0);
break; break;
} }
@ -2809,10 +2797,7 @@ CHECKINV1:
Gv_SetVar(g_iWorksLikeVarID,aplWeaponWorksLike[p->curr_weapon][snum],p->i,snum); Gv_SetVar(g_iWorksLikeVarID,aplWeaponWorksLike[p->curr_weapon][snum],p->i,snum);
Gv_SetVar(g_iWeaponVarID,j, p->i, snum); Gv_SetVar(g_iWeaponVarID,j, p->i, snum);
aGameVars[g_iReturnVarID].val.lValue = j; j = VM_OnEvent(EVENT_SELECTWEAPON,p->i,snum, -1, j);
VM_OnEvent(EVENT_SELECTWEAPON,p->i,snum, -1);
j = aGameVars[g_iReturnVarID].val.lValue;
if ((int32_t)j != -1 && j <= MAX_WEAPONS) if ((int32_t)j != -1 && j <= MAX_WEAPONS)
{ {
@ -2905,9 +2890,7 @@ CHECKINV1:
{ {
if (p->holoduke_on == -1) if (p->holoduke_on == -1)
{ {
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_HOLODUKEON,g_player[snum].ps->i,snum, -1, 0) == 0)
VM_OnEvent(EVENT_HOLODUKEON,g_player[snum].ps->i,snum, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
if (p->inv_amount[GET_HOLODUKE] > 0) if (p->inv_amount[GET_HOLODUKE] > 0)
{ {
@ -2929,9 +2912,7 @@ CHECKINV1:
} }
else else
{ {
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_HOLODUKEOFF,g_player[snum].ps->i,snum, -1, 0) == 0)
VM_OnEvent(EVENT_HOLODUKEOFF,g_player[snum].ps->i,snum, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
A_PlaySound(TELEPORTER,p->holoduke_on); A_PlaySound(TELEPORTER,p->holoduke_on);
p->holoduke_on = -1; p->holoduke_on = -1;
@ -2942,9 +2923,7 @@ CHECKINV1:
if (TEST_SYNC_KEY(sb_snum, SK_MEDKIT)) if (TEST_SYNC_KEY(sb_snum, SK_MEDKIT))
{ {
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_USEMEDKIT,g_player[snum].ps->i,snum, -1, 0) == 0)
VM_OnEvent(EVENT_USEMEDKIT,g_player[snum].ps->i,snum, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
if (p->inv_amount[GET_FIRSTAID] > 0 && sprite[p->i].extra < p->max_player_health) if (p->inv_amount[GET_FIRSTAID] > 0 && sprite[p->i].extra < p->max_player_health)
{ {
@ -2969,9 +2948,7 @@ CHECKINV1:
if (p->newowner == -1 && TEST_SYNC_KEY(sb_snum, SK_JETPACK)) if (p->newowner == -1 && TEST_SYNC_KEY(sb_snum, SK_JETPACK))
{ {
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_USEJETPACK,g_player[snum].ps->i,snum, -1, 0) == 0)
VM_OnEvent(EVENT_USEJETPACK,g_player[snum].ps->i,snum, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{ {
if (p->inv_amount[GET_JETPACK] > 0) if (p->inv_amount[GET_JETPACK] > 0)
{ {
@ -3004,14 +2981,8 @@ CHECKINV1:
} }
if (TEST_SYNC_KEY(sb_snum, SK_TURNAROUND) && p->one_eighty_count == 0) if (TEST_SYNC_KEY(sb_snum, SK_TURNAROUND) && p->one_eighty_count == 0)
{ if (VM_OnEvent(EVENT_TURNAROUND,p->i,snum, -1, 0) == 0)
aGameVars[g_iReturnVarID].val.lValue = 0;
VM_OnEvent(EVENT_TURNAROUND,p->i,snum, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0)
{
p->one_eighty_count = -1024; p->one_eighty_count = -1024;
}
}
} }
} }
@ -3116,9 +3087,7 @@ void P_CheckSectors(int32_t snum)
if (TEST_SYNC_KEY(g_player[snum].sync->bits, SK_OPEN)) if (TEST_SYNC_KEY(g_player[snum].sync->bits, SK_OPEN))
{ {
aGameVars[g_iReturnVarID].val.lValue = 0; if (VM_OnEvent(EVENT_USE, p->i, snum, -1, 0) != 0)
VM_OnEvent(EVENT_USE, p->i, snum, -1);
if (aGameVars[g_iReturnVarID].val.lValue != 0)
g_player[snum].sync->bits &= ~BIT(SK_OPEN); g_player[snum].sync->bits &= ~BIT(SK_OPEN);
} }

View file

@ -621,15 +621,13 @@ int32_t S_PlaySound(int32_t num)
int32_t A_PlaySound(uint32_t num, int32_t i) int32_t A_PlaySound(uint32_t num, int32_t i)
{ {
aGameVars[g_iReturnVarID].val.lValue = num;
if (apScriptGameEvent[EVENT_SOUND]) if (apScriptGameEvent[EVENT_SOUND])
VM_OnEvent(EVENT_SOUND, i, myconnectindex, -1); num = VM_OnEvent(EVENT_SOUND, i, myconnectindex, -1, num);
if ((unsigned)aGameVars[g_iReturnVarID].val.lValue > (unsigned)g_maxSoundPos) return -1; if ((unsigned)num > (unsigned)g_maxSoundPos) return -1;
return i < 0 ? S_PlaySound(aGameVars[g_iReturnVarID].val.lValue) : return i < 0 ? S_PlaySound(num) :
S_PlaySound3D(aGameVars[g_iReturnVarID].val.lValue, i, (vec3_t *)&sprite[i]); S_PlaySound3D(num, i, (vec3_t *)&sprite[i]);
} }
void S_StopEnvSound(int32_t num, int32_t i) void S_StopEnvSound(int32_t num, int32_t i)