diff --git a/source/duke3d/src/gameexec.cpp b/source/duke3d/src/gameexec.cpp index b0aa711d2..760066f52 100644 --- a/source/duke3d/src/gameexec.cpp +++ b/source/duke3d/src/gameexec.cpp @@ -158,8 +158,12 @@ static inline void VM_DummySprite(void) static FORCE_INLINE int32_t VM_EventInlineInternal__(int const &eventNum, int const &spriteNum, int const &playerNum, int const playerDist = -1, int32_t returnValue = 0) { - vmstate_t const newVMstate = { spriteNum, playerNum, playerDist, 0, &sprite[spriteNum], - &actor[spriteNum].t_data[0], g_player[playerNum].ps, &actor[spriteNum] }; + vmstate_t const newVMstate = { spriteNum, playerNum, playerDist, 0, + &sprite[spriteNum&(MAXSPRITES-1)], + &actor[spriteNum&(MAXSPRITES-1)].t_data[0], + g_player[playerNum&(MAXPLAYERS-1)].ps, + &actor[spriteNum&(MAXSPRITES-1)] }; + auto &globalReturn = aGameVars[g_returnVarID].global; struct