d_a_obj_grz_rock and d_a_obj_h_saku matching (#2749)

* matching

* h_saku initial work

* h_saku matching

* PR cleanup

* fixed header padding
This commit is contained in:
Carco_21 2025-10-22 21:38:51 -04:00 committed by GitHub
parent 8074d91ff1
commit d6711a18c8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 465 additions and 817 deletions

View File

@ -2023,8 +2023,8 @@ config.libs = [
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_gra_rock"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_grave_stone"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_groundwater"),
ActorRel(NonMatching, "d_a_obj_grz_rock"),
ActorRel(NonMatching, "d_a_obj_h_saku"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_grz_rock"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_h_saku"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_hakai_brl"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_hakai_ftr"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_hasu2"),

View File

@ -1,7 +1,8 @@
#ifndef D_A_OBJ_GRZ_ROCK_H
#define D_A_OBJ_GRZ_ROCK_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_bg_s_acch.h"
#include "d/d_bg_s_movebg_actor.h"
/**
* @ingroup actors-objects
@ -10,26 +11,31 @@
*
* @details
*
*/
class daObjGrzRock_c : public fopAc_ac_c {
*/
class daObjGrzRock_c : public dBgS_MoveBgActor {
public:
/* 80C14BD8 */ void setBaseMtx();
/* 80C14C54 */ void setEnvTevColor();
/* 80C14CB0 */ void setRoomNo();
/* 80C14CF0 */ void setPrtcl();
/* 80C14DA0 */ void Create();
/* 80C14EE0 */ void CreateHeap();
/* 80C14F50 */ void create();
/* 80C1514C */ void Execute(Mtx**);
/* 80C151A4 */ void Draw();
/* 80C15248 */ void Delete();
/* 80C14DA0 */ int Create();
/* 80C14EE0 */ int CreateHeap();
/* 80C14F50 */ cPhs__Step create();
/* 80C1514C */ int Execute(Mtx**);
/* 80C151A4 */ int Draw();
/* 80C15248 */ int Delete();
void setSmashFlag(u8 i_smashFlag) { mSmashFlag = i_smashFlag; }
private:
/* 0x568 */ u8 field_0x568[0x801 - 0x568];
/* 0x568 */ request_of_phase_process_class mPhase[1];
/* 0x5A0 */ J3DModel* mpModel;
/* 0x5AC */ dBgS_ObjAcch mBgc;
/* 0x784 */ dBgS_AcchCir mAcchCir;
/* 0x7C4 */ cBgS_GndChk mGndChk;
/* 0x800 */ u8 field_0x800;
/* 0x801 */ u8 mSmashFlag;
/* 0x802 */ u8 field_0x802[0x804 - 0x802];
};
STATIC_ASSERT(sizeof(daObjGrzRock_c) == 0x804);

View File

@ -1,6 +1,9 @@
#ifndef D_A_OBJ_H_SAKU_H
#define D_A_OBJ_H_SAKU_H
#include "d/d_bg_s_acch.h"
#include "d/d_bg_s_movebg_actor.h"
#include "d/d_cc_d.h"
#include "f_op/f_op_actor_mng.h"
/**
@ -10,23 +13,42 @@
*
* @details
*
*/
class daObjH_Saku_c : public fopAc_ac_c {
*/
class daObjH_Saku_c : public dBgS_MoveBgActor {
public:
/* 80C1552C */ void BreakSet();
/* 80C15810 */ void SpeedSet(cXyz*, cXyz*, f32);
/* 80C15810 */ u8 SpeedSet(cXyz*, cXyz*, f32);
/* 80C15A4C */ void Action();
/* 80C15E00 */ void initBaseMtx();
/* 80C15E44 */ void setBaseMtx();
/* 80C161E8 */ void CreateHeap();
/* 80C1629C */ void Create();
/* 80C162F4 */ void Execute(Mtx**);
/* 80C16340 */ void Draw();
/* 80C1641C */ void Delete();
/* 80C161E8 */ inline int CreateHeap();
/* 80C1629C */ inline int Create();
/* 80C162F4 */ inline int Execute(Mtx**);
/* 80C16340 */ inline int Draw();
/* 80C1641C */ inline int Delete();
inline cPhs__Step create();
/* 0x568 */ u8 field_0x568[0x5e0 - 0x568];
/* 0x5A0 */ u8 field_0x5a0;
/* 0x5A1 */ u8 field_0x5a1;
/* 0x5A4 */ cXyz field_0x5a4;
/* 0x5B0 */ cXyz field_0x5b0;
/* 0x5BC */ csXyz field_0x5bc;
/* 0x5C4 */ f32 field_0x5c4;
/* 0x5C8 */ s16 field_0x5c8;
/* 0x5CA */ csXyz field_0x5ca;
/* 0x5D0 */ csXyz field_0x5d0;
/* 0x5D6 */ csXyz field_0x5d6;
/* 0x5DC */ u8 field_0x5dc;
/* 0x5DD */ u8 field_0x5dd;
/* 0x5DE */ u8 field_0x5de;
/* 0x5E0 */ cXyz field_0x5e0;
/* 0x5EC */ u8 field_0x5ec[0x850 - 0x5ec];
/* 0x5EC */ dCcD_Stts mStts;
/* 0x628 */ J3DModel* field_0x628;
/* 0x62C */ J3DModel* field_0x62c;
/* 0x630 */ request_of_phase_process_class mPhase;
/* 0x638 */ dBgS_AcchCir mAcchCir;
/* 0x678 */ dBgS_ObjAcch mBgc;
};
STATIC_ASSERT(sizeof(daObjH_Saku_c) == 0x850);

View File

@ -6,169 +6,176 @@
#include "d/dolzel_rel.h" // IWYU pragma: keep
#include "d/actor/d_a_obj_grz_rock.h"
#include "dol2asm.h"
//
// Forward References:
//
extern "C" void setBaseMtx__14daObjGrzRock_cFv();
extern "C" void setEnvTevColor__14daObjGrzRock_cFv();
extern "C" void setRoomNo__14daObjGrzRock_cFv();
extern "C" void setPrtcl__14daObjGrzRock_cFv();
extern "C" void Create__14daObjGrzRock_cFv();
extern "C" void CreateHeap__14daObjGrzRock_cFv();
extern "C" void create__14daObjGrzRock_cFv();
extern "C" void __dt__12dBgS_ObjAcchFv();
extern "C" void Execute__14daObjGrzRock_cFPPA3_A4_f();
extern "C" void Draw__14daObjGrzRock_cFv();
extern "C" void Delete__14daObjGrzRock_cFv();
extern "C" static void daObjGrzRock_Draw__FP14daObjGrzRock_c();
extern "C" static void daObjGrzRock_Execute__FP14daObjGrzRock_c();
extern "C" static bool daObjGrzRock_IsDelete__FP14daObjGrzRock_c();
extern "C" static void daObjGrzRock_Delete__FP14daObjGrzRock_c();
extern "C" static void daObjGrzRock_create__FP10fopAc_ac_c();
extern "C" static void func_80C15348();
extern "C" static void func_80C15350();
extern "C" extern char const* const d_a_obj_grz_rock__stringBase0;
//
// External References:
//
extern "C" void mDoMtx_ZXYrotM__FPA4_fsss();
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
extern "C" void fopAcM_delete__FP10fopAc_ac_c();
extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff();
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
extern "C" void isSwitch__10dSv_info_cCFii();
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
extern "C" void getObjectResName2Index__14dRes_control_cFPCcPCc();
extern "C" void
set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
extern "C" void Release__4cBgSFP9dBgW_Base();
extern "C" void GetPolyColor__4dBgSFRC13cBgS_PolyInfo();
extern "C" void GetRoomId__4dBgSFRC13cBgS_PolyInfo();
extern "C" void dBgS_MoveBGProc_TypicalRotY__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz();
extern "C" void __ct__12dBgS_AcchCirFv();
extern "C" void SetWall__12dBgS_AcchCirFff();
extern "C" void __dt__9dBgS_AcchFv();
extern "C" void __ct__9dBgS_AcchFv();
extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz();
extern "C" void CrrPos__9dBgS_AcchFR4dBgS();
extern "C" void __ct__16dBgS_MoveBgActorFv();
extern "C" bool IsDelete__16dBgS_MoveBgActorFv();
extern "C" bool ToFore__16dBgS_MoveBgActorFv();
extern "C" bool ToBack__16dBgS_MoveBgActorFv();
extern "C" void
MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f();
extern "C" void MoveBGDelete__16dBgS_MoveBgActorFv();
extern "C" void MoveBGExecute__16dBgS_MoveBgActorFv();
extern "C" void SetObj__16dBgS_PolyPassChkFv();
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
extern "C" void __ct__11cBgS_GndChkFv();
extern "C" void ChkUsed__9cBgW_BgIdCFv();
extern "C" void __dl__FPv();
extern "C" void _savegpr_26();
extern "C" void _savegpr_29();
extern "C" void _restgpr_26();
extern "C" void _restgpr_29();
extern "C" u8 now__14mDoMtx_stack_c[48];
//
// Declarations:
//
/* 80C14BD8-80C14C54 000078 007C+00 2/2 0/0 0/0 .text setBaseMtx__14daObjGrzRock_cFv */
void daObjGrzRock_c::setBaseMtx() {
// NONMATCHING
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, shape_angle.z);
mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
MTXCopy(mDoMtx_stack_c::get(), mBgMtx);
}
/* 80C14C54-80C14CB0 0000F4 005C+00 1/1 0/0 0/0 .text setEnvTevColor__14daObjGrzRock_cFv
*/
/* 80C14C54-80C14CB0 0000F4 005C+00 1/1 0/0 0/0 .text setEnvTevColor__14daObjGrzRock_cFv */
void daObjGrzRock_c::setEnvTevColor() {
// NONMATCHING
tevStr.YukaCol = dComIfG_Bgsp().GetPolyColor(mGndChk);
tevStr.room_no = dComIfG_Bgsp().GetRoomId(mGndChk);
}
/* 80C14CB0-80C14CF0 000150 0040+00 1/1 0/0 0/0 .text setRoomNo__14daObjGrzRock_cFv */
void daObjGrzRock_c::setRoomNo() {
// NONMATCHING
fopAcM_SetRoomNo(this, dComIfG_Bgsp().GetRoomId(mGndChk));
}
/* ############################################################################################## */
/* 80C15360-80C1536C 000000 000C+00 1/1 0/0 0/0 .rodata l_prticles_id$3832 */
SECTION_RODATA static u8 const l_prticles_id[12] = {
0x89, 0xC2, 0x89, 0xC3, 0x89, 0xC4, 0x89, 0xC5, 0x89, 0xC6, 0x89, 0xC7,
};
COMPILER_STRIP_GATE(0x80C15360, &l_prticles_id);
/* 80C1536C-80C15370 00000C 0004+00 0/1 0/0 0/0 .rodata @3849 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3849 = 17.0f / 20.0f;
COMPILER_STRIP_GATE(0x80C1536C, &lit_3849);
#pragma pop
/* 80C15370-80C15374 000010 0004+00 0/1 0/0 0/0 .rodata @3850 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3850 = 1.0f;
COMPILER_STRIP_GATE(0x80C15370, &lit_3850);
#pragma pop
/* 80C14CF0-80C14DA0 000190 00B0+00 1/1 0/0 0/0 .text setPrtcl__14daObjGrzRock_cFv */
void daObjGrzRock_c::setPrtcl() {
// NONMATCHING
}
static u16 const l_prticles_id[6] = {
dPa_RM(ID_ZI_S_BOMBROCK_FL_BREAK_A), dPa_RM(ID_ZI_S_BOMBROCK_FL_BREAK_B), dPa_RM(ID_ZI_S_BOMBROCK_FL_BREAK_C),
dPa_RM(ID_ZI_S_BOMBROCK_FL_BREAK_D), dPa_RM(ID_ZI_S_BOMBROCK_FL_BREAK_E), dPa_RM(ID_ZI_S_BOMBROCK_FL_BREAK_F),
};
/* ############################################################################################## */
/* 80C15374-80C15378 000014 0004+00 1/1 0/0 0/0 .rodata @3886 */
SECTION_RODATA static u8 const lit_3886[4] = {
0x00,
0x00,
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x80C15374, &lit_3886);
cXyz i_scale(0.85f, 0.85f, 0.85f);
for (int i = 0; i < 6; i++) {
dComIfGp_particle_set(l_prticles_id[i], &current.pos, &tevStr, &current.angle, &i_scale);
}
}
/* 80C14DA0-80C14EE0 000240 0140+00 1/0 0/0 0/0 .text Create__14daObjGrzRock_cFv */
void daObjGrzRock_c::Create() {
// NONMATCHING
int daObjGrzRock_c::Create() {
setBaseMtx();
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
J3DJoint* joint_p = mpModel->getModelData()->getJointNodePointer(0);
fopAcM_setCullSizeBox(this, joint_p->getMin()->x, joint_p->getMin()->y, joint_p->getMin()->z, joint_p->getMax()->x, joint_p->getMax()->y, joint_p->getMax()->z);
mAcchCir.SetWall(0.0f, 0.0f);
mBgc.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir, fopAcM_GetSpeed_p(this), fopAcM_GetAngle_p(this), fopAcM_GetShapeAngle_p(this));
mBgc.CrrPos(dComIfG_Bgsp());
mGndChk = mBgc.m_gnd;
setEnvTevColor();
setRoomNo();
return 1;
}
/* ############################################################################################## */
/* 80C15378-80C15378 000018 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80C15378 = "grZRock";
#pragma pop
/* 80C1538C-80C15390 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
SECTION_DATA static void* l_arcName = (void*)&d_a_obj_grz_rock__stringBase0;
static char* l_arcName = "grZRock";
/* 80C14EE0-80C14F50 000380 0070+00 1/0 0/0 0/0 .text CreateHeap__14daObjGrzRock_cFv */
void daObjGrzRock_c::CreateHeap() {
// NONMATCHING
int daObjGrzRock_c::CreateHeap() {
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 4);
JUT_ASSERT(246, modelData != NULL);
mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11020084);
if (mpModel == NULL) {
return 0;
}
return 1;
}
/* ############################################################################################## */
/* 80C15378-80C15378 000018 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80C15380 = "grZRock.dzb";
#pragma pop
/* 80C14F50-80C150DC 0003F0 018C+00 1/1 0/0 0/0 .text create__14daObjGrzRock_cFv */
cPhs__Step daObjGrzRock_c::create() {
fopAcM_ct(this, daObjGrzRock_c);
if (dComIfGs_isSwitch((fopAcM_GetParam(this) >> 8) & 0xFF, fopAcM_GetRoomNo(this))) {
return cPhs_ERROR_e;
}
int dzb_id = 0;
int i = 0;
cPhs__Step phase;
for (; i < 1; i++) {
phase = (cPhs__Step)dComIfG_resLoad(&mPhase[i], l_arcName);
if (phase == cPhs_ERROR_e || phase == cPhs_UNK3_e) {
return cPhs_ERROR_e;
}
if (phase == cPhs_COMPLEATE_e) {
dzb_id++;
}
}
if (i == dzb_id) {
dzb_id = dComIfG_getObjctResName2Index(l_arcName, "grZRock.dzb");
JUT_ASSERT(302, dzb_id != -1);
phase = (cPhs__Step)MoveBGCreate(l_arcName, dzb_id, dBgS_MoveBGProc_TypicalRotY, 0x1030, NULL);
if (phase == cPhs_ERROR_e) {
return phase;
}
mSmashFlag = 0;
}
return phase;
}
/* 80C1514C-80C151A4 0005EC 0058+00 1/0 0/0 0/0 .text Execute__14daObjGrzRock_cFPPA3_A4_f */
int daObjGrzRock_c::Execute(Mtx** mtx) {
if (mSmashFlag) {
setPrtcl();
fopAcM_delete(this);
return 1;
}
*mtx = &mBgMtx;
setBaseMtx();
return 1;
}
/* 80C151A4-80C15248 000644 00A4+00 1/0 0/0 0/0 .text Draw__14daObjGrzRock_cFv */
int daObjGrzRock_c::Draw() {
g_env_light.settingTevStruct(16, &current.pos, &tevStr);
g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr);
dComIfGd_setListBG();
mDoExt_modelUpdateDL(mpModel);
dComIfGd_setList();
return 1;
}
/* 80C15248-80C152B4 0006E8 006C+00 1/0 0/0 0/0 .text Delete__14daObjGrzRock_cFv */
int daObjGrzRock_c::Delete() {
for (int i = 0; i < 1; i++) {
dComIfG_resDelete(&mPhase[i], l_arcName);
}
if (mpBgW != NULL && mpBgW->ChkUsed()) {
if (dComIfG_Bgsp().Release(mpBgW)) {
OS_REPORT("Release Error\n");
}
}
return 1;
}
/* 80C152B4-80C152E0 000754 002C+00 1/0 0/0 0/0 .text daObjGrzRock_Draw__FP14daObjGrzRock_c */
static int daObjGrzRock_Draw(daObjGrzRock_c* i_this) {
return i_this->Draw();
}
/* 80C152E0-80C15300 000780 0020+00 1/0 0/0 0/0 .text daObjGrzRock_Execute__FP14daObjGrzRock_c */
static int daObjGrzRock_Execute(daObjGrzRock_c* i_this) {
return i_this->MoveBGExecute();
}
/* 80C15300-80C15308 0007A0 0008+00 1/0 0/0 0/0 .text daObjGrzRock_IsDelete__FP14daObjGrzRock_c */
static int daObjGrzRock_IsDelete(daObjGrzRock_c* i_this) {
return 1;
}
/* 80C15308-80C15328 0007A8 0020+00 1/0 0/0 0/0 .text daObjGrzRock_Delete__FP14daObjGrzRock_c */
static int daObjGrzRock_Delete(daObjGrzRock_c* i_this) {
return i_this->MoveBGDelete();
}
/* 80C15328-80C15348 0007C8 0020+00 1/0 0/0 0/0 .text daObjGrzRock_create__FP10fopAc_ac_c */
static int daObjGrzRock_create(fopAc_ac_c* a_this) {
return static_cast<daObjGrzRock_c*>(a_this)->create();
}
/* 80C15390-80C153B0 -00001 0020+00 1/0 0/0 0/0 .data l_daObjGrzRock_Method */
static actor_method_class l_daObjGrzRock_Method = {
(process_method_func)daObjGrzRock_create__FP10fopAc_ac_c,
(process_method_func)daObjGrzRock_Delete__FP14daObjGrzRock_c,
(process_method_func)daObjGrzRock_Execute__FP14daObjGrzRock_c,
(process_method_func)daObjGrzRock_IsDelete__FP14daObjGrzRock_c,
(process_method_func)daObjGrzRock_Draw__FP14daObjGrzRock_c,
(process_method_func)daObjGrzRock_create,
(process_method_func)daObjGrzRock_Delete,
(process_method_func)daObjGrzRock_Execute,
(process_method_func)daObjGrzRock_IsDelete,
(process_method_func)daObjGrzRock_Draw,
};
/* 80C153B0-80C153E0 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_GrzRock */
@ -188,95 +195,3 @@ extern actor_process_profile_definition g_profile_Obj_GrzRock = {
fopAc_ACTOR_e, // mActorType
fopAc_CULLBOX_CUSTOM_e, // cullType
};
/* 80C153E0-80C15404 000054 0024+00 2/2 0/0 0/0 .data __vt__12dBgS_ObjAcch */
SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__12dBgS_ObjAcchFv,
(void*)NULL,
(void*)NULL,
(void*)func_80C15350,
(void*)NULL,
(void*)NULL,
(void*)func_80C15348,
};
/* 80C15404-80C1542C 000078 0028+00 1/1 0/0 0/0 .data __vt__14daObjGrzRock_c */
SECTION_DATA extern void* __vt__14daObjGrzRock_c[10] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)CreateHeap__14daObjGrzRock_cFv,
(void*)Create__14daObjGrzRock_cFv,
(void*)Execute__14daObjGrzRock_cFPPA3_A4_f,
(void*)Draw__14daObjGrzRock_cFv,
(void*)Delete__14daObjGrzRock_cFv,
(void*)IsDelete__16dBgS_MoveBgActorFv,
(void*)ToFore__16dBgS_MoveBgActorFv,
(void*)ToBack__16dBgS_MoveBgActorFv,
};
/* 80C14F50-80C150DC 0003F0 018C+00 1/1 0/0 0/0 .text create__14daObjGrzRock_cFv */
void daObjGrzRock_c::create() {
// NONMATCHING
}
/* 80C150DC-80C1514C 00057C 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
// dBgS_ObjAcch::~dBgS_ObjAcch() {
extern "C" void __dt__12dBgS_ObjAcchFv() {
// NONMATCHING
}
/* 80C1514C-80C151A4 0005EC 0058+00 1/0 0/0 0/0 .text Execute__14daObjGrzRock_cFPPA3_A4_f
*/
void daObjGrzRock_c::Execute(Mtx** param_0) {
// NONMATCHING
}
/* 80C151A4-80C15248 000644 00A4+00 1/0 0/0 0/0 .text Draw__14daObjGrzRock_cFv */
void daObjGrzRock_c::Draw() {
// NONMATCHING
}
/* 80C15248-80C152B4 0006E8 006C+00 1/0 0/0 0/0 .text Delete__14daObjGrzRock_cFv */
void daObjGrzRock_c::Delete() {
// NONMATCHING
}
/* 80C152B4-80C152E0 000754 002C+00 1/0 0/0 0/0 .text daObjGrzRock_Draw__FP14daObjGrzRock_c */
static void daObjGrzRock_Draw(daObjGrzRock_c* param_0) {
// NONMATCHING
}
/* 80C152E0-80C15300 000780 0020+00 1/0 0/0 0/0 .text daObjGrzRock_Execute__FP14daObjGrzRock_c */
static void daObjGrzRock_Execute(daObjGrzRock_c* param_0) {
// NONMATCHING
}
/* 80C15300-80C15308 0007A0 0008+00 1/0 0/0 0/0 .text daObjGrzRock_IsDelete__FP14daObjGrzRock_c */
static bool daObjGrzRock_IsDelete(daObjGrzRock_c* param_0) {
return true;
}
/* 80C15308-80C15328 0007A8 0020+00 1/0 0/0 0/0 .text daObjGrzRock_Delete__FP14daObjGrzRock_c */
static void daObjGrzRock_Delete(daObjGrzRock_c* param_0) {
// NONMATCHING
}
/* 80C15328-80C15348 0007C8 0020+00 1/0 0/0 0/0 .text daObjGrzRock_create__FP10fopAc_ac_c
*/
static void daObjGrzRock_create(fopAc_ac_c* param_0) {
// NONMATCHING
}
/* 80C15348-80C15350 0007E8 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
static void func_80C15348() {
// NONMATCHING
}
/* 80C15350-80C15358 0007F0 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
static void func_80C15350() {
// NONMATCHING
}
/* 80C15378-80C15378 000018 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */

View File

@ -6,302 +6,319 @@
#include "d/dolzel_rel.h" // IWYU pragma: keep
#include "d/actor/d_a_obj_h_saku.h"
#include "dol2asm.h"
#include "Z2AudioLib/Z2Instances.h"
//
// Forward References:
//
extern "C" void BreakSet__13daObjH_Saku_cFv();
extern "C" void __dt__4cXyzFv();
extern "C" void SpeedSet__13daObjH_Saku_cFP4cXyzP4cXyzf();
extern "C" void Action__13daObjH_Saku_cFv();
extern "C" void initBaseMtx__13daObjH_Saku_cFv();
extern "C" void setBaseMtx__13daObjH_Saku_cFv();
extern "C" static void daObjH_Saku_Draw__FP13daObjH_Saku_c();
extern "C" static void daObjH_Saku_Execute__FP13daObjH_Saku_c();
extern "C" static bool daObjH_Saku_IsDelete__FP13daObjH_Saku_c();
extern "C" static void daObjH_Saku_Delete__FP13daObjH_Saku_c();
extern "C" static void daObjH_Saku_Create__FP10fopAc_ac_c();
extern "C" void __dt__12dBgS_ObjAcchFv();
extern "C" void CreateHeap__13daObjH_Saku_cFv();
extern "C" void Create__13daObjH_Saku_cFv();
extern "C" void Execute__13daObjH_Saku_cFPPA3_A4_f();
extern "C" void Draw__13daObjH_Saku_cFv();
extern "C" void Delete__13daObjH_Saku_cFv();
extern "C" void __sinit_d_a_obj_h_saku_cpp();
extern "C" static void func_80C164A4();
extern "C" static void func_80C164AC();
extern "C" extern char const* const d_a_obj_h_saku__stringBase0;
//
// External References:
//
extern "C" void mDoMtx_YrotS__FPA4_fs();
extern "C" void mDoMtx_YrotM__FPA4_fs();
extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
extern "C" void transM__14mDoMtx_stack_cFfff();
extern "C" void scaleM__14mDoMtx_stack_cFfff();
extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz();
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
extern "C" void fopAcM_delete__FP10fopAc_ac_c();
extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff();
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
extern "C" void getRes__14dRes_control_cFPCcPCcP11dRes_info_ci();
extern "C" void getObjectResName2Index__14dRes_control_cFPCcPCc();
extern "C" void
set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
extern "C" void Release__4cBgSFP9dBgW_Base();
extern "C" void LineCross__4cBgSFP11cBgS_LinChk();
extern "C" void dBgS_MoveBGProc_TypicalRotY__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz();
extern "C" void __ct__12dBgS_AcchCirFv();
extern "C" void __dt__9dBgS_AcchFv();
extern "C" void __ct__9dBgS_AcchFv();
extern "C" void __ct__11dBgS_LinChkFv();
extern "C" void __dt__11dBgS_LinChkFv();
extern "C" void Set__11dBgS_LinChkFPC4cXyzPC4cXyzPC10fopAc_ac_c();
extern "C" void __ct__16dBgS_MoveBgActorFv();
extern "C" bool IsDelete__16dBgS_MoveBgActorFv();
extern "C" bool ToFore__16dBgS_MoveBgActorFv();
extern "C" bool ToBack__16dBgS_MoveBgActorFv();
extern "C" void
MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f();
extern "C" void MoveBGDelete__16dBgS_MoveBgActorFv();
extern "C" void MoveBGExecute__16dBgS_MoveBgActorFv();
extern "C" void SetObj__16dBgS_PolyPassChkFv();
extern "C" void __ct__10dCcD_GSttsFv();
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
extern "C" void __ct__5csXyzFsss();
extern "C" void __apl__5csXyzFR5csXyz();
extern "C" void cM_rndF__Ff();
extern "C" void ChkUsed__9cBgW_BgIdCFv();
extern "C" void cLib_chaseAngleS__FPsss();
extern "C" void cLib_offsetPos__FP4cXyzPC4cXyzsPC4cXyz();
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void __dl__FPv();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" extern void* __vt__9dCcD_Stts[11];
extern "C" extern void* __vt__9cCcD_Stts[8];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
extern "C" void __register_global_object();
//
// Declarations:
//
/* ############################################################################################## */
/* 80C164C8-80C164CC 000000 0004+00 6/6 0/0 0/0 .rodata @3703 */
SECTION_RODATA static f32 const lit_3703 = 240.0f;
COMPILER_STRIP_GATE(0x80C164C8, &lit_3703);
/* 80C164CC-80C164D0 000004 0004+00 0/4 0/0 0/0 .rodata @3704 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3704[4] = {
0x00,
0x00,
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x80C164CC, &lit_3704);
#pragma pop
/* 80C164D0-80C164D4 000008 0004+00 0/3 0/0 0/0 .rodata @3705 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3705 = -30.0f;
COMPILER_STRIP_GATE(0x80C164D0, &lit_3705);
#pragma pop
/* 80C164D4-80C164D8 00000C 0004+00 0/3 0/0 0/0 .rodata @3706 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3706 = 1.0f;
COMPILER_STRIP_GATE(0x80C164D4, &lit_3706);
#pragma pop
/* 80C164D8-80C164DC 000010 0004+00 0/2 0/0 0/0 .rodata @3707 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3707 = -1.0f;
COMPILER_STRIP_GATE(0x80C164D8, &lit_3707);
#pragma pop
/* 80C164DC-80C164E0 000014 0004+00 0/2 0/0 0/0 .rodata @3708 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3708 = 10.0f;
COMPILER_STRIP_GATE(0x80C164DC, &lit_3708);
#pragma pop
/* 80C164E0-80C164E4 000018 0004+00 0/2 0/0 0/0 .rodata @3709 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3709 = 2.0f;
COMPILER_STRIP_GATE(0x80C164E0, &lit_3709);
#pragma pop
/* 80C164E4-80C164E8 00001C 0004+00 0/1 0/0 0/0 .rodata @3710 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3710 = 15.0f;
COMPILER_STRIP_GATE(0x80C164E4, &lit_3710);
#pragma pop
/* 80C164E8-80C164EC 000020 0004+00 0/1 0/0 0/0 .rodata @3711 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3711 = 512.0f;
COMPILER_STRIP_GATE(0x80C164E8, &lit_3711);
#pragma pop
/* 80C164EC-80C164F0 000024 0004+00 0/1 0/0 0/0 .rodata @3712 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3712 = 200.0f;
COMPILER_STRIP_GATE(0x80C164EC, &lit_3712);
#pragma pop
/* 80C164F0-80C164F4 000028 0004+00 0/1 0/0 0/0 .rodata @3713 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3713 = -512.0f;
COMPILER_STRIP_GATE(0x80C164F0, &lit_3713);
#pragma pop
/* 80C16540-80C16544 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
static char* l_arcName = "H_Saku";
/* 80C1552C-80C157D4 0000EC 02A8+00 0/0 0/0 1/1 .text BreakSet__13daObjH_Saku_cFv */
void daObjH_Saku_c::BreakSet() {
// NONMATCHING
}
cXyz pos(240.0f, 0.0f, -30.0f);
cLib_offsetPos(&pos, &current.pos, shape_angle.y, &pos);
dComIfGp_particle_set(dPa_RM(ID_ZF_S_KAKURESAKU1_00), &pos, &tevStr, &shape_angle, NULL);
dComIfGp_particle_set(dPa_RM(ID_ZF_S_KAKURESAKU1_01), &pos, &tevStr, &shape_angle, NULL);
dComIfGp_particle_set(dPa_RM(ID_ZF_S_KAKURESAKU1_02), &pos, &tevStr, &shape_angle, NULL);
Z2GetAudioMgr()->seStart(Z2SE_OBJ_H_SAKU_ORERU, &pos, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
field_0x5a0++;
speedF = 10.0f;
speed.y = 2.0f;
field_0x5b0.y = 15.0f;
field_0x5d0.set(-0x200, cM_rndF(200.0f) + 512.0f, 0);
field_0x5d6.set(0x200, cM_rndF(200.0f) + -512.0f, 0);
/* 80C157D4-80C15810 000394 003C+00 1/1 0/0 0/0 .text __dt__4cXyzFv */
// cXyz::~cXyz() {
extern "C" void __dt__4cXyzFv() {
// NONMATCHING
}
cXyz vecTrans(0.0f, speed.y, speedF);
mDoMtx_stack_c::YrotS(current.angle.y);
mDoMtx_stack_c::multVec(&vecTrans, &vecTrans);
speed = vecTrans;
field_0x5b0 = vecTrans;
field_0x5c8 = 10;
/* ############################################################################################## */
/* 80C164F4-80C164F8 00002C 0004+00 0/1 0/0 0/0 .rodata @3765 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3765 = -2.0f / 5.0f;
COMPILER_STRIP_GATE(0x80C164F4, &lit_3765);
#pragma pop
if (mpBgW != NULL && mpBgW->ChkUsed()) {
if (dComIfG_Bgsp().Release(mpBgW)) {
OS_REPORT("Release Error\n");
}
}
}
/* 80C15810-80C15A4C 0003D0 023C+00 1/1 0/0 0/0 .text SpeedSet__13daObjH_Saku_cFP4cXyzP4cXyzf */
void daObjH_Saku_c::SpeedSet(cXyz* param_0, cXyz* param_1, f32 param_2) {
// NONMATCHING
u8 daObjH_Saku_c::SpeedSet(cXyz* param_1, cXyz* param_2, f32 param_3) {
field_0x5c4 += 1.0f;
cXyz spa0(*param_1);
param_2->y += gravity;
*param_1 += *param_2;
if (field_0x5c4 > 10.0f) {
dBgS_LinChk lin_chk;
lin_chk.Set(&spa0, param_1, NULL);
if (dComIfG_Bgsp().LineCross(&lin_chk)) {
*param_1 = lin_chk.GetCross();
param_2->y *= -0.4f;
dComIfGp_particle_set(0x8856, param_1, &tevStr, &shape_angle, NULL);
dComIfGp_particle_set(0x8857, param_1, &tevStr, &shape_angle, NULL);
dComIfGp_particle_set(0x8858, param_1, &tevStr, &shape_angle, NULL);
Z2GetAudioMgr()->seStart(Z2SE_OBJ_H_SAKU_BREAK, param_1, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
return true;
}
}
return false;
}
/* ############################################################################################## */
/* 80C164F8-80C164FC 000030 0004+00 0/2 0/0 0/0 .rodata @3809 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3809 = 0.5f;
COMPILER_STRIP_GATE(0x80C164F8, &lit_3809);
#pragma pop
/* 80C161E8-80C1629C 000DA8 00B4+00 1/0 0/0 0/0 .text CreateHeap__13daObjH_Saku_cFv */
int daObjH_Saku_c::CreateHeap() {
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "H_Saku.bmd");
JUT_ASSERT(80, modelData != NULL);
/* 80C164FC-80C16500 000034 0004+00 0/1 0/0 0/0 .rodata @3810 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3810 = 1.5f;
COMPILER_STRIP_GATE(0x80C164FC, &lit_3810);
#pragma pop
field_0x628 = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
if (field_0x628 == NULL) {
return 0;
}
/* 80C16500-80C16508 000038 0008+00 0/1 0/0 0/0 .rodata @3812 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3812[8] = {
0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80C16500, &lit_3812);
#pragma pop
field_0x62c = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
if (field_0x62c == NULL) {
return 0;
}
return 1;
}
cPhs__Step daObjH_Saku_c::create() {
fopAcM_ct(this, daObjH_Saku_c);
cPhs__Step phase = (cPhs__Step)dComIfG_resLoad(&mPhase, l_arcName);
if (phase == cPhs_COMPLEATE_e) {
int dzb_id = dComIfG_getObjctResName2Index(l_arcName, "H_Saku.dzb");
JUT_ASSERT(113, dzb_id != -1);
phase = (cPhs__Step)MoveBGCreate(l_arcName, dzb_id, dBgS_MoveBGProc_TypicalRotY, 0x1320, NULL);
if (phase == cPhs_ERROR_e) {
return phase;
}
}
field_0x5de = 0;
gravity = -8.0f;
cXyz offset(480.0f, 0.0f, -30.0f);
cLib_offsetPos(&field_0x5a4, &current.pos, shape_angle.y, &offset);
offset.x *= 0.5f;
cLib_offsetPos(&field_0x5e0, &current.pos, shape_angle.y, &offset);
return phase;
}
/* 80C15A4C-80C15E00 00060C 03B4+00 1/1 0/0 0/0 .text Action__13daObjH_Saku_cFv */
void daObjH_Saku_c::Action() {
// NONMATCHING
switch (field_0x5a0) {
case 0:
break;
case 1:
field_0x5c8--;
if (field_0x5c8 == 0) {
field_0x5a1++;
field_0x5a0++;
field_0x5d6.y *= 0.5f;
field_0x5d0.y *= 0.5f;
}
shape_angle.y += field_0x5d6.y;
shape_angle.x += field_0x5d6.x;
shape_angle.z -= (s16)0x100;
field_0x5bc.y += field_0x5d0.y * 1.5f;
field_0x5bc.x += field_0x5d0.x;
field_0x5bc.z -= (s16)0x100;
break;
case 2:
if ((int)(u8)SpeedSet(&current.pos, &speed, speedF)) {
field_0x5dd++;
if (field_0x5dd > 2) {
field_0x5a0++;
}
field_0x5de |= 1;
if ((int)(u8)field_0x5de == 17) {
fopAcM_delete(this);
}
}
cLib_chaseAngleS(&shape_angle.z, 0, 0x200);
if (field_0x5dd != 0) {
if (speed.y > 0.0f) {
shape_angle.z += (s16)0x400;
} else {
shape_angle.z -= (s16)0x400;
}
cLib_chaseAngleS(&shape_angle.x, 0x4000, field_0x5d6.x);
shape_angle.y += field_0x5d6.y;
} else {
shape_angle += field_0x5d6;
}
break;
case 3:
if (cLib_chaseAngleS(&shape_angle.x, 0x4000, field_0x5d6.x) != 0) {
field_0x5a0++;
}
break;
}
switch (field_0x5a1) {
case 0:
break;
case 1:
if ((int)(u8)SpeedSet(&field_0x5a4, &field_0x5b0, speedF)) {
field_0x5dc++;
if (field_0x5dc > 2) {
field_0x5a1++;
}
field_0x5de |= 17;
if ((int)(u8)field_0x5de == 1) {
fopAcM_delete(this);
}
}
if (field_0x5dc != 0) {
if (field_0x5b0.y > 0.0f) {
field_0x5bc.z += (s16)0x400;
} else {
field_0x5bc.z -= (s16)0x400;
}
cLib_chaseAngleS(&field_0x5bc.x, -0x4000, field_0x5d6.x);
field_0x5bc.y += field_0x5d0.y;
} else {
field_0x5bc += field_0x5d0;
}
cLib_chaseAngleS(&field_0x5bc.z, 0, 0x200);
break;
case 2:
if (cLib_chaseAngleS(&field_0x5bc.x, -0x4000, field_0x5d6.x) != 0) {
field_0x5a1++;
}
break;
}
}
/* 80C15E00-80C15E44 0009C0 0044+00 1/1 0/0 0/0 .text initBaseMtx__13daObjH_Saku_cFv */
void daObjH_Saku_c::initBaseMtx() {
// NONMATCHING
setBaseMtx();
fopAcM_SetMtx(this, field_0x628->getBaseTRMtx());
fopAcM_SetMtx(this, field_0x62c->getBaseTRMtx());
}
/* ############################################################################################## */
/* 80C16508-80C1650C 000040 0004+00 0/1 0/0 0/0 .rodata @3856 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3856 = 30.0f;
COMPILER_STRIP_GATE(0x80C16508, &lit_3856);
#pragma pop
/* 80C15E44-80C15F4C 000A04 0108+00 2/2 0/0 0/0 .text setBaseMtx__13daObjH_Saku_cFv */
void daObjH_Saku_c::setBaseMtx() {
// NONMATCHING
csXyz angle(field_0x5bc.x, field_0x5bc.y, field_0x5bc.z);
mDoMtx_stack_c::transS(field_0x5a4);
mDoMtx_stack_c::YrotM(current.angle.y + 0x8000);
mDoMtx_stack_c::transM(0.0f, 0.0f, -30.0f);
mDoMtx_stack_c::ZXYrotM(angle);
mDoMtx_stack_c::transM(0.0f, 0.0f, 30.0f);
field_0x628->setBaseTRMtx(mDoMtx_stack_c::get());
angle.set(shape_angle.x, shape_angle.y, shape_angle.z);
mDoMtx_stack_c::transS(current.pos);
mDoMtx_stack_c::ZXYrotM(angle);
field_0x62c->setBaseTRMtx(mDoMtx_stack_c::get());
mDoMtx_stack_c::scaleM(2.0f, 1.0f, 1.0f);
MTXCopy(mDoMtx_stack_c::get(), mBgMtx);
}
/* 80C15F4C-80C15F78 000B0C 002C+00 1/0 0/0 0/0 .text daObjH_Saku_Draw__FP13daObjH_Saku_c
*/
static void daObjH_Saku_Draw(daObjH_Saku_c* param_0) {
// NONMATCHING
/* 80C15F4C-80C15F78 000B0C 002C+00 1/0 0/0 0/0 .text daObjH_Saku_Draw__FP13daObjH_Saku_c */
static int daObjH_Saku_Draw(daObjH_Saku_c* i_this) {
return i_this->MoveBGDraw();
}
/* 80C15F78-80C15F98 000B38 0020+00 1/0 0/0 0/0 .text daObjH_Saku_Execute__FP13daObjH_Saku_c */
static void daObjH_Saku_Execute(daObjH_Saku_c* param_0) {
// NONMATCHING
static int daObjH_Saku_Execute(daObjH_Saku_c* i_this) {
return i_this->MoveBGExecute();
}
/* 80C15F98-80C15FA0 000B58 0008+00 1/0 0/0 0/0 .text daObjH_Saku_IsDelete__FP13daObjH_Saku_c */
static bool daObjH_Saku_IsDelete(daObjH_Saku_c* param_0) {
return true;
static int daObjH_Saku_IsDelete(daObjH_Saku_c* i_this) {
return 1;
}
/* 80C15FA0-80C15FC4 000B60 0024+00 1/0 0/0 0/0 .text daObjH_Saku_Delete__FP13daObjH_Saku_c */
static void daObjH_Saku_Delete(daObjH_Saku_c* param_0) {
// NONMATCHING
static int daObjH_Saku_Delete(daObjH_Saku_c* i_this) {
fpc_ProcID id = fopAcM_GetID(i_this);
i_this->MoveBGDelete();
return 1;
}
/* ############################################################################################## */
/* 80C1650C-80C16510 000044 0004+00 0/1 0/0 0/0 .rodata @3930 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3930 = -8.0f;
COMPILER_STRIP_GATE(0x80C1650C, &lit_3930);
#pragma pop
/* 80C15FC4-80C16178 000B84 01B4+00 1/0 0/0 0/0 .text daObjH_Saku_Create__FP10fopAc_ac_c */
static int daObjH_Saku_Create(fopAc_ac_c* a_this) {
daObjH_Saku_c* i_this = (daObjH_Saku_c*)a_this;
fpc_ProcID id = fopAcM_GetID(a_this);
return i_this->create();
}
/* 80C16510-80C16514 000048 0004+00 0/1 0/0 0/0 .rodata @3931 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3931 = 480.0f;
COMPILER_STRIP_GATE(0x80C16510, &lit_3931);
#pragma pop
/* 80C1629C-80C162F4 000E5C 0058+00 1/0 0/0 0/0 .text Create__13daObjH_Saku_cFv */
int daObjH_Saku_c::Create() {
fopAcM_setCullSizeBox(this, -700.0f, -700.0f, -700.0f, 700.0f, 700.0f, 7000.0f);
initBaseMtx();
return cPhs_COMPLEATE_e;
}
/* 80C16520-80C16520 000058 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80C16520 = "H_Saku";
SECTION_DEAD static char const* const stringBase_80C16527 = "H_Saku.dzb";
#pragma pop
/* 80C162F4-80C16340 000EB4 004C+00 1/0 0/0 0/0 .text Execute__13daObjH_Saku_cFPPA3_A4_f */
int daObjH_Saku_c::Execute(Mtx** mtx) {
Action();
*mtx = &mBgMtx;
setBaseMtx();
return 1;
}
/* 80C16540-80C16544 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
SECTION_DATA static void* l_arcName = (void*)&d_a_obj_h_saku__stringBase0;
/* 80C16340-80C1641C 000F00 00DC+00 1/0 0/0 0/0 .text Draw__13daObjH_Saku_cFv */
int daObjH_Saku_c::Draw() {
g_env_light.settingTevStruct(16, &current.pos, &tevStr);
g_env_light.setLightTevColorType_MAJI(field_0x628, &tevStr);
g_env_light.setLightTevColorType_MAJI(field_0x62c, &tevStr);
dComIfGd_setListBG();
if ((int)(u8)field_0x5de != 1) {
mDoExt_modelUpdateDL(field_0x62c);
}
if ((int)(u8)field_0x5de != 17) {
mDoExt_modelUpdateDL(field_0x628);
}
dComIfGd_setList();
return 1;
}
/* 80C1641C-80C16450 000FDC 0034+00 1/0 0/0 0/0 .text Delete__13daObjH_Saku_cFv */
int daObjH_Saku_c::Delete() {
dComIfG_resDelete(&mPhase, l_arcName);
return 1;
}
namespace {
/* 80C16634-80C16640 000054 000C+00 0/1 0/0 0/0 .bss s_pos_l__28@unnamed@d_a_obj_h_saku_cpp@ */
static cXyz s_pos_l;
/* 80C1664C-80C16658 00006C 000C+00 0/1 0/0 0/0 .bss s_pos_r__28@unnamed@d_a_obj_h_saku_cpp@ */
static cXyz s_pos_r;
} // namespace
AUDIO_INSTANCES;
/* 80C16544-80C16564 -00001 0020+00 1/0 0/0 0/0 .data l_daObjH_Saku_Method */
static actor_method_class l_daObjH_Saku_Method = {
(process_method_func)daObjH_Saku_Create__FP10fopAc_ac_c,
(process_method_func)daObjH_Saku_Delete__FP13daObjH_Saku_c,
(process_method_func)daObjH_Saku_Execute__FP13daObjH_Saku_c,
(process_method_func)daObjH_Saku_IsDelete__FP13daObjH_Saku_c,
(process_method_func)daObjH_Saku_Draw__FP13daObjH_Saku_c,
(process_method_func)daObjH_Saku_Create,
(process_method_func)daObjH_Saku_Delete,
(process_method_func)daObjH_Saku_Execute,
(process_method_func)daObjH_Saku_IsDelete,
(process_method_func)daObjH_Saku_Draw,
};
/* 80C16564-80C16594 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_H_Saku */
@ -321,315 +338,3 @@ extern actor_process_profile_definition g_profile_Obj_H_Saku = {
fopAc_ACTOR_e, // mActorType
fopAc_CULLBOX_CUSTOM_e, // cullType
};
/* 80C16594-80C165B8 000054 0024+00 2/2 0/0 0/0 .data __vt__12dBgS_ObjAcch */
SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__12dBgS_ObjAcchFv,
(void*)NULL,
(void*)NULL,
(void*)func_80C164AC,
(void*)NULL,
(void*)NULL,
(void*)func_80C164A4,
};
/* 80C165B8-80C165E0 000078 0028+00 1/1 0/0 0/0 .data __vt__13daObjH_Saku_c */
SECTION_DATA extern void* __vt__13daObjH_Saku_c[10] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)CreateHeap__13daObjH_Saku_cFv,
(void*)Create__13daObjH_Saku_cFv,
(void*)Execute__13daObjH_Saku_cFPPA3_A4_f,
(void*)Draw__13daObjH_Saku_cFv,
(void*)Delete__13daObjH_Saku_cFv,
(void*)IsDelete__16dBgS_MoveBgActorFv,
(void*)ToFore__16dBgS_MoveBgActorFv,
(void*)ToBack__16dBgS_MoveBgActorFv,
};
/* 80C15FC4-80C16178 000B84 01B4+00 1/0 0/0 0/0 .text daObjH_Saku_Create__FP10fopAc_ac_c
*/
static void daObjH_Saku_Create(fopAc_ac_c* param_0) {
// NONMATCHING
}
/* 80C16178-80C161E8 000D38 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
// dBgS_ObjAcch::~dBgS_ObjAcch() {
extern "C" void __dt__12dBgS_ObjAcchFv() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80C16520-80C16520 000058 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80C16532 = "H_Saku.bmd";
#pragma pop
/* 80C161E8-80C1629C 000DA8 00B4+00 1/0 0/0 0/0 .text CreateHeap__13daObjH_Saku_cFv */
void daObjH_Saku_c::CreateHeap() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80C16514-80C16518 00004C 0004+00 0/1 0/0 0/0 .rodata @3965 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3965 = -700.0f;
COMPILER_STRIP_GATE(0x80C16514, &lit_3965);
#pragma pop
/* 80C16518-80C1651C 000050 0004+00 0/1 0/0 0/0 .rodata @3966 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3966 = 700.0f;
COMPILER_STRIP_GATE(0x80C16518, &lit_3966);
#pragma pop
/* 80C1651C-80C16520 000054 0004+00 0/1 0/0 0/0 .rodata @3967 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3967 = 7000.0f;
COMPILER_STRIP_GATE(0x80C1651C, &lit_3967);
#pragma pop
/* 80C1629C-80C162F4 000E5C 0058+00 1/0 0/0 0/0 .text Create__13daObjH_Saku_cFv */
void daObjH_Saku_c::Create() {
// NONMATCHING
}
/* 80C162F4-80C16340 000EB4 004C+00 1/0 0/0 0/0 .text Execute__13daObjH_Saku_cFPPA3_A4_f
*/
void daObjH_Saku_c::Execute(Mtx** param_0) {
// NONMATCHING
}
/* 80C16340-80C1641C 000F00 00DC+00 1/0 0/0 0/0 .text Draw__13daObjH_Saku_cFv */
void daObjH_Saku_c::Draw() {
// NONMATCHING
}
/* 80C1641C-80C16450 000FDC 0034+00 1/0 0/0 0/0 .text Delete__13daObjH_Saku_cFv */
void daObjH_Saku_c::Delete() {
// NONMATCHING
}
/* 80C16628-80C16634 000048 000C+00 0/1 0/0 0/0 .bss @3639 */
#pragma push
#pragma force_active on
static u8 lit_3639[12];
#pragma pop
/* 80C16634-80C16640 000054 000C+00 0/1 0/0 0/0 .bss s_pos_l__28@unnamed@d_a_obj_h_saku_cpp@ */
#pragma push
#pragma force_active on
static u8 data_80C16634[12];
#pragma pop
/* 80C16640-80C1664C 000060 000C+00 0/1 0/0 0/0 .bss @3640 */
#pragma push
#pragma force_active on
static u8 lit_3640[12];
#pragma pop
/* 80C1664C-80C16658 00006C 000C+00 0/1 0/0 0/0 .bss s_pos_r__28@unnamed@d_a_obj_h_saku_cpp@ */
#pragma push
#pragma force_active on
static u8 data_80C1664C[12];
#pragma pop
/* 80C16450-80C164A4 001010 0054+00 0/0 1/0 0/0 .text __sinit_d_a_obj_h_saku_cpp */
void __sinit_d_a_obj_h_saku_cpp() {
// NONMATCHING
}
#pragma push
#pragma force_active on
REGISTER_CTORS(0x80C16450, __sinit_d_a_obj_h_saku_cpp);
#pragma pop
/* 80C164A4-80C164AC 001064 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
static void func_80C164A4() {
// NONMATCHING
}
/* 80C164AC-80C164B4 00106C 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
static void func_80C164AC() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80C16658-80C1665C 000078 0004+00 0/0 0/0 0/0 .bss
* sInstance__40JASGlobalInstance<19JASDefaultBankTable> */
#pragma push
#pragma force_active on
static u8 data_80C16658[4];
#pragma pop
/* 80C1665C-80C16660 00007C 0004+00 0/0 0/0 0/0 .bss
* sInstance__35JASGlobalInstance<14JASAudioThread> */
#pragma push
#pragma force_active on
static u8 data_80C1665C[4];
#pragma pop
/* 80C16660-80C16664 000080 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */
#pragma push
#pragma force_active on
static u8 data_80C16660[4];
#pragma pop
/* 80C16664-80C16668 000084 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */
#pragma push
#pragma force_active on
static u8 data_80C16664[4];
#pragma pop
/* 80C16668-80C1666C 000088 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr>
*/
#pragma push
#pragma force_active on
static u8 data_80C16668[4];
#pragma pop
/* 80C1666C-80C16670 00008C 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr>
*/
#pragma push
#pragma force_active on
static u8 data_80C1666C[4];
#pragma pop
/* 80C16670-80C16674 000090 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys>
*/
#pragma push
#pragma force_active on
static u8 data_80C16670[4];
#pragma pop
/* 80C16674-80C16678 000094 0004+00 0/0 0/0 0/0 .bss
* sInstance__36JASGlobalInstance<15JAISoundStarter> */
#pragma push
#pragma force_active on
static u8 data_80C16674[4];
#pragma pop
/* 80C16678-80C1667C 000098 0004+00 0/0 0/0 0/0 .bss
* sInstance__35JASGlobalInstance<14Z2SoundStarter> */
#pragma push
#pragma force_active on
static u8 data_80C16678[4];
#pragma pop
/* 80C1667C-80C16680 00009C 0004+00 0/0 0/0 0/0 .bss
* sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */
#pragma push
#pragma force_active on
static u8 data_80C1667C[4];
#pragma pop
/* 80C16680-80C16684 0000A0 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */
#pragma push
#pragma force_active on
static u8 data_80C16680[4];
#pragma pop
/* 80C16684-80C16688 0000A4 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */
#pragma push
#pragma force_active on
static u8 data_80C16684[4];
#pragma pop
/* 80C16688-80C1668C 0000A8 0004+00 0/0 0/0 0/0 .bss
* sInstance__33JASGlobalInstance<12JAIStreamMgr> */
#pragma push
#pragma force_active on
static u8 data_80C16688[4];
#pragma pop
/* 80C1668C-80C16690 0000AC 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr>
*/
#pragma push
#pragma force_active on
static u8 data_80C1668C[4];
#pragma pop
/* 80C16690-80C16694 0000B0 0004+00 0/0 0/0 0/0 .bss
* sInstance__33JASGlobalInstance<12JAISoundInfo> */
#pragma push
#pragma force_active on
static u8 data_80C16690[4];
#pragma pop
/* 80C16694-80C16698 0000B4 0004+00 0/0 0/0 0/0 .bss
* sInstance__34JASGlobalInstance<13JAUSoundTable> */
#pragma push
#pragma force_active on
static u8 data_80C16694[4];
#pragma pop
/* 80C16698-80C1669C 0000B8 0004+00 0/0 0/0 0/0 .bss
* sInstance__38JASGlobalInstance<17JAUSoundNameTable> */
#pragma push
#pragma force_active on
static u8 data_80C16698[4];
#pragma pop
/* 80C1669C-80C166A0 0000BC 0004+00 0/0 0/0 0/0 .bss
* sInstance__33JASGlobalInstance<12JAUSoundInfo> */
#pragma push
#pragma force_active on
static u8 data_80C1669C[4];
#pragma pop
/* 80C166A0-80C166A4 0000C0 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo>
*/
#pragma push
#pragma force_active on
static u8 data_80C166A0[4];
#pragma pop
/* 80C166A4-80C166A8 0000C4 0004+00 0/0 0/0 0/0 .bss
* sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */
#pragma push
#pragma force_active on
static u8 data_80C166A4[4];
#pragma pop
/* 80C166A8-80C166AC 0000C8 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience>
*/
#pragma push
#pragma force_active on
static u8 data_80C166A8[4];
#pragma pop
/* 80C166AC-80C166B0 0000CC 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr>
*/
#pragma push
#pragma force_active on
static u8 data_80C166AC[4];
#pragma pop
/* 80C166B0-80C166B4 0000D0 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr>
*/
#pragma push
#pragma force_active on
static u8 data_80C166B0[4];
#pragma pop
/* 80C166B4-80C166B8 0000D4 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr>
*/
#pragma push
#pragma force_active on
static u8 data_80C166B4[4];
#pragma pop
/* 80C166B8-80C166BC 0000D8 0004+00 0/0 0/0 0/0 .bss
* sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */
#pragma push
#pragma force_active on
static u8 data_80C166B8[4];
#pragma pop
/* 80C16520-80C16520 000058 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */