diff --git a/include/d/actor/d_a_obj_crvhahen.h b/include/d/actor/d_a_obj_crvhahen.h index 736b23f1622..17c484541e9 100644 --- a/include/d/actor/d_a_obj_crvhahen.h +++ b/include/d/actor/d_a_obj_crvhahen.h @@ -24,6 +24,8 @@ public: /* 80BD3B74 */ int Delete(); /* 80BD3C0C */ void setBaseMtx(); /* 80BD3DBC */ int create(); + + /* 80BD3338 */ inline int CreateHeap(); /* 0x568 */ cXyz field1_0x568[10]; /* 0x5e0 */ cXyz field2_0x5e0[10]; @@ -33,9 +35,8 @@ public: /* 0x748 */ u32 field_0x748; /* 0x74c */ float field7_0x74c; /* 0x750 */ char field8_0x750; -private: - /* 0x751 */ u8 field_0x751[0x788 - 0x751]; // padding -public: + /* 0x751 */ u8 field_0x751[0x760 - 0x751]; // padding + /* 0x760 */ J3DModel* mpModel[10]; /* 0x788 */ request_of_phase_process_class mPhase; /* 0x790 */ u8 field_0x790; /* 0x791 */ u8 field_0x791; diff --git a/src/d/actor/d_a_obj_crvhahen.cpp b/src/d/actor/d_a_obj_crvhahen.cpp index 7d8a83e2195..feec9d4fd18 100644 --- a/src/d/actor/d_a_obj_crvhahen.cpp +++ b/src/d/actor/d_a_obj_crvhahen.cpp @@ -89,27 +89,24 @@ SECTION_DEAD static char const* const stringBase_80BD4051 = "CaravanPiece.bmd"; /* 80BD4064-80BD4068 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */ SECTION_DATA static const char* l_arcName = "SrvFence"; -/* 80BD3338-80BD33E8 000078 00B0+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */ -static int useHeapInit(fopAc_ac_c* param_0) { - J3DModelData* modelData; - modelData = (J3DModelData*) dRes_control_c::getRes(l_arcName,"CaravanPiece.bmd", - g_dComIfG_gameInfo.mResControl.mObjectInfo, 0x80); +int daObjCRVHAHEN_c::CreateHeap() { + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName,"CaravanPiece.bmd"); - J3DModel* model; - int i = 0, j = 0; - for (; i < 10; i++) { - model = mDoExt_J3DModel__create(modelData, 0x20000, 0x11000084); - *(J3DModel**)(param_0 + j + 0x760) = model; - - if (*(int*)(param_0 + j + 0x760) == 0) { + for (int i = 0; i < 10; i++) { + mpModel[i] = mDoExt_J3DModel__create(modelData, 0x20000, 0x11000084); + if (mpModel[i] == NULL) { return 0; } - j = j + 4; } return 1; } +/* 80BD3338-80BD33E8 000078 00B0+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */ +static int useHeapInit(fopAc_ac_c* i_this) { + return ((daObjCRVHAHEN_c*)i_this)->CreateHeap(); +} + /* 80BD33E8-80BD3408 000128 0020+00 1/0 0/0 0/0 .text daObjCRVHAHEN_Create__FP10fopAc_ac_c */ static void daObjCRVHAHEN_Create(fopAc_ac_c* i_this) { static_cast(i_this)->create();