diff --git a/config/GZ2E01/rels/d_a_obj_bemos/symbols.txt b/config/GZ2E01/rels/d_a_obj_bemos/symbols.txt index b86ab75819a..435946cbbb0 100644 --- a/config/GZ2E01/rels/d_a_obj_bemos/symbols.txt +++ b/config/GZ2E01/rels/d_a_obj_bemos/symbols.txt @@ -57,7 +57,7 @@ initActionDead__9daObjBm_cFv = .text:0x0000420C; // type:function size:0x274 sco actionDead__9daObjBm_cFv = .text:0x00004480; // type:function size:0x3B0 scope:global Draw__9daObjBm_cFv = .text:0x00004830; // type:function size:0x1DC scope:global Delete__9daObjBm_cFv = .text:0x00004A0C; // type:function size:0x22C scope:global -daObjBm_create1st__FP9daObjBm_c = .text:0x00004C38; // type:function size:0x1C0 scope:global +daObjBm_create1st__FP9daObjBm_c = .text:0x00004C38; // type:function size:0x1C0 scope:local __dt__8dCcD_CylFv = .text:0x00004DF8; // type:function size:0xCC scope:global __ct__8dCcD_CylFv = .text:0x00004EC4; // type:function size:0x84 scope:global __dt__8cM3dGCylFv = .text:0x00004F48; // type:function size:0x48 scope:global @@ -66,9 +66,9 @@ __dt__8cM3dGAabFv = .text:0x00004FD8; // type:function size:0x48 scope:global __dt__10dCcD_GSttsFv = .text:0x00005020; // type:function size:0x5C scope:global __dt__12dBgS_AcchCirFv = .text:0x0000507C; // type:function size:0x70 scope:global __dt__12dBgS_ObjAcchFv = .text:0x000050EC; // type:function size:0x70 scope:global -daObjBm_MoveBGDelete__FP9daObjBm_c = .text:0x0000515C; // type:function size:0x20 scope:global -daObjBm_MoveBGExecute__FP9daObjBm_c = .text:0x0000517C; // type:function size:0x20 scope:global -daObjBm_MoveBGDraw__FP9daObjBm_c = .text:0x0000519C; // type:function size:0x2C scope:global +daObjBm_MoveBGDelete__FP9daObjBm_c = .text:0x0000515C; // type:function size:0x20 scope:local +daObjBm_MoveBGExecute__FP9daObjBm_c = .text:0x0000517C; // type:function size:0x20 scope:local +daObjBm_MoveBGDraw__FP9daObjBm_c = .text:0x0000519C; // type:function size:0x2C scope:local __dt__10cCcD_GSttsFv = .text:0x000051C8; // type:function size:0x48 scope:global cLib_calcTimer__FPUs = .text:0x00005210; // type:function size:0x1C scope:global cLib_calcTimer__FPUc = .text:0x0000522C; // type:function size:0x1C scope:global diff --git a/configure.py b/configure.py index df71a226031..9819b6bc93f 100755 --- a/configure.py +++ b/configure.py @@ -1932,7 +1932,7 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_batta"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_bbox"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_bed"), - ActorRel(Equivalent, "d_a_obj_bemos"), # .rodata incorrect order / missing data + ActorRel(MatchingFor("GZ2E01"), "d_a_obj_bemos"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_bhbridge"), # vtable order ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_bk_leaf"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_bky_rock"), diff --git a/src/d/actor/d_a_obj_bemos.cpp b/src/d/actor/d_a_obj_bemos.cpp index 7b5bbbde4e1..3124c8ca261 100644 --- a/src/d/actor/d_a_obj_bemos.cpp +++ b/src/d/actor/d_a_obj_bemos.cpp @@ -10,9 +10,11 @@ #include "d/d_camera.h" #include "d/d_cc_d.h" #include "d/d_com_inf_game.h" +#if DEBUG #include "d/d_debug_viewer.h" +#endif #include "d/d_s_play.h" -#include "dol2asm.h" +#include "Z2AudioLib/Z2Instances.h" /* ############################################################################################## */ /* 80BB37B8-80BB37C4 000000 000C+00 13/13 0/0 0/0 .rodata l_eye_offset */ @@ -165,7 +167,6 @@ fopAc_ac_c* daObjBm_c::PPCallBack(fopAc_ac_c* i_bgActor, fopAc_ac_c* i_actorP, s } /* 80BAE4A8-80BAE5FC 000228 0154+00 1/1 0/0 0/0 .text nodeCallBack__FP8J3DJointi */ -// NONMATCHING static int nodeCallBack(J3DJoint* i_joint, int param_2) { if (param_2 == 0) { int jnt_no = i_joint->getJntNo(); @@ -692,7 +693,6 @@ void daObjBm_c::calcBeamPos() { } /* 80BAFC08-80BAFF60 001988 0358+00 1/1 0/0 0/0 .text calcBeamLenAndAt__9daObjBm_cFv */ -// NONMATCHING void daObjBm_c::calcBeamLenAndAt() { cXyz cStack_50 = field_0xfcc - field_0xfb8; cXyz cStack_5c(field_0xfb8); @@ -732,7 +732,6 @@ void daObjBm_c::calcBeamLenAndAt() { } /* 80BAFFA8-80BB0104 001D28 015C+00 1/1 0/0 0/0 .text checkFindPlayer__9daObjBm_cFv */ -// NONMATCHING s8 daObjBm_c::checkFindPlayer() { daPy_py_c* player = daPy_getPlayerActorClass(); f32 searchDistance = getSearchDistance(); @@ -777,7 +776,6 @@ s8 daObjBm_c::checkFindPlayer() { } /* 80BB0104-80BB0260 001E84 015C+00 1/1 0/0 0/0 .text checkSearchPlayer__9daObjBm_cFv */ -// NONMATCHING s8 daObjBm_c::checkSearchPlayer() { daPy_py_c* player = daPy_getPlayerActorClass(); f32 searchDistance = getSearchDistance(); @@ -1144,6 +1142,10 @@ const daObjBm_c::BgcSrc_c daObjBm_c::Bgc_c::M_lin20[] = { {-0.75f, 0.25f, 0.0f, 0.0f}, {-0.75f, -0.25f, 0.0f, 0.0f}, }; +static f32 dummy_rodata_5157() { + return -1000000000.0f; +} + /* 80BB3F9C-80BB4728 0000BC 078C+00 1/2 0/0 0/0 .bss M_gnd_work__Q29daObjBm_c5Bgc_c */ dBgS_ObjGndChk daObjBm_c::Bgc_c::M_gnd_work[23]; @@ -1153,9 +1155,13 @@ dBgS_WtrChk daObjBm_c::Bgc_c::M_wrt_work; /* 80BB4794-80BB51A4 0008B4 0A10+00 2/3 0/0 0/0 .bss M_wall_work__Q29daObjBm_c5Bgc_c */ dBgS_ObjLinChk daObjBm_c::Bgc_c::M_wall_work[23]; +static f32 dummy_rodata_5158() { + // needed for correct rodata ordering: + return 200.0f; +} + /* 80BB0ED4-80BB1154 002C54 0280+00 1/1 0/0 0/0 .text * wall_pos__Q29daObjBm_c5Bgc_cFPC10fopAc_ac_cPCQ29daObjBm_c8BgcSrc_cisf */ -// NONMATCHING - copied from d_a_obj_movebox void daObjBm_c::Bgc_c::wall_pos(fopAc_ac_c const* i_actor, daObjBm_c::BgcSrc_c const* i_bgcSrc, int i_num, s16 param_3, f32 param_4) { const s16 sp8C = i_actor->home.angle.y + param_3; @@ -1382,6 +1388,10 @@ void daObjBm_c::actionFindPlayer() { } } +static f32 dummy_rodata_5299() { + return 110.0f; +} + /* 80BB1960-80BB1BD0 0036E0 0270+00 1/1 0/0 0/0 .text initActionAttack__9daObjBm_cFv */ void daObjBm_c::initActionAttack() { static u16 const l_eff_id[2] = { @@ -2000,3 +2010,9 @@ extern actor_process_profile_definition g_profile_Obj_Bemos = { fopAc_ACTOR_e, // mActorType fopAc_CULLBOX_CUSTOM_e, // cullType }; + +static void dummy_touch_work() { + static dBgS_ObjLinChk touch_work; +} + +AUDIO_INSTANCES;