Remove fake matches, fix false equivalencies, and other small matches (#2837)

* Debug matches and remove fake matches

* Fix false equivalencies, regallocs, and vtable orders

* Fix PAL splits
This commit is contained in:
LagoLunatic
2025-11-21 00:17:51 -05:00
committed by GitHub
parent 6f7457a870
commit 91011befd7
41 changed files with 217 additions and 182 deletions
+12 -10
View File
@@ -11,13 +11,14 @@
#include "d/d_procname.h"
#include "d/d_s_play.h"
#include "SSystem/SComponent/c_math.h"
#include "f_op/f_op_actor_mng.h"
/* 8057CBD8-8057CC44 000078 006C+00 1/0 0/0 0/0 .text daObj_Fmobj_Draw__FP15obj_fmobj_class */
static int daObj_Fmobj_Draw(obj_fmobj_class* i_this) {
fopAc_ac_c* a_this = (fopAc_ac_c*)&i_this->mActor;
J3DModel* model_p = i_this->mpModel;
g_env_light.settingTevStruct(0x40, &a_this->current.pos, &a_this->tevStr);
g_env_light.settingTevStruct(0x40, &a_this->current.pos, &i_this->mActor.tevStr);
g_env_light.setLightTevColorType_MAJI(model_p, &a_this->tevStr);
mDoExt_modelUpdateDL(model_p);
return 1;
@@ -25,6 +26,7 @@ static int daObj_Fmobj_Draw(obj_fmobj_class* i_this) {
/* 8057CC44-8057CC84 0000E4 0040+00 1/0 0/0 0/0 .text daObj_Fmobj_Execute__FP15obj_fmobj_class */
static int daObj_Fmobj_Execute(obj_fmobj_class* i_this) {
fopAc_ac_c* actor = &i_this->mActor;
i_this->field_0x578++;
for (int i = 0; i < 2; i++) {
@@ -43,6 +45,8 @@ static int daObj_Fmobj_IsDelete(obj_fmobj_class* i_this) {
/* 8057CC8C-8057CCDC 00012C 0050+00 1/0 0/0 0/0 .text daObj_Fmobj_Delete__FP15obj_fmobj_class */
static int daObj_Fmobj_Delete(obj_fmobj_class* i_this) {
fopAc_ac_c* actor = &i_this->mActor;
fopAcM_RegisterDeleteID(i_this, "Obj_Fmobj");
dComIfG_resDelete(&i_this->mPhase, "Obj_Fmobj");
dComIfG_Bgsp().Release(i_this->mpBgW);
return 1;
@@ -53,6 +57,7 @@ static int useHeapInit(fopAc_ac_c* i_this) {
obj_fmobj_class* a_this = (obj_fmobj_class*)i_this;
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("Obj_Fmobj", 4);
JUT_ASSERT(213, modelData != NULL);
a_this->mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
if (a_this->mpModel == NULL) {
return 0;
@@ -63,8 +68,7 @@ static int useHeapInit(fopAc_ac_c* i_this) {
return 0;
}
cBgD_t* pdzb = (cBgD_t*)dComIfG_getObjectRes("Obj_Fmobj", 7);
if (a_this->mpBgW->Set(pdzb, cBgW::MOVE_BG_e, &a_this->mBgMtx) == 1) {
if (a_this->mpBgW->Set((cBgD_t*)dComIfG_getObjectRes("Obj_Fmobj", 7), cBgW::MOVE_BG_e, &a_this->mBgMtx) == 1) {
return 0;
}
@@ -74,13 +78,11 @@ static int useHeapInit(fopAc_ac_c* i_this) {
/* 8057CDE0-8057CF60 000280 0180+00 1/0 0/0 0/0 .text daObj_Fmobj_Create__FP10fopAc_ac_c
*/
static int daObj_Fmobj_Create(fopAc_ac_c* i_this_param) {
// Fake match - debug says i_this is fake
fopAc_ac_c* i_this = (fopAc_ac_c*)i_this_param;
obj_fmobj_class* a_this = (obj_fmobj_class*)i_this_param;
fopAcM_ct(i_this, obj_fmobj_class);
static int daObj_Fmobj_Create(fopAc_ac_c* i_this) {
obj_fmobj_class* a_this = (obj_fmobj_class*)i_this;
fopAcM_ct(&a_this->mActor, obj_fmobj_class);
int phase;
phase = dComIfG_resLoad(&a_this->mPhase, "Obj_Fmobj");
if (phase == cPhs_COMPLEATE_e) {
OS_REPORT("OBJ_FMOBJ PARAM %x\n", fopAcM_GetParam(i_this));
@@ -97,7 +99,7 @@ static int daObj_Fmobj_Create(fopAc_ac_c* i_this_param) {
}
OS_REPORT("//////////////OBJ_FMOBJ SET 2 !!\n");
if (dComIfG_Bgsp().Regist(a_this->mpBgW, i_this)) {
if (dComIfG_Bgsp().Regist(a_this->mpBgW, &a_this->mActor)) {
return cPhs_ERROR_e;
}