Realmatch dComIfGp_event_runCheck inline

dComIfGp_event_runCheck's return type being different from the inner inline runCheck's return type apparently causes the compiler to double up the g_dComIfG_gameInfo load in certain functions.

And also fix dComIfGp_event_chkEventFlag which had the same issue.
This commit is contained in:
LagoLunatic
2024-02-02 20:34:16 -05:00
parent b6c878a652
commit b46e897826
7 changed files with 15 additions and 31 deletions
+2 -2
View File
@@ -2490,7 +2490,7 @@ inline void dComIfGp_clearMesgAnimeTagInfo() {
* === EVENT ===
*/
inline BOOL dComIfGp_event_runCheck() {
inline bool dComIfGp_event_runCheck() {
return g_dComIfG_gameInfo.play.getEvent().runCheck();
}
@@ -2510,7 +2510,7 @@ inline void dComIfGp_event_offEventFlag(s16 flag) {
g_dComIfG_gameInfo.play.getEvent().offEventFlag(flag);
}
inline BOOL dComIfGp_event_chkEventFlag(s16 flag) {
inline u16 dComIfGp_event_chkEventFlag(s16 flag) {
return g_dComIfG_gameInfo.play.getEvent().chkEventFlag(flag);
}
+3 -5
View File
@@ -914,11 +914,9 @@ void daAgb_c::FlagsSend(u32 stage_type) {
if (dKyw_gbwind_use_check()) {
mFlags.field_0xb_6 = 1;
s16 r3;
// Fakematch: using the dComIfGp_event_runCheck inline breaks the match
// if (dComIfGp_event_runCheck() && (dComIfGp_evmng_startCheck("TACT_WINDOW2_SHIP") || dComIfGp_evmng_startCheck("TACT_WINDOW2"))) {
if (g_dComIfG_gameInfo.play.getEvent().runCheck() &&
(dComIfGp_evmng_startCheck("TACT_WINDOW2_SHIP") || dComIfGp_evmng_startCheck("TACT_WINDOW2")))
{
if (dComIfGp_event_runCheck() &&
(dComIfGp_evmng_startCheck("TACT_WINDOW2_SHIP") || dComIfGp_evmng_startCheck("TACT_WINDOW2"))
) {
r3 = field_0x658;
} else {
cXyz* wind_vec = dKyw_get_wind_vec();
+1 -3
View File
@@ -957,9 +957,7 @@ BOOL daNpc_kam_c::eventProc() {
}
int staffId = dComIfGp_evmng_getMyStaffId(l_staff_name);
// The dComIfGp_event_runCheck inline breaks the codegen here.
// if (dComIfGp_event_runCheck() && !checkCommandTalk()) {
if (g_dComIfG_gameInfo.play.getEvent().runCheck() && !checkCommandTalk()) {
if (dComIfGp_event_runCheck() && !checkCommandTalk()) {
if (staffId != -1) {
int actIdx = dComIfGp_evmng_getMyActIdx(staffId, cut_name_tbl, ARRAY_SIZE(cut_name_tbl), 1, 0);
if (actIdx == -1) {
+4 -6
View File
@@ -215,20 +215,18 @@ BOOL daObjZouk::Act_c::jokai_demo() {
/* 000012F0-00001510 .text _execute__Q29daObjZouk5Act_cFv */
bool daObjZouk::Act_c::_execute() {
fopAc_ac_c* actor = this;
set_mtx();
texture_scroll();
fopAcM_rollPlayerCrash(this, 288.0f, 0x0D);
if (!jokai_demo())
play_stop_joint_anime();
if (param_get_arg0() == 0) {
dBgS* bgsp = dComIfG_Bgsp();
if (dComIfGp_event_runCheck()) {
if (mBgBefore != NULL && mBgAfter != NULL) {
if (mBgAfter->ChkUsed())
bgsp->Release(mBgAfter);
dComIfG_Bgsp()->Release(mBgAfter);
if (!mBgBefore->ChkUsed()) {
bgsp->Regist(mBgBefore, actor);
dComIfG_Bgsp()->Regist(mBgBefore, this);
mBgBefore->SetCrrFunc(NULL);
mBgMode = 0;
}
@@ -239,8 +237,8 @@ bool daObjZouk::Act_c::_execute() {
} else {
if (mBgMode == 0 && dComIfGs_isCollect(0, 1) && mBgBefore != NULL && mBgAfter != NULL) {
if (mBgBefore->ChkUsed())
bgsp->Release(mBgBefore);
bgsp->Regist(mBgAfter, actor);
dComIfG_Bgsp()->Release(mBgBefore);
dComIfG_Bgsp()->Regist(mBgAfter, this);
mBgAfter->SetCrrFunc(NULL);
mBgMode = 1;
}
+3 -9
View File
@@ -3141,13 +3141,9 @@ BOOL daPy_lk_c::execute() {
offNoResetFlg1(daPyFlg1_EQUIP_DRAGON_SHIELD);
}
// Using the dComIfGp_event_runCheck inline breaks the match
// if (dComIfGp_event_runCheck()) {
if (g_dComIfG_gameInfo.play.getEvent().runCheck()) {
if (dComIfGp_event_runCheck()) {
mStaffIdx = dComIfGp_evmng_getMyStaffId("Link", this);
// Using the dComIfGp_event_chkEventFlag inline breaks the match
// if (mEvtInfo.checkCommandDoor() && !dComIfGp_event_chkEventFlag(0x4) && mHeldItemType == 0x101) {
if (mEvtInfo.checkCommandDoor() && !g_dComIfG_gameInfo.play.getEvent().chkEventFlag(0x4) && mHeldItemType == 0x101) {
if (mEvtInfo.checkCommandDoor() && !dComIfGp_event_chkEventFlag(0x4) && mHeldItemType == 0x101) {
fopAc_ac_c* equipActor = mActorKeepEquip.getActor();
if (equipActor) {
s16 angle = shape_angle.y + 0x8000;
@@ -3573,9 +3569,7 @@ BOOL daPy_lk_c::execute() {
offNoResetFlg1((daPy_FLG1)(daPyFlg1_NPC_CALL_COMMAND | daPyFlg1_VINE_CATCH));
// Using the dComIfGp_event_runCheck inline breaks the match
// if (dComIfGp_event_runCheck() || checkNoControll()) {
if (g_dComIfG_gameInfo.play.getEvent().runCheck() || checkNoControll()) {
if (dComIfGp_event_runCheck() || checkNoControll()) {
dComIfGp_setDoStatus(0);
dComIfGp_setRStatus(0);
} else {
+1 -3
View File
@@ -159,9 +159,7 @@ BOOL daPy_npc_c::initialRestartOption(s8 option, int save) {
/* 8015ABD8-8015AC74 .text checkNowPosMove__10daPy_npc_cFPCc */
BOOL daPy_npc_c::checkNowPosMove(const char* pName) {
// Using the dComIfGp_event_runCheck inline makes the codegen not match.
// if (!dComIfGp_event_runCheck()) {
if (!g_dComIfG_gameInfo.play.getEvent().runCheck()) {
if (!dComIfGp_event_runCheck()) {
return TRUE;
}
if (mEvtInfo.checkCommandTalk()) {
+1 -3
View File
@@ -1048,9 +1048,7 @@ void daRd_c::modeCryWait() {
onIkari();
setBtkAnm(3);
}
// The dComIfGp_event_runCheck inline breaks the codegen here.
// if (dComIfGp_event_runCheck()) {
if (g_dComIfG_gameInfo.play.getEvent().runCheck()) {
if (dComIfGp_event_runCheck()) {
mTimer1 = 60;
mTimer2 = 45;
} else if (isAnm(AnmPrm_WALK)) {