mirror of
https://github.com/DrBeef/Raze.git
synced 2025-01-18 23:21:43 +00:00
Minor tweaks to VM_OnEvent_(). DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4721 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
239d419d53
commit
4186c89aed
1 changed files with 14 additions and 15 deletions
|
@ -137,33 +137,32 @@ int32_t VM_OnEvent_(int32_t iEventID, int32_t iActor, int32_t iPlayer, int32_t l
|
||||||
if (ret == 1)
|
if (ret == 1)
|
||||||
VM_KillIt(iActor, iPlayer);
|
VM_KillIt(iActor, iPlayer);
|
||||||
#else
|
#else
|
||||||
intptr_t *oinsptr=insptr;
|
vmstate_t tempvm = { iActor, iPlayer, lDist, &actor[iActor].t_data[0], &sprite[iActor], 0 }, vm_backup = vm;
|
||||||
vmstate_t vm_backup;
|
|
||||||
|
|
||||||
static spritetype dummy_sprite;
|
|
||||||
static int32_t dummy_t[ARRAY_SIZE(actor[0].t_data)];
|
|
||||||
|
|
||||||
vmstate_t tempvm = { iActor, iPlayer, lDist,
|
|
||||||
iActor >= 0 ? &actor[iActor].t_data[0] : dummy_t,
|
|
||||||
iActor >= 0 ? &sprite[iActor] : &dummy_sprite,
|
|
||||||
0 };
|
|
||||||
|
|
||||||
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;
|
||||||
|
intptr_t *oinsptr=insptr;
|
||||||
|
|
||||||
|
if ((unsigned)iActor >= Numsprites)
|
||||||
|
{
|
||||||
|
static spritetype dummy_sprite;
|
||||||
|
static int32_t dummy_t[ARRAY_SIZE(actor[0].t_data)];
|
||||||
|
|
||||||
|
tempvm.g_sp = &dummy_sprite;
|
||||||
|
tempvm.g_t = dummy_t;
|
||||||
|
}
|
||||||
|
|
||||||
|
vm = tempvm;
|
||||||
|
|
||||||
aGameVars[g_iReturnVarID].val.lValue = iReturn;
|
aGameVars[g_iReturnVarID].val.lValue = iReturn;
|
||||||
g_currentEventExec = iEventID;
|
g_currentEventExec = iEventID;
|
||||||
insptr = apScriptGameEvent[iEventID];
|
insptr = apScriptGameEvent[iEventID];
|
||||||
|
|
||||||
Bmemcpy(&vm_backup, &vm, sizeof(vmstate_t));
|
|
||||||
Bmemcpy(&vm, &tempvm, sizeof(vmstate_t));
|
|
||||||
|
|
||||||
VM_Execute(1);
|
VM_Execute(1);
|
||||||
|
|
||||||
if (vm.g_flags & VM_KILL)
|
if (vm.g_flags & VM_KILL)
|
||||||
VM_KillIt(iActor, iPlayer);
|
VM_KillIt(iActor, iPlayer);
|
||||||
|
|
||||||
Bmemcpy(&vm, &vm_backup, sizeof(vmstate_t));
|
vm = vm_backup;
|
||||||
insptr = oinsptr;
|
insptr = oinsptr;
|
||||||
|
|
||||||
g_currentEventExec = backupEventExec;
|
g_currentEventExec = backupEventExec;
|
||||||
|
|
Loading…
Reference in a new issue