Merge branch 'master' of https://github.com/zeldaret/tp into talk

This commit is contained in:
TakaRikka
2023-06-27 16:15:40 -07:00
403 changed files with 6915 additions and 19107 deletions
+20 -10
View File
@@ -208,7 +208,8 @@ static asm int createMatAnm(J3DModelData* param_0, u16 param_1) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm J3DTevKColorAnm::~J3DTevKColorAnm() {
// asm J3DTevKColorAnm::~J3DTevKColorAnm() {
extern "C" asm void __dt__15J3DTevKColorAnmFv() {
nofralloc
#include "asm/rel/d/a/d_a_bg/d_a_bg/__dt__15J3DTevKColorAnmFv.s"
}
@@ -218,7 +219,8 @@ asm J3DTevKColorAnm::~J3DTevKColorAnm() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm J3DTevKColorAnm::J3DTevKColorAnm() {
// asm J3DTevKColorAnm::J3DTevKColorAnm() {
extern "C" asm void __ct__15J3DTevKColorAnmFv() {
nofralloc
#include "asm/rel/d/a/d_a_bg/d_a_bg/__ct__15J3DTevKColorAnmFv.s"
}
@@ -228,7 +230,8 @@ asm J3DTevKColorAnm::J3DTevKColorAnm() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm J3DTevColorAnm::~J3DTevColorAnm() {
// asm J3DTevColorAnm::~J3DTevColorAnm() {
extern "C" asm void __dt__14J3DTevColorAnmFv() {
nofralloc
#include "asm/rel/d/a/d_a_bg/d_a_bg/__dt__14J3DTevColorAnmFv.s"
}
@@ -238,7 +241,8 @@ asm J3DTevColorAnm::~J3DTevColorAnm() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm J3DTevColorAnm::J3DTevColorAnm() {
// asm J3DTevColorAnm::J3DTevColorAnm() {
extern "C" asm void __ct__14J3DTevColorAnmFv() {
nofralloc
#include "asm/rel/d/a/d_a_bg/d_a_bg/__ct__14J3DTevColorAnmFv.s"
}
@@ -323,7 +327,8 @@ extern "C" asm void __dt__11J3DTexNoAnmFv() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm J3DTexNoAnm::J3DTexNoAnm() {
// asm J3DTexNoAnm::J3DTexNoAnm() {
extern "C" asm void __ct__11J3DTexNoAnmFv() {
nofralloc
#include "asm/rel/d/a/d_a_bg/d_a_bg/__ct__11J3DTexNoAnmFv.s"
}
@@ -333,7 +338,8 @@ asm J3DTexNoAnm::J3DTexNoAnm() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm J3DTexMtxAnm::~J3DTexMtxAnm() {
// asm J3DTexMtxAnm::~J3DTexMtxAnm() {
extern "C" asm void __dt__12J3DTexMtxAnmFv() {
nofralloc
#include "asm/rel/d/a/d_a_bg/d_a_bg/__dt__12J3DTexMtxAnmFv.s"
}
@@ -343,7 +349,8 @@ asm J3DTexMtxAnm::~J3DTexMtxAnm() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm J3DTexMtxAnm::J3DTexMtxAnm() {
// asm J3DTexMtxAnm::J3DTexMtxAnm() {
extern "C" asm void __ct__12J3DTexMtxAnmFv() {
nofralloc
#include "asm/rel/d/a/d_a_bg/d_a_bg/__ct__12J3DTexMtxAnmFv.s"
}
@@ -353,7 +360,8 @@ asm J3DTexMtxAnm::J3DTexMtxAnm() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm J3DMatColorAnm::~J3DMatColorAnm() {
// asm J3DMatColorAnm::~J3DMatColorAnm() {
extern "C" asm void __dt__14J3DMatColorAnmFv() {
nofralloc
#include "asm/rel/d/a/d_a_bg/d_a_bg/__dt__14J3DMatColorAnmFv.s"
}
@@ -363,7 +371,8 @@ asm J3DMatColorAnm::~J3DMatColorAnm() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm J3DMatColorAnm::J3DMatColorAnm() {
// asm J3DMatColorAnm::J3DMatColorAnm() {
extern "C" asm void __ct__14J3DMatColorAnmFv() {
nofralloc
#include "asm/rel/d/a/d_a_bg/d_a_bg/__ct__14J3DMatColorAnmFv.s"
}
@@ -1091,7 +1100,8 @@ asm int daBg_c::create() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DTexNoAnm::calc(u16* param_0) const {
// asm void J3DTexNoAnm::calc(u16* param_0) const {
extern "C" asm void calc__11J3DTexNoAnmCFPUs() {
nofralloc
#include "asm/rel/d/a/d_a_bg/d_a_bg/calc__11J3DTexNoAnmCFPUs.s"
}
+8 -13
View File
@@ -4,7 +4,11 @@
//
#include "rel/d/a/d_a_title/d_a_title.h"
#include "JSystem/J2DGraph/J2DScreen.h"
#include "JSystem/J2DGraph/J2DTextBox.h"
#include "JSystem/JKernel/JKRExpHeap.h"
#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/JKernel/JKRMemArchive.h"
#include "JSystem/JStudio/JStudio/stb.h"
#include "dol2asm.h"
#include "dolphin/types.h"
@@ -12,6 +16,10 @@
#include "f_op/f_op_actor_mng.h"
#include "f_op/f_op_overlap_mng.h"
#include "f_op/f_op_msg_mng.h"
#include "d/pane/d_pane_class_alpha.h"
#include "d/menu/d_menu_collect.h"
#include "m_Do/m_Do_Reset.h"
#include "m_Do/m_Do_controller_pad.h"
//
// Types:
@@ -186,7 +194,6 @@ extern "C" void _savegpr_26();
extern "C" void _savegpr_29();
extern "C" void _restgpr_26();
extern "C" void _restgpr_29();
extern "C" extern void* g_fopAc_Method[8];
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
extern "C" f32 mViewOffsetY__17dMenu_Collect3D_c[1 + 1 /* padding */];
extern "C" u8 mFader__13mDoGph_gInf_c[4];
@@ -468,8 +475,6 @@ void daTitle_c::nextScene_init() {
}
/* 80D67550-80D675EC 000B30 009C+00 1/0 0/0 0/0 .text nextScene_proc__9daTitle_cFv */
// setFadeColor store order issue
#ifdef NONMATCHING
void daTitle_c::nextScene_proc() {
if (!fopOvlpM_IsPeek() && !mDoRst::isReset()) {
scene_class* playScene = fopScnM_SearchByID(dStage_roomControl_c::getProcID());
@@ -477,16 +482,6 @@ void daTitle_c::nextScene_proc() {
mDoGph_gInf_c::setFadeColor(*(JUtility::TColor*)&g_blackColor);
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTitle_c::nextScene_proc() {
nofralloc
#include "asm/rel/d/a/d_a_title/d_a_title/nextScene_proc__9daTitle_cFv.s"
}
#pragma pop
#endif
/* 80D675EC-80D676AC 000BCC 00C0+00 1/1 0/0 0/0 .text fastLogoDispInit__9daTitle_cFv */
void daTitle_c::fastLogoDispInit() {
File diff suppressed because it is too large Load Diff
+103 -262
View File
@@ -1,292 +1,133 @@
//
// Generated By: dol2asm
// Translation Unit: d_a_obj_digholl
//
/**
* d_a_obj_digholl.cpp
* Object - Dig Hole
*/
#include "rel/d/a/obj/d_a_obj_digholl/d_a_obj_digholl.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
/* 80018C8C */ ~fopAc_ac_c();
};
struct cXyz {};
struct daPy_py_c {
/* 8015F4F0 */ void setLookPos(cXyz*);
};
struct daObjDigholl_c {
/* 80BDC618 */ void create();
/* 80BDC75C */ ~daObjDigholl_c();
/* 80BDC7D8 */ void execute();
/* 80BDCB0C */ bool draw();
};
struct dSv_info_c {
/* 80035200 */ void onSwitch(int, int);
/* 80035360 */ void isSwitch(int, int) const;
};
struct dKy_tevstr_c {};
struct _GXColor {};
struct dPa_control_c {
/* 8004D1B8 */ void setSimple(u16, cXyz const*, dKy_tevstr_c const*, u8, _GXColor const&,
_GXColor const&, int, f32);
};
//
// Forward References:
//
extern "C" void create__14daObjDigholl_cFv();
extern "C" static void daObjDigholl_Create__FP10fopAc_ac_c();
extern "C" void __dt__14daObjDigholl_cFv();
extern "C" static void daObjDigholl_Delete__FP14daObjDigholl_c();
extern "C" void execute__14daObjDigholl_cFv();
extern "C" static void daObjDigholl_Execute__FP14daObjDigholl_c();
extern "C" bool draw__14daObjDigholl_cFv();
extern "C" static void daObjDigholl_Draw__FP14daObjDigholl_c();
extern "C" extern void* g_profile_Obj_Digholl[12];
//
// External References:
//
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void __dt__10fopAc_ac_cFv();
extern "C" void fopAcM_SetMin__FP10fopAc_ac_cfff();
extern "C" void fopAcM_SetMax__FP10fopAc_ac_cfff();
extern "C" void onSwitch__10dSv_info_cFii();
extern "C" void isSwitch__10dSv_info_cCFii();
extern "C" void setSimple__13dPa_control_cFUsPC4cXyzPC12dKy_tevstr_cUcRC8_GXColorRC8_GXColorif();
extern "C" void setLookPos__9daPy_py_cFP4cXyz();
extern "C" void cLib_distanceAngleS__Fss();
extern "C" void __dl__FPv();
extern "C" void PSVECSquareDistance();
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 u8 g_dComIfG_gameInfo[122384];
extern "C" extern u32 g_whiteColor;
extern "C" extern u32 __float_nan;
//
// Declarations:
//
/* ############################################################################################## */
/* 80BDCB3C-80BDCB40 000000 0004+00 2/2 0/0 0/0 .rodata @3678 */
SECTION_RODATA static f32 const lit_3678 = -60.0f;
COMPILER_STRIP_GATE(0x80BDCB3C, &lit_3678);
/* 80BDCB40-80BDCB44 000004 0004+00 0/2 0/0 0/0 .rodata @3679 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3679[4] = {
0x00,
0x00,
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x80BDCB40, &lit_3679);
#pragma pop
/* 80BDCB44-80BDCB48 000008 0004+00 0/1 0/0 0/0 .rodata @3680 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3680 = -100.0f;
COMPILER_STRIP_GATE(0x80BDCB44, &lit_3680);
#pragma pop
/* 80BDCB48-80BDCB4C 00000C 0004+00 0/1 0/0 0/0 .rodata @3681 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3681 = 60.0f;
COMPILER_STRIP_GATE(0x80BDCB48, &lit_3681);
#pragma pop
/* 80BDCB4C-80BDCB50 000010 0004+00 0/1 0/0 0/0 .rodata @3682 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3682 = 10.0f;
COMPILER_STRIP_GATE(0x80BDCB4C, &lit_3682);
#pragma pop
/* 80BDCB50-80BDCB54 000014 0004+00 0/1 0/0 0/0 .rodata @3683 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3683 = 100.0f;
COMPILER_STRIP_GATE(0x80BDCB50, &lit_3683);
#pragma pop
#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 "f_op/f_op_actor_mng.h"
/* 80BDC618-80BDC73C 000078 0124+00 1/1 0/0 0/0 .text create__14daObjDigholl_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjDigholl_c::create() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_digholl/d_a_obj_digholl/create__14daObjDigholl_cFv.s"
int daObjDigholl_c::create() {
if (!fopAcM_CheckCondition(this, 8)) {
new (this) daObjDigholl_c();
fopAcM_OnCondition(this, 8);
}
field_0x569 = fopAcM_GetParam(this);
field_0x56a = fopAcM_GetParam(this) >> 8;
field_0x56c = fopAcM_GetParam(this) >> 0x10 & 0xff;
if (field_0x56c == 0xff) {
field_0x56c = -1;
}
if (i_fopAcM_isSwitch(this, field_0x569)) {
field_0x568 = 2;
field_0x56b = 1;
}
fopAcM_SetMin(this, -60.0f, 0.0f, -100.0f);
fopAcM_SetMax(this, 60.0f, 10.0f, 100.0f);
mAttentionInfo.mPosition = current.pos;
mEyePos = mAttentionInfo.mPosition;
mAttentionInfo.field_0x4[3] = 0x20;
return cPhs_COMPLEATE_e;
}
#pragma pop
/* 80BDC73C-80BDC75C 00019C 0020+00 1/0 0/0 0/0 .text daObjDigholl_Create__FP10fopAc_ac_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjDigholl_Create(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_digholl/d_a_obj_digholl/daObjDigholl_Create__FP10fopAc_ac_c.s"
/* 80BDC73C-80BDC75C 00019C 0020+00 1/0 0/0 0/0 .text daObjDigholl_Create__FP10fopAc_ac_c */
static int daObjDigholl_Create(fopAc_ac_c* i_this) {
return static_cast<daObjDigholl_c*>(i_this)->create();
}
#pragma pop
/* 80BDC75C-80BDC7B0 0001BC 0054+00 1/1 0/0 0/0 .text __dt__14daObjDigholl_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm daObjDigholl_c::~daObjDigholl_c() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_digholl/d_a_obj_digholl/__dt__14daObjDigholl_cFv.s"
}
#pragma pop
daObjDigholl_c::~daObjDigholl_c() {}
/* 80BDC7B0-80BDC7D8 000210 0028+00 1/0 0/0 0/0 .text daObjDigholl_Delete__FP14daObjDigholl_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjDigholl_Delete(daObjDigholl_c* param_0) {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_digholl/d_a_obj_digholl/daObjDigholl_Delete__FP14daObjDigholl_c.s"
static int daObjDigholl_Delete(daObjDigholl_c* i_this) {
i_this->~daObjDigholl_c();
return 1;
}
#pragma pop
/* ############################################################################################## */
/* 80BDCB54-80BDCB58 000018 0004+00 0/1 0/0 0/0 .rodata @3793 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3793 = 40.0f;
COMPILER_STRIP_GATE(0x80BDCB54, &lit_3793);
#pragma pop
/* 80BDCB58-80BDCB5C 00001C 0004+00 0/1 0/0 0/0 .rodata @3794 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3794 = 35.0f;
COMPILER_STRIP_GATE(0x80BDCB58, &lit_3794);
#pragma pop
/* 80BDCB5C-80BDCB60 000020 0004+00 0/1 0/0 0/0 .rodata @3795 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3795 = 250000.0f;
COMPILER_STRIP_GATE(0x80BDCB5C, &lit_3795);
#pragma pop
/* 80BDCB60-80BDCB64 000024 0004+00 0/1 0/0 0/0 .rodata @3796 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3796 = 200.0f;
COMPILER_STRIP_GATE(0x80BDCB60, &lit_3796);
#pragma pop
/* 80BDCB64-80BDCB6C 000028 0008+00 0/1 0/0 0/0 .rodata @3797 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3797[8] = {
0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80BDCB64, &lit_3797);
#pragma pop
/* 80BDCB6C-80BDCB74 000030 0008+00 0/1 0/0 0/0 .rodata @3798 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3798[8] = {
0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80BDCB6C, &lit_3798);
#pragma pop
/* 80BDCB74-80BDCB7C 000038 0008+00 0/1 0/0 0/0 .rodata @3799 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3799[8] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80BDCB74, &lit_3799);
#pragma pop
/* 80BDCB7C-80BDCB80 000040 0004+00 0/1 0/0 0/0 .rodata @3800 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3800 = 1000.0f;
COMPILER_STRIP_GATE(0x80BDCB7C, &lit_3800);
#pragma pop
/* 80BDC7D8-80BDCAEC 000238 0314+00 1/1 0/0 0/0 .text execute__14daObjDigholl_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjDigholl_c::execute() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_digholl/d_a_obj_digholl/execute__14daObjDigholl_cFv.s"
int daObjDigholl_c::execute() {
daPy_py_c* player = daPy_getLinkPlayerActorClass();
if (player->i_checkNowWolf() &&
(field_0x56a == 0xff || i_fopAcM_isSwitch(this, field_0x56a)) &&
(f32)fabsf(current.pos.y - player->current.pos.y) < 40.0f)
{
mAttentionInfo.mFlags = 0x80;
} else {
mAttentionInfo.mFlags = 0;
}
if (field_0x568 == 1) {
if (cLib_distanceAngleS(player->shape_angle.y, shape_angle.y) < 0x6000) {
shape_angle.y = player->shape_angle.y + 0x10000 - 0x8000;
current.angle.y = shape_angle.y;
}
i_fopAcM_onSwitch(this, field_0x569);
if (i_dComIfGp_event_runCheck()) {
if (player->getBaseAnimeFrame() > 35.0f) {
field_0x56b = 1;
}
} else {
field_0x568 = 2;
field_0x56b = 1;
}
} else {
if ((player->current.pos.abs2XZ(current.pos) < 250000.0f) &&
(fabsf(current.pos.y - player->current.pos.y) < 200.0f))
{
daPy_py_c::setLookPos(&mAttentionInfo.mPosition);
}
}
if (player->current.pos.abs(current.pos) < 1000.0f) {
dComIfGp_particle_setSimple(0x70f, &current.pos, 0xff, g_whiteColor, g_whiteColor, NULL,
0.0f);
dComIfGp_particle_setSimple(0x73d, &current.pos, 0xff, g_whiteColor, g_whiteColor, NULL,
0.0f);
}
return 1;
}
#pragma pop
/* 80BDCAEC-80BDCB0C 00054C 0020+00 1/0 0/0 0/0 .text daObjDigholl_Execute__FP14daObjDigholl_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjDigholl_Execute(daObjDigholl_c* param_0) {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_digholl/d_a_obj_digholl/daObjDigholl_Execute__FP14daObjDigholl_c.s"
static int daObjDigholl_Execute(daObjDigholl_c* i_this) {
return i_this->execute();
}
#pragma pop
/* 80BDCB0C-80BDCB14 00056C 0008+00 1/1 0/0 0/0 .text draw__14daObjDigholl_cFv */
bool daObjDigholl_c::draw() {
return true;
int daObjDigholl_c::draw() {
return 1;
}
/* 80BDCB14-80BDCB34 000574 0020+00 1/0 0/0 0/0 .text daObjDigholl_Draw__FP14daObjDigholl_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjDigholl_Draw(daObjDigholl_c* param_0) {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_digholl/d_a_obj_digholl/daObjDigholl_Draw__FP14daObjDigholl_c.s"
static int daObjDigholl_Draw(daObjDigholl_c* i_this) {
return i_this->draw();
}
#pragma pop
/* ############################################################################################## */
/* 80BDCB80-80BDCBA0 -00001 0020+00 1/0 0/0 0/0 .data l_daObjDigholl_Method */
SECTION_DATA static void* l_daObjDigholl_Method[8] = {
(void*)daObjDigholl_Create__FP10fopAc_ac_c,
(void*)daObjDigholl_Delete__FP14daObjDigholl_c,
(void*)daObjDigholl_Execute__FP14daObjDigholl_c,
(void*)NULL,
(void*)daObjDigholl_Draw__FP14daObjDigholl_c,
(void*)NULL,
(void*)NULL,
(void*)NULL,
static actor_method_class l_daObjDigholl_Method = {
(process_method_func)daObjDigholl_Create, (process_method_func)daObjDigholl_Delete,
(process_method_func)daObjDigholl_Execute, (process_method_func)NULL,
(process_method_func)daObjDigholl_Draw,
};
/* 80BDCBA0-80BDCBD0 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Digholl */
SECTION_DATA extern void* g_profile_Obj_Digholl[12] = {
(void*)0xFFFFFFFD, (void*)0x0003FFFD,
(void*)0x00520000, (void*)&g_fpcLf_Method,
(void*)0x00000570, (void*)NULL,
(void*)NULL, (void*)&g_fopAc_Method,
(void*)0x00F90000, (void*)&l_daObjDigholl_Method,
(void*)0x00044100, (void*)0x030E0000,
extern actor_process_profile_definition g_profile_Obj_Digholl = {
-3,
3,
-3,
PROC_Obj_Digholl,
&g_fpcLf_Method.mBase,
sizeof(daObjDigholl_c),
0,
0,
&g_fopAc_Method.base,
0x00F9,
&l_daObjDigholl_Method,
0x00044100,
3,
14,
};
+119 -287
View File
@@ -1,321 +1,153 @@
//
// Generated By: dol2asm
// Translation Unit: d_a_obj_kjgjs
//
/**
* d_a_obj_kjgjs.cpp
* Object - Kjgjs
*/
#include "rel/d/a/obj/d_a_obj_kjgjs/d_a_obj_kjgjs.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "JSystem/JKernel/JKRHeap.h"
#include "d/bg/d_bg_w.h"
#include "d/d_procname.h"
//
// Types:
//
static const u32 l_dzbidx[2] = {8, 9};
static const char* l_arcName = "K_jgjs";
struct request_of_phase_process_class {};
struct mDoMtx_stack_c {
static u8 now[48];
};
struct fopAc_ac_c {
/* 80018C8C */ ~fopAc_ac_c();
};
struct daObjKJgjs_c {
/* 80C46098 */ void create1st();
/* 80C4616C */ void setMtx();
/* 80C461E4 */ void CreateHeap();
/* 80C46264 */ void Create();
/* 80C46310 */ void Execute(f32 (**)[3][4]);
/* 80C46320 */ void Draw();
/* 80C463C4 */ void Delete();
/* 80C464CC */ ~daObjKJgjs_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 {};
struct cBgS_PolyInfo {};
struct csXyz {};
struct dBgS_MoveBgActor {
/* 80078624 */ dBgS_MoveBgActor();
/* 800786B0 */ bool IsDelete();
/* 800786B8 */ bool ToFore();
/* 800786C0 */ bool ToBack();
/* 800787BC */ void MoveBGCreate(char const*, int,
void (*)(dBgW*, void*, cBgS_PolyInfo const&, bool, cXyz*,
csXyz*, csXyz*),
u32, f32 (*)[3][4]);
/* 800788DC */ void MoveBGDelete();
/* 80078950 */ void MoveBGExecute();
};
struct J3DModel {};
//
// Forward References:
//
extern "C" void create1st__12daObjKJgjs_cFv();
extern "C" void setMtx__12daObjKJgjs_cFv();
extern "C" void CreateHeap__12daObjKJgjs_cFv();
extern "C" void Create__12daObjKJgjs_cFv();
extern "C" void Execute__12daObjKJgjs_cFPPA3_A4_f();
extern "C" void Draw__12daObjKJgjs_cFv();
extern "C" void Delete__12daObjKJgjs_cFv();
extern "C" static void daObjKJgjs_create1st__FP12daObjKJgjs_c();
extern "C" static void daObjKJgjs_MoveBGDelete__FP12daObjKJgjs_c();
extern "C" static void daObjKJgjs_MoveBGExecute__FP12daObjKJgjs_c();
extern "C" static void daObjKJgjs_MoveBGDraw__FP12daObjKJgjs_c();
extern "C" void __dt__12daObjKJgjs_cFv();
extern "C" extern char const* const d_a_obj_kjgjs__stringBase0;
//
// External References:
//
extern "C" void mDoMtx_XYZrotM__FPA4_fsss();
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
extern "C" void __dt__10fopAc_ac_cFv();
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 dBgS_MoveBGProc_TypicalRotY__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz();
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 settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
extern "C" void __dl__FPv();
extern "C" void PSMTXCopy();
extern "C" void PSMTXTrans();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern void* __vt__16dBgS_MoveBgActor[10];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_env_light[4880];
extern "C" extern u8 j3dSys[284];
//
// Declarations:
//
/* ############################################################################################## */
/* 80C46544-80C4654C 000000 0008+00 1/1 0/0 0/0 .rodata l_dzbidx */
SECTION_RODATA static u8 const l_dzbidx[8] = {
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09,
};
COMPILER_STRIP_GATE(0x80C46544, &l_dzbidx);
/* 80C46584-80C46584 000040 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80C46584 = "K_jgjs";
#pragma pop
/* 80C4658C-80C46590 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
SECTION_DATA static void* l_arcName = (void*)&d_a_obj_kjgjs__stringBase0;
inline request_of_phase_process_class* daObjKJgjs_getRes(daObjKJgjs_c* i_kjgjs) {
daObjKJgjs_c* mpKjgjs = (daObjKJgjs_c*)i_kjgjs;
return i_kjgjs ? &mpKjgjs->mPhaseReq : (request_of_phase_process_class*)mpKjgjs;
}
/* 80C46098-80C4616C 000078 00D4+00 1/1 0/0 0/0 .text create1st__12daObjKJgjs_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjKJgjs_c::create1st() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_kjgjs/d_a_obj_kjgjs/create1st__12daObjKJgjs_cFv.s"
int daObjKJgjs_c::create1st() {
int phase = dComIfG_resLoad(daObjKJgjs_getRes(this), l_arcName);
if (phase == cPhs_COMPLEATE_e) {
setMtx();
field_0x60c = getType();
if (field_0x60c < 0) {
field_0x60c = 0;
} else if (field_0x60c > 2) {
field_0x60c = 1;
}
phase = MoveBGCreate(l_arcName, l_dzbidx[field_0x60c], dBgS_MoveBGProc_TypicalRotY, 0x47f0,
&mMtx[0]);
if (phase == cPhs_ERROR_e) {
return phase;
}
}
return phase;
}
#pragma pop
/* 80C4616C-80C461E4 00014C 0078+00 1/1 0/0 0/0 .text setMtx__12daObjKJgjs_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjKJgjs_c::setMtx() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_kjgjs/d_a_obj_kjgjs/setMtx__12daObjKJgjs_cFv.s"
void daObjKJgjs_c::setMtx() {
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
mDoMtx_stack_c::XYZrotM(current.angle.x, current.angle.y, current.angle.z);
PSMTXCopy(mDoMtx_stack_c::now, mMtx[1]);
PSMTXCopy(mDoMtx_stack_c::now, mMtx[0]);
}
#pragma pop
/* ############################################################################################## */
/* 80C4654C-80C46554 000008 0008+00 1/1 0/0 0/0 .rodata l_bmdidx */
SECTION_RODATA static u8 const l_bmdidx[8] = {
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05,
};
COMPILER_STRIP_GATE(0x80C4654C, &l_bmdidx);
static const u32 l_bmdidx[2] = {4, 5};
/* 80C461E4-80C46264 0001C4 0080+00 1/0 0/0 0/0 .text CreateHeap__12daObjKJgjs_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjKJgjs_c::CreateHeap() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_kjgjs/d_a_obj_kjgjs/CreateHeap__12daObjKJgjs_cFv.s"
int daObjKJgjs_c::CreateHeap() {
mpModel = mDoExt_J3DModel__create(
(J3DModelData*)dComIfG_getObjectRes(l_arcName, l_bmdidx[field_0x60c]), 0x80000, 0x11000084);
return mpModel != NULL ? 1 : 0;
}
#pragma pop
/* ############################################################################################## */
/* 80C46554-80C46584 000010 0030+00 1/1 0/0 0/0 .rodata l_cull_box */
SECTION_RODATA static u8 const l_cull_box[48] = {
0xC4, 0x9D, 0x80, 0x00, 0xC5, 0x3E, 0xA0, 0x00, 0xC4, 0x9D, 0x80, 0x00, 0x44, 0x9D, 0x80, 0x00,
0x45, 0x2F, 0x00, 0x00, 0x44, 0x9D, 0x80, 0x00, 0xC2, 0x98, 0xBD, 0x71, 0xC1, 0x2D, 0x47, 0xAE,
0xC2, 0x9D, 0x05, 0x1F, 0x42, 0x97, 0x0A, 0x3D, 0x41, 0x2F, 0x33, 0x33, 0x42, 0x9C, 0x1E, 0xB8,
static const Vec l_cull_box[4] = {
{-1260.0f, -3050.0f, -1260.0f},
{1260.0f, 2800.0f, 1260.0f},
{-76.37f, -10.83f, -78.51},
{75.52f, 10.95f, 78.06f},
};
COMPILER_STRIP_GATE(0x80C46554, &l_cull_box);
/* 80C46264-80C46310 000244 00AC+00 1/0 0/0 0/0 .text Create__12daObjKJgjs_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjKJgjs_c::Create() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_kjgjs/d_a_obj_kjgjs/Create__12daObjKJgjs_cFv.s"
int daObjKJgjs_c::Create() {
fopAcM_SetMtx(this, mMtx[1]);
PSMTXCopy(mMtx[1], mpModel->mBaseTransformMtx);
dBgW* mpBgW = field_0x568;
mpBgW->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);
} else {
fopAcM_setCullSizeBox(this, l_cull_box[2].x, l_cull_box[2].y, l_cull_box[2].z,
l_cull_box[3].x, l_cull_box[3].y, l_cull_box[3].z);
}
return 1;
}
#pragma pop
/* 80C46310-80C46320 0002F0 0010+00 1/0 0/0 0/0 .text Execute__12daObjKJgjs_cFPPA3_A4_f
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjKJgjs_c::Execute(f32 (**param_0)[3][4]) {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_kjgjs/d_a_obj_kjgjs/Execute__12daObjKJgjs_cFPPA3_A4_f.s"
/* 80C46310-80C46320 0002F0 0010+00 1/0 0/0 0/0 .text Execute__12daObjKJgjs_cFPPA3_A4_f */
int daObjKJgjs_c::Execute(f32 (**i_mtx)[3][4]) {
*i_mtx = mMtx;
return 1;
}
#pragma pop
/* 80C46320-80C463C4 000300 00A4+00 1/0 0/0 0/0 .text Draw__12daObjKJgjs_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjKJgjs_c::Draw() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_kjgjs/d_a_obj_kjgjs/Draw__12daObjKJgjs_cFv.s"
int daObjKJgjs_c::Draw() {
g_env_light.settingTevStruct(0x10, &current.pos, &mTevStr);
g_env_light.setLightTevColorType_MAJI(mpModel, &mTevStr);
dComIfGd_setListBG();
mDoExt_modelUpdateDL(mpModel);
dComIfGd_setList();
return 1;
}
#pragma pop
/* 80C463C4-80C46400 0003A4 003C+00 1/0 0/0 0/0 .text Delete__12daObjKJgjs_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjKJgjs_c::Delete() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_kjgjs/d_a_obj_kjgjs/Delete__12daObjKJgjs_cFv.s"
int daObjKJgjs_c::Delete() {
dComIfG_resDelete(daObjKJgjs_getRes(this), l_arcName);
return 1;
}
#pragma pop
/* ############################################################################################## */
/* 80C46400-80C46460 0003E0 0060+00 1/0 0/0 0/0 .text daObjKJgjs_create1st__FP12daObjKJgjs_c */
static int daObjKJgjs_create1st(daObjKJgjs_c* i_this) {
if (!fopAcM_CheckCondition(i_this, 8)) {
new (i_this) daObjKJgjs_c();
fopAcM_OnCondition(i_this, 8);
}
return i_this->create1st();
}
/* 80C46460-80C46480 000440 0020+00 1/0 0/0 0/0 .text daObjKJgjs_MoveBGDelete__FP12daObjKJgjs_c */
static int daObjKJgjs_MoveBGDelete(daObjKJgjs_c* i_this) {
return static_cast<dBgS_MoveBgActor*>(i_this)->MoveBGDelete();
}
/* 80C46480-80C464A0 000460 0020+00 1/0 0/0 0/0 .text daObjKJgjs_MoveBGExecute__FP12daObjKJgjs_c*/
static int daObjKJgjs_MoveBGExecute(daObjKJgjs_c* i_this) {
return static_cast<dBgS_MoveBgActor*>(i_this)->MoveBGExecute();
}
/* 80C464A0-80C464CC 000480 002C+00 1/0 0/0 0/0 .text daObjKJgjs_MoveBGDraw__FP12daObjKJgjs_c */
static int daObjKJgjs_MoveBGDraw(daObjKJgjs_c* i_this) {
return static_cast<dBgS_MoveBgActor*>(i_this)->MoveBGDraw();
}
/* 80C464CC-80C4653C 0004AC 0070+00 1/0 0/0 0/0 .text __dt__12daObjKJgjs_cFv */
daObjKJgjs_c::~daObjKJgjs_c() {}
/* 80C46590-80C465B0 -00001 0020+00 1/0 0/0 0/0 .data daObjKJgjs_METHODS */
SECTION_DATA static void* daObjKJgjs_METHODS[8] = {
(void*)daObjKJgjs_create1st__FP12daObjKJgjs_c,
(void*)daObjKJgjs_MoveBGDelete__FP12daObjKJgjs_c,
(void*)daObjKJgjs_MoveBGExecute__FP12daObjKJgjs_c,
(void*)NULL,
(void*)daObjKJgjs_MoveBGDraw__FP12daObjKJgjs_c,
(void*)NULL,
(void*)NULL,
(void*)NULL,
static actor_method_class daObjKJgjs_METHODS = {
(process_method_func)daObjKJgjs_create1st, (process_method_func)daObjKJgjs_MoveBGDelete,
(process_method_func)daObjKJgjs_MoveBGExecute, (process_method_func)NULL,
(process_method_func)daObjKJgjs_MoveBGDraw,
};
/* 80C465B0-80C465E0 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_KJgjs */
SECTION_DATA extern void* g_profile_Obj_KJgjs[12] = {
(void*)0xFFFFFFFD, (void*)0x0003FFFD,
(void*)0x00DD0000, (void*)&g_fpcLf_Method,
(void*)0x00000610, (void*)NULL,
(void*)NULL, (void*)&g_fopAc_Method,
(void*)0x02A50000, (void*)&daObjKJgjs_METHODS,
(void*)0x00040100, (void*)0x000E0000,
extern actor_process_profile_definition g_profile_Obj_KJgjs = {
-3,
3,
-3,
PROC_Obj_KJgjs,
&g_fpcLf_Method.mBase,
sizeof(daObjKJgjs_c),
0,
0,
&g_fopAc_Method.base,
0x02A5,
&daObjKJgjs_METHODS,
0x00040100,
0,
14,
};
/* 80C465E0-80C4660C 000054 002C+00 2/2 0/0 0/0 .data __vt__12daObjKJgjs_c */
SECTION_DATA extern void* __vt__12daObjKJgjs_c[11] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)CreateHeap__12daObjKJgjs_cFv,
(void*)Create__12daObjKJgjs_cFv,
(void*)Execute__12daObjKJgjs_cFPPA3_A4_f,
(void*)Draw__12daObjKJgjs_cFv,
(void*)Delete__12daObjKJgjs_cFv,
(void*)IsDelete__16dBgS_MoveBgActorFv,
(void*)ToFore__16dBgS_MoveBgActorFv,
(void*)ToBack__16dBgS_MoveBgActorFv,
(void*)__dt__12daObjKJgjs_cFv,
};
/* 80C46400-80C46460 0003E0 0060+00 1/0 0/0 0/0 .text daObjKJgjs_create1st__FP12daObjKJgjs_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjKJgjs_create1st(daObjKJgjs_c* param_0) {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_kjgjs/d_a_obj_kjgjs/daObjKJgjs_create1st__FP12daObjKJgjs_c.s"
}
#pragma pop
/* 80C46460-80C46480 000440 0020+00 1/0 0/0 0/0 .text daObjKJgjs_MoveBGDelete__FP12daObjKJgjs_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjKJgjs_MoveBGDelete(daObjKJgjs_c* param_0) {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_kjgjs/d_a_obj_kjgjs/daObjKJgjs_MoveBGDelete__FP12daObjKJgjs_c.s"
}
#pragma pop
/* 80C46480-80C464A0 000460 0020+00 1/0 0/0 0/0 .text daObjKJgjs_MoveBGExecute__FP12daObjKJgjs_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjKJgjs_MoveBGExecute(daObjKJgjs_c* param_0) {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_kjgjs/d_a_obj_kjgjs/daObjKJgjs_MoveBGExecute__FP12daObjKJgjs_c.s"
}
#pragma pop
/* 80C464A0-80C464CC 000480 002C+00 1/0 0/0 0/0 .text daObjKJgjs_MoveBGDraw__FP12daObjKJgjs_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjKJgjs_MoveBGDraw(daObjKJgjs_c* param_0) {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_kjgjs/d_a_obj_kjgjs/daObjKJgjs_MoveBGDraw__FP12daObjKJgjs_c.s"
}
#pragma pop
/* 80C464CC-80C4653C 0004AC 0070+00 1/0 0/0 0/0 .text __dt__12daObjKJgjs_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm daObjKJgjs_c::~daObjKJgjs_c() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_kjgjs/d_a_obj_kjgjs/__dt__12daObjKJgjs_cFv.s"
}
#pragma pop
/* 80C46584-80C46584 000040 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+9 -21
View File
@@ -603,31 +603,29 @@ asm void daTagTWGate_c::initDemoFilone2() {
#endif
/* 80D52BF0-80D52DB4 000670 01C4+00 1/0 0/0 0/0 .text executeDemoFilone2__13daTagTWGate_cFv */
// regswap
#ifdef NONMATCHING
void daTagTWGate_c::executeDemoFilone2() {
int staffId = i_dComIfGp_evmng_getMyStaffId(l_myName, NULL, 0);
s32 staffId = i_dComIfGp_evmng_getMyStaffId(l_myName, NULL, 0);
if (staffId != -1) {
int* cutName = (int*)i_dComIfGp_getEventManager().getMyNowCutName(staffId);
if (dComIfGp_evmng_getIsAddvance(staffId)) {
switch (*cutName) {
case 0x30303032:
case '0002':
initTalk(0xBC1, NULL);
break;
case 0x30303031:
case 0x30303033:
case '0001':
case '0003':
break;
}
}
switch (*cutName) {
case 0x30303031:
case 0x30303033:
case '0001':
case '0003':
dComIfGp_evmng_cutEnd(staffId);
break;
case 0x30303032:
case '0002':
if (talkProc(NULL, 1, NULL)) {
if (mMsgFlow.getChoiceNo() == 0) {
mActionID = ACT_DEMO_FILONE_3;
@@ -649,16 +647,6 @@ void daTagTWGate_c::executeDemoFilone2() {
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagTWGate_c::executeDemoFilone2() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_TWgate/d_a_tag_TWgate/executeDemoFilone2__13daTagTWGate_cFv.s"
}
#pragma pop
#endif
/* 80D52DB4-80D52E7C 000834 00C8+00 1/0 0/0 0/0 .text initDemoFilone3__13daTagTWGate_cFv
*/
@@ -706,10 +694,10 @@ SECTION_RODATA static f32 const lit_4083 = -1.0f;
COMPILER_STRIP_GATE(0x80D5583C, &lit_4083);
/* 80D52E7C-80D53250 0008FC 03D4+00 1/0 0/0 0/0 .text executeDemoFilone3__13daTagTWGate_cFv */
// regswap
// matches without literals
#ifdef NONMATCHING
void daTagTWGate_c::executeDemoFilone3() {
int staffId = i_dComIfGp_evmng_getMyStaffId(l_myName, NULL, 0);
s32 staffId = i_dComIfGp_evmng_getMyStaffId(l_myName, NULL, 0);
if (staffId != -1) {
int* cutName = (int*)i_dComIfGp_getEventManager().getMyNowCutName(staffId);
File diff suppressed because it is too large Load Diff
+230 -124
View File
@@ -6,67 +6,16 @@
#include "rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
#include "d/d_path.h"
#include "d/a/d_a_alink.h"
#include "d/d_procname.h"
#include "JSystem/JKernel/JKRHeap.h"
//
// Types:
//
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
/* 80018C8C */ ~fopAc_ac_c();
};
struct daTagWljump_c {
/* 80D64EB8 */ void create();
/* 80D65004 */ ~daTagWljump_c();
/* 80D65090 */ void execute();
/* 80D6589C */ bool draw();
};
struct daPy_py_c {
static u8 m_midnaActor[4];
};
struct dSv_player_status_b_c {
/* 80032BEC */ void isTransformLV(int) const;
};
struct dSv_info_c {
/* 80035200 */ void onSwitch(int, int);
/* 80035360 */ void isSwitch(int, int) const;
};
struct dSv_event_c {
/* 800349BC */ void isEventBit(u16) const;
};
struct dMsgFlow_c {
/* 80249F00 */ dMsgFlow_c();
/* 80249F48 */ ~dMsgFlow_c();
/* 80249F90 */ void init(fopAc_ac_c*, int, int, fopAc_ac_c**);
/* 8024A2D8 */ void doFlow(fopAc_ac_c*, fopAc_ac_c**, int);
};
struct dEvt_control_c {
/* 80042468 */ void reset();
};
struct dAttHint_c {
/* 800738FC */ void request(fopAc_ac_c*, int);
};
struct JAISoundID {};
struct Vec {};
struct Z2SeMgr {
/* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
};
struct Z2AudioMgr {
static u8 mAudioMgrPtr[4 + 4 /* padding */];
};
//
// Forward References:
//
@@ -79,7 +28,6 @@ extern "C" void execute__13daTagWljump_cFv();
extern "C" static void daTagWljump_Execute__FP13daTagWljump_c();
extern "C" bool draw__13daTagWljump_cFv();
extern "C" static void daTagWljump_Draw__FP13daTagWljump_c();
extern "C" extern void* g_profile_Tag_Wljump[12];
//
// External References:
@@ -100,13 +48,8 @@ extern "C" void init__10dMsgFlow_cFP10fopAc_ac_ciiPP10fopAc_ac_c();
extern "C" void doFlow__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_ci();
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void __dl__FPv();
extern "C" void PSVECSquareDistance();
extern "C" void _savegpr_26();
extern "C" void _restgpr_26();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u32 __float_nan;
extern "C" u8 m_midnaActor__9daPy_py_c[4];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
@@ -115,47 +58,215 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
//
/* 80D64EB8-80D64FE4 000078 012C+00 1/1 0/0 0/0 .text create__13daTagWljump_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagWljump_c::create() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/create__13daTagWljump_cFv.s"
int daTagWljump_c::create() {
if (!fopAcM_CheckCondition(this, 8)) {
new (this) daTagWljump_c();
fopAcM_OnCondition(this, 8);
}
u32 param = (fopAcM_GetParam(this) >> 8) & 0xff;
field_0x571 = (u8)param;
s32 uVar2 = fopAcM_GetParam(this);
if ((uVar2 & 0xff) == 0xff) {
return 5;
}
field_0x5c4 = dPath_GetRoomPath(uVar2 & 0xff, fopAcM_GetRoomNo(this));
if (field_0x5c4 == NULL || field_0x5c4->m_num < 2) {
return 5;
}
mAttentionInfo.field_0x0[0] = 0x32;
mAttentionInfo.field_0x4[3] = 0x32;
shape_angle.z = 0;
field_0x568 = -1;
field_0x56c[0] = (fopAcM_GetParam(this) >> 16) & 0xf;
if (field_0x56c[0] != 1) {
field_0x56c[0] = 0;
}
if (field_0x56c[0] == 0 && field_0x571 != 0xff) {
if (dComIfGs_isSwitch(field_0x571, fopAcM_GetHomeRoomNo(this)) == 0) {
field_0x573 = 1;
}
}
return 4;
}
#pragma pop
/* 80D64FE4-80D65004 0001A4 0020+00 1/0 0/0 0/0 .text daTagWljump_Create__FP10fopAc_ac_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagWljump_Create(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/daTagWljump_Create__FP10fopAc_ac_c.s"
static int daTagWljump_Create(fopAc_ac_c* param_0) {
return ((daTagWljump_c*)param_0)->create();
}
#pragma pop
/* 80D65004-80D65068 0001C4 0064+00 1/1 0/0 0/0 .text __dt__13daTagWljump_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm daTagWljump_c::~daTagWljump_c() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/__dt__13daTagWljump_cFv.s"
daTagWljump_c::~daTagWljump_c() {
}
#pragma pop
/* 80D65068-80D65090 000228 0028+00 1/0 0/0 0/0 .text daTagWljump_Delete__FP13daTagWljump_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagWljump_Delete(daTagWljump_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/daTagWljump_Delete__FP13daTagWljump_c.s"
static int daTagWljump_Delete(daTagWljump_c* param_0) {
param_0->~daTagWljump_c();
return 1;
}
#pragma pop
/* ############################################################################################## */
/* 80D65090-80D6587C 000250 07EC+00 1/1 0/0 0/0 .text execute__13daTagWljump_cFv */
// reg swap
#ifdef NONMATCHING
int daTagWljump_c::execute() {
mAttentionInfo.mFlags = 0;
if (field_0x56c[1]) {
field_0x56c[1]--;
}
daPy_py_c* linkPlayer = daPy_getLinkPlayerActorClass();
daMidna_c* midnaActor = daPy_py_c::getMidnaActor();
if (midnaActor == NULL) {
return 1;
}
if (mEvtInfo.checkCommandTalk()) {
s32 bVar2 = 1;
if (!midnaActor->checkShadowModeTalkWait()) {
if (shape_angle.x != 0 &&
(field_0x571 == 0xff ||
!i_fopAcM_isSwitch(this, field_0x571)))
{
if (field_0x56c[3] == 0) {
mMsgFlow.init(this, shape_angle.x & 0xffff, 0, NULL);
field_0x56c[3] = 1;
mDoAud_seStart(0x10, 0, 0, 0);
} else {
;
if (mMsgFlow.doFlow(this, NULL, 0)) {
mDoAud_seStart(0x11, 0, 0, 0);
shape_angle.x = 0;
}
}
} else {
field_0x568 = field_0x570;
if (midnaActor->current.pos.abs(mEyePos) < 5.0f) {
bVar2 = 0;
}
}
}
if (bVar2) {
return 1;
}
field_0x56c[3] = 0;
i_dComIfGp_event_reset();
field_0x56c[0] = 0;
field_0x572 = 1;
if (field_0x571 != 0xff) {
i_fopAcM_onSwitch(this, field_0x571);
}
} else if (!i_dComIfGp_getEvent().i_isOrderOK()) {
field_0x572 = 0;
} else {
if (!midnaActor->checkWolfNoPos()) {
field_0x574++;
if (field_0x574 >= 5) {
field_0x572 = 0;
}
} else {
field_0x574 = 0;
}
}
if (!linkPlayer->i_checkNowWolf() ||
!daPy_py_c::i_checkFirstMidnaDemo() ||
midnaActor->i_checkMidnaTired()) {
return 1;
}
if (field_0x571 != 0xff && i_fopAcM_isSwitch(this, field_0x571)) {
field_0x56c[0] = 0;
if (field_0x573) {
field_0x573 = 0;
field_0x572 = 1;
field_0x574 = 0;
}
}
if (field_0x56c[0] != 0 || field_0x572 != 0 || field_0x571 == 0xff ||
i_fopAcM_isSwitch(this, field_0x571))
{
s32 uVar6;
dStage_dPnt_c* pbVar7 = field_0x5c4->m_points;
if (linkPlayer->checkWolfTagLockJumpLand() == 0) {
if (linkPlayer->checkWolfTagLockJump() == 0) {
for (uVar6 = 0; uVar6 < field_0x5c4->m_num; uVar6++, pbVar7++) {
if (linkPlayer->current.pos.abs2(pbVar7->m_position) < pbVar7->field_0x0 * pbVar7->field_0x0 * 10.0f * 10.0f) {
field_0x56a = uVar6;
if (uVar6 == 0) {
field_0x568 = 1;
} else if (uVar6 == field_0x5c4->m_num - 1) {
field_0x568 = uVar6 - 1;
} else {
field_0x568 = uVar6 + 1;
}
break;
}
}
if (uVar6 == field_0x5c4->m_num) {
field_0x568 = -1;
}
} else if (field_0x56b) {
field_0x56b = 0;
if (field_0x56a < field_0x568) {
field_0x568++;
if (field_0x5c4->m_num == field_0x568) {
field_0x568 = 0xff;
}
} else {
field_0x568--;
}
}
}
if (field_0x568 >= 0) {
dStage_dPnt_c* pPoint = &field_0x5c4->m_points[field_0x568];
mEyePos.set(pPoint->m_position.x, pPoint->m_position.y, pPoint->m_position.z);
mAttentionInfo.mPosition = mEyePos;
mAttentionInfo.mPosition.y += 220.0f;
field_0x5c8 = pPoint->field_0x3 * 10.0f;
if (pPoint->field_0x1 == 1) {
shape_angle.z = 1;
} else {
shape_angle.z = 0;
}
if (field_0x572 == 0) {
if (!g_dComIfG_gameInfo.play.getEvent().runCheck()) {
mEvtInfo.i_onCondition(1);
if (!linkPlayer->checkPlayerFly() &&
linkPlayer->mEvtInfo.chkCondition(1)) {
dComIfGp_att_ZHintRequest(this, 0x1ff);
if (field_0x56c[2] == 0) {
field_0x56c[2] = 1;
if (field_0x56c[1] == 0) {
mDoAud_seStart(0xe, 0, 0, 0);
}
field_0x56c[1] = 0x3c;
}
}
}
field_0x570 = field_0x568;
field_0x568 = -1;
} else {
mAttentionInfo.mFlags |= 0x81;
}
} else {
field_0x572 = 0;
}
} else {
field_0x572 = 0;
field_0x568 = -1;
}
current.pos = mAttentionInfo.mPosition;
if (!mEvtInfo.chkCondition(1)) {
field_0x56c[2] = 0;
}
return 1;
}
#else
/* 80D658CC-80D658D0 000000 0004+00 1/1 0/0 0/0 .rodata @4044 */
SECTION_RODATA static f32 const lit_4044 = 1.0f;
COMPILER_STRIP_GATE(0x80D658CC, &lit_4044);
@@ -254,61 +365,56 @@ SECTION_RODATA static u8 const lit_4055[8] = {
COMPILER_STRIP_GATE(0x80D6590C, &lit_4055);
#pragma pop
/* 80D65090-80D6587C 000250 07EC+00 1/1 0/0 0/0 .text execute__13daTagWljump_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagWljump_c::execute() {
asm int daTagWljump_c::execute() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/execute__13daTagWljump_cFv.s"
}
#pragma pop
#endif
/* 80D6587C-80D6589C 000A3C 0020+00 1/0 0/0 0/0 .text daTagWljump_Execute__FP13daTagWljump_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagWljump_Execute(daTagWljump_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/daTagWljump_Execute__FP13daTagWljump_c.s"
static int daTagWljump_Execute(daTagWljump_c* param_0) {
return param_0->execute();
}
#pragma pop
/* 80D6589C-80D658A4 000A5C 0008+00 1/1 0/0 0/0 .text draw__13daTagWljump_cFv */
bool daTagWljump_c::draw() {
return true;
int daTagWljump_c::draw() {
return 1;
}
/* 80D658A4-80D658C4 000A64 0020+00 1/0 0/0 0/0 .text daTagWljump_Draw__FP13daTagWljump_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagWljump_Draw(daTagWljump_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/daTagWljump_Draw__FP13daTagWljump_c.s"
static int daTagWljump_Draw(daTagWljump_c* param_0) {
return param_0->draw();
}
#pragma pop
/* ############################################################################################## */
/* 80D65914-80D65934 -00001 0020+00 1/0 0/0 0/0 .data l_daTagWljump_Method */
SECTION_DATA static void* l_daTagWljump_Method[8] = {
(void*)daTagWljump_Create__FP10fopAc_ac_c,
(void*)daTagWljump_Delete__FP13daTagWljump_c,
(void*)daTagWljump_Execute__FP13daTagWljump_c,
(void*)NULL,
(void*)daTagWljump_Draw__FP13daTagWljump_c,
(void*)NULL,
(void*)NULL,
(void*)NULL,
static actor_method_class l_daTagWljump_Method = {
(process_method_func)daTagWljump_Create,
(process_method_func)daTagWljump_Delete,
(process_method_func)daTagWljump_Execute,
NULL,
(process_method_func)daTagWljump_Draw,
};
/* 80D65934-80D65964 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_Wljump */
SECTION_DATA extern void* g_profile_Tag_Wljump[12] = {
(void*)0xFFFFFFFD, (void*)0x0007FFFD,
(void*)0x02C70000, (void*)&g_fpcLf_Method,
(void*)0x000005CC, (void*)NULL,
(void*)NULL, (void*)&g_fopAc_Method,
(void*)0x01040000, (void*)&l_daTagWljump_Method,
(void*)0x00044000, (void*)0x030E0000,
extern actor_process_profile_definition g_profile_Tag_Wljump = {
-3,
7,
-3,
PROC_Tag_Wljump,
&g_fpcLf_Method.mBase,
sizeof(daTagWljump_c),
0,
0,
&g_fopAc_Method.base,
0x0104,
&l_daTagWljump_Method,
0x00044000,
3,
0x0E,
};