mirror of
https://github.com/zeldaret/tp
synced 2026-08-08 02:31:09 -04:00
work on daalink, fop actor, mDo machine, msg_scrn, + various (#201)
* work on fop actor / actor mng, daalink, d_a_obj_item * d_a_title mostly decompiled * daalink / d_event / JMessage / dmsg_out_font work * msg_scrn_base / msg_scrn_boss * some work on mDo machine, d_menu_save, d_tresure, and various * remove asm * progress
This commit is contained in:
@@ -1,92 +0,0 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: a/obj/d_a_obj_ss_base
|
||||
//
|
||||
|
||||
#include "a/obj/d_a_obj_ss_base.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct fopAc_ac_c {
|
||||
/* 80018B64 */ fopAc_ac_c();
|
||||
/* 80018C8C */ ~fopAc_ac_c();
|
||||
};
|
||||
|
||||
struct daObj_SSBase_c {
|
||||
/* 8015E3F8 */ daObj_SSBase_c();
|
||||
/* 8015E450 */ ~daObj_SSBase_c();
|
||||
/* 8015E4B0 */ void getProcessID();
|
||||
/* 8015E4C8 */ void setSoldOut();
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__14daObj_SSBase_cFv();
|
||||
extern "C" void __dt__14daObj_SSBase_cFv();
|
||||
extern "C" void getProcessID__14daObj_SSBase_cFv();
|
||||
extern "C" void setSoldOut__14daObj_SSBase_cFv();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__10fopAc_ac_cFv();
|
||||
extern "C" void __dt__10fopAc_ac_cFv();
|
||||
extern "C" void __dl__FPv();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803BA088-803BA0A0 0171A8 0014+04 2/2 0/0 0/0 .data __vt__14daObj_SSBase_c */
|
||||
SECTION_DATA extern void* __vt__14daObj_SSBase_c[5 + 1 /* padding */] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__14daObj_SSBase_cFv,
|
||||
(void*)setSoldOut__14daObj_SSBase_cFv,
|
||||
(void*)getProcessID__14daObj_SSBase_cFv,
|
||||
/* padding */
|
||||
NULL,
|
||||
};
|
||||
|
||||
/* 8015E3F8-8015E450 158D38 0058+00 0/0 0/0 3/3 .text __ct__14daObj_SSBase_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm daObj_SSBase_c::daObj_SSBase_c() {
|
||||
nofralloc
|
||||
#include "asm/a/obj/d_a_obj_ss_base/__ct__14daObj_SSBase_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8015E450-8015E4B0 158D90 0060+00 1/0 0/0 3/3 .text __dt__14daObj_SSBase_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm daObj_SSBase_c::~daObj_SSBase_c() {
|
||||
nofralloc
|
||||
#include "asm/a/obj/d_a_obj_ss_base/__dt__14daObj_SSBase_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8015E4B0-8015E4C8 158DF0 0018+00 1/0 0/0 2/0 .text getProcessID__14daObj_SSBase_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObj_SSBase_c::getProcessID() {
|
||||
nofralloc
|
||||
#include "asm/a/obj/d_a_obj_ss_base/getProcessID__14daObj_SSBase_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8015E4C8-8015E4CC 158E08 0004+00 1/0 0/0 0/0 .text setSoldOut__14daObj_SSBase_cFv */
|
||||
void daObj_SSBase_c::setSoldOut() {
|
||||
/* empty function */
|
||||
}
|
||||
+1377
-373
File diff suppressed because it is too large
Load Diff
@@ -21,11 +21,11 @@ u32 daItem_c::startCtrl() {
|
||||
}
|
||||
|
||||
u32 daItem_c::startControl() {
|
||||
unk2378 = 1;
|
||||
mStatus = 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
u32 daItem_c::endControl() {
|
||||
unk2378 = 0;
|
||||
mStatus = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
+45
-45
@@ -64,38 +64,38 @@ int daItemBase_c::CreateItemHeap(char const* arcName, s16 bmdName, s16 btkName,
|
||||
if (mpModel == NULL) {
|
||||
return 0;
|
||||
} else {
|
||||
field_0x578 = NULL;
|
||||
mpBtkAnm = NULL;
|
||||
if (btkName > 0) {
|
||||
J3DAnmTextureSRTKey* pbtk =
|
||||
(J3DAnmTextureSRTKey*)dComIfG_getObjectRes(arcName, btkName);
|
||||
field_0x578 = new mDoExt_btkAnm();
|
||||
mpBtkAnm = new mDoExt_btkAnm();
|
||||
|
||||
if (field_0x578 == NULL || !field_0x578->init(modelData, pbtk, 1, 2, 1.0f, 0, -1)) {
|
||||
if (mpBtkAnm == NULL || !mpBtkAnm->init(modelData, pbtk, 1, 2, 1.0f, 0, -1)) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
field_0x57c = NULL;
|
||||
mpBpkAnm = NULL;
|
||||
if (bpkName > 0) {
|
||||
J3DAnmColor* pbpk = (J3DAnmColor*)dComIfG_getObjectRes(arcName, bpkName);
|
||||
field_0x57c = new mDoExt_bpkAnm();
|
||||
mpBpkAnm = new mDoExt_bpkAnm();
|
||||
|
||||
if (field_0x57c == NULL || !field_0x57c->init(modelData, pbpk, 1, 2, 1.0f, 0, -1)) {
|
||||
if (mpBpkAnm == NULL || !mpBpkAnm->init(modelData, pbpk, 1, 2, 1.0f, 0, -1)) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
field_0x584 = NULL;
|
||||
mpBckAnm = NULL;
|
||||
if (bckName > 0) {
|
||||
J3DAnmTransform* pbck = (J3DAnmTransform*)dComIfG_getObjectRes(arcName, bckName);
|
||||
field_0x584 = new mDoExt_bckAnm();
|
||||
mpBckAnm = new mDoExt_bckAnm();
|
||||
|
||||
if (field_0x584 == NULL || !field_0x584->init(pbck, 1, 2, 1.0f, 0, -1, false)) {
|
||||
if (mpBckAnm == NULL || !mpBckAnm->init(pbck, 1, 2, 1.0f, 0, -1, false)) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
field_0x580 = NULL;
|
||||
mpBrkAnm = NULL;
|
||||
if (brkName > 0) {
|
||||
J3DAnmTevRegKey* pbrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(arcName, brkName);
|
||||
s8 tevFrm = getTevFrm();
|
||||
@@ -104,19 +104,19 @@ int daItemBase_c::CreateItemHeap(char const* arcName, s16 bmdName, s16 btkName,
|
||||
tmp = 0;
|
||||
}
|
||||
|
||||
field_0x580 = new mDoExt_brkAnm();
|
||||
mpBrkAnm = new mDoExt_brkAnm();
|
||||
|
||||
if (field_0x580 == NULL || !field_0x580->init(modelData, pbrk, tmp, 2, 1.0f, 0, -1)) {
|
||||
if (mpBrkAnm == NULL || !mpBrkAnm->init(modelData, pbrk, tmp, 2, 1.0f, 0, -1)) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
field_0x588 = NULL;
|
||||
mpBtpAnm = NULL;
|
||||
if (btpName > 0) {
|
||||
J3DAnmTexPattern* pbtp = (J3DAnmTexPattern*)dComIfG_getObjectRes(arcName, btpName);
|
||||
field_0x588 = new mDoExt_btpAnm();
|
||||
mpBtpAnm = new mDoExt_btpAnm();
|
||||
|
||||
if (field_0x588 == NULL || !field_0x588->init(modelData, pbtp, 1, 2, 1.0f, 0, -1)) {
|
||||
if (mpBtpAnm == NULL || !mpBtpAnm->init(modelData, pbtp, 1, 2, 1.0f, 0, -1)) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -176,8 +176,8 @@ void daItemBase_c::setShadow() {
|
||||
|
||||
if (!chkFlag(0x10)) {
|
||||
if (getShadowSize() != 0.0f) {
|
||||
dComIfGd_setSimpleShadow(&mCurrent.mPosition, field_0x58c.GetGroundH(), scale,
|
||||
field_0x58c.m_gnd, 0, 1.0f,
|
||||
dComIfGd_setSimpleShadow(&mCurrent.mPosition, mAcch.GetGroundH(), scale,
|
||||
mAcch.m_gnd, 0, 1.0f,
|
||||
dDlst_shadowControl_c::getSimpleTex());
|
||||
}
|
||||
} else {
|
||||
@@ -188,70 +188,70 @@ void daItemBase_c::setShadow() {
|
||||
|
||||
field_0x91c =
|
||||
dComIfGd_setShadow(field_0x91c, 3, mpModel, &mCurrent.mPosition, shadowSize, 0.0f,
|
||||
mCurrent.mPosition.y, field_0x58c.GetGroundH(), field_0x58c.m_gnd,
|
||||
mCurrent.mPosition.y, mAcch.GetGroundH(), mAcch.m_gnd,
|
||||
&mTevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex());
|
||||
}
|
||||
}
|
||||
|
||||
/* 80144EDC-8014503C 13F81C 0160+00 1/0 1/0 9/0 .text animEntry__12daItemBase_cFv */
|
||||
void daItemBase_c::animEntry() {
|
||||
if (field_0x580 != NULL) {
|
||||
if (mpBrkAnm != NULL) {
|
||||
s8 tevFrm = getTevFrm();
|
||||
if (tevFrm != -1) {
|
||||
field_0x580->entry(mpModel->getModelData(), tevFrm);
|
||||
mpBrkAnm->entry(mpModel->getModelData(), tevFrm);
|
||||
} else {
|
||||
field_0x580->entry(mpModel->getModelData());
|
||||
mpBrkAnm->entry(mpModel->getModelData());
|
||||
}
|
||||
}
|
||||
|
||||
if (field_0x588 != NULL) {
|
||||
if (mpBtpAnm != NULL) {
|
||||
s8 btpFrm = getBtpFrm();
|
||||
if (btpFrm != -1) {
|
||||
field_0x588->entry(mpModel->getModelData(), btpFrm);
|
||||
mpBtpAnm->entry(mpModel->getModelData(), btpFrm);
|
||||
} else {
|
||||
field_0x588->entry(mpModel->getModelData());
|
||||
mpBtpAnm->entry(mpModel->getModelData());
|
||||
}
|
||||
}
|
||||
|
||||
if (field_0x578 != NULL) {
|
||||
field_0x578->entry(mpModel->getModelData());
|
||||
if (mpBtkAnm != NULL) {
|
||||
mpBtkAnm->entry(mpModel->getModelData());
|
||||
}
|
||||
|
||||
if (field_0x584 != NULL) {
|
||||
field_0x584->entry(mpModel->getModelData());
|
||||
if (mpBckAnm != NULL) {
|
||||
mpBckAnm->entry(mpModel->getModelData());
|
||||
}
|
||||
|
||||
if (field_0x57c != NULL) {
|
||||
field_0x57c->entry(mpModel->getModelData());
|
||||
if (mpBpkAnm != NULL) {
|
||||
mpBpkAnm->entry(mpModel->getModelData());
|
||||
}
|
||||
}
|
||||
|
||||
/* 8014503C-80145144 13F97C 0108+00 0/0 2/2 4/4 .text animPlay__12daItemBase_cFffffff */
|
||||
void daItemBase_c::animPlay(f32 btkSpeed, f32 bpkSpeed, f32 bckSpeed, f32 param_3, f32 brkSpeed,
|
||||
f32 btpSpeed) {
|
||||
if (field_0x580 != NULL && getTevFrm() == -1) {
|
||||
field_0x580->setPlaySpeed(brkSpeed);
|
||||
field_0x580->play();
|
||||
if (mpBrkAnm != NULL && getTevFrm() == -1) {
|
||||
mpBrkAnm->setPlaySpeed(brkSpeed);
|
||||
mpBrkAnm->play();
|
||||
}
|
||||
|
||||
if (field_0x588 != NULL && getBtpFrm() == -1) {
|
||||
field_0x588->setPlaySpeed(btpSpeed);
|
||||
field_0x588->play();
|
||||
if (mpBtpAnm != NULL && getBtpFrm() == -1) {
|
||||
mpBtpAnm->setPlaySpeed(btpSpeed);
|
||||
mpBtpAnm->play();
|
||||
}
|
||||
|
||||
if (field_0x578 != NULL) {
|
||||
field_0x578->setPlaySpeed(btkSpeed);
|
||||
field_0x578->play();
|
||||
if (mpBtkAnm != NULL) {
|
||||
mpBtkAnm->setPlaySpeed(btkSpeed);
|
||||
mpBtkAnm->play();
|
||||
}
|
||||
|
||||
if (field_0x57c != NULL) {
|
||||
field_0x57c->setPlaySpeed(bpkSpeed);
|
||||
field_0x57c->play();
|
||||
if (mpBpkAnm != NULL) {
|
||||
mpBpkAnm->setPlaySpeed(bpkSpeed);
|
||||
mpBpkAnm->play();
|
||||
}
|
||||
|
||||
if (field_0x584 != NULL) {
|
||||
field_0x584->setPlaySpeed(bckSpeed);
|
||||
field_0x584->play();
|
||||
if (mpBckAnm != NULL) {
|
||||
mpBckAnm->setPlaySpeed(bckSpeed);
|
||||
mpBckAnm->play();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -68,5 +68,6 @@ void CheckFieldItemCreateHeap(fopAc_ac_c* actor) {
|
||||
/* 803792B0-803792E8 005910 0038+00 0/0 1/1 0/0 .rodata m_data__12daItemBase_c */
|
||||
SECTION_RODATA daItemBase_data const daItemBase_c::m_data = {
|
||||
-4.5f, 0.62f, 45.0f, 10.0f, 6.0f, 1, 240, 60, 4000,
|
||||
120, -4.0f, 3.5f, 1100, 3000, 23.0f, -6.0f, 13, 10};
|
||||
120, -4.0f, 3.5f, 1100, 3000, 23.0f, -6.0f, 13, 10,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x803792B0, &daItemBase_c::m_data);
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
// Translation Unit: a/npc/d_a_npc_cd
|
||||
//
|
||||
|
||||
#include "a/npc/d_a_npc_cd.h"
|
||||
#include "d/a/d_a_npc_cd.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
// Translation Unit: a/npc/d_a_npc_cd2
|
||||
//
|
||||
|
||||
#include "a/npc/d_a_npc_cd2.h"
|
||||
#include "d/a/d_a_npc_cd2.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,33 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: a/obj/d_a_obj_ss_base
|
||||
//
|
||||
|
||||
#include "d/a/d_a_obj_ss_base.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 8015E3F8-8015E450 158D38 0058+00 0/0 0/0 3/3 .text __ct__14daObj_SSBase_cFv */
|
||||
daObj_SSBase_c::daObj_SSBase_c() {
|
||||
mpParentPtr = NULL;
|
||||
field_0x570 = 0;
|
||||
mFlowNodeNum = 0xFFFF;
|
||||
mValueNum = 0;
|
||||
}
|
||||
|
||||
/* 8015E450-8015E4B0 158D90 0060+00 1/0 0/0 3/3 .text __dt__14daObj_SSBase_cFv */
|
||||
daObj_SSBase_c::~daObj_SSBase_c() {}
|
||||
|
||||
/* 8015E4B0-8015E4C8 158DF0 0018+00 1/0 0/0 2/0 .text getProcessID__14daObj_SSBase_cFv */
|
||||
u32 daObj_SSBase_c::getProcessID() {
|
||||
return fopAcM_GetID(this);
|
||||
}
|
||||
|
||||
/* 8015E4C8-8015E4CC 158E08 0004+00 1/0 0/0 0/0 .text setSoldOut__14daObj_SSBase_cFv */
|
||||
void daObj_SSBase_c::setSoldOut() {
|
||||
/* empty function */
|
||||
}
|
||||
+1
-11
@@ -14,16 +14,6 @@
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "rel/d/a/d_a_boomerang/d_a_boomerang.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
/* 8000CE38 */ void scaleM(f32, f32, f32);
|
||||
|
||||
static u8 now[48];
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -422,7 +412,7 @@ void daPy_anmHeap_c::initData() {
|
||||
|
||||
/* 8015EDC4-8015EE00 159704 003C+00 0/0 1/1 1/1 .text mallocBuffer__14daPy_anmHeap_cFv */
|
||||
void* daPy_anmHeap_c::mallocBuffer() {
|
||||
mBuffer = new (0x20) char[mBufferSize];
|
||||
mBuffer = new (0x20) u8[mBufferSize];
|
||||
return mBuffer;
|
||||
}
|
||||
|
||||
|
||||
+4
-4
@@ -481,7 +481,7 @@ s32 dBgS::GetPolyColor(cBgS_PolyInfo const& poly) {
|
||||
}
|
||||
|
||||
/* 80074C6C-80074CBC 06F5AC 0050+00 0/0 1/1 2/2 .text GetHorseNoEntry__4dBgSFRC13cBgS_PolyInfo */
|
||||
bool dBgS::GetHorseNoEntry(cBgS_PolyInfo const& poly) {
|
||||
BOOL dBgS::GetHorseNoEntry(cBgS_PolyInfo const& poly) {
|
||||
int bg_index = poly.GetBgIndex();
|
||||
if (m_chk_element[bg_index].ChkUsed()) {
|
||||
return m_chk_element[bg_index].m_bgw_base_ptr->GetHorseNoEntry(poly);
|
||||
@@ -501,13 +501,13 @@ bool dBgS::GetSpecialCode(cBgS_PolyInfo const& poly) {
|
||||
}
|
||||
|
||||
/* 80074D0C-80074D5C 06F64C 0050+00 0/0 2/2 2/2 .text GetMagnetCode__4dBgSFRC13cBgS_PolyInfo */
|
||||
bool dBgS::GetMagnetCode(cBgS_PolyInfo const& poly) {
|
||||
int dBgS::GetMagnetCode(cBgS_PolyInfo const& poly) {
|
||||
int bg_index = poly.GetBgIndex();
|
||||
if (m_chk_element[bg_index].ChkUsed()) {
|
||||
return m_chk_element[bg_index].m_bgw_base_ptr->GetMagnetCode(poly);
|
||||
}
|
||||
|
||||
return false;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 80074D5C-80074DAC 06F69C 0050+00 0/0 5/5 0/0 .text GetMonkeyBarsCode__4dBgSFRC13cBgS_PolyInfo
|
||||
@@ -543,7 +543,7 @@ s32 dBgS::GetWallCode(cBgS_PolyInfo const& poly) {
|
||||
}
|
||||
|
||||
/* 80074E50-80074EA0 06F790 0050+00 0/0 29/29 28/28 .text GetPolyAtt0__4dBgSFRC13cBgS_PolyInfo */
|
||||
bool dBgS::GetPolyAtt0(cBgS_PolyInfo const& poly) {
|
||||
BOOL dBgS::GetPolyAtt0(cBgS_PolyInfo const& poly) {
|
||||
int bg_index = poly.GetBgIndex();
|
||||
if (m_chk_element[bg_index].ChkUsed()) {
|
||||
return m_chk_element[bg_index].m_bgw_base_ptr->GetPolyAtt0(poly);
|
||||
|
||||
+3
-3
@@ -985,7 +985,7 @@ asm s32 dBgW::GetPolyColor(cBgS_PolyInfo const& param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm bool dBgW::GetHorseNoEntry(cBgS_PolyInfo const& param_0) {
|
||||
asm BOOL dBgW::GetHorseNoEntry(cBgS_PolyInfo const& param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/bg/d_bg_w/GetHorseNoEntry__4dBgWFRC13cBgS_PolyInfo.s"
|
||||
}
|
||||
@@ -1015,7 +1015,7 @@ asm void dBgW::GetSpecialCode(int param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm bool dBgW::GetMagnetCode(cBgS_PolyInfo const& param_0) {
|
||||
asm int dBgW::GetMagnetCode(cBgS_PolyInfo const& param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/bg/d_bg_w/GetMagnetCode__4dBgWFRC13cBgS_PolyInfo.s"
|
||||
}
|
||||
@@ -1167,7 +1167,7 @@ asm s32 dBgW::GetWallCode(cBgS_PolyInfo const& param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm bool dBgW::GetPolyAtt0(cBgS_PolyInfo const& param_0) {
|
||||
asm BOOL dBgW::GetPolyAtt0(cBgS_PolyInfo const& param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/bg/d_bg_w/GetPolyAtt0__4dBgWFRC13cBgS_PolyInfo.s"
|
||||
}
|
||||
|
||||
@@ -625,7 +625,7 @@ asm void dBgWKCol::GetSpecialCode(int param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dBgWKCol::GetMagnetCode(cBgS_PolyInfo const& param_0) {
|
||||
asm int dBgWKCol::GetMagnetCode(cBgS_PolyInfo const& param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/bg/d_bg_w_kcol/GetMagnetCode__8dBgWKColFRC13cBgS_PolyInfo.s"
|
||||
}
|
||||
@@ -767,7 +767,7 @@ asm s32 dBgWKCol::GetWallCode(cBgS_PolyInfo const& param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dBgWKCol::GetPolyAtt0(cBgS_PolyInfo const& param_0) {
|
||||
asm BOOL dBgWKCol::GetPolyAtt0(cBgS_PolyInfo const& param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/bg/d_bg_w_kcol/GetPolyAtt0__8dBgWKColFRC13cBgS_PolyInfo.s"
|
||||
}
|
||||
|
||||
@@ -8,16 +8,6 @@
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
/* 8000CF0C */ void ZXYrotS(csXyz const&);
|
||||
|
||||
static u8 now[48];
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
@@ -11,21 +11,16 @@
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" extern u8 g_dComIfAc_gameInfo[8];
|
||||
extern "C" extern u8 g_dComIfGoat_gameInfo[4 + 4 /* padding */];
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450610-80450618 000090 0008+00 0/0 1/1 0/0 .sdata g_dComIfAc_gameInfo */
|
||||
SECTION_SDATA extern u8 g_dComIfAc_gameInfo[8] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
SECTION_SDATA extern dComIfAc_info_c g_dComIfAc_gameInfo = {
|
||||
0, 0,
|
||||
};
|
||||
|
||||
/* 80450618-80450620 000098 0004+04 0/0 2/2 7/7 .sdata g_dComIfGoat_gameInfo */
|
||||
|
||||
@@ -1479,21 +1479,10 @@ stage_arrow_class* dComIfGp_getRoomArrow(int roomNo) {
|
||||
return status->mRoomDt.getArrow();
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80378F38-80378F38 005598 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80379089 = "";
|
||||
#pragma pop
|
||||
|
||||
/* 8002D2FC-8002D554 027C3C 0258+00 2/2 7/7 4/4 .text dComIfGp_setNextStage__FPCcsScScfUliScsii */
|
||||
// 1 out of order instruction, small regalloc
|
||||
#ifdef NONMATCHING
|
||||
void dComIfGp_setNextStage(char const* stage, s16 point, s8 roomNo, s8 layer, f32 lastSpeed,
|
||||
u32 lastMode, int param_6, s8 wipe, s16 lastAngle, int param_9,
|
||||
int param_10) {
|
||||
u32 mode = lastMode;
|
||||
|
||||
u32 lastMode, int setPoint, s8 wipe, s16 lastAngle, int param_9,
|
||||
int wipeSpeedT) {
|
||||
if (layer >= 15) {
|
||||
layer = -1;
|
||||
}
|
||||
@@ -1508,6 +1497,7 @@ void dComIfGp_setNextStage(char const* stage, s16 point, s8 roomNo, s8 layer, f3
|
||||
level);
|
||||
}
|
||||
|
||||
// Set Key Num to 2 if loading Wagon Escort after King Bulblin 2
|
||||
if (!strcmp(stage, "F_SP121") && roomNo == 13 && (point == 99 || point == 98) && layer == 2) {
|
||||
dComIfGs_setKeyNum(6, 2);
|
||||
} else {
|
||||
@@ -1515,16 +1505,16 @@ void dComIfGp_setNextStage(char const* stage, s16 point, s8 roomNo, s8 layer, f3
|
||||
}
|
||||
|
||||
if (daAlink_getAlinkActorClass() != NULL) {
|
||||
daAlink_getAlinkActorClass()->setLastSceneMode(&mode);
|
||||
daAlink_getAlinkActorClass()->setLastSceneMode(&lastMode);
|
||||
}
|
||||
|
||||
if (strcmp(dMeter2Info_getSaveStageName(), "") &&
|
||||
strcmp(stage, dMeter2Info_getSaveStageName())) {
|
||||
char* saveName = (char*)dMeter2Info_getSaveStageName();
|
||||
if (strcmp(saveName, "") && strcmp(stage, saveName)) {
|
||||
dMeter2Info_setSaveStageName("");
|
||||
}
|
||||
|
||||
u8 wipe_speed;
|
||||
switch (param_10) {
|
||||
switch (wipeSpeedT) {
|
||||
case 0:
|
||||
wipe_speed = 26;
|
||||
break;
|
||||
@@ -1543,23 +1533,11 @@ void dComIfGp_setNextStage(char const* stage, s16 point, s8 roomNo, s8 layer, f3
|
||||
}
|
||||
|
||||
g_dComIfG_gameInfo.play.setNextStage(stage, roomNo, point, layer, wipe, wipe_speed);
|
||||
g_dComIfG_gameInfo.info.getRestart().setLastSceneInfo(lastSpeed, mode, lastAngle);
|
||||
if (param_6 != 0) {
|
||||
g_dComIfG_gameInfo.info.getRestart().setLastSceneInfo(lastSpeed, lastMode, lastAngle);
|
||||
if (setPoint) {
|
||||
dComIfGs_setStartPoint(point);
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dComIfGp_setNextStage(char const* stage, s16 point, s8 roomNo, s8 layer, f32 lastSpeed,
|
||||
u32 lastMode, int param_6, s8 wipe, s16 lastAngle, int param_9,
|
||||
int param_10) {
|
||||
nofralloc
|
||||
#include "asm/d/com/d_com_inf_game/dComIfGp_setNextStage__FPCcsScScfUliScsii.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
void dComIfGp_setNextStage(char const* stage, s16 point, s8 roomNo, s8 layer) {
|
||||
dComIfGp_setNextStage(stage, point, roomNo, layer, 0.0f, 0, 1, 0, 0, 1, 0);
|
||||
@@ -2433,8 +2411,8 @@ int dComIfG_TimerDeleteRequest(int mode) {
|
||||
}
|
||||
|
||||
/* 8002F810-8002F9F0 02A150 01E0+00 0/0 1/1 0/0 .text dComIfGs_Wolf_Change_Check__Fv */
|
||||
u8 dComIfGs_Wolf_Change_Check() {
|
||||
u8 is_wolf = false;
|
||||
BOOL dComIfGs_Wolf_Change_Check() {
|
||||
BOOL is_wolf = false;
|
||||
|
||||
// Transforming Unlocked
|
||||
if (dComIfGs_isEventBit(0x0D04)) {
|
||||
|
||||
+61
-140
@@ -6,6 +6,9 @@
|
||||
#include "d/com/d_com_static.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "rel/d/a/tag/d_a_tag_magne/d_a_tag_magne.h"
|
||||
#include "rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
@@ -27,17 +30,6 @@ struct daTagMist_c {
|
||||
/* 80031CF0 */ void getPlayerNo();
|
||||
};
|
||||
|
||||
struct cBgS_PolyInfo {};
|
||||
|
||||
struct daTagMagne_c {
|
||||
/* 80031B50 */ void checkMagnetCode(cBgS_PolyInfo&);
|
||||
/* 80031BF4 */ void checkMagneA();
|
||||
/* 80031C48 */ void checkMagneB();
|
||||
/* 80031C9C */ void checkMagneC();
|
||||
|
||||
static u8 mTagMagne[4];
|
||||
};
|
||||
|
||||
struct daSetBgObj_c {
|
||||
/* 80031870 */ void getArcName(fopAc_ac_c*);
|
||||
};
|
||||
@@ -48,23 +40,6 @@ struct daObjMovebox {
|
||||
};
|
||||
};
|
||||
|
||||
struct daObjCarry_c {
|
||||
/* 80031CF8 */ void clrSaveFlag();
|
||||
/* 80031D04 */ void setSaveFlag();
|
||||
/* 80031D10 */ void chkSaveFlag();
|
||||
/* 80031D24 */ void getPos(int);
|
||||
/* 80031D38 */ void savePos(int, cXyz);
|
||||
/* 80031D64 */ void onSttsFlag(int, u8);
|
||||
/* 80031D78 */ void offSttsFlag(int, u8);
|
||||
/* 80031D8C */ void chkSttsFlag(int, u8);
|
||||
/* 80031DAC */ void setRoomNo(int, s8);
|
||||
/* 80031DB8 */ void getRoomNo(int);
|
||||
|
||||
static u8 mPos[60];
|
||||
static u8 mSttsFlag[5 + 3 /* padding */];
|
||||
static u8 mRoomNo[5 + 3 /* padding */];
|
||||
};
|
||||
|
||||
struct daMirror_c {
|
||||
/* 8003194C */ void entry(J3DModel*);
|
||||
/* 80031990 */ void remove();
|
||||
@@ -103,18 +78,6 @@ struct daDsh_c {
|
||||
static f32 CLOSE_BOUND_RATIO;
|
||||
};
|
||||
|
||||
struct dSv_info_c {
|
||||
/* 80035360 */ void isSwitch(int, int) const;
|
||||
};
|
||||
|
||||
struct dSv_event_c {
|
||||
/* 8003498C */ void onEventBit(u16);
|
||||
/* 800349A4 */ void offEventBit(u16);
|
||||
/* 800349BC */ void isEventBit(u16) const;
|
||||
/* 800349E0 */ void setEventReg(u16, u8);
|
||||
/* 80034A04 */ void getEventReg(u16) const;
|
||||
};
|
||||
|
||||
struct dGrass_packet_c {
|
||||
static u8 m_deleteRoom[12];
|
||||
};
|
||||
@@ -127,14 +90,6 @@ struct dDemo_c {
|
||||
static u8 m_status[4];
|
||||
};
|
||||
|
||||
struct dComIfG_play_c {
|
||||
/* 8002C97C */ void getLayerNo(int);
|
||||
};
|
||||
|
||||
struct dBgS {
|
||||
/* 80074D0C */ void GetMagnetCode(cBgS_PolyInfo const&);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -248,10 +203,7 @@ extern "C" void _savegpr_28();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" void sprintf();
|
||||
extern "C" void strcmp();
|
||||
extern "C" extern u8 const __ptmf_null[12 + 4 /* padding */];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" u8 m_status__7dDemo_c[4];
|
||||
|
||||
//
|
||||
@@ -709,55 +661,64 @@ asm void daMP_c::daMP_c_THPPlayerPause() {
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450DBC-80450DC0 0002BC 0004+00 1/1 0/0 3/3 .sbss mTagMagne__12daTagMagne_c */
|
||||
u8 daTagMagne_c::mTagMagne[4];
|
||||
daTagMagne_c* daTagMagne_c::mTagMagne;
|
||||
|
||||
/* 80031B50-80031BF4 02C490 00A4+00 0/0 4/4 0/0 .text
|
||||
* checkMagnetCode__12daTagMagne_cFR13cBgS_PolyInfo */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTagMagne_c::checkMagnetCode(cBgS_PolyInfo& param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/com/d_com_static/checkMagnetCode__12daTagMagne_cFR13cBgS_PolyInfo.s"
|
||||
int daTagMagne_c::checkMagnetCode(cBgS_PolyInfo& poly) {
|
||||
if (mTagMagne == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int magCode = dComIfG_Bgsp().GetMagnetCode(poly);
|
||||
if ((magCode == 1 && mTagMagne->checkMagneA()) ||
|
||||
(magCode == 2 && mTagMagne->checkMagneB()) ||
|
||||
(magCode == 3 && mTagMagne->checkMagneC())) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
inline bool fopAcM_isSwitch(const fopAc_ac_c* item, int sw) {
|
||||
return dComIfGs_isSwitch(sw, fopAcM_GetHomeRoomNo(item));
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80031BF4-80031C48 02C534 0054+00 1/1 0/0 0/0 .text checkMagneA__12daTagMagne_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTagMagne_c::checkMagneA() {
|
||||
nofralloc
|
||||
#include "asm/d/com/d_com_static/checkMagneA__12daTagMagne_cFv.s"
|
||||
int daTagMagne_c::checkMagneA() {
|
||||
if (mSwNo1 == 0xFF || fopAcM_isSwitch(this, mSwNo1)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80031C48-80031C9C 02C588 0054+00 1/1 0/0 0/0 .text checkMagneB__12daTagMagne_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTagMagne_c::checkMagneB() {
|
||||
nofralloc
|
||||
#include "asm/d/com/d_com_static/checkMagneB__12daTagMagne_cFv.s"
|
||||
int daTagMagne_c::checkMagneB() {
|
||||
if (mSwNo2 == 0xFF || fopAcM_isSwitch(this, mSwNo2)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80031C9C-80031CF0 02C5DC 0054+00 1/1 0/0 0/0 .text checkMagneC__12daTagMagne_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTagMagne_c::checkMagneC() {
|
||||
nofralloc
|
||||
#include "asm/d/com/d_com_static/checkMagneC__12daTagMagne_cFv.s"
|
||||
int daTagMagne_c::checkMagneC() {
|
||||
if (mSwNo3 == 0xFF || fopAcM_isSwitch(this, mSwNo3)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450DC0-80450DC4 -00001 0004+00 4/4 0/0 2/2 .sbss None */
|
||||
/* 80450DC0 0001+00 data_80450DC0 None */
|
||||
extern u8 struct_80450DC0;
|
||||
u8 struct_80450DC0;
|
||||
|
||||
/* 80450DC1 0003+00 data_80450DC1 None */
|
||||
extern u8 struct_80450DC0[4];
|
||||
u8 struct_80450DC0[4];
|
||||
bool daObjCarry_c::mSaveFlag;
|
||||
|
||||
/* 80031CF0-80031CF8 02C630 0008+00 0/0 1/1 0/0 .text getPlayerNo__11daTagMist_cFv */
|
||||
#pragma push
|
||||
@@ -770,34 +731,19 @@ asm void daTagMist_c::getPlayerNo() {
|
||||
#pragma pop
|
||||
|
||||
/* 80031CF8-80031D04 02C638 000C+00 0/0 1/1 0/0 .text clrSaveFlag__12daObjCarry_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjCarry_c::clrSaveFlag() {
|
||||
nofralloc
|
||||
#include "asm/d/com/d_com_static/clrSaveFlag__12daObjCarry_cFv.s"
|
||||
void daObjCarry_c::clrSaveFlag() {
|
||||
mSaveFlag = false;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80031D04-80031D10 02C644 000C+00 0/0 1/1 0/0 .text setSaveFlag__12daObjCarry_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjCarry_c::setSaveFlag() {
|
||||
nofralloc
|
||||
#include "asm/d/com/d_com_static/setSaveFlag__12daObjCarry_cFv.s"
|
||||
void daObjCarry_c::setSaveFlag() {
|
||||
mSaveFlag = true;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80031D10-80031D24 02C650 0014+00 0/0 0/0 1/1 .text chkSaveFlag__12daObjCarry_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjCarry_c::chkSaveFlag() {
|
||||
nofralloc
|
||||
#include "asm/d/com/d_com_static/chkSaveFlag__12daObjCarry_cFv.s"
|
||||
bool daObjCarry_c::chkSaveFlag() {
|
||||
return mSaveFlag == true;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804245A0-804245AC 0512C0 000C+00 0/1 0/0 0/0 .bss @4480 */
|
||||
@@ -831,61 +777,36 @@ asm void daObjCarry_c::savePos(int param_0, cXyz param_1) {
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450DC4-80450DCC 0002C4 0005+03 3/3 0/0 0/0 .sbss mSttsFlag__12daObjCarry_c */
|
||||
u8 daObjCarry_c::mSttsFlag[5 + 3 /* padding */];
|
||||
u8 daObjCarry_c::mSttsFlag[5];
|
||||
|
||||
/* 80031D64-80031D78 02C6A4 0014+00 0/0 0/0 1/1 .text onSttsFlag__12daObjCarry_cFiUc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjCarry_c::onSttsFlag(int param_0, u8 param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/com/d_com_static/onSttsFlag__12daObjCarry_cFiUc.s"
|
||||
void daObjCarry_c::onSttsFlag(int idx, u8 flag) {
|
||||
mSttsFlag[idx] |= flag;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80031D78-80031D8C 02C6B8 0014+00 0/0 0/0 1/1 .text offSttsFlag__12daObjCarry_cFiUc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjCarry_c::offSttsFlag(int param_0, u8 param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/com/d_com_static/offSttsFlag__12daObjCarry_cFiUc.s"
|
||||
void daObjCarry_c::offSttsFlag(int idx, u8 flag) {
|
||||
mSttsFlag[idx] &= ~flag;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80031D8C-80031DAC 02C6CC 0020+00 0/0 0/0 1/1 .text chkSttsFlag__12daObjCarry_cFiUc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjCarry_c::chkSttsFlag(int param_0, u8 param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/com/d_com_static/chkSttsFlag__12daObjCarry_cFiUc.s"
|
||||
u8 daObjCarry_c::chkSttsFlag(int idx, u8 flag) {
|
||||
return (u8)(mSttsFlag[idx] & flag) ? 1 : 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450DCC-80450DD4 0002CC 0005+03 2/2 0/0 0/0 .sbss mRoomNo__12daObjCarry_c */
|
||||
u8 daObjCarry_c::mRoomNo[5 + 3 /* padding */];
|
||||
s8 daObjCarry_c::mRoomNo[5];
|
||||
|
||||
/* 80031DAC-80031DB8 02C6EC 000C+00 0/0 0/0 2/2 .text setRoomNo__12daObjCarry_cFiSc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjCarry_c::setRoomNo(int param_0, s8 param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/com/d_com_static/setRoomNo__12daObjCarry_cFiSc.s"
|
||||
void daObjCarry_c::setRoomNo(int idx, s8 roomNo) {
|
||||
mRoomNo[idx] = roomNo;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80031DB8-80031DC4 02C6F8 000C+00 0/0 0/0 1/1 .text getRoomNo__12daObjCarry_cFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjCarry_c::getRoomNo(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/com/d_com_static/getRoomNo__12daObjCarry_cFi.s"
|
||||
s8 daObjCarry_c::getRoomNo(int idx) {
|
||||
return mRoomNo[idx];
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80031DC4-80031EAC 02C704 00E8+00 0/0 1/0 0/0 .text __sinit_d_com_static_cpp */
|
||||
#pragma push
|
||||
|
||||
@@ -145,7 +145,6 @@ extern "C" void __ct__7cSGlobeFRC4cXyz();
|
||||
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
|
||||
extern "C" void bgmNowBattle__8Z2SeqMgrFf();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void DCStoreRangeNoSync();
|
||||
extern "C" void __register_global_object();
|
||||
extern "C" void __destroy_arr();
|
||||
extern "C" void __construct_array();
|
||||
|
||||
+1
-1
@@ -3793,7 +3793,7 @@ asm void dCam_getControledAngleY(camera_class* param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCam_getCamera() {
|
||||
asm dCamera_c* dCam_getCamera() {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/dCam_getCamera__Fv.s"
|
||||
}
|
||||
|
||||
+2
-41
@@ -168,19 +168,6 @@ struct dDemo_particle_c {
|
||||
/* 80039F9C */ ~dDemo_particle_c();
|
||||
};
|
||||
|
||||
struct dDemo_object_c {
|
||||
/* 80038F54 */ dDemo_object_c();
|
||||
/* 80038F70 */ ~dDemo_object_c();
|
||||
/* 80038FC0 */ void appendActor(fopAc_ac_c*);
|
||||
/* 80039088 */ void getActor(u8);
|
||||
/* 800390AC */ void createCamera();
|
||||
/* 80039128 */ void getActiveCamera();
|
||||
/* 8003913C */ void createAmbient();
|
||||
/* 800391B8 */ void appendLight();
|
||||
/* 80039258 */ void createFog();
|
||||
/* 800392D4 */ void remove();
|
||||
};
|
||||
|
||||
struct dDemo_light_c {
|
||||
/* 80038E20 */ void JSGSetLightType(JStage::TELight);
|
||||
/* 80038E34 */ void JSGSetPosition(Vec const&);
|
||||
@@ -226,32 +213,6 @@ struct dDemo_ambient_c {
|
||||
/* 800394C8 */ ~dDemo_ambient_c();
|
||||
};
|
||||
|
||||
struct dDemo_actor_c {
|
||||
/* 80038020 */ dDemo_actor_c();
|
||||
/* 80038098 */ ~dDemo_actor_c();
|
||||
/* 80038128 */ void getActor();
|
||||
/* 8003815C */ void setActor(fopAc_ac_c*);
|
||||
/* 8003819C */ void getPrm_Morf();
|
||||
/* 80038338 */ void getDemoIDData(int*, int*, int*, u16*, u8*);
|
||||
/* 800387EC */ void JSGSetData(u32, void const*, u32);
|
||||
/* 80038920 */ void JSGSetTranslation(Vec const&);
|
||||
/* 80038980 */ void JSGSetScaling(Vec const&);
|
||||
/* 800389A8 */ void JSGSetRotation(Vec const&);
|
||||
/* 80038A0C */ void JSGSetShape(u32);
|
||||
/* 80038A20 */ void JSGSetAnimation(u32);
|
||||
/* 80038A40 */ void JSGSetAnimationFrame(f32);
|
||||
/* 80038A54 */ void JSGSetAnimationTransition(f32);
|
||||
/* 80038A68 */ void JSGSetTextureAnimation(u32);
|
||||
/* 80038A7C */ void JSGSetTextureAnimationFrame(f32);
|
||||
/* 8003A05C */ void JSGFindNodeID(char const*) const;
|
||||
/* 8003A088 */ void JSGGetNodeTransformation(u32, f32 (*)[4]) const;
|
||||
/* 8003A0C8 */ void JSGGetAnimationFrameMax() const;
|
||||
/* 8003A0D0 */ void JSGGetTextureAnimationFrameMax() const;
|
||||
/* 8003A0D8 */ void JSGGetTranslation(Vec*) const;
|
||||
/* 8003A0F4 */ void JSGGetScaling(Vec*) const;
|
||||
/* 8003A110 */ void JSGGetRotation(Vec*) const;
|
||||
};
|
||||
|
||||
struct JUTNameTab {
|
||||
/* 802DEA58 */ void getIndex(char const*) const;
|
||||
};
|
||||
@@ -966,7 +927,7 @@ u8 dDemo_c::m_factory[4];
|
||||
u8 dDemo_c::m_mesgControl[4];
|
||||
|
||||
/* 80450E20-80450E24 000320 0004+00 5/5 9/9 7/7 .sbss m_object__7dDemo_c */
|
||||
u8 dDemo_c::m_object[4];
|
||||
dDemo_object_c* dDemo_c::m_object;
|
||||
|
||||
/* 80450E24-80450E28 000324 0004+00 4/4 0/0 0/0 .sbss m_data__7dDemo_c */
|
||||
u8 dDemo_c::m_data[4];
|
||||
@@ -1529,7 +1490,7 @@ asm void dDemo_object_c::appendActor(fopAc_ac_c* param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dDemo_object_c::getActor(u8 param_0) {
|
||||
asm dDemo_actor_c* dDemo_object_c::getActor(u8 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_demo/getActor__14dDemo_object_cFUc.s"
|
||||
}
|
||||
|
||||
+53
-32
@@ -2597,51 +2597,72 @@ u8 check_itemno(int i_itemId) {
|
||||
|
||||
/* 8009B940-8009BBD8 096280 0298+00 11/11 0/0 0/0 .text addBombCount__FUcUc */
|
||||
#ifdef NONMATCHING
|
||||
static u8 addBombCount(u8 param_0, u8 param_1) {
|
||||
u8 count[4];
|
||||
u8 count2[3];
|
||||
int addBombCount(u8 i_bombType, u8 i_addNum) {
|
||||
u8 bombType[3];
|
||||
s32 bombNum[3];
|
||||
s32 var_r22;
|
||||
s32 bombIdx;
|
||||
|
||||
int uvar6;
|
||||
for (u8 i = 0; i < 3; i++) {
|
||||
bombType[i] = dComIfGs_getItem(i + SLOT_15, false);
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
u8 tmp = dComIfGs_getItem(i + SLOT_15, false);
|
||||
count[i] = tmp;
|
||||
|
||||
if (count[i] == 0x50) {
|
||||
count2[i] = 0;
|
||||
if (bombType[i] == BOMB_BAG_LV1) {
|
||||
bombNum[i] = 0;
|
||||
} else if (bombType[i] == i_bombType) {
|
||||
bombNum[i] = dComIfGs_getBombNum(i);
|
||||
} else {
|
||||
if (count[i] == param_0) {
|
||||
count2[i] = dComIfGs_getBombNum(i);
|
||||
bombNum[i] = -1;
|
||||
}
|
||||
}
|
||||
|
||||
for (u8 i = 0; i < 3; i++) {
|
||||
bombIdx = -1;
|
||||
var_r22 = -1;
|
||||
|
||||
for (u8 j = 0; j < 3; j++) {
|
||||
if (bombNum[j] == 0) {
|
||||
bombIdx = j;
|
||||
var_r22 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
for (u8 k = 0; k < 3; k++) {
|
||||
if (bombNum[k] > 0 && bombNum[k] > var_r22 && bombNum[k] != dComIfGs_getBombMax(bombType[k])) {
|
||||
bombIdx = k;
|
||||
var_r22 = bombNum[k];
|
||||
}
|
||||
}
|
||||
|
||||
if (bombIdx == -1) { // issue here?
|
||||
return i_addNum;
|
||||
} else if (var_r22 == 0) {
|
||||
if (dComIfGs_getBombMax(i_bombType) >= i_addNum) {
|
||||
dComIfGs_setEmptyBombBagItemIn(i_bombType, i_addNum, true);
|
||||
return 0;
|
||||
} else {
|
||||
count2[i] = -1;
|
||||
dComIfGs_setEmptyBombBagItemIn(i_bombType, i_addNum, true);
|
||||
i_addNum -= (int)dComIfGs_getBombMax(i_bombType);
|
||||
}
|
||||
} else {
|
||||
if (dComIfGs_getBombMax(bombType[bombIdx]) >= var_r22 + i_addNum) {
|
||||
dComIfGp_setItemBombNumCount(bombIdx, i_addNum);
|
||||
return 0;
|
||||
} else {
|
||||
dComIfGp_setItemBombNumCount(bombIdx, i_addNum);
|
||||
i_addNum -= (int)dComIfGs_getBombMax(bombType[bombIdx]) - var_r22;
|
||||
}
|
||||
}
|
||||
|
||||
bombNum[bombIdx] = dComIfGs_getBombMax(bombType[bombIdx]);
|
||||
}
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
uvar6 = -1;
|
||||
for (int j = 0; j < 3; j++) {
|
||||
if (count2[j] == 0) {
|
||||
uvar6 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
for (int k = 0; k < 3; k++) {
|
||||
if (count2[k] > 0 && uvar6 < count2[k] && count2[k] != dComIfGs_getBombMax(count2[k])) {
|
||||
uvar6 = count2[k];
|
||||
}
|
||||
}
|
||||
|
||||
if ()
|
||||
}
|
||||
|
||||
return param_1;
|
||||
return i_addNum;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void addBombCount(u8 param_0, u8 param_1) {
|
||||
asm int addBombCount(u8 param_0, u8 param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/d_item/addBombCount__FUcUc.s"
|
||||
}
|
||||
|
||||
+104
-38
@@ -4,6 +4,7 @@
|
||||
//
|
||||
|
||||
#include "d/d_lib.h"
|
||||
#include "SSystem/SComponent/c_m3d.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor.h"
|
||||
@@ -73,7 +74,6 @@ extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" extern f32 G_CM3D_F_ABS_MIN[1 + 1 /* padding */];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
@@ -101,19 +101,19 @@ SECTION_DATA extern void* __vt__9STControl[4] = {
|
||||
(void*)getAngleStick__9STControlFv,
|
||||
};
|
||||
|
||||
STControl::STControl(s16 param_0, s16 param_1, s16 param_2, s16 param_3, f32 param_4, f32 param_5,
|
||||
STControl::STControl(s16 delayY, s16 delayX, s16 param_2, s16 param_3, f32 threshold, f32 param_5,
|
||||
s16 param_6, s16 param_7) {
|
||||
setWaitParm(param_0, param_1, param_2, param_3, param_4, param_5, param_6, param_7);
|
||||
setWaitParm(delayY, delayX, param_2, param_3, threshold, param_5, param_6, param_7);
|
||||
init();
|
||||
}
|
||||
|
||||
void STControl::setWaitParm(s16 param_0, s16 param_1, s16 param_2, s16 param_3, f32 param_4,
|
||||
void STControl::setWaitParm(s16 delayY, s16 delayX, s16 param_2, s16 param_3, f32 threshold,
|
||||
f32 param_5, s16 param_6, s16 param_7) {
|
||||
field_0x12 = param_0;
|
||||
field_0x14 = param_1;
|
||||
mRepeatDelayY = delayY;
|
||||
mRepeatDelayX = delayX;
|
||||
field_0x16 = param_2;
|
||||
field_0x1c = param_3;
|
||||
field_0x04 = param_4;
|
||||
mThreshold = threshold;
|
||||
field_0x08 = param_5;
|
||||
field_0x24 = param_6;
|
||||
field_0x26 = param_7;
|
||||
@@ -123,10 +123,10 @@ void STControl::init() {
|
||||
field_0x0e = 0;
|
||||
field_0x10 = 0;
|
||||
field_0x0d = 0;
|
||||
field_0x0c = 0;
|
||||
mDirectionTrig = 0;
|
||||
field_0x22 = 0;
|
||||
mXwaitTimer = field_0x12;
|
||||
mYwaitTimer = field_0x12;
|
||||
mXwaitTimer = mRepeatDelayY;
|
||||
mYwaitTimer = mRepeatDelayY;
|
||||
field_0x1e = field_0x1c;
|
||||
field_0x20 = field_0x1c;
|
||||
mFirstWaitTime = 0;
|
||||
@@ -136,31 +136,20 @@ void STControl::init() {
|
||||
|
||||
void STControl::Xinit() {
|
||||
field_0x0e = 0;
|
||||
field_0x0c &= 0xfc;
|
||||
mXwaitTimer = field_0x12;
|
||||
mDirectionTrig &= ~0x03;
|
||||
mXwaitTimer = mRepeatDelayY;
|
||||
field_0x1e = field_0x1c;
|
||||
field_0x2a = mFirstWaitTime;
|
||||
}
|
||||
|
||||
/* 8003212C-8003215C 02CA6C 0030+00 1/1 0/0 0/0 .text Yinit__9STControlFv */
|
||||
#ifdef NONMATCHING
|
||||
void STControl::Yinit() {
|
||||
field_0x10 = 0;
|
||||
field_0x0c &= 0xf3;
|
||||
mYwaitTimer = field_0x12;
|
||||
mDirectionTrig &= ~0x0C;
|
||||
mYwaitTimer = mRepeatDelayY;
|
||||
field_0x20 = field_0x1c;
|
||||
field_0x2c = mFirstWaitTime;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void STControl::Yinit() {
|
||||
nofralloc
|
||||
#include "asm/d/d_lib/Yinit__9STControlFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
f32 STControl::getValueStick() {
|
||||
return mDoCPd_c::getStickValue(PAD_1);
|
||||
@@ -179,23 +168,100 @@ s16 CSTControl::getAngleStick() {
|
||||
}
|
||||
|
||||
/* 8003219C-8003242C 02CADC 0290+00 0/0 24/24 0/0 .text checkTrigger__9STControlFv */
|
||||
#ifdef NONMATCHING
|
||||
u8 STControl::checkTrigger() {
|
||||
field_0x0d = mDirectionTrig;
|
||||
f32 stickValue = getValueStick();
|
||||
s16 stickAngle_ = getAngleStick();
|
||||
u8 var_r6 = 0;
|
||||
s16 temp_r7 = 0x2000 - field_0x26 >> 1;
|
||||
|
||||
if (!cM3d_IsZero(stickValue)) {
|
||||
int stickAngle = stickAngle_;
|
||||
s16 temp_r4 = field_0x22;
|
||||
int temp_r3 = temp_r4 + temp_r7;
|
||||
|
||||
if (stickAngle < temp_r3 - 0x7000) {
|
||||
var_r6 |= TRIG_UP;
|
||||
} else if (stickAngle < (temp_r4 - 0x5000) - temp_r7) {
|
||||
var_r6 |= TRIG_UP_LEFT;
|
||||
} else if (stickAngle < temp_r3 - 0x3000) {
|
||||
var_r6 |= TRIG_LEFT;
|
||||
} else if (stickAngle < (temp_r4 - 0x1000) - temp_r7) {
|
||||
var_r6 |= TRIG_DOWN_LEFT;
|
||||
} else if (stickAngle < temp_r3 + 0x1000) {
|
||||
var_r6 |= TRIG_DOWN;
|
||||
} else if (stickAngle < (temp_r4 + 0x3000) - temp_r7) {
|
||||
var_r6 |= TRIG_DOWN_RIGHT;
|
||||
} else if (stickAngle < temp_r3 + 0x5000) {
|
||||
var_r6 |= TRIG_RIGHT;
|
||||
} else if (stickAngle < (temp_r4 + 0x7000) - temp_r7) {
|
||||
var_r6 |= TRIG_UP_RIGHT;
|
||||
} else {
|
||||
var_r6 |= TRIG_UP;
|
||||
}
|
||||
|
||||
if (stickValue >= mThreshold) {
|
||||
mDirectionTrig = var_r6;
|
||||
} else if (stickValue < field_0x08) {
|
||||
mDirectionTrig = 0;
|
||||
} else {
|
||||
mDirectionTrig &= ~var_r6;
|
||||
}
|
||||
|
||||
u8 temp_r3_2 = mDirectionTrig;
|
||||
if (temp_r3_2 != field_0x0d) {
|
||||
if (temp_r3_2 == 0) {
|
||||
field_0x22 = 0;
|
||||
} else if ((stickAngle & 0x1FFF) > 0x1000) {
|
||||
field_0x22 = field_0x24;
|
||||
} else {
|
||||
field_0x22 = -field_0x24;
|
||||
}
|
||||
}
|
||||
|
||||
if (!(mDirectionTrig & 3)) {
|
||||
Xinit();
|
||||
}
|
||||
|
||||
if (!(mDirectionTrig & 0xC)) {
|
||||
Yinit();
|
||||
}
|
||||
} else {
|
||||
mDirectionTrig = 0;
|
||||
Xinit();
|
||||
Yinit();
|
||||
}
|
||||
|
||||
if ((field_0x0d & mDirectionTrig & 3) && field_0x0e > 0) {
|
||||
field_0x0e--;
|
||||
}
|
||||
|
||||
if ((field_0x0d & mDirectionTrig & 0xC) && field_0x10 > 0) {
|
||||
field_0x10--;
|
||||
}
|
||||
|
||||
return mDirectionTrig;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void STControl::checkTrigger() {
|
||||
asm u8 STControl::checkTrigger() {
|
||||
nofralloc
|
||||
#include "asm/d/d_lib/checkTrigger__9STControlFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
bool STControl::checkLeftTrigger() {
|
||||
if ((field_0x0e == 0) && ((field_0x0c & 1) != 0)) {
|
||||
if (field_0x0e == 0 && mDirectionTrig & TRIG_LEFT) {
|
||||
field_0x0e = mXwaitTimer + field_0x2a;
|
||||
field_0x2a = 0;
|
||||
if ((int)field_0x1e == 0) {
|
||||
mXwaitTimer -= field_0x16;
|
||||
if (mXwaitTimer < field_0x14) {
|
||||
mXwaitTimer = field_0x14;
|
||||
if (mXwaitTimer < mRepeatDelayX) {
|
||||
mXwaitTimer = mRepeatDelayX;
|
||||
}
|
||||
} else {
|
||||
field_0x1e--;
|
||||
@@ -206,13 +272,13 @@ bool STControl::checkLeftTrigger() {
|
||||
}
|
||||
|
||||
bool STControl::checkRightTrigger() {
|
||||
if ((field_0x0e == 0) && ((field_0x0c & 2) != 0)) {
|
||||
if (field_0x0e == 0 && mDirectionTrig & TRIG_RIGHT) {
|
||||
field_0x0e = mXwaitTimer + field_0x2a;
|
||||
field_0x2a = 0;
|
||||
if ((int)field_0x1e == 0) {
|
||||
mXwaitTimer -= field_0x16;
|
||||
if (mXwaitTimer < field_0x14) {
|
||||
mXwaitTimer = field_0x14;
|
||||
if (mXwaitTimer < mRepeatDelayX) {
|
||||
mXwaitTimer = mRepeatDelayX;
|
||||
}
|
||||
} else {
|
||||
field_0x1e--;
|
||||
@@ -223,13 +289,13 @@ bool STControl::checkRightTrigger() {
|
||||
}
|
||||
|
||||
bool STControl::checkUpTrigger() {
|
||||
if ((field_0x10 == 0) && ((field_0x0c & 4) != 0)) {
|
||||
if (field_0x10 == 0 && mDirectionTrig & TRIG_UP) {
|
||||
field_0x10 = mYwaitTimer + field_0x2c;
|
||||
field_0x2c = 0;
|
||||
if ((int)field_0x20 == 0) {
|
||||
mYwaitTimer -= field_0x16;
|
||||
if (mYwaitTimer < field_0x14) {
|
||||
mYwaitTimer = field_0x14;
|
||||
if (mYwaitTimer < mRepeatDelayX) {
|
||||
mYwaitTimer = mRepeatDelayX;
|
||||
}
|
||||
} else {
|
||||
field_0x20--;
|
||||
@@ -240,13 +306,13 @@ bool STControl::checkUpTrigger() {
|
||||
}
|
||||
|
||||
bool STControl::checkDownTrigger() {
|
||||
if ((field_0x10 == 0) && ((field_0x0c & 8) != 0)) {
|
||||
if (field_0x10 == 0 && mDirectionTrig & TRIG_DOWN) {
|
||||
field_0x10 = mYwaitTimer + field_0x2c;
|
||||
field_0x2c = 0;
|
||||
if ((int)field_0x20 == 0) {
|
||||
mYwaitTimer -= field_0x16;
|
||||
if (mYwaitTimer < field_0x14) {
|
||||
mYwaitTimer = field_0x14;
|
||||
if (mYwaitTimer < mRepeatDelayX) {
|
||||
mYwaitTimer = mRepeatDelayX;
|
||||
}
|
||||
} else {
|
||||
field_0x20--;
|
||||
|
||||
+1
-1
@@ -71,7 +71,7 @@ asm void dPath_GetPnt(dPath const* param_0, int param_1) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dPath_GetRoomPath(int param_0, int param_1) {
|
||||
asm u16* dPath_GetRoomPath(int param_0, int param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/d_path/dPath_GetRoomPath__Fii.s"
|
||||
}
|
||||
|
||||
@@ -22,10 +22,6 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
static u8 now[48];
|
||||
};
|
||||
|
||||
struct dBgWKCol {
|
||||
/* 8007E7D0 */ void initKCollision(void*);
|
||||
};
|
||||
|
||||
+62
-8
@@ -2996,8 +2996,8 @@ int dStage_RoomCheck(cBgS_GndChk* gndChk) {
|
||||
|
||||
/* 800270FC-80027170 021A3C 0074+00 0/0 1/1 0/0 .text
|
||||
* dStage_changeSceneExitId__FR13cBgS_PolyInfofUlScs */
|
||||
void dStage_changeSceneExitId(cBgS_PolyInfo& param_0, f32 speed, u32 mode, s8 roomNo, s16 angle) {
|
||||
dStage_changeScene(dComIfG_Bgsp().GetExitId(param_0), speed, mode, roomNo, angle, -1);
|
||||
int dStage_changeSceneExitId(cBgS_PolyInfo& param_0, f32 speed, u32 mode, s8 roomNo, s16 angle) {
|
||||
return dStage_changeScene(dComIfG_Bgsp().GetExitId(param_0), speed, mode, roomNo, angle, -1);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
@@ -3009,7 +3009,7 @@ SECTION_SDATA2 static f64 lit_5317 = 4503601774854144.0 /* cast s32 to float */;
|
||||
|
||||
/* 80027170-800272E0 021AB0 0170+00 1/1 10/10 63/63 .text dStage_changeScene__FifUlScsi
|
||||
*/
|
||||
// scls info types might be wrong or inlines wrong
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int dStage_changeScene(int i_exitId, f32 speed, u32 mode, s8 room_no, s16 angle, int param_5) {
|
||||
stage_scls_info_dummy_class* scls;
|
||||
@@ -3025,9 +3025,9 @@ int dStage_changeScene(int i_exitId, f32 speed, u32 mode, s8 room_no, s16 angle,
|
||||
}
|
||||
|
||||
stage_scls_info_class* scls_info = &scls->mEntries[i_exitId];
|
||||
u8 wipe = dStage_sclsInfo_getWipe(scls_info);
|
||||
int wipe_time = dStage_sclsInfo_getWipeTime(scls_info);
|
||||
s8 layer = dStage_sclsInfo_getSceneLayer(scls_info);
|
||||
s32 wipe = dStage_sclsInfo_getWipe(scls_info);
|
||||
s32 wipe_time = dStage_sclsInfo_getWipeTime(scls_info);
|
||||
s32 layer = dStage_sclsInfo_getSceneLayer(scls_info);
|
||||
int timeH = dStage_sclsInfo_getTimeH(scls_info);
|
||||
|
||||
if (layer >= 15) {
|
||||
@@ -3042,7 +3042,7 @@ int dStage_changeScene(int i_exitId, f32 speed, u32 mode, s8 room_no, s16 angle,
|
||||
dKy_set_nexttime(15.0f * timeH);
|
||||
}
|
||||
|
||||
dComIfGp_setNextStage(scls_info->mStage, scls_info->mStart, scls_info->mRoom, layer, speed,
|
||||
dComIfGp_setNextStage(scls_info->mStage, scls_info->mStart, (s8)scls_info->mRoom, (s8)layer, speed,
|
||||
mode, 1, wipe == 15 ? 0 : wipe, angle, 1, wipe_time);
|
||||
return 1;
|
||||
}
|
||||
@@ -3078,15 +3078,69 @@ SECTION_DEAD static char const* const stringBase_80378BB3 = "d_stage.cpp";
|
||||
#pragma pop
|
||||
|
||||
/* 800272F0-800274B0 021C30 01C0+00 0/0 1/1 0/0 .text dStage_changeScene4Event__FiScibfUlsi */
|
||||
#ifdef NONMATCHING
|
||||
int dStage_changeScene4Event(int i_exitId, s8 room_no, int i_wipe, bool param_3, f32 speed,
|
||||
u32 mode, s16 angle, int param_7) {
|
||||
stage_scls_info_dummy_class* scls;
|
||||
|
||||
if (room_no == -1) {
|
||||
scls = dComIfGp_getStageSclsInfo();
|
||||
} else {
|
||||
scls = dComIfGp_roomControl_getStatusRoomDt(room_no)->mRoomDt.getSclsInfo();
|
||||
}
|
||||
|
||||
if (scls == NULL) {
|
||||
// "%d: %d: Scene List doesn't exist. \n"
|
||||
OSReport_Error("%s: %d: シーンリストがありません。\n", "d_stage.cpp", 4865);
|
||||
return 0;
|
||||
}
|
||||
|
||||
stage_scls_info_class* scls_info = &scls->mEntries[i_exitId];
|
||||
|
||||
s32 wipe;
|
||||
s32 wipe_time;
|
||||
if (i_wipe == -1) {
|
||||
wipe = dStage_sclsInfo_getWipe(scls_info);
|
||||
} else {
|
||||
wipe = i_wipe;
|
||||
}
|
||||
|
||||
if (i_wipe == -1) {
|
||||
wipe_time = dStage_sclsInfo_getWipeTime(scls_info);
|
||||
} else {
|
||||
wipe_time = 0;
|
||||
}
|
||||
|
||||
s32 layer = dStage_sclsInfo_getSceneLayer(scls_info);
|
||||
int timeH = dStage_sclsInfo_getTimeH(scls_info);
|
||||
|
||||
if (layer >= 15) {
|
||||
layer = -1;
|
||||
}
|
||||
|
||||
if (layer == -1 && param_7 != -1) {
|
||||
layer = param_7;
|
||||
}
|
||||
|
||||
if (timeH < 31) {
|
||||
dKy_set_nexttime(15.0f * timeH);
|
||||
}
|
||||
|
||||
dComIfGp_setNextStage(scls_info->mStage, scls_info->mStart, (s8)scls_info->mRoom, (s8)layer, speed,
|
||||
mode, 1, wipe == 15 ? 0 : wipe, angle, param_3 != false, wipe_time);
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dStage_changeScene4Event(int param_0, s8 param_1, int param_2, bool param_3, f32 param_4,
|
||||
asm int dStage_changeScene4Event(int param_0, s8 param_1, int param_2, bool param_3, f32 param_4,
|
||||
u32 param_5, s16 param_6, int param_7) {
|
||||
nofralloc
|
||||
#include "asm/d/d_stage/dStage_changeScene4Event__FiScibfUlsi.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 800274B0-80027524 021DF0 0074+00 0/0 1/1 0/0 .text dStage_restartRoom__FUlUli */
|
||||
void dStage_restartRoom(u32 roomParam, u32 mode, int param_2) {
|
||||
|
||||
+167
-79
@@ -12,12 +12,8 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
static u8 now[48];
|
||||
};
|
||||
|
||||
struct dMapInfo_c {
|
||||
/* 8003F40C */ void calcFloorNo(f32, bool, int);
|
||||
/* 8003F40C */ static s8 calcFloorNo(f32, bool, int);
|
||||
};
|
||||
|
||||
//
|
||||
@@ -69,6 +65,10 @@ extern "C" extern bool data_80450680;
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
inline dStage_stageDt_c* dComIfGp_getStage() {
|
||||
return &g_dComIfG_gameInfo.play.getStage();
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450F98-80450F9C 000498 0004+00 2/2 0/0 0/0 .sbss mTypeGroupData__7dTres_c */
|
||||
dTres_c::typeGroupData_c* dTres_c::mTypeGroupData;
|
||||
@@ -84,14 +84,11 @@ asm int dTres_c::createWork() {
|
||||
#pragma pop
|
||||
|
||||
/* 8009BC18-8009BC60 096558 0048+00 0/0 1/1 0/0 .text create__7dTres_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dTres_c::create() {
|
||||
nofralloc
|
||||
#include "asm/d/d_tresure/create__7dTres_cFv.s"
|
||||
void dTres_c::create() {
|
||||
if (dStage_stagInfo_GetSTType(dComIfGp_getStage()->getStagInfo()) != 3) {
|
||||
reset();
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8009BC60-8009BC6C 0965A0 000C+00 0/0 1/1 0/0 .text remove__7dTres_cFv */
|
||||
void dTres_c::remove() {
|
||||
@@ -106,17 +103,57 @@ dTres_c::list_class dTres_c::mTypeGroupListAll[17];
|
||||
u16 dTres_c::mNum;
|
||||
|
||||
/* 8009BC6C-8009BCB4 0965AC 0048+00 2/2 0/0 0/0 .text reset__7dTres_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dTres_c::reset() {
|
||||
nofralloc
|
||||
#include "asm/d/d_tresure/reset__7dTres_cFv.s"
|
||||
void dTres_c::reset() {
|
||||
if (data_80450680) {
|
||||
mNum = 0;
|
||||
data_80450680 = false;
|
||||
|
||||
for (int i = 0; i < 17; i++) {
|
||||
mTypeGroupListAll[i].field_0x0 = NULL;
|
||||
mTypeGroupListAll[i].field_0x4 = NULL;
|
||||
mTypeGroupListAll[i].mNumber = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8009BCB4-8009BE28 0965F4 0174+00 0/0 1/1 0/0 .text addData__7dTres_cFPQ27dTres_c10list_classSc
|
||||
*/
|
||||
#ifdef NONMATCHING
|
||||
void dTres_c::addData(dTres_c::list_class* p_list, s8 roomNo) {
|
||||
if (dStage_stagInfo_GetSTType(dComIfGp_getStage()->getStagInfo()) != 3) {
|
||||
reset();
|
||||
|
||||
typeGroupData_c* listData = p_list->field_0x4;
|
||||
typeGroupData_c* groupData = &mTypeGroupData[mNum];
|
||||
for (int i = 0; i < (int)p_list->field_0x0; i++) {
|
||||
groupData->mData = listData->mData;
|
||||
groupData->mData.mRoomNo = roomNo;
|
||||
groupData->mData.mStatus = 0;
|
||||
|
||||
u8 typeGroupNo = getTypeToTypeGroupNo(groupData->mData.mType);
|
||||
groupData->setNextDataPointer(NULL);
|
||||
groupData->setTypeGroupNo(typeGroupNo);
|
||||
|
||||
list_class* typeGroupList = mTypeGroupListAll + typeGroupNo;
|
||||
if (typeGroupList->field_0x0 == NULL) {
|
||||
typeGroupList->field_0x0 = groupData;
|
||||
}
|
||||
|
||||
if (mTypeGroupListAll[i].field_0x4 != NULL) {
|
||||
mTypeGroupListAll[i].field_0x4->setNextDataPointer(groupData);
|
||||
}
|
||||
mTypeGroupListAll[i].field_0x4 = groupData;
|
||||
mTypeGroupListAll[i].mNumber++;
|
||||
|
||||
if ((s32)groupData->mData.mType == 0xFF) {
|
||||
checkTreasureBox(&groupData->mData);
|
||||
}
|
||||
|
||||
mNum++;
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -125,6 +162,7 @@ asm void dTres_c::addData(dTres_c::list_class* param_0, s8 param_1) {
|
||||
#include "asm/d/d_tresure/addData__7dTres_cFPQ27dTres_c10list_classSc.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80452BE8-80452BEC 0011E8 0004+00 1/1 0/0 0/0 .sdata2 @3839 */
|
||||
@@ -164,16 +202,38 @@ asm void dTres_c::checkTreasureBox(dTres_c::data_s* param_0) {
|
||||
#pragma pop
|
||||
|
||||
/* 8009C168-8009C1F0 096AA8 0088+00 0/0 0/0 3/3 .text onStatus__7dTres_cFUcii */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dTres_c::onStatus(u8 param_0, int param_1, int param_2) {
|
||||
nofralloc
|
||||
#include "asm/d/d_tresure/onStatus__7dTres_cFUcii.s"
|
||||
void dTres_c::onStatus(u8 listIdx, int param_1, int flag) {
|
||||
typeGroupData_c* groupData = getFirstData(listIdx);
|
||||
int typeGroupNo = getTypeGroupNumber(listIdx);
|
||||
|
||||
for (int i = 0; i < typeGroupNo; i++) {
|
||||
if (param_1 == groupData->getNo()) {
|
||||
u8 status = groupData->getStatus();
|
||||
|
||||
cLib_onBit(status, flag);
|
||||
groupData->setStatus(status);
|
||||
}
|
||||
groupData = getNextData(groupData);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8009C1F0-8009C27C 096B30 008C+00 0/0 0/0 3/3 .text offStatus__7dTres_cFUcii */
|
||||
#ifdef NONMATCHING
|
||||
void dTres_c::offStatus(u8 listIdx, int param_1, int flag) {
|
||||
typeGroupData_c* groupData = getFirstData(listIdx);
|
||||
int typeGroupNo = getTypeGroupNumber(listIdx);
|
||||
|
||||
for (int i = 0; i < typeGroupNo; i++) {
|
||||
if (param_1 == groupData->getNo()) {
|
||||
u8 status = groupData->getStatus();
|
||||
|
||||
cLib_offBit(status, flag);
|
||||
groupData->setStatus(status);
|
||||
}
|
||||
groupData = getNextData(groupData);
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -182,87 +242,115 @@ asm void dTres_c::offStatus(u8 param_0, int param_1, int param_2) {
|
||||
#include "asm/d/d_tresure/offStatus__7dTres_cFUcii.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8009C27C-8009C360 096BBC 00E4+00 0/0 1/1 0/0 .text getBossIconFloorNo__7dTres_cFPi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dTres_c::getBossIconFloorNo(int* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_tresure/getBossIconFloorNo__7dTres_cFPi.s"
|
||||
int dTres_c::getBossIconFloorNo(int* o_floorNo) {
|
||||
int ret;
|
||||
|
||||
if (o_floorNo == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
*o_floorNo = 0;
|
||||
typeGroupData_c* groupData = getFirstData(3);
|
||||
|
||||
if (groupData != NULL && dComIfGs_isDungeonItemCompass()) {
|
||||
if ((groupData->getSwBit() == 0xFF ||
|
||||
(groupData->getSwBit() != 0xFF &&
|
||||
dComIfGs_isSwitch(groupData->getSwBit(), groupData->getRoomNo()))) &&
|
||||
!dComIfGs_isStageBossEnemy()) {
|
||||
*o_floorNo =
|
||||
dMapInfo_c::calcFloorNo(groupData->getPos()->y, true, groupData->getRoomNo());
|
||||
ret = 1;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8009C360-8009C39C 096CA0 003C+00 4/4 4/4 0/0 .text getFirstData__7dTres_cFUc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dTres_c::getFirstData(u8 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_tresure/getFirstData__7dTres_cFUc.s"
|
||||
dTres_c::typeGroupData_c* dTres_c::getFirstData(u8 listIdx) {
|
||||
if (mTypeGroupListAll + listIdx == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if ((s32)mTypeGroupListAll[listIdx].mNumber == 0) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return mTypeGroupListAll[listIdx].field_0x0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8009C39C-8009C3B4 096CDC 0018+00 2/2 3/3 0/0 .text
|
||||
* getNextData__7dTres_cFPQ27dTres_c15typeGroupData_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dTres_c::getNextData(dTres_c::typeGroupData_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_tresure/getNextData__7dTres_cFPQ27dTres_c15typeGroupData_c.s"
|
||||
dTres_c::typeGroupData_c* dTres_c::getNextData(dTres_c::typeGroupData_c* p_data) {
|
||||
if (p_data == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return p_data->getNextDataPointer();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8009C3B4-8009C3CC 096CF4 0018+00 0/0 1/1 0/0 .text
|
||||
* getNextData__7dTres_cFPCQ27dTres_c15typeGroupData_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dTres_c::getNextData(dTres_c::typeGroupData_c const* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_tresure/getNextData__7dTres_cFPCQ27dTres_c15typeGroupData_c.s"
|
||||
dTres_c::typeGroupData_c* dTres_c::getNextData(dTres_c::typeGroupData_c const* p_data) {
|
||||
if (p_data == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return p_data->getNextDataPointer();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8009C3CC-8009C49C 096D0C 00D0+00 0/0 0/0 14/14 .text setPosition__7dTres_cFiUcPC3Veci
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dTres_c::setPosition(int param_0, u8 param_1, Vec const* param_2, int param_3) {
|
||||
nofralloc
|
||||
#include "asm/d/d_tresure/setPosition__7dTres_cFiUcPC3Veci.s"
|
||||
void dTres_c::setPosition(int dataNo, u8 listIdx, Vec const* i_pos, int i_roomNo) {
|
||||
typeGroupData_c* groupData = getFirstData(listIdx);
|
||||
|
||||
for (int i = getTypeGroupNumber(listIdx); i > 0; i--) {
|
||||
if (dataNo == groupData->getNo()) {
|
||||
Vec pos;
|
||||
pos.x = i_pos->x;
|
||||
pos.y = i_pos->y;
|
||||
pos.z = i_pos->z;
|
||||
|
||||
if (i_roomNo >= 0) {
|
||||
groupData->setRoomNo(i_roomNo);
|
||||
}
|
||||
dMapInfo_n::correctionOriginPos(groupData->getRoomNo(), &pos);
|
||||
groupData->setPos(pos);
|
||||
return;
|
||||
}
|
||||
groupData = groupData->getNextDataPointer();
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8037B0D8-8037B100 007738 0022+06 2/2 0/0 0/0 .rodata typeToTypeGroup__7dTres_c */
|
||||
SECTION_RODATA u8 const dTres_c::typeToTypeGroup[34] = {
|
||||
0xFF, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04, 0x05,
|
||||
0x05, 0x06, 0x06, 0x07, 0x07, 0x08, 0x80, 0x09, 0x81, 0x0A, 0x82, 0x0B,
|
||||
0x83, 0x0C, 0x84, 0x0D, 0x85, 0x0E, 0x87, 0x0F, 0x88, 0x10,
|
||||
SECTION_RODATA u8 const dTres_c::typeToTypeGroup[17][2] = {
|
||||
{0xFF, 0x00}, {0x00, 0x01}, {0x01, 0x02}, {0x02, 0x03}, {0x03, 0x04}, {0x04, 0x05},
|
||||
{0x05, 0x06}, {0x06, 0x07}, {0x07, 0x08}, {0x80, 0x09}, {0x81, 0x0A}, {0x82, 0x0B},
|
||||
{0x83, 0x0C}, {0x84, 0x0D}, {0x85, 0x0E}, {0x87, 0x0F}, {0x88, 0x10},
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8037B0D8, &dTres_c::typeToTypeGroup);
|
||||
|
||||
/* 8009C49C-8009C4B0 096DDC 0014+00 0/0 1/1 0/0 .text getTypeGroupNoToType__7dTres_cFUc
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dTres_c::getTypeGroupNoToType(u8 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_tresure/getTypeGroupNoToType__7dTres_cFUc.s"
|
||||
int dTres_c::getTypeGroupNoToType(u8 i_typeGroupNo) {
|
||||
return typeToTypeGroup[i_typeGroupNo][0];
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8009C4B0-8009C4FC 096DF0 004C+00 1/1 3/3 0/0 .text getTypeToTypeGroupNo__7dTres_cFUc
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm u8 dTres_c::getTypeToTypeGroupNo(u8 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_tresure/getTypeToTypeGroupNo__7dTres_cFUc.s"
|
||||
int dTres_c::getTypeToTypeGroupNo(u8 i_type) {
|
||||
u8 groupNo = 17;
|
||||
for (int i = 0; i < 17; i++) {
|
||||
if (i_type == typeToTypeGroup[i][0]) {
|
||||
groupNo = typeToTypeGroup[i][1];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return groupNo;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
+600
-182
File diff suppressed because it is too large
Load Diff
@@ -157,10 +157,11 @@ void dEvent_exception_c::init() {
|
||||
|
||||
/* 800463F0-80046480 040D30 0090+00 0/0 2/2 0/0 .text setStartDemo__18dEvent_exception_cFi */
|
||||
s32 dEvent_exception_c::setStartDemo(int index) {
|
||||
int tmp = dComIfGp_roomControl_getStayNo();
|
||||
dStage_MapEvent_dt_c* eventData = dEvt_control_c::searchMapEventData(index, tmp);
|
||||
int roomNo = dComIfGp_roomControl_getStayNo();
|
||||
dStage_MapEvent_dt_c* eventData = dEvt_control_c::searchMapEventData(index, roomNo);
|
||||
|
||||
if (eventData != NULL && eventData->field_0x1B != 0xFF &&
|
||||
dComIfGs_isSwitch(eventData->field_0x1B, tmp)) {
|
||||
dComIfGs_isSwitch(eventData->field_0x1B, roomNo)) {
|
||||
return 0xFF;
|
||||
} else if (mEventInfoIdx != index) {
|
||||
mEventInfoIdx = index;
|
||||
@@ -170,19 +171,20 @@ s32 dEvent_exception_c::setStartDemo(int index) {
|
||||
|
||||
/* 80046480-800465E8 040DC0 0168+00 1/1 0/0 0/0 .text getEventName__18dEvent_exception_cFv */
|
||||
const char* dEvent_exception_c::getEventName() {
|
||||
/* 803A8270-803A82A8 -00001 0038+00 1/1 0/0 0/0 .data soecial_names$3966 */
|
||||
static char* soecial_names[14] = {
|
||||
"NORMAL_COMEBACK", "DEFAULT_START", "SHUTTER_START", "SHUTTER_START_STOP",
|
||||
"BS_SHUTTER_START", "BS_SHUTTER_START_B", "KNOB_START", "KNOB_START_B",
|
||||
"FMASTER_START", "FALL_START", "CRAWLOUT_START", "BOSSWARP_START",
|
||||
"PORTALWARP_START", "PORTALWARP_START_B",
|
||||
};
|
||||
|
||||
s32 roomNo = dComIfGp_roomControl_getStayNo();
|
||||
dStage_roomStatus_c* roomStatus = dComIfGp_roomControl_getStatusRoomDt(roomNo);
|
||||
dStage_MapEventInfo_c* eventInfo = roomStatus->mRoomDt.getMapEventInfo();
|
||||
if (mEventInfoIdx == -1) {
|
||||
return "(!NO REGIST!)";
|
||||
}
|
||||
|
||||
if (0xC8 < mEventInfoIdx && mEventInfoIdx < 0xD7) {
|
||||
if (mEventInfoIdx == 0xCB) {
|
||||
dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo());
|
||||
@@ -197,9 +199,11 @@ const char* dEvent_exception_c::getEventName() {
|
||||
if (eventInfo == NULL) {
|
||||
return "(!NO INFO!)";
|
||||
}
|
||||
|
||||
if (mEventInfoIdx < 0 || mEventInfoIdx > eventInfo->mCount) {
|
||||
return "(!BAD NUMBER!)";
|
||||
}
|
||||
|
||||
dStage_MapEvent_dt_c* revt = &eventInfo->mData[mEventInfoIdx];
|
||||
switch (revt->mType) {
|
||||
case 1:
|
||||
@@ -265,11 +269,11 @@ int dEvent_manager_c::create() {
|
||||
}
|
||||
|
||||
/* 80046800-80046888 041140 0088+00 0/0 8/8 24/24 .text setObjectArchive__16dEvent_manager_cFPc */
|
||||
bool dEvent_manager_c::setObjectArchive(char* param_0) {
|
||||
bool dEvent_manager_c::setObjectArchive(char* arcName) {
|
||||
char* rt = NULL;
|
||||
|
||||
if (param_0 != NULL) {
|
||||
char* res = (char*)dComIfG_getObjectRes(param_0, DataFileName);
|
||||
if (arcName != NULL) {
|
||||
char* res = (char*)dComIfG_getObjectRes(arcName, DataFileName);
|
||||
rt = res;
|
||||
mEventList[2].init(res, -1);
|
||||
} else {
|
||||
@@ -333,6 +337,7 @@ int dEvent_manager_c::orderStartDemo() {
|
||||
if (mEventException.mEventInfoIdx == -2) {
|
||||
return -2;
|
||||
}
|
||||
|
||||
s16 eventIdx;
|
||||
if (0xC8 < mEventException.mEventInfoIdx && mEventException.mEventInfoIdx < 0xD7) {
|
||||
eventIdx = this->getEventIdx(mEventException.getEventName(), -1, -1);
|
||||
@@ -346,10 +351,12 @@ int dEvent_manager_c::orderStartDemo() {
|
||||
daPy_py_c::checkNowWolf() ? "WOLF_WORLD_CHANGE_OUT" : "WORLD_CHANGE_OUT", 0xFF, -1);
|
||||
success = fopAcM_orderOtherEventId(NULL, eventIdx, 0xFF, 0xFFFF, 5, 1);
|
||||
}
|
||||
|
||||
if (success == FALSE) {
|
||||
eventIdx = this->getEventIdx("DEFAULT_START", 0xFF, -1);
|
||||
fopAcM_orderOtherEventId(NULL, eventIdx, 0xFF, 0xFFFF, 5, 1);
|
||||
}
|
||||
|
||||
return eventIdx;
|
||||
}
|
||||
|
||||
@@ -394,11 +401,13 @@ void dEvent_manager_c::startProc(dEvDtEvent_c* p_evnt) {
|
||||
fopAcM_OnStatus(ac, 0x8000);
|
||||
}
|
||||
}
|
||||
|
||||
if (staff->getType() == dEvDtStaff_c::TYPE_ALL) {
|
||||
issueStaff(staff->getName());
|
||||
}
|
||||
staff->init();
|
||||
}
|
||||
|
||||
p_evnt->mEventState = 1;
|
||||
mFlags.init();
|
||||
}
|
||||
@@ -416,6 +425,7 @@ void dEvent_manager_c::endProc(s16 param_0, int param_1) {
|
||||
if (param_1 != 0) {
|
||||
this->closeProc(event);
|
||||
}
|
||||
|
||||
if (event->mEventState == 2) {
|
||||
char* param = "ALL";
|
||||
fopAcM_Search((fopAcIt_JudgeFunc)allOffObjectCallBack, (void*)param);
|
||||
@@ -447,6 +457,7 @@ void dEvent_manager_c::Sequencer() {
|
||||
name = mapEvent->mName;
|
||||
break;
|
||||
}
|
||||
|
||||
if (dStage_MapEvent_dt_c_getEventSCutSW(mapEvent) != 0 && !evtControl.chkFlag2(2)) {
|
||||
if (dStage_MapEvent_dt_c_getEventSCutType(mapEvent) == 2) {
|
||||
evtControl.onSkipFade();
|
||||
@@ -475,11 +486,13 @@ void dEvent_manager_c::Sequencer() {
|
||||
}
|
||||
Z2GetAudioMgr()->mStatusMgr.setDemoName(name);
|
||||
}
|
||||
|
||||
if (event->finishCheck() != 0) {
|
||||
bool bVar1 = false;
|
||||
if (evtControl.chkFlag2(1)) {
|
||||
bVar1 = true;
|
||||
}
|
||||
|
||||
int exit = -1;
|
||||
bool iVar5;
|
||||
if (evtControl.chkFlag2(2)) {
|
||||
@@ -487,6 +500,7 @@ void dEvent_manager_c::Sequencer() {
|
||||
} else {
|
||||
iVar5 = false;
|
||||
}
|
||||
|
||||
if (mapEvent != NULL) {
|
||||
int cutType = dStage_MapEvent_dt_c_getEventSCutType(mapEvent);
|
||||
if (iVar5 && cutType != 1) {
|
||||
@@ -495,6 +509,7 @@ void dEvent_manager_c::Sequencer() {
|
||||
((fopAc_ac_c*)dComIfGp_getPlayer(0))->mAttentionInfo.mPosition);
|
||||
cXyz camCenter = dCam_getBody()->Center();
|
||||
f32 distance = cXyz((attentionPos - camCenter)).abs();
|
||||
|
||||
if (cutType == 0) {
|
||||
if (distance > 180) {
|
||||
dCam_getBody()->EventRecoverNotime();
|
||||
@@ -513,6 +528,7 @@ void dEvent_manager_c::Sequencer() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
switch (mapEvent->mType) {
|
||||
case 0:
|
||||
switch (mapEvent->field_0x18) {
|
||||
@@ -523,6 +539,7 @@ void dEvent_manager_c::Sequencer() {
|
||||
mDoAud_seStart(0xD, NULL, 0, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
if (!bVar1) {
|
||||
if (iVar5 && mapEvent->field_0x9 != 0xFF) {
|
||||
exit = mapEvent->field_0x9;
|
||||
@@ -557,6 +574,7 @@ void dEvent_manager_c::Sequencer() {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (exit == -1) {
|
||||
getBase().advanceCut(event);
|
||||
closeProc(event);
|
||||
@@ -567,6 +585,7 @@ void dEvent_manager_c::Sequencer() {
|
||||
getBase().advanceCut(event);
|
||||
}
|
||||
}
|
||||
|
||||
if (field_0x1b8 != 0) {
|
||||
field_0x1b8--;
|
||||
}
|
||||
@@ -631,6 +650,7 @@ s16 dEvent_manager_c::getEventIdx(char const* eventName, u8 param_1, s32 roomNo)
|
||||
if (roomNo == -1) {
|
||||
roomNo = dComIfGp_roomControl_getStayNo();
|
||||
}
|
||||
|
||||
if (param_1 != 0xFF) {
|
||||
dStage_MapEvent_dt_c* data = dEvt_control_c::searchMapEventData(param_1, roomNo);
|
||||
if (data != NULL) {
|
||||
@@ -645,9 +665,11 @@ s16 dEvent_manager_c::getEventIdx(char const* eventName, u8 param_1, s32 roomNo)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (eventName == NULL) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
dEvDtBase_c* event;
|
||||
int j;
|
||||
int i;
|
||||
@@ -688,6 +710,7 @@ s16 dEvent_manager_c::getEventIdx(fopAc_ac_c* pActor, u8 param_1) {
|
||||
* getEventIdx__16dEvent_manager_cFP10fopAc_ac_cPCcUc */
|
||||
s16 dEvent_manager_c::getEventIdx(fopAc_ac_c* pActor, char const* eventName, u8 param_2) {
|
||||
s8 actorRoomNo = pActor->getRoomNo();
|
||||
|
||||
if (param_2 != 0xFF) {
|
||||
dStage_MapEvent_dt_c* data = dEvt_control_c::searchMapEventData(param_2, actorRoomNo);
|
||||
if (data != NULL) {
|
||||
@@ -702,9 +725,11 @@ s16 dEvent_manager_c::getEventIdx(fopAc_ac_c* pActor, char const* eventName, u8
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (eventName == NULL) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
dEvDtBase_c* event;
|
||||
int j;
|
||||
int type;
|
||||
@@ -735,6 +760,7 @@ int dEvent_manager_c::isMapToolCamera(u8 param_0, s32 roomNo) {
|
||||
if (roomNo == -1) {
|
||||
roomNo = dComIfGp_roomControl_getStayNo();
|
||||
}
|
||||
|
||||
dStage_MapEvent_dt_c* data = dEvt_control_c::searchMapEventData(param_0, roomNo);
|
||||
if (data != NULL) {
|
||||
return data->mType == 0;
|
||||
@@ -811,12 +837,14 @@ int dEvent_manager_c::getMyStaffId(char const* pStaffName, fopAc_ac_c* pActor, i
|
||||
return -1;
|
||||
} else {
|
||||
dEvDtEvent_c* event = this->getEventData(mCurrentEventCompositId);
|
||||
|
||||
if (event != NULL && (event->mEventState == 1 || event->mEventState == 2)) {
|
||||
int staffCount = event->getNStaff();
|
||||
bool hasDp = false;
|
||||
if (strchr(pStaffName, ':') != NULL) {
|
||||
hasDp = true;
|
||||
}
|
||||
|
||||
for (i = 0; i < staffCount; i++) {
|
||||
staffNum = event->getStaff(i);
|
||||
dEvDtStaff_c* staff = getBase().getStaffP(staffNum);
|
||||
@@ -832,6 +860,7 @@ int dEvent_manager_c::getMyStaffId(char const* pStaffName, fopAc_ac_c* pActor, i
|
||||
ptr++;
|
||||
}
|
||||
}
|
||||
|
||||
if (strcmp(pStaffName, buf) == 0 && (tagId < 0 || tagId == staff->mTagID)) {
|
||||
s16 num = 0;
|
||||
if (ptr != NULL) {
|
||||
@@ -851,6 +880,7 @@ int dEvent_manager_c::getMyStaffId(char const* pStaffName, fopAc_ac_c* pActor, i
|
||||
return staffNum;
|
||||
}
|
||||
}
|
||||
|
||||
if (strcmp(pStaffName, "Alink") == 0 && strcmp("Link", buf) == 0 &&
|
||||
tagId == staff->mTagID) {
|
||||
return staffNum;
|
||||
@@ -907,6 +937,7 @@ int dEvent_manager_c::getMyActIdx(int param_0, char const* const* param_1, int p
|
||||
} else if (mCurrentEventCompositId == -1) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
dEvDtStaff_c* staff = getBase().getStaffP(param_0);
|
||||
if (staff) {
|
||||
if (staff->field_0x41 != false && param_3 == 0) {
|
||||
@@ -1041,9 +1072,11 @@ int dEvent_manager_c::getEventPrio(fopAc_ac_c* pActor, s16 eventCompositId) {
|
||||
eventBase.init(data, -1);
|
||||
event = eventBase.mEventP;
|
||||
}
|
||||
|
||||
if (event == NULL) {
|
||||
event = getEventData(eventCompositId);
|
||||
}
|
||||
|
||||
if (event == NULL) {
|
||||
return 0;
|
||||
} else {
|
||||
@@ -1090,9 +1123,11 @@ const char* dEvent_manager_c::getRunEventName() {
|
||||
if (mCurrentEventCompositId == -1) {
|
||||
return "NO DATA";
|
||||
}
|
||||
|
||||
if (getBase().getHeaderP() == NULL) {
|
||||
return "NO DATA";
|
||||
}
|
||||
|
||||
dEvDtEvent_c* event = getEventData(mCurrentEventCompositId);
|
||||
if (event != NULL && event->mEventState == 1) {
|
||||
return event->getName();
|
||||
@@ -1109,9 +1144,10 @@ struct FindShtrCbPrms {
|
||||
/* 8004846C-80048520 042DAC 00B4+00 1/1 0/0 0/0 .text findShutterCallBack__FP10fopAc_ac_cPv */
|
||||
static fopAc_ac_c* findShutterCallBack(fopAc_ac_c* pActor, void* param_1) {
|
||||
FindShtrCbPrms* prms = (FindShtrCbPrms*)param_1;
|
||||
if (prms->mBsTypeId != fpcAcM_GetProfName(pActor)) {
|
||||
if (prms->mBsTypeId != fopAcM_GetProfName(pActor)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
cXyz diff = pActor->mOrig.mPosition - prms->mActor->mOrig.mPosition;
|
||||
if (diff.x < 10 && diff.x > -10 && diff.y < 10 && diff.y > -10 && diff.z < 10 && diff.z > -10) {
|
||||
return pActor;
|
||||
@@ -1127,6 +1163,7 @@ fopAc_ac_c* dEvent_manager_c::specialCast_Shutter(s16 bsTypeId, int param_1) {
|
||||
prms.mActor = (fopAc_ac_c*)dComIfGp_getPlayer(0);
|
||||
fopAc_ac_c* shutterActor =
|
||||
(fopAc_ac_c*)fopAcIt_Judge((fopAcIt_JudgeFunc)findShutterCallBack, &prms);
|
||||
|
||||
if (shutterActor != NULL && param_1 != 0) {
|
||||
cXyz goal(shutterActor->mOrig.mPosition);
|
||||
s16 angle = prms.mActor->mOrig.mAngle.y + 0x8000;
|
||||
@@ -1145,6 +1182,7 @@ fopAc_ac_c* dEvent_manager_c::specialCast(char const* pName, int param_1) {
|
||||
if (pName == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!strcmp(pName, "SHUTTER_DOOR")) {
|
||||
shutterActor = specialCast_Shutter(0x226, param_1);
|
||||
if (shutterActor == NULL) {
|
||||
@@ -1163,6 +1201,7 @@ fopAc_ac_c* dEvent_manager_c::specialCast(char const* pName, int param_1) {
|
||||
dComIfGp_getEvent().onEventFlag(0x10);
|
||||
}
|
||||
}
|
||||
|
||||
if (shutterActor != NULL) {
|
||||
if (param_1 != 0) {
|
||||
fopAcM_OnStatus(shutterActor, 0x1000);
|
||||
@@ -1204,9 +1243,11 @@ int dEvent_manager_c::checkStartDemo() {
|
||||
if (!dComIfGp_getEvent().runCheck()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (mEventException.mEventInfoIdx == -1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (mEventException.mEventInfoIdx == -2) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -228,8 +228,8 @@ inline u16 dComIfGs_getLife() {
|
||||
|
||||
/* 80192954-80192AA0 18D294 014C+00 0/0 3/3 0/0 .text setSaveData__12dFile_info_cFP10dSv_save_ciUc
|
||||
*/
|
||||
int dFile_info_c::setSaveData(dSv_save_c* save, int param_1, u8 data_num) {
|
||||
if (param_1 != 0) {
|
||||
int dFile_info_c::setSaveData(dSv_save_c* save, int checksumValid, u8 data_num) {
|
||||
if (checksumValid) {
|
||||
char* player_name = save->getPlayer().getPlayerInfo().getLinkName();
|
||||
if (*player_name == NULL) {
|
||||
if (field_0x22 == 1 && data_num == dComIfGs_getDataNum()) {
|
||||
|
||||
@@ -16,71 +16,15 @@ struct dMsgString_c {
|
||||
/* 80249D28 */ ~dMsgString_c();
|
||||
};
|
||||
|
||||
struct JUtility {
|
||||
struct TColor {};
|
||||
};
|
||||
|
||||
struct JKRArchive {};
|
||||
|
||||
struct dFile_warning_c {
|
||||
/* 80191BAC */ dFile_warning_c(JKRArchive*, u8);
|
||||
/* 80191C18 */ ~dFile_warning_c();
|
||||
/* 80191CF4 */ void screenSet();
|
||||
/* 80191F18 */ void _move();
|
||||
/* 80191F90 */ void modeWait();
|
||||
/* 80191F94 */ void modeMove();
|
||||
/* 80191FD4 */ void baseMoveAnm();
|
||||
/* 801920B8 */ void openInit();
|
||||
/* 8019210C */ void closeInit();
|
||||
/* 80192160 */ void init();
|
||||
/* 80192190 */ void _draw();
|
||||
/* 801921CC */ void drawSelf();
|
||||
/* 801921F8 */ void setText(u32);
|
||||
/* 80192240 */ void setFontColor(JUtility::TColor, JUtility::TColor);
|
||||
};
|
||||
|
||||
struct dDlst_base_c {};
|
||||
|
||||
struct dDlst_list_c {
|
||||
/* 80056794 */ void set(dDlst_base_c**&, dDlst_base_c**&, dDlst_base_c*);
|
||||
};
|
||||
|
||||
struct dDlst_FileWarn_c {
|
||||
/* 80192354 */ void draw();
|
||||
/* 801923CC */ ~dDlst_FileWarn_c();
|
||||
};
|
||||
|
||||
struct JKRFileLoader {
|
||||
/* 802D4270 */ void getGlbResource(char const*, JKRFileLoader*);
|
||||
};
|
||||
|
||||
struct JKRExpHeap {};
|
||||
|
||||
struct J2DTextBox {
|
||||
/* 8019230C */ void setBlackWhite(JUtility::TColor, JUtility::TColor);
|
||||
/* 8030074C */ void setString(s16, char const*, ...);
|
||||
};
|
||||
|
||||
struct J2DAnmTransform {};
|
||||
|
||||
struct J2DGrafContext {};
|
||||
|
||||
struct J2DScreen {
|
||||
/* 80192414 */ void setAnimation(J2DAnmTransform*);
|
||||
/* 802F8498 */ J2DScreen();
|
||||
/* 802F8648 */ void setPriority(char const*, u32, JKRArchive*);
|
||||
/* 802F8ED4 */ void draw(f32, f32, J2DGrafContext const*);
|
||||
/* 802F9690 */ void animation();
|
||||
};
|
||||
|
||||
struct J2DAnmLoaderDataBase {
|
||||
/* 80308A6C */ void load(void const*);
|
||||
};
|
||||
|
||||
struct CPaneMgr {
|
||||
/* 80253984 */ CPaneMgr(J2DScreen*, u64, u8, JKRExpHeap*);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -128,7 +72,6 @@ extern "C" void setString__10J2DTextBoxFsPCce();
|
||||
extern "C" void load__20J2DAnmLoaderDataBaseFPCv();
|
||||
extern "C" void __ptmf_scall();
|
||||
extern "C" extern void* __vt__12dDlst_base_c[3];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
@@ -217,7 +160,8 @@ asm dFile_warning_c::dFile_warning_c(JKRArchive* param_0, u8 param_1) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dFile_warning_c::~dFile_warning_c() {
|
||||
// asm dFile_warning_c::~dFile_warning_c() {
|
||||
extern "C" asm void __dt__15dFile_warning_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/file/d_file_sel_warning/__dt__15dFile_warning_cFv.s"
|
||||
}
|
||||
|
||||
@@ -18,10 +18,6 @@
|
||||
|
||||
struct sub_kankyo__class {};
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
static u8 now[48];
|
||||
};
|
||||
|
||||
struct color_RGB_class {};
|
||||
|
||||
//
|
||||
@@ -2628,7 +2624,7 @@ asm void dKy_Sound_set(cXyz param_0, int param_1, unsigned int param_2, int para
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dKy_Sound_get() {
|
||||
asm SND_INFLUENCE* dKy_Sound_get() {
|
||||
nofralloc
|
||||
#include "asm/d/kankyo/d_kankyo/dKy_Sound_get__Fv.s"
|
||||
}
|
||||
|
||||
@@ -418,7 +418,6 @@ extern "C" void getTotalFreeSize__7JKRHeapFv();
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void create__10JKRExpHeapFUlP7JKRHeapb();
|
||||
extern "C" void DCStoreRangeNoSync();
|
||||
extern "C" void __register_global_object();
|
||||
extern "C" void __destroy_arr();
|
||||
extern "C" void __ptmf_scall();
|
||||
|
||||
+796
-994
File diff suppressed because it is too large
Load Diff
@@ -257,7 +257,6 @@ extern "C" void _savegpr_28();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern u8 g_mDoMtx_identity[48 + 24 /* padding */];
|
||||
extern "C" extern void* g_fopMsg_Method[5 + 1 /* padding */];
|
||||
extern "C" extern void* __vt__12dDlst_base_c[3];
|
||||
extern "C" extern void* __vt__10CSTControl[4];
|
||||
|
||||
@@ -1485,7 +1485,7 @@ SECTION_DATA static leafdraw_method_class l_dMeter2_Method = {
|
||||
};
|
||||
|
||||
/* 803BFA68-803BFA90 -00001 0028+00 0/0 0/0 1/0 .data g_profile_METER2 */
|
||||
SECTION_DATA extern leaf_process_profile_definition g_profile_METER2 = {
|
||||
SECTION_DATA extern process_profile_definition g_profile_METER2 = {
|
||||
-3, 12,
|
||||
-3, 0x0316,
|
||||
0, (process_method_class*)&g_fpcLf_Method,
|
||||
|
||||
+460
-299
File diff suppressed because it is too large
Load Diff
+58
-125
@@ -4,6 +4,7 @@
|
||||
//
|
||||
|
||||
#include "d/msg/d_msg_object.h"
|
||||
#include "d/msg/d_msg_out_font.h"
|
||||
#include "JSystem/JGadget/binary.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
@@ -71,20 +72,6 @@ struct dMsgScrnBase_c {
|
||||
/* 8023C3EC */ void setRubyString(char*);
|
||||
};
|
||||
|
||||
struct COutFont_c {
|
||||
/* 80225C94 */ COutFont_c(u8);
|
||||
};
|
||||
|
||||
struct dMsgObject_HowlHIO_c {
|
||||
/* 80232AEC */ dMsgObject_HowlHIO_c();
|
||||
/* 80238B94 */ ~dMsgObject_HowlHIO_c();
|
||||
};
|
||||
|
||||
struct dMsgObject_HIO_c {
|
||||
/* 80232D6C */ dMsgObject_HIO_c();
|
||||
/* 80238BDC */ ~dMsgObject_HIO_c();
|
||||
};
|
||||
|
||||
struct dDemo_c {
|
||||
static u8 m_control[4];
|
||||
static u8 m_mesgControl[4];
|
||||
@@ -378,11 +365,11 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804510C8-804510D0 0005C8 0002+06 5/4 0/0 0/0 .sbss s_groupID */
|
||||
static u8 s_groupID[2 + 6 /* padding */];
|
||||
static s16 s_groupID;
|
||||
|
||||
/* 80232A3C-80232A44 -00001 0008+00 0/0 0/0 0/0 .text dMsgObject_getGroupID__Fv */
|
||||
s16 dMsgObject_getGroupID() {
|
||||
return (s32) * (s16*)(&s_groupID);
|
||||
return s_groupID;
|
||||
}
|
||||
|
||||
/* 80232A44-80232AEC 22D384 00A8+00 1/1 0/0 0/0 .text dMsgObject_searchSSItem__FPvPv */
|
||||
@@ -733,7 +720,7 @@ asm void dMsgObject_c::getMessageIDAlways(u32 param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::getMessageGroup(u32 param_0) {
|
||||
asm s16 dMsgObject_c::getMessageGroup(u32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/getMessageGroup__12dMsgObject_cFUl.s"
|
||||
}
|
||||
@@ -945,59 +932,44 @@ asm void dMsgObject_c::isSend() {
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80399660-80399660 025CC0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_803996CF = "/res/Msgus/bmgres%d.arc";
|
||||
/* @stringBase0 padding */
|
||||
SECTION_DEAD static char const* const pad_803996E7 = "";
|
||||
#pragma pop
|
||||
|
||||
/* 8043069C-804306B8 05D3BC 0016+06 1/1 0/0 0/0 .bss arcName$6106 */
|
||||
static u8 arcName[22 + 6 /* padding */];
|
||||
inline dStage_stageDt_c* dComIfGp_getStage() {
|
||||
return &g_dComIfG_gameInfo.play.getStage();
|
||||
}
|
||||
|
||||
/* 80236BF8-80236C90 231538 0098+00 1/1 0/0 0/0 .text
|
||||
* readMessageGroupLocal__12dMsgObject_cFPP25mDoDvdThd_mountXArchive_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::readMessageGroupLocal(mDoDvdThd_mountXArchive_c** param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/readMessageGroupLocal__12dMsgObject_cFPP25mDoDvdThd_mountXArchive_c.s"
|
||||
void dMsgObject_c::readMessageGroupLocal(mDoDvdThd_mountXArchive_c** p_arcMount) {
|
||||
static char arcName[22];
|
||||
|
||||
int msgGroup = dStage_stagInfo_GetMsgGroup(dComIfGp_getStage()->getStagInfo());
|
||||
sprintf(arcName, "/res/Msgus/bmgres%d.arc", msgGroup);
|
||||
|
||||
*p_arcMount = mDoDvdThd_mountXArchive_c::create(arcName, 0, JKRArchive::MOUNT_MEM, NULL);
|
||||
|
||||
if (msgGroup == 99) {
|
||||
msgGroup = 9;
|
||||
}
|
||||
|
||||
s_groupID = msgGroup;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80236C90-80236CD4 2315D0 0044+00 1/1 0/0 0/0 .text changeFlowGroupLocal__12dMsgObject_cFl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::changeFlowGroupLocal(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/changeFlowGroupLocal__12dMsgObject_cFl.s"
|
||||
void dMsgObject_c::changeFlowGroupLocal(s32 param_0) {
|
||||
mFlowChk = 1;
|
||||
changeGroup(param_0 >= 3000 ? (s16)0 : s_groupID);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80236CD4-80236D00 231614 002C+00 1/1 0/0 0/0 .text demoMessageGroupLocal__12dMsgObject_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::demoMessageGroupLocal() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/demoMessageGroupLocal__12dMsgObject_cFv.s"
|
||||
void dMsgObject_c::demoMessageGroupLocal() {
|
||||
mFlowChk = 0;
|
||||
changeGroup(0);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80236D00-80236D0C 231640 000C+00 1/1 0/0 0/0 .text endFlowGroupLocal__12dMsgObject_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::endFlowGroupLocal() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/endFlowGroupLocal__12dMsgObject_cFv.s"
|
||||
void dMsgObject_c::endFlowGroupLocal() {
|
||||
mFlowChk = 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80236D0C-80236DE4 23164C 00D8+00 1/1 0/0 0/0 .text changeGroupLocal__12dMsgObject_cFs
|
||||
*/
|
||||
@@ -1025,35 +997,23 @@ asm void dMsgObject_c::getStringLocal(u32 param_0, J2DTextBox* param_1, J2DTextB
|
||||
|
||||
/* 802370A8-802370BC 2319E8 0014+00 0/0 1/1 0/0 .text isGetItemMessage__12dMsgObject_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::isGetItemMessage() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/isGetItemMessage__12dMsgObject_cFv.s"
|
||||
BOOL dMsgObject_c::isGetItemMessage() {
|
||||
return mFukiKind == 9;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802370BC-802370E8 2319FC 002C+00 4/4 2/2 0/0 .text isKanbanMessage__12dMsgObject_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::isKanbanMessage() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/isKanbanMessage__12dMsgObject_cFv.s"
|
||||
BOOL dMsgObject_c::isKanbanMessage() {
|
||||
if (mFukiKind == 2 || mFukiKind == 6 || mFukiKind == 15) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802370E8-802370FC 231A28 0014+00 6/6 3/3 0/0 .text isHowlMessage__12dMsgObject_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::isHowlMessage() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/isHowlMessage__12dMsgObject_cFv.s"
|
||||
BOOL dMsgObject_c::isHowlMessage() {
|
||||
return mFukiKind == 17;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802370FC-80237138 231A3C 003C+00 3/3 2/2 0/0 .text isMidonaMessage__12dMsgObject_cFv
|
||||
*/
|
||||
@@ -1311,7 +1271,7 @@ asm void dMsgObject_c::resetSelectBomBag() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::getSelectBombBagIDLocal() {
|
||||
asm u8 dMsgObject_c::getSelectBombBagIDLocal() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/getSelectBombBagIDLocal__12dMsgObject_cFv.s"
|
||||
}
|
||||
@@ -1321,7 +1281,7 @@ asm void dMsgObject_c::getSelectBombBagIDLocal() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::getSelectBombPriceLocal() {
|
||||
asm s16 dMsgObject_c::getSelectBombPriceLocal() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/getSelectBombPriceLocal__12dMsgObject_cFv.s"
|
||||
}
|
||||
@@ -1368,7 +1328,7 @@ void dMsgObject_c::setSelectWordFlagLocal(u8 param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::isHowlHearingModeLocal() {
|
||||
asm bool dMsgObject_c::isHowlHearingModeLocal() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/isHowlHearingModeLocal__12dMsgObject_cFv.s"
|
||||
}
|
||||
@@ -2043,65 +2003,35 @@ asm void dMsgObject_c::getSelectWordFlag() {
|
||||
|
||||
/* 80238588-802385B4 232EC8 002C+00 0/0 1/1 0/0 .text isHowlHearingMode__12dMsgObject_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::isHowlHearingMode() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/isHowlHearingMode__12dMsgObject_cFv.s"
|
||||
bool dMsgObject_c::isHowlHearingMode() {
|
||||
return dMsgObject_getMsgObjectClass()->isHowlHearingModeLocal();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802385B4-802385E0 232EF4 002C+00 0/0 1/1 0/0 .text getSelectBombBagID__12dMsgObject_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm u8 dMsgObject_c::getSelectBombBagID() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/getSelectBombBagID__12dMsgObject_cFv.s"
|
||||
u8 dMsgObject_c::getSelectBombBagID() {
|
||||
return dMsgObject_getMsgObjectClass()->getSelectBombBagIDLocal();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802385E0-8023860C 232F20 002C+00 0/0 6/6 0/0 .text getSelectBombPrice__12dMsgObject_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s16 dMsgObject_c::getSelectBombPrice() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/getSelectBombPrice__12dMsgObject_cFv.s"
|
||||
s16 dMsgObject_c::getSelectBombPrice() {
|
||||
return dMsgObject_getMsgObjectClass()->getSelectBombPriceLocal();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8023860C-80238638 232F4C 002C+00 0/0 1/1 0/0 .text setEquipBombInfo__12dMsgObject_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::setEquipBombInfo() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/setEquipBombInfo__12dMsgObject_cFv.s"
|
||||
void dMsgObject_c::setEquipBombInfo() {
|
||||
dMsgObject_getMsgObjectClass()->setEquipBombInfoLocal();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80238638-8023864C 232F78 0014+00 0/0 2/2 0/0 .text getItemEquipButton__12dMsgObject_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::getItemEquipButton() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/getItemEquipButton__12dMsgObject_cFv.s"
|
||||
u8 dMsgObject_c::getItemEquipButton() {
|
||||
return dMsgObject_getMsgObjectClass()->getItemEquipButtonLocal();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8023864C-80238660 232F8C 0014+00 0/0 2/2 0/0 .text setSelectCancelPos__12dMsgObject_cFUc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::setSelectCancelPos(u8 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/setSelectCancelPos__12dMsgObject_cFUc.s"
|
||||
void dMsgObject_c::setSelectCancelPos(u8 pos) {
|
||||
dMsgObject_getMsgObjectClass()->setSelectCancelPosLocal(pos);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80238660-802386C8 232FA0 0068+00 1/1 0/0 3/3 .text dMsgObject_getTotalPrice__Fv */
|
||||
#pragma push
|
||||
@@ -2232,7 +2162,8 @@ REGISTER_CTORS(0x80238B58, __sinit_d_msg_object_cpp);
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dMsgObject_HowlHIO_c::~dMsgObject_HowlHIO_c() {
|
||||
// asm dMsgObject_HowlHIO_c::~dMsgObject_HowlHIO_c() {
|
||||
extern "C" asm void __dt__20dMsgObject_HowlHIO_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/__dt__20dMsgObject_HowlHIO_cFv.s"
|
||||
}
|
||||
@@ -2242,7 +2173,8 @@ asm dMsgObject_HowlHIO_c::~dMsgObject_HowlHIO_c() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dMsgObject_HIO_c::~dMsgObject_HIO_c() {
|
||||
// asm dMsgObject_HIO_c::~dMsgObject_HIO_c() {
|
||||
extern "C" asm void __dt__16dMsgObject_HIO_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/__dt__16dMsgObject_HIO_cFv.s"
|
||||
}
|
||||
@@ -2314,7 +2246,8 @@ void dMsgScrnBase_c::dotAnimeInit() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void jmessage_tReference::setActorPos(cXyz param_0) {
|
||||
// asm void jmessage_tReference::setActorPos(cXyz param_0) {
|
||||
extern "C" asm void setActorPos__19jmessage_tReferenceF4cXyz() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/setActorPos__19jmessage_tReferenceF4cXyz.s"
|
||||
}
|
||||
|
||||
+504
-225
@@ -4,48 +4,10 @@
|
||||
//
|
||||
|
||||
#include "d/msg/d_msg_out_font.h"
|
||||
#include "d/msg/d_msg_object.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct ResTIMG {};
|
||||
|
||||
struct J2DTextBox {};
|
||||
|
||||
struct J2DRotateAxis {};
|
||||
|
||||
struct J2DPicture {
|
||||
/* 802FC708 */ J2DPicture(ResTIMG const*);
|
||||
};
|
||||
|
||||
struct J2DPane {
|
||||
/* 802F71DC */ void rotate(f32, f32, J2DRotateAxis, f32);
|
||||
/* 802F7AFC */ void getParentPane();
|
||||
};
|
||||
|
||||
struct COutFont_c {
|
||||
/* 80225C94 */ COutFont_c(u8);
|
||||
/* 80225D60 */ ~COutFont_c();
|
||||
/* 80225E7C */ void setPane(J2DPicture*);
|
||||
/* 80225EA8 */ void createPane();
|
||||
/* 80226CF8 */ void initialize();
|
||||
/* 80226D4C */ void drawFont(J2DTextBox*, u8, f32, f32, f32, f32, u32, u8);
|
||||
/* 80226DA8 */ void setAlphaRatio(f32);
|
||||
/* 80226DB0 */ void draw(J2DTextBox*, f32, f32, f32);
|
||||
/* 80228448 */ void reset(J2DTextBox*);
|
||||
/* 80228490 */ void setBlendAnime(J2DPicture*, s16);
|
||||
/* 80228530 */ void getBtiName(int);
|
||||
};
|
||||
|
||||
struct COutFontSet_c {
|
||||
/* 80225BB8 */ COutFontSet_c();
|
||||
/* 80225BF4 */ ~COutFontSet_c();
|
||||
/* 80225C3C */ void initialize();
|
||||
/* 80225C70 */ void drawFont(J2DTextBox*, u8, f32, f32, f32, f32, u32, u8);
|
||||
};
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
@@ -85,8 +47,7 @@ extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_24();
|
||||
extern "C" void _restgpr_26();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_MsgObject_HIO_c[1040];
|
||||
extern "C" extern dMsgObject_HIO_c g_MsgObject_HIO_c;
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
@@ -291,121 +252,13 @@ SECTION_DATA static void* lit_5000[65] = {
|
||||
(void*)(((char*)draw__10COutFont_cFP10J2DTextBoxfff) + 0x1248),
|
||||
};
|
||||
|
||||
/* 803BFCAC-803BFDC4 -00001 0118+00 1/1 0/0 0/0 .data mpIconName$5045 */
|
||||
SECTION_DATA static void* mpIconName[70] = {
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x4B),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x57),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x63),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x6F),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x7B),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x87),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x93),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x9F),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xAB),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xB7),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xC6),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xC6),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xC6),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xC6),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xB7),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xB7),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xB7),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xB7),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xB7),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xB7),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xD2),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xD2),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xD2),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xDE),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xD2),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xEA),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x10B),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x121),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x12D),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xC6),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x139),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x158),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x158),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x158),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x158),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x158),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x158),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x158),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x158),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x158),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x158),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x159),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x16D),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x179),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x185),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x191),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x19D),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0xF),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x19D),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x1A9),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x1B5),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x1C1),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x1CD),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x1D9),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x1E5),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x1F1),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x1FD),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x27),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x33),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x1F1),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x1FD),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x209),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x215),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x221),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x22D),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x239),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x245),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x251),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x25D),
|
||||
(void*)(((char*)&d_msg_d_msg_out_font__stringBase0) + 0x269),
|
||||
};
|
||||
|
||||
/* 803BFDC4-803BFDE8 01CEE4 0024+00 2/2 0/0 0/0 .data __vt__10COutFont_c */
|
||||
SECTION_DATA extern void* __vt__10COutFont_c[9] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__10COutFont_cFv,
|
||||
(void*)setPane__10COutFont_cFP10J2DPicture,
|
||||
(void*)createPane__10COutFont_cFv,
|
||||
(void*)draw__10COutFont_cFP10J2DTextBoxfff,
|
||||
(void*)reset__10COutFont_cFP10J2DTextBox,
|
||||
(void*)drawFont__10COutFont_cFP10J2DTextBoxUcffffUlUc,
|
||||
(void*)setAlphaRatio__10COutFont_cFf,
|
||||
};
|
||||
|
||||
/* 803BFDE8-803BFDF8 01CF08 000C+04 2/2 0/0 0/0 .data __vt__13COutFontSet_c */
|
||||
SECTION_DATA extern void* __vt__13COutFontSet_c[3 + 1 /* padding */] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__13COutFontSet_cFv,
|
||||
/* padding */
|
||||
NULL,
|
||||
};
|
||||
|
||||
/* 80225BB8-80225BF4 2204F8 003C+00 1/1 0/0 0/0 .text __ct__13COutFontSet_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm COutFontSet_c::COutFontSet_c() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_out_font/__ct__13COutFontSet_cFv.s"
|
||||
COutFontSet_c::COutFontSet_c() {
|
||||
initialize();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80225BF4-80225C3C 220534 0048+00 1/0 0/0 0/0 .text __dt__13COutFontSet_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm COutFontSet_c::~COutFontSet_c() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_out_font/__dt__13COutFontSet_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
COutFontSet_c::~COutFontSet_c() {}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80454A10-80454A14 003010 0004+00 4/4 0/0 0/0 .sdata2 @3748 */
|
||||
@@ -420,57 +273,85 @@ SECTION_SDATA2 static u8 lit_3748[4] = {
|
||||
SECTION_SDATA2 static f32 lit_3749 = 1.0f;
|
||||
|
||||
/* 80225C3C-80225C70 22057C 0034+00 2/2 0/0 0/0 .text initialize__13COutFontSet_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void COutFontSet_c::initialize() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_out_font/initialize__13COutFontSet_cFv.s"
|
||||
void COutFontSet_c::initialize() {
|
||||
mpTextBoxPtr = NULL;
|
||||
f32 tmp_0 = FLOAT_LABEL(lit_3748);
|
||||
mPosX = tmp_0;
|
||||
mPosY = tmp_0;
|
||||
f32 tmp_1 = lit_3749;
|
||||
mSizeX = tmp_1;
|
||||
mSizeY = tmp_1;
|
||||
mAlpha = 255;
|
||||
mType = 0x47;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80225C70-80225C94 2205B0 0024+00 1/1 0/0 0/0 .text
|
||||
* drawFont__13COutFontSet_cFP10J2DTextBoxUcffffUlUc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void COutFontSet_c::drawFont(J2DTextBox* param_0, u8 param_1, f32 param_2, f32 param_3,
|
||||
f32 param_4, f32 param_5, u32 param_6, u8 param_7) {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_out_font/drawFont__13COutFontSet_cFP10J2DTextBoxUcffffUlUc.s"
|
||||
void COutFontSet_c::drawFont(J2DTextBox* p_textBox, u8 type, f32 posX, f32 posY,
|
||||
f32 sizeX, f32 sizeY, u32 color, u8 alpha) {
|
||||
mpTextBoxPtr = p_textBox;
|
||||
mPosX = posX;
|
||||
mPosY = posY;
|
||||
mSizeX = sizeX;
|
||||
mSizeY = sizeY;
|
||||
mAlpha = alpha;
|
||||
mColor = color;
|
||||
mType = type;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80225C94-80225D60 2205D4 00CC+00 0/0 5/5 0/0 .text __ct__10COutFont_cFUc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm COutFont_c::COutFont_c(u8 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_out_font/__ct__10COutFont_cFUc.s"
|
||||
COutFont_c::COutFont_c(u8 param_0) {
|
||||
field_0x242 = param_0;
|
||||
|
||||
for (int i = 0; i < 35; i++) {
|
||||
mpOfs[i] = new COutFontSet_c();
|
||||
}
|
||||
|
||||
for (int i = 0; i < 70; i++) {
|
||||
mpPane[i] = NULL;
|
||||
field_0x1b4[i] = 0;
|
||||
}
|
||||
|
||||
mAlphaRatio = FLOAT_LABEL(lit_3748);
|
||||
f32 tmp_1 = lit_3749;
|
||||
field_0x1b0 = tmp_1;
|
||||
field_0x1ac = tmp_1;
|
||||
field_0x240 = 0;
|
||||
mRupeeColor = 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80225D60-80225E7C 2206A0 011C+00 1/0 0/0 0/0 .text __dt__10COutFont_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm COutFont_c::~COutFont_c() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_out_font/__dt__10COutFont_cFv.s"
|
||||
COutFont_c::~COutFont_c() {
|
||||
for (int i = 0; i < 35; i++) {
|
||||
delete mpOfs[i];
|
||||
mpOfs[i] = NULL;
|
||||
}
|
||||
|
||||
if (field_0x240) {
|
||||
field_0x240 = 0;
|
||||
|
||||
for (int i = 0; i < 70; i++) {
|
||||
if (mpPane[i] != NULL) {
|
||||
delete mpPane[i];
|
||||
mpPane[i] = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (dComIfGp_getExpHeap2D() == NULL) {
|
||||
dComIfGp_getItemIconArchive()->removeResourceAll();
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80225E7C-80225EA8 2207BC 002C+00 1/0 0/0 0/0 .text setPane__10COutFont_cFP10J2DPicture
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void COutFont_c::setPane(J2DPicture* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_out_font/setPane__10COutFont_cFP10J2DPicture.s"
|
||||
void COutFont_c::setPane(J2DPicture* p_pic) {
|
||||
for (int i = 0; i < 70; i++) {
|
||||
mpPane[i] = p_pic;
|
||||
p_pic++;
|
||||
}
|
||||
field_0x240 = false;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80454A18-80454A20 003018 0008+00 2/2 0/0 0/0 .sdata2 @4397 */
|
||||
@@ -487,36 +368,29 @@ asm void COutFont_c::createPane() {
|
||||
#pragma pop
|
||||
|
||||
/* 80226CF8-80226D4C 221638 0054+00 0/0 2/2 0/0 .text initialize__10COutFont_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void COutFont_c::initialize() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_out_font/initialize__10COutFont_cFv.s"
|
||||
void COutFont_c::initialize() {
|
||||
for (int i = 0; i < 35; i++) {
|
||||
mpOfs[i]->initialize();
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80226D4C-80226DA8 22168C 005C+00 1/0 0/0 0/0 .text
|
||||
* drawFont__10COutFont_cFP10J2DTextBoxUcffffUlUc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void COutFont_c::drawFont(J2DTextBox* param_0, u8 param_1, f32 param_2, f32 param_3,
|
||||
f32 param_4, f32 param_5, u32 param_6, u8 param_7) {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_out_font/drawFont__10COutFont_cFP10J2DTextBoxUcffffUlUc.s"
|
||||
void COutFont_c::drawFont(J2DTextBox* p_textBox, u8 type, f32 posX, f32 posY,
|
||||
f32 sizeX, f32 sizeY, u32 color, u8 alpha) {
|
||||
posY += lit_3749;
|
||||
for (int i = 0; i < 35; i++) {
|
||||
if (mpOfs[i]->getType() == 0x47) {
|
||||
mpOfs[i]->drawFont(p_textBox, type, posX, posY, sizeX, sizeY, color, alpha);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80226DA8-80226DB0 2216E8 0008+00 1/0 0/0 0/0 .text setAlphaRatio__10COutFont_cFf */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void COutFont_c::setAlphaRatio(f32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_out_font/setAlphaRatio__10COutFont_cFf.s"
|
||||
void COutFont_c::setAlphaRatio(f32 ratio) {
|
||||
mAlphaRatio = ratio;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80454A20-80454A24 003020 0004+00 1/1 0/0 0/0 .sdata2 @4986 */
|
||||
@@ -560,6 +434,336 @@ SECTION_SDATA2 static f64 lit_5001 = 4503601774854144.0 /* cast s32 to float */;
|
||||
|
||||
/* 80226DB0-80228448 2216F0 1698+00 2/0 0/0 0/0 .text draw__10COutFont_cFP10J2DTextBoxfff
|
||||
*/
|
||||
#ifdef NONMATCHING
|
||||
void COutFont_c::draw(J2DTextBox* p_textBox, f32 param_1, f32 param_2, f32 param_3) {
|
||||
s16 sp256[70];
|
||||
|
||||
for (int i = 0; i < 70; i++) {
|
||||
sp256[i] = field_0x1b4[i];
|
||||
}
|
||||
|
||||
for (int i = 0; i < 35; i++) {
|
||||
u8 type = mpOfs[i]->getType();
|
||||
J2DTextBox* tbox = mpOfs[i]->getTextBoxPtr();
|
||||
|
||||
if (p_textBox == tbox && type != 0x47) {
|
||||
f32 local_10c = 1.0f;
|
||||
f32 local_110 = 1.0f;
|
||||
|
||||
if (p_textBox != NULL) {
|
||||
for (J2DPane* pane = p_textBox; pane != NULL; pane = pane->getParentPane()) {
|
||||
local_10c *= pane->getScaleX();
|
||||
local_110 *= pane->getScaleY();
|
||||
}
|
||||
}
|
||||
|
||||
f32 posX = param_1 + param_3 * (local_10c * mpOfs[i]->getPosX());
|
||||
f32 posY = param_2 + (local_110 * mpOfs[i]->getPosY());
|
||||
f32 sizeX = local_10c * mpOfs[i]->getSizeX();
|
||||
f32 sizeY = local_110 * mpOfs[i]->getSizeY();
|
||||
|
||||
if (mpPane[type] != NULL) {
|
||||
mpPane[type]->setAlpha(mAlphaRatio * mpPane[i]->getAlpha());
|
||||
|
||||
switch (type) {
|
||||
case 10:
|
||||
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 255));
|
||||
mpPane[type]->draw(2.0f + posX, 2.0f + posY, sizeX, sizeY, false, false, true);
|
||||
|
||||
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), mpOfs[i]->getColor());
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, true);
|
||||
break;
|
||||
case 11:
|
||||
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 255));
|
||||
mpPane[type]->draw(2.0f + posX, 2.0f + posY, sizeX, sizeY, false, true, true);
|
||||
|
||||
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), mpOfs[i]->getColor());
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, true, true);
|
||||
break;
|
||||
case 29:
|
||||
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 255));
|
||||
mpPane[type]->draw(2.0f + posX, 2.0f + posY, sizeX, sizeY, false, true, true);
|
||||
|
||||
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(255, 80, 80, 255));
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, true, true);
|
||||
break;
|
||||
case 12:
|
||||
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 255));
|
||||
mpPane[type]->draw(2.0f + posX, 2.0f + posY, sizeX, sizeY, false, true, false);
|
||||
|
||||
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), mpOfs[i]->getColor());
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, true, false);
|
||||
break;
|
||||
case 5:
|
||||
case 6: {
|
||||
posY += 1.0f;
|
||||
sizeY -= 3.0f;
|
||||
JUtility::TColor black = mpPane[type]->getBlack();
|
||||
JUtility::TColor white = mpPane[type]->getWhite();
|
||||
|
||||
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 255));
|
||||
mpPane[type]->draw(2.0f + posX, 2.0f + posY, sizeX, sizeY, false, false, false);
|
||||
|
||||
mpPane[type]->setBlackWhite(black, white);
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
|
||||
break;
|
||||
}
|
||||
case 9:
|
||||
if (sp256[type] == field_0x1b4[type]) {
|
||||
field_0x1b4[type]++;
|
||||
|
||||
if (field_0x1b4[type] >= 80) {
|
||||
field_0x1b4[type] = 0;
|
||||
}
|
||||
setBlendAnime(mpPane[type], field_0x1b4[type]);
|
||||
}
|
||||
|
||||
if (field_0x1b4[type] < 20) {
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, true);
|
||||
} else if (field_0x1b4[type] < 40) {
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
|
||||
} else if (field_0x1b4[type] < 60) {
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, true, true, true);
|
||||
} else {
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, true, true, false);
|
||||
}
|
||||
break;
|
||||
case 14:
|
||||
if (sp256[type] == field_0x1b4[type]) {
|
||||
field_0x1b4[type]++;
|
||||
|
||||
if (field_0x1b4[type] >= 20) {
|
||||
field_0x1b4[type] = 0;
|
||||
}
|
||||
setBlendAnime(mpPane[type], field_0x1b4[type]);
|
||||
}
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, true);
|
||||
break;
|
||||
case 15:
|
||||
if (sp256[type] == field_0x1b4[type]) {
|
||||
field_0x1b4[type]++;
|
||||
|
||||
if (field_0x1b4[type] >= 20) {
|
||||
field_0x1b4[type] = 0;
|
||||
}
|
||||
setBlendAnime(mpPane[type], field_0x1b4[type]);
|
||||
}
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, true, true, true);
|
||||
break;
|
||||
case 16:
|
||||
if (sp256[type] == field_0x1b4[type]) {
|
||||
field_0x1b4[type]++;
|
||||
|
||||
if (field_0x1b4[type] >= 20) {
|
||||
field_0x1b4[type] = 0;
|
||||
}
|
||||
setBlendAnime(mpPane[type], field_0x1b4[type]);
|
||||
}
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
|
||||
break;
|
||||
case 17:
|
||||
if (sp256[type] == field_0x1b4[type]) {
|
||||
field_0x1b4[type]++;
|
||||
|
||||
if (field_0x1b4[type] >= 20) {
|
||||
field_0x1b4[type] = 0;
|
||||
}
|
||||
setBlendAnime(mpPane[type], field_0x1b4[type]);
|
||||
}
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, true, true, false);
|
||||
break;
|
||||
case 18:
|
||||
if (sp256[type] == field_0x1b4[type]) {
|
||||
field_0x1b4[type]++;
|
||||
|
||||
if (field_0x1b4[type] >= 40) {
|
||||
field_0x1b4[type] = 0;
|
||||
}
|
||||
setBlendAnime(mpPane[type], field_0x1b4[type]);
|
||||
}
|
||||
|
||||
if (field_0x1b4[type] < 20) {
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, true);
|
||||
} else {
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, true, true, true);
|
||||
}
|
||||
break;
|
||||
case 19:
|
||||
if (sp256[type] == field_0x1b4[type]) {
|
||||
field_0x1b4[type]++;
|
||||
|
||||
if (field_0x1b4[type] >= 40) {
|
||||
field_0x1b4[type] = 0;
|
||||
}
|
||||
setBlendAnime(mpPane[type], field_0x1b4[type]);
|
||||
}
|
||||
|
||||
if (field_0x1b4[type] < 20) {
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
|
||||
} else {
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, true, true, false);
|
||||
}
|
||||
break;
|
||||
case 13:
|
||||
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 255));
|
||||
mpPane[type]->draw(2.0f + posX, 2.0f + posY, sizeX, sizeY, false, false, false);
|
||||
|
||||
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), mpOfs[i]->getColor());
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
|
||||
break;
|
||||
case 24:
|
||||
case 27:
|
||||
case 28:
|
||||
case 43:
|
||||
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), mpOfs[i]->getColor());
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
|
||||
break;
|
||||
case 42:
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
|
||||
break;
|
||||
case 20:
|
||||
case 21:
|
||||
case 22:
|
||||
field_0x1b4[type]++;
|
||||
if (field_0x1b4[type] >= 28) {
|
||||
field_0x1b4[type] = 0;
|
||||
}
|
||||
|
||||
mpPane[type]->rotate(0.5f * posX, 0.5f * posY, ROTATE_Z, (360.0f * (f32)field_0x1b4[type]) / 28.0f);
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
|
||||
break;
|
||||
case 25: // some issues in here, 2020
|
||||
if (sp256[type] == field_0x1b4[type]) {
|
||||
field_0x1b4[type]++;
|
||||
|
||||
if (field_0x1b4[type] >= 18) {
|
||||
field_0x1b4[type] -= 18;
|
||||
}
|
||||
}
|
||||
|
||||
f32 alpha;
|
||||
if (field_0x1b4[type] < 9) {
|
||||
alpha = field_0x1b4[type];
|
||||
} else {
|
||||
alpha = 18.0f - field_0x1b4[type];
|
||||
}
|
||||
|
||||
mpPane[26]->setAlpha(((alpha / 9.0f) * 205.0f + 50.0f) * mAlphaRatio);
|
||||
f32 tmpX = 0.5f * (g_MsgObject_HIO_c.mPortalIconScale - 1.0f) * sizeX;
|
||||
f32 tmpY = 0.5f * (g_MsgObject_HIO_c.mPortalIconScale - 1.0f) * sizeY;
|
||||
mpPane[26]->draw(posX - tmpX, posY - tmpY, g_MsgObject_HIO_c.mPortalIconScale * sizeX, g_MsgObject_HIO_c.mPortalIconScale * sizeY, false, false, false);
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
|
||||
break;
|
||||
case 26:
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
|
||||
break;
|
||||
case 30:
|
||||
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(255, 255, 255, 255));
|
||||
mpPane[type]->draw(posX + (0.5f * (sizeX * (field_0x1ac - 1.0f))), posY + (0.5f * (sizeY * (field_0x1b0 - 1.0f))), sizeX * field_0x1ac, sizeY * field_0x1b0, false, false, false);
|
||||
break;
|
||||
case 31:
|
||||
case 32:
|
||||
case 33:
|
||||
case 34:
|
||||
case 35:
|
||||
case 36:
|
||||
case 37:
|
||||
case 38:
|
||||
case 39:
|
||||
case 40:
|
||||
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), mpOfs[i]->getColor());
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
|
||||
break;
|
||||
case 41:
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
|
||||
break;
|
||||
case 44:
|
||||
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 255));
|
||||
mpPane[type]->draw(2.0f + posX, 2.0f + ((posY + -3.0f) - 4.0f), sizeX, sizeY * 1.25f, false, false, false);
|
||||
|
||||
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), mpOfs[i]->getColor());
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
|
||||
break;
|
||||
case 45:
|
||||
mpPane[type]->draw(posX, (posY + -3.0f) - 4.0f, sizeX, sizeY * 1.25f, false, false, false);
|
||||
break;
|
||||
case 46:
|
||||
case 47:
|
||||
case 55:
|
||||
case 56:
|
||||
case 57:
|
||||
case 58:
|
||||
case 61:
|
||||
case 69:
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
|
||||
break;
|
||||
case 49:
|
||||
case 50:
|
||||
case 65:
|
||||
case 66:
|
||||
case 67:
|
||||
case 68:
|
||||
if (sp256[type] == field_0x1b4[type]) {
|
||||
field_0x1b4[type]++;
|
||||
|
||||
if (field_0x1b4[type] >= 40) {
|
||||
field_0x1b4[type] = 0;
|
||||
}
|
||||
setBlendAnime(mpPane[type], field_0x1b4[type]);
|
||||
}
|
||||
|
||||
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 255));
|
||||
mpPane[type]->draw(2.0f + posX, 2.0f + posY, sizeX, sizeY, false, false, false);
|
||||
|
||||
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(255, 255, 255, 255));
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
|
||||
break;
|
||||
case 48:
|
||||
case 59:
|
||||
case 60:
|
||||
if (sp256[type] == field_0x1b4[type]) {
|
||||
field_0x1b4[type]++;
|
||||
|
||||
if (field_0x1b4[type] >= 40) {
|
||||
field_0x1b4[type] = 0;
|
||||
}
|
||||
setBlendAnime(mpPane[type], field_0x1b4[type]);
|
||||
}
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
|
||||
break;
|
||||
case 62:
|
||||
if (sp256[type] == field_0x1b4[type]) {
|
||||
field_0x1b4[type]++;
|
||||
|
||||
if (field_0x1b4[type] >= 10) {
|
||||
field_0x1b4[type] = 0;
|
||||
}
|
||||
|
||||
if (field_0x1b4[type] < 5) {
|
||||
mpPane[type]->setBlendRatio(1.0f, 0.0f);
|
||||
} else {
|
||||
mpPane[type]->setBlendRatio(0.0f, 1.0f);
|
||||
}
|
||||
}
|
||||
|
||||
mpPane[type]->draw(posX, -3.0f + posY, sizeX, 1.25f * sizeY, false, false, false);
|
||||
break;
|
||||
default:
|
||||
JUtility::TColor black = mpPane[type]->getBlack();
|
||||
JUtility::TColor white = mpPane[type]->getWhite();
|
||||
|
||||
mpPane[type]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 255));
|
||||
mpPane[type]->draw(2.0f + posX, 2.0f + posY, sizeX, sizeY, false, false, false);
|
||||
|
||||
mpPane[type]->setBlackWhite(black, white);
|
||||
mpPane[type]->draw(posX, posY, sizeX, sizeY, false, false, false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -568,17 +772,20 @@ asm void COutFont_c::draw(J2DTextBox* param_0, f32 param_1, f32 param_2, f32 par
|
||||
#include "asm/d/msg/d_msg_out_font/draw__10COutFont_cFP10J2DTextBoxfff.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80228448-80228490 222D88 0048+00 1/0 0/0 0/0 .text reset__10COutFont_cFP10J2DTextBox
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void COutFont_c::reset(J2DTextBox* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_out_font/reset__10COutFont_cFP10J2DTextBox.s"
|
||||
void COutFont_c::reset(J2DTextBox* p_textBox) {
|
||||
if (p_textBox != NULL) {
|
||||
for (int i = 0; i < 35; i++) {
|
||||
if (p_textBox == mpOfs[i]->getTextBoxPtr()) {
|
||||
mpOfs[i]->setTextBoxPtr(NULL);
|
||||
mpOfs[i]->resetType();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80228490-80228530 222DD0 00A0+00 1/1 0/0 0/0 .text setBlendAnime__10COutFont_cFP10J2DPictures
|
||||
*/
|
||||
@@ -592,13 +799,85 @@ asm void COutFont_c::setBlendAnime(J2DPicture* param_0, s16 param_1) {
|
||||
#pragma pop
|
||||
|
||||
/* 80228530-80228578 222E70 0048+00 1/1 0/0 0/0 .text getBtiName__10COutFont_cFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void COutFont_c::getBtiName(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_out_font/getBtiName__10COutFont_cFi.s"
|
||||
const char* COutFont_c::getBtiName(int nameIdx) {
|
||||
static char* mpIconName[70] = {
|
||||
"font_00.bti",
|
||||
"font_01.bti",
|
||||
"font_09.bti",
|
||||
"font_04.bti",
|
||||
"font_05.bti",
|
||||
"font_02.bti",
|
||||
"font_03.bti",
|
||||
"font_06.bti",
|
||||
"font_08.bti",
|
||||
"font_07_01.bti",
|
||||
"font_10.bti",
|
||||
"font_10.bti",
|
||||
"font_10.bti",
|
||||
"font_10.bti",
|
||||
"font_07_01.bti",
|
||||
"font_07_01.bti",
|
||||
"font_07_01.bti",
|
||||
"font_07_01.bti",
|
||||
"font_07_01.bti",
|
||||
"font_07_01.bti",
|
||||
"font_15.bti",
|
||||
"font_15.bti",
|
||||
"font_15.bti",
|
||||
"font_12.bti",
|
||||
"font_15.bti",
|
||||
"im_map_icon_portal_4ia_40_05.bti",
|
||||
"font_16_backlight.bti",
|
||||
"font_13.bti",
|
||||
"font_14.bti",
|
||||
"font_10.bti",
|
||||
"im_zelda_item_icon_rupy_13.bti",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"st_bompoach_lv1.bti",
|
||||
"font_46.bti",
|
||||
"font_47.bti",
|
||||
"font_35.bti",
|
||||
"font_36.bti",
|
||||
"font_19.bti",
|
||||
"font_20.bti",
|
||||
"font_19.bti",
|
||||
"font_22.bti",
|
||||
"font_23.bti",
|
||||
"font_24.bti",
|
||||
"font_25.bti",
|
||||
"font_40.bti",
|
||||
"font_39.bti",
|
||||
"font_29.bti",
|
||||
"font_28.bti",
|
||||
"font_30.bti",
|
||||
"font_31.bti",
|
||||
"font_29.bti",
|
||||
"font_28.bti",
|
||||
"font_32.bti",
|
||||
"font_33.bti",
|
||||
"font_41.bti",
|
||||
"font_42.bti",
|
||||
"font_50.bti",
|
||||
"font_49.bti",
|
||||
"font_51.bti",
|
||||
"font_52.bti",
|
||||
"font_53.bti",
|
||||
};
|
||||
|
||||
if (nameIdx >= 31 && nameIdx <= 40) {
|
||||
return dMeter2Info_getNumberTextureName(nameIdx - 31);
|
||||
}
|
||||
|
||||
return mpIconName[nameIdx];
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80399350-80399350 0259B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
@@ -7,41 +7,6 @@
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct J2DTextBox {};
|
||||
|
||||
struct JUTFont {};
|
||||
|
||||
struct COutFont_c {
|
||||
/* 80225C94 */ COutFont_c(u8);
|
||||
};
|
||||
|
||||
struct dMsgString_c {
|
||||
/* 80191B6C */ void getString(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, u8);
|
||||
/* 801E1D10 */ void getStringPage(u32, u8, u8, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*,
|
||||
u8);
|
||||
/* 80249C20 */ dMsgString_c();
|
||||
/* 80249CA0 */ dMsgString_c(u8);
|
||||
/* 80249D28 */ ~dMsgString_c();
|
||||
/* 80249DB4 */ void resetStringLocal(J2DTextBox*);
|
||||
/* 80249DE4 */ void drawOutFontLocal(J2DTextBox*, f32);
|
||||
/* 80249ED0 */ void drawFontLocal(J2DTextBox*, u8, f32, f32, f32, f32, u32, u8);
|
||||
};
|
||||
|
||||
struct dMsgStringBase_c {
|
||||
/* 802493B4 */ dMsgStringBase_c();
|
||||
/* 80249528 */ ~dMsgStringBase_c();
|
||||
/* 80249700 */ void getResource();
|
||||
/* 80249BF8 */ void getMessage(u32, char*);
|
||||
};
|
||||
|
||||
struct J2DPane {
|
||||
/* 802F79A8 */ void getGlbVtx(u8) const;
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
@@ -16,10 +16,6 @@ struct jmessage_string_tControl {
|
||||
/* 8022FB5C */ jmessage_string_tControl();
|
||||
};
|
||||
|
||||
struct J2DTextBox {};
|
||||
|
||||
struct JUTFont {};
|
||||
|
||||
struct COutFont_c {};
|
||||
|
||||
struct jmessage_string_tReference {
|
||||
@@ -37,49 +33,6 @@ struct jmessage_string_tRenderingProcessor {
|
||||
/* 80230BC8 */ jmessage_string_tRenderingProcessor(jmessage_string_tReference const*);
|
||||
};
|
||||
|
||||
struct dMsgStringBase_c {
|
||||
/* 802493B4 */ dMsgStringBase_c();
|
||||
/* 80249528 */ ~dMsgStringBase_c();
|
||||
/* 80249700 */ void getResource();
|
||||
/* 80249768 */ void getStringLocal(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, u8);
|
||||
/* 802498D8 */ void getStringPageLocal(u32, u8, u8, J2DTextBox*, J2DTextBox*, JUTFont*,
|
||||
COutFont_c*, u8);
|
||||
/* 80249A48 */ void getPageMax(int);
|
||||
/* 80249A70 */ void getMessageLocal(u32, char*);
|
||||
/* 80249BAC */ void drawFontLocal(J2DTextBox*, u8, f32, f32, f32, f32, u32, u8);
|
||||
/* 80249BB0 */ void getString(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, u8);
|
||||
/* 80249BD0 */ void getStringPage(u32, u8, u8, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*,
|
||||
u8);
|
||||
/* 80249BF8 */ void getMessage(u32, char*);
|
||||
/* 80249C18 */ void resetStringLocal(J2DTextBox*);
|
||||
/* 80249C1C */ void drawOutFontLocal(J2DTextBox*, f32);
|
||||
};
|
||||
|
||||
struct JMessage {
|
||||
struct TControl {
|
||||
/* 802A75D4 */ void reset();
|
||||
/* 802A7634 */ void update();
|
||||
/* 802A76BC */ void render();
|
||||
/* 802A78F4 */ void setMessageID(u32, u32, bool*);
|
||||
};
|
||||
|
||||
struct TResourceContainer {
|
||||
struct TCResource {
|
||||
/* 802A8EF8 */ ~TCResource();
|
||||
};
|
||||
|
||||
/* 802A906C */ TResourceContainer();
|
||||
};
|
||||
|
||||
struct TParse {
|
||||
/* 802A9130 */ TParse(JMessage::TResourceContainer*);
|
||||
};
|
||||
};
|
||||
|
||||
struct JKRArchive {
|
||||
/* 802D5B38 */ void getGlbResource(u32, char const*, JKRArchive*);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -135,9 +88,6 @@ extern "C" void _restgpr_23();
|
||||
extern "C" void _restgpr_25();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" void strcpy();
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_meter2_info[248];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
|
||||
@@ -150,16 +150,6 @@ struct dPa_fsenthPcallBack {
|
||||
/* 8004FE6C */ ~dPa_fsenthPcallBack();
|
||||
};
|
||||
|
||||
struct dPa_followEcallBack {
|
||||
/* 80049580 */ dPa_followEcallBack(u8, u8);
|
||||
/* 800495BC */ void execute(JPABaseEmitter*);
|
||||
/* 800496B0 */ void draw(JPABaseEmitter*);
|
||||
/* 800496B4 */ void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
|
||||
/* 8004974C */ void end();
|
||||
/* 80050200 */ ~dPa_followEcallBack();
|
||||
/* 80050284 */ void cleanup();
|
||||
};
|
||||
|
||||
struct cBgS_PolyInfo {};
|
||||
|
||||
struct dJntCol_c {
|
||||
@@ -1498,7 +1488,7 @@ asm void dPa_control_c::level_c::allForceOnEventMove() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dPa_control_c::level_c::emitter_c* dPa_control_c::level_c::getEmitter(u32 param_0) {
|
||||
asm JPABaseEmitter* dPa_control_c::level_c::getEmitter(u32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/particle/d_particle/getEmitter__Q213dPa_control_c7level_cFUl.s"
|
||||
}
|
||||
@@ -2472,7 +2462,8 @@ asm void dPa_light8EcallBack::drawAfter(JPABaseEmitter* param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dPa_followEcallBack::~dPa_followEcallBack() {
|
||||
// asm dPa_followEcallBack::~dPa_followEcallBack() {
|
||||
extern "C" asm void __dt__19dPa_followEcallBackFv() {
|
||||
nofralloc
|
||||
#include "asm/d/particle/d_particle/__dt__19dPa_followEcallBackFv.s"
|
||||
}
|
||||
|
||||
+110
-27
@@ -14,32 +14,21 @@
|
||||
#include "f_op/f_op_overlap_mng.h"
|
||||
#include "f_op/f_op_scene_mng.h"
|
||||
#include "m_Do/m_Do_audio.h"
|
||||
#include "d/d_demo.h"
|
||||
#include "d/d_model.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "f_op/f_op_msg_mng.h"
|
||||
#include "d/save/d_save_HIO.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct daYkgr_c {
|
||||
static u8 m_emitter[4];
|
||||
};
|
||||
|
||||
struct daSus_c {
|
||||
/* 800313BC */ void reset();
|
||||
/* 800315A4 */ static void execute();
|
||||
};
|
||||
|
||||
struct dMdl_mng_c {
|
||||
/* 8009C7AC */ void create();
|
||||
/* 8009C864 */ void remove();
|
||||
/* 8009C8C0 */ static void reset();
|
||||
};
|
||||
|
||||
struct dDemo_c {
|
||||
/* 80039678 */ void create();
|
||||
/* 80039910 */ void remove();
|
||||
/* 80039DA4 */ static void update();
|
||||
};
|
||||
|
||||
struct cDylPhs {
|
||||
/* 8001884C */ void Link(request_of_phase_process_class*, s16);
|
||||
/* 80018890 */ void Unlink(request_of_phase_process_class*, s16);
|
||||
@@ -202,7 +191,7 @@ extern "C" u8 mGndCheck__11fopAcM_gc_c[84];
|
||||
extern "C" u8 mRoofCheck__11fopAcM_rc_c[80];
|
||||
extern "C" u8 mWaterCheck__11fopAcM_wt_c[84 + 4 /* padding */];
|
||||
extern "C" extern dScnKy_env_light_c g_env_light;
|
||||
extern "C" extern u8 g_save_bit_HIO[1184 + 4 /* padding */];
|
||||
extern "C" extern dSvBit_HIO_c g_save_bit_HIO;
|
||||
extern "C" extern GXColor g_saftyWhiteColor;
|
||||
extern "C" u8 mFader__13mDoGph_gInf_c[4];
|
||||
extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */];
|
||||
@@ -236,6 +225,7 @@ static u8 dylPreLoadTime1[4];
|
||||
static u8 data_8045110C[4];
|
||||
|
||||
/* 80451110-80451114 000610 0004+00 1/1 0/0 0/0 .sbss resPreLoadTime0 */
|
||||
//static OSTime resPreLoadTime0;
|
||||
static u8 resPreLoadTime0[4];
|
||||
|
||||
/* 80451114-80451118 000614 0004+00 1/1 0/0 0/0 .sbss None */
|
||||
@@ -433,7 +423,7 @@ static int dScnPly_Draw(dScnPly_c* scn) {
|
||||
dMdl_mng_c::reset();
|
||||
|
||||
if (!dComIfGp_isPauseFlag() && struct_80451124 == 0) {
|
||||
if (fpcM_GetName(scn) == 0xB) {
|
||||
if (fpcM_GetName(scn) == PROC_PLAY_SCENE) {
|
||||
dComIfGp_getVibration().Run();
|
||||
}
|
||||
daSus_c::execute();
|
||||
@@ -537,12 +527,12 @@ SECTION_DEAD static char const* const stringBase_8039A2DF = "T_JOINT";
|
||||
SECTION_SDATA static char* T_JOINT_resName = "Always";
|
||||
|
||||
/* 80450764-80450768 -00001 0004+00 4/4 0/0 0/0 .sdata None */
|
||||
SECTION_SDATA static u8 struct_80450764[2] = {
|
||||
/* 80450764 0001+00 data_80450764 None */
|
||||
0xFF,
|
||||
/* 80450765 0003+00 data_80450765 None */
|
||||
0x01,
|
||||
};
|
||||
SECTION_SDATA static s8 struct_80450764 = 0xFF;
|
||||
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_SDATA static u8 data_80450765 = 1;
|
||||
#pragma pop
|
||||
|
||||
/* 802598AC-80259AC4 2541EC 0218+00 1/0 0/0 0/0 .text dScnPly_Delete__FP9dScnPly_c */
|
||||
#pragma push
|
||||
@@ -556,7 +546,7 @@ static asm void dScnPly_Delete(dScnPly_c* param_0) {
|
||||
|
||||
/* 80259AC4-80259BFC 254404 0138+00 1/1 0/0 0/0 .text resetGame__9dScnPly_cFv */
|
||||
bool dScnPly_c::resetGame() {
|
||||
if (fpcM_GetName(this) == 0xC) {
|
||||
if (fpcM_GetName(this) == PROC_OPENING_SCENE) {
|
||||
if (!dStage_roomControl_c::resetArchiveBank(0)) {
|
||||
return false;
|
||||
}
|
||||
@@ -847,8 +837,8 @@ static u8 lit_4050[12];
|
||||
#pragma pop
|
||||
|
||||
/* 8043079C-804307E0 05D4BC 0044+00 1/2 3/3 0/0 .bss g_envHIO */
|
||||
extern u8 g_envHIO[68];
|
||||
u8 g_envHIO[68];
|
||||
extern s8 g_envHIO[68];
|
||||
s8 g_envHIO[68];
|
||||
|
||||
/* 80454F30-80454F34 003530 0004+00 1/1 0/0 0/0 .sdata2 @4804 */
|
||||
SECTION_SDATA2 static f32 lit_4804 = 608.0f;
|
||||
@@ -863,7 +853,99 @@ SECTION_SDATA2 static f32 lit_4806[1 + 1 /* padding */] = {
|
||||
0.0f,
|
||||
};
|
||||
|
||||
class daYkgr_c {
|
||||
public:
|
||||
static void init() {
|
||||
m_emitter = 0;
|
||||
*struct_80450D8C = 0;
|
||||
*(struct_80450D8C + 1) = 1;
|
||||
*(struct_80450D8C + 2) = 0xFF;
|
||||
}
|
||||
|
||||
static u32 m_emitter;
|
||||
};
|
||||
|
||||
/* 8025A654-8025A9F4 254F94 03A0+00 1/0 0/0 0/0 .text phase_4__FP9dScnPly_c */
|
||||
#ifdef NONMATCHING
|
||||
static int phase_4(dScnPly_c* i_this) {
|
||||
if (i_this->sceneCommand) {
|
||||
dComIfGp_particle_createScene(i_this->sceneCommand->getMemAddress());
|
||||
i_this->sceneCommand->destroy();
|
||||
} else {
|
||||
dComIfGp_particle_createScene(NULL);
|
||||
}
|
||||
|
||||
if (i_this->field_0x1d0 != NULL) {
|
||||
dComIfGp_setMsgDtArchive(1, i_this->field_0x1d0->getArchive());
|
||||
i_this->field_0x1d0->destroy();
|
||||
}
|
||||
|
||||
dComIfGp_calcNowRegion();
|
||||
dComIfG_Bgsp().Ct();
|
||||
fopAcM_lc_c::getLineCheck()->ClearPi();
|
||||
fopAcM_gc_c::getGroundCheck()->ClearPi();
|
||||
fopAcM_rc_c::getRoofCheck()->ClearPi();
|
||||
fopAcM_wt_c::getWaterCheck()->ClearPi();
|
||||
dComIfG_Ccsp()->Ct();
|
||||
dDemo_c::create();
|
||||
|
||||
dComIfGp_setPlayerInfo(0, NULL, 0);
|
||||
for (int i = 0; i < 2; i++) {
|
||||
dComIfGp_setPlayerPtr(i, NULL);
|
||||
}
|
||||
|
||||
dComIfGp_setWindow(0, 0.0f, 0.0f, 608.0f, 448.0f, 0.0f, 1.0f, 0, 2);
|
||||
dComIfGp_setCameraInfo(0, NULL, 0, 0, -1);
|
||||
dComIfGd_setWindow(NULL);
|
||||
dComIfGd_setViewport(NULL);
|
||||
dComIfGd_setView(NULL);
|
||||
|
||||
dComIfGp_setExpHeap2D(fopMsgM_createExpHeap(0xBB800, NULL));
|
||||
dComIfGp_setMsgExpHeap(fopMsgM_createExpHeap(0xA800, NULL));
|
||||
|
||||
if (fpcM_GetName(i_this) == PROC_OPENING_SCENE) {
|
||||
fopAcM_create(PROC_TITLE, 0, NULL, -1, NULL, NULL, -1);
|
||||
dComIfGs_init();
|
||||
dComIfGs_setOptPointer(0);
|
||||
dComIfGs_setLife(12);
|
||||
dMeter2Info_setCloth(WEAR_KOKIRI, false);
|
||||
dMeter2Info_setSword(SWORD, false);
|
||||
dMeter2Info_setShield(HYLIA_SHIELD, false);
|
||||
dComIfGs_onEventBit(0x0601); // Epona Tamed
|
||||
}
|
||||
|
||||
dMpath_c::create();
|
||||
dTres_c::create();
|
||||
dStage_Create();
|
||||
dComIfGp_createSimpleModel();
|
||||
dMdl_mng_c::create();
|
||||
|
||||
mDoGph_gInf_c::setTickRate((OS_BUS_CLOCK / 4) / 30);
|
||||
g_envHIO[4] = -1;
|
||||
g_save_bit_HIO.field_0x4 = -1;
|
||||
new (&dComIfGp_getAttention()) dAttention_c((fopAc_ac_c*)dComIfGp_getPlayer(0), 0);
|
||||
dComIfGp_getVibration().Init();
|
||||
daYkgr_c::init();
|
||||
|
||||
dComIfG_setBrightness(255);
|
||||
mDoGph_gInf_c::offFade();
|
||||
mDoAud_zelAudio_c::onBgmSet();
|
||||
struct_80451124 = 0;
|
||||
data_80451125 = 0;
|
||||
struct_80450764 = -1;
|
||||
|
||||
if (data_80450765 != 0 && !strcmp(dComIfGp_getStartStageName(), (char*)PreLoadInfoT[0])) {
|
||||
struct_80450764 = 0;
|
||||
}
|
||||
|
||||
if (struct_80450764 < 0) {
|
||||
return 4;
|
||||
}
|
||||
|
||||
resPreLoadTime0 = OSGetTime();
|
||||
return 2;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -872,6 +954,7 @@ static asm void phase_4(dScnPly_c* param_0) {
|
||||
#include "asm/d/s/d_s_play/phase_4__FP9dScnPly_c.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8025A9F4-8025AAC0 255334 00CC+00 1/0 0/0 0/0 .text phase_5__FP9dScnPly_c */
|
||||
#pragma push
|
||||
|
||||
+178
-91
@@ -4,10 +4,16 @@
|
||||
//
|
||||
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "f_op/f_op_actor_tag.h"
|
||||
#include "d/d_stage.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/mtx/mtx.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/com/d_com_static.h"
|
||||
#include "d/com/d_com_inf_actor.h"
|
||||
#include "d/s/d_s_play.h"
|
||||
#include "d/d_demo.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
@@ -20,40 +26,6 @@ struct fopEn_enemy_c {
|
||||
/* 800196A0 */ void drawBallModel(dKy_tevstr_c*);
|
||||
};
|
||||
|
||||
struct daSus_c {
|
||||
/* 800314D4 */ void check(fopAc_ac_c*);
|
||||
};
|
||||
|
||||
struct dRes_info_c {};
|
||||
|
||||
struct dRes_control_c {
|
||||
/* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
|
||||
};
|
||||
|
||||
struct dPa_levelEcallBack {};
|
||||
|
||||
struct dPa_control_c {
|
||||
/* 8004D4CC */ void set(u32, u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*,
|
||||
cXyz const*, u8, dPa_levelEcallBack*, s8, _GXColor const*,
|
||||
_GXColor const*, cXyz const*, f32);
|
||||
};
|
||||
|
||||
struct dEvt_control_c {
|
||||
/* 80042FA8 */ void moveApproval(void*);
|
||||
};
|
||||
|
||||
struct dDemo_object_c {
|
||||
/* 80039088 */ void getActor(u8);
|
||||
};
|
||||
|
||||
struct dDemo_c {
|
||||
static u8 m_object[4];
|
||||
};
|
||||
|
||||
struct dDemo_actor_c {
|
||||
/* 8003815C */ void setActor(fopAc_ac_c*);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -125,25 +97,15 @@ extern "C" void entryTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey();
|
||||
extern "C" void __construct_array();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" f32 Zero__4cXyz[3];
|
||||
extern "C" extern u8 g_dComIfAc_gameInfo[8];
|
||||
extern "C" u8 m_object__7dDemo_c[4];
|
||||
extern "C" extern u8 struct_80451124[4];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 80018B64-80018BD0 0134A4 006C+00 0/0 7/7 562/562 .text __ct__10fopAc_ac_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm fopAc_ac_c::fopAc_ac_c() {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_actor/__ct__10fopAc_ac_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
fopAc_ac_c::fopAc_ac_c() {}
|
||||
|
||||
/* 80018BD0-80018C0C 013510 003C+00 0/0 12/12 0/0 .text __dt__5csXyzFv */
|
||||
#pragma push
|
||||
@@ -193,78 +155,117 @@ SECTION_DATA extern void* __vt__11dEvt_info_c[3 + 1 /* padding */] = {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dEvt_info_c::~dEvt_info_c() {
|
||||
// asm dEvt_info_c::~dEvt_info_c() {
|
||||
extern "C" asm void __dt__11dEvt_info_cFv() {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_actor/__dt__11dEvt_info_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
|
||||
/* 80018C8C-80018CE0 0135CC 0054+00 0/0 5/5 270/270 .text __dt__10fopAc_ac_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm fopAc_ac_c::~fopAc_ac_c() {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_actor/__dt__10fopAc_ac_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
fopAc_ac_c::~fopAc_ac_c() {}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450CB8-80450CBC 0001B8 0004+00 2/2 0/0 0/0 .sbss g_fopAc_type */
|
||||
static u8 g_fopAc_type[4];
|
||||
static int g_fopAc_type;
|
||||
|
||||
/* 80018CE0-80018D0C 013620 002C+00 0/0 12/12 391/391 .text fopAc_IsActor__FPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 fopAc_IsActor(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_actor/fopAc_IsActor__FPv.s"
|
||||
s32 fopAc_IsActor(void* actor) {
|
||||
return fpcM_IsJustType(g_fopAc_type, ((fopAc_ac_c*)actor)->mAcType);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450CBC-80450CC0 0001BC 0004+00 2/2 1/1 0/0 .sbss stopStatus__10fopAc_ac_c */
|
||||
u32 fopAc_ac_c::stopStatus;
|
||||
|
||||
/* 80018D0C-80018DD8 01364C 00CC+00 1/0 0/0 0/0 .text fopAc_Draw__FPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fopAc_Draw(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_actor/fopAc_Draw__FPv.s"
|
||||
static int fopAc_Draw(void* actor) {
|
||||
fopAc_ac_c* ac = (fopAc_ac_c*)actor;
|
||||
|
||||
int ret = 1;
|
||||
if (!dComIfGp_isPauseFlag()) {
|
||||
if ((dComIfGp_event_moveApproval(ac) == 2 || (!fopAcM_checkStatus(ac, fopAc_ac_c::stopStatus) && (!fopAcM_checkStatus(ac, 0x100) || !fopAcM_cullingCheck(ac)))) && !fopAcM_checkStatus(ac, 0x21000000)) {
|
||||
fopAcM_OffCondition(ac, 4);
|
||||
ret = fpcLf_DrawMethod((leafdraw_method_class*)ac->mSubMtd, ac);
|
||||
} else {
|
||||
fopAcM_OnCondition(ac, 4);
|
||||
}
|
||||
|
||||
fopAcM_OffStatus(ac, 0x1000000);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451BC8-80451BCC 0001C8 0004+00 1/1 0/0 0/0 .sdata2 @4324 */
|
||||
SECTION_SDATA2 static f32 lit_4324 = 5000.0f;
|
||||
|
||||
/* 80451BCC-80451BD0 0001CC 0004+00 1/1 0/0 0/0 .sdata2 @4325 */
|
||||
SECTION_SDATA2 static f32 lit_4325 = -9.999999848243207e+30f;
|
||||
|
||||
/* 80018DD8-80018F78 013718 01A0+00 1/0 0/0 0/0 .text fopAc_Execute__FPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fopAc_Execute(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_actor/fopAc_Execute__FPv.s"
|
||||
static int fopAc_Execute(void* actor) {
|
||||
fopAc_ac_c* ac = (fopAc_ac_c*)actor;
|
||||
|
||||
int ret = 1;
|
||||
if (!dComIfGp_isPauseFlag() && dScnPly_c::isPause()) {
|
||||
if (!dComIfA_PauseCheck()) {
|
||||
daSus_c::check(ac);
|
||||
ac->mEvtInfo.beforeProc();
|
||||
s32 move = dComIfGp_event_moveApproval(actor);
|
||||
fopAcM_OffStatus(ac, 0x40000000);
|
||||
|
||||
if (!fopAcM_checkStatus(ac, 0x20000000) && (move == 2 || (move != 0 && !fopAcM_checkStatus(ac, fopAc_ac_c::stopStatus) && (!fopAcM_checkStatus(ac, 0x80) || !fopAcM_CheckCondition(ac, 4))))) {
|
||||
fopAcM_OffCondition(ac, 2);
|
||||
ac->mNext = ac->mCurrent;
|
||||
ret = fpcMtd_Execute((process_method_class*)ac->mSubMtd, ac);
|
||||
} else {
|
||||
ac->mEvtInfo.suspendProc(ac);
|
||||
fopAcM_OnCondition(ac, 2);
|
||||
}
|
||||
|
||||
if (fopAcM_checkStatus(ac, 0x20) && ac->mOrig.mPosition.y - ac->mCurrent.mPosition.y > 5000.0f) {
|
||||
fopAcM_delete(ac);
|
||||
}
|
||||
|
||||
if (ac->mCurrent.mPosition.y < -9.999999848243207e+30f) {
|
||||
ac->mCurrent.mPosition.y = -9.999999848243207e+30f;
|
||||
}
|
||||
|
||||
dKy_depth_dist_set(ac);
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80018F78-80018FCC 0138B8 0054+00 1/0 0/0 0/0 .text fopAc_IsDelete__FPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fopAc_IsDelete(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_actor/fopAc_IsDelete__FPv.s"
|
||||
static int fopAc_IsDelete(void* actor) {
|
||||
fopAc_ac_c* ac = (fopAc_ac_c*)actor;
|
||||
|
||||
int isDelete = fpcMtd_IsDelete((process_method_class*)ac->mSubMtd, ac);
|
||||
if (isDelete == true) {
|
||||
fopDwTg_DrawQTo(&ac->mDwTg);
|
||||
}
|
||||
|
||||
return isDelete;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80018FCC-8001904C 01390C 0080+00 1/0 0/0 0/0 .text fopAc_Delete__FPv */
|
||||
#ifdef NONMATCHING
|
||||
static int fopAc_Delete(void* actor) {
|
||||
fopAc_ac_c* ac = (fopAc_ac_c*)actor;
|
||||
|
||||
int deleted = fpcMtd_Delete((process_method_class*)ac->mSubMtd, ac);
|
||||
if (deleted == true) {
|
||||
fopAcTg_ActorQTo(&ac->mAcTg);
|
||||
fopDwTg_DrawQTo(&ac->mDwTg);
|
||||
fopAcM_DeleteHeap(ac);
|
||||
|
||||
dDemo_actor_c* demoAc = dDemo_c::getActor(ac->mDemoActorId);
|
||||
if (demoAc != NULL) {
|
||||
demoAc->setActor(NULL);
|
||||
}
|
||||
}
|
||||
|
||||
return deleted;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -273,6 +274,7 @@ static asm void fopAc_Delete(void* param_0) {
|
||||
#include "asm/f_op/f_op_actor/fopAc_Delete__FPv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451BD0-80451BD4 0001D0 0004+00 2/2 0/0 0/0 .sdata2 @4431 */
|
||||
@@ -285,14 +287,99 @@ SECTION_SDATA2 static f32 lit_4432 = -100.0f;
|
||||
SECTION_SDATA2 static f64 lit_4434 = 4503599627370496.0 /* cast u32 to float */;
|
||||
|
||||
/* 8001904C-800193FC 01398C 03B0+00 1/0 0/0 0/0 .text fopAc_Create__FPv */
|
||||
// swapped registers
|
||||
#ifdef NONMATCHING
|
||||
static int fopAc_Create(void* actor) {
|
||||
fopAc_ac_c* ac = (fopAc_ac_c*)actor;
|
||||
|
||||
if (fpcM_IsFirstCreating(actor)) {
|
||||
leaf_process_profile_definition* profile = fpcM_GetProfile(actor);
|
||||
ac->mAcType = fpcBs_MakeOfType(&g_fopAc_type);
|
||||
ac->mSubMtd = (profile_method_class*)profile->mBase.mMethods;
|
||||
|
||||
fopAcTg_Init(&ac->mAcTg, ac);
|
||||
fopAcTg_ToActorQ(&ac->mAcTg);
|
||||
fopDwTg_Init(&ac->mDwTg, ac);
|
||||
|
||||
ac->mStatus = profile->field_0x28;
|
||||
ac->mGroup = profile->field_0x2c;
|
||||
ac->mCullType = profile->field_0x2d;
|
||||
|
||||
fopAcM_prm_class* append = fopAcM_GetAppend(ac);
|
||||
if (append != NULL) {
|
||||
fopAcM_SetParam(ac, append->mParameter);
|
||||
ac->mOrig.mPosition = append->mPos;
|
||||
ac->mOrig.mAngle = append->mAngle;
|
||||
ac->mCollisionRot = append->mAngle;
|
||||
ac->mParentPcId = append->mParentPId;
|
||||
ac->mSubtype = append->mSubtype;
|
||||
ac->mScale.set(append->mScale[0] * 0.1f, append->mScale[1] * 0.1f, append->mScale[2] * 0.1f);
|
||||
ac->mSetID = append->mEnemyNo;
|
||||
ac->mOrig.mRoomNo = append->mRoomNo;
|
||||
}
|
||||
|
||||
ac->mNext = ac->mOrig;
|
||||
ac->mCurrent = ac->mOrig;
|
||||
ac->mEyePos = ac->mOrig.mPosition;
|
||||
ac->mMaxFallSpeed = -100.0f;
|
||||
ac->mAttentionInfo.field_0x0[0] = 1;
|
||||
ac->mAttentionInfo.field_0x0[1] = 2;
|
||||
ac->mAttentionInfo.field_0x0[2] = 3;
|
||||
ac->mAttentionInfo.field_0x0[3] = 5;
|
||||
ac->mAttentionInfo.field_0x4[0] = 6;
|
||||
ac->mAttentionInfo.field_0x4[3] = 14;
|
||||
ac->mAttentionInfo.field_0x4[1] = 15;
|
||||
ac->mAttentionInfo.field_0x4[2] = 15;
|
||||
ac->mAttentionInfo.field_0x8[0] = 51;
|
||||
ac->mAttentionInfo.mPosition = ac->mOrig.mPosition;
|
||||
ac->mAttentionInfo.field_0xa = 30;
|
||||
dKy_tevstr_init(&ac->mTevStr, ac->mOrig.mRoomNo, -1);
|
||||
|
||||
int roomNo = dComIfGp_roomControl_getStayNo();
|
||||
if (roomNo >= 0) {
|
||||
dComIfGp_roomControl_getStatusRoomDt(roomNo)->mRoomDt.getFileListInfo();
|
||||
}
|
||||
|
||||
dStage_FileList_dt_c* filelist = NULL;
|
||||
if (ac->mOrig.mRoomNo >= 0) {
|
||||
filelist = dComIfGp_roomControl_getStatusRoomDt(ac->mOrig.mRoomNo)->mRoomDt.getFileListInfo();
|
||||
}
|
||||
|
||||
if (filelist != NULL) {
|
||||
if (!dStage_FileList_dt_GetEnemyAppear1Flag(filelist)) {
|
||||
u32 sw = dStage_FileList_dt_GetBitSw(filelist);
|
||||
if (sw != 0xFF && dComIfGs_isSwitch(sw, ac->mOrig.mRoomNo) && profile->field_0x2c == 2) {
|
||||
return 5;
|
||||
}
|
||||
} else {
|
||||
u32 sw = dStage_FileList_dt_GetBitSw(filelist);
|
||||
if (sw != 0xFF && !dComIfGs_isSwitch(sw, ac->mOrig.mRoomNo) && profile->field_0x2c == 2) {
|
||||
return 5;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int ret = fpcMtd_Create((process_method_class*)ac->mSubMtd, ac);
|
||||
if (ret == 4) {
|
||||
s16 priority = fpcLf_GetPriority(ac);
|
||||
fopDwTg_ToDrawQ(&ac->mDwTg, priority);
|
||||
} else if (ret == 5) {
|
||||
fopAcM_OnCondition(ac, 0x10);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fopAc_Create(void* param_0) {
|
||||
static asm int fopAc_Create(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_actor/fopAc_Create__FPv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 800193FC-80019404 013D3C 0008+00 0/0 1/0 0/0 .text getFileListInfo__15dStage_roomDt_cCFv */
|
||||
#pragma push
|
||||
|
||||
+1036
-695
File diff suppressed because it is too large
Load Diff
@@ -91,7 +91,7 @@ msg_class* fopMsgM_SearchByID(unsigned int id) {
|
||||
/* 8001FA44-8001FA4C 01A384 0008+00 0/0 2/2 0/0 .text fopMsgM_GetAppend__FPv */
|
||||
fopMsg_prm_class* fopMsgM_GetAppend(void* msg) {
|
||||
msg_class* m = static_cast<msg_class*>(msg);
|
||||
return (fopMsg_prm_class*)m->field_0x0.mpUserData;
|
||||
return (fopMsg_prm_class*)m->mBase.mpUserData;
|
||||
}
|
||||
|
||||
/* 8001FA4C-8001FA6C 01A38C 0020+00 0/0 2/2 0/0 .text fopMsgM_Delete__FPv */
|
||||
|
||||
@@ -55,9 +55,9 @@ int g_fpcLf_type;
|
||||
|
||||
/* 80021B14-80021B88 0074+00 s=1 e=0 z=0 None .text fpcLf_Create__FP14leafdraw_class */
|
||||
s32 fpcLf_Create(leafdraw_class* pLeaf) {
|
||||
leaf_process_profile_definition* profDef;
|
||||
process_profile_definition* profDef;
|
||||
if (pLeaf->mBase.mInitState == 0) {
|
||||
profDef = (leaf_process_profile_definition*)pLeaf->mBase.mpProf;
|
||||
profDef = (process_profile_definition*)pLeaf->mBase.mpProf;
|
||||
pLeaf->mpDrawMtd = profDef->mLfDrwMth;
|
||||
pLeaf->mBase.mSubType = fpcBs_MakeOfType(&g_fpcLf_type);
|
||||
fpcDwPi_Init(&pLeaf->mDwPi, profDef->mPriority);
|
||||
|
||||
@@ -92,6 +92,7 @@ s32 fpcNd_Delete(process_node_class* pProcNode) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* 80022728-800227C4 009C+00 s=1 e=0 z=0 None .text fpcNd_Create__FP18process_node_class */
|
||||
s32 fpcNd_Create(process_node_class* pProcNode1) {
|
||||
// this cast looks like a fake match, but it doesn't match without the cast, naive approach
|
||||
@@ -103,7 +104,7 @@ s32 fpcNd_Create(process_node_class* pProcNode1) {
|
||||
node_process_profile_definition* pProcProfileDef =
|
||||
(node_process_profile_definition*)pProcNode->mBase.mpProf;
|
||||
pProcNode->mBase.mSubType = fpcBs_MakeOfType(&g_fpcNd_type);
|
||||
pProcNode->mpNodeMtd = pProcProfileDef->mNDrwMthCls;
|
||||
pProcNode->mpNodeMtd = (nodedraw_method_class*)pProcProfileDef->mBase.mLfDrwMth;
|
||||
fpcLy_Create(&pProcNode->mLayer, pProcNode, pProcNode->mLayerNodeLists, 0x10);
|
||||
pProcNode->mUnk0 = 0;
|
||||
}
|
||||
|
||||
@@ -3,15 +3,16 @@
|
||||
// Translation Unit: f_pc/f_pc_profile
|
||||
//
|
||||
|
||||
|
||||
#include "f_pc/f_pc_profile.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450D50-80450D58 0004+04 s=1 e=0 z=2 None .sbss g_fpcPf_ProfileList_p */
|
||||
leaf_process_profile_definition** g_fpcPf_ProfileList_p;
|
||||
process_profile_definition** g_fpcPf_ProfileList_p;
|
||||
|
||||
/* 80023564-80023578 0014+00 s=0 e=1 z=0 None .text fpcPf_Get__Fs */
|
||||
leaf_process_profile_definition* fpcPf_Get(s16 profileID) {
|
||||
process_profile_definition* fpcPf_Get(s16 profileID) {
|
||||
return g_fpcPf_ProfileList_p[profileID];
|
||||
}
|
||||
|
||||
@@ -397,7 +397,6 @@ extern "C" void entryTexMtxAnimator__16J3DMaterialTableFP19J3DAnmTextureSRTKey()
|
||||
extern "C" void entryTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey();
|
||||
extern "C" void JMAEulerToQuat__FsssP10Quaternion();
|
||||
extern "C" void JMAQuatLerp__FPC10QuaternionPC10QuaternionfP10Quaternion();
|
||||
extern "C" void DCStoreRangeNoSync();
|
||||
extern "C" void GXClearVtxDesc();
|
||||
extern "C" void GXGetTexObjWidth();
|
||||
extern "C" void GXGetTexObjHeight();
|
||||
@@ -3095,7 +3094,7 @@ static asm void mDoExt_initFont1() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoExt_getRubyFont() {
|
||||
asm JUTFont* mDoExt_getRubyFont() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_ext/mDoExt_getRubyFont__Fv.s"
|
||||
}
|
||||
|
||||
+458
-202
@@ -5,46 +5,22 @@
|
||||
|
||||
#include "m_Do/m_Do_machine.h"
|
||||
#include "JSystem/JFramework/JFWSystem.h"
|
||||
#include "JSystem/JKernel/JKRAram.h"
|
||||
#include "JSystem/JKernel/JKRAramStream.h"
|
||||
#include "JSystem/JKernel/JKRDvdAramRipper.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "JSystem/JUtility/JUTDbPrint.h"
|
||||
#include "JSystem/JUtility/JUTException.h"
|
||||
#include "SSystem/SComponent/c_API_controller_pad.h"
|
||||
#include "SSystem/SComponent/c_malloc.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct mDoMemCd_Ctrl_c {
|
||||
/* 80016730 */ void ThdInit();
|
||||
};
|
||||
|
||||
struct mDoDvdThd {
|
||||
/* 80015858 */ void create(s32);
|
||||
};
|
||||
|
||||
struct cMl {
|
||||
/* 80263220 */ void init(JKRHeap*);
|
||||
};
|
||||
|
||||
struct JUTAssertion {
|
||||
/* 802E4C34 */ static void setVisible(bool);
|
||||
};
|
||||
|
||||
struct JKRDvdRipper {
|
||||
static u32 sSZSBufferSize;
|
||||
};
|
||||
|
||||
struct JKRDvdAramRipper {
|
||||
static u32 sSZSBufferSize;
|
||||
};
|
||||
|
||||
struct JKRAramStream {
|
||||
/* 802D4034 */ void setTransBuffer(u8*, u32, JKRHeap*);
|
||||
};
|
||||
|
||||
struct JKRAram {
|
||||
static u32 sSZSBufferSize[1 + 1 /* padding */];
|
||||
};
|
||||
#include "m_Do/m_Do_DVDError.h"
|
||||
#include "m_Do/m_Do_MemCard.h"
|
||||
#include "m_Do/m_Do_dvd_thread.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "m_Do/m_Do_machine_exception.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
@@ -124,11 +100,10 @@ extern "C" void drawDirect__17JUTConsoleManagerCFb();
|
||||
extern "C" void setDirectConsole__17JUTConsoleManagerFP10JUTConsole();
|
||||
extern "C" void PPCHalt();
|
||||
extern "C" u32 OSGetProgressiveMode();
|
||||
extern "C" void OSSetProgressiveMode();
|
||||
extern "C" void VIGetDTVStatus();
|
||||
extern "C" void OSSetProgressiveMode(u32);
|
||||
extern "C" u32 VIGetDTVStatus();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" extern u8 g_mDoMemCd_control[8192];
|
||||
extern "C" extern s8 data_80450580;
|
||||
extern "C" u32 memMargin__7mDoMain;
|
||||
extern "C" u32 maxStdHeaps__Q29JFWSystem11CSetUpParam;
|
||||
@@ -137,16 +112,11 @@ extern "C" u32 fifoBufSize__Q29JFWSystem11CSetUpParam;
|
||||
extern "C" u32 aramAudioBufSize__Q29JFWSystem11CSetUpParam;
|
||||
extern "C" u32 aramGraphBufSize__Q29JFWSystem11CSetUpParam;
|
||||
extern "C" void* renderMode__Q29JFWSystem11CSetUpParam;
|
||||
extern "C" extern u8 data_804508B0[8];
|
||||
extern "C" u32 sSZSBufferSize__7JKRAram[1 + 1 /* padding */];
|
||||
extern "C" u32 sSZSBufferSize__12JKRDvdRipper;
|
||||
extern "C" u32 sSZSBufferSize__16JKRDvdAramRipper;
|
||||
extern "C" u8 sHungUpTime__7mDoMain[4];
|
||||
extern "C" extern u8 data_80450B14[4];
|
||||
extern "C" extern u8 gameHeap[4];
|
||||
extern "C" extern u8 zeldaHeap[4];
|
||||
extern "C" extern u8 commandHeap[4];
|
||||
extern "C" extern u8 archiveHeap[4];
|
||||
extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */];
|
||||
extern "C" u8 systemHeap__9JFWSystem[4];
|
||||
extern "C" u8 systemConsole__9JFWSystem[4];
|
||||
@@ -162,147 +132,193 @@ extern "C" u8 sManager__17JUTConsoleManager[4];
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80373DE8-80373DE8 000448 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80373DE8 = "SystemHeap";
|
||||
SECTION_DEAD static char const* const stringBase_80373DF3 = "ZeldaHeap";
|
||||
SECTION_DEAD static char const* const stringBase_80373DFD = "GameHeap";
|
||||
SECTION_DEAD static char const* const stringBase_80373E06 = "ArchiveHeap";
|
||||
SECTION_DEAD static char const* const stringBase_80373E12 = "CommandHeap";
|
||||
SECTION_DEAD static char const* const stringBase_80373E1E = "DbPrintHeap";
|
||||
SECTION_DEAD static char const* const stringBase_80373E2A = "J2dHeap";
|
||||
SECTION_DEAD static char const* const stringBase_80373E32 = "ASTH";
|
||||
SECTION_DEAD static char const* const stringBase_80373E37 = "EXPH";
|
||||
SECTION_DEAD static char const* const stringBase_80373E3C = "SLID";
|
||||
SECTION_DEAD static char const* const stringBase_80373E41 = "STDH";
|
||||
SECTION_DEAD static char const* const stringBase_80373E46 = "UNIT";
|
||||
SECTION_DEAD static char const* const stringBase_80373E4B = "(Null)";
|
||||
#pragma pop
|
||||
|
||||
/* 80450BF0-80450BF4 0000F0 0004+00 1/1 0/0 0/0 .sbss None */
|
||||
static u8 data_80450BF0[4];
|
||||
static u8 data_80450BF0;
|
||||
|
||||
/* 80450BF4-80450BF8 0000F4 0004+00 1/1 0/0 0/0 .sbss solidHeapErrors */
|
||||
static u8 solidHeapErrors[4];
|
||||
static int solidHeapErrors;
|
||||
|
||||
/* 80450BF8-80450BFC 0000F8 0004+00 1/1 0/0 0/0 .sbss gameHeapErrors */
|
||||
static u8 gameHeapErrors[4];
|
||||
static int gameHeapErrors;
|
||||
|
||||
/* 80450BFC-80450C00 0000FC 0004+00 1/1 0/0 0/0 .sbss zeldaHeapErrors */
|
||||
static u8 zeldaHeapErrors[4];
|
||||
static int zeldaHeapErrors;
|
||||
|
||||
/* 80450C00-80450C04 000100 0004+00 1/1 0/0 0/0 .sbss commandHeapErrors */
|
||||
static u8 commandHeapErrors[4];
|
||||
static int commandHeapErrors;
|
||||
|
||||
/* 80450C04-80450C08 000104 0004+00 1/1 0/0 0/0 .sbss archiveHeapErrors */
|
||||
static u8 archiveHeapErrors[4];
|
||||
static int archiveHeapErrors;
|
||||
|
||||
/* 80450C08-80450C0C 000108 0004+00 1/1 0/0 0/0 .sbss unknownHeapErrors */
|
||||
static u8 unknownHeapErrors[4];
|
||||
static int unknownHeapErrors;
|
||||
|
||||
/* 80450C0C-80450C10 00010C 0004+00 1/1 0/0 0/0 .sbss heapErrors */
|
||||
static u8 heapErrors[4];
|
||||
|
||||
/* 80450C10-80450C18 -00001 0008+00 2/2 0/0 0/0 .sbss None */
|
||||
/* 80450C10 0005+00 data_80450C10 tmpString$3651 */
|
||||
/* 80450C15 0001+00 data_80450C15 None */
|
||||
/* 80450C16 0001+00 data_80450C16 None */
|
||||
/* 80450C17 0001+00 data_80450C17 None */
|
||||
static u8 struct_80450C10[8];
|
||||
static u32 heapErrors;
|
||||
|
||||
/* 8000B1EC-8000B3EC 005B2C 0200+00 2/2 0/0 0/0 .text myGetHeapTypeByString__FP7JKRHeap
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm char* myGetHeapTypeByString(JKRHeap* param_0) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_machine/myGetHeapTypeByString__FP7JKRHeap.s"
|
||||
}
|
||||
#pragma pop
|
||||
static char* myGetHeapTypeByString(JKRHeap* p_heap) {
|
||||
static char tmpString[5];
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80373DE8-80373DE8 000448 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80373E52 =
|
||||
"エラー: メモリを確保できません %d(0x%x)バイト、 %d バイトアライメント from "
|
||||
"%08x\n";
|
||||
SECTION_DEAD static char const* const stringBase_80373EA3 =
|
||||
"FreeSize=%08x TotalFreeSize=%08x HeapType=%08x(%"
|
||||
"c%c%c%c) HeapSize=%08x %s\n";
|
||||
#pragma pop
|
||||
if (p_heap == JKRHeap::getSystemHeap()) {
|
||||
return "SystemHeap";
|
||||
}
|
||||
|
||||
if (p_heap == mDoExt_getZeldaHeap()) {
|
||||
return "ZeldaHeap";
|
||||
}
|
||||
|
||||
if (p_heap == mDoExt_getGameHeap()) {
|
||||
return "GameHeap";
|
||||
}
|
||||
|
||||
if (p_heap == mDoExt_getArchiveHeap()) {
|
||||
return "ArchiveHeap";
|
||||
}
|
||||
|
||||
if (p_heap == mDoExt_getCommandHeap()) {
|
||||
return "CommandHeap";
|
||||
}
|
||||
|
||||
if (p_heap == mDoExt_getDbPrintHeap()) {
|
||||
return "DbPrintHeap";
|
||||
}
|
||||
|
||||
if (p_heap == mDoExt_getJ2dHeap()) {
|
||||
return "J2dHeap";
|
||||
}
|
||||
|
||||
u32 heapType = p_heap->getHeapType();
|
||||
switch (heapType) {
|
||||
case 'ASTH':
|
||||
return "ASTH";
|
||||
case 'EXPH':
|
||||
return "EXPH";
|
||||
case 'SLID':
|
||||
return "SLID";
|
||||
case 'STDH':
|
||||
return "STDH";
|
||||
case 'UNIT':
|
||||
return "UNIT";
|
||||
case 0:
|
||||
return "(Null)";
|
||||
default:
|
||||
u32 tmpType = heapType;
|
||||
char* typeStr = (char*)&tmpType;
|
||||
|
||||
tmpString[0] = typeStr[0];
|
||||
tmpString[1] = typeStr[1];
|
||||
tmpString[2] = typeStr[2];
|
||||
tmpString[3] = typeStr[3];
|
||||
tmpString[4] = 0;
|
||||
return tmpString;
|
||||
}
|
||||
}
|
||||
|
||||
/* 8000B3EC-8000B5C8 005D2C 01DC+00 1/1 0/0 0/0 .text myMemoryErrorRoutine__FPvUli */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void myMemoryErrorRoutine(void* param_0, u32 param_1, int param_2) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_machine/myMemoryErrorRoutine__FPvUli.s"
|
||||
}
|
||||
#pragma pop
|
||||
static void myMemoryErrorRoutine(void* p_heap, u32 size, int alignment) {
|
||||
JKRHeap* heap = (JKRHeap*)p_heap;
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80373DE8-80373DE8 000448 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80373EEE = "error in %08x(%s)\n";
|
||||
#pragma pop
|
||||
BOOL notSolidHeap = true;
|
||||
if (heap->getHeapType() == 'SLID') {
|
||||
notSolidHeap = false;
|
||||
}
|
||||
|
||||
if (notSolidHeap) {
|
||||
// "Error: Can't allocate memory %d(0x%x)Bytes, %d Byte Alignment from %08x\n"
|
||||
OSReport_Error(
|
||||
"エラー: メモリを確保できません %d(0x%x)バイト、 %d バイトアライメント from %08x\n",
|
||||
size, size, alignment, p_heap);
|
||||
}
|
||||
|
||||
u32 heapType = heap->getHeapType();
|
||||
u8* tmpString = (u8*)&heapType;
|
||||
if (notSolidHeap) {
|
||||
OSReport_Error(
|
||||
"FreeSize=%08x TotalFreeSize=%08x HeapType=%08x(%c%c%c%c) HeapSize=%08x %s\n",
|
||||
heap->getFreeSize(), heap->getTotalFreeSize(), heapType, tmpString[0], tmpString[1],
|
||||
tmpString[2], tmpString[3], heap->getHeapSize(), myGetHeapTypeByString(heap));
|
||||
}
|
||||
|
||||
if (heapErrors == 0) {
|
||||
heap->dump_sort();
|
||||
}
|
||||
heapErrors++;
|
||||
|
||||
if (p_heap == zeldaHeap) {
|
||||
zeldaHeapErrors++;
|
||||
} else if (p_heap == gameHeap) {
|
||||
gameHeapErrors++;
|
||||
} else if (p_heap == commandHeap) {
|
||||
commandHeapErrors++;
|
||||
} else if (p_heap == archiveHeap) {
|
||||
archiveHeapErrors++;
|
||||
} else if (heap->getHeapType() == 'SLID') {
|
||||
solidHeapErrors++;
|
||||
} else {
|
||||
unknownHeapErrors++;
|
||||
}
|
||||
}
|
||||
|
||||
/* 8000B5C8-8000B668 005F08 00A0+00 1/1 0/0 0/0 .text myHeapCheckRecursive__FP7JKRHeap */
|
||||
#ifdef NONMATCHING
|
||||
void myHeapCheckRecursive(JKRHeap* param_0) {
|
||||
if (!param_0->check()) {
|
||||
char* type = myGetHeapTypeByString(param_0);
|
||||
OSReport_Error("error in %08x(%s)\n", param_0, type);
|
||||
void myHeapCheckRecursive(JKRHeap* p_heap) {
|
||||
if (!p_heap->check()) {
|
||||
char* type = myGetHeapTypeByString(p_heap);
|
||||
OSReport_Error("error in %08x(%s)\n", p_heap, type);
|
||||
}
|
||||
|
||||
JSUTree<JKRHeap> heapTree = param_0->getHeapTree();
|
||||
for (heapTree.getFirstChild(); heapTree.getNextChild() != NULL; heapTree--) {
|
||||
/* if (heapTree->getNextChild() == NULL) {
|
||||
heapTree--;
|
||||
} */
|
||||
JKRHeap* heap = (JKRHeap*)heapTree.getObject();
|
||||
myHeapCheckRecursive(heap);
|
||||
JSUTree<JKRHeap>* heapTree = &p_heap->getHeapTree();
|
||||
for (JSUTree<JKRHeap>* i = heapTree->getFirstChild(); i != NULL; i = i->getNextChild()) {
|
||||
myHeapCheckRecursive(i->getObject());
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void myHeapCheckRecursive(JKRHeap* param_0) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_machine/myHeapCheckRecursive__FP7JKRHeap.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8000B668-8000B68C 005FA8 0024+00 0/0 2/2 0/0 .text mDoMch_HeapCheckAll__Fv */
|
||||
void mDoMch_HeapCheckAll() {
|
||||
myHeapCheckRecursive(JKRHeap::sRootHeap);
|
||||
}
|
||||
|
||||
static u8 debug_key0;
|
||||
static u8 debug_key1;
|
||||
static u8 debug_key2;
|
||||
|
||||
/* 8000B68C-8000B73C 005FCC 00B0+00 1/1 0/0 0/0 .text developKeyCheck__FUlUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void developKeyCheck(u32 param_0, u32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_machine/developKeyCheck__FUlUl.s"
|
||||
static int developKeyCheck(u32 btnTrig, u32 btnHold) {
|
||||
if (btnHold == (CButton::L | CButton::R | CButton::Z | CButton::DPAD_DOWN) &&
|
||||
btnTrig == CButton::DPAD_DOWN) {
|
||||
if (debug_key0 == 3 && debug_key1 == 6 && debug_key2 == 5) {
|
||||
data_80450580 = 1;
|
||||
} else {
|
||||
debug_key0 = 0;
|
||||
debug_key1 = 0;
|
||||
debug_key2 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (btnHold == (CButton::L | CButton::DPAD_RIGHT) && btnTrig == CButton::L) {
|
||||
debug_key0++;
|
||||
}
|
||||
|
||||
if (btnHold == (CButton::R | CButton::DPAD_UP) && btnTrig == CButton::R) {
|
||||
debug_key1++;
|
||||
}
|
||||
|
||||
if (btnHold == (CButton::Z | CButton::DPAD_LEFT) && btnTrig == CButton::Z) {
|
||||
debug_key2++;
|
||||
}
|
||||
|
||||
return data_80450580;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8000B73C-8000B768 00607C 002C+00 1/1 0/0 0/0 .text mDoMch_IsProgressiveMode__Fv */
|
||||
u8 mDoMch_IsProgressiveMode() {
|
||||
BOOL mDoMch_IsProgressiveMode() {
|
||||
return OSGetProgressiveMode() == true;
|
||||
}
|
||||
|
||||
/* 8000B768-8000B798 0060A8 0030+00 2/2 0/0 0/0 .text exceptionReadPad__FPUlPUl */
|
||||
bool exceptionReadPad(u32* param_0, u32* param_1) {
|
||||
return JUTException::getManager()->readPad(param_0, param_1);
|
||||
bool exceptionReadPad(u32* p_btnTrig, u32* p_btnHold) {
|
||||
return JUTException::getManager()->readPad(p_btnTrig, p_btnHold);
|
||||
}
|
||||
|
||||
/* 8000B798-8000B7C8 0060D8 0030+00 1/1 0/0 0/0 .text exceptionRestart__Fv */
|
||||
@@ -314,13 +330,13 @@ void exceptionRestart() {
|
||||
}
|
||||
|
||||
/* 8000B7C8-8000B95C 006108 0194+00 1/1 0/0 0/0 .text myExceptionCallback__FUsP9OSContextUlUl */
|
||||
void myExceptionCallback(u16 param_0, OSContext* param_1, u32 param_2, u32 param_3) {
|
||||
u32 tmp1;
|
||||
u32 tmp2;
|
||||
void myExceptionCallback(u16, OSContext*, u32, u32) {
|
||||
u32 btnHold;
|
||||
u32 btnTrig;
|
||||
|
||||
mDoMain::sHungUpTime = OSGetTime();
|
||||
OSReportEnable();
|
||||
cAPICPad_recalibrate__Fv();
|
||||
cAPICPad_recalibrate();
|
||||
// "Vibration stopping & resetting to default\n"
|
||||
OSReport("振動停止&原点復帰\n");
|
||||
|
||||
@@ -341,8 +357,8 @@ void myExceptionCallback(u16 param_0, OSContext* param_1, u32 param_2, u32 param
|
||||
// "Accepting Key input\n"
|
||||
OSReport("キー入力を受け付けています\n");
|
||||
while (data_80450580 == 0) {
|
||||
exceptionReadPad(&tmp2, &tmp1);
|
||||
developKeyCheck(tmp2, tmp1);
|
||||
exceptionReadPad(&btnTrig, &btnHold);
|
||||
developKeyCheck(btnTrig, btnHold);
|
||||
JUTException::waitTime(30);
|
||||
if (struct_80451501) {
|
||||
exceptionRestart();
|
||||
@@ -365,7 +381,7 @@ void myExceptionCallback(u16 param_0, OSContext* param_1, u32 param_2, u32 param
|
||||
}
|
||||
DVDChangeDir("/map/Final/Release");
|
||||
JUTVideo::destroyManager();
|
||||
GXSetDrawDoneCallback(0);
|
||||
GXSetDrawDoneCallback(NULL);
|
||||
VISetBlack(0);
|
||||
VIFlush();
|
||||
}
|
||||
@@ -388,6 +404,143 @@ SECTION_SDATA2 static f32 lit_3940 = 8.0f;
|
||||
SECTION_SDATA2 static f32 lit_3941 = 6.0f;
|
||||
|
||||
/* 8000B95C-8000BCF4 00629C 0398+00 1/1 0/0 0/0 .text fault_callback_scroll__FUsP9OSContextUlUl */
|
||||
#ifdef NONMATCHING
|
||||
static void fault_callback_scroll(u16, OSContext* p_context, u32, u32) {
|
||||
JUTException* manager = JUTException::getManager();
|
||||
JUTConsole* exConsole = manager->getConsole();
|
||||
|
||||
u32 srr0 = p_context->srr0 & -4;
|
||||
if (srr0 >= 0x8000000C && srr0 < 0x82FFFFFF) {
|
||||
exConsole->print_f("(SRR0-3):%08X %08X %08X %08X\n", *(u32*)(srr0 - 0xC),
|
||||
*(u32*)(srr0 - 0x8), *(u32*)(srr0 - 0x4), *(u32*)srr0);
|
||||
}
|
||||
|
||||
JUTGamePad pad(JUTGamePad::Port_1);
|
||||
manager->setGamePad(&pad);
|
||||
|
||||
BOOL padDisabled = manager->isEnablePad() == false;
|
||||
if (!padDisabled) {
|
||||
exConsole->print("PUSH START BUTTON TO ADDITIONAL INFOMATION\n");
|
||||
exConsole->print("--------------------------------------\n");
|
||||
JUTConsoleManager::getManager()->drawDirect(true);
|
||||
OSEnableInterrupts();
|
||||
int holdUpCount = 0;
|
||||
int holdDownCount = 0;
|
||||
|
||||
while (true) {
|
||||
u32 btnHold, btnTrig;
|
||||
exceptionReadPad(&btnTrig, &btnHold);
|
||||
|
||||
if (struct_80451501) {
|
||||
OSResetSystem(1, 0, 0);
|
||||
}
|
||||
|
||||
bool waitRetrace = false;
|
||||
if (btnTrig == CButton::START) {
|
||||
exception_addition(exConsole);
|
||||
waitRetrace = true;
|
||||
}
|
||||
|
||||
if (btnTrig == CButton::Z) {
|
||||
JUTConsole* sysConsole = JFWSystem::getSystemConsole();
|
||||
if (JUTConsoleManager::getManager()->getDirectConsole() != sysConsole) {
|
||||
exConsole = sysConsole;
|
||||
exConsole->setFontSize(8.0f, 6.0f);
|
||||
exConsole->setPosition(8, 32);
|
||||
exConsole->setHeight(23);
|
||||
exConsole->setVisible(true);
|
||||
exConsole->setOutput(JUTConsole::OUTPUT_CONSOLE | JUTConsole::OUTPUT_OSREPORT);
|
||||
} else {
|
||||
exConsole = JUTException::getConsole();
|
||||
}
|
||||
JUTConsoleManager::getManager()->setDirectConsole(exConsole);
|
||||
waitRetrace = true;
|
||||
}
|
||||
|
||||
if (btnTrig == CButton::A) {
|
||||
exConsole->scrollToLastLine();
|
||||
waitRetrace = true;
|
||||
}
|
||||
|
||||
if (btnTrig == CButton::B) {
|
||||
exConsole->scrollToFirstLine();
|
||||
waitRetrace = true;
|
||||
}
|
||||
|
||||
if (btnHold == CButton::DPAD_UP) {
|
||||
int scrollAmnt;
|
||||
if (holdUpCount < 3) {
|
||||
scrollAmnt = -1;
|
||||
} else if (holdUpCount < 5) {
|
||||
scrollAmnt = -2;
|
||||
} else {
|
||||
scrollAmnt = -8;
|
||||
if (holdUpCount < 7) {
|
||||
scrollAmnt = -4;
|
||||
}
|
||||
}
|
||||
exConsole->scroll(scrollAmnt);
|
||||
waitRetrace = true;
|
||||
holdDownCount = 0;
|
||||
holdUpCount++;
|
||||
} else if (btnHold == CButton::DPAD_DOWN) {
|
||||
int scrollAmnt;
|
||||
if (holdDownCount < 3) {
|
||||
scrollAmnt = 1;
|
||||
} else if (holdDownCount < 5) {
|
||||
scrollAmnt = 2;
|
||||
} else {
|
||||
scrollAmnt = 8;
|
||||
if (holdDownCount < 7) {
|
||||
scrollAmnt = 4;
|
||||
}
|
||||
}
|
||||
exConsole->scroll(scrollAmnt);
|
||||
waitRetrace = true;
|
||||
holdUpCount = 0;
|
||||
holdDownCount++;
|
||||
} else {
|
||||
holdUpCount = 0;
|
||||
holdDownCount = 0;
|
||||
}
|
||||
|
||||
if (waitRetrace == true) {
|
||||
u32 count = VIGetRetraceCount();
|
||||
do {
|
||||
} while (count == VIGetRetraceCount());
|
||||
JUTConsoleManager::getManager()->drawDirect(true);
|
||||
}
|
||||
|
||||
JUTException::waitTime(30);
|
||||
}
|
||||
}
|
||||
|
||||
exception_addition(exConsole);
|
||||
JUTConsoleManager::getManager()->drawDirect(true);
|
||||
|
||||
do {
|
||||
exConsole->scrollToFirstLine();
|
||||
JUTConsoleManager::getManager()->drawDirect(true);
|
||||
JUTException::waitTime(2000);
|
||||
|
||||
do {
|
||||
for (u32 i = exConsole->getHeight(); i != 0; i--) {
|
||||
exConsole->scroll(1);
|
||||
JUTConsoleManager::getManager()->drawDirect(true);
|
||||
|
||||
if ((exConsole->getUsedLine() - exConsole->getHeight()) + 1 <=
|
||||
exConsole->getLineOffset()) {
|
||||
break;
|
||||
}
|
||||
JUTException::waitTime(20);
|
||||
}
|
||||
|
||||
JUTException::waitTime(3000);
|
||||
} while ((exConsole->getUsedLine() - exConsole->getHeight()) + 1 <=
|
||||
exConsole->getLineOffset());
|
||||
} while (true);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -396,9 +549,10 @@ static asm void fault_callback_scroll(u16 param_0, OSContext* param_1, u32 param
|
||||
#include "asm/m_Do/m_Do_machine/fault_callback_scroll__FUsP9OSContextUlUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8000BCF4-8000BCF8 006634 0004+00 1/1 0/0 0/0 .text my_PrintHeap__FPCcUl */
|
||||
static void my_PrintHeap(char const* param_0, u32 param_1) {
|
||||
static void my_PrintHeap(char const* heapName, u32 heapSize) {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
@@ -422,7 +576,7 @@ SECTION_DEAD static char const* const stringBase_80374017 = ""
|
||||
void my_SysPrintHeap(char const* message, void* start, u32 size) {
|
||||
// "32m%-24s = %08x-%08x size=%d KB\n"
|
||||
OSReport_System("\x1b[32m%-24s = %08x-%08x size=%d KB\n\x1b[m", message, start,
|
||||
(u32)start + size, size >> 10);
|
||||
(u32)start + size, size / 1024);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
@@ -440,69 +594,171 @@ SECTION_DEAD static char const* const stringBase_8037409E = "/map/Final/Release/
|
||||
#pragma pop
|
||||
|
||||
/* 803A2F60-803A2F9C 000080 003C+00 1/0 0/0 0/0 .data g_ntscZeldaIntDf */
|
||||
SECTION_DATA static _GXRenderModeObj g_ntscZeldaIntDf = {0,
|
||||
608,
|
||||
448,
|
||||
448,
|
||||
27,
|
||||
16,
|
||||
666,
|
||||
448,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
{{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6}},
|
||||
{8, 8, 10, 12, 10, 8, 8}};
|
||||
SECTION_DATA static _GXRenderModeObj g_ntscZeldaIntDf = {
|
||||
0,
|
||||
608,
|
||||
448,
|
||||
448,
|
||||
27,
|
||||
16,
|
||||
666,
|
||||
448,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
{{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6}},
|
||||
{8, 8, 10, 12, 10, 8, 8},
|
||||
};
|
||||
|
||||
/* 803A2F9C-803A2FD8 0000BC 003C+00 1/1 1/1 0/0 .data g_ntscZeldaProg */
|
||||
SECTION_DATA extern _GXRenderModeObj g_ntscZeldaProg = {2,
|
||||
608,
|
||||
448,
|
||||
448,
|
||||
27,
|
||||
16,
|
||||
666,
|
||||
448,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
{{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6}},
|
||||
{0, 0, 21, 22, 21, 0, 0}};
|
||||
SECTION_DATA extern _GXRenderModeObj g_ntscZeldaProg = {
|
||||
2,
|
||||
608,
|
||||
448,
|
||||
448,
|
||||
27,
|
||||
16,
|
||||
666,
|
||||
448,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
{{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6}},
|
||||
{0, 0, 21, 22, 21, 0, 0},
|
||||
};
|
||||
|
||||
/* 804505A0-804505A8 -00001 0004+04 1/1 3/3 0/0 .sdata mRenderModeObj__15mDoMch_render_c
|
||||
*/
|
||||
SECTION_SDATA _GXRenderModeObj* mDoMch_render_c::mRenderModeObj = &g_ntscZeldaIntDf;
|
||||
SECTION_SDATA GXRenderModeObj* mDoMch_render_c::mRenderModeObj = &g_ntscZeldaIntDf;
|
||||
|
||||
/* 8000BD44-8000C0CC 006684 0388+00 0/0 2/1 0/0 .text mDoMch_Create__Fv */
|
||||
// reg alloc r30 - r31
|
||||
#ifdef NONMATCHING
|
||||
int mDoMch_Create() {
|
||||
if (data_80450580 == 0 || !(OSGetConsoleType() & 0x10000000)) {
|
||||
OSReportDisable();
|
||||
}
|
||||
|
||||
JKRHeap::setDefaultDebugFill(data_80450BF0);
|
||||
JFWSystem::setMaxStdHeap(1);
|
||||
|
||||
u32 arenaHi = OSGetArenaHi();
|
||||
u32 arenaLo = OSGetArenaLo();
|
||||
if (arenaHi > 0x81800000 && arenaHi - 0x1800000 > arenaLo) {
|
||||
OSSetArenaHi(arenaHi - 0x1800000);
|
||||
}
|
||||
|
||||
u32 arenaSize = (OSGetArenaHi() - OSGetArenaLo()) - 0xF0;
|
||||
my_PrintHeap("アリーナ", arenaSize);
|
||||
|
||||
if (mDoMain::memMargin != -1) {
|
||||
arenaSize += mDoMain::memMargin;
|
||||
}
|
||||
|
||||
JFWSystem::setSysHeapSize(arenaSize - 0xDACD30);
|
||||
my_PrintHeap("システムヒープ", arenaSize - 0xDACD30);
|
||||
|
||||
JFWSystem::setFifoBufSize(0xA0000);
|
||||
JFWSystem::setAramAudioBufSize(0xA00000);
|
||||
JFWSystem::setAramGraphBufSize(-1);
|
||||
|
||||
if (!(OSGetResetCode() >> 0x1F)) {
|
||||
if (VIGetDTVStatus() == 0) {
|
||||
OSSetProgressiveMode(0);
|
||||
}
|
||||
} else if (mDoRst::getProgSeqFlag() != 0) {
|
||||
if (VIGetDTVStatus() != 0 && mDoMch_IsProgressiveMode()) {
|
||||
mDoMch_render_c::setProgressiveMode();
|
||||
}
|
||||
}
|
||||
|
||||
JFWSystem::setRenderMode(mDoMch_render_c::getRenderModeObj());
|
||||
JFWSystem::firstInit();
|
||||
JUTDbPrint::start(NULL, mDoExt_createDbPrintHeap(0x1800, JKRHeap::getRootHeap()));
|
||||
mDoExt_createAssertHeap(JKRHeap::getRootHeap());
|
||||
JFWSystem::init();
|
||||
|
||||
if (data_80450580 == 0) {
|
||||
JUTAssertion::setVisible(false);
|
||||
JUTDbPrint::getManager()->setVisible(false);
|
||||
}
|
||||
|
||||
JKRHeap::setErrorHandler(myMemoryErrorRoutine);
|
||||
JKRHeap::getRootHeap()->setErrorFlag(true);
|
||||
JFWSystem::getSystemHeap()->setErrorFlag(true);
|
||||
|
||||
JKRHeap* rootHeap = JKRHeap::getRootHeap();
|
||||
// Command Heap size: 4 KB
|
||||
my_SysPrintHeap("コマンドヒープ", mDoExt_createCommandHeap(0x1000, rootHeap), 0x1000);
|
||||
|
||||
// Archive Heap size: 9085 KB
|
||||
my_SysPrintHeap("アーカイブヒープ", mDoExt_createArchiveHeap(0x8DF400, rootHeap), 0x8DF400);
|
||||
|
||||
// J2D Heap size: 500 KB
|
||||
my_SysPrintHeap("J2D用ヒープ", mDoExt_createJ2dHeap(0x7D000, rootHeap), 0x7D000);
|
||||
|
||||
// Game Heap size: 4408 KB
|
||||
my_SysPrintHeap("ゲームヒープ", mDoExt_createGameHeap(0x44E000, rootHeap), 0x44E000);
|
||||
|
||||
JKRHeap* sysHeap = JKRHeap::getSystemHeap();
|
||||
u32 zeldaHeapSize = sysHeap->getFreeSize() - 0x10000;
|
||||
JKRHeap* zeldaHeap = mDoExt_createZeldaHeap(zeldaHeapSize, sysHeap);
|
||||
my_SysPrintHeap("ゼルダヒープ", zeldaHeap, zeldaHeapSize);
|
||||
zeldaHeap->becomeCurrentHeap();
|
||||
|
||||
JKRAramStream::setTransBuffer(NULL, 0x2000, JKRHeap::getSystemHeap());
|
||||
JKRThreadSwitch::createManager(NULL);
|
||||
JKRThread* thread = new JKRThread(OSGetCurrentThread(), 0);
|
||||
|
||||
JUTConsole* sysConsole = JFWSystem::getSystemConsole();
|
||||
sysConsole->setOutput(JUTConsole::OUTPUT_CONSOLE | JUTConsole::OUTPUT_OSREPORT);
|
||||
sysConsole->setPosition(16, 42);
|
||||
|
||||
JUTException::appendMapFile("/map/Final/Release/frameworkF.map");
|
||||
JUTException::setPreUserCallback(myExceptionCallback);
|
||||
JUTException::setPostUserCallback(fault_callback_scroll);
|
||||
|
||||
cMl::init(mDoExt_getZeldaHeap());
|
||||
cM_initRnd(100, 100, 100);
|
||||
JKRDvdRipper::setSZSBufferSize(0x4000);
|
||||
JKRDvdAramRipper::setSZSBufferSize(0x4000);
|
||||
JKRAram::setSZSBufferSize(0x2000);
|
||||
mDoDvdThd::create(OSGetThreadPriority(OSGetCurrentThread()) - 2);
|
||||
mDoDvdErr_ThdInit();
|
||||
mDoMemCd_ThdInit();
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoMch_Create() {
|
||||
asm int mDoMch_Create() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_machine/mDoMch_Create__Fv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80373DE8-80373DE8 000448 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
@@ -65,9 +65,9 @@ void dispHeapInfo() {
|
||||
u32 archiveTotal = archive->getTotalFreeSize();
|
||||
|
||||
print("-- Heap Free / TotalFree (KB) --\n");
|
||||
print_f(" Zelda %5d / %5d\n", zeldaFree >> 10, zeldaTotal >> 10);
|
||||
print_f(" Game %5d / %5d\n", gameFree >> 10, gameTotal >> 10);
|
||||
print_f("Archive %5d / %5d\n", archiveFree >> 10, archiveTotal >> 10);
|
||||
print_f(" Zelda %5d / %5d\n", zeldaFree / 1024, zeldaTotal / 1024);
|
||||
print_f(" Game %5d / %5d\n", gameFree / 1024, gameTotal / 1024);
|
||||
print_f("Archive %5d / %5d\n", archiveFree / 1024, archiveTotal / 1024);
|
||||
print("--------------------------------\n");
|
||||
|
||||
if (JKRAram::getAramHeap()) {
|
||||
|
||||
+108
-279
@@ -6,325 +6,154 @@
|
||||
#include "msg/scrn/d_msg_scrn_base.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct dMsgScrnBase_c {
|
||||
/* 80238C3C */ void exec();
|
||||
/* 80238C40 */ void setSelectRubyString(char*, char*, char*);
|
||||
/* 80238C44 */ void setSelectString(char*, char*, char*);
|
||||
/* 80238C48 */ bool selectAnimeMove(u8, u8, bool);
|
||||
/* 80238C50 */ void selectAnimeInit(u8, u8, f32, u8);
|
||||
/* 80238C54 */ void arwAnimeMove();
|
||||
/* 80238C58 */ void arwAnimeInit();
|
||||
/* 80238C5C */ void fukiPosCalc(u8);
|
||||
/* 80238C60 */ bool isSelect();
|
||||
/* 80238C68 */ bool selectAnimeEnd();
|
||||
/* 80238C70 */ void dotAnimeMove();
|
||||
/* 80238C74 */ void dotAnimeInit();
|
||||
/* 8023C0DC */ dMsgScrnBase_c();
|
||||
/* 8023C124 */ ~dMsgScrnBase_c();
|
||||
/* 8023C16C */ void init();
|
||||
/* 8023C234 */ void multiDraw();
|
||||
/* 8023C274 */ void draw();
|
||||
/* 8023C300 */ void drawSelf();
|
||||
/* 8023C32C */ void drawOutFont(f32, f32, f32);
|
||||
/* 8023C360 */ void setString(char*, char*);
|
||||
/* 8023C3EC */ void setRubyString(char*);
|
||||
/* 8023C458 */ void fukiScale(f32);
|
||||
/* 8023C480 */ void fukiTrans(f32, f32);
|
||||
/* 8023C4A4 */ void fukiAlpha(f32);
|
||||
/* 8023C4F4 */ void fontAlpha(f32);
|
||||
/* 8023C574 */ void isTalkNow();
|
||||
};
|
||||
|
||||
struct dMsgObject_c {
|
||||
/* 8023822C */ void getStatus();
|
||||
};
|
||||
|
||||
struct dDlst_base_c {};
|
||||
|
||||
struct dDlst_list_c {
|
||||
/* 80056794 */ void set(dDlst_base_c**&, dDlst_base_c**&, dDlst_base_c*);
|
||||
};
|
||||
|
||||
struct J2DTextBox {
|
||||
/* 80300658 */ void getStringPtr() const;
|
||||
};
|
||||
|
||||
struct J2DGrafContext {};
|
||||
|
||||
struct J2DScreen {
|
||||
/* 802F8ED4 */ void draw(f32, f32, J2DGrafContext const*);
|
||||
};
|
||||
|
||||
struct CPaneMgrAlpha {
|
||||
/* 802557D0 */ void setAlphaRate(f32);
|
||||
};
|
||||
|
||||
struct CPaneMgr {
|
||||
/* 802545B0 */ void paneTrans(f32, f32);
|
||||
/* 80254638 */ void paneScale(f32, f32);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__14dMsgScrnBase_cFv();
|
||||
extern "C" void __dt__14dMsgScrnBase_cFv();
|
||||
extern "C" void init__14dMsgScrnBase_cFv();
|
||||
extern "C" void multiDraw__14dMsgScrnBase_cFv();
|
||||
extern "C" void draw__14dMsgScrnBase_cFv();
|
||||
extern "C" void drawSelf__14dMsgScrnBase_cFv();
|
||||
extern "C" void drawOutFont__14dMsgScrnBase_cFfff();
|
||||
extern "C" void setString__14dMsgScrnBase_cFPcPc();
|
||||
extern "C" void setRubyString__14dMsgScrnBase_cFPc();
|
||||
extern "C" void fukiScale__14dMsgScrnBase_cFf();
|
||||
extern "C" void fukiTrans__14dMsgScrnBase_cFff();
|
||||
extern "C" void fukiAlpha__14dMsgScrnBase_cFf();
|
||||
extern "C" void fontAlpha__14dMsgScrnBase_cFf();
|
||||
extern "C" void isTalkNow__14dMsgScrnBase_cFv();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void set__12dDlst_list_cFRPP12dDlst_base_cRPP12dDlst_base_cP12dDlst_base_c();
|
||||
extern "C" void getStatus__12dMsgObject_cFv();
|
||||
extern "C" void exec__14dMsgScrnBase_cFv();
|
||||
extern "C" void setSelectRubyString__14dMsgScrnBase_cFPcPcPc();
|
||||
extern "C" void setSelectString__14dMsgScrnBase_cFPcPcPc();
|
||||
extern "C" bool selectAnimeMove__14dMsgScrnBase_cFUcUcb();
|
||||
extern "C" void selectAnimeInit__14dMsgScrnBase_cFUcUcfUc();
|
||||
extern "C" void arwAnimeMove__14dMsgScrnBase_cFv();
|
||||
extern "C" void arwAnimeInit__14dMsgScrnBase_cFv();
|
||||
extern "C" void fukiPosCalc__14dMsgScrnBase_cFUc();
|
||||
extern "C" bool isSelect__14dMsgScrnBase_cFv();
|
||||
extern "C" bool selectAnimeEnd__14dMsgScrnBase_cFv();
|
||||
extern "C" void dotAnimeMove__14dMsgScrnBase_cFv();
|
||||
extern "C" void dotAnimeInit__14dMsgScrnBase_cFv();
|
||||
extern "C" void paneTrans__8CPaneMgrFff();
|
||||
extern "C" void paneScale__8CPaneMgrFff();
|
||||
extern "C" void setAlphaRate__13CPaneMgrAlphaFf();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void draw__9J2DScreenFffPC14J2DGrafContext();
|
||||
extern "C" void getStringPtr__10J2DTextBoxCFv();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void strcpy();
|
||||
extern "C" extern void* __vt__12dDlst_base_c[3];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803C0D08-803C0D58 -00001 0050+00 1/1 0/0 0/0 .data @3949 */
|
||||
SECTION_DATA static void* lit_3949[20] = {
|
||||
(void*)(((char*)isTalkNow__14dMsgScrnBase_cFv) + 0x38),
|
||||
(void*)(((char*)isTalkNow__14dMsgScrnBase_cFv) + 0x38),
|
||||
(void*)(((char*)isTalkNow__14dMsgScrnBase_cFv) + 0x38),
|
||||
(void*)(((char*)isTalkNow__14dMsgScrnBase_cFv) + 0x38),
|
||||
(void*)(((char*)isTalkNow__14dMsgScrnBase_cFv) + 0x38),
|
||||
(void*)(((char*)isTalkNow__14dMsgScrnBase_cFv) + 0x40),
|
||||
(void*)(((char*)isTalkNow__14dMsgScrnBase_cFv) + 0x40),
|
||||
(void*)(((char*)isTalkNow__14dMsgScrnBase_cFv) + 0x40),
|
||||
(void*)(((char*)isTalkNow__14dMsgScrnBase_cFv) + 0x40),
|
||||
(void*)(((char*)isTalkNow__14dMsgScrnBase_cFv) + 0x40),
|
||||
(void*)(((char*)isTalkNow__14dMsgScrnBase_cFv) + 0x38),
|
||||
(void*)(((char*)isTalkNow__14dMsgScrnBase_cFv) + 0x38),
|
||||
(void*)(((char*)isTalkNow__14dMsgScrnBase_cFv) + 0x40),
|
||||
(void*)(((char*)isTalkNow__14dMsgScrnBase_cFv) + 0x40),
|
||||
(void*)(((char*)isTalkNow__14dMsgScrnBase_cFv) + 0x40),
|
||||
(void*)(((char*)isTalkNow__14dMsgScrnBase_cFv) + 0x38),
|
||||
(void*)(((char*)isTalkNow__14dMsgScrnBase_cFv) + 0x40),
|
||||
(void*)(((char*)isTalkNow__14dMsgScrnBase_cFv) + 0x40),
|
||||
(void*)(((char*)isTalkNow__14dMsgScrnBase_cFv) + 0x40),
|
||||
(void*)(((char*)isTalkNow__14dMsgScrnBase_cFv) + 0x38),
|
||||
};
|
||||
|
||||
/* 803C0D58-803C0DB0 01DE78 0058+00 2/2 0/0 0/0 .data __vt__14dMsgScrnBase_c */
|
||||
SECTION_DATA extern void* __vt__14dMsgScrnBase_c[22] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)draw__14dMsgScrnBase_cFv,
|
||||
(void*)__dt__14dMsgScrnBase_cFv,
|
||||
(void*)exec__14dMsgScrnBase_cFv,
|
||||
(void*)multiDraw__14dMsgScrnBase_cFv,
|
||||
(void*)drawSelf__14dMsgScrnBase_cFv,
|
||||
(void*)setSelectString__14dMsgScrnBase_cFPcPcPc,
|
||||
(void*)setSelectRubyString__14dMsgScrnBase_cFPcPcPc,
|
||||
(void*)arwAnimeInit__14dMsgScrnBase_cFv,
|
||||
(void*)arwAnimeMove__14dMsgScrnBase_cFv,
|
||||
(void*)dotAnimeInit__14dMsgScrnBase_cFv,
|
||||
(void*)dotAnimeMove__14dMsgScrnBase_cFv,
|
||||
(void*)isSelect__14dMsgScrnBase_cFv,
|
||||
(void*)selectAnimeInit__14dMsgScrnBase_cFUcUcfUc,
|
||||
(void*)selectAnimeMove__14dMsgScrnBase_cFUcUcb,
|
||||
(void*)selectAnimeEnd__14dMsgScrnBase_cFv,
|
||||
(void*)fukiScale__14dMsgScrnBase_cFf,
|
||||
(void*)fukiTrans__14dMsgScrnBase_cFff,
|
||||
(void*)fukiAlpha__14dMsgScrnBase_cFf,
|
||||
(void*)fontAlpha__14dMsgScrnBase_cFf,
|
||||
(void*)fukiPosCalc__14dMsgScrnBase_cFUc,
|
||||
};
|
||||
#include "d/msg/d_msg_object.h"
|
||||
|
||||
/* 8023C0DC-8023C124 236A1C 0048+00 0/0 9/9 0/0 .text __ct__14dMsgScrnBase_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dMsgScrnBase_c::dMsgScrnBase_c() {
|
||||
nofralloc
|
||||
#include "asm/msg/scrn/d_msg_scrn_base/__ct__14dMsgScrnBase_cFv.s"
|
||||
dMsgScrnBase_c::dMsgScrnBase_c() {
|
||||
init();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8023C124-8023C16C 236A64 0048+00 1/0 9/9 0/0 .text __dt__14dMsgScrnBase_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dMsgScrnBase_c::~dMsgScrnBase_c() {
|
||||
nofralloc
|
||||
#include "asm/msg/scrn/d_msg_scrn_base/__dt__14dMsgScrnBase_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80454BA8-80454BAC 0031A8 0004+00 3/3 0/0 0/0 .sdata2 @3820 */
|
||||
SECTION_SDATA2 static u8 lit_3820[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
|
||||
/* 80454BAC-80454BB0 0031AC 0004+00 2/2 0/0 0/0 .sdata2 @3821 */
|
||||
SECTION_SDATA2 static f32 lit_3821 = 1.0f;
|
||||
dMsgScrnBase_c::~dMsgScrnBase_c() {}
|
||||
|
||||
/* 8023C16C-8023C234 236AAC 00C8+00 1/1 9/9 0/0 .text init__14dMsgScrnBase_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgScrnBase_c::init() {
|
||||
nofralloc
|
||||
#include "asm/msg/scrn/d_msg_scrn_base/init__14dMsgScrnBase_cFv.s"
|
||||
void dMsgScrnBase_c::init() {
|
||||
mpScreen = NULL;
|
||||
mpPmp_c = NULL;
|
||||
field_0x54 = 0;
|
||||
|
||||
for (int i = 0; i < 7; i++) {
|
||||
mpTm_c[i] = NULL;
|
||||
mpTmr_c[i] = NULL;
|
||||
}
|
||||
|
||||
mpOutFont = NULL;
|
||||
field_0x48 = NULL;
|
||||
field_0x4c = 0;
|
||||
mCharInfoPtr = NULL;
|
||||
|
||||
mFontSize.mSizeY = 0.0f;
|
||||
mFontSize.mSizeX = 0.0f;
|
||||
mRubySize = 0.0f;
|
||||
mTextBoxPosX = 0.0f;
|
||||
mTextBoxPosY = 0.0f;
|
||||
mTextBoxScaleX = 1.0f;
|
||||
mTextBoxScaleY = 1.0f;
|
||||
mTBoxWidth = 0.0f;
|
||||
mTBoxHeight = 0.0f;
|
||||
mLineSpace = 0.0f;
|
||||
mCharSpace = 0.0f;
|
||||
mRubyCharSpace = 0.0f;
|
||||
mSelFontSize = 0.0f;
|
||||
mSelRubySize = 0.0f;
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
mSelTextBoxPosX[i] = 0.0f;
|
||||
mSelTextBoxPosY[i] = 0.0f;
|
||||
}
|
||||
|
||||
mSelTBoxWidth = 0.0f;
|
||||
mSelCharSpace = 0.0f;
|
||||
mSelRubyCharSpace = 0.0f;
|
||||
mTextBoxPosOffsetY = 0.0f;
|
||||
field_0xb8 = 0.0f;
|
||||
mCharAlphaRate = 1.0f;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8023C234-8023C274 236B74 0040+00 1/0 9/0 0/0 .text multiDraw__14dMsgScrnBase_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgScrnBase_c::multiDraw() {
|
||||
nofralloc
|
||||
#include "asm/msg/scrn/d_msg_scrn_base/multiDraw__14dMsgScrnBase_cFv.s"
|
||||
void dMsgScrnBase_c::multiDraw() {
|
||||
if (field_0x48 != NULL) {
|
||||
dComIfGd_set2DOpa(field_0x48);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8023C274-8023C300 236BB4 008C+00 1/0 7/0 0/0 .text draw__14dMsgScrnBase_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgScrnBase_c::draw() {
|
||||
nofralloc
|
||||
#include "asm/msg/scrn/d_msg_scrn_base/draw__14dMsgScrnBase_cFv.s"
|
||||
void dMsgScrnBase_c::draw() {
|
||||
J2DGrafContext* ctx = dComIfGp_getCurrentGrafPort();
|
||||
|
||||
ctx->setup2D();
|
||||
mpScreen->draw(0.0f, 0.0f, ctx);
|
||||
drawSelf();
|
||||
ctx->setup2D();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8023C300-8023C32C 236C40 002C+00 1/0 2/0 0/0 .text drawSelf__14dMsgScrnBase_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgScrnBase_c::drawSelf() {
|
||||
nofralloc
|
||||
#include "asm/msg/scrn/d_msg_scrn_base/drawSelf__14dMsgScrnBase_cFv.s"
|
||||
void dMsgScrnBase_c::drawSelf() {
|
||||
drawOutFont(0.0f, 0.0f, 1.0f);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8023C32C-8023C360 236C6C 0034+00 1/1 6/6 0/0 .text drawOutFont__14dMsgScrnBase_cFfff
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgScrnBase_c::drawOutFont(f32 param_0, f32 param_1, f32 param_2) {
|
||||
nofralloc
|
||||
#include "asm/msg/scrn/d_msg_scrn_base/drawOutFont__14dMsgScrnBase_cFfff.s"
|
||||
void dMsgScrnBase_c::drawOutFont(f32 param_0, f32 param_1, f32 param_2) {
|
||||
mpOutFont->draw(NULL, param_0, param_1, param_2);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8023C360-8023C3EC 236CA0 008C+00 0/0 2/2 0/0 .text setString__14dMsgScrnBase_cFPcPc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgScrnBase_c::setString(char* param_0, char* param_1) {
|
||||
nofralloc
|
||||
#include "asm/msg/scrn/d_msg_scrn_base/setString__14dMsgScrnBase_cFPcPc.s"
|
||||
void dMsgScrnBase_c::setString(char* str1, char* str2) {
|
||||
for (int i = 0; i < 7; i++) {
|
||||
if (mpTm_c[i] != NULL) {
|
||||
if (i == 0) {
|
||||
strcpy(((J2DTextBox*)mpTm_c[i]->getPanePtr())->getStringPtr(), str1);
|
||||
} else {
|
||||
strcpy(((J2DTextBox*)mpTm_c[i]->getPanePtr())->getStringPtr(), str2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8023C3EC-8023C458 236D2C 006C+00 0/0 2/2 0/0 .text setRubyString__14dMsgScrnBase_cFPc
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgScrnBase_c::setRubyString(char* param_0) {
|
||||
nofralloc
|
||||
#include "asm/msg/scrn/d_msg_scrn_base/setRubyString__14dMsgScrnBase_cFPc.s"
|
||||
void dMsgScrnBase_c::setRubyString(char* str) {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
if (mpTmr_c[i] != NULL) {
|
||||
strcpy(((J2DTextBox*)mpTmr_c[i]->getPanePtr())->getStringPtr(), str);
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8023C458-8023C480 236D98 0028+00 1/0 0/0 0/0 .text fukiScale__14dMsgScrnBase_cFf */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgScrnBase_c::fukiScale(f32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/msg/scrn/d_msg_scrn_base/fukiScale__14dMsgScrnBase_cFf.s"
|
||||
void dMsgScrnBase_c::fukiScale(f32 scale) {
|
||||
mpPmp_c->paneScale(scale, scale);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8023C480-8023C4A4 236DC0 0024+00 1/0 0/0 0/0 .text fukiTrans__14dMsgScrnBase_cFff */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgScrnBase_c::fukiTrans(f32 param_0, f32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/msg/scrn/d_msg_scrn_base/fukiTrans__14dMsgScrnBase_cFff.s"
|
||||
void dMsgScrnBase_c::fukiTrans(f32 posX, f32 posY) {
|
||||
mpPmp_c->paneTrans(posX, posY);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8023C4A4-8023C4F4 236DE4 0050+00 1/0 0/0 0/0 .text fukiAlpha__14dMsgScrnBase_cFf */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgScrnBase_c::fukiAlpha(f32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/msg/scrn/d_msg_scrn_base/fukiAlpha__14dMsgScrnBase_cFf.s"
|
||||
void dMsgScrnBase_c::fukiAlpha(f32 alpha) {
|
||||
fontAlpha(alpha);
|
||||
mpPmp_c->setAlphaRate(alpha);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8023C4F4-8023C574 236E34 0080+00 1/0 5/0 0/0 .text fontAlpha__14dMsgScrnBase_cFf */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgScrnBase_c::fontAlpha(f32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/msg/scrn/d_msg_scrn_base/fontAlpha__14dMsgScrnBase_cFf.s"
|
||||
void dMsgScrnBase_c::fontAlpha(f32 alpha) {
|
||||
for (int i = 0; i < 7; i++) {
|
||||
if (mpTm_c[i] != NULL) {
|
||||
mpTm_c[i]->setAlphaRate(alpha);
|
||||
}
|
||||
|
||||
if (mpTmr_c[i] != NULL) {
|
||||
mpTmr_c[i]->setAlphaRate(alpha);
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8023C574-8023C5C8 236EB4 0054+00 1/0 8/8 0/0 .text isTalkNow__14dMsgScrnBase_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgScrnBase_c::isTalkNow() {
|
||||
nofralloc
|
||||
#include "asm/msg/scrn/d_msg_scrn_base/isTalkNow__14dMsgScrnBase_cFv.s"
|
||||
bool dMsgScrnBase_c::isTalkNow() {
|
||||
switch (dMsgObject_c::getStatus()) {
|
||||
case 5:
|
||||
case 6:
|
||||
case 7:
|
||||
case 8:
|
||||
case 9:
|
||||
case 15:
|
||||
case 16:
|
||||
case 20:
|
||||
case 24:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
@@ -4,246 +4,131 @@
|
||||
//
|
||||
|
||||
#include "msg/scrn/d_msg_scrn_boss.h"
|
||||
#include "d/msg/d_msg_object.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct dMsgScrnBoss_c {
|
||||
/* 8023C5C8 */ dMsgScrnBoss_c();
|
||||
/* 8023C928 */ ~dMsgScrnBoss_c();
|
||||
/* 8023CA88 */ void exec();
|
||||
/* 8023CB98 */ void drawSelf();
|
||||
/* 8023CBF0 */ void fukiAlpha(f32);
|
||||
/* 8023CC7C */ void fukiScale(f32);
|
||||
/* 8023CC80 */ void fukiTrans(f32, f32);
|
||||
/* 8023CC84 */ void fontAlpha(f32);
|
||||
};
|
||||
|
||||
struct dMsgScrnBase_c {
|
||||
/* 80238C40 */ void setSelectRubyString(char*, char*, char*);
|
||||
/* 80238C44 */ void setSelectString(char*, char*, char*);
|
||||
/* 80238C48 */ bool selectAnimeMove(u8, u8, bool);
|
||||
/* 80238C50 */ void selectAnimeInit(u8, u8, f32, u8);
|
||||
/* 80238C54 */ void arwAnimeMove();
|
||||
/* 80238C58 */ void arwAnimeInit();
|
||||
/* 80238C5C */ void fukiPosCalc(u8);
|
||||
/* 80238C60 */ bool isSelect();
|
||||
/* 80238C68 */ bool selectAnimeEnd();
|
||||
/* 80238C70 */ void dotAnimeMove();
|
||||
/* 80238C74 */ void dotAnimeInit();
|
||||
/* 8023C0DC */ dMsgScrnBase_c();
|
||||
/* 8023C124 */ ~dMsgScrnBase_c();
|
||||
/* 8023C16C */ void init();
|
||||
/* 8023C234 */ void multiDraw();
|
||||
/* 8023C274 */ void draw();
|
||||
/* 8023C32C */ void drawOutFont(f32, f32, f32);
|
||||
/* 8023C574 */ void isTalkNow();
|
||||
};
|
||||
|
||||
struct JKRExpHeap {};
|
||||
|
||||
struct JKRArchive {};
|
||||
|
||||
struct J2DTextBox {
|
||||
/* 8030074C */ void setString(s16, char const*, ...);
|
||||
};
|
||||
|
||||
struct J2DScreen {
|
||||
/* 802F8498 */ J2DScreen();
|
||||
/* 802F8648 */ void setPriority(char const*, u32, JKRArchive*);
|
||||
};
|
||||
|
||||
struct CPaneMgrAlpha {
|
||||
/* 802557D0 */ void setAlphaRate(f32);
|
||||
};
|
||||
|
||||
struct CPaneMgr {
|
||||
/* 80253984 */ CPaneMgr(J2DScreen*, u64, u8, JKRExpHeap*);
|
||||
/* 802542E8 */ void getGlobalPosX();
|
||||
/* 80254364 */ void getGlobalPosY();
|
||||
/* 802545B0 */ void paneTrans(f32, f32);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__14dMsgScrnBoss_cFv();
|
||||
extern "C" void __dt__14dMsgScrnBoss_cFv();
|
||||
extern "C" void exec__14dMsgScrnBoss_cFv();
|
||||
extern "C" void drawSelf__14dMsgScrnBoss_cFv();
|
||||
extern "C" void fukiAlpha__14dMsgScrnBoss_cFf();
|
||||
extern "C" void fukiScale__14dMsgScrnBoss_cFf();
|
||||
extern "C" void fukiTrans__14dMsgScrnBoss_cFff();
|
||||
extern "C" void fontAlpha__14dMsgScrnBoss_cFf();
|
||||
extern "C" extern char const* const msg_scrn_d_msg_scrn_boss__stringBase0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoExt_getRubyFont__Fv();
|
||||
extern "C" void setSelectRubyString__14dMsgScrnBase_cFPcPcPc();
|
||||
extern "C" void setSelectString__14dMsgScrnBase_cFPcPcPc();
|
||||
extern "C" bool selectAnimeMove__14dMsgScrnBase_cFUcUcb();
|
||||
extern "C" void selectAnimeInit__14dMsgScrnBase_cFUcUcfUc();
|
||||
extern "C" void arwAnimeMove__14dMsgScrnBase_cFv();
|
||||
extern "C" void arwAnimeInit__14dMsgScrnBase_cFv();
|
||||
extern "C" void fukiPosCalc__14dMsgScrnBase_cFUc();
|
||||
extern "C" bool isSelect__14dMsgScrnBase_cFv();
|
||||
extern "C" bool selectAnimeEnd__14dMsgScrnBase_cFv();
|
||||
extern "C" void dotAnimeMove__14dMsgScrnBase_cFv();
|
||||
extern "C" void dotAnimeInit__14dMsgScrnBase_cFv();
|
||||
extern "C" void __ct__14dMsgScrnBase_cFv();
|
||||
extern "C" void __dt__14dMsgScrnBase_cFv();
|
||||
extern "C" void init__14dMsgScrnBase_cFv();
|
||||
extern "C" void multiDraw__14dMsgScrnBase_cFv();
|
||||
extern "C" void draw__14dMsgScrnBase_cFv();
|
||||
extern "C" void drawOutFont__14dMsgScrnBase_cFfff();
|
||||
extern "C" void isTalkNow__14dMsgScrnBase_cFv();
|
||||
extern "C" void __ct__8CPaneMgrFP9J2DScreenUxUcP10JKRExpHeap();
|
||||
extern "C" void getGlobalPosX__8CPaneMgrFv();
|
||||
extern "C" void getGlobalPosY__8CPaneMgrFv();
|
||||
extern "C" void paneTrans__8CPaneMgrFff();
|
||||
extern "C" void dPaneClass_showNullPane__FP9J2DScreen();
|
||||
extern "C" void setAlphaRate__13CPaneMgrAlphaFf();
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void __ct__9J2DScreenFv();
|
||||
extern "C" void setPriority__9J2DScreenFPCcUlP10JKRArchive();
|
||||
extern "C" void setString__10J2DTextBoxFsPCce();
|
||||
extern "C" void _savegpr_26();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_26();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_MsgObject_HIO_c[1040];
|
||||
extern "C" extern dMsgObject_HIO_c g_MsgObject_HIO_c;
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803998F8-803998F8 025F58 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_803998F8 = "zelda_boss_name.blo";
|
||||
SECTION_DEAD static char const* const stringBase_8039990C = "";
|
||||
/* @stringBase0 padding */
|
||||
SECTION_DEAD static char const* const pad_8039990D = "\0\0";
|
||||
#pragma pop
|
||||
|
||||
/* 803C0DB0-803C0DE8 01DED0 0038+00 1/1 0/0 0/0 .data t_tag$3759 */
|
||||
SECTION_DATA static u8 t_tag[56] = {
|
||||
0x00, 0x73, 0x66, 0x6F, 0x6E, 0x74, 0x62, 0x30, 0x00, 0x73, 0x66, 0x6F, 0x6E, 0x74,
|
||||
0x62, 0x31, 0x00, 0x73, 0x66, 0x6F, 0x6E, 0x74, 0x62, 0x32, 0x00, 0x73, 0x66, 0x6F,
|
||||
0x6E, 0x74, 0x6C, 0x30, 0x00, 0x73, 0x66, 0x6F, 0x6E, 0x74, 0x6C, 0x31, 0x00, 0x73,
|
||||
0x66, 0x6F, 0x6E, 0x74, 0x6C, 0x32, 0x00, 0x73, 0x66, 0x6F, 0x6E, 0x74, 0x30, 0x30,
|
||||
};
|
||||
|
||||
/* 803C0DE8-803C0E40 01DF08 0058+00 2/2 0/0 0/0 .data __vt__14dMsgScrnBoss_c */
|
||||
SECTION_DATA extern void* __vt__14dMsgScrnBoss_c[22] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)draw__14dMsgScrnBase_cFv,
|
||||
(void*)__dt__14dMsgScrnBoss_cFv,
|
||||
(void*)exec__14dMsgScrnBoss_cFv,
|
||||
(void*)multiDraw__14dMsgScrnBase_cFv,
|
||||
(void*)drawSelf__14dMsgScrnBoss_cFv,
|
||||
(void*)setSelectString__14dMsgScrnBase_cFPcPcPc,
|
||||
(void*)setSelectRubyString__14dMsgScrnBase_cFPcPcPc,
|
||||
(void*)arwAnimeInit__14dMsgScrnBase_cFv,
|
||||
(void*)arwAnimeMove__14dMsgScrnBase_cFv,
|
||||
(void*)dotAnimeInit__14dMsgScrnBase_cFv,
|
||||
(void*)dotAnimeMove__14dMsgScrnBase_cFv,
|
||||
(void*)isSelect__14dMsgScrnBase_cFv,
|
||||
(void*)selectAnimeInit__14dMsgScrnBase_cFUcUcfUc,
|
||||
(void*)selectAnimeMove__14dMsgScrnBase_cFUcUcb,
|
||||
(void*)selectAnimeEnd__14dMsgScrnBase_cFv,
|
||||
(void*)fukiScale__14dMsgScrnBoss_cFf,
|
||||
(void*)fukiTrans__14dMsgScrnBoss_cFff,
|
||||
(void*)fukiAlpha__14dMsgScrnBoss_cFf,
|
||||
(void*)fontAlpha__14dMsgScrnBoss_cFf,
|
||||
(void*)fukiPosCalc__14dMsgScrnBase_cFUc,
|
||||
};
|
||||
|
||||
/* 80454BB0-80454BB4 0031B0 0004+00 3/3 0/0 0/0 .sdata2 @3854 */
|
||||
SECTION_SDATA2 static f32 lit_3854 = 1.0f;
|
||||
|
||||
/* 8023C5C8-8023C928 236F08 0360+00 0/0 1/1 0/0 .text __ct__14dMsgScrnBoss_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dMsgScrnBoss_c::dMsgScrnBoss_c() {
|
||||
nofralloc
|
||||
#include "asm/msg/scrn/d_msg_scrn_boss/__ct__14dMsgScrnBoss_cFv.s"
|
||||
dMsgScrnBoss_c::dMsgScrnBoss_c() {
|
||||
static u64 t_tag[7] = {
|
||||
'sfontb0', 'sfontb1', 'sfontb2', 'sfontl0',
|
||||
'sfontl1', 'sfontl2', 'sfont00',
|
||||
};
|
||||
|
||||
init();
|
||||
|
||||
mpScreen = new J2DScreen();
|
||||
mpScreen->setPriority("zelda_boss_name.blo", 0x20000, dComIfGp_getMsgArchive(4));
|
||||
dPaneClass_showNullPane(mpScreen);
|
||||
|
||||
mpPmp_c = new CPaneMgr(mpScreen, 'n_all', 2, NULL);
|
||||
mpPmp_c->scale(g_MsgObject_HIO_c.mBossNameScaleX, g_MsgObject_HIO_c.mBossNameScaleY);
|
||||
|
||||
mpFontParent = new CPaneMgr(mpScreen, 's_font_n', 0, NULL);
|
||||
mpFontParent->scale(g_MsgObject_HIO_c.mBossNameCharSizeX, g_MsgObject_HIO_c.mBossNameCharSizeY);
|
||||
mpFontParent->paneTrans(g_MsgObject_HIO_c.mBossNameCharPosX, g_MsgObject_HIO_c.mBossNameCharPosY);
|
||||
|
||||
mpBaseParent = new CPaneMgr(mpScreen, 'base_n', 2, NULL);
|
||||
mpBaseParent->scale(g_MsgObject_HIO_c.mBossNameBaseSizeX, g_MsgObject_HIO_c.mBossNameBaseSizeY);
|
||||
mpBaseParent->paneTrans(g_MsgObject_HIO_c.mBossNameBasePosX, g_MsgObject_HIO_c.mBossNameBasePosY);
|
||||
|
||||
for (int i = 0; i < 7; i++) {
|
||||
mpTm_c[i] = new CPaneMgr(mpScreen, t_tag[i], 0, NULL);
|
||||
((J2DTextBox*)mpTm_c[i]->getPanePtr())->setFont(mDoExt_getRubyFont());
|
||||
((J2DTextBox*)mpTm_c[i]->getPanePtr())->setCharSpace(1.0f);
|
||||
((J2DTextBox*)mpTm_c[i]->getPanePtr())->setString(0x100, "");
|
||||
}
|
||||
|
||||
((J2DTextBox*)mpTm_c[0]->getPanePtr())->getFontSize(mFontSize);
|
||||
mTBoxWidth = mpTm_c[0]->getSizeX();
|
||||
mTBoxHeight = mpTm_c[0]->getSizeY();
|
||||
mLineSpace = ((J2DTextBox*)mpTm_c[0]->getPanePtr())->getLineSpace();
|
||||
mCharSpace = ((J2DTextBox*)mpTm_c[0]->getPanePtr())->getCharSpace();
|
||||
|
||||
for (int i = 0; i < 7; i++) {
|
||||
((J2DTextBox*)mpTm_c[i]->getPanePtr())->setLineSpace(mLineSpace);
|
||||
}
|
||||
|
||||
mTextBoxPosX = mpTm_c[0]->getGlobalPosX();
|
||||
mTextBoxPosY = mpTm_c[0]->getGlobalPosY();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8023C928-8023CA88 237268 0160+00 1/0 0/0 0/0 .text __dt__14dMsgScrnBoss_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dMsgScrnBoss_c::~dMsgScrnBoss_c() {
|
||||
nofralloc
|
||||
#include "asm/msg/scrn/d_msg_scrn_boss/__dt__14dMsgScrnBoss_cFv.s"
|
||||
dMsgScrnBoss_c::~dMsgScrnBoss_c() {
|
||||
delete mpScreen;
|
||||
mpScreen = NULL;
|
||||
|
||||
delete mpPmp_c;
|
||||
mpPmp_c = NULL;
|
||||
|
||||
delete mpFontParent;
|
||||
mpFontParent = NULL;
|
||||
|
||||
delete mpBaseParent;
|
||||
mpBaseParent = NULL;
|
||||
|
||||
for (int i = 0; i < 7; i++) {
|
||||
delete mpTm_c[i];
|
||||
mpTm_c[i] = NULL;
|
||||
}
|
||||
|
||||
dComIfGp_getMsgArchive(4)->removeResourceAll();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8023CA88-8023CB98 2373C8 0110+00 1/0 0/0 0/0 .text exec__14dMsgScrnBoss_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgScrnBoss_c::exec() {
|
||||
nofralloc
|
||||
#include "asm/msg/scrn/d_msg_scrn_boss/exec__14dMsgScrnBoss_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
void dMsgScrnBoss_c::exec() {
|
||||
mpPmp_c->scale(g_MsgObject_HIO_c.mBossNameScaleX, g_MsgObject_HIO_c.mBossNameScaleY);
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80454BB4-80454BB8 0031B4 0004+00 1/1 0/0 0/0 .sdata2 @3916 */
|
||||
SECTION_SDATA2 static u8 lit_3916[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
mpFontParent->scale(g_MsgObject_HIO_c.mBossNameCharSizeX, g_MsgObject_HIO_c.mBossNameCharSizeY);
|
||||
mpFontParent->paneTrans(g_MsgObject_HIO_c.mBossNameCharPosX, g_MsgObject_HIO_c.mBossNameCharPosY);
|
||||
|
||||
mpBaseParent->scale(g_MsgObject_HIO_c.mBossNameBaseSizeX, g_MsgObject_HIO_c.mBossNameBaseSizeY);
|
||||
mpBaseParent->paneTrans(g_MsgObject_HIO_c.mBossNameBasePosX, g_MsgObject_HIO_c.mBossNameBasePosY);
|
||||
|
||||
if (isTalkNow()) {
|
||||
fukiAlpha(1.0f);
|
||||
}
|
||||
}
|
||||
|
||||
/* 8023CB98-8023CBF0 2374D8 0058+00 1/0 0/0 0/0 .text drawSelf__14dMsgScrnBoss_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgScrnBoss_c::drawSelf() {
|
||||
nofralloc
|
||||
#include "asm/msg/scrn/d_msg_scrn_boss/drawSelf__14dMsgScrnBoss_cFv.s"
|
||||
void dMsgScrnBoss_c::drawSelf() {
|
||||
J2DGrafContext* ctx = dComIfGp_getCurrentGrafPort();
|
||||
ctx->setup2D();
|
||||
drawOutFont(0.0f, 0.0f, 1.0f);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8023CBF0-8023CC7C 237530 008C+00 1/0 0/0 0/0 .text fukiAlpha__14dMsgScrnBoss_cFf */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgScrnBoss_c::fukiAlpha(f32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/msg/scrn/d_msg_scrn_boss/fukiAlpha__14dMsgScrnBoss_cFf.s"
|
||||
void dMsgScrnBoss_c::fukiAlpha(f32 alpha) {
|
||||
mpPmp_c->setAlphaRate(alpha);
|
||||
mpBaseParent->setAlphaRate(alpha * g_MsgObject_HIO_c.mBossNameBaseAlpha);
|
||||
|
||||
for (int i = 0; i < 7; i++) {
|
||||
mpTm_c[i]->setAlphaRate(alpha);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8023CC7C-8023CC80 2375BC 0004+00 1/0 0/0 0/0 .text fukiScale__14dMsgScrnBoss_cFf */
|
||||
void dMsgScrnBoss_c::fukiScale(f32 param_0) {
|
||||
void dMsgScrnBoss_c::fukiScale(f32) {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
/* 8023CC80-8023CC84 2375C0 0004+00 1/0 0/0 0/0 .text fukiTrans__14dMsgScrnBoss_cFff */
|
||||
void dMsgScrnBoss_c::fukiTrans(f32 param_0, f32 param_1) {
|
||||
void dMsgScrnBoss_c::fukiTrans(f32, f32) {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
/* 8023CC84-8023CC88 2375C4 0004+00 1/0 0/0 0/0 .text fontAlpha__14dMsgScrnBoss_cFf */
|
||||
void dMsgScrnBoss_c::fontAlpha(f32 param_0) {
|
||||
void dMsgScrnBoss_c::fontAlpha(f32) {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
|
||||
@@ -11,46 +11,11 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct mDoCPd_c {
|
||||
static u8 m_cpadInfo[256];
|
||||
};
|
||||
|
||||
struct dMsgString_c {
|
||||
/* 80249C20 */ dMsgString_c();
|
||||
/* 80249D28 */ ~dMsgString_c();
|
||||
};
|
||||
|
||||
struct STControl {
|
||||
/* 8003219C */ void checkTrigger();
|
||||
/* 80032524 */ void checkUpTrigger();
|
||||
/* 800325A0 */ void checkDownTrigger();
|
||||
};
|
||||
|
||||
struct J2DOrthoGraph {};
|
||||
|
||||
struct dMsgScrnExplain_c {
|
||||
/* 8023CC88 */ dMsgScrnExplain_c(STControl*, u8, bool, u8);
|
||||
/* 8023D538 */ ~dMsgScrnExplain_c();
|
||||
/* 8023D7D8 */ void move();
|
||||
/* 8023D918 */ void draw(J2DOrthoGraph*);
|
||||
/* 8023DAD0 */ void wait_init();
|
||||
/* 8023DAD4 */ void wait_proc();
|
||||
/* 8023DAD8 */ void open_request_init();
|
||||
/* 8023DADC */ void open_request_proc();
|
||||
/* 8023DBE4 */ void open_init();
|
||||
/* 8023DC7C */ void open_proc();
|
||||
/* 8023DD90 */ void move_init();
|
||||
/* 8023DDB4 */ void move_proc();
|
||||
/* 8023DE8C */ void move_select_init();
|
||||
/* 8023E0F4 */ void move_select_proc();
|
||||
/* 8023E43C */ void close_init();
|
||||
/* 8023E448 */ void close_proc();
|
||||
/* 8023E558 */ void openExplain(u32, u8, u8, u8, bool);
|
||||
/* 8023E5CC */ void getAlphaRatio();
|
||||
/* 8023E640 */ void checkTriggerA();
|
||||
/* 8023E654 */ void checkTriggerB();
|
||||
};
|
||||
|
||||
struct dMsgScrnArrow_c {
|
||||
/* 8023B9B4 */ dMsgScrnArrow_c();
|
||||
/* 8023BDC0 */ void draw();
|
||||
@@ -73,77 +38,11 @@ struct dMsgScrn3Select_c {
|
||||
/* 8023A97C */ void getCharSpace();
|
||||
};
|
||||
|
||||
struct J2DTextBox {
|
||||
/* 80300658 */ void getStringPtr() const;
|
||||
/* 8030074C */ void setString(s16, char const*, ...);
|
||||
};
|
||||
|
||||
struct JUTFont {};
|
||||
|
||||
struct COutFont_c {
|
||||
/* 80225C94 */ COutFont_c(u8);
|
||||
};
|
||||
|
||||
struct dMsgObject_c {
|
||||
/* 802380F4 */ void getString(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, char*,
|
||||
char*, char*, s16*);
|
||||
};
|
||||
|
||||
struct JMSMesgEntry_c {};
|
||||
|
||||
struct dMeter2Info_c {
|
||||
/* 8021C250 */ void getString(u32, char*, JMSMesgEntry_c*);
|
||||
/* 8021C7FC */ void getStringLength(JUTFont*, f32, f32, char*);
|
||||
};
|
||||
|
||||
struct Z2SpeechMgr2 {
|
||||
/* 802CBF60 */ void setTextCount(s16);
|
||||
};
|
||||
|
||||
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 */];
|
||||
};
|
||||
|
||||
struct ResTIMG {};
|
||||
|
||||
struct JKRExpHeap {};
|
||||
|
||||
struct JKRArchive {};
|
||||
|
||||
struct J2DGrafContext {};
|
||||
|
||||
struct J2DScreen {
|
||||
/* 802F8498 */ J2DScreen();
|
||||
/* 802F8648 */ void setPriority(char const*, u32, JKRArchive*);
|
||||
/* 802F8ED4 */ void draw(f32, f32, J2DGrafContext const*);
|
||||
};
|
||||
|
||||
struct J2DPicture {
|
||||
/* 802FC708 */ J2DPicture(ResTIMG const*);
|
||||
};
|
||||
|
||||
struct J2DPane {
|
||||
/* 802F7100 */ void getBounds();
|
||||
};
|
||||
|
||||
struct CPaneMgrAlpha {
|
||||
/* 802557D0 */ void setAlphaRate(f32);
|
||||
};
|
||||
|
||||
struct CPaneMgr {
|
||||
/* 80253984 */ CPaneMgr(J2DScreen*, u64, u8, JKRExpHeap*);
|
||||
/* 802545B0 */ void paneTrans(f32, f32);
|
||||
/* 80254EBC */ void getGlobalVtxCenter(J2DPane*, bool, s16);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -228,12 +127,7 @@ extern "C" void _restgpr_24();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" void snprintf();
|
||||
extern "C" void strcat();
|
||||
extern "C" void strcpy();
|
||||
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_meter2_info[248];
|
||||
extern "C" extern u8 g_MsgObject_HIO_c[1040];
|
||||
extern "C" extern u8 data_80450B70[4];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
@@ -436,7 +330,8 @@ asm dMsgScrnExplain_c::dMsgScrnExplain_c(STControl* param_0, u8 param_1, bool pa
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dMsgScrnExplain_c::~dMsgScrnExplain_c() {
|
||||
// asm dMsgScrnExplain_c::~dMsgScrnExplain_c() {
|
||||
extern "C" asm void __dt__17dMsgScrnExplain_cFv() {
|
||||
nofralloc
|
||||
#include "asm/msg/scrn/d_msg_scrn_explain/__dt__17dMsgScrnExplain_cFv.s"
|
||||
}
|
||||
@@ -617,7 +512,7 @@ asm void dMsgScrnExplain_c::close_proc() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgScrnExplain_c::openExplain(u32 param_0, u8 param_1, u8 param_2, u8 param_3,
|
||||
asm bool dMsgScrnExplain_c::openExplain(u32 param_0, u8 param_1, u8 param_2, u8 param_3,
|
||||
bool param_4) {
|
||||
nofralloc
|
||||
#include "asm/msg/scrn/d_msg_scrn_explain/openExplain__17dMsgScrnExplain_cFUlUcUcUcb.s"
|
||||
|
||||
Reference in New Issue
Block a user