mirror of
https://github.com/DrBeef/Raze.git
synced 2025-01-18 15:11:51 +00:00
Lunatic: cancel logo on EVENT_LOGO error, fix CON mulscale and writable gv.
git-svn-id: https://svn.eduke32.com/eduke32@3593 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
95b1a2a791
commit
3e4a0dadf5
6 changed files with 24 additions and 3 deletions
|
@ -9512,8 +9512,10 @@ static void G_DisplayLogo(void)
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef LUNATIC
|
||||
g_elEventError = 0;
|
||||
#endif
|
||||
VM_OnEvent(EVENT_LOGO, -1, screenpeek, -1, 0);
|
||||
|
||||
G_HandleAsync();
|
||||
|
||||
if (g_restorePalette)
|
||||
|
@ -9521,6 +9523,10 @@ static void G_DisplayLogo(void)
|
|||
P_SetGamePalette(g_player[myconnectindex].ps,g_player[myconnectindex].ps->palette,0);
|
||||
g_restorePalette = 0;
|
||||
}
|
||||
#ifdef LUNATIC
|
||||
if (g_elEventError)
|
||||
break;
|
||||
#endif
|
||||
nextpage();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1596,6 +1596,13 @@ function _startlevel(volume, level)
|
|||
end
|
||||
|
||||
function _setaspect(viewingrange, yxaspect)
|
||||
if (viewingrange==0) then
|
||||
error('invalid argument #1: must be nonzero', 2)
|
||||
end
|
||||
if (yxaspect==0) then
|
||||
error('invalid argument #2: must be nonzero', 2)
|
||||
end
|
||||
|
||||
-- XXX: surely not all values are sane
|
||||
ffiC.setaspect(viewingrange, yxaspect)
|
||||
end
|
||||
|
|
|
@ -949,6 +949,7 @@ local weaponaccess_mt = {
|
|||
return ffiC.g_playerWeapon[wa._p][key]
|
||||
end
|
||||
|
||||
-- TODO: use bcarray?
|
||||
return ffiC.g_playerWeapon[wa._p][ffiC[key.."_WEAPON"]]
|
||||
end,
|
||||
}
|
||||
|
@ -1576,7 +1577,8 @@ local tmpmt = {
|
|||
end,
|
||||
|
||||
__newindex = function(gv, key, val)
|
||||
if (key=="g_logoFlags") then
|
||||
if (gv_access[key] == nil) then
|
||||
-- Read-only vars handled by LuaJIT.
|
||||
ffiC[key] = val
|
||||
else
|
||||
error("write access forbidden", 2)
|
||||
|
|
|
@ -1846,7 +1846,7 @@ local Cinner = {
|
|||
cos = cmd(W,R)
|
||||
/ "%1=_xmath.kcos(%2)",
|
||||
mulscale = cmd(W,R,R,R)
|
||||
/ "%1=_gv.Mulscale(%1,%2,%3)",
|
||||
/ "%1=_gv.Mulscale(%2,%3,%4)",
|
||||
getangle = cmd(W,R,R)
|
||||
/ "%1=_gv.getangle(%2,%3)",
|
||||
getincangle = cmd(W,R,R)
|
||||
|
|
|
@ -23,6 +23,9 @@ uint8_t g_elEvents[MAXEVENTS];
|
|||
// same thing for actors:
|
||||
el_actor_t g_elActors[MAXTILES];
|
||||
|
||||
// Set to 1 on error in event.
|
||||
int32_t g_elEventError;
|
||||
|
||||
int32_t g_elCallDepth = 0;
|
||||
int32_t g_elEventRETURN;
|
||||
|
||||
|
@ -496,6 +499,7 @@ int32_t El_CallEvent(L_State *estate, int32_t eventidx, int32_t iActor, int32_t
|
|||
|
||||
if (i != 0)
|
||||
{
|
||||
g_elEventError = 1;
|
||||
g_eventIdx = eventidx;
|
||||
return L_HandleError(L, i, &El_EventErrorPrint);
|
||||
}
|
||||
|
|
|
@ -22,6 +22,8 @@ typedef struct
|
|||
extern uint8_t g_elEvents[MAXEVENTS]; // shouldn't be used directly
|
||||
extern el_actor_t g_elActors[MAXTILES];
|
||||
|
||||
extern int32_t g_elEventError;
|
||||
|
||||
extern uint32_t g_eventCalls[MAXEVENTS], g_actorCalls[MAXTILES];
|
||||
extern double g_eventTotalMs[MAXEVENTS], g_actorTotalMs[MAXTILES], g_actorMinMs[MAXTILES], g_actorMaxMs[MAXTILES];
|
||||
|
||||
|
|
Loading…
Reference in a new issue