d_file_select, JASResArcLoader, d_a_obj_stone, d_a_obj_stone_mark (#309)

* setup TU

* JASResArcLoader OK

* d_a_obj_stoneMark work

* some funcs in d_a_obj_stoneMark

* many changes

* quat, d_a_obj_stone, d_a_alink, fix python script, tidy makefile

* d_file_select functions + pr cleanup
This commit is contained in:
Pheenoh
2023-03-17 21:05:06 -06:00
committed by GitHub
parent a01d65b0b9
commit 3cdef97cb8
79 changed files with 2315 additions and 2996 deletions
File diff suppressed because it is too large Load Diff
@@ -1,81 +1,15 @@
//
// Generated By: dol2asm
// Translation Unit: d_a_obj_stoneMark
//
/**
* d_a_obj_stoneMark.cpp
* Actor - Object Stone Mark
*
* Visual mark under the stone actor (d_a_obj_stone)
*
*/
#include "rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct request_of_phase_process_class {};
struct csXyz {};
struct cXyz {};
struct mDoMtx_stack_c {
/* 8000CD64 */ void transS(cXyz const&);
/* 8000CF44 */ void ZXYrotM(csXyz const&);
static u8 now[48];
};
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
};
struct daObjSMark_c {
/* 8059A018 */ void initBaseMtx();
/* 8059A038 */ void setBaseMtx();
/* 8059A080 */ void Create();
/* 8059A168 */ void create();
/* 8059A2CC */ void draw();
/* 8059A33C */ void _delete();
};
struct dRes_info_c {};
struct dRes_control_c {
/* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
};
struct dCcD_GStts {
/* 80083760 */ dCcD_GStts();
};
struct dBgS_PolyPassChk {
/* 80078E68 */ void SetObj();
};
struct dBgS_ObjAcch {
/* 8059A25C */ ~dBgS_ObjAcch();
};
struct dBgS_AcchCir {
/* 80075EAC */ dBgS_AcchCir();
/* 80075F58 */ void SetWall(f32, f32);
};
struct dBgS {};
struct dBgS_Acch {
/* 80075F94 */ ~dBgS_Acch();
/* 800760A0 */ dBgS_Acch();
/* 80076248 */ void Set(cXyz*, cXyz*, fopAc_ac_c*, int, dBgS_AcchCir*, cXyz*, csXyz*, csXyz*);
/* 80076AAC */ void CrrPos(dBgS&);
};
struct cBgS_PolyInfo {};
struct _GXTlutObj {};
struct _GXTexObj {};
struct ResTIMG {};
#include "m_Do/m_Do_lib.h"
//
// Forward References:
@@ -94,6 +28,7 @@ extern "C" static void daObjSMark_Create__FP10fopAc_ac_c();
extern "C" static void func_8059A3D0();
extern "C" static void func_8059A3D8();
extern "C" extern char const* const d_a_obj_stoneMark__stringBase0;
extern void* __vt__12dBgS_ObjAcch[9];
//
// External References:
@@ -117,41 +52,28 @@ extern "C" void CrrPos__9dBgS_AcchFR4dBgS();
extern "C" void SetObj__16dBgS_PolyPassChkFv();
extern "C" void __ct__10dCcD_GSttsFv();
extern "C" void __dl__FPv();
extern "C" void PSMTXCopy();
extern "C" void _savegpr_29();
extern "C" void _restgpr_29();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
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" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_env_light[4880];
//
// Declarations:
//
/* 8059A018-8059A038 000078 0020+00 1/1 0/0 0/0 .text initBaseMtx__12daObjSMark_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjSMark_c::initBaseMtx() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/initBaseMtx__12daObjSMark_cFv.s"
void daObjSMark_c::initBaseMtx() {
setBaseMtx();
}
#pragma pop
/* 8059A038-8059A080 000098 0048+00 1/1 0/0 0/0 .text setBaseMtx__12daObjSMark_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjSMark_c::setBaseMtx() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/setBaseMtx__12daObjSMark_cFv.s"
void daObjSMark_c::setBaseMtx() {
mDoMtx_stack_c::transS(current.pos);
mDoMtx_stack_c::ZXYrotM(shape_angle);
PSMTXCopy((MtxP)&mDoMtx_stack_c::now,(MtxP)&mCullMtx);
}
#pragma pop
/* ############################################################################################## */
/* 8059A3E8-8059A3EC 000000 0004+00 2/2 0/0 0/0 .rodata @3642 */
SECTION_RODATA static u8 const lit_3642[4] = {
@@ -183,69 +105,69 @@ SECTION_DEAD static char const* const stringBase_8059A404 = "A_IwaAto";
#pragma pop
/* 8059A410-8059A414 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
SECTION_DATA static void* l_arcName = (void*)&d_a_obj_stoneMark__stringBase0;
static char* l_arcName = "A_IwaAto";
/* 8059A080-8059A168 0000E0 00E8+00 1/1 0/0 0/0 .text Create__12daObjSMark_cFv */
#ifdef NONMATCHING
// matches with literals
int daObjSMark_c::Create() {
initBaseMtx();
fopAcM_SetMtx(this,(MtxP)&mCullMtx);
fopAcM_setCullSizeSphere(this,0.0f,0.0f,0.0f,100.0f);
mAcchCir.SetWall(30.0f,30.0f);
mObjAcch.Set(&fopAcM_GetPosition_p(this),&fopAcM_GetOldPosition_p(this),this,1,&mAcchCir,&fopAcM_GetSpeed_p(this),0,0);
mObjAcch.CrrPos(dComIfG_Bgsp());
mDoLib_setResTimgObj((ResTIMG*)dComIfG_getObjectRes(l_arcName,3),&mTexObj,0,0);
return 1;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjSMark_c::Create() {
asm int daObjSMark_c::Create() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/Create__12daObjSMark_cFv.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 8059A414-8059A434 -00001 0020+00 1/0 0/0 0/0 .data l_daObjSMark_Method */
SECTION_DATA static void* l_daObjSMark_Method[8] = {
(void*)daObjSMark_Create__FP10fopAc_ac_c,
(void*)daObjSMark_Delete__FP12daObjSMark_c,
(void*)NULL,
(void*)NULL,
(void*)daObjSMark_Draw__FP12daObjSMark_c,
(void*)NULL,
(void*)NULL,
(void*)NULL,
};
/* 8059A434-8059A464 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_StoneMark */
SECTION_DATA extern void* g_profile_Obj_StoneMark[12] = {
(void*)0xFFFFFFFD, (void*)0x0007FFFD,
(void*)0x01710000, (void*)&g_fpcLf_Method,
(void*)0x00000814, (void*)NULL,
(void*)NULL, (void*)&g_fopAc_Method,
(void*)0x02160000, (void*)&l_daObjSMark_Method,
(void*)0x00040100, (void*)0x00170000,
};
/* 8059A464-8059A488 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_8059A3D8,
(void*)NULL,
(void*)NULL,
(void*)func_8059A3D0,
};
/* 8059A168-8059A25C 0001C8 00F4+00 1/1 0/0 0/0 .text create__12daObjSMark_cFv */
#ifdef NONMATCHING
// matches, but has issues with weak labels being used
int daObjSMark_c::create() {
if (!fopAcM_CheckCondition(this, 8)) {
new (this) daObjSMark_c();
fopAcM_OnCondition(this, 8);
}
int phase = dComIfG_resLoad(&mpPhase,l_arcName);
if (phase == cPhs_COMPLEATE_e){
if (!Create()) {
return cPhs_ERROR_e;
}
}
return phase;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjSMark_c::create() {
asm int daObjSMark_c::create() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/func_8059A168.s"
}
#pragma pop
#endif
/* 8059A25C-8059A2CC 0002BC 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dBgS_ObjAcch::~dBgS_ObjAcch() {
// asm dBgS_ObjAcch::~dBgS_ObjAcch() {
extern "C" asm void __dt__12dBgS_ObjAcchFv() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/__dt__12dBgS_ObjAcchFv.s"
}
@@ -255,9 +177,11 @@ asm dBgS_ObjAcch::~dBgS_ObjAcch() {
/* 8059A3F4-8059A3FC 00000C 0008+00 0/1 0/0 0/0 .rodata l_shadow_size$3714 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const l_shadow_size[8] = {
0x42, 0x5C, 0x00, 0x00, 0x42, 0xAA, 0x00, 0x00,
static const f32 l_shadow_size[2] = {
55.0f,
85.0f
};
COMPILER_STRIP_GATE(0x8059A3F4, &l_shadow_size);
#pragma pop
@@ -276,57 +200,51 @@ COMPILER_STRIP_GATE(0x8059A400, &lit_3719);
#pragma pop
/* 8059A2CC-8059A33C 00032C 0070+00 1/1 0/0 0/0 .text draw__12daObjSMark_cFv */
#ifdef NONMATCHING
// matches with literals
int daObjSMark_c::draw() {
dComIfGd_setSimpleShadow(&current.pos,
mObjAcch.GetGroundH(),
l_shadow_size[fopAcM_GetParam(this) & 0xFF],
mObjAcch.m_gnd,
shape_angle.y,
((f32)-0.6 - g_env_light.field_0x1238 * (f32)0.4),
&this->mTexObj);
return 1;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjSMark_c::draw() {
asm int daObjSMark_c::draw() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/draw__12daObjSMark_cFv.s"
}
#pragma pop
#endif
/* 8059A33C-8059A370 00039C 0034+00 1/1 0/0 0/0 .text _delete__12daObjSMark_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjSMark_c::_delete() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/_delete__12daObjSMark_cFv.s"
int daObjSMark_c::_delete() {
dComIfG_resDelete(&mpPhase,l_arcName);
return 1;
}
#pragma pop
/* 8059A370-8059A390 0003D0 0020+00 1/0 0/0 0/0 .text daObjSMark_Draw__FP12daObjSMark_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjSMark_Draw(daObjSMark_c* param_0) {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/daObjSMark_Draw__FP12daObjSMark_c.s"
static int daObjSMark_Draw(daObjSMark_c* i_this) {
return i_this->draw();
}
#pragma pop
/* 8059A390-8059A3B0 0003F0 0020+00 1/0 0/0 0/0 .text daObjSMark_Delete__FP12daObjSMark_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjSMark_Delete(daObjSMark_c* param_0) {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/daObjSMark_Delete__FP12daObjSMark_c.s"
static int daObjSMark_Delete(daObjSMark_c* i_this) {
return i_this->_delete();
}
#pragma pop
/* 8059A3B0-8059A3D0 000410 0020+00 1/0 0/0 0/0 .text daObjSMark_Create__FP10fopAc_ac_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjSMark_Create(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/daObjSMark_Create__FP10fopAc_ac_c.s"
static int daObjSMark_Create(fopAc_ac_c* i_this) {
return static_cast<daObjSMark_c*>(i_this)->create();
}
#pragma pop
/* 8059A3D0-8059A3D8 000430 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
#pragma push
@@ -349,3 +267,49 @@ static asm void func_8059A3D8() {
#pragma pop
/* 8059A404-8059A404 00001C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
/* ############################################################################################## */
/* 8059A414-8059A434 -00001 0020+00 1/0 0/0 0/0 .data l_daObjSMark_Method */
static actor_method_class l_daObjSMark_Method = {
(process_method_func)daObjSMark_Create__FP10fopAc_ac_c,
(process_method_func)daObjSMark_Delete__FP12daObjSMark_c,
(process_method_func)0,
(process_method_func)0,
(process_method_func)daObjSMark_Draw__FP12daObjSMark_c
};
/* 8059A434-8059A464 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_StoneMark */
extern actor_process_profile_definition g_profile_Obj_StoneMark = {
-3, // mLayerID
7, // mListID
-3, // mListPrio
PROC_Obj_StoneMark, // mProcName
0, // padding
&g_fpcLf_Method.mBase, // mSubMtd
sizeof(daObjSMark_c), // mSize
0, // mSizeOther
0, // mParameters
&g_fopAc_Method.base, // mSubMtd
0x0216, // mPriority
0, // padding
0, // padding
&l_daObjSMark_Method, // mSubMtd
0x00040100, // mStatus
0, // mActorType
23, // mCullType
0, // padding
0 // padding
};
/* 8059A464-8059A488 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_8059A3D8,
(void*)NULL,
(void*)NULL,
(void*)func_8059A3D0,
};