Make d_a_obj_thashi equivalent (#2731)

* Make d_a_obj_thashi equivalent

* Link d_a_obj_thashi

* Adding suggestions

* formatting

* fix return
This commit is contained in:
roeming
2025-10-09 21:42:24 -04:00
committed by GitHub
parent 8b48bb658f
commit 774692fc3b
3 changed files with 338 additions and 657 deletions
+1 -1
View File
@@ -2196,7 +2196,7 @@ config.libs = [
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_ten"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_testcube"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_tgake"),
ActorRel(NonMatching, "d_a_obj_thashi"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_thashi"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_thdoor"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_timeFire"),
ActorRel(Equivalent, "d_a_obj_tks", extra_cflags=[DANPCF_C_HACK]), # weak function order
+55 -10
View File
@@ -2,7 +2,10 @@
#define D_A_OBJ_THASHI_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_bg_s_movebg_actor.h"
#include "d/d_cc_uty.h"
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
/**
* @ingroup actors-objects
* @class daObjTHASHI_c
@@ -11,19 +14,61 @@
* @details
*
*/
class daObjTHASHI_c : public fopAc_ac_c {
class daObjTHASHI_c : public dBgS_MoveBgActor {
public:
/* 80D0C238 */ void initCcCylinder();
/* 80D0C354 */ void setBaseMtx();
/* 80D0C654 */ void CreateHeap();
/* 80D0C8B4 */ void create();
/* 80D0CE70 */ void Create();
/* 80D0CEB4 */ void Execute(Mtx**);
/* 80D0CEE0 */ void Draw();
/* 80D0D140 */ void Delete();
/* 80D0C654 */ int CreateHeap();
/* 80D0C8B4 */ int create();
/* 80D0CE70 */ int Create();
/* 80D0CEB4 */ int Execute(Mtx**);
/* 80D0CEE0 */ int Draw();
/* 80D0D140 */ int Delete();
private:
/* 0x568 */ u8 field_0x568[0x1bbc - 0x568];
// private:
/* 0x5A0 */ dBgW* unk5A0;
/* 0x5A4 */ u32 unk5A4;
/* 0x5A8 */ u32 unk5A8;
/* 0x5AC */ cXyz unk5AC;
/* 0x5B8 */ csXyz mRot;
/* 0x5C0 */ cXyz mTrans;
/* 0x5CC */ u32 unk5CC;
/* 0x5D0 */ cXyz unk5D0;
/* 0x5DC */ cXyz unk5DC[5];
/* 0x618 */ u32 unk618;
/* 0x61C */ u32 unk61C;
/* 0x620 */ u32 unk620;
/* 0x624 */ cXyz unk624;
/* 0x630 */ csXyz unk630;
/* 0x636 */ s16 unk636;
/* 0x638 */ cXyz mCollectiveTrans[50];
/* 0x890 */ cXyz unk890[50];
/* 0xAE8 */ cXyz mCollectiveScale[50];
/* 0xD40 */ u32 unkD40;
/* 0xD44 */ u32 unkD44;
/* 0xD48 */ csXyz mCollectiveRot[50];
/* 0xE74 */ csXyz unkE74[50];
/* 0xFA0 */ u8 unkFA0[0x100];
/* 0x10A0 */ f32 unk10A0;
/* 0x10A4 */ u32 unk10A4;
/* 0x10A8 */ u32 unk10A8;
/* 0x10AC */ Z2SoundObjSimple unk10AC;
/* 0x10CC */ u32 unk10CC;
/* 0x10D0 */ u32 unk10D0;
/* 0x10D4 */ J3DModel* mThashi00Model;
/* 0x10D8 */ J3DModel* mThashi01Model;
/* 0x10DC */ J3DModel* mThashi03Models[50];
/* 0x11A4 */ J3DModel* mThashi02Model;
/* 0x11A8 */ request_of_phase_process_class unk11A8;
/* 0x11B0 */ dBgS_AcchCir unk11B0;
/* 0x11F0 */ dBgS_ObjAcch unk11F0;
/* 0x13C8 */ dCcD_Stts unk13C8;
/* 0x1404 */ dCcD_Stts unk1404;
/* 0x1440 */ dCcD_Sph unk1440[5];
/* 0x1A58 */ dCcD_Cyl unk1A58;
/* 0x1B94 */ dCcU_AtInfo unk1B94;
/* 0x1BB8 */ u32 unk1BB8;
};
STATIC_ASSERT(sizeof(daObjTHASHI_c) == 0x1bbc);
+282 -646
View File
@@ -7,513 +7,261 @@
#include "d/actor/d_a_obj_thashi.h"
#include "d/d_cc_d.h"
#include "dol2asm.h"
#include "d/d_s_play.h"
//
// Forward References:
//
extern "C" void initCcCylinder__13daObjTHASHI_cFv();
extern "C" static void daObjTHASHI_Create__FP10fopAc_ac_c();
extern "C" static void daObjTHASHI_Delete__FP13daObjTHASHI_c();
extern "C" void __dt__4cXyzFv();
extern "C" void __dt__5csXyzFv();
extern "C" void setBaseMtx__13daObjTHASHI_cFv();
extern "C" static void daObjTHASHI_Draw__FP13daObjTHASHI_c();
extern "C" static void daObjTHASHI_Execute__FP13daObjTHASHI_c();
extern "C" void CreateHeap__13daObjTHASHI_cFv();
extern "C" void create__13daObjTHASHI_cFv();
extern "C" void __dt__8cM3dGCylFv();
extern "C" void __dt__8cM3dGAabFv();
extern "C" void __dt__8dCcD_SphFv();
extern "C" void __ct__8dCcD_SphFv();
extern "C" void __dt__8cM3dGSphFv();
extern "C" void __dt__12dBgS_ObjAcchFv();
extern "C" void __ct__5csXyzFv();
extern "C" void __ct__4cXyzFv();
extern "C" static bool daObjTHASHI_IsDelete__FP13daObjTHASHI_c();
extern "C" void Create__13daObjTHASHI_cFv();
extern "C" void Execute__13daObjTHASHI_cFPPA3_A4_f();
extern "C" void Draw__13daObjTHASHI_cFv();
extern "C" void Delete__13daObjTHASHI_cFv();
extern "C" static void func_80D0D174();
extern "C" static void func_80D0D17C();
extern "C" extern char const* const d_a_obj_thashi__stringBase0;
//
// External References:
//
extern "C" void mDoMtx_XrotM__FPA4_fs();
extern "C" void mDoMtx_YrotM__FPA4_fs();
extern "C" void mDoMtx_ZrotM__FPA4_fs();
extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
extern "C" void transM__14mDoMtx_stack_cFfff();
extern "C" void scaleM__14mDoMtx_stack_cFRC4cXyz();
extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz();
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
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_cFPCclP11dRes_info_ci();
extern "C" void getRes__14dRes_control_cFPCcPCcP11dRes_info_ci();
extern "C" void getObjectResName2Index__14dRes_control_cFPCcPCc();
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__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 Set__4cBgWFP6cBgD_tUlPA3_A4_f();
extern "C" void __ct__4dBgWFv();
extern "C" void __ct__10dCcD_GSttsFv();
extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
extern "C" void __ct__12dCcD_GObjInfFv();
extern "C" void __dt__12dCcD_GObjInfFv();
extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl();
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
extern "C" void SetC__8cM3dGCylFRC4cXyz();
extern "C" void __ct__16Z2SoundObjSimpleFv();
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" void __construct_array();
extern "C" void _savegpr_25();
extern "C" void _savegpr_26();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_25();
extern "C" void _restgpr_26();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" extern void* __vt__8dCcD_Sph[36];
extern "C" extern void* __vt__8dCcD_Cyl[36];
extern "C" extern void* __vt__9dCcD_Stts[11];
extern "C" extern void* __vt__12cCcD_SphAttr[25];
extern "C" extern void* __vt__12cCcD_CylAttr[25];
extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
extern "C" extern void* __vt__9cCcD_Stts[8];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" u8 m_set_func__16dBgS_MoveBgActor[4 + 4 /* padding */];
//
// Declarations:
//
char* l_arcName = "S_thashi";
/* ############################################################################################## */
/* 80D0D18C-80D0D1CC 000000 0040+00 2/2 0/0 0/0 .rodata ccCylSrc$3671 */
SECTION_RODATA static u8 const ccCylSrc_3671[64] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13,
0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80D0D18C, &ccCylSrc_3671);
/* 80D0D1CC-80D0D1D0 000040 0004+00 0/0 0/0 0/0 .rodata @3693 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3693[4] = {
0x00,
0x00,
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x80D0D1CC, &lit_3693);
#pragma pop
/* 80D0D1D0-80D0D1D4 000044 0004+00 0/0 0/0 0/0 .rodata @3694 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3694 = 200.0f;
COMPILER_STRIP_GATE(0x80D0D1D0, &lit_3694);
#pragma pop
/* 80D0D1D4-80D0D1DC 000048 0004+04 0/0 0/0 0/0 .rodata @3695 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3695[1 + 1 /* padding */] = {
300.0f,
/* padding */
0.0f,
};
COMPILER_STRIP_GATE(0x80D0D1D4, &lit_3695);
#pragma pop
/* 80D0D1DC-80D0D1E4 000050 0008+00 0/0 0/0 0/0 .rodata @3697 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3697[8] = {
0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80D0D1DC, &lit_3697);
#pragma pop
/* 80D0D1E4-80D0D228 000058 0044+00 1/1 0/0 0/0 .rodata ccCylSrc$3701 */
const static dCcD_SrcCyl ccCylSrc_3701 = {
{
{0x0, {{0x0, 0x0, 0x0}, {0x100000, 0x1f}, 0x75}}, // mObj
{dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt
{dCcD_SE_NONE, 0x1, 0x0, 0x0, 0x2}, // mGObjTg
{0x0}, // mGObjCo
}, // mObjInf
{
{0.0f, 0.0f, 0.0f}, // mCenter
110.0f, // mRadius
130.0f // mHeight
} // mCyl
};
static void dataStripping() {
const static u32 ccCylSrc[] = {0, 0x100000, 0, 0x13, 0x100000, 0x1f, 0x75, 0,
0, 0x10000, 0x2, 0, 0l, 0, 0, 0x42f00000};
extern void stripFloat(f32);
extern void stripint(int);
extern int getStripInt();
stripFloat(0.0f);
stripFloat(200.0f);
stripFloat(300.0f);
stripFloat(getStripInt());
}
/* 80D0C238-80D0C298 000078 0060+00 1/1 0/0 0/0 .text initCcCylinder__13daObjTHASHI_cFv
*/
void daObjTHASHI_c::initCcCylinder() {
// NONMATCHING
#if !DEBUG
const
#endif
static dCcD_SrcCyl ccCylSrc = {
{
{0x0, {{AT_TYPE_0, 0x0, 0x0}, {0x00100000, 0x1f}, 0x75}}, // mObj
{dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x0}, // mGObjAt
{dCcD_SE_NONE, 0x1, 0x0, 0x0, 0x2}, // mGObjTg
{0x0}, // mGObjCo
}, // mObjInf
{
{0.0f, 0.0f, 0.0f}, // mCenter
110.f + nREG_F(17), // mRadius
130.f + nREG_F(16) // mHeight
} // mCyl
};
unk13C8.Init(0xff, 0xff, this);
unk1A58.Set(ccCylSrc);
unk1A58.SetStts(&unk13C8);
unk1A58.SetC(current.pos);
}
static void dataStripping2() {
extern void stripFloat(f32);
extern void stripDouble(f64);
stripFloat(15.0f);
stripFloat(60.0f);
stripFloat(30.0f);
stripFloat(150.0f);
stripFloat(10.0f);
stripFloat(70.0f);
stripFloat(0.65f);
stripFloat(0.25f);
stripFloat(1.5f);
stripFloat(0.6f);
stripFloat(1.0f);
stripFloat(8192.0f);
stripFloat(32000.0f);
stripFloat(15000.0f);
stripFloat(65536.0f);
stripFloat(-0.05f);
stripFloat(0.2f);
stripFloat(4.0f);
stripFloat(0.7f);
stripFloat(0.3f);
stripFloat(5000.0f);
stripFloat(5.0f);
stripFloat(-9.0f);
stripFloat(16384.0f);
stripFloat(-1.0f);
stripFloat(450.0f);
stripDouble(0.5f);
stripDouble(3.0f);
stripDouble(0.0f);
stripFloat(3.0f);
stripFloat(2000.0f);
stripFloat(608.0f);
stripFloat(448.0f);
}
/* 80D0C298-80D0C2B8 0000D8 0020+00 1/0 0/0 0/0 .text daObjTHASHI_Create__FP10fopAc_ac_c
*/
static void daObjTHASHI_Create(fopAc_ac_c* param_0) {
// NONMATCHING
static int daObjTHASHI_Create(fopAc_ac_c* param_0) {
daObjTHASHI_c* i_this = (daObjTHASHI_c*)param_0;
fpc_ProcID id = fopAcM_GetID(param_0);
return i_this->create();
}
/* 80D0C2B8-80D0C2DC 0000F8 0024+00 1/0 0/0 0/0 .text daObjTHASHI_Delete__FP13daObjTHASHI_c */
static void daObjTHASHI_Delete(daObjTHASHI_c* param_0) {
// NONMATCHING
static int daObjTHASHI_Delete(daObjTHASHI_c* i_this) {
fpc_ProcID id = fopAcM_GetID(i_this);
i_this->MoveBGDelete();
return TRUE;
}
/* 80D0C2DC-80D0C318 00011C 003C+00 1/1 0/0 0/0 .text __dt__4cXyzFv */
// cXyz::~cXyz() {
extern "C" void __dt__4cXyzFv() {
// NONMATCHING
// stripped function to move dtor weak ordering
static void strippedFunc3(cXyz* a, csXyz* b) {
delete[] b;
delete[] a;
}
/* 80D0C318-80D0C354 000158 003C+00 1/1 0/0 0/0 .text __dt__5csXyzFv */
// csXyz::~csXyz() {
extern "C" void __dt__5csXyzFv() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80D0D2D0-80D0D2D0 000144 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80D0D2D0 = "S_thashi";
#pragma pop
/* 80D0D334-80D0D338 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
SECTION_DATA static void* l_arcName = (void*)&d_a_obj_thashi__stringBase0;
/* 80D0D338-80D0D35C -00001 0024+00 1/1 0/0 0/0 .data @4521 */
SECTION_DATA static void* lit_4521[9] = {
(void*)(((char*)setBaseMtx__13daObjTHASHI_cFv) + 0x44),
(void*)(((char*)setBaseMtx__13daObjTHASHI_cFv) + 0x6C),
(void*)(((char*)setBaseMtx__13daObjTHASHI_cFv) + 0x6C),
(void*)(((char*)setBaseMtx__13daObjTHASHI_cFv) + 0x1AC),
(void*)(((char*)setBaseMtx__13daObjTHASHI_cFv) + 0x214),
(void*)(((char*)setBaseMtx__13daObjTHASHI_cFv) + 0x29C),
(void*)(((char*)setBaseMtx__13daObjTHASHI_cFv) + 0x29C),
(void*)(((char*)setBaseMtx__13daObjTHASHI_cFv) + 0x6C),
(void*)(((char*)setBaseMtx__13daObjTHASHI_cFv) + 0x214),
};
/* 80D0C354-80D0C608 000194 02B4+00 2/1 0/0 0/0 .text setBaseMtx__13daObjTHASHI_cFv */
void daObjTHASHI_c::setBaseMtx() {
// NONMATCHING
switch (unk5A4) {
case 0:
mDoMtx_stack_c::transS(current.pos);
mDoMtx_stack_c::ZXYrotM(shape_angle);
mThashi00Model->setBaseTRMtx(mDoMtx_stack_c::get());
break;
case 1:
case 2:
case 7:
for (s16 i = 0; i < 10; i++) {
mDoMtx_stack_c::transS(mCollectiveTrans[i]);
mDoMtx_stack_c::ZXYrotM(mCollectiveRot[i]);
mDoMtx_stack_c::scaleM(mCollectiveScale[i]);
mThashi03Models[i]->setBaseTRMtx(mDoMtx_stack_c::get());
}
f32 t = fabsf(cM_ssin(mRot.x) * (70.f + KREG_F(0)));
mDoMtx_stack_c::transS(mTrans.x, mTrans.y + t + 10.f + KREG_F(11), mTrans.z);
mDoMtx_stack_c::YrotM(mRot.y);
mDoMtx_stack_c::ZrotM(mRot.z);
mDoMtx_stack_c::XrotM(mRot.x);
mDoMtx_stack_c::YrotM(-mRot.y);
mDoMtx_stack_c::transM(0.f, 60.f + KREG_F(12), 0.f);
mThashi02Model->setBaseTRMtx(mDoMtx_stack_c::get());
mDoMtx_stack_c::transS(current.pos);
mDoMtx_stack_c::ZXYrotM(shape_angle);
mThashi01Model->setBaseTRMtx(mDoMtx_stack_c::get());
break;
case 3:
for (s16 i = 0; i < 50; i++) {
mDoMtx_stack_c::transS(mCollectiveTrans[i]);
mDoMtx_stack_c::ZXYrotM(mCollectiveRot[i]);
mDoMtx_stack_c::scaleM(mCollectiveScale[i]);
mThashi03Models[i]->setBaseTRMtx(mDoMtx_stack_c::get());
}
break;
case 4:
case 8:
for (s16 i = 0; i < 40; i++) {
mDoMtx_stack_c::transS(mCollectiveTrans[i]);
mDoMtx_stack_c::ZXYrotM(mCollectiveRot[i]);
mDoMtx_stack_c::scaleM(mCollectiveScale[i]);
mThashi03Models[i]->setBaseTRMtx(mDoMtx_stack_c::get());
}
mDoMtx_stack_c::transS(current.pos);
mDoMtx_stack_c::ZXYrotM(shape_angle);
mThashi01Model->setBaseTRMtx(mDoMtx_stack_c::get());
break;
}
}
/* 80D0C608-80D0C634 000448 002C+00 1/0 0/0 0/0 .text daObjTHASHI_Draw__FP13daObjTHASHI_c
*/
static void daObjTHASHI_Draw(daObjTHASHI_c* param_0) {
// NONMATCHING
static int daObjTHASHI_Draw(daObjTHASHI_c* i_this) {
return i_this->MoveBGDraw();
}
/* 80D0C634-80D0C654 000474 0020+00 2/1 0/0 0/0 .text daObjTHASHI_Execute__FP13daObjTHASHI_c */
static void daObjTHASHI_Execute(daObjTHASHI_c* param_0) {
// NONMATCHING
static int daObjTHASHI_Execute(daObjTHASHI_c* i_this) {
return i_this->MoveBGExecute();
}
/* ############################################################################################## */
/* 80D0D2D0-80D0D2D0 000144 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80D0D2D9 = "S_thashi00.bmd";
SECTION_DEAD static char const* const stringBase_80D0D2E8 = "S_thashi01.bmd";
SECTION_DEAD static char const* const stringBase_80D0D2F7 = "S_thashi03.bmd";
SECTION_DEAD static char const* const stringBase_80D0D306 = "S_thashi02.bmd";
SECTION_DEAD static char const* const stringBase_80D0D315 = "S_thashi01.dzb";
#pragma pop
/* 80D0C654-80D0C8B4 000494 0260+00 1/0 0/0 0/0 .text CreateHeap__13daObjTHASHI_cFv */
void daObjTHASHI_c::CreateHeap() {
// NONMATCHING
int daObjTHASHI_c::CreateHeap() {
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "S_thashi00.bmd");
JUT_ASSERT(92, modelData != NULL);
J3DModelData* modelData1 = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "S_thashi01.bmd");
JUT_ASSERT(95, modelData1 != NULL);
mThashi00Model = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
if (mThashi00Model == NULL) {
return FALSE;
}
mThashi01Model = mDoExt_J3DModel__create(modelData1, 0x80000, 0x11000084);
if (mThashi01Model == NULL) {
return FALSE;
}
J3DModelData* modelData2 = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "S_thashi03.bmd");
JUT_ASSERT(113, modelData2 != NULL);
J3DModelData* modelData3 = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "S_thashi02.bmd");
JUT_ASSERT(116, modelData3 != NULL);
for (int i = 0; i < 50; i++) {
mThashi03Models[i] = mDoExt_J3DModel__create(modelData2, 0x80000, 0x11000084);
if (mThashi03Models[i] == NULL) {
return FALSE;
}
}
mThashi02Model = mDoExt_J3DModel__create(modelData3, 0x80000, 0x11000084);
if (mThashi02Model == NULL) {
return FALSE;
}
u32 ind = dComIfG_getObjctResName2Index(l_arcName, "S_thashi01.dzb");
unk5A0 = new dBgW();
if (unk5A0 != NULL && !unk5A0->Set((cBgD_t*)dComIfG_getObjectRes(l_arcName, ind), 1, &mBgMtx)) {
if (m_set_func != NULL) {
unk5A0->SetCrrFunc(m_set_func);
}
} else {
unk5A0 = NULL;
return FALSE;
}
return TRUE;
}
/* ############################################################################################## */
/* 80D0D228-80D0D22C 00009C 0004+00 0/0 0/0 0/0 .rodata @3795 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3795 = 15.0f;
COMPILER_STRIP_GATE(0x80D0D228, &lit_3795);
#pragma pop
/* 80D0C8B4-80D0CBC8 0006F4 0314+00 1/1 0/0 0/0 .text create__13daObjTHASHI_cFv */
int daObjTHASHI_c::create() {
fopAcM_SetupActor(this, daObjTHASHI_c);
int phase_state = dComIfG_resLoad(&unk11A8, l_arcName);
if (phase_state == cPhs_COMPLEATE_e) {
unk10A0 = -9.0f;
gravity = -0.0f;
int dzb_id = dComIfG_getObjctResName2Index(l_arcName, "S_thashi00.dzb");
/* 80D0D22C-80D0D230 0000A0 0004+00 0/0 0/0 0/0 .rodata @3796 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3796 = 60.0f;
COMPILER_STRIP_GATE(0x80D0D22C, &lit_3796);
#pragma pop
unk5A4 = 0;
#if DEBUG
if (dzb_id == -1) {
OSReport("dzbデータが見つかりませんでした!<%s>\n\n", l_arcName);
}
JUT_ASSERT(1797, dzb_id != -1);
#endif
phase_state = MoveBGCreate(l_arcName, dzb_id, dBgS_MoveBGProc_TypicalRotY, 0x4000, 0);
if (phase_state == cPhs_ERROR_e) {
return phase_state;
}
/* 80D0D230-80D0D234 0000A4 0004+00 0/0 0/0 0/0 .rodata @3797 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3797 = 30.0f;
COMPILER_STRIP_GATE(0x80D0D230, &lit_3797);
#pragma pop
fopAcM_SetMtx(this, mThashi00Model->getBaseTRMtx());
initCcCylinder();
unk636 = 0;
mTrans.set(current.pos.x, current.pos.y, current.pos.z);
daObjTHASHI_Execute(this);
}
return phase_state;
}
/* 80D0D234-80D0D238 0000A8 0004+00 0/0 0/0 0/0 .rodata @3833 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3833 = 150.0f;
COMPILER_STRIP_GATE(0x80D0D234, &lit_3833);
#pragma pop
/* 80D0D238-80D0D23C 0000AC 0004+00 0/0 0/0 0/0 .rodata @3834 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3834 = 10.0f;
COMPILER_STRIP_GATE(0x80D0D238, &lit_3834);
#pragma pop
/* 80D0D23C-80D0D240 0000B0 0004+00 0/0 0/0 0/0 .rodata @3855 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3855 = 70.0f;
COMPILER_STRIP_GATE(0x80D0D23C, &lit_3855);
#pragma pop
/* 80D0D240-80D0D244 0000B4 0004+00 0/0 0/0 0/0 .rodata @3856 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3856 = 13.0f / 20.0f;
COMPILER_STRIP_GATE(0x80D0D240, &lit_3856);
#pragma pop
/* 80D0D244-80D0D248 0000B8 0004+00 0/0 0/0 0/0 .rodata @3857 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3857 = 0.25f;
COMPILER_STRIP_GATE(0x80D0D244, &lit_3857);
#pragma pop
/* 80D0D248-80D0D24C 0000BC 0004+00 0/0 0/0 0/0 .rodata @3858 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3858 = 1.5f;
COMPILER_STRIP_GATE(0x80D0D248, &lit_3858);
#pragma pop
/* 80D0D24C-80D0D250 0000C0 0004+00 0/0 0/0 0/0 .rodata @3859 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3859 = 3.0f / 5.0f;
COMPILER_STRIP_GATE(0x80D0D24C, &lit_3859);
#pragma pop
/* 80D0D250-80D0D254 0000C4 0004+00 0/0 0/0 0/0 .rodata @3860 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3860 = 1.0f;
COMPILER_STRIP_GATE(0x80D0D250, &lit_3860);
#pragma pop
/* 80D0D254-80D0D258 0000C8 0004+00 0/0 0/0 0/0 .rodata @3861 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3861 = 8192.0f;
COMPILER_STRIP_GATE(0x80D0D254, &lit_3861);
#pragma pop
/* 80D0D258-80D0D25C 0000CC 0004+00 0/0 0/0 0/0 .rodata @3862 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3862 = 32000.0f;
COMPILER_STRIP_GATE(0x80D0D258, &lit_3862);
#pragma pop
/* 80D0D25C-80D0D260 0000D0 0004+00 0/0 0/0 0/0 .rodata @3863 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3863 = 15000.0f;
COMPILER_STRIP_GATE(0x80D0D25C, &lit_3863);
#pragma pop
/* 80D0D260-80D0D264 0000D4 0004+00 0/0 0/0 0/0 .rodata @3864 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3864 = 65536.0f;
COMPILER_STRIP_GATE(0x80D0D260, &lit_3864);
#pragma pop
/* 80D0D264-80D0D268 0000D8 0004+00 0/0 0/0 0/0 .rodata @3947 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3947 = -1.0f / 20.0f;
COMPILER_STRIP_GATE(0x80D0D264, &lit_3947);
#pragma pop
/* 80D0D268-80D0D26C 0000DC 0004+00 0/0 0/0 0/0 .rodata @3973 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3973 = 1.0f / 5.0f;
COMPILER_STRIP_GATE(0x80D0D268, &lit_3973);
#pragma pop
/* 80D0D26C-80D0D270 0000E0 0004+00 0/0 0/0 0/0 .rodata @3974 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3974 = 4.0f;
COMPILER_STRIP_GATE(0x80D0D26C, &lit_3974);
#pragma pop
/* 80D0D270-80D0D274 0000E4 0004+00 0/0 0/0 0/0 .rodata @3975 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3975 = 7.0f / 10.0f;
COMPILER_STRIP_GATE(0x80D0D270, &lit_3975);
#pragma pop
/* 80D0D274-80D0D278 0000E8 0004+00 0/0 0/0 0/0 .rodata @3976 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3976 = 3.0f / 10.0f;
COMPILER_STRIP_GATE(0x80D0D274, &lit_3976);
#pragma pop
/* 80D0D278-80D0D27C 0000EC 0004+00 0/0 0/0 0/0 .rodata @3977 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3977 = 5000.0f;
COMPILER_STRIP_GATE(0x80D0D278, &lit_3977);
#pragma pop
/* 80D0D27C-80D0D280 0000F0 0004+00 0/0 0/0 0/0 .rodata @3978 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3978 = 5.0f;
COMPILER_STRIP_GATE(0x80D0D27C, &lit_3978);
#pragma pop
/* 80D0D280-80D0D284 0000F4 0004+00 1/1 0/0 0/0 .rodata @3988 */
SECTION_RODATA static f32 const lit_3988 = -9.0f;
COMPILER_STRIP_GATE(0x80D0D280, &lit_3988);
/* 80D0D284-80D0D288 0000F8 0004+00 0/0 0/0 0/0 .rodata @4017 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4017 = 16384.0f;
COMPILER_STRIP_GATE(0x80D0D284, &lit_4017);
#pragma pop
/* 80D0D288-80D0D28C 0000FC 0004+00 0/0 0/0 0/0 .rodata @4018 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4018 = -1.0f;
COMPILER_STRIP_GATE(0x80D0D288, &lit_4018);
#pragma pop
/* 80D0D28C-80D0D294 000100 0004+04 0/0 0/0 0/0 .rodata @4019 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4019[1 + 1 /* padding */] = {
450.0f,
/* padding */
0.0f,
};
COMPILER_STRIP_GATE(0x80D0D28C, &lit_4019);
#pragma pop
/* 80D0D294-80D0D29C 000108 0008+00 0/0 0/0 0/0 .rodata @4270 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_4270[8] = {
0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80D0D294, &lit_4270);
#pragma pop
/* 80D0D29C-80D0D2A4 000110 0008+00 0/0 0/0 0/0 .rodata @4271 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_4271[8] = {
0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80D0D29C, &lit_4271);
#pragma pop
/* 80D0D2A4-80D0D2AC 000118 0008+00 0/0 0/0 0/0 .rodata @4272 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_4272[8] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80D0D2A4, &lit_4272);
#pragma pop
/* 80D0D2AC-80D0D2B0 000120 0004+00 0/0 0/0 0/0 .rodata @4310 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4310 = 3.0f;
COMPILER_STRIP_GATE(0x80D0D2AC, &lit_4310);
#pragma pop
/* 80D0D2B0-80D0D2B4 000124 0004+00 0/0 0/0 0/0 .rodata @4433 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4433 = 2000.0f;
COMPILER_STRIP_GATE(0x80D0D2B0, &lit_4433);
#pragma pop
/* 80D0D2B4-80D0D2B8 000128 0004+00 0/0 0/0 0/0 .rodata @4446 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4446 = 608.0f;
COMPILER_STRIP_GATE(0x80D0D2B4, &lit_4446);
#pragma pop
/* 80D0D2B8-80D0D2BC 00012C 0004+00 0/0 0/0 0/0 .rodata @4447 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4447 = 448.0f;
COMPILER_STRIP_GATE(0x80D0D2B8, &lit_4447);
#pragma pop
/* 80D0D2BC-80D0D2C0 000130 0004+00 1/1 0/0 0/0 .rodata @4656 */
SECTION_RODATA static f32 const lit_4656 = -0.0f;
COMPILER_STRIP_GATE(0x80D0D2BC, &lit_4656);
/* 80D0D2D0-80D0D2D0 000144 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80D0D324 = "S_thashi00.dzb";
#pragma pop
/* 80D0CE68-80D0CE70 000CA8 0008+00 1/0 0/0 0/0 .text daObjTHASHI_IsDelete__FP13daObjTHASHI_c */
static int daObjTHASHI_IsDelete(daObjTHASHI_c* param_0) {
return TRUE;
}
/* 80D0D35C-80D0D37C -00001 0020+00 1/0 0/0 0/0 .data l_daObjTHASHI_Method */
static actor_method_class l_daObjTHASHI_Method = {
(process_method_func)daObjTHASHI_Create__FP10fopAc_ac_c,
(process_method_func)daObjTHASHI_Delete__FP13daObjTHASHI_c,
(process_method_func)daObjTHASHI_Execute__FP13daObjTHASHI_c,
(process_method_func)daObjTHASHI_IsDelete__FP13daObjTHASHI_c,
(process_method_func)daObjTHASHI_Draw__FP13daObjTHASHI_c,
(process_method_func)daObjTHASHI_Create,
(process_method_func)daObjTHASHI_Delete,
(process_method_func)daObjTHASHI_Execute,
(process_method_func)daObjTHASHI_IsDelete,
(process_method_func)daObjTHASHI_Draw,
};
/* 80D0D37C-80D0D3AC -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_THASHI */
@@ -534,197 +282,85 @@ extern actor_process_profile_definition g_profile_Obj_THASHI = {
fopAc_CULLBOX_CUSTOM_e, // cullType
};
/* 80D0D3AC-80D0D3B8 000078 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGSph */
SECTION_DATA extern void* __vt__8cM3dGSph[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__8cM3dGSphFv,
};
/* 80D0D3B8-80D0D3C4 000084 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGCyl */
SECTION_DATA extern void* __vt__8cM3dGCyl[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__8cM3dGCylFv,
};
/* 80D0D3C4-80D0D3D0 000090 000C+00 4/4 0/0 0/0 .data __vt__8cM3dGAab */
SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__8cM3dGAabFv,
};
/* 80D0D3D0-80D0D3F4 00009C 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_80D0D17C,
(void*)NULL,
(void*)NULL,
(void*)func_80D0D174,
};
/* 80D0D3F4-80D0D41C 0000C0 0028+00 1/1 0/0 0/0 .data __vt__13daObjTHASHI_c */
SECTION_DATA extern void* __vt__13daObjTHASHI_c[10] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)CreateHeap__13daObjTHASHI_cFv,
(void*)Create__13daObjTHASHI_cFv,
(void*)Execute__13daObjTHASHI_cFPPA3_A4_f,
(void*)Draw__13daObjTHASHI_cFv,
(void*)Delete__13daObjTHASHI_cFv,
(void*)IsDelete__16dBgS_MoveBgActorFv,
(void*)ToFore__16dBgS_MoveBgActorFv,
(void*)ToBack__16dBgS_MoveBgActorFv,
};
/* 80D0C8B4-80D0CBC8 0006F4 0314+00 1/1 0/0 0/0 .text create__13daObjTHASHI_cFv */
void daObjTHASHI_c::create() {
// NONMATCHING
}
/* 80D0CBC8-80D0CC10 000A08 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
// cM3dGCyl::~cM3dGCyl() {
extern "C" void __dt__8cM3dGCylFv() {
// NONMATCHING
}
/* 80D0CC10-80D0CC58 000A50 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
// cM3dGAab::~cM3dGAab() {
extern "C" void __dt__8cM3dGAabFv() {
// NONMATCHING
}
/* 80D0CC58-80D0CD24 000A98 00CC+00 1/1 0/0 0/0 .text __dt__8dCcD_SphFv */
// dCcD_Sph::~dCcD_Sph() {
extern "C" void __dt__8dCcD_SphFv() {
// NONMATCHING
}
/* 80D0CD24-80D0CDA8 000B64 0084+00 1/1 0/0 0/0 .text __ct__8dCcD_SphFv */
// dCcD_Sph::dCcD_Sph() {
extern "C" void __ct__8dCcD_SphFv() {
// NONMATCHING
}
/* 80D0CDA8-80D0CDF0 000BE8 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGSphFv */
// cM3dGSph::~cM3dGSph() {
extern "C" void __dt__8cM3dGSphFv() {
// NONMATCHING
}
/* 80D0CDF0-80D0CE60 000C30 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
// dBgS_ObjAcch::~dBgS_ObjAcch() {
extern "C" void __dt__12dBgS_ObjAcchFv() {
// NONMATCHING
}
/* 80D0CE60-80D0CE64 000CA0 0004+00 1/1 0/0 0/0 .text __ct__5csXyzFv */
// csXyz::csXyz() {
extern "C" void __ct__5csXyzFv() {
/* empty function */
}
/* 80D0CE64-80D0CE68 000CA4 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */
// cXyz::cXyz() {
extern "C" void __ct__4cXyzFv() {
/* empty function */
}
/* 80D0CE68-80D0CE70 000CA8 0008+00 1/0 0/0 0/0 .text daObjTHASHI_IsDelete__FP13daObjTHASHI_c */
static bool daObjTHASHI_IsDelete(daObjTHASHI_c* param_0) {
return true;
}
/* ############################################################################################## */
/* 80D0D2C0-80D0D2C4 000134 0004+00 0/1 0/0 0/0 .rodata @4790 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4790 = -1000.0f;
COMPILER_STRIP_GATE(0x80D0D2C0, &lit_4790);
#pragma pop
/* 80D0D2C4-80D0D2C8 000138 0004+00 0/1 0/0 0/0 .rodata @4791 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4791 = -500.0f;
COMPILER_STRIP_GATE(0x80D0D2C4, &lit_4791);
#pragma pop
/* 80D0D2C8-80D0D2CC 00013C 0004+00 0/1 0/0 0/0 .rodata @4792 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4792 = 1000.0f;
COMPILER_STRIP_GATE(0x80D0D2C8, &lit_4792);
#pragma pop
/* 80D0D2CC-80D0D2D0 000140 0004+00 0/1 0/0 0/0 .rodata @4793 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4793 = 500.0f;
COMPILER_STRIP_GATE(0x80D0D2CC, &lit_4793);
#pragma pop
/* 80D0CE70-80D0CEB4 000CB0 0044+00 1/0 0/0 0/0 .text Create__13daObjTHASHI_cFv */
void daObjTHASHI_c::Create() {
// NONMATCHING
int daObjTHASHI_c::Create() {
fopAcM_setCullSizeBox(this, -1000.0f, -500.0f, -1000.0f, 1000.0f, 500.0f, 1000.0f);
return cPhs_COMPLEATE_e;
}
/* 80D0CEB4-80D0CEE0 000CF4 002C+00 1/0 0/0 0/0 .text Execute__13daObjTHASHI_cFPPA3_A4_f
*/
void daObjTHASHI_c::Execute(Mtx** param_0) {
// NONMATCHING
int daObjTHASHI_c::Execute(Mtx** i_pMtx) {
*i_pMtx = &mBgMtx;
setBaseMtx();
return TRUE;
}
/* ############################################################################################## */
/* 80D0D41C-80D0D440 -00001 0024+00 1/1 0/0 0/0 .data @4855 */
SECTION_DATA static void* lit_4855[9] = {
(void*)(((char*)Draw__13daObjTHASHI_cFv) + 0x1AC),
(void*)(((char*)Draw__13daObjTHASHI_cFv) + 0x1B8),
(void*)(((char*)Draw__13daObjTHASHI_cFv) + 0x1B8),
(void*)(((char*)Draw__13daObjTHASHI_cFv) + 0x1F0),
(void*)(((char*)Draw__13daObjTHASHI_cFv) + 0x218),
(void*)(((char*)Draw__13daObjTHASHI_cFv) + 0x244),
(void*)(((char*)Draw__13daObjTHASHI_cFv) + 0x244),
(void*)(((char*)Draw__13daObjTHASHI_cFv) + 0x1B8),
(void*)(((char*)Draw__13daObjTHASHI_cFv) + 0x218),
};
/* 80D0D440-80D0D464 -00001 0024+00 1/1 0/0 0/0 .data @4854 */
SECTION_DATA static void* lit_4854[9] = {
(void*)(((char*)Draw__13daObjTHASHI_cFv) + 0x54),
(void*)(((char*)Draw__13daObjTHASHI_cFv) + 0x70),
(void*)(((char*)Draw__13daObjTHASHI_cFv) + 0x70),
(void*)(((char*)Draw__13daObjTHASHI_cFv) + 0xDC),
(void*)(((char*)Draw__13daObjTHASHI_cFv) + 0x118),
(void*)(((char*)Draw__13daObjTHASHI_cFv) + 0x168),
(void*)(((char*)Draw__13daObjTHASHI_cFv) + 0x168),
(void*)(((char*)Draw__13daObjTHASHI_cFv) + 0x70),
(void*)(((char*)Draw__13daObjTHASHI_cFv) + 0x118),
};
/* 80D0CEE0-80D0D140 000D20 0260+00 3/0 0/0 0/0 .text Draw__13daObjTHASHI_cFv */
void daObjTHASHI_c::Draw() {
// NONMATCHING
// needs to be inline for jump tables to be at end of data
inline int daObjTHASHI_c::Draw() {
g_env_light.settingTevStruct(0, &current.pos, &tevStr);
switch (unk5A4) {
case 0:
g_env_light.setLightTevColorType_MAJI(mThashi00Model, &tevStr);
break;
case 1:
case 2:
case 7:
for (int i = 0; i < 10; i++) {
g_env_light.setLightTevColorType_MAJI(mThashi03Models[i], &tevStr);
}
g_env_light.setLightTevColorType_MAJI(mThashi01Model, &tevStr);
g_env_light.setLightTevColorType_MAJI(mThashi02Model, &tevStr);
break;
case 3:
for (int i = 0; i < 50; i++) {
g_env_light.setLightTevColorType_MAJI(mThashi03Models[i], &tevStr);
}
break;
case 4:
case 8:
for (int i = 0; i < 40; i++) {
g_env_light.setLightTevColorType_MAJI(mThashi03Models[i], &tevStr);
}
g_env_light.setLightTevColorType_MAJI(mThashi01Model, &tevStr);
break;
}
dComIfGd_setListBG();
switch (unk5A4) {
case 0:
mDoExt_modelUpdateDL(mThashi00Model);
break;
case 1:
case 2:
case 7:
for (int i = 0; i < 10; i++) {
mDoExt_modelUpdateDL(mThashi03Models[i]);
}
mDoExt_modelUpdateDL(mThashi01Model);
mDoExt_modelUpdateDL(mThashi02Model);
break;
case 3:
for (int i = 0; i < 50; i++) {
mDoExt_modelUpdateDL(mThashi03Models[i]);
}
break;
case 4:
case 8:
for (int i = 0; i < 40; i++) {
mDoExt_modelUpdateDL(mThashi03Models[i]);
}
mDoExt_modelUpdateDL(mThashi01Model);
break;
}
return TRUE;
}
/* 80D0D140-80D0D174 000F80 0034+00 1/0 0/0 0/0 .text Delete__13daObjTHASHI_cFv */
void daObjTHASHI_c::Delete() {
// NONMATCHING
// has to be inline to maintain function order with Draw as inline
inline int daObjTHASHI_c::Delete() {
dComIfG_resDelete(&unk11A8, l_arcName);
return TRUE;
}
/* 80D0D174-80D0D17C 000FB4 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
static void func_80D0D174() {
// NONMATCHING
}
/* 80D0D17C-80D0D184 000FBC 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
static void func_80D0D17C() {
// NONMATCHING
}
/* 80D0D2D0-80D0D2D0 000144 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */