mirror of
https://github.com/izzy2lost/Ghostship.git
synced 2026-06-19 01:17:03 -07:00
Move to event system
This commit is contained in:
@@ -25,6 +25,8 @@
|
||||
#include "types.h"
|
||||
#include "port/interpolation/FrameInterpolation.h"
|
||||
#include <ship/utils/binarytools/endianness.h>
|
||||
#include "port/hooks/impl/EventSystem.h"
|
||||
#include "port/hooks/list/EngineEvent.h"
|
||||
|
||||
#ifdef VERSION_EU
|
||||
#undef LANGUAGE_FUNCTION
|
||||
@@ -2302,8 +2304,11 @@ s16 render_pause_courses_and_castle(void) {
|
||||
render_pause_my_score_coins();
|
||||
render_pause_red_coins();
|
||||
|
||||
if (gMarioStates[0].action & ACT_FLAG_PAUSE_EXIT || CVarGetInteger("gPauseExitWhenever", 0)) {
|
||||
render_pause_course_options(99, 93, &gDialogLineNum, 15);
|
||||
bool canPause = gMarioStates[0].action & ACT_FLAG_PAUSE_EXIT;
|
||||
CALL_CANCELLABLE_EVENT(RenderPauseCourseOptions, &canPause) {
|
||||
if (canPause) {
|
||||
render_pause_course_options(99, 93, &gDialogLineNum, 15);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef VERSION_EU
|
||||
|
||||
@@ -2,4 +2,8 @@
|
||||
|
||||
#include "port/hooks/impl/EventSystem.h"
|
||||
|
||||
DEFINE_EVENT(GameFrameUpdate);
|
||||
DEFINE_EVENT(GameFrameUpdate);
|
||||
|
||||
DEFINE_EVENT(RenderPauseCourseOptions,
|
||||
bool* render;
|
||||
);
|
||||
@@ -2,12 +2,12 @@
|
||||
|
||||
#include "port/hooks/impl/EventSystem.h"
|
||||
|
||||
DEFINE_EVENT(PlayerHealthChange,
|
||||
DEFINE_EVENT(PlayerHealthChange,
|
||||
struct MarioState* m;
|
||||
s32 health;
|
||||
);
|
||||
|
||||
DEFINE_EVENT(PlayerLivesChange,
|
||||
DEFINE_EVENT(PlayerLivesChange,
|
||||
struct MarioState* m;
|
||||
s32 lives;
|
||||
);
|
||||
@@ -41,6 +41,15 @@ void OnHealthChange(IEvent* event) {
|
||||
event->cancelled = true;
|
||||
}
|
||||
|
||||
void OnRenderPauseCourseOptions(IEvent* event) {
|
||||
if (CVarGetInteger("gPauseExitWhenever", 0) == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
RenderPauseCourseOptions* ev = (RenderPauseCourseOptions*)event;
|
||||
*ev->render = true;
|
||||
}
|
||||
|
||||
void PatchSetupDList() {
|
||||
Gfx identity = gsSPMatrix(&matrix_patch_identity, G_MTX_PROJECTION | G_MTX_LOAD | G_MTX_NOPUSH);
|
||||
Gfx fullscreen = gsSPMatrix(&matrix_patch_fullscreen, G_MTX_PROJECTION | G_MTX_MUL | G_MTX_NOPUSH);
|
||||
@@ -87,6 +96,7 @@ void PortEnhancements_Init() {
|
||||
// Register event listeners
|
||||
REGISTER_LISTENER(PlayerHealthChange, OnHealthChange, EVENT_PRIORITY_NORMAL);
|
||||
REGISTER_LISTENER(PlayerLivesChange, OnLivesChange, EVENT_PRIORITY_NORMAL);
|
||||
REGISTER_LISTENER(RenderPauseCourseOptions, OnRenderPauseCourseOptions, EVENT_PRIORITY_NORMAL);
|
||||
}
|
||||
|
||||
void PortEnhancements_Register() {
|
||||
@@ -94,6 +104,7 @@ void PortEnhancements_Register() {
|
||||
REGISTER_EVENT(GameFrameUpdate);
|
||||
REGISTER_EVENT(PlayerHealthChange);
|
||||
REGISTER_EVENT(PlayerLivesChange);
|
||||
REGISTER_EVENT(RenderPauseCourseOptions);
|
||||
}
|
||||
|
||||
void PortEnhancements_Exit() {
|
||||
|
||||
Reference in New Issue
Block a user