mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-06-11 20:48:21 -04:00
k_wmark / k_wpillar OK, fop actor enums / debug building (#1946)
* d_k_wmark / d_k_wpillar OK * make debug buildable / add assert functionality * add more fop actor enums * remove asm
This commit is contained in:
@@ -11663,20 +11663,20 @@ static actor_method_class l_daAlink_Method = {
|
||||
|
||||
/* 803B2DCC-803B2E20 -00001 0030+24 0/0 0/0 1/0 .data g_profile_ALINK */
|
||||
extern actor_process_profile_definition g_profile_ALINK = {
|
||||
-3,
|
||||
fpcLy_CURRENT_e,
|
||||
5,
|
||||
-3,
|
||||
fpcPi_CURRENT_e,
|
||||
PROC_ALINK,
|
||||
&g_fpcLf_Method.mBase,
|
||||
sizeof(daAlink_c),
|
||||
0,
|
||||
0,
|
||||
&g_fopAc_Method.base,
|
||||
0x5B,
|
||||
91,
|
||||
&l_daAlink_Method,
|
||||
0x00060400,
|
||||
1,
|
||||
0,
|
||||
0x60400,
|
||||
fopAc_PLAYER_e,
|
||||
fopAc_CULLBOX_0_e,
|
||||
};
|
||||
|
||||
// tons of extra padding? not sure what this is
|
||||
|
||||
@@ -2536,7 +2536,7 @@ int daAlink_c::execute() {
|
||||
}
|
||||
|
||||
if (checkDeadHP()) {
|
||||
mEvtInfo.offCondition(2);
|
||||
mEvtInfo.offCondition(fopAcCnd_NOEXEC_e);
|
||||
} else if (!checkMagneBootsOn()) {
|
||||
f32 var_f31_2;
|
||||
if (mLinkAcch.ChkGroundHit()) {
|
||||
@@ -2553,13 +2553,13 @@ int daAlink_c::execute() {
|
||||
((checkReinRide() || checkCanoeRide() || checkSpinnerRide()) &&
|
||||
!checkNoResetFlg3(FLG3_UNK_80000) && !checkModeFlg(MODE_JUMP)))
|
||||
{
|
||||
mEvtInfo.onCondition(1);
|
||||
mEvtInfo.onCondition(dEvtCnd_CANTALK_e);
|
||||
if (checkReinRide() || checkCanoeRide()) {
|
||||
mEvtInfo.onCondition(8);
|
||||
mEvtInfo.onCondition(dEvtCnd_CANGETITEM_e);
|
||||
}
|
||||
}
|
||||
} else if (checkMagneBootsOn() && cBgW_CheckBGround(mMagneBootsTopVec.y)) {
|
||||
mEvtInfo.onCondition(1);
|
||||
mEvtInfo.onCondition(dEvtCnd_CANTALK_e);
|
||||
}
|
||||
|
||||
if (checkEndResetFlg1(ERFLG1_UNK_40000) && checkMidnaRide() && checkWolf()) {
|
||||
|
||||
@@ -1009,7 +1009,7 @@ void daItem_c::procInitGetDemoEvent() {
|
||||
|
||||
field_0x9c1 = 10;
|
||||
fopAcM_orderItemEvent(this, 0, 0);
|
||||
mEvtInfo.i_onCondition(8);
|
||||
mEvtInfo.i_onCondition(dEvtCnd_CANGETITEM_e);
|
||||
|
||||
m_item_id = fopAcM_createItemForTrBoxDemo(¤t.pos, m_itemNo, -1, fopAcM_GetRoomNo(this),
|
||||
NULL, NULL);
|
||||
@@ -1027,7 +1027,7 @@ void daItem_c::procWaitGetDemoEvent() {
|
||||
} else {
|
||||
if (m_itemNo == BOOMERANG) {
|
||||
fopAcM_orderItemEvent(this, 0, 0);
|
||||
mEvtInfo.i_onCondition(8);
|
||||
mEvtInfo.i_onCondition(dEvtCnd_CANGETITEM_e);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1042,7 +1042,7 @@ void daItem_c::procWaitGetDemoEvent() {
|
||||
}
|
||||
} else {
|
||||
fopAcM_orderItemEvent(this, 0, 0);
|
||||
mEvtInfo.i_onCondition(8);
|
||||
mEvtInfo.i_onCondition(dEvtCnd_CANGETITEM_e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -524,7 +524,7 @@ dAttList_c* dAttention_c::getActionBtnXY() {
|
||||
dAttList_c* list = GetLockonList(0);
|
||||
|
||||
if (list != NULL && list->getActor() != NULL && list->mType == 1 && LockonTruth()) {
|
||||
if (list->getActor()->mEvtInfo.chkCondition(0x20)) {
|
||||
if (list->getActor()->mEvtInfo.chkCondition(dEvtCnd_CANTALKITEM_e)) {
|
||||
return list;
|
||||
}
|
||||
|
||||
@@ -537,7 +537,7 @@ dAttList_c* dAttention_c::getActionBtnXY() {
|
||||
|
||||
for (i = 0; i < mActionCount; i++) {
|
||||
if (mActionList[i].mType == 3) {
|
||||
if (mActionList[i].getActor()->mEvtInfo.chkCondition(0x20)) {
|
||||
if (mActionList[i].getActor()->mEvtInfo.chkCondition(dEvtCnd_CANTALKITEM_e)) {
|
||||
return &mActionList[i];
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -29,7 +29,7 @@ void dInsect_c::Insect_GetDemoMain() {
|
||||
cLib_offBit(mAttentionInfo.mFlags, 0x10);
|
||||
fopAcM_cancelCarryNow(this);
|
||||
fopAcM_orderItemEvent(this, 0, 0);
|
||||
mEvtInfo.i_onCondition(8);
|
||||
mEvtInfo.i_onCondition(dEvtCnd_CANGETITEM_e);
|
||||
|
||||
m_itemId = fopAcM_createItemForTrBoxDemo(¤t.pos, m_itemNo, -1,
|
||||
fopAcM_GetRoomNo(this), NULL, NULL);
|
||||
@@ -52,7 +52,7 @@ void dInsect_c::Insect_GetDemoMain() {
|
||||
m_mode = 2;
|
||||
} else {
|
||||
fopAcM_orderItemEvent(this, 0, 0);
|
||||
mEvtInfo.i_onCondition(8);
|
||||
mEvtInfo.i_onCondition(dEvtCnd_CANGETITEM_e);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
|
||||
+160
-275
@@ -1,312 +1,197 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: d/d_k_wmark
|
||||
//
|
||||
/**
|
||||
* d_k_wmark.cpp
|
||||
*
|
||||
*/
|
||||
|
||||
#include "d/d_k_wmark.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
static u8 now[48];
|
||||
};
|
||||
|
||||
struct mDoLib_clipper {
|
||||
static u8 mClipper[92];
|
||||
};
|
||||
|
||||
struct kankyo_class {};
|
||||
|
||||
struct cXyz {
|
||||
/* 80009184 */ ~cXyz();
|
||||
/* 80267128 */ void atan2sX_Z() const;
|
||||
};
|
||||
|
||||
struct fopAcM_gc_c {
|
||||
/* 8001DCBC */ void gndCheck(cXyz const*);
|
||||
|
||||
static u8 mGndCheck[84];
|
||||
static f32 mGroundY;
|
||||
};
|
||||
|
||||
struct dkWmark_c {
|
||||
/* 80261640 */ ~dkWmark_c();
|
||||
/* 802616C4 */ void setMatrix();
|
||||
|
||||
static u8 m_nowID[4];
|
||||
};
|
||||
|
||||
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 cBgS_PolyInfo {};
|
||||
|
||||
struct dBgS {
|
||||
/* 80074ABC */ void ChkMoveBG(cBgS_PolyInfo const&);
|
||||
};
|
||||
|
||||
struct cM3dGPla {};
|
||||
|
||||
struct cBgS {
|
||||
/* 80074744 */ void GetTriPla(cBgS_PolyInfo const&, cM3dGPla*) const;
|
||||
};
|
||||
|
||||
struct Vec {};
|
||||
|
||||
struct JMath {
|
||||
static u8 sincosTable_[65536];
|
||||
};
|
||||
|
||||
struct JKRSolidHeap {};
|
||||
|
||||
struct J3DUClipper {
|
||||
/* 802738FC */ void clip(f32 const (*)[4], Vec, f32) const;
|
||||
};
|
||||
|
||||
struct J3DModel {};
|
||||
|
||||
struct J3DLightObj {
|
||||
/* 80018C0C */ J3DLightObj();
|
||||
};
|
||||
|
||||
struct J3DLightInfo {
|
||||
/* 803256C4 */ void operator=(J3DLightInfo const&);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" static void dkWmark_Create__FP12kankyo_class();
|
||||
extern "C" void __dt__9dkWmark_cFv();
|
||||
extern "C" static void dkWmark_Delete__FP9dkWmark_c();
|
||||
extern "C" void setMatrix__9dkWmark_cFv();
|
||||
extern "C" static void dkWmark_Execute__FP9dkWmark_c();
|
||||
extern "C" static void dkWmark_Draw__FP9dkWmark_c();
|
||||
extern "C" extern char const* const d_d_k_wmark__stringBase0;
|
||||
extern "C" extern void* g_profile_WMARK[10 + 1 /* padding */];
|
||||
extern "C" u8 m_nowID__9dkWmark_c[4];
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void __dt__4cXyzFv();
|
||||
extern "C" void mDoMtx_ZXYrotM__FPA4_fsss();
|
||||
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
|
||||
extern "C" void mDoExt_createSolidHeapFromGameToCurrent__FUlUl();
|
||||
extern "C" void mDoExt_adjustSolidHeap__FP12JKRSolidHeap();
|
||||
extern "C" void mDoExt_destroySolidHeap__FP12JKRSolidHeap();
|
||||
extern "C" void mDoExt_restoreCurrentHeap__Fv();
|
||||
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
|
||||
extern "C" void __ct__11J3DLightObjFv();
|
||||
extern "C" void gndCheck__11fopAcM_gc_cFPC4cXyz();
|
||||
extern "C" void fopKyM_Delete__FPv();
|
||||
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
|
||||
extern "C" void GetTriPla__4cBgSCFRC13cBgS_PolyInfoP8cM3dGPla();
|
||||
extern "C" void ChkMoveBG__4dBgSFRC13cBgS_PolyInfo();
|
||||
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
|
||||
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
|
||||
extern "C" void dKy_tevstr_init__FP12dKy_tevstr_cScUc();
|
||||
extern "C" void atan2sX_Z__4cXyzCFv();
|
||||
extern "C" void cM_atan2s__Fff();
|
||||
extern "C" void clip__11J3DUClipperCFPA4_Cf3Vecf();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void __as__12J3DLightInfoFRC12J3DLightInfo();
|
||||
extern "C" void PSMTXCopy();
|
||||
extern "C" void PSMTXTrans();
|
||||
extern "C" void PSVECSquareMag();
|
||||
extern "C" void __register_global_object();
|
||||
extern "C" void __construct_array();
|
||||
extern "C" void _savegpr_26();
|
||||
extern "C" void _restgpr_26();
|
||||
extern "C" void abs();
|
||||
extern "C" extern u8 const j3dDefaultLightInfo[52];
|
||||
extern "C" extern void* __vt__8cM3dGPla[3];
|
||||
extern "C" extern void* g_fopKy_Method[5 + 1 /* padding */];
|
||||
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" u8 mClipper__14mDoLib_clipper[92];
|
||||
extern "C" u8 mGndCheck__11fopAcM_gc_c[84];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_env_light[4880];
|
||||
extern "C" extern u8 j3dSys[284];
|
||||
extern "C" u8 sincosTable___5JMath[65536];
|
||||
extern "C" extern u32 __float_nan;
|
||||
extern "C" f32 mGroundY__11fopAcM_gc_c;
|
||||
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8039A494-8039A494 026AF4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_8039A494 = "Alink";
|
||||
/* @stringBase0 padding */
|
||||
SECTION_DEAD static char const* const pad_8039A49A = "\0\0\0\0\0";
|
||||
#pragma pop
|
||||
|
||||
/* 80430C90-80430C9C 05D9B0 000C+00 1/1 0/0 0/0 .bss @3644 */
|
||||
static u8 lit_3644[12];
|
||||
|
||||
/* 80430C9C-80430CA8 05D9BC 000C+00 1/1 0/0 0/0 .bss
|
||||
* wolfFootScale$localstatic3$create__9dkWmark_cFv */
|
||||
static f32 data_80430C9C[3];
|
||||
#include "JSystem/J3DGraphBase/J3DMaterial.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "SSystem/SComponent/c_math.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"
|
||||
#include "m_Do/m_Do_lib.h"
|
||||
|
||||
/* 80451130-80451134 000630 0004+00 2/2 0/0 0/0 .sbss m_nowID__9dkWmark_c */
|
||||
u8 dkWmark_c::m_nowID[4];
|
||||
int dkWmark_c::m_nowID;
|
||||
|
||||
/* 80451134-80451138 000634 0004+00 1/1 0/0 0/0 .sbss None */
|
||||
static u8 data_80451134[4];
|
||||
int dkWmark_c::create() {
|
||||
static cXyz wolfFootScale(1.1f, 1.0f, 0.6f);
|
||||
|
||||
/* 80454FB0-80454FB4 0035B0 0004+00 1/1 0/0 0/0 .sdata2 @3718 */
|
||||
SECTION_SDATA2 static f32 lit_3718 = 11.0f / 10.0f;
|
||||
new (this) dkWmark_c();
|
||||
|
||||
/* 80454FB4-80454FB8 0035B4 0004+00 2/2 0/0 0/0 .sdata2 @3719 */
|
||||
SECTION_SDATA2 static f32 lit_3719 = 1.0f;
|
||||
field_0x48a = mParam >> 0x10;
|
||||
mParam &= 0xFFFF;
|
||||
|
||||
/* 80454FB8-80454FBC 0035B8 0004+00 1/1 0/0 0/0 .sdata2 @3720 */
|
||||
SECTION_SDATA2 static f32 lit_3720 = 3.0f / 5.0f;
|
||||
if ((int)mParam >= 4) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
if ((int)mParam == 3) {
|
||||
mColorType = 2;
|
||||
} else {
|
||||
mColorType = mParam;
|
||||
}
|
||||
|
||||
mpHeap = mDoExt_createSolidHeapFromGameToCurrent(0x880, 0x20);
|
||||
if (mpHeap != NULL) {
|
||||
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("Alink", 0x23);
|
||||
JUT_ASSERT(60, modelData != 0);
|
||||
|
||||
mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
|
||||
mDoExt_restoreCurrentHeap();
|
||||
mDoExt_adjustSolidHeap(mpHeap);
|
||||
} else {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
if (mpModel == NULL) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
if ((int)mParam != 3 && daPy_py_c::i_checkNowWolf()) {
|
||||
mpModel->setBaseScale(wolfFootScale);
|
||||
}
|
||||
|
||||
if (!setMatrix()) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
if ((int)mParam == 1 || (int)mParam == 3 || (int)mParam == 2) {
|
||||
field_0x494 = m_nowID;
|
||||
m_nowID++;
|
||||
} else {
|
||||
field_0x488 = 1;
|
||||
}
|
||||
|
||||
mAlphaFactor = 1.0f;
|
||||
dKy_tevstr_init(&mTevstr, dComIfGp_roomControl_getStayNo(), 0xFF);
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
|
||||
/* 8026141C-80261640 25BD5C 0224+00 1/0 0/0 0/0 .text dkWmark_Create__FP12kankyo_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dkWmark_Create(kankyo_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_k_wmark/dkWmark_Create__FP12kankyo_class.s"
|
||||
static int dkWmark_Create(kankyo_class* i_this) {
|
||||
return static_cast<dkWmark_c*>(i_this)->create();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80261640-8026169C 25BF80 005C+00 1/1 0/0 0/0 .text __dt__9dkWmark_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dkWmark_c::~dkWmark_c() {
|
||||
nofralloc
|
||||
#include "asm/d/d_k_wmark/__dt__9dkWmark_cFv.s"
|
||||
dkWmark_c::~dkWmark_c() {
|
||||
if (mpHeap != NULL) {
|
||||
mDoExt_destroySolidHeap(mpHeap);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8026169C-802616C4 25BFDC 0028+00 1/0 0/0 0/0 .text dkWmark_Delete__FP9dkWmark_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dkWmark_Delete(dkWmark_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_k_wmark/dkWmark_Delete__FP9dkWmark_c.s"
|
||||
static int dkWmark_Delete(dkWmark_c* i_this) {
|
||||
i_this->~dkWmark_c();
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80454FBC-80454FC0 0035BC 0004+00 1/1 0/0 0/0 .sdata2 @3844 */
|
||||
SECTION_SDATA2 static f32 lit_3844 = 100.0f;
|
||||
|
||||
/* 80454FC0-80454FC8 0035C0 0004+04 2/2 0/0 0/0 .sdata2 @3845 */
|
||||
SECTION_SDATA2 static f32 lit_3845[1 + 1 /* padding */] = {
|
||||
0.0f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
|
||||
/* 80454FC8-80454FD0 0035C8 0008+00 1/1 0/0 0/0 .sdata2 @3846 */
|
||||
SECTION_SDATA2 static f64 lit_3846 = 0.5;
|
||||
|
||||
/* 80454FD0-80454FD8 0035D0 0008+00 1/1 0/0 0/0 .sdata2 @3847 */
|
||||
SECTION_SDATA2 static f64 lit_3847 = 3.0;
|
||||
|
||||
/* 80454FD8-80454FE0 0035D8 0008+00 1/1 0/0 0/0 .sdata2 @3848 */
|
||||
SECTION_SDATA2 static u8 lit_3848[8] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
inline bool fopAcM_gc_c::getTriPla(cM3dGPla* i_plane) {
|
||||
return dComIfG_Bgsp().GetTriPla(*(dBgS_GndChk*)mGndCheck, i_plane);
|
||||
}
|
||||
|
||||
/* 802616C4-80261964 25C004 02A0+00 2/2 0/0 0/0 .text setMatrix__9dkWmark_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dkWmark_c::setMatrix() {
|
||||
nofralloc
|
||||
#include "asm/d/d_k_wmark/setMatrix__9dkWmark_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
BOOL dkWmark_c::setMatrix() {
|
||||
cXyz chk_pos(mPos.x, mPos.y + 100.0f, mPos.z);
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80454FE0-80454FE4 0035E0 0004+00 1/1 0/0 0/0 .sdata2 @3873 */
|
||||
SECTION_SDATA2 static f32 lit_3873 = 1.0f / 50.0f;
|
||||
if (fopAcM_gc_c::gndCheck(&chk_pos)) {
|
||||
mPos.y = fopAcM_gc_c::getGroundY();
|
||||
|
||||
cM3dGPla poly;
|
||||
fopAcM_gc_c::getTriPla(&poly);
|
||||
|
||||
s16 temp_r26 = poly.mNormal.atan2sX_Z() - field_0x48a;
|
||||
f32 var_f31 = poly.mNormal.absXZ();
|
||||
|
||||
mDoMtx_stack_c::transS(mPos.x, mPos.y + 1.0f, mPos.z);
|
||||
mDoMtx_stack_c::ZXYrotM(cM_atan2s(var_f31 * cM_scos(temp_r26), poly.mNormal.y), field_0x48a,
|
||||
cM_atan2s(var_f31 * -cM_ssin(temp_r26), poly.mNormal.y));
|
||||
mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
|
||||
if (dComIfG_Bgsp().ChkMoveBG(*fopAcM_gc_c::getGroundCheck())) {
|
||||
field_0x48c = 1;
|
||||
} else {
|
||||
field_0x48c = 0;
|
||||
}
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int dkWmark_c::execute() {
|
||||
if (field_0x488 == 0 && abs(field_0x494 - m_nowID) > 20) {
|
||||
field_0x488 = 1;
|
||||
}
|
||||
|
||||
if (field_0x488 != 0) {
|
||||
mAlphaFactor -= 0.02f;
|
||||
}
|
||||
|
||||
if (mAlphaFactor <= 0.0f || (field_0x48c == 1 && !setMatrix())) {
|
||||
fopKyM_Delete(this);
|
||||
mAlphaFactor = 0.0f;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80261964-80261A18 25C2A4 00B4+00 1/0 0/0 0/0 .text dkWmark_Execute__FP9dkWmark_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dkWmark_Execute(dkWmark_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_k_wmark/dkWmark_Execute__FP9dkWmark_c.s"
|
||||
static int dkWmark_Execute(dkWmark_c* i_this) {
|
||||
return i_this->execute();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8039A488-8039A494 026AE8 000C+00 1/1 0/0 0/0 .rodata kColor$localstatic3$draw__9dkWmark_cFv */
|
||||
SECTION_RODATA static u8 const data_8039A488[12] = {
|
||||
0x00, 0x00, 0x00, 0x82, 0x5F, 0x4B, 0x32, 0x3C, 0x64, 0x6E, 0x78, 0x28,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8039A488, &data_8039A488);
|
||||
int dkWmark_c::draw() {
|
||||
J3DGXColor color;
|
||||
|
||||
/* 80454FE4-80454FE8 0035E4 0004+00 1/1 0/0 0/0 .sdata2 @3906 */
|
||||
SECTION_SDATA2 static f32 lit_3906 = 50.0f;
|
||||
if (mDoLib_clipper::clip(j3dSys.getViewMtx(), mPos, mScale.x * 50.0f)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80454FE8-80454FF0 0035E8 0008+00 1/1 0/0 0/0 .sdata2 @3908 */
|
||||
SECTION_SDATA2 static f64 lit_3908 = 4503599627370496.0 /* cast u32 to float */;
|
||||
g_env_light.settingTevStruct(0, &mPos, &mTevstr);
|
||||
g_env_light.setLightTevColorType_MAJI(mpModel, &mTevstr);
|
||||
|
||||
static const GXColor kColor[] = {{0, 0, 0, 130}, {95, 75, 50, 60}, {100, 110, 120, 40}};
|
||||
const GXColor* color_p = &kColor[mColorType];
|
||||
|
||||
color.r = color_p->r;
|
||||
color.g = color_p->g;
|
||||
color.b = color_p->b;
|
||||
color.a = color_p->a * mAlphaFactor;
|
||||
|
||||
mpModel->getModelData()->getMaterialNodePointer(0)->setTevKColor(1, &color);
|
||||
mDoExt_modelUpdateDL(mpModel);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80261A18-80261B54 25C358 013C+00 1/0 0/0 0/0 .text dkWmark_Draw__FP9dkWmark_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dkWmark_Draw(dkWmark_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_k_wmark/dkWmark_Draw__FP9dkWmark_c.s"
|
||||
static int dkWmark_Draw(dkWmark_c* i_this) {
|
||||
return i_this->draw();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803C3430-803C3444 -00001 0014+00 1/0 0/0 0/0 .data l_dkWmark_Method */
|
||||
SECTION_DATA static void* l_dkWmark_Method[5] = {
|
||||
(void*)dkWmark_Create__FP12kankyo_class, (void*)dkWmark_Delete__FP9dkWmark_c,
|
||||
(void*)dkWmark_Execute__FP9dkWmark_c, (void*)NULL,
|
||||
(void*)dkWmark_Draw__FP9dkWmark_c,
|
||||
static leafdraw_method_class l_dkWmark_Method = {
|
||||
(process_method_func)dkWmark_Create, (process_method_func)dkWmark_Delete,
|
||||
(process_method_func)dkWmark_Execute, (process_method_func)NULL,
|
||||
(process_method_func)dkWmark_Draw,
|
||||
};
|
||||
|
||||
/* 803C3444-803C3470 -00001 0028+04 0/0 0/0 1/0 .data g_profile_WMARK */
|
||||
SECTION_DATA extern void* g_profile_WMARK[10 + 1 /* padding */] = {
|
||||
(void*)0xFFFFFFFD,
|
||||
(void*)0x0009FFFD,
|
||||
(void*)0x03030000,
|
||||
(void*)&g_fpcLf_Method,
|
||||
(void*)0x00000498,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)&g_fopKy_Method,
|
||||
(void*)0x02F80000,
|
||||
(void*)&l_dkWmark_Method,
|
||||
/* padding */
|
||||
NULL,
|
||||
extern kankyo_process_profile_definition g_profile_WMARK = {
|
||||
fpcLy_CURRENT_e,
|
||||
9,
|
||||
fpcPi_CURRENT_e,
|
||||
PROC_WMARK,
|
||||
&g_fpcLf_Method.mBase,
|
||||
sizeof(dkWmark_c),
|
||||
0,
|
||||
0,
|
||||
&g_fopKy_Method,
|
||||
760,
|
||||
&l_dkWmark_Method,
|
||||
};
|
||||
|
||||
/* 8039A494-8039A494 026AF4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
+133
-270
@@ -4,311 +4,174 @@
|
||||
//
|
||||
|
||||
#include "d/d_k_wpillar.h"
|
||||
#include "dol2asm.h"
|
||||
#include "JSystem/J3DGraphBase/J3DMaterial.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "SSystem/SComponent/c_math.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"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
static u8 now[48];
|
||||
};
|
||||
|
||||
struct J3DMaterialTable {};
|
||||
|
||||
struct J3DAnmTextureSRTKey {};
|
||||
|
||||
struct mDoExt_btkAnm {
|
||||
/* 8000D63C */ void init(J3DMaterialTable*, J3DAnmTextureSRTKey*, int, int, f32, s16, s16);
|
||||
/* 8000D6D8 */ void entry(J3DMaterialTable*, f32);
|
||||
};
|
||||
|
||||
struct J3DAnmTevRegKey {};
|
||||
|
||||
struct mDoExt_brkAnm {
|
||||
/* 8000D70C */ void init(J3DMaterialTable*, J3DAnmTevRegKey*, int, int, f32, s16, s16);
|
||||
/* 8000D7A8 */ void entry(J3DMaterialTable*, f32);
|
||||
};
|
||||
|
||||
struct J3DModelData {};
|
||||
|
||||
struct J3DAnmTransform {};
|
||||
|
||||
struct mDoExt_bckAnm {
|
||||
/* 8000D7DC */ void init(J3DAnmTransform*, int, int, f32, s16, s16, bool);
|
||||
/* 8000D9CC */ void entry(J3DModelData*, f32);
|
||||
};
|
||||
|
||||
struct mDoExt_baseAnm {
|
||||
/* 8000D428 */ void play();
|
||||
};
|
||||
|
||||
struct kankyo_class {};
|
||||
|
||||
struct cXyz {};
|
||||
|
||||
struct fopAcM_gc_c {
|
||||
/* 8001DCBC */ void gndCheck(cXyz const*);
|
||||
|
||||
static u8 mGndCheck[84];
|
||||
};
|
||||
|
||||
struct dkWpillar_c {
|
||||
/* 80261B54 */ void create();
|
||||
/* 80261F24 */ ~dkWpillar_c();
|
||||
/* 80262014 */ void execute();
|
||||
/* 802620C8 */ void draw();
|
||||
};
|
||||
|
||||
struct dKy_tevstr_c {};
|
||||
|
||||
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 dPa_levelEcallBack {};
|
||||
|
||||
struct csXyz {};
|
||||
|
||||
struct _GXColor {};
|
||||
|
||||
struct dPa_control_c {
|
||||
/* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*,
|
||||
u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*,
|
||||
cXyz const*, f32);
|
||||
};
|
||||
|
||||
struct cBgS_PolyInfo {};
|
||||
|
||||
struct dBgS {
|
||||
/* 80074BE8 */ void GetPolyColor(cBgS_PolyInfo const&);
|
||||
/* 80075100 */ void GetRoomId(cBgS_PolyInfo const&);
|
||||
};
|
||||
|
||||
struct JKRSolidHeap {};
|
||||
|
||||
struct J3DModel {};
|
||||
|
||||
struct J3DLightObj {
|
||||
/* 80018C0C */ J3DLightObj();
|
||||
};
|
||||
|
||||
struct J3DLightInfo {
|
||||
/* 803256C4 */ void operator=(J3DLightInfo const&);
|
||||
};
|
||||
|
||||
struct J3DFrameCtrl {
|
||||
/* 803283FC */ void init(s16);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void create__11dkWpillar_cFv();
|
||||
extern "C" static void dkWpillar_Create__FP12kankyo_class();
|
||||
extern "C" void __dt__11dkWpillar_cFv();
|
||||
extern "C" static void dkWpillar_Delete__FP11dkWpillar_c();
|
||||
extern "C" void execute__11dkWpillar_cFv();
|
||||
extern "C" static void dkWpillar_Execute__FP11dkWpillar_c();
|
||||
extern "C" void draw__11dkWpillar_cFv();
|
||||
extern "C" static void dkWpillar_Draw__FP11dkWpillar_c();
|
||||
extern "C" extern void* g_profile_WPILLAR[10 + 1 /* padding */];
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void play__14mDoExt_baseAnmFv();
|
||||
extern "C" void init__13mDoExt_btkAnmFP16J3DMaterialTableP19J3DAnmTextureSRTKeyiifss();
|
||||
extern "C" void entry__13mDoExt_btkAnmFP16J3DMaterialTablef();
|
||||
extern "C" void init__13mDoExt_brkAnmFP16J3DMaterialTableP15J3DAnmTevRegKeyiifss();
|
||||
extern "C" void entry__13mDoExt_brkAnmFP16J3DMaterialTablef();
|
||||
extern "C" void init__13mDoExt_bckAnmFP15J3DAnmTransformiifssb();
|
||||
extern "C" void entry__13mDoExt_bckAnmFP12J3DModelDataf();
|
||||
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
|
||||
extern "C" void mDoExt_createSolidHeapFromGameToCurrent__FUlUl();
|
||||
extern "C" void mDoExt_adjustSolidHeap__FP12JKRSolidHeap();
|
||||
extern "C" void mDoExt_destroySolidHeap__FP12JKRSolidHeap();
|
||||
extern "C" void mDoExt_restoreCurrentHeap__Fv();
|
||||
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
|
||||
extern "C" void __ct__11J3DLightObjFv();
|
||||
extern "C" void fopAcM_getWaterY__FPC4cXyzPf();
|
||||
extern "C" void gndCheck__11fopAcM_gc_cFPC4cXyz();
|
||||
extern "C" void fopKyM_Delete__FPv();
|
||||
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
|
||||
extern "C" void
|
||||
set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
|
||||
extern "C" void GetPolyColor__4dBgSFRC13cBgS_PolyInfo();
|
||||
extern "C" void GetRoomId__4dBgSFRC13cBgS_PolyInfo();
|
||||
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
|
||||
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
|
||||
extern "C" void dKy_tevstr_init__FP12dKy_tevstr_cScUc();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void __as__12J3DLightInfoFRC12J3DLightInfo();
|
||||
extern "C" void init__12J3DFrameCtrlFs();
|
||||
extern "C" void PSMTXCopy();
|
||||
extern "C" void PSMTXTrans();
|
||||
extern "C" void __construct_array();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" extern u8 const j3dDefaultLightInfo[52];
|
||||
extern "C" extern void* __vt__12J3DFrameCtrl[3];
|
||||
extern "C" extern void* g_fopKy_Method[5 + 1 /* padding */];
|
||||
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" u8 mGndCheck__11fopAcM_gc_c[84];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_env_light[4880];
|
||||
extern "C" extern u8 j3dSys[284];
|
||||
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80454FF0-80454FF8 0035F0 0007+01 1/1 0/0 0/0 .sdata2 l_arcName */
|
||||
SECTION_SDATA2 static u8 l_arcName[7 + 1 /* padding */] = {
|
||||
0x41,
|
||||
0x6C,
|
||||
0x77,
|
||||
0x61,
|
||||
0x79,
|
||||
0x73,
|
||||
0x00,
|
||||
/* padding */
|
||||
0x00,
|
||||
};
|
||||
static const char l_arcName[] = "Always";
|
||||
|
||||
/* 80454FF8-80454FFC 0035F8 0004+00 1/1 0/0 0/0 .sdata2 @3838 */
|
||||
SECTION_SDATA2 static f32 lit_3838 = 1.0f;
|
||||
inline int fopAcM_gc_c::getRoomId() {
|
||||
return dComIfG_Bgsp().GetRoomId(*(dBgS_GndChk*)mGndCheck);
|
||||
}
|
||||
|
||||
/* 80454FFC-80455000 0035FC 0004+00 1/1 0/0 0/0 .sdata2 @3839 */
|
||||
SECTION_SDATA2 static f32 lit_3839 = 0.5f;
|
||||
|
||||
/* 80455000-80455004 003600 0004+00 1/1 0/0 0/0 .sdata2 @3840 */
|
||||
SECTION_SDATA2 static f32 lit_3840 = 0.25f;
|
||||
inline int fopAcM_gc_c::getPolyColor() {
|
||||
return dComIfG_Bgsp().GetPolyColor(*(dBgS_GndChk*)mGndCheck);
|
||||
}
|
||||
|
||||
/* 80261B54-80261F04 25C494 03B0+00 1/1 0/0 0/0 .text create__11dkWpillar_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dkWpillar_c::create() {
|
||||
nofralloc
|
||||
#include "asm/d/d_k_wpillar/create__11dkWpillar_cFv.s"
|
||||
int dkWpillar_c::create() {
|
||||
new (this) dkWpillar_c();
|
||||
|
||||
int roomNo;
|
||||
u8 envrOverride;
|
||||
if (fopAcM_gc_c::gndCheck(&mPos)) {
|
||||
roomNo = fopAcM_gc_c::getRoomId();
|
||||
envrOverride = fopAcM_gc_c::getPolyColor();
|
||||
} else {
|
||||
roomNo = dComIfGp_roomControl_getStayNo();
|
||||
envrOverride = 0xFF;
|
||||
}
|
||||
|
||||
dKy_tevstr_init(&mTevstr, roomNo, envrOverride);
|
||||
g_env_light.settingTevStruct(0x10, &mPos, &mTevstr);
|
||||
|
||||
dComIfGp_particle_set(0x1BD, &mPos, &mTevstr, NULL, &mScale, 255, NULL, roomNo, NULL, NULL,
|
||||
NULL);
|
||||
if ((int)mParam != 3) {
|
||||
dComIfGp_particle_set(0x1BE, &mPos, &mTevstr, NULL, &mScale, 255, NULL, roomNo, NULL, NULL,
|
||||
NULL);
|
||||
}
|
||||
|
||||
if ((int)mParam == 1) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
BOOL var_r30;
|
||||
|
||||
mpHeap = mDoExt_createSolidHeapFromGameToCurrent(0x2200, 0x20);
|
||||
if (mpHeap != NULL) {
|
||||
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 0x1C);
|
||||
JUT_ASSERT(96, modelData);
|
||||
|
||||
mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000284);
|
||||
|
||||
J3DAnmTransform* bckAnm = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName, 0xB);
|
||||
JUT_ASSERT(106, bckAnm);
|
||||
|
||||
var_r30 = mBck.init(bckAnm, TRUE, J3DFrameCtrl::LOOP_ONCE_e, 1.0f, 0, -1, false);
|
||||
|
||||
J3DAnmTextureSRTKey* btkAnm = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, 0x3B);
|
||||
var_r30 &= mBtk.init(modelData, btkAnm, FALSE, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1);
|
||||
|
||||
J3DAnmTevRegKey* brkAnm = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, 0x2E);
|
||||
var_r30 &= mBrk.init(modelData, brkAnm, FALSE, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1);
|
||||
|
||||
mDoExt_restoreCurrentHeap();
|
||||
mDoExt_adjustSolidHeap(mpHeap);
|
||||
} else {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
if (mpModel == NULL || !var_r30) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
if ((int)mParam == 2) {
|
||||
mScale.set(0.5f, 0.25f, 0.5f);
|
||||
}
|
||||
|
||||
mpModel->setBaseScale(mScale);
|
||||
mDoMtx_stack_c::transS(mPos.x, mPos.y, mPos.z);
|
||||
mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80261F04-80261F24 25C844 0020+00 1/0 0/0 0/0 .text dkWpillar_Create__FP12kankyo_class
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dkWpillar_Create(kankyo_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_k_wpillar/dkWpillar_Create__FP12kankyo_class.s"
|
||||
static int dkWpillar_Create(kankyo_class* i_this) {
|
||||
return static_cast<dkWpillar_c*>(i_this)->create();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80261F24-80261FEC 25C864 00C8+00 1/1 0/0 0/0 .text __dt__11dkWpillar_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dkWpillar_c::~dkWpillar_c() {
|
||||
nofralloc
|
||||
#include "asm/d/d_k_wpillar/__dt__11dkWpillar_cFv.s"
|
||||
dkWpillar_c::~dkWpillar_c() {
|
||||
if (mpHeap != NULL) {
|
||||
mDoExt_destroySolidHeap(mpHeap);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80261FEC-80262014 25C92C 0028+00 1/0 0/0 0/0 .text dkWpillar_Delete__FP11dkWpillar_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dkWpillar_Delete(dkWpillar_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_k_wpillar/dkWpillar_Delete__FP11dkWpillar_c.s"
|
||||
static int dkWpillar_Delete(dkWpillar_c* i_this) {
|
||||
i_this->~dkWpillar_c();
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80455004-80455008 003604 0004+00 1/1 0/0 0/0 .sdata2 @3946 */
|
||||
SECTION_SDATA2 static u8 lit_3946[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
|
||||
/* 80262014-802620A8 25C954 0094+00 1/1 0/0 0/0 .text execute__11dkWpillar_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dkWpillar_c::execute() {
|
||||
nofralloc
|
||||
#include "asm/d/d_k_wpillar/execute__11dkWpillar_cFv.s"
|
||||
int dkWpillar_c::execute() {
|
||||
mBck.play();
|
||||
|
||||
if (mBck.isStop()) {
|
||||
fopKyM_Delete(this);
|
||||
} else {
|
||||
f32 sp8;
|
||||
if (fopAcM_getWaterY(&mPos, &sp8) != 0) {
|
||||
mpModel->getBaseTRMtx()[1][3] = sp8;
|
||||
mPos.y = sp8;
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802620A8-802620C8 25C9E8 0020+00 1/0 0/0 0/0 .text dkWpillar_Execute__FP11dkWpillar_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dkWpillar_Execute(dkWpillar_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_k_wpillar/dkWpillar_Execute__FP11dkWpillar_c.s"
|
||||
static int dkWpillar_Execute(dkWpillar_c* i_this) {
|
||||
return i_this->execute();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802620C8-802621AC 25CA08 00E4+00 1/1 0/0 0/0 .text draw__11dkWpillar_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dkWpillar_c::draw() {
|
||||
nofralloc
|
||||
#include "asm/d/d_k_wpillar/draw__11dkWpillar_cFv.s"
|
||||
int dkWpillar_c::draw() {
|
||||
g_env_light.settingTevStruct(0x10, &mPos, &mTevstr);
|
||||
g_env_light.setLightTevColorType_MAJI(mpModel, &mTevstr);
|
||||
|
||||
dComIfGd_setListIndScreen();
|
||||
mBck.entry(mpModel->getModelData());
|
||||
mBtk.entry(mpModel->getModelData(), mBck.getFrame());
|
||||
mBrk.entry(mpModel->getModelData(), mBck.getFrame());
|
||||
mDoExt_modelUpdateDL(mpModel);
|
||||
dComIfGd_setList();
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802621AC-802621CC 25CAEC 0020+00 1/0 0/0 0/0 .text dkWpillar_Draw__FP11dkWpillar_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dkWpillar_Draw(dkWpillar_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_k_wpillar/dkWpillar_Draw__FP11dkWpillar_c.s"
|
||||
static int dkWpillar_Draw(dkWpillar_c* i_this) {
|
||||
return i_this->draw();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803C3470-803C3484 -00001 0014+00 1/0 0/0 0/0 .data l_dkWpillar_Method */
|
||||
SECTION_DATA static void* l_dkWpillar_Method[5] = {
|
||||
(void*)dkWpillar_Create__FP12kankyo_class, (void*)dkWpillar_Delete__FP11dkWpillar_c,
|
||||
(void*)dkWpillar_Execute__FP11dkWpillar_c, (void*)NULL,
|
||||
(void*)dkWpillar_Draw__FP11dkWpillar_c,
|
||||
static leafdraw_method_class l_dkWpillar_Method = {
|
||||
(process_method_func)dkWpillar_Create, (process_method_func)dkWpillar_Delete,
|
||||
(process_method_func)dkWpillar_Execute, (process_method_func)NULL,
|
||||
(process_method_func)dkWpillar_Draw,
|
||||
};
|
||||
|
||||
/* 803C3484-803C34B0 -00001 0028+04 0/0 0/0 1/0 .data g_profile_WPILLAR */
|
||||
SECTION_DATA extern void* g_profile_WPILLAR[10 + 1 /* padding */] = {
|
||||
(void*)0xFFFFFFFD,
|
||||
(void*)0x0009FFFD,
|
||||
(void*)0x03020000,
|
||||
(void*)&g_fpcLf_Method,
|
||||
(void*)0x000004D4,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)&g_fopKy_Method,
|
||||
(void*)0x02F70000,
|
||||
(void*)&l_dkWpillar_Method,
|
||||
/* padding */
|
||||
NULL,
|
||||
extern kankyo_process_profile_definition g_profile_WPILLAR = {
|
||||
fpcLy_CURRENT_e,
|
||||
9,
|
||||
fpcPi_CURRENT_e,
|
||||
PROC_WPILLAR,
|
||||
&g_fpcLf_Method.mBase,
|
||||
sizeof(dkWpillar_c),
|
||||
0,
|
||||
0,
|
||||
&g_fopKy_Method,
|
||||
759,
|
||||
&l_dkWpillar_Method,
|
||||
};
|
||||
|
||||
@@ -280,9 +280,9 @@ static leafdraw_method_class l_dThunder_Method = {
|
||||
|
||||
/* 803BC1EC-803BC218 -00001 0028+04 0/0 0/0 1/0 .data g_profile_KY_THUNDER */
|
||||
extern kankyo_process_profile_definition g_profile_KY_THUNDER = {
|
||||
-3,
|
||||
fpcLy_CURRENT_e,
|
||||
7,
|
||||
-3,
|
||||
fpcPi_CURRENT_e,
|
||||
PROC_KY_THUNDER,
|
||||
&g_fpcLf_Method.mBase,
|
||||
sizeof(dThunder_c),
|
||||
|
||||
+3
-3
@@ -81,15 +81,15 @@ static leafdraw_method_class l_dKyeff_Method = {
|
||||
|
||||
/* 803BC16C-803BC198 -00001 0028+04 0/0 0/0 1/0 .data g_profile_KYEFF */
|
||||
extern kankyo_process_profile_definition g_profile_KYEFF = {
|
||||
-3,
|
||||
fpcLy_CURRENT_e,
|
||||
12,
|
||||
0xFFFD,
|
||||
fpcPi_CURRENT_e,
|
||||
PROC_KYEFF,
|
||||
&g_fpcLf_Method.mBase,
|
||||
sizeof(dKyeff_c),
|
||||
0,
|
||||
0,
|
||||
&g_fopKy_Method,
|
||||
0x0005,
|
||||
5,
|
||||
&l_dKyeff_Method,
|
||||
};
|
||||
|
||||
+3
-3
@@ -46,15 +46,15 @@ static leafdraw_method_class l_dKyeff2_Method = {
|
||||
|
||||
/* 803BC1AC-803BC1D8 -00001 0028+04 0/0 0/0 1/0 .data g_profile_KYEFF2 */
|
||||
extern kankyo_process_profile_definition g_profile_KYEFF2 = {
|
||||
-3,
|
||||
fpcLy_CURRENT_e,
|
||||
12,
|
||||
0xFFFD,
|
||||
fpcPi_CURRENT_e,
|
||||
PROC_KYEFF2,
|
||||
&g_fpcLf_Method.mBase,
|
||||
sizeof(dKyeff2_c),
|
||||
0,
|
||||
0,
|
||||
&g_fopKy_Method,
|
||||
0x0003,
|
||||
3,
|
||||
&l_dKyeff2_Method,
|
||||
};
|
||||
|
||||
+13
-13
@@ -144,7 +144,7 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
//
|
||||
|
||||
// This probably will need to be moved once actual debug rom decomp begins
|
||||
#if DEBUG
|
||||
#ifdef DEBUG
|
||||
static dEvDb_bit_c dEvDb_bit_table[799] = {
|
||||
#include "src/d/event/d_event_debug_bit_table.inc"
|
||||
};
|
||||
@@ -328,7 +328,7 @@ void dEvt_control_c::setParam(dEvt_order_c* p_order) {
|
||||
s32 dEvt_control_c::beforeFlagProc(dEvt_order_c* p_order) {
|
||||
fopAc_ac_c* actor = p_order->mActor2;
|
||||
|
||||
if (p_order->mFlag & 4 && actor->mEvtInfo.chkCondition(1) != true) {
|
||||
if (p_order->mFlag & 4 && actor->mEvtInfo.chkCondition(dEvtCnd_CANTALK_e) != true) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -442,7 +442,7 @@ int dEvt_control_c::talkXyCheck(dEvt_order_c* p_order) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (pActor2 == NULL || !pActor2->mEvtInfo.chkCondition(0x20)) {
|
||||
if (pActor2 == NULL || !pActor2->mEvtInfo.chkCondition(dEvtCnd_CANTALKITEM_e)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -467,9 +467,9 @@ int dEvt_control_c::catchCheck(dEvt_order_c* p_order) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
actor1->mEvtInfo.setCommand(6);
|
||||
actor1->mEvtInfo.setCommand(dEvtCmd_INCATCH_e);
|
||||
if (actor2 != NULL) {
|
||||
actor2->mEvtInfo.setCommand(6);
|
||||
actor2->mEvtInfo.setCommand(dEvtCmd_INCATCH_e);
|
||||
}
|
||||
|
||||
setParam(p_order);
|
||||
@@ -486,12 +486,12 @@ int dEvt_control_c::catchCheck(dEvt_order_c* p_order) {
|
||||
int dEvt_control_c::talkEnd() {
|
||||
fopAc_ac_c* actor = getPt1();
|
||||
if (actor != NULL) {
|
||||
actor->mEvtInfo.setCommand(0);
|
||||
actor->mEvtInfo.setCommand(dEvtCmd_NONE_e);
|
||||
}
|
||||
|
||||
actor = getPt2();
|
||||
if (actor != NULL) {
|
||||
actor->mEvtInfo.setCommand(0);
|
||||
actor->mEvtInfo.setCommand(dEvtCmd_NONE_e);
|
||||
}
|
||||
|
||||
if (mSpecifiedEvent != -1) {
|
||||
@@ -540,11 +540,11 @@ int dEvt_control_c::demoCheck(dEvt_order_c* p_order) {
|
||||
}
|
||||
|
||||
if (actor1 != NULL) {
|
||||
actor1->mEvtInfo.setCommand(2);
|
||||
actor1->mEvtInfo.setCommand(dEvtCmd_INDEMO_e);
|
||||
}
|
||||
|
||||
if (actor2 != NULL) {
|
||||
actor2->mEvtInfo.setCommand(2);
|
||||
actor2->mEvtInfo.setCommand(dEvtCmd_INDEMO_e);
|
||||
}
|
||||
|
||||
mMode = EVT_MODE_DEMO;
|
||||
@@ -557,12 +557,12 @@ int dEvt_control_c::demoCheck(dEvt_order_c* p_order) {
|
||||
int dEvt_control_c::demoEnd() {
|
||||
fopAc_ac_c* actor = getPt1();
|
||||
if (actor != NULL) {
|
||||
actor->mEvtInfo.setCommand(0);
|
||||
actor->mEvtInfo.setCommand(dEvtCmd_NONE_e);
|
||||
}
|
||||
|
||||
actor = getPt2();
|
||||
if (actor != NULL) {
|
||||
actor->mEvtInfo.setCommand(0);
|
||||
actor->mEvtInfo.setCommand(dEvtCmd_NONE_e);
|
||||
}
|
||||
|
||||
if (mSpecifiedEvent != -1) {
|
||||
@@ -578,7 +578,7 @@ int dEvt_control_c::potentialCheck(dEvt_order_c* p_order) {
|
||||
if (!beforeFlagProc(p_order)) {
|
||||
return 0;
|
||||
} else {
|
||||
actor->mEvtInfo.setCommand(2);
|
||||
actor->mEvtInfo.setCommand(dEvtCmd_INDEMO_e);
|
||||
mMode = EVT_MODE_DEMO;
|
||||
setParam(p_order);
|
||||
afterFlagProc(p_order);
|
||||
@@ -1271,7 +1271,7 @@ void* dEvt_control_c::getStbDemoData(char* resName) {
|
||||
}
|
||||
|
||||
dEvt_info_c::dEvt_info_c() {
|
||||
setCommand(0);
|
||||
setCommand(dEvtCmd_NONE_e);
|
||||
setCondition(2);
|
||||
setEventId(-1);
|
||||
setMapToolId(-1);
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
"810 ゴーストのにおいを覚えた", // Learned ghost's scent
|
||||
"京極", // Kyogoku
|
||||
0x6210,
|
||||
"D_MN10:LV4ダンジョン" // LV4 Dungeon
|
||||
"D_MN10:LV4ダンジョン", // LV4 Dungeon
|
||||
0x9,
|
||||
0xa,
|
||||
},
|
||||
@@ -1155,7 +1155,7 @@
|
||||
"681 1匹目のゴーストを倒した後のミドナヒントを聞いた", // Heard Midna's hint after defeating first ghost
|
||||
"京極", // Kyogoku
|
||||
0x5302,
|
||||
"D_MN10:LV4ダンジョン" // LV4 Dungeon,
|
||||
"D_MN10:LV4ダンジョン", // LV4 Dungeon,
|
||||
0x9,
|
||||
0xa,
|
||||
},
|
||||
@@ -1164,7 +1164,7 @@
|
||||
"680 ゴースト逃亡デモ後のミドナヒントを聞いた", // Heard Midna's hint after cutscene of ghost escaping
|
||||
"京極", // Kyogoku
|
||||
0x5304,
|
||||
"D_MN10:LV4ダンジョン" // LV4 Dungeon,
|
||||
"D_MN10:LV4ダンジョン", // LV4 Dungeon,
|
||||
0x9,
|
||||
0xa,
|
||||
},
|
||||
@@ -1386,7 +1386,7 @@
|
||||
},
|
||||
{
|
||||
"F_0655",
|
||||
"655 ウキ釣りで【トアルナマズ】を初めて釣った", // Caught an Ordon Catfish using bobber first time
|
||||
"655 ウキ釣りで【トアルナマズ】を初めて釣った", // Caught an Ordon Catfish using bobber first time
|
||||
"京極", // Kyogoku
|
||||
0x5008,
|
||||
"釣り", // Fishing
|
||||
@@ -3990,7 +3990,7 @@
|
||||
"361 スピナー柱まわした", // Spun the spinning pillars
|
||||
"京極", // Kyogoku
|
||||
0x2c10,
|
||||
"D_MN10:LV4ダンジョン" // LV4 Dungeon,
|
||||
"D_MN10:LV4ダンジョン", // LV4 Dungeon,
|
||||
0x9,
|
||||
0xa,
|
||||
},
|
||||
@@ -4854,7 +4854,7 @@
|
||||
"265 LV4ダンジョンクリア", // LV4 dungeon clear
|
||||
"京極", // Kyogoku
|
||||
0x2010,
|
||||
"D_MN10:LV4ダンジョン" // LV4 Dungeon,
|
||||
"D_MN10:LV4ダンジョン", // LV4 Dungeon,
|
||||
0x9,
|
||||
0xa,
|
||||
},
|
||||
|
||||
@@ -4868,11 +4868,7 @@ asm void dFile_select_c::setInitSaveData() {
|
||||
/* 801902B8-801902F0 18ABF8 0038+00 2/2 0/0 0/0 .text dataSave__14dFile_select_cFv */
|
||||
#ifndef NONMATCHING
|
||||
void dFile_select_c::dataSave() {
|
||||
#if DEBUG
|
||||
mDoMemCd_saveNAND(&mpMemCard,0x1fbc,0);
|
||||
#else
|
||||
mDoMemCd_save(&mpMemCard,0x1fbc,0);
|
||||
#endif
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
|
||||
@@ -130,7 +130,6 @@ extern "C" void dKyw_evt_wind_set_go__Fv();
|
||||
extern "C" void dKyw_rain_set__Fi();
|
||||
extern "C" extern char const* const d_kankyo_d_kankyo_wether__stringBase0;
|
||||
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
@@ -533,18 +532,19 @@ SECTION_SDATA2 static u8 lit_4378[4] = {
|
||||
SECTION_SDATA2 static f32 lit_4379 = 1.0f;
|
||||
|
||||
// remove these once float data is fixed
|
||||
inline JPABaseEmitter* tmp_dComIfGp_particle_set(u16 param_1, const cXyz* param_2, const dKy_tevstr_c* param_3,
|
||||
const csXyz* param_4, const cXyz* param_5, u8 param_6,
|
||||
dPa_levelEcallBack* param_7, s8 param_8,
|
||||
const GXColor* param_9, const GXColor* param_10,
|
||||
const cXyz* param_11) {
|
||||
inline JPABaseEmitter* tmp_dComIfGp_particle_set(u16 param_1, const cXyz* param_2,
|
||||
const dKy_tevstr_c* param_3, const csXyz* param_4,
|
||||
const cXyz* param_5, u8 param_6,
|
||||
dPa_levelEcallBack* param_7, s8 param_8,
|
||||
const GXColor* param_9, const GXColor* param_10,
|
||||
const cXyz* param_11) {
|
||||
return g_dComIfG_gameInfo.play.getParticle()->setNormal(param_1, param_2, param_3, param_4,
|
||||
param_5, param_6, param_7, param_8,
|
||||
param_9, param_10, param_11, lit_4379);
|
||||
}
|
||||
|
||||
inline JPABaseEmitter* tmp_dComIfGp_particle_set(u16 param_0, const cXyz* param_1, const csXyz* param_2,
|
||||
const cXyz* param_3) {
|
||||
inline JPABaseEmitter* tmp_dComIfGp_particle_set(u16 param_0, const cXyz* param_1,
|
||||
const csXyz* param_2, const cXyz* param_3) {
|
||||
return tmp_dComIfGp_particle_set(param_0, param_1, NULL, param_2, param_3, 0xFF, NULL, -1, NULL,
|
||||
NULL, NULL);
|
||||
}
|
||||
@@ -589,7 +589,8 @@ void dKyw_wether_init() {
|
||||
|
||||
// Stage is Zora's Domain and Room is Outside Throne Room
|
||||
if (!strcmp(dComIfGp_getStartStageName(), "F_SP113") && dComIfGp_roomControl_getStayNo() == 1 &&
|
||||
dComIfG_play_c::getLayerNo(0) < 8) {
|
||||
dComIfG_play_c::getLayerNo(0) < 8)
|
||||
{
|
||||
cXyz tmp;
|
||||
f32 tmp0_2 = FLOAT_LABEL(lit_4378);
|
||||
tmp.z = tmp0_2;
|
||||
@@ -615,7 +616,8 @@ void dKyw_wether_init() {
|
||||
// Room is Entrance or Right Wing Outside or Left Wing Outside or Central Hub Outside
|
||||
if (!strcmp(dComIfGp_getStartStageName(), "D_MN07")) {
|
||||
if ((dComIfGp_roomControl_getStayNo() == 0 || dComIfGp_roomControl_getStayNo() == 3) ||
|
||||
dComIfGp_roomControl_getStayNo() == 6 || dComIfGp_roomControl_getStayNo() == 13) {
|
||||
dComIfGp_roomControl_getStayNo() == 6 || dComIfGp_roomControl_getStayNo() == 13)
|
||||
{
|
||||
g_mEnvSeMgr.initStrongWindSe();
|
||||
}
|
||||
}
|
||||
@@ -790,7 +792,8 @@ static void wether_move_sun() {
|
||||
sunVisible = true;
|
||||
// Stage is Hyrule Castle or Castle Throne Room
|
||||
} else if (!strcmp(dComIfGp_getStartStageName(), "D_MN09") ||
|
||||
!strcmp(dComIfGp_getStartStageName(), "D_MN09A")) {
|
||||
!strcmp(dComIfGp_getStartStageName(), "D_MN09A"))
|
||||
{
|
||||
sunVisible = false;
|
||||
}
|
||||
|
||||
@@ -1017,12 +1020,14 @@ static void wether_move_star() {
|
||||
s32 starsVisible = false;
|
||||
// Stage is Hyrule Castle or Castle Throne Room
|
||||
if (!strcmp(dComIfGp_getStartStageName(), "D_MN09") ||
|
||||
!strcmp(dComIfGp_getStartStageName(), "D_MN09A")) {
|
||||
!strcmp(dComIfGp_getStartStageName(), "D_MN09A"))
|
||||
{
|
||||
return;
|
||||
} else {
|
||||
// Stage is Hero Shade arena
|
||||
if ((dComIfGp_checkStatus(1) && !g_env_light.mVrboxInvisible) ||
|
||||
!strcmp(dComIfGp_getStartStageName(), "F_SP200")) {
|
||||
!strcmp(dComIfGp_getStartStageName(), "F_SP200"))
|
||||
{
|
||||
roomRead_class* room = dComIfGp_getStageRoom();
|
||||
if (room != NULL && room->field_0x0 > dComIfGp_roomControl_getStayNo()) {
|
||||
starsVisible = dStage_roomRead_dt_c_GetVrboxswitch(
|
||||
@@ -1068,7 +1073,8 @@ static void wether_move_star() {
|
||||
// Stage is Hyrule Field or Outside Castle Town or Hidden Village
|
||||
if (!strcmp(dComIfGp_getStartStageName(), "F_SP121") ||
|
||||
!strcmp(dComIfGp_getStartStageName(), "F_SP122") ||
|
||||
!strcmp(dComIfGp_getStartStageName(), "F_SP128")) {
|
||||
!strcmp(dComIfGp_getStartStageName(), "F_SP128"))
|
||||
{
|
||||
g_env_light.mStarCount = (s16)(lit_4772 * g_env_light.mStarDensity);
|
||||
}
|
||||
|
||||
@@ -1110,14 +1116,16 @@ static void wether_move_housi() {
|
||||
dComIfGp_roomControl_getStayNo() != 11) ||
|
||||
(!strcmp(dComIfGp_getStartStageName(), "D_MN08A") ||
|
||||
!strcmp(dComIfGp_getStartStageName(), "D_MN08B") ||
|
||||
!strcmp(dComIfGp_getStartStageName(), "D_MN08C"))) {
|
||||
!strcmp(dComIfGp_getStartStageName(), "D_MN08C")))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Stage is darkworld or Stage is Lake Hylia and Room is Lanayru Spring
|
||||
if (dKy_darkworld_check() == true ||
|
||||
(!strcmp(dComIfGp_getStartStageName(), "F_SP115") &&
|
||||
dComIfGp_roomControl_getStayNo() == 1 && dComIfGp_getStartStageLayer() == 9)) {
|
||||
dComIfGp_roomControl_getStayNo() == 1 && dComIfGp_getStartStageLayer() == 9))
|
||||
{
|
||||
if (g_env_light.mInitAnmTimer != 0) {
|
||||
g_env_light.field_0xea9 = 0;
|
||||
g_env_light.mHousiCount = 200;
|
||||
@@ -1133,7 +1141,8 @@ static void wether_move_housi() {
|
||||
(!strcmp(dComIfGp_getStartStageName(), "F_SP108") &&
|
||||
dComIfGp_getStartStageRoomNo() == 0 && dComIfGp_getStartStageLayer() == 9) ||
|
||||
(!strcmp(dComIfGp_getStartStageName(), "F_SP115") &&
|
||||
dComIfGp_getStartStageLayer() == 9)) {
|
||||
dComIfGp_getStartStageLayer() == 9))
|
||||
{
|
||||
g_env_light.mHousiCount = 0;
|
||||
}
|
||||
}
|
||||
@@ -1183,7 +1192,8 @@ static void wether_move_housi() {
|
||||
break;
|
||||
case TRUE:
|
||||
if (g_env_light.mHousiCount == 0 &&
|
||||
g_env_light.mpHousiPacket->field_0x5de8 <= FLOAT_LABEL(lit_4378)) {
|
||||
g_env_light.mpHousiPacket->field_0x5de8 <= FLOAT_LABEL(lit_4378))
|
||||
{
|
||||
g_env_light.mHousiInitialized = false;
|
||||
delete g_env_light.mpHousiPacket;
|
||||
g_env_light.mpHousiPacket = NULL;
|
||||
@@ -1503,14 +1513,17 @@ void dKyw_wether_proc() {
|
||||
if (!strcmp(dComIfGp_getStartStageName(), "F_SP108") ||
|
||||
!strcmp(dComIfGp_getStartStageName(), "F_SP127") ||
|
||||
(!strcmp(dComIfGp_getStartStageName(), "F_SP121") &&
|
||||
FLOAT_LABEL(lit_4378) != g_env_light.mDiceWeatherTime)) {
|
||||
FLOAT_LABEL(lit_4378) != g_env_light.mDiceWeatherTime))
|
||||
{
|
||||
if (!dKy_darkworld_check()) {
|
||||
// Stage is Hyrule Field
|
||||
if (!strcmp(dComIfGp_getStartStageName(), "F_SP121") || g_env_light.mDaytime >= 75.0f ||
|
||||
g_env_light.mDaytime <= 120.0f) {
|
||||
g_env_light.mDaytime <= 120.0f)
|
||||
{
|
||||
// Stage is Hyrule Field
|
||||
if (!strcmp(dComIfGp_getStartStageName(), "F_SP121") &&
|
||||
g_env_light.mDiceWeatherMode >= 1 && g_env_light.mDiceWeatherMode < 6) {
|
||||
g_env_light.mDiceWeatherMode >= 1 && g_env_light.mDiceWeatherMode < 6)
|
||||
{
|
||||
dKy_get_dayofweek();
|
||||
cLib_addCalc(&g_env_light.field_0xebc, lit_4379, lit_5362, lit_5363, lit_4770);
|
||||
g_env_light.mMoyaMode = 7;
|
||||
@@ -1528,7 +1541,8 @@ void dKyw_wether_proc() {
|
||||
|
||||
// Stage is Fishing Pond
|
||||
if (!strcmp(dComIfGp_getStartStageName(), "F_SP127") &&
|
||||
(g_env_light.mPondSeason == 1 || g_env_light.mPondSeason == 3)) {
|
||||
(g_env_light.mPondSeason == 1 || g_env_light.mPondSeason == 3))
|
||||
{
|
||||
if (g_env_light.mPondSeason == 1) {
|
||||
g_env_light.mHousiCount = 35;
|
||||
} else {
|
||||
|
||||
@@ -761,9 +761,9 @@ static dScnLogo_Method l_dScnLogo_Method[5] = {
|
||||
|
||||
/* 803C2FE4-803C300C -00001 0028+00 0/0 0/0 1/0 .data g_profile_LOGO_SCENE */
|
||||
extern scene_process_profile_definition g_profile_LOGO_SCENE = {
|
||||
0,
|
||||
fpcLy_ROOT_e,
|
||||
1,
|
||||
-3,
|
||||
fpcPi_CURRENT_e,
|
||||
PROC_LOGO_SCENE,
|
||||
&g_fpcNd_Method.mBase,
|
||||
sizeof(dScnLogo_c),
|
||||
|
||||
@@ -12,15 +12,14 @@
|
||||
/* ############################################################################################## */
|
||||
/* 803C3018-803C3040 -00001 0028+00 0/0 0/0 1/0 .data g_profile_MENU_SCENE */
|
||||
extern scene_process_profile_definition g_profile_MENU_SCENE = {
|
||||
0, // mLayerID
|
||||
fpcLy_ROOT_e, // mLayerID
|
||||
1, // mListID
|
||||
-3, // mListPrio
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_MENU_SCENE, // mProcName
|
||||
&g_fpcNd_Method.mBase, // mSubMtd
|
||||
0, // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopScn_Method.mBase, // mSubMtd
|
||||
0, // mpMtd
|
||||
0 // padding
|
||||
NULL, // mpMtd
|
||||
};
|
||||
|
||||
@@ -410,9 +410,9 @@ static leafdraw_method_class l_dScnName_Method = {
|
||||
|
||||
/* 803C30F0-803C3118 -00001 0028+00 0/0 0/0 1/0 .data g_profile_NAME_SCENE */
|
||||
extern scene_process_profile_definition g_profile_NAME_SCENE = {
|
||||
0,
|
||||
fpcLy_ROOT_e,
|
||||
1,
|
||||
-3,
|
||||
fpcPi_CURRENT_e,
|
||||
PROC_NAME_SCENE,
|
||||
&g_fpcNd_Method.mBase,
|
||||
sizeof(dScnName_c),
|
||||
@@ -425,9 +425,9 @@ extern scene_process_profile_definition g_profile_NAME_SCENE = {
|
||||
|
||||
/* 803C3118-803C3140 -00001 0028+00 0/0 0/0 1/0 .data g_profile_NAMEEX_SCENE */
|
||||
extern scene_process_profile_definition g_profile_NAMEEX_SCENE = {
|
||||
0,
|
||||
fpcLy_ROOT_e,
|
||||
1,
|
||||
-3,
|
||||
fpcPi_CURRENT_e,
|
||||
PROC_NAMEEX_SCENE,
|
||||
&g_fpcNd_Method.mBase,
|
||||
sizeof(dScnName_c),
|
||||
|
||||
+8
-10
@@ -11,30 +11,28 @@
|
||||
/* ############################################################################################## */
|
||||
/* 803C32B0-803C32D8 -00001 0028+00 0/0 0/0 1/0 .data g_profile_WARNING_SCENE */
|
||||
extern scene_process_profile_definition g_profile_WARNING_SCENE = {
|
||||
0, // mLayerID
|
||||
fpcLy_ROOT_e, // mLayerID
|
||||
1, // mListID
|
||||
-3, // mListPrio
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_WARNING_SCENE, // mProcName
|
||||
&g_fpcNd_Method.mBase, // mSubMtd
|
||||
0x00000204, // mSize
|
||||
0x204, // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopScn_Method.mBase, // mSubMtd
|
||||
0, // mpMtd
|
||||
0 // padding
|
||||
NULL, // mpMtd
|
||||
};
|
||||
|
||||
/* 803C32D8-803C3300 -00001 0028+00 0/0 0/0 1/0 .data g_profile_WARNING2_SCENE */
|
||||
extern scene_process_profile_definition g_profile_WARNING2_SCENE = {
|
||||
0, // mLayerID
|
||||
fpcLy_ROOT_e, // mLayerID
|
||||
1, // mListID
|
||||
-3, // mListPrio
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_WARNING2_SCENE, // mProcName
|
||||
&g_fpcNd_Method.mBase, // mSubMtd
|
||||
0x00000204, // mSize
|
||||
0x204, // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopScn_Method.mBase, // mSubMtd
|
||||
0, // mpMtd
|
||||
0 // padding
|
||||
NULL, // mpMtd
|
||||
};
|
||||
|
||||
+81
-81
@@ -35,22 +35,22 @@ u32 fopAc_ac_c::stopStatus;
|
||||
|
||||
/* 80018D0C-80018DD8 01364C 00CC+00 1/0 0/0 0/0 .text fopAc_Draw__FPv */
|
||||
static int fopAc_Draw(void* i_this) {
|
||||
fopAc_ac_c* _this = (fopAc_ac_c*)i_this;
|
||||
fopAc_ac_c* a_this = (fopAc_ac_c*)i_this;
|
||||
|
||||
int ret = 1;
|
||||
if (!dComIfGp_isPauseFlag()) {
|
||||
if ((dComIfGp_event_moveApproval(_this) == 2 ||
|
||||
(!fopAcM_checkStatus(_this, fopAc_ac_c::stopStatus) &&
|
||||
(!fopAcM_checkStatus(_this, 0x100) || !fopAcM_cullingCheck(_this)))) &&
|
||||
!fopAcM_checkStatus(_this, 0x21000000))
|
||||
if ((dComIfGp_event_moveApproval(a_this) == 2 ||
|
||||
(!fopAcM_checkStatus(a_this, fopAc_ac_c::stopStatus) &&
|
||||
(!fopAcM_checkStatus(a_this, fopAcStts_CULL_e) || !fopAcM_cullingCheck(a_this)))) &&
|
||||
!fopAcM_checkStatus(a_this, 0x21000000))
|
||||
{
|
||||
fopAcM_OffCondition(_this, 4);
|
||||
ret = fpcLf_DrawMethod((leafdraw_method_class*)_this->mSubMtd, _this);
|
||||
fopAcM_OffCondition(a_this, fopAcCnd_NODRAW_e);
|
||||
ret = fpcLf_DrawMethod((leafdraw_method_class*)a_this->mSubMtd, a_this);
|
||||
} else {
|
||||
fopAcM_OnCondition(_this, 4);
|
||||
fopAcM_OnCondition(a_this, fopAcCnd_NODRAW_e);
|
||||
}
|
||||
|
||||
fopAcM_OffStatus(_this, 0x1000000);
|
||||
fopAcM_OffStatus(a_this, fopAcStts_NODRAW_e);
|
||||
}
|
||||
|
||||
return ret;
|
||||
@@ -58,40 +58,40 @@ static int fopAc_Draw(void* i_this) {
|
||||
|
||||
/* 80018DD8-80018F78 013718 01A0+00 1/0 0/0 0/0 .text fopAc_Execute__FPv */
|
||||
static int fopAc_Execute(void* i_this) {
|
||||
fopAc_ac_c* _this = (fopAc_ac_c*)i_this;
|
||||
fopAc_ac_c* a_this = (fopAc_ac_c*)i_this;
|
||||
|
||||
int ret = 1;
|
||||
if (!dComIfGp_isPauseFlag() && dScnPly_c::isPause()) {
|
||||
if (!dComIfA_PauseCheck()) {
|
||||
daSus_c::check(_this);
|
||||
_this->mEvtInfo.beforeProc();
|
||||
daSus_c::check(a_this);
|
||||
a_this->mEvtInfo.beforeProc();
|
||||
s32 move = dComIfGp_event_moveApproval(i_this);
|
||||
fopAcM_OffStatus(_this, 0x40000000);
|
||||
fopAcM_OffStatus(a_this, 0x40000000);
|
||||
|
||||
if (!fopAcM_checkStatus(_this, 0x20000000) &&
|
||||
if (!fopAcM_checkStatus(a_this, 0x20000000) &&
|
||||
(move == 2 ||
|
||||
(move != 0 && !fopAcM_checkStatus(_this, fopAc_ac_c::stopStatus) &&
|
||||
(!fopAcM_checkStatus(_this, 0x80) || !fopAcM_CheckCondition(_this, 4)))))
|
||||
(move != 0 && !fopAcM_checkStatus(a_this, fopAc_ac_c::stopStatus) &&
|
||||
(!fopAcM_checkStatus(a_this, fopAcStts_NOEXEC_e) || !fopAcM_CheckCondition(a_this, 4)))))
|
||||
{
|
||||
fopAcM_OffCondition(_this, 2);
|
||||
_this->next = _this->current;
|
||||
ret = fpcMtd_Execute((process_method_class*)_this->mSubMtd, _this);
|
||||
fopAcM_OffCondition(a_this, fopAcCnd_NOEXEC_e);
|
||||
a_this->next = a_this->current;
|
||||
ret = fpcMtd_Execute((process_method_class*)a_this->mSubMtd, a_this);
|
||||
} else {
|
||||
_this->mEvtInfo.suspendProc(_this);
|
||||
fopAcM_OnCondition(_this, 2);
|
||||
a_this->mEvtInfo.suspendProc(a_this);
|
||||
fopAcM_OnCondition(a_this, fopAcCnd_NOEXEC_e);
|
||||
}
|
||||
|
||||
if (fopAcM_checkStatus(_this, 0x20) &&
|
||||
_this->orig.pos.y - _this->current.pos.y > 5000.0f)
|
||||
if (fopAcM_checkStatus(a_this, 0x20) &&
|
||||
a_this->orig.pos.y - a_this->current.pos.y > 5000.0f)
|
||||
{
|
||||
fopAcM_delete(_this);
|
||||
fopAcM_delete(a_this);
|
||||
}
|
||||
|
||||
if (_this->current.pos.y < -1e31f) {
|
||||
_this->current.pos.y = -1e31f;
|
||||
if (a_this->current.pos.y < -1e31f) {
|
||||
a_this->current.pos.y = -1e31f;
|
||||
}
|
||||
|
||||
dKy_depth_dist_set(_this);
|
||||
dKy_depth_dist_set(a_this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,11 +100,11 @@ static int fopAc_Execute(void* i_this) {
|
||||
|
||||
/* 80018F78-80018FCC 0138B8 0054+00 1/0 0/0 0/0 .text fopAc_IsDelete__FPv */
|
||||
static int fopAc_IsDelete(void* i_this) {
|
||||
fopAc_ac_c* _this = (fopAc_ac_c*)i_this;
|
||||
fopAc_ac_c* a_this = (fopAc_ac_c*)i_this;
|
||||
|
||||
int isDelete = fpcMtd_IsDelete((process_method_class*)_this->mSubMtd, _this);
|
||||
int isDelete = fpcMtd_IsDelete((process_method_class*)a_this->mSubMtd, a_this);
|
||||
if (isDelete == true) {
|
||||
fopDwTg_DrawQTo(&_this->mDwTg);
|
||||
fopDwTg_DrawQTo(&a_this->mDwTg);
|
||||
}
|
||||
|
||||
return isDelete;
|
||||
@@ -112,15 +112,15 @@ static int fopAc_IsDelete(void* i_this) {
|
||||
|
||||
/* 80018FCC-8001904C 01390C 0080+00 1/0 0/0 0/0 .text fopAc_Delete__FPv */
|
||||
static int fopAc_Delete(void* i_this) {
|
||||
fopAc_ac_c* _this = (fopAc_ac_c*)i_this;
|
||||
fopAc_ac_c* a_this = (fopAc_ac_c*)i_this;
|
||||
|
||||
int deleted = fpcMtd_Delete((process_method_class*)_this->mSubMtd, _this);
|
||||
int deleted = fpcMtd_Delete((process_method_class*)a_this->mSubMtd, a_this);
|
||||
if (deleted == true) {
|
||||
fopAcTg_ActorQTo(&_this->mAcTg);
|
||||
fopDwTg_DrawQTo(&_this->mDwTg);
|
||||
fopAcM_DeleteHeap(_this);
|
||||
fopAcTg_ActorQTo(&a_this->mAcTg);
|
||||
fopDwTg_DrawQTo(&a_this->mDwTg);
|
||||
fopAcM_DeleteHeap(a_this);
|
||||
|
||||
dDemo_actor_c* demoAc = dDemo_c::getActor(_this->mDemoActorId);
|
||||
dDemo_actor_c* demoAc = dDemo_c::getActor(a_this->mDemoActorId);
|
||||
if (demoAc != NULL) {
|
||||
demoAc->setActor(NULL);
|
||||
}
|
||||
@@ -131,52 +131,52 @@ static int fopAc_Delete(void* i_this) {
|
||||
|
||||
/* 8001904C-800193FC 01398C 03B0+00 1/0 0/0 0/0 .text fopAc_Create__FPv */
|
||||
static int fopAc_Create(void* i_this) {
|
||||
fopAc_ac_c* _this = (fopAc_ac_c*)i_this;
|
||||
fopAc_ac_c* a_this = (fopAc_ac_c*)i_this;
|
||||
|
||||
if (fpcM_IsFirstCreating(i_this)) {
|
||||
actor_process_profile_definition* profile =
|
||||
(actor_process_profile_definition*)fpcM_GetProfile(i_this);
|
||||
_this->mAcType = fpcBs_MakeOfType(&g_fopAc_type);
|
||||
_this->mSubMtd = (profile_method_class*)profile->mSubMtd;
|
||||
a_this->mAcType = fpcBs_MakeOfType(&g_fopAc_type);
|
||||
a_this->mSubMtd = (profile_method_class*)profile->mSubMtd;
|
||||
|
||||
fopAcTg_Init(&_this->mAcTg, _this);
|
||||
fopAcTg_ToActorQ(&_this->mAcTg);
|
||||
fopDwTg_Init(&_this->mDwTg, _this);
|
||||
fopAcTg_Init(&a_this->mAcTg, a_this);
|
||||
fopAcTg_ToActorQ(&a_this->mAcTg);
|
||||
fopDwTg_Init(&a_this->mDwTg, a_this);
|
||||
|
||||
_this->mStatus = profile->mStatus;
|
||||
_this->mGroup = profile->mActorType;
|
||||
_this->mCullType = profile->mCullType;
|
||||
a_this->mStatus = profile->mStatus;
|
||||
a_this->mGroup = profile->mActorType;
|
||||
a_this->mCullType = profile->mCullType;
|
||||
|
||||
fopAcM_prm_class* append = fopAcM_GetAppend(_this);
|
||||
fopAcM_prm_class* append = fopAcM_GetAppend(a_this);
|
||||
if (append != NULL) {
|
||||
fopAcM_SetParam(_this, append->mParameter);
|
||||
_this->orig.pos = append->mPos;
|
||||
_this->orig.angle = append->mAngle;
|
||||
_this->shape_angle = append->mAngle;
|
||||
_this->mParentPcId = append->mParentPId;
|
||||
_this->mSubtype = append->mSubtype;
|
||||
_this->mScale.set(append->mScale[0] * 0.1f, append->mScale[1] * 0.1f,
|
||||
fopAcM_SetParam(a_this, append->mParameter);
|
||||
a_this->orig.pos = append->mPos;
|
||||
a_this->orig.angle = append->mAngle;
|
||||
a_this->shape_angle = append->mAngle;
|
||||
a_this->mParentPcId = append->mParentPId;
|
||||
a_this->mSubtype = append->mSubtype;
|
||||
a_this->mScale.set(append->mScale[0] * 0.1f, append->mScale[1] * 0.1f,
|
||||
append->mScale[2] * 0.1f);
|
||||
_this->mSetID = append->mEnemyNo;
|
||||
_this->orig.roomNo = append->mRoomNo;
|
||||
a_this->mSetID = append->mEnemyNo;
|
||||
a_this->orig.roomNo = append->mRoomNo;
|
||||
}
|
||||
|
||||
_this->next = _this->orig;
|
||||
_this->current = _this->orig;
|
||||
_this->mEyePos = _this->orig.pos;
|
||||
_this->mMaxFallSpeed = -100.0f;
|
||||
_this->mAttentionInfo.field_0x0[0] = 1;
|
||||
_this->mAttentionInfo.field_0x0[1] = 2;
|
||||
_this->mAttentionInfo.field_0x0[2] = 3;
|
||||
_this->mAttentionInfo.field_0x0[3] = 5;
|
||||
_this->mAttentionInfo.field_0x0[4] = 6;
|
||||
_this->mAttentionInfo.field_0x0[7] = 14;
|
||||
_this->mAttentionInfo.field_0x0[5] = 15;
|
||||
_this->mAttentionInfo.field_0x0[6] = 15;
|
||||
_this->mAttentionInfo.field_0x0[8] = 51;
|
||||
_this->mAttentionInfo.mPosition = _this->orig.pos;
|
||||
_this->mAttentionInfo.field_0xa = 30;
|
||||
dKy_tevstr_init(&_this->mTevStr, _this->orig.roomNo, -1);
|
||||
a_this->next = a_this->orig;
|
||||
a_this->current = a_this->orig;
|
||||
a_this->mEyePos = a_this->orig.pos;
|
||||
a_this->mMaxFallSpeed = -100.0f;
|
||||
a_this->mAttentionInfo.field_0x0[0] = 1;
|
||||
a_this->mAttentionInfo.field_0x0[1] = 2;
|
||||
a_this->mAttentionInfo.field_0x0[2] = 3;
|
||||
a_this->mAttentionInfo.field_0x0[3] = 5;
|
||||
a_this->mAttentionInfo.field_0x0[4] = 6;
|
||||
a_this->mAttentionInfo.field_0x0[7] = 14;
|
||||
a_this->mAttentionInfo.field_0x0[5] = 15;
|
||||
a_this->mAttentionInfo.field_0x0[6] = 15;
|
||||
a_this->mAttentionInfo.field_0x0[8] = 51;
|
||||
a_this->mAttentionInfo.mPosition = a_this->orig.pos;
|
||||
a_this->mAttentionInfo.field_0xa = 30;
|
||||
dKy_tevstr_init(&a_this->mTevStr, a_this->orig.roomNo, -1);
|
||||
|
||||
int roomNo = dComIfGp_roomControl_getStayNo();
|
||||
if (roomNo >= 0) {
|
||||
@@ -184,23 +184,23 @@ static int fopAc_Create(void* i_this) {
|
||||
}
|
||||
|
||||
dStage_FileList_dt_c* filelist = NULL;
|
||||
if (_this->orig.roomNo >= 0) {
|
||||
if (a_this->orig.roomNo >= 0) {
|
||||
filelist =
|
||||
dComIfGp_roomControl_getStatusRoomDt(_this->orig.roomNo)->mRoomDt.getFileListInfo();
|
||||
dComIfGp_roomControl_getStatusRoomDt(a_this->orig.roomNo)->mRoomDt.getFileListInfo();
|
||||
}
|
||||
|
||||
if (filelist != NULL) {
|
||||
if (!dStage_FileList_dt_GetEnemyAppear1Flag(filelist)) {
|
||||
u32 sw = dStage_FileList_dt_GetBitSw(filelist);
|
||||
if (sw != 0xFF && dComIfGs_isSwitch(sw, _this->orig.roomNo) &&
|
||||
profile->mActorType == ACTOR_TYPE_ENEMY)
|
||||
if (sw != 0xFF && dComIfGs_isSwitch(sw, a_this->orig.roomNo) &&
|
||||
profile->mActorType == fopAc_ENEMY_e)
|
||||
{
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
} else {
|
||||
u32 sw = dStage_FileList_dt_GetBitSw(filelist);
|
||||
if (sw != 0xFF && !dComIfGs_isSwitch(sw, _this->orig.roomNo) &&
|
||||
profile->mActorType == ACTOR_TYPE_ENEMY)
|
||||
if (sw != 0xFF && !dComIfGs_isSwitch(sw, a_this->orig.roomNo) &&
|
||||
profile->mActorType == fopAc_ENEMY_e)
|
||||
{
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
@@ -208,12 +208,12 @@ static int fopAc_Create(void* i_this) {
|
||||
}
|
||||
}
|
||||
|
||||
int ret = fpcMtd_Create((process_method_class*)_this->mSubMtd, _this);
|
||||
int ret = fpcMtd_Create((process_method_class*)a_this->mSubMtd, a_this);
|
||||
if (ret == cPhs_COMPLEATE_e) {
|
||||
s32 priority = fpcLf_GetPriority(_this);
|
||||
fopDwTg_ToDrawQ(&_this->mDwTg, priority);
|
||||
s32 priority = fpcLf_GetPriority(a_this);
|
||||
fopDwTg_ToDrawQ(&a_this->mDwTg, priority);
|
||||
} else if (ret == cPhs_ERROR_e) {
|
||||
fopAcM_OnCondition(_this, 0x10);
|
||||
fopAcM_OnCondition(a_this, 0x10);
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
||||
@@ -1905,7 +1905,7 @@ s32 fopAc_IsActor(void*);
|
||||
/* 8001C9CC-8001CA1C 01730C 0050+00 1/1 0/0 0/0 .text enemySearchJugge__FPvPv */
|
||||
void* enemySearchJugge(void* i_actor, void* i_data) {
|
||||
if (i_actor != NULL && fopAc_IsActor(i_actor) &&
|
||||
static_cast<fopAc_ac_c*>(i_actor)->mGroup == ACTOR_TYPE_ENEMY)
|
||||
static_cast<fopAc_ac_c*>(i_actor)->mGroup == fopAc_ENEMY_e)
|
||||
{
|
||||
return i_actor;
|
||||
} else {
|
||||
|
||||
@@ -163,7 +163,11 @@ void HeapCheck::heapDisplay() const {
|
||||
}
|
||||
|
||||
/* 80450580-80450584 000000 0004+00 3/3 6/6 0/0 .sdata None */
|
||||
#ifdef DEBUG
|
||||
s8 mDoMain::developmentMode = 1;
|
||||
#else
|
||||
s8 mDoMain::developmentMode = -1;
|
||||
#endif
|
||||
|
||||
/* 80450584-80450588 000004 0004+00 0/0 1/1 0/0 .sdata memMargin__7mDoMain */
|
||||
u32 mDoMain::memMargin = 0xFFFFFFFF;
|
||||
|
||||
Reference in New Issue
Block a user