mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-11-11 07:11:39 +00:00
CON: Add EVENT_DISPLAYROOMSCAMERA and EVENT_DISPLAYSTART.
EVENT_DISPLAYROOMSCAMERA functions exactly like EVENT_DISPLAYROOMS, including RETURN values, but for the ud.camerasprite >= 0 case. EVENT_DISPLAYSTART is executed immediately after the screen background is cleared and drawn. Ensure its RETURN value is zero, because it is currently not being used. WARNING: Consult the devs before using EVENT_DISPLAYSTART. Its position in the display code sequence is not finalized. git-svn-id: https://svn.eduke32.com/eduke32@5047 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
ef28cac919
commit
f821434195
4 changed files with 29 additions and 12 deletions
|
@ -108,6 +108,8 @@ enum GameEvent_t {
|
||||||
EVENT_DISPLAYCURSOR,
|
EVENT_DISPLAYCURSOR,
|
||||||
EVENT_DISPLAYLEVELSTATS,
|
EVENT_DISPLAYLEVELSTATS,
|
||||||
EVENT_DISPLAYCAMERAOSD,
|
EVENT_DISPLAYCAMERAOSD,
|
||||||
|
EVENT_DISPLAYROOMSCAMERA,
|
||||||
|
EVENT_DISPLAYSTART,
|
||||||
#ifdef LUNATIC
|
#ifdef LUNATIC
|
||||||
EVENT_ANIMATEALLSPRITES,
|
EVENT_ANIMATEALLSPRITES,
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -4450,6 +4450,8 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio)
|
||||||
pub = 0;
|
pub = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VM_OnEvent(EVENT_DISPLAYSTART, p->i, snum);
|
||||||
|
|
||||||
if (ud.overhead_on == 2 || ud.show_help || (p->cursectnum == -1 && getrendermode() != REND_CLASSIC))
|
if (ud.overhead_on == 2 || ud.show_help || (p->cursectnum == -1 && getrendermode() != REND_CLASSIC))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -4459,7 +4461,7 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio)
|
||||||
setaspect_new();
|
setaspect_new();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ud.pause_on || g_player[snum].ps->on_crane > -1)
|
if (ud.pause_on || p->on_crane > -1)
|
||||||
smoothratio = 65536;
|
smoothratio = 65536;
|
||||||
else
|
else
|
||||||
smoothratio = calc_smoothratio(totalclock, ototalclock);
|
smoothratio = calc_smoothratio(totalclock, ototalclock);
|
||||||
|
@ -4484,6 +4486,15 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio)
|
||||||
|
|
||||||
CAMERA(ang) = actor[ud.camerasprite].tempang +
|
CAMERA(ang) = actor[ud.camerasprite].tempang +
|
||||||
mulscale16(((s->ang+1024-actor[ud.camerasprite].tempang)&2047)-1024, smoothratio);
|
mulscale16(((s->ang+1024-actor[ud.camerasprite].tempang)&2047)-1024, smoothratio);
|
||||||
|
|
||||||
|
dont_draw = VM_OnEvent(EVENT_DISPLAYROOMSCAMERA, p->i, snum);
|
||||||
|
|
||||||
|
if (dont_draw != 1) // event return values other than 0 and 1 are reserved
|
||||||
|
{
|
||||||
|
if (EDUKE32_PREDICT_FALSE(dont_draw != 0))
|
||||||
|
OSD_Printf(OSD_ERROR "ERROR: EVENT_DISPLAYROOMSCAMERA return value must be 0 or 1, "
|
||||||
|
"other values are reserved.\n");
|
||||||
|
|
||||||
#ifdef LEGACY_ROR
|
#ifdef LEGACY_ROR
|
||||||
G_SE40(smoothratio);
|
G_SE40(smoothratio);
|
||||||
#endif
|
#endif
|
||||||
|
@ -4497,6 +4508,7 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio)
|
||||||
G_DoSpriteAnimations(s->x,s->y,CAMERA(ang),smoothratio);
|
G_DoSpriteAnimations(s->x,s->y,CAMERA(ang),smoothratio);
|
||||||
drawmasks();
|
drawmasks();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int32_t j,fz,cz;
|
int32_t j,fz,cz;
|
||||||
|
@ -4737,10 +4749,9 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
dont_draw = 0;
|
|
||||||
// NOTE: might be rendering off-screen here, so CON commands that draw stuff
|
// NOTE: might be rendering off-screen here, so CON commands that draw stuff
|
||||||
// like showview must cope with that situation or bail out!
|
// like showview must cope with that situation or bail out!
|
||||||
dont_draw = VM_OnEvent(EVENT_DISPLAYROOMS, g_player[screenpeek].ps->i, screenpeek);
|
dont_draw = VM_OnEvent(EVENT_DISPLAYROOMS, p->i, snum);
|
||||||
|
|
||||||
CAMERA(horiz) = clamp(CAMERA(horiz), HORIZ_MIN, HORIZ_MAX);
|
CAMERA(horiz) = clamp(CAMERA(horiz), HORIZ_MIN, HORIZ_MAX);
|
||||||
|
|
||||||
|
|
|
@ -673,6 +673,8 @@ const char *EventNames[MAXEVENTS] =
|
||||||
"EVENT_DISPLAYCURSOR",
|
"EVENT_DISPLAYCURSOR",
|
||||||
"EVENT_DISPLAYLEVELSTATS",
|
"EVENT_DISPLAYLEVELSTATS",
|
||||||
"EVENT_DISPLAYCAMERAOSD",
|
"EVENT_DISPLAYCAMERAOSD",
|
||||||
|
"EVENT_DISPLAYROOMSCAMERA",
|
||||||
|
"EVENT_DISPLAYSTART",
|
||||||
#ifdef LUNATIC
|
#ifdef LUNATIC
|
||||||
"EVENT_ANIMATEALLSPRITES",
|
"EVENT_ANIMATEALLSPRITES",
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -180,11 +180,13 @@ EVENT = {
|
||||||
EVENT_DISPLAYCURSOR = 100,
|
EVENT_DISPLAYCURSOR = 100,
|
||||||
EVENT_DISPLAYLEVELSTATS = 101,
|
EVENT_DISPLAYLEVELSTATS = 101,
|
||||||
EVENT_DISPLAYCAMERAOSD = 102,
|
EVENT_DISPLAYCAMERAOSD = 102,
|
||||||
|
EVENT_DISPLAYROOMSCAMERA = 103,
|
||||||
|
EVENT_DISPLAYSTART = 104,
|
||||||
-- EVENT_ANIMATEALLSPRITES = previous+1, -- internal
|
-- EVENT_ANIMATEALLSPRITES = previous+1, -- internal
|
||||||
-- KEEPINSYNC with MAXEVENTS below
|
-- KEEPINSYNC with MAXEVENTS below
|
||||||
}
|
}
|
||||||
|
|
||||||
MAXEVENTS = 103 -- KEEPINSYNC with above EVENT_* list
|
MAXEVENTS = 105 -- KEEPINSYNC with above EVENT_* list
|
||||||
|
|
||||||
-- NOTE: negated values are not exported to the ffi.C namespace or CON.
|
-- NOTE: negated values are not exported to the ffi.C namespace or CON.
|
||||||
-- See TWEAK_SFLAG below.
|
-- See TWEAK_SFLAG below.
|
||||||
|
|
Loading…
Reference in a new issue