summaryrefslogtreecommitdiff
path: root/src/d/event/d_event_data.cpp
diff options
context:
space:
mode:
authorlepelog <25211966+lepelog@users.noreply.github.com>2022-06-15 22:37:02 +0200
committerlepelog <25211966+lepelog@users.noreply.github.com>2022-06-15 22:37:02 +0200
commitfaea8747414203590cda033d6a2edb0a3c52d3e9 (patch)
tree0170bd99802e50ccc397d48fd3dd95ace0249d19 /src/d/event/d_event_data.cpp
parent8945d46f0913ec203975ef08864f0dbd6ef6a371 (diff)
match dEvDt_Next_Stage
Diffstat (limited to 'src/d/event/d_event_data.cpp')
-rw-r--r--src/d/event/d_event_data.cpp30
1 files changed, 18 insertions, 12 deletions
diff --git a/src/d/event/d_event_data.cpp b/src/d/event/d_event_data.cpp
index b28ca2bd6b..0bf899fcaf 100644
--- a/src/d/event/d_event_data.cpp
+++ b/src/d/event/d_event_data.cpp
@@ -265,21 +265,26 @@ SECTION_SDATA2 static f32 lit_4265 = 15.0f;
SECTION_SDATA2 static f64 lit_4267 = 4503601774854144.0 /* cast s32 to float */;
/* 80043A14-80043D60 03E354 034C+00 1/1 0/0 0/0 .text dEvDt_Next_Stage__Fii */
-// bunch of issues with sclsInfo section. regalloc for the rest
-// TODO: try struct on stack
#ifdef NONMATCHING
+// matches besides floats
static int dEvDt_Next_Stage(int index, int wipe_type) {
char* stage;
s16 point;
+ int mode;
s8 roomNo;
s8 layer;
- u32 mode = 0; // uvar8 - retail
- s8 wipe = wipe_type; // ivar10
- int noVisit = true;
- int wipe_time = 0; // bvar9
- f32 speed = FLOAT_LABEL(lit_4264); // dvar12
- bool setHour = false; // bvar2
- f32 hour = speed; // set to 0.0f dvar13
+ s8 wipe;
+ s32 noVisit;
+ s32 wipe_time;
+ f32 hour;
+ f32 speed;
+ mode = 0; // uvar8 - retail
+ wipe = wipe_type; // ivar10
+ noVisit = true;
+ wipe_time = 0; // bvar9
+ hour = 0; // dvar12
+ bool setHour = false; // bvar2
+ speed = 0; // set to 0.0f dvar13
int* p_id = dComIfGp_evmng_getMyIntegerP(index, "ID");
if (p_id != NULL) {
@@ -296,9 +301,10 @@ static int dEvDt_Next_Stage(int index, int wipe_type) {
stage_scls_info_class* stgInfo = &info->mEntries[id];
stage = stgInfo->mStage;
point = stgInfo->mStart;
- roomNo = stgInfo->mRoom;
+ roomNo = (s8)stgInfo->mRoom;
+ int tmp; // might be fake idk
layer = dStage_sclsInfo_getSceneLayer(stgInfo);
- wipe = dStage_sclsInfo_getWipe(stgInfo);
+ wipe = (s8)dStage_sclsInfo_getWipe(stgInfo);
wipe_time = dStage_sclsInfo_getWipeTime(stgInfo);
if (wipe == 15) {
@@ -325,7 +331,7 @@ static int dEvDt_Next_Stage(int index, int wipe_type) {
int* roomP = dComIfGp_evmng_getMyIntegerP(index, "RoomNo");
if (roomP != NULL) {
- roomNo = *roomP;
+ roomNo = (s8)*roomP;
}
int* layerP = dComIfGp_evmng_getMyIntegerP(index, "Layer");