diff --git a/configure.py b/configure.py index 0462ec383..7c619e7b0 100644 --- a/configure.py +++ b/configure.py @@ -1252,7 +1252,7 @@ config.libs = [ ActorRel(NonMatching, "d_a_mtoge"), ActorRel(Matching, "d_a_obj_AjavW", extra_cflags=['-pragma "nosyminline on"']), ActorRel(Matching, "d_a_obj_Ygush00", extra_cflags=['-pragma "nosyminline on"']), - ActorRel(NonMatching, "d_a_obj_akabe"), + ActorRel(Matching, "d_a_obj_akabe"), ActorRel(NonMatching, "d_a_obj_barrel"), ActorRel(NonMatching, "d_a_obj_barrel2"), ActorRel(NonMatching, "d_a_obj_bscurtain"), diff --git a/include/d/actor/d_a_obj_akabe.h b/include/d/actor/d_a_obj_akabe.h index b6fe5f652..73a234a97 100644 --- a/include/d/actor/d_a_obj_akabe.h +++ b/include/d/actor/d_a_obj_akabe.h @@ -29,7 +29,7 @@ namespace daObjAkabe { s32 prm_get_arg0() const { return daObj::PrmAbstract(this, PRM_ARG0_W, PRM_ARG0_S); } s32 _create(); - bool create_heap(); + BOOL create_heap(); bool _delete(); void init_scale(); void init_mtx(); diff --git a/src/d/actor/d_a_obj_akabe.cpp b/src/d/actor/d_a_obj_akabe.cpp index 8f7df41ef..c6df28873 100644 --- a/src/d/actor/d_a_obj_akabe.cpp +++ b/src/d/actor/d_a_obj_akabe.cpp @@ -22,11 +22,11 @@ namespace daObjAkabe { /* 00000078-0000009C .text solidHeapCB__Q210daObjAkabe5Act_cFP10fopAc_ac_c */ BOOL Act_c::solidHeapCB(fopAc_ac_c* i_this) { - return ((Act_c*)i_this)->create_heap(); + return ((Act_c*)i_this)->create_heap() & 0xFF; // Fakematch } /* 0000009C-000001A4 .text create_heap__Q210daObjAkabe5Act_cFv */ - bool Act_c::create_heap() { + BOOL Act_c::create_heap() { bool rt = false; mpBgW = new dBgW(); @@ -38,10 +38,13 @@ namespace daObjAkabe { rt = true; } + // Fakematch: create_heap should have return type bool based on the clrlwi in solidHeapCB, + // but this part doesn't match unless the return variable and the return type are both BOOL. + BOOL ret = rt; if (!rt) mpBgW = NULL; - return rt; + return ret; } /* 000001A4-00000360 .text _create__Q210daObjAkabe5Act_cFv */