mirror of
https://github.com/zeldaret/tp
synced 2026-08-05 17:44:09 -04:00
obj_master_sword wip, fmobj mostly done, obj_usaku OK, some BG doc (#1897)
* obj_master_sword work, fix tag_chgrestart * fmobj mostly done * some bg documentation * d_a_obj_usaku OK * remove asm
This commit is contained in:
@@ -647,7 +647,7 @@ int daBg_c::createHeap() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (mpBgW->Set(dzb, 0x20, NULL)) {
|
||||
if (mpBgW->Set(dzb, cBgW::GLOBAL_e, NULL)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -508,7 +508,7 @@ asm void daBgObj_c::setAttentionInfo(fopAc_ac_c* param_0) {
|
||||
void daBgObj_c::initBaseMtx() {
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), field_0x56c);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
setBaseMtx();
|
||||
}
|
||||
|
||||
@@ -516,7 +516,7 @@ void daBgObj_c::initBaseMtx() {
|
||||
void daBgObj_c::setBaseMtx() {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (field_0x5a8[field_0xcc8][i] != NULL) {
|
||||
field_0x5a8[field_0xcc8][i]->i_setBaseTRMtx(field_0x56c);
|
||||
field_0x5a8[field_0xcc8][i]->i_setBaseTRMtx(mBgMtx);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -584,8 +584,8 @@ int daBgObj_c::CreateInitType0() {
|
||||
int daBgObj_c::CreateInitType1() {
|
||||
if (i_fopAcM_isSwitch(this, daBgObj_prm::getSwBit(this))) {
|
||||
field_0xcc8 = 1;
|
||||
release(field_0x568);
|
||||
regist(mpBgW);
|
||||
release(mpBgW);
|
||||
regist(mpBgW2);
|
||||
mAction = 3;
|
||||
} else {
|
||||
field_0xcc8 = 0;
|
||||
@@ -613,8 +613,8 @@ int daBgObj_c::CreateInitType1() {
|
||||
|
||||
mEventIdx = i_dComIfGp_getEventManager().getEventIdx(this, daBgObj_prm::getEvId(this));
|
||||
|
||||
if (mpBgW != NULL) {
|
||||
mpBgW->Move();
|
||||
if (mpBgW2 != NULL) {
|
||||
mpBgW2->Move();
|
||||
}
|
||||
|
||||
initAtt();
|
||||
@@ -801,9 +801,9 @@ int daBgObj_c::CreateHeapType1() {
|
||||
|
||||
cBgD_t* dzb = (cBgD_t*)dComIfG_getObjectRes(daSetBgObj_c::getArcName(this), getDzbName(1));
|
||||
if (dzb != NULL) {
|
||||
mpBgW = new dBgW();
|
||||
if (mpBgW == NULL || mpBgW->Set(dzb, 1, &field_0x56c)) {
|
||||
mpBgW = NULL;
|
||||
mpBgW2 = new dBgW();
|
||||
if (mpBgW2 == NULL || mpBgW2->Set(dzb, cBgW::MOVE_BG_e, &mBgMtx)) {
|
||||
mpBgW2 = NULL;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -1270,8 +1270,8 @@ int daBgObj_c::actionOrder() {
|
||||
if (!i_fopAcM_isSwitch(this, daBgObj_prm::getSwBit(this)) || field_0xd00 != 0 ||
|
||||
field_0xcc8 == 0)
|
||||
{
|
||||
release(field_0x568);
|
||||
regist(mpBgW);
|
||||
release(mpBgW);
|
||||
regist(mpBgW2);
|
||||
field_0xcc8 = 1;
|
||||
|
||||
settingCullSizeBoxForCull(field_0xcc8);
|
||||
@@ -1323,21 +1323,21 @@ int daBgObj_c::ExecuteType0() {
|
||||
if (arg0 == 0xFF) {
|
||||
if (i_fopAcM_isSwitch(this, swBit)) {
|
||||
if (field_0xcc8 == 1) {
|
||||
regist(field_0x568);
|
||||
regist(mpBgW);
|
||||
field_0xcc8 = 0;
|
||||
}
|
||||
} else if (field_0xcc8 == 0) {
|
||||
release(field_0x568);
|
||||
release(mpBgW);
|
||||
field_0xcc8 = 1;
|
||||
}
|
||||
} else if (arg0 == 0) {
|
||||
if (i_fopAcM_isSwitch(this, swBit)) {
|
||||
if (field_0xcc8 == 0) {
|
||||
release(field_0x568);
|
||||
release(mpBgW);
|
||||
field_0xcc8 = 1;
|
||||
}
|
||||
} else if (field_0xcc8 == 1) {
|
||||
regist(field_0x568);
|
||||
regist(mpBgW);
|
||||
field_0xcc8 = 0;
|
||||
}
|
||||
}
|
||||
@@ -1374,7 +1374,7 @@ int daBgObj_c::Execute(f32 (**param_0)[3][4]) {
|
||||
}
|
||||
}
|
||||
|
||||
*param_0 = &field_0x56c;
|
||||
*param_0 = &mBgMtx;
|
||||
setBaseMtx();
|
||||
return 1;
|
||||
}
|
||||
@@ -1439,7 +1439,7 @@ void daBgObj_c::indirectProc(J3DModel* i_model) {
|
||||
|
||||
/* 8045C2E8-8045C330 002D08 0048+00 1/0 0/0 0/0 .text Delete__9daBgObj_cFv */
|
||||
int daBgObj_c::Delete() {
|
||||
release(mpBgW);
|
||||
release(mpBgW2);
|
||||
dComIfG_resDelete(&mPhase, daSetBgObj_c::getArcName(this));
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -179,7 +179,7 @@ int daDsh_c::Draw() {
|
||||
int daDsh_c::Execute(f32 (**param_0)[3][4]) {
|
||||
callExecute();
|
||||
setMtx();
|
||||
*param_0 = &field_0x56c;
|
||||
*param_0 = &mBgMtx;
|
||||
func_80467DF8(&mTiltTime);
|
||||
return 1;
|
||||
}
|
||||
@@ -190,7 +190,7 @@ void daDsh_c::setMtx() {
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
|
||||
mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), field_0x56c);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
}
|
||||
|
||||
/* 80467708-8046772C 0002E8 0024+00 5/5 0/0 0/0 .text setAction__7daDsh_cFPQ27daDsh_c8action_c */
|
||||
|
||||
@@ -15,7 +15,7 @@ void daIzumiGate_c::initBaseMtx() {
|
||||
/* 808490B8-8084910C 000098 0054+00 2/2 0/0 0/0 .text setBaseMtx__13daIzumiGate_cFv */
|
||||
void daIzumiGate_c::setBaseMtx() {
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
PSMTXCopy(mDoMtx_stack_c::now, field_0x56c);
|
||||
PSMTXCopy(mDoMtx_stack_c::now, mBgMtx);
|
||||
PSMTXCopy(mDoMtx_stack_c::now, mpModel->mBaseTransformMtx);
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ int daIzumiGate_c::create() {
|
||||
if (phase == cPhs_ERROR_e) {
|
||||
return phase;
|
||||
}
|
||||
fopAcM_SetMtx(this, field_0x56c);
|
||||
fopAcM_SetMtx(this, mBgMtx);
|
||||
}
|
||||
return phase;
|
||||
}
|
||||
@@ -80,7 +80,7 @@ int daIzumiGate_c::Create() {
|
||||
/* 808492FC-80849328 0002DC 002C+00 1/0 0/0 0/0 .text Execute__13daIzumiGate_cFPPA3_A4_f
|
||||
*/
|
||||
int daIzumiGate_c::Execute(Mtx** i_mtx) {
|
||||
*i_mtx = &field_0x56c;
|
||||
*i_mtx = &mBgMtx;
|
||||
setBaseMtx();
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ void daObjBoard_c::setBaseMtx() {
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::ZXYrotM(shape_angle);
|
||||
mDoMtx_stack_c::scaleM(mScale);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), field_0x56c);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
}
|
||||
|
||||
/* 8057BE20-8057BE24 -00001 0004+00 2/2 0/0 0/0 .data l_arcName */
|
||||
@@ -102,12 +102,12 @@ int daObjBoard_c::Execute(Mtx** param_0) {
|
||||
case 7:
|
||||
case 15:
|
||||
if (i_fopAcM_isSwitch(this, getSwNo())) {
|
||||
if (!field_0x568->ChkUsed()) {
|
||||
dComIfG_Bgsp().Regist(field_0x568, this);
|
||||
if (!mpBgW->ChkUsed()) {
|
||||
dComIfG_Bgsp().Regist(mpBgW, this);
|
||||
}
|
||||
} else {
|
||||
if (field_0x568->ChkUsed()) {
|
||||
dComIfG_Bgsp().Release(field_0x568);
|
||||
if (mpBgW->ChkUsed()) {
|
||||
dComIfG_Bgsp().Release(mpBgW);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -117,18 +117,18 @@ int daObjBoard_c::Execute(Mtx** param_0) {
|
||||
case 6:
|
||||
case 8:
|
||||
if (i_fopAcM_isSwitch(this, getSwNo())) {
|
||||
if (field_0x568->ChkUsed()) {
|
||||
dComIfG_Bgsp().Release(field_0x568);
|
||||
if (mpBgW->ChkUsed()) {
|
||||
dComIfG_Bgsp().Release(mpBgW);
|
||||
}
|
||||
} else {
|
||||
if (!field_0x568->ChkUsed()) {
|
||||
dComIfG_Bgsp().Regist(field_0x568, this);
|
||||
if (!mpBgW->ChkUsed()) {
|
||||
dComIfG_Bgsp().Regist(mpBgW, this);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
*param_0 = &field_0x56c;
|
||||
*param_0 = &mBgMtx;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ void daCowdoor_c::setBaseMtx() {
|
||||
PSMTXTrans(mDoMtx_stack_c::now, current.pos.x, current.pos.y, current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
PSMTXCopy(mDoMtx_stack_c::now, field_0x5a8->mBaseTransformMtx);
|
||||
PSMTXCopy(mDoMtx_stack_c::now, field_0x56c);
|
||||
PSMTXCopy(mDoMtx_stack_c::now, mBgMtx);
|
||||
}
|
||||
|
||||
/* 80BCC86C-80BCC8C4 0000EC 0058+00 1/0 0/0 0/0 .text Create__11daCowdoor_cFv */
|
||||
@@ -57,7 +57,7 @@ int daCowdoor_c::create() {
|
||||
|
||||
/* 80BCCA1C-80BCCA48 00029C 002C+00 1/0 0/0 0/0 .text Execute__11daCowdoor_cFPPA3_A4_f */
|
||||
int daCowdoor_c::Execute(f32 (**param_0)[3][4]) {
|
||||
*param_0 = &field_0x56c;
|
||||
*param_0 = &mBgMtx;
|
||||
setBaseMtx();
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -4,74 +4,13 @@
|
||||
//
|
||||
|
||||
#include "rel/d/a/obj/d_a_obj_fmobj/d_a_obj_fmobj.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "d/bg/d_bg_w.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct request_of_phase_process_class {};
|
||||
|
||||
struct obj_fmobj_class {};
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
/* 8000CD9C */ void transM(f32, f32, f32);
|
||||
|
||||
static u8 now[48];
|
||||
};
|
||||
|
||||
struct fopAc_ac_c {
|
||||
/* 80018B64 */ fopAc_ac_c();
|
||||
};
|
||||
|
||||
struct dSv_memBit_c {
|
||||
/* 80034934 */ void isDungeonItem(int) const;
|
||||
};
|
||||
|
||||
struct dKy_tevstr_c {};
|
||||
|
||||
struct J3DModelData {};
|
||||
|
||||
struct cXyz {};
|
||||
|
||||
struct dScnKy_env_light_c {
|
||||
/* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*);
|
||||
/* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*);
|
||||
};
|
||||
|
||||
struct dRes_info_c {};
|
||||
|
||||
struct dRes_control_c {
|
||||
/* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
|
||||
};
|
||||
|
||||
struct dBgW_Base {};
|
||||
|
||||
struct dBgW {
|
||||
/* 8007B970 */ dBgW();
|
||||
/* 8007B9C0 */ void Move();
|
||||
};
|
||||
|
||||
struct dBgS {
|
||||
/* 80074A08 */ void Regist(dBgW_Base*, fopAc_ac_c*);
|
||||
};
|
||||
|
||||
struct csXyz {};
|
||||
|
||||
struct cBgD_t {};
|
||||
|
||||
struct cBgW {
|
||||
/* 80079F38 */ void Set(cBgD_t*, u32, f32 (*)[3][4]);
|
||||
};
|
||||
|
||||
struct cBgS_PolyInfo {};
|
||||
|
||||
struct cBgS {
|
||||
/* 80074250 */ void Release(dBgW_Base*);
|
||||
};
|
||||
|
||||
struct J3DModel {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -83,7 +22,6 @@ extern "C" static void daObj_Fmobj_Delete__FP15obj_fmobj_class();
|
||||
extern "C" static void useHeapInit__FP10fopAc_ac_c();
|
||||
extern "C" static void daObj_Fmobj_Create__FP10fopAc_ac_c();
|
||||
extern "C" extern char const* const d_a_obj_fmobj__stringBase0;
|
||||
extern "C" extern void* g_profile_OBJ_FMOBJ[12];
|
||||
|
||||
//
|
||||
// External References:
|
||||
@@ -109,71 +47,72 @@ extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
|
||||
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
|
||||
extern "C" void cM_rndF__Ff();
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" void PSMTXCopy();
|
||||
extern "C" void PSMTXTrans();
|
||||
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" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_env_light[4880];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 8057CBD8-8057CC44 000078 006C+00 1/0 0/0 0/0 .text daObj_Fmobj_Draw__FP15obj_fmobj_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObj_Fmobj_Draw(obj_fmobj_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_fmobj/d_a_obj_fmobj/daObj_Fmobj_Draw__FP15obj_fmobj_class.s"
|
||||
static int daObj_Fmobj_Draw(obj_fmobj_class* i_this) {
|
||||
J3DModel* model_p = i_this->mpModel;
|
||||
|
||||
g_env_light.settingTevStruct(0x40, &i_this->current.pos, &i_this->mTevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(model_p, &i_this->mTevStr);
|
||||
mDoExt_modelUpdateDL(model_p);
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8057CC44-8057CC84 0000E4 0040+00 1/0 0/0 0/0 .text daObj_Fmobj_Execute__FP15obj_fmobj_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObj_Fmobj_Execute(obj_fmobj_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_fmobj/d_a_obj_fmobj/daObj_Fmobj_Execute__FP15obj_fmobj_class.s"
|
||||
static int daObj_Fmobj_Execute(obj_fmobj_class* i_this) {
|
||||
i_this->field_0x578++;
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (i_this->field_0x57e[i] != 0) {
|
||||
i_this->field_0x57e[i]--;
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8057CC84-8057CC8C 000124 0008+00 1/0 0/0 0/0 .text daObj_Fmobj_IsDelete__FP15obj_fmobj_class */
|
||||
static bool daObj_Fmobj_IsDelete(obj_fmobj_class* param_0) {
|
||||
return true;
|
||||
static int daObj_Fmobj_IsDelete(obj_fmobj_class* i_this) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8057CF74-8057CF74 00000C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_8057CF74 = "Obj_Fmobj";
|
||||
#pragma pop
|
||||
|
||||
/* 8057CC8C-8057CCDC 00012C 0050+00 1/0 0/0 0/0 .text daObj_Fmobj_Delete__FP15obj_fmobj_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObj_Fmobj_Delete(obj_fmobj_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_fmobj/d_a_obj_fmobj/daObj_Fmobj_Delete__FP15obj_fmobj_class.s"
|
||||
static int daObj_Fmobj_Delete(obj_fmobj_class* i_this) {
|
||||
dComIfG_resDelete(&i_this->mPhase, "Obj_Fmobj");
|
||||
dComIfG_Bgsp().Release(i_this->mpBgW);
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8057CCDC-8057CDE0 00017C 0104+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void useHeapInit(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_fmobj/d_a_obj_fmobj/useHeapInit__FP10fopAc_ac_c.s"
|
||||
static int useHeapInit(fopAc_ac_c* i_this) {
|
||||
obj_fmobj_class* a_this = (obj_fmobj_class*)i_this;
|
||||
|
||||
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("Obj_Fmobj", 4);
|
||||
a_this->mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
|
||||
if (a_this->mpModel == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
a_this->mpBgW = new dBgW();
|
||||
if (a_this->mpBgW == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
cBgD_t* pdzb = (cBgD_t*)dComIfG_getObjectRes("Obj_Fmobj", 7);
|
||||
if (a_this->mpBgW->Set(pdzb, cBgW::MOVE_BG_e, &a_this->mBgMtx) == 1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
a_this->mpBgW->SetCrrFunc(dBgS_MoveBGProc_Typical);
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8057CF68-8057CF6C 000000 0004+00 1/1 0/0 0/0 .rodata @3743 */
|
||||
@@ -201,36 +140,76 @@ COMPILER_STRIP_GATE(0x8057CF70, &lit_3745);
|
||||
|
||||
/* 8057CDE0-8057CF60 000280 0180+00 1/0 0/0 0/0 .text daObj_Fmobj_Create__FP10fopAc_ac_c
|
||||
*/
|
||||
// reg alloc
|
||||
#ifdef NONMATCHING
|
||||
static int daObj_Fmobj_Create(fopAc_ac_c* i_this) {
|
||||
obj_fmobj_class* a_this = (obj_fmobj_class*)i_this;
|
||||
fopAcM_SetupActor(a_this, obj_fmobj_class);
|
||||
|
||||
int phase = dComIfG_resLoad(&a_this->mPhase, "Obj_Fmobj");
|
||||
if (phase == cPhs_COMPLEATE_e) {
|
||||
a_this->field_0x570 = fopAcM_GetParam(a_this) & 0xFF;
|
||||
|
||||
if (dComIfGs_isStageBossEnemy()) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
if (!fopAcM_entrySolidHeap(a_this, useHeapInit, 0x4B000)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
if (dComIfG_Bgsp().Regist(a_this->mpBgW, a_this)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
fopAcM_SetMtx(a_this, a_this->mpModel->getBaseTRMtx());
|
||||
a_this->shape_angle.y = cM_rndF(65536.0f);
|
||||
|
||||
mDoMtx_stack_c::transS(a_this->current.pos.x, a_this->current.pos.y, a_this->current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(a_this->shape_angle.y);
|
||||
a_this->mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
|
||||
mDoMtx_stack_c::transM(0.0f, -30.0f, 0.0f);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), a_this->mDzbMtx);
|
||||
|
||||
a_this->mpBgW->Move();
|
||||
}
|
||||
|
||||
return phase;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObj_Fmobj_Create(fopAc_ac_c* param_0) {
|
||||
static asm int daObj_Fmobj_Create(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_fmobj/d_a_obj_fmobj/daObj_Fmobj_Create__FP10fopAc_ac_c.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8057CF80-8057CFA0 -00001 0020+00 1/0 0/0 0/0 .data l_daObj_Fmobj_Method */
|
||||
SECTION_DATA static void* l_daObj_Fmobj_Method[8] = {
|
||||
(void*)daObj_Fmobj_Create__FP10fopAc_ac_c,
|
||||
(void*)daObj_Fmobj_Delete__FP15obj_fmobj_class,
|
||||
(void*)daObj_Fmobj_Execute__FP15obj_fmobj_class,
|
||||
(void*)daObj_Fmobj_IsDelete__FP15obj_fmobj_class,
|
||||
(void*)daObj_Fmobj_Draw__FP15obj_fmobj_class,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
static actor_method_class l_daObj_Fmobj_Method = {
|
||||
(process_method_func)daObj_Fmobj_Create, (process_method_func)daObj_Fmobj_Delete,
|
||||
(process_method_func)daObj_Fmobj_Execute, (process_method_func)daObj_Fmobj_IsDelete,
|
||||
(process_method_func)daObj_Fmobj_Draw,
|
||||
};
|
||||
|
||||
/* 8057CFA0-8057CFD0 -00001 0030+00 0/0 0/0 1/0 .data g_profile_OBJ_FMOBJ */
|
||||
SECTION_DATA extern void* g_profile_OBJ_FMOBJ[12] = {
|
||||
(void*)0xFFFFFFFD, (void*)0x0003FFFD,
|
||||
(void*)0x00260000, (void*)&g_fpcLf_Method,
|
||||
(void*)0x000005BC, (void*)NULL,
|
||||
(void*)NULL, (void*)&g_fopAc_Method,
|
||||
(void*)0x00280000, (void*)&l_daObj_Fmobj_Method,
|
||||
(void*)0x00040100, (void*)0x00070000,
|
||||
extern actor_process_profile_definition g_profile_OBJ_FMOBJ = {
|
||||
-3,
|
||||
3,
|
||||
-3,
|
||||
PROC_OBJ_FMOBJ,
|
||||
&g_fpcLf_Method.mBase,
|
||||
sizeof(obj_fmobj_class),
|
||||
0,
|
||||
0,
|
||||
&g_fopAc_Method.base,
|
||||
40,
|
||||
&l_daObj_Fmobj_Method,
|
||||
0x40100,
|
||||
0,
|
||||
7,
|
||||
};
|
||||
|
||||
/* 8057CF74-8057CF74 00000C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
@@ -66,8 +66,8 @@ static const Vec l_cull_box[4] = {
|
||||
int daObjKJgjs_c::Create() {
|
||||
fopAcM_SetMtx(this, mMtx[1]);
|
||||
PSMTXCopy(mMtx[1], mpModel->mBaseTransformMtx);
|
||||
dBgW* mpBgW = field_0x568;
|
||||
mpBgW->field_0x91 |= 4;
|
||||
dBgW* bgw_p = mpBgW;
|
||||
bgw_p->field_0x91 |= 4;
|
||||
if (!field_0x60c) {
|
||||
fopAcM_setCullSizeBox(this, l_cull_box[0].x, l_cull_box[0].y, l_cull_box[0].z,
|
||||
l_cull_box[1].x, l_cull_box[1].y, l_cull_box[1].z);
|
||||
|
||||
@@ -20,7 +20,7 @@ void daObjLv4Floor_c::setBaseMtx() {
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
|
||||
mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), field_0x56c);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
}
|
||||
|
||||
/* 80C678B0-80C678D4 000130 0024+00 1/0 0/0 0/0 .text Create__15daObjLv4Floor_cFv */
|
||||
@@ -84,7 +84,7 @@ int daObjLv4Floor_c::create1st() {
|
||||
/* 80C679E4-80C67A30 000264 004C+00 1/0 0/0 0/0 .text Execute__15daObjLv4Floor_cFPPA3_A4_f */
|
||||
int daObjLv4Floor_c::Execute(Mtx** param_0) {
|
||||
action();
|
||||
*param_0 = &field_0x56c;
|
||||
*param_0 = &mBgMtx;
|
||||
setBaseMtx();
|
||||
|
||||
return 1;
|
||||
|
||||
@@ -424,7 +424,7 @@ void daMagLiftRot_c::setBaseMtx() {
|
||||
mpModel->setBaseScale(cXyz(1.0f, 1.0f, 1.0f));
|
||||
|
||||
mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), field_0x56c);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
@@ -547,8 +547,8 @@ int daMagLiftRot_c::create() {
|
||||
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
|
||||
fopAcM_setCullSizeBox2(this, mpModel->getModelData());
|
||||
|
||||
field_0x568->onStickWall();
|
||||
field_0x568->onStickRoof();
|
||||
mpBgW->onStickWall();
|
||||
mpBgW->onStickRoof();
|
||||
|
||||
field_0x5e1 = fopAcM_GetParam(this) & 0xFF;
|
||||
field_0x5e2 = -0x8000;
|
||||
|
||||
@@ -4,184 +4,63 @@
|
||||
//
|
||||
|
||||
#include "rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "d/a/d_a_player.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "d/meter/d_meter2_info.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct request_of_phase_process_class {};
|
||||
class daObjMasterSword_c;
|
||||
typedef void (daObjMasterSword_c::*actionFunc)();
|
||||
|
||||
struct cXyz {};
|
||||
class daObjMasterSword_c : public fopAc_ac_c {
|
||||
public:
|
||||
enum Mode_e {
|
||||
MODE_0_e,
|
||||
};
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
/* 8000CD64 */ void transS(cXyz const&);
|
||||
|
||||
static u8 now[48];
|
||||
};
|
||||
|
||||
struct J3DAnmTextureSRTKey {};
|
||||
|
||||
struct J3DAnmTevRegKey {};
|
||||
|
||||
struct J3DMaterialTable {
|
||||
/* 8032F7B4 */ void removeTexMtxAnimator(J3DAnmTextureSRTKey*);
|
||||
/* 8032F880 */ void removeTevRegAnimator(J3DAnmTevRegKey*);
|
||||
};
|
||||
|
||||
struct mDoExt_btkAnm {
|
||||
/* 8000D63C */ void init(J3DMaterialTable*, J3DAnmTextureSRTKey*, int, int, f32, s16, s16);
|
||||
/* 8000D6D8 */ void entry(J3DMaterialTable*, f32);
|
||||
};
|
||||
|
||||
struct mDoExt_brkAnm {
|
||||
/* 8000D70C */ void init(J3DMaterialTable*, J3DAnmTevRegKey*, int, int, f32, s16, s16);
|
||||
/* 8000D7A8 */ void entry(J3DMaterialTable*, f32);
|
||||
};
|
||||
|
||||
struct mDoExt_baseAnm {
|
||||
/* 8000D428 */ void play();
|
||||
};
|
||||
|
||||
struct fopAc_ac_c {
|
||||
/* 80018B64 */ fopAc_ac_c();
|
||||
/* 80018C8C */ ~fopAc_ac_c();
|
||||
};
|
||||
|
||||
struct daObjMasterSword_c {
|
||||
/* 80C90AF8 */ void initWait();
|
||||
/* 80C90B50 */ void executeWait();
|
||||
/* 80C90C50 */ void createHeapCallBack(fopAc_ac_c*);
|
||||
/* 80C90C70 */ void CreateHeap();
|
||||
/* 80C90DB8 */ void create();
|
||||
/* 80C90C50 */ static int createHeapCallBack(fopAc_ac_c* i_this);
|
||||
/* 80C90C70 */ int CreateHeap();
|
||||
/* 80C90DB8 */ int create();
|
||||
/* 80C90F6C */ void create_init();
|
||||
/* 80C91448 */ ~daObjMasterSword_c();
|
||||
/* 80C91714 */ void draw();
|
||||
/* 80C91714 */ int draw();
|
||||
|
||||
inline void initCollision();
|
||||
inline void setCollision();
|
||||
inline void initBaseMtx();
|
||||
inline void setAction(Mode_e i_mode);
|
||||
inline void callInit();
|
||||
inline void callExecute();
|
||||
inline int execute();
|
||||
|
||||
f32 attr() const { return mAttr; }
|
||||
|
||||
u8 getEventID() { return (fopAcM_GetParam(this) >> 0x10) & 0xFF; }
|
||||
u16 getFlagNo() { return fopAcM_GetParam(this) & 0xFFFF; }
|
||||
|
||||
static f32 const mAttr;
|
||||
// static actionFunc ActionTable[];
|
||||
static u8 ActionTable[24];
|
||||
};
|
||||
|
||||
struct dSv_player_get_item_c {
|
||||
/* 80033E60 */ void onFirstBit(u8);
|
||||
};
|
||||
|
||||
struct dSv_event_tmp_flag_c {
|
||||
static u8 const tempBitLabels[370 + 2 /* padding */];
|
||||
};
|
||||
|
||||
struct dSv_event_flag_c {
|
||||
static u8 saveBitLabels[1644 + 4 /* padding */];
|
||||
};
|
||||
|
||||
struct dSv_event_c {
|
||||
/* 8003498C */ void onEventBit(u16);
|
||||
/* 800349BC */ void isEventBit(u16) const;
|
||||
};
|
||||
|
||||
struct dKy_tevstr_c {};
|
||||
|
||||
struct J3DModelData {};
|
||||
|
||||
struct dScnKy_env_light_c {
|
||||
/* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*);
|
||||
/* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*);
|
||||
};
|
||||
|
||||
struct dRes_info_c {};
|
||||
|
||||
struct dRes_control_c {
|
||||
/* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
|
||||
};
|
||||
|
||||
struct dDlst_shadowControl_c {
|
||||
static u8 mSimpleTexObj[32];
|
||||
};
|
||||
|
||||
struct dCcD_Stts {
|
||||
/* 80083860 */ void Init(int, int, fopAc_ac_c*);
|
||||
};
|
||||
|
||||
struct dCcD_SrcCyl {};
|
||||
|
||||
struct dCcD_GStts {
|
||||
/* 80083760 */ dCcD_GStts();
|
||||
/* 80C9137C */ ~dCcD_GStts();
|
||||
};
|
||||
|
||||
struct dCcD_GObjInf {
|
||||
/* 80083A28 */ dCcD_GObjInf();
|
||||
/* 800840E4 */ ~dCcD_GObjInf();
|
||||
};
|
||||
|
||||
struct dCcD_Cyl {
|
||||
/* 800848B4 */ void Set(dCcD_SrcCyl const&);
|
||||
};
|
||||
|
||||
struct dBgS_PolyPassChk {
|
||||
/* 80078E68 */ void SetObj();
|
||||
};
|
||||
|
||||
struct dBgS_ObjAcch {
|
||||
/* 80C9120C */ ~dBgS_ObjAcch();
|
||||
};
|
||||
|
||||
struct dBgS_AcchCir {
|
||||
/* 80075EAC */ dBgS_AcchCir();
|
||||
/* 80075F58 */ void SetWall(f32, f32);
|
||||
/* 80C9127C */ ~dBgS_AcchCir();
|
||||
};
|
||||
|
||||
struct csXyz {};
|
||||
|
||||
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 dAttention_c {
|
||||
/* 80070880 */ void getActionBtnB();
|
||||
/* 80073734 */ void ActionTarget(s32);
|
||||
};
|
||||
|
||||
struct cM3dGCyl {
|
||||
/* 80C912EC */ ~cM3dGCyl();
|
||||
};
|
||||
|
||||
struct cM3dGCir {
|
||||
/* 8026EF18 */ ~cM3dGCir();
|
||||
};
|
||||
|
||||
struct cM3dGAab {
|
||||
/* 80C91334 */ ~cM3dGAab();
|
||||
};
|
||||
|
||||
struct cCcD_Obj {};
|
||||
|
||||
struct cCcS {
|
||||
/* 80264BA8 */ void Set(cCcD_Obj*);
|
||||
};
|
||||
|
||||
struct cCcD_GStts {
|
||||
/* 80C9189C */ ~cCcD_GStts();
|
||||
};
|
||||
|
||||
struct cBgS_PolyInfo {
|
||||
/* 80268074 */ cBgS_PolyInfo();
|
||||
/* 802680B0 */ ~cBgS_PolyInfo();
|
||||
};
|
||||
|
||||
struct _GXTexObj {};
|
||||
|
||||
struct J3DModel {};
|
||||
|
||||
struct J3DFrameCtrl {
|
||||
/* 803283FC */ void init(s16);
|
||||
/* 80C913D8 */ ~J3DFrameCtrl();
|
||||
/* 0x568 */ J3DModel* mpModel;
|
||||
/* 0x56C */ request_of_phase_process_class mPhase;
|
||||
/* 0x574 */ mDoExt_btkAnm mBtk;
|
||||
/* 0x58C */ mDoExt_brkAnm mBrk;
|
||||
/* 0x5A4 */ dCcD_Stts mCcStts;
|
||||
/* 0x5E0 */ dCcD_Cyl mCyl;
|
||||
/* 0x71C */ actionFunc* mActionFunc;
|
||||
/* 0x720 */ Mode_e mMode;
|
||||
/* 0x724 */ u32 mShadowKey;
|
||||
/* 0x728 */ cBgS_PolyInfo field_0x728;
|
||||
/* 0x738 */ f32 field_0x738;
|
||||
};
|
||||
|
||||
//
|
||||
@@ -269,7 +148,6 @@ extern "C" void __dl__FPv();
|
||||
extern "C" void init__12J3DFrameCtrlFs();
|
||||
extern "C" void removeTexMtxAnimator__16J3DMaterialTableFP19J3DAnmTextureSRTKey();
|
||||
extern "C" void removeTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey();
|
||||
extern "C" void PSMTXCopy();
|
||||
extern "C" void __ptmf_scall();
|
||||
extern "C" void _savegpr_26();
|
||||
extern "C" void _savegpr_27();
|
||||
@@ -280,8 +158,6 @@ extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" u8 const tempBitLabels__20dSv_event_tmp_flag_c[370 + 2 /* padding */];
|
||||
extern "C" extern void* g_fopAc_Method[8];
|
||||
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
|
||||
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
|
||||
extern "C" extern void* __vt__8dCcD_Cyl[36];
|
||||
extern "C" extern void* __vt__9dCcD_Stts[11];
|
||||
@@ -289,10 +165,7 @@ 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" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32];
|
||||
extern "C" extern u8 g_env_light[4880];
|
||||
extern "C" extern u8 j3dSys[284];
|
||||
extern "C" extern u8 data_80C91AD0[4];
|
||||
|
||||
//
|
||||
@@ -300,36 +173,39 @@ extern "C" extern u8 data_80C91AD0[4];
|
||||
//
|
||||
|
||||
/* 80C90AF8-80C90B50 000078 0058+00 1/0 0/0 0/0 .text initWait__18daObjMasterSword_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjMasterSword_c::initWait() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/initWait__18daObjMasterSword_cFv.s"
|
||||
void daObjMasterSword_c::initWait() {
|
||||
cLib_onBit(mAttentionInfo.mFlags, 0x10);
|
||||
current.pos = orig.pos;
|
||||
current.angle = orig.angle;
|
||||
shape_angle = orig.angle;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80C90B50-80C90C50 0000D0 0100+00 1/0 0/0 0/0 .text executeWait__18daObjMasterSword_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjMasterSword_c::executeWait() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/executeWait__18daObjMasterSword_cFv.s"
|
||||
void daObjMasterSword_c::executeWait() {
|
||||
if (daPy_getPlayerActorClass()->checkPriActorOwn(this)) {
|
||||
for (int i = 0; i < dComIfGp_getAttention().GetActionCount(); i++) {
|
||||
if (dComIfGp_getAttention().ActionTarget(i) == this) {
|
||||
if (dComIfGp_getAttention().getActionBtnB() != NULL &&
|
||||
dComIfGp_getAttention().getActionBtnB()->mType == 4)
|
||||
{
|
||||
dComIfGp_setDoStatusForce(8, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (fopAcM_checkCarryNow(this)) {
|
||||
dMeter2Info_setCloth(WEAR_KOKIRI, false);
|
||||
fopAcM_orderMapToolEvent(this, getEventID(), 0xFF, 0xFFFF, 1, 0);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80C90C50-80C90C70 0001D0 0020+00 1/1 0/0 0/0 .text
|
||||
* createHeapCallBack__18daObjMasterSword_cFP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjMasterSword_c::createHeapCallBack(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/createHeapCallBack__18daObjMasterSword_cFP10fopAc_ac_c.s"
|
||||
int daObjMasterSword_c::createHeapCallBack(fopAc_ac_c* i_this) {
|
||||
return static_cast<daObjMasterSword_c*>(i_this)->CreateHeap();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C91940-80C91944 000000 0004+00 2/2 0/0 0/0 .rodata mAttr__18daObjMasterSword_c */
|
||||
@@ -374,28 +250,34 @@ SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
|
||||
#pragma pop
|
||||
|
||||
/* 80C9199C-80C919A0 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
|
||||
SECTION_DATA static void* l_arcName = (void*)&d_a_obj_master_sword__stringBase0;
|
||||
SECTION_DATA static char* l_arcName = "MstrSword";
|
||||
|
||||
/* 80C90C70-80C90D98 0001F0 0128+00 1/1 0/0 0/0 .text CreateHeap__18daObjMasterSword_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjMasterSword_c::CreateHeap() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/CreateHeap__18daObjMasterSword_cFv.s"
|
||||
int daObjMasterSword_c::CreateHeap() {
|
||||
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 5);
|
||||
mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000284);
|
||||
if (mpModel == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
J3DAnmTextureSRTKey* pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, 11);
|
||||
if (!mBtk.init(modelData, pbtk, TRUE, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
J3DAnmTevRegKey* pbrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, 8);
|
||||
if (!mBrk.init(modelData, pbrk, TRUE, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80C90D98-80C90DB8 000318 0020+00 1/0 0/0 0/0 .text daObjMasterSword_Create__FP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObjMasterSword_Create(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/daObjMasterSword_Create__FP10fopAc_ac_c.s"
|
||||
static int daObjMasterSword_Create(fopAc_ac_c* i_this) {
|
||||
return static_cast<daObjMasterSword_c*>(i_this)->create();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C919A0-80C919AC -00001 000C+00 0/1 0/0 0/0 .data @3655 */
|
||||
@@ -425,6 +307,10 @@ SECTION_DATA u8 daObjMasterSword_c::ActionTable[24] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
/* static actionFunc daObjMasterSword_c::ActionTable[] = {
|
||||
&daObjMasterSword_c::initWait, &daObjMasterSword_c::executeWait,
|
||||
}; */
|
||||
|
||||
/* 80C919D0-80C91A14 000054 0044+00 1/1 0/0 0/0 .data
|
||||
* ccCylSrc$localstatic3$initCollision__18daObjMasterSword_cFv */
|
||||
SECTION_DATA static u8 data_80C919D0[68] = {
|
||||
@@ -513,14 +399,36 @@ SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = {
|
||||
};
|
||||
|
||||
/* 80C90DB8-80C90F6C 000338 01B4+00 1/1 0/0 0/0 .text create__18daObjMasterSword_cFv */
|
||||
// matches with weak funcs
|
||||
#ifdef NONMATCHING
|
||||
int daObjMasterSword_c::create() {
|
||||
fopAcM_SetupActor(this, daObjMasterSword_c);
|
||||
|
||||
if (i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[getFlagNo()])) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
int phase = dComIfG_resLoad(&mPhase, l_arcName);
|
||||
if (phase == cPhs_COMPLEATE_e) {
|
||||
if (!fopAcM_entrySolidHeap(this, daObjMasterSword_c::createHeapCallBack, 0x1830)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
create_init();
|
||||
}
|
||||
|
||||
return phase;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjMasterSword_c::create() {
|
||||
asm int daObjMasterSword_c::create() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/create__18daObjMasterSword_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C91954-80C91958 000014 0004+00 0/1 0/0 0/0 .rodata @3861 */
|
||||
@@ -544,8 +452,78 @@ SECTION_RODATA static f32 const lit_3863 = 30.0f;
|
||||
COMPILER_STRIP_GATE(0x80C9195C, &lit_3863);
|
||||
#pragma pop
|
||||
|
||||
void daObjMasterSword_c::initCollision() {
|
||||
static dCcD_SrcCyl ccCylSrc = {
|
||||
{
|
||||
{0, {{0, 0, 0}, {0, 0}, 0x79}}, // mObj
|
||||
{dCcD_SE_NONE, 0, 0, 0, 0}, // mGObjAt
|
||||
{dCcD_SE_NONE, 0, 0, 0, 4}, // mGObjTg
|
||||
{0}, // mGObjCo
|
||||
}, // mObjInf
|
||||
{
|
||||
{current.pos.x, current.pos.y, current.pos.z}, // mCenter
|
||||
18.0f, // mRadius
|
||||
180.0f // mHeight
|
||||
} // mCyl
|
||||
};
|
||||
|
||||
mCcStts.Init(0xFF, 0xFF, this);
|
||||
mCyl.Set(ccCylSrc);
|
||||
mCyl.SetStts(&mCcStts);
|
||||
}
|
||||
|
||||
void daObjMasterSword_c::initBaseMtx() {
|
||||
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
|
||||
|
||||
Vec scale = {attr(), attr(), attr()};
|
||||
mpModel->setBaseScale(scale);
|
||||
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
|
||||
mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
}
|
||||
|
||||
void daObjMasterSword_c::callInit() {
|
||||
(this->**mActionFunc)();
|
||||
}
|
||||
|
||||
void daObjMasterSword_c::setAction(daObjMasterSword_c::Mode_e i_mode) {
|
||||
mMode = i_mode;
|
||||
// mActionFunc = &ActionTable[mMode];
|
||||
callInit();
|
||||
}
|
||||
|
||||
/* 80C90F6C-80C9120C 0004EC 02A0+00 1/1 0/0 0/0 .text create_init__18daObjMasterSword_cFv
|
||||
*/
|
||||
// matches, but weak function emission is hella weird. cant be linked til its fixed
|
||||
#ifdef NONMATCHING
|
||||
void daObjMasterSword_c::create_init() {
|
||||
fopAcM_setCullSizeBox2(this, mpModel->getModelData());
|
||||
initCollision();
|
||||
initBaseMtx();
|
||||
|
||||
fopAcM_OnCarryType(this, fopAcM_CARRY_UNK_30);
|
||||
cLib_onBit(mAttentionInfo.mFlags, 0x10);
|
||||
mAttentionInfo.field_0x0[4] = 74;
|
||||
mAttentionInfo.mPosition = current.pos;
|
||||
mAttentionInfo.mPosition.y += 100.0f;
|
||||
mEyePos = mAttentionInfo.mPosition;
|
||||
|
||||
dBgS_AcchCir cir_check;
|
||||
dBgS_ObjAcch obj_check;
|
||||
|
||||
cir_check.SetWall(10.0f, 30.0f);
|
||||
obj_check.Set(&fopAcM_GetPosition_p(this), &fopAcM_GetOldPosition_p(this), this, 1, &cir_check,
|
||||
&fopAcM_GetSpeed_p(this), NULL, NULL);
|
||||
obj_check.CrrPos(dComIfG_Bgsp());
|
||||
|
||||
field_0x738 = obj_check.GetGroundH();
|
||||
field_0x728 = obj_check.m_gnd;
|
||||
|
||||
setAction(MODE_0_e);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -554,12 +532,14 @@ asm void daObjMasterSword_c::create_init() {
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/create_init__18daObjMasterSword_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80C9120C-80C9127C 00078C 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_master_sword/d_a_obj_master_sword/__dt__12dBgS_ObjAcchFv.s"
|
||||
}
|
||||
@@ -569,7 +549,8 @@ asm dBgS_ObjAcch::~dBgS_ObjAcch() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dBgS_AcchCir::~dBgS_AcchCir() {
|
||||
// asm dBgS_AcchCir::~dBgS_AcchCir() {
|
||||
extern "C" asm void __dt__12dBgS_AcchCirFv() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/__dt__12dBgS_AcchCirFv.s"
|
||||
}
|
||||
@@ -579,7 +560,8 @@ asm dBgS_AcchCir::~dBgS_AcchCir() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm cM3dGCyl::~cM3dGCyl() {
|
||||
// asm cM3dGCyl::~cM3dGCyl() {
|
||||
extern "C" asm void __dt__8cM3dGCylFv() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/__dt__8cM3dGCylFv.s"
|
||||
}
|
||||
@@ -589,7 +571,8 @@ asm cM3dGCyl::~cM3dGCyl() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm cM3dGAab::~cM3dGAab() {
|
||||
// asm cM3dGAab::~cM3dGAab() {
|
||||
extern "C" asm void __dt__8cM3dGAabFv() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/__dt__8cM3dGAabFv.s"
|
||||
}
|
||||
@@ -599,7 +582,8 @@ asm cM3dGAab::~cM3dGAab() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dCcD_GStts::~dCcD_GStts() {
|
||||
// asm dCcD_GStts::~dCcD_GStts() {
|
||||
extern "C" asm void __dt__10dCcD_GSttsFv() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/__dt__10dCcD_GSttsFv.s"
|
||||
}
|
||||
@@ -609,7 +593,8 @@ asm dCcD_GStts::~dCcD_GStts() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DFrameCtrl::~J3DFrameCtrl() {
|
||||
// asm J3DFrameCtrl::~J3DFrameCtrl() {
|
||||
extern "C" asm void __dt__12J3DFrameCtrlFv() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/__dt__12J3DFrameCtrlFv.s"
|
||||
}
|
||||
@@ -617,14 +602,10 @@ asm J3DFrameCtrl::~J3DFrameCtrl() {
|
||||
|
||||
/* 80C91420-80C91448 0009A0 0028+00 1/0 0/0 0/0 .text
|
||||
* daObjMasterSword_Delete__FP18daObjMasterSword_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObjMasterSword_Delete(daObjMasterSword_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/daObjMasterSword_Delete__FP18daObjMasterSword_c.s"
|
||||
static int daObjMasterSword_Delete(daObjMasterSword_c* i_this) {
|
||||
i_this->~daObjMasterSword_c();
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80C91448-80C915E8 0009C8 01A0+00 1/1 0/0 0/0 .text __dt__18daObjMasterSword_cFv */
|
||||
#pragma push
|
||||
@@ -643,27 +624,45 @@ SECTION_RODATA static u8 const lit_4030[8] = {
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C91960, &lit_4030);
|
||||
|
||||
void daObjMasterSword_c::callExecute() {
|
||||
(this->*mActionFunc[1])();
|
||||
}
|
||||
|
||||
void daObjMasterSword_c::setCollision() {
|
||||
dComIfG_Ccsp()->Set(&mCyl);
|
||||
}
|
||||
|
||||
int daObjMasterSword_c::execute() {
|
||||
callExecute();
|
||||
setCollision();
|
||||
|
||||
mBtk.play();
|
||||
mBrk.play();
|
||||
|
||||
if (dComIfGs_isTmpBit(dSv_event_tmp_flag_c::tempBitLabels[73])) {
|
||||
dComIfGs_onItemFirstBit(MASTER_SWORD);
|
||||
dMeter2Info_setSword(MASTER_SWORD, false);
|
||||
dComIfGs_setSelectEquipSword(MASTER_SWORD);
|
||||
|
||||
i_dComIfGp_setItemLifeCount(dComIfGs_getMaxLife(), 0);
|
||||
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[getFlagNo()]);
|
||||
fopAcM_delete(this);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C915E8-80C916F4 000B68 010C+00 1/0 0/0 0/0 .text
|
||||
* daObjMasterSword_Execute__FP18daObjMasterSword_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObjMasterSword_Execute(daObjMasterSword_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/daObjMasterSword_Execute__FP18daObjMasterSword_c.s"
|
||||
static int daObjMasterSword_Execute(daObjMasterSword_c* i_this) {
|
||||
return i_this->execute();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80C916F4-80C91714 000C74 0020+00 1/0 0/0 0/0 .text
|
||||
* daObjMasterSword_Draw__FP18daObjMasterSword_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObjMasterSword_Draw(daObjMasterSword_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/daObjMasterSword_Draw__FP18daObjMasterSword_c.s"
|
||||
static int daObjMasterSword_Draw(daObjMasterSword_c* i_this) {
|
||||
return i_this->draw();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C91968-80C9196C 000028 0004+00 0/1 0/0 0/0 .rodata @4091 */
|
||||
@@ -681,26 +680,56 @@ COMPILER_STRIP_GATE(0x80C9196C, &lit_4092);
|
||||
#pragma pop
|
||||
|
||||
/* 80C91714-80C91894 000C94 0180+00 1/1 0/0 0/0 .text draw__18daObjMasterSword_cFv */
|
||||
// weird cXyz stuff
|
||||
#ifdef NONMATCHING
|
||||
int daObjMasterSword_c::draw() {
|
||||
if (dComIfGs_isTmpBit(dSv_event_tmp_flag_c::tempBitLabels[73])) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
J3DModelData* modelData = mpModel->getModelData();
|
||||
g_env_light.settingTevStruct(0x10, ¤t.pos, &mTevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(mpModel, &mTevStr);
|
||||
|
||||
dComIfGd_setListBG();
|
||||
mBtk.entry(modelData);
|
||||
mBrk.entry(modelData);
|
||||
mDoExt_modelUpdateDL(mpModel);
|
||||
|
||||
mBtk.remove(modelData);
|
||||
mBrk.remove(modelData);
|
||||
dComIfGd_setList();
|
||||
|
||||
cXyz sp14, sp8 = cXyz(current.pos.x, current.pos.y + 50.0f, current.pos.z);
|
||||
mShadowKey =
|
||||
dComIfGd_setShadow(mShadowKey, 1, mpModel, &sp14, 200.0f, 10.0f, current.pos.y, field_0x738,
|
||||
field_0x728, &mTevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex());
|
||||
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjMasterSword_c::draw() {
|
||||
asm int daObjMasterSword_c::draw() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/draw__18daObjMasterSword_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80C91894-80C9189C 000E14 0008+00 1/0 0/0 0/0 .text
|
||||
* daObjMasterSword_IsDelete__FP18daObjMasterSword_c */
|
||||
static bool daObjMasterSword_IsDelete(daObjMasterSword_c* param_0) {
|
||||
return true;
|
||||
static int daObjMasterSword_IsDelete(daObjMasterSword_c* param_0) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C9189C-80C918E4 000E1C 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm cCcD_GStts::~cCcD_GStts() {
|
||||
// asm cCcD_GStts::~cCcD_GStts() {
|
||||
extern "C" asm void __dt__10cCcD_GSttsFv() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/__dt__10cCcD_GSttsFv.s"
|
||||
}
|
||||
@@ -710,8 +739,7 @@ asm cCcD_GStts::~cCcD_GStts() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void __sinit_d_a_obj_master_sword_cpp() {
|
||||
nofralloc
|
||||
asm void __sinit_d_a_obj_master_sword_cpp(){nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/__sinit_d_a_obj_master_sword_cpp.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
@@ -58,7 +58,7 @@ void daObjMGate_c::setBaseMtx() {
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
mDoMtx_stack_c::ZXYrotM(mGateAngle.x, mGateAngle.y, mGateAngle.z);
|
||||
mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), field_0x56c);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
|
||||
if (mpKeyModel != NULL) {
|
||||
cXyz key_offset(l_key_offset[mKind]);
|
||||
@@ -223,7 +223,7 @@ int daObjMGate_c::Execute(Mtx** param_0) {
|
||||
}
|
||||
}
|
||||
|
||||
*param_0 = &field_0x56c;
|
||||
*param_0 = &mBgMtx;
|
||||
setBaseMtx();
|
||||
|
||||
mGateAngle.y = mGateSwingMultiplier * cM_ssin(mCounter * 4000);
|
||||
|
||||
@@ -20,7 +20,7 @@ void daObjOnsen_c::setBaseMtx() {
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
PSMTXCopy(mDoMtx_stack_c::now, mpModel[0]->mBaseTransformMtx);
|
||||
PSMTXCopy(mDoMtx_stack_c::now, mpModel[1]->mBaseTransformMtx);
|
||||
PSMTXCopy(mDoMtx_stack_c::now, field_0x56c);
|
||||
PSMTXCopy(mDoMtx_stack_c::now, mBgMtx);
|
||||
}
|
||||
|
||||
/* 80CA7C28-80CA7C74 000148 004C+00 1/0 0/0 0/0 .text Create__12daObjOnsen_cFv */
|
||||
@@ -92,7 +92,7 @@ int daObjOnsen_c::create1st() {
|
||||
/* 80CA7EEC-80CA7F1C 00040C 0030+00 1/0 0/0 0/0 .text Execute__12daObjOnsen_cFPPA3_A4_f
|
||||
*/
|
||||
int daObjOnsen_c::Execute(Mtx** i_mtx) {
|
||||
*i_mtx = &field_0x56c;
|
||||
*i_mtx = &mBgMtx;
|
||||
mpBtk->play();
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ void daObjGake_c::setBaseMtx() {
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
|
||||
mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), field_0x56c);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
}
|
||||
|
||||
/* 80D0BCB8-80D0BD30 000118 0078+00 1/0 0/0 0/0 .text Create__11daObjGake_cFv */
|
||||
@@ -72,8 +72,8 @@ int daObjGake_c::Execute(Mtx** param_0) {
|
||||
(mEventBit1 != 0x3FF &&
|
||||
!i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[mEventBit1])))
|
||||
{
|
||||
if (field_0x568 != NULL && field_0x568->ChkUsed()) {
|
||||
dComIfG_Bgsp().Release(field_0x568);
|
||||
if (mpBgW != NULL && mpBgW->ChkUsed()) {
|
||||
dComIfG_Bgsp().Release(mpBgW);
|
||||
}
|
||||
|
||||
mHide = true;
|
||||
@@ -81,15 +81,15 @@ int daObjGake_c::Execute(Mtx** param_0) {
|
||||
}
|
||||
|
||||
if (mEventBit1 != 0x3FF && i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[mEventBit1])) {
|
||||
if (field_0x568 != NULL && !field_0x568->ChkUsed()) {
|
||||
dComIfG_Bgsp().Regist(field_0x568, this);
|
||||
if (mpBgW != NULL && !mpBgW->ChkUsed()) {
|
||||
dComIfG_Bgsp().Regist(mpBgW, this);
|
||||
}
|
||||
|
||||
mHide = false;
|
||||
return 1;
|
||||
}
|
||||
|
||||
*param_0 = &field_0x56c;
|
||||
*param_0 = &mBgMtx;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,231 +1,128 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: d_a_obj_usaku
|
||||
//
|
||||
/**
|
||||
* d_a_obj_usaku.cpp
|
||||
* Horse Fence
|
||||
*/
|
||||
|
||||
#include "rel/d/a/obj/d_a_obj_usaku/d_a_obj_usaku.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct request_of_phase_process_class {};
|
||||
|
||||
struct obj_usaku_class {};
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
static u8 now[48];
|
||||
};
|
||||
|
||||
struct fopAc_ac_c {
|
||||
/* 80018B64 */ fopAc_ac_c();
|
||||
};
|
||||
|
||||
struct dKy_tevstr_c {};
|
||||
|
||||
struct J3DModelData {};
|
||||
|
||||
struct cXyz {};
|
||||
|
||||
struct dScnKy_env_light_c {
|
||||
/* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*);
|
||||
/* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*);
|
||||
};
|
||||
|
||||
struct dRes_info_c {};
|
||||
|
||||
struct dRes_control_c {
|
||||
/* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
|
||||
};
|
||||
|
||||
struct dBgW_Base {};
|
||||
|
||||
struct dBgW {
|
||||
/* 8007B970 */ dBgW();
|
||||
/* 8007B9C0 */ void Move();
|
||||
};
|
||||
|
||||
struct dBgS {
|
||||
/* 80074A08 */ void Regist(dBgW_Base*, fopAc_ac_c*);
|
||||
};
|
||||
|
||||
struct csXyz {};
|
||||
|
||||
struct cBgD_t {};
|
||||
|
||||
struct cBgW {
|
||||
/* 80079F38 */ void Set(cBgD_t*, u32, f32 (*)[3][4]);
|
||||
};
|
||||
|
||||
struct cBgS_PolyInfo {};
|
||||
|
||||
struct cBgS {
|
||||
/* 80074250 */ void Release(dBgW_Base*);
|
||||
};
|
||||
|
||||
struct J3DModel {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" static void daObj_Usaku_Draw__FP15obj_usaku_class();
|
||||
extern "C" static void daObj_Usaku_Execute__FP15obj_usaku_class();
|
||||
extern "C" static bool daObj_Usaku_IsDelete__FP15obj_usaku_class();
|
||||
extern "C" static void daObj_Usaku_Delete__FP15obj_usaku_class();
|
||||
extern "C" static void useHeapInit__FP10fopAc_ac_c();
|
||||
extern "C" static void daObj_Usaku_Create__FP10fopAc_ac_c();
|
||||
extern "C" extern char const* const d_a_obj_usaku__stringBase0;
|
||||
extern "C" extern void* g_profile_OBJ_USAKU[12];
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoMtx_YrotM__FPA4_fs();
|
||||
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
|
||||
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
|
||||
extern "C" void __ct__10fopAc_ac_cFv();
|
||||
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
|
||||
extern "C" void fopAcM_SetMin__FP10fopAc_ac_cfff();
|
||||
extern "C" void fopAcM_SetMax__FP10fopAc_ac_cfff();
|
||||
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 Release__4cBgSFP9dBgW_Base();
|
||||
extern "C" void Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c();
|
||||
extern "C" void dBgS_MoveBGProc_Typical__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz();
|
||||
extern "C" void Set__4cBgWFP6cBgD_tUlPA3_A4_f();
|
||||
extern "C" void __ct__4dBgWFv();
|
||||
extern "C" void Move__4dBgWFv();
|
||||
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
|
||||
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" void PSMTXCopy();
|
||||
extern "C" void PSMTXTrans();
|
||||
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" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_env_light[4880];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "d/bg/d_bg_w.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/d_procname.h"
|
||||
|
||||
/* 80D20F58-80D20FBC 000078 0064+00 1/0 0/0 0/0 .text daObj_Usaku_Draw__FP15obj_usaku_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObj_Usaku_Draw(obj_usaku_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_usaku/d_a_obj_usaku/daObj_Usaku_Draw__FP15obj_usaku_class.s"
|
||||
static int daObj_Usaku_Draw(obj_usaku_class* i_this) {
|
||||
g_env_light.settingTevStruct(0x10, &i_this->current.pos, &i_this->mTevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(i_this->mpModel, &i_this->mTevStr);
|
||||
mDoExt_modelUpdateDL(i_this->mpModel);
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D20FBC-80D21048 0000DC 008C+00 2/1 0/0 0/0 .text daObj_Usaku_Execute__FP15obj_usaku_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObj_Usaku_Execute(obj_usaku_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_usaku/d_a_obj_usaku/daObj_Usaku_Execute__FP15obj_usaku_class.s"
|
||||
static int daObj_Usaku_Execute(obj_usaku_class* i_this) {
|
||||
mDoMtx_stack_c::transS(i_this->current.pos.x, i_this->current.pos.y, i_this->current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(i_this->shape_angle.y);
|
||||
|
||||
i_this->mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
if (i_this->mpBgW != NULL) {
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), i_this->mBgMtx);
|
||||
i_this->mpBgW->Move();
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D21048-80D21050 000168 0008+00 1/0 0/0 0/0 .text daObj_Usaku_IsDelete__FP15obj_usaku_class */
|
||||
static bool daObj_Usaku_IsDelete(obj_usaku_class* param_0) {
|
||||
return true;
|
||||
static int daObj_Usaku_IsDelete(obj_usaku_class* i_this) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80D212EC-80D212EC 000010 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80D212EC = "Obj_usaku";
|
||||
#pragma pop
|
||||
|
||||
/* 80D21050-80D210A8 000170 0058+00 1/0 0/0 0/0 .text daObj_Usaku_Delete__FP15obj_usaku_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObj_Usaku_Delete(obj_usaku_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_usaku/d_a_obj_usaku/daObj_Usaku_Delete__FP15obj_usaku_class.s"
|
||||
static int daObj_Usaku_Delete(obj_usaku_class* i_this) {
|
||||
dComIfG_resDelete(&i_this->mPhase, "Obj_usaku");
|
||||
|
||||
if (i_this->mpBgW != NULL) {
|
||||
dComIfG_Bgsp().Release(i_this->mpBgW);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D210A8-80D211AC 0001C8 0104+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void useHeapInit(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_usaku/d_a_obj_usaku/useHeapInit__FP10fopAc_ac_c.s"
|
||||
static int useHeapInit(fopAc_ac_c* i_this) {
|
||||
obj_usaku_class* a_this = (obj_usaku_class*)i_this;
|
||||
|
||||
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("Obj_usaku", 4);
|
||||
a_this->mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
|
||||
if (a_this->mpModel == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
a_this->mpBgW = new dBgW();
|
||||
if (a_this->mpBgW == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
cBgD_t* pdzb = (cBgD_t*)dComIfG_getObjectRes("Obj_usaku", 7);
|
||||
if (a_this->mpBgW->Set(pdzb, cBgW::MOVE_BG_e, &a_this->mBgMtx) == 1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
a_this->mpBgW->SetCrrFunc(dBgS_MoveBGProc_Typical);
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80D212DC-80D212E0 000000 0004+00 1/1 0/0 0/0 .rodata @3744 */
|
||||
SECTION_RODATA static f32 const lit_3744 = -300.0f;
|
||||
COMPILER_STRIP_GATE(0x80D212DC, &lit_3744);
|
||||
|
||||
/* 80D212E0-80D212E4 000004 0004+00 0/1 0/0 0/0 .rodata @3745 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3745 = -600.0f;
|
||||
COMPILER_STRIP_GATE(0x80D212E0, &lit_3745);
|
||||
#pragma pop
|
||||
|
||||
/* 80D212E4-80D212E8 000008 0004+00 0/1 0/0 0/0 .rodata @3746 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3746 = 300.0f;
|
||||
COMPILER_STRIP_GATE(0x80D212E4, &lit_3746);
|
||||
#pragma pop
|
||||
|
||||
/* 80D212E8-80D212EC 00000C 0004+00 0/1 0/0 0/0 .rodata @3747 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3747 = 600.0f;
|
||||
COMPILER_STRIP_GATE(0x80D212E8, &lit_3747);
|
||||
#pragma pop
|
||||
|
||||
/* 80D211AC-80D212D4 0002CC 0128+00 1/0 0/0 0/0 .text daObj_Usaku_Create__FP10fopAc_ac_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObj_Usaku_Create(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_usaku/d_a_obj_usaku/daObj_Usaku_Create__FP10fopAc_ac_c.s"
|
||||
static int daObj_Usaku_Create(fopAc_ac_c* i_this) {
|
||||
fopAcM_SetupActor(i_this, obj_usaku_class);
|
||||
obj_usaku_class* a_this = (obj_usaku_class*)i_this;
|
||||
|
||||
int phase = dComIfG_resLoad(&a_this->mPhase, "Obj_usaku");
|
||||
if (phase == cPhs_COMPLEATE_e) {
|
||||
a_this->field_0x570 = fopAcM_GetParam(a_this) & 0xFF;
|
||||
if (a_this->field_0x570 == 0xFF) {
|
||||
a_this->field_0x570 = 0;
|
||||
}
|
||||
|
||||
if (!fopAcM_entrySolidHeap(a_this, useHeapInit, 0xC60)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
if (a_this->mpBgW != NULL && dComIfG_Bgsp().Regist(a_this->mpBgW, a_this)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
a_this->mCullMtx = a_this->mpModel->getBaseTRMtx();
|
||||
fopAcM_SetMin(a_this, -300.0f, -600.0f, -300.0f);
|
||||
fopAcM_SetMax(a_this, 300.0f, 600.0f, 300.0f);
|
||||
daObj_Usaku_Execute(a_this);
|
||||
}
|
||||
|
||||
return phase;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80D212F8-80D21318 -00001 0020+00 1/0 0/0 0/0 .data l_daObj_Usaku_Method */
|
||||
SECTION_DATA static void* l_daObj_Usaku_Method[8] = {
|
||||
(void*)daObj_Usaku_Create__FP10fopAc_ac_c,
|
||||
(void*)daObj_Usaku_Delete__FP15obj_usaku_class,
|
||||
(void*)daObj_Usaku_Execute__FP15obj_usaku_class,
|
||||
(void*)daObj_Usaku_IsDelete__FP15obj_usaku_class,
|
||||
(void*)daObj_Usaku_Draw__FP15obj_usaku_class,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
static actor_method_class l_daObj_Usaku_Method = {
|
||||
(process_method_func)daObj_Usaku_Create, (process_method_func)daObj_Usaku_Delete,
|
||||
(process_method_func)daObj_Usaku_Execute, (process_method_func)daObj_Usaku_IsDelete,
|
||||
(process_method_func)daObj_Usaku_Draw,
|
||||
};
|
||||
|
||||
/* 80D21318-80D21348 -00001 0030+00 0/0 0/0 1/0 .data g_profile_OBJ_USAKU */
|
||||
SECTION_DATA extern void* g_profile_OBJ_USAKU[12] = {
|
||||
(void*)0xFFFFFFFD, (void*)0x0007FFFD,
|
||||
(void*)0x012A0000, (void*)&g_fpcLf_Method,
|
||||
(void*)0x000005B4, (void*)NULL,
|
||||
(void*)NULL, (void*)&g_fopAc_Method,
|
||||
(void*)0x004E0000, (void*)&l_daObj_Usaku_Method,
|
||||
(void*)0x00040100, (void*)0x000E0000,
|
||||
extern actor_process_profile_definition g_profile_OBJ_USAKU = {
|
||||
-3,
|
||||
7,
|
||||
-3,
|
||||
PROC_OBJ_USAKU,
|
||||
&g_fpcLf_Method.mBase,
|
||||
sizeof(obj_usaku_class),
|
||||
0,
|
||||
0,
|
||||
&g_fopAc_Method.base,
|
||||
78,
|
||||
&l_daObj_Usaku_Method,
|
||||
0x40100,
|
||||
0,
|
||||
14,
|
||||
};
|
||||
|
||||
/* 80D212EC-80D212EC 000010 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
@@ -238,7 +238,7 @@ static int useHeapInit(fopAc_ac_c* i_this) {
|
||||
}
|
||||
|
||||
cBgD_t* dzb = (cBgD_t*)dComIfG_getObjectRes("Obj_web1", 11);
|
||||
if (_this->mpBgW->Set(dzb, 1, &_this->mMtx) == 1) {
|
||||
if (_this->mpBgW->Set(dzb, cBgW::MOVE_BG_e, &_this->mMtx) == 1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,51 +1,38 @@
|
||||
/**
|
||||
* d_a_tag_chgrestart.cpp
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
#include "rel/d/a/tag/d_a_tag_chgrestart/d_a_tag_chgrestart.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "d/d_procname.h"
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoMtx_YrotS__FPA4_fs();
|
||||
extern "C" void getStatusRoomDt__20dStage_roomControl_cFi();
|
||||
extern "C" void setRoom__13dSv_restart_cFRC4cXyzsSc();
|
||||
extern "C" void onSwitch__10dSv_info_cFii();
|
||||
extern "C" void isSwitch__10dSv_info_cCFii();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
|
||||
/* 80D56758-80D567E4 000078 008C+00 1/1 0/0 0/0 .text Create__17daTagChgRestart_cFv */
|
||||
s32 daTagChgRestart_c::Create() {
|
||||
field_0x568[0].x = -100.0f * mScale.x;
|
||||
field_0x568[0].z = -100.0f * mScale.z;
|
||||
mVertices[0].x = -100.0f * mScale.x;
|
||||
mVertices[0].z = -100.0f * mScale.z;
|
||||
|
||||
field_0x568[1].x = 100.0f * mScale.x;
|
||||
field_0x568[1].z = -100.0f * mScale.z;
|
||||
mVertices[1].x = 100.0f * mScale.x;
|
||||
mVertices[1].z = -100.0f * mScale.z;
|
||||
|
||||
field_0x568[2].x = 100.0f * mScale.x;
|
||||
field_0x568[2].z = 100.0f * mScale.z;
|
||||
mVertices[2].x = 100.0f * mScale.x;
|
||||
mVertices[2].z = 100.0f * mScale.z;
|
||||
|
||||
field_0x568[3].x = -100.0f * mScale.x;
|
||||
field_0x568[3].z = 100.0f * mScale.z;
|
||||
mVertices[3].x = -100.0f * mScale.x;
|
||||
mVertices[3].z = 100.0f * mScale.z;
|
||||
|
||||
field_0x568[3].y = 0.0f;
|
||||
field_0x568[2].y = 0.0f;
|
||||
field_0x568[1].y = 0.0f;
|
||||
field_0x568[0].y = 0.0f;
|
||||
mVertices[3].y = 0.0f;
|
||||
mVertices[2].y = 0.0f;
|
||||
mVertices[1].y = 0.0f;
|
||||
mVertices[0].y = 0.0f;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80D567E4-80D56878 000104 0094+00 1/1 0/0 0/0 .text create__17daTagChgRestart_cFv */
|
||||
s32 daTagChgRestart_c::create() {
|
||||
s32 daTagChgRestart_c::create() {
|
||||
fopAcM_SetupActor(this, daTagChgRestart_c);
|
||||
|
||||
|
||||
if (!Create()) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
@@ -54,10 +41,8 @@ s32 daTagChgRestart_c::create() {
|
||||
}
|
||||
|
||||
/* 80D568B8-80D56A84 0001D8 01CC+00 1/1 0/0 0/0 .text execute__17daTagChgRestart_cFv */
|
||||
#ifdef NONMATCHING
|
||||
// do-while loop is wrong
|
||||
s32 daTagChgRestart_c::execute() {
|
||||
if (i_fopAcM_isSwitch(this,daTagChgRestart_prm::getSwNo(this))) {
|
||||
if (i_fopAcM_isSwitch(this, daTagChgRestart_prm::getSwNo(this))) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -66,46 +51,40 @@ s32 daTagChgRestart_c::execute() {
|
||||
pos -= orig.pos;
|
||||
|
||||
mDoMtx_stack_c::YrotS(-current.angle.y);
|
||||
mDoMtx_stack_c::multVec(&pos,&pos);
|
||||
mDoMtx_stack_c::multVec(&pos, &pos);
|
||||
|
||||
if (mVertices[0].x < pos.x && mVertices[0].z < pos.z && mVertices[2].x > pos.x &&
|
||||
mVertices[2].z > pos.z)
|
||||
{
|
||||
cXyz restart_pos = orig.pos;
|
||||
s16 restart_angle = orig.angle.y;
|
||||
|
||||
if (field_0x568[0].x < pos.x && field_0x568[0].z < pos.z &&
|
||||
field_0x568[2].x > pos.x && field_0x568[2].z > pos.z) {
|
||||
cXyz l_restartPos = orig.pos;
|
||||
s16 l_restartAngle = orig.angle.y;
|
||||
|
||||
u8 playerNo = daTagChgRestart_prm::getPlayerNo(this);
|
||||
if (playerNo != 0xFF) {
|
||||
dStage_roomStatus_c* roomStatusDt = dComIfGp_roomControl_getStatusRoomDt(fopAcM_GetRoomNo(this));
|
||||
stage_actor_class* actor = roomStatusDt->mRoomDt.getPlayer();
|
||||
stage_actor_data_class* actor_data = actor->mEntries;
|
||||
int entryNum = actor->mEntryNum;
|
||||
dStage_roomStatus_c* roomStatusDt =
|
||||
dComIfGp_roomControl_getStatusRoomDt(fopAcM_GetRoomNo(this));
|
||||
stage_actor_class* player_data = roomStatusDt->mRoomDt.getPlayer();
|
||||
|
||||
do {
|
||||
actor_data++;
|
||||
stage_actor_data_class* entry_p = player_data->mEntries;
|
||||
for (int i = 0; i < player_data->mEntryNum; i++) {
|
||||
if ((entry_p->mAngle.z & 0xFF) == playerNo) {
|
||||
break;
|
||||
}
|
||||
|
||||
entry_p++;
|
||||
}
|
||||
while (entryNum > 0 && actor->mEntryNum > playerNo && actor_data != 0);
|
||||
|
||||
l_restartPos = actor_data->mSpawnPos;
|
||||
l_restartAngle = actor_data->mAngle.y;
|
||||
|
||||
restart_pos = entry_p->mSpawnPos;
|
||||
restart_angle = entry_p->mAngle.y;
|
||||
}
|
||||
|
||||
|
||||
s32 l_roomNo = fopAcM_GetRoomNo(player);
|
||||
dComIfGs_setRestartRoom(l_restartPos,l_restartAngle,l_roomNo);
|
||||
i_fopAcM_onSwitch(this,daTagChgRestart_prm::getSwNo(this));
|
||||
dComIfGs_setRestartRoom(restart_pos, restart_angle, l_roomNo);
|
||||
i_fopAcM_onSwitch(this, daTagChgRestart_prm::getSwNo(this));
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 daTagChgRestart_c::execute() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_chgrestart/d_a_tag_chgrestart/execute__17daTagChgRestart_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80D56A84-80D56A8C 0003A4 0008+00 1/1 0/0 0/0 .text _delete__17daTagChgRestart_cFv */
|
||||
s32 daTagChgRestart_c::_delete() {
|
||||
@@ -125,8 +104,8 @@ static s32 daTagChgRestart_Delete(daTagChgRestart_c* i_this) {
|
||||
}
|
||||
|
||||
/* 80D56ACC-80D56AEC 0003EC 0020+00 1/0 0/0 0/0 .text daTagChgRestart_Create__FP10fopAc_ac_c */
|
||||
static s32 daTagChgRestart_Create(fopAc_ac_c* param_0) {
|
||||
return static_cast<daTagChgRestart_c*>(param_0)->create();
|
||||
static s32 daTagChgRestart_Create(fopAc_ac_c* i_this) {
|
||||
return static_cast<daTagChgRestart_c*>(i_this)->create();
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
@@ -134,7 +113,7 @@ static s32 daTagChgRestart_Create(fopAc_ac_c* param_0) {
|
||||
static actor_method_class l_daTagChgRestart_Method = {
|
||||
(process_method_func)daTagChgRestart_Create,
|
||||
(process_method_func)daTagChgRestart_Delete,
|
||||
(process_method_func)daTagChgRestart_Execute
|
||||
(process_method_func)daTagChgRestart_Execute,
|
||||
};
|
||||
|
||||
/* 80D56B20-80D56B50 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_ChgRestart */
|
||||
|
||||
@@ -55,7 +55,7 @@ int daTagHjump_c::create() {
|
||||
mDoMtx_stack_c::get()[1][3] -= 100.0f;
|
||||
current.pos.y -= 100.0f;
|
||||
|
||||
field_0x568->SetLock();
|
||||
mpBgW->SetLock();
|
||||
mScale.x = 250.0f;
|
||||
mScale.y = 350.0f;
|
||||
mScale.z = 400.0f;
|
||||
|
||||
Reference in New Issue
Block a user