d_menu_save / pane_class / rename some data (#205)

* 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

* finish d_menu_save / d_pane_class_alpha / d_pane_class / rename some data

* rename more data

* remove asm / progress

* match all of d_pane_class

* fixes / some dKankyo doc
This commit is contained in:
TakaRikka
2022-07-04 12:21:57 -07:00
committed by GitHub
parent b68cfbc0e6
commit 929c5cfa5a
572 changed files with 4756 additions and 8007 deletions
+17 -10
View File
@@ -18079,32 +18079,32 @@ int daAlink_c::checkItemSetButton(int i_itemNo) {
/* 800C0284-800C02C8 0BABC4 0044+00 1/1 0/0 0/0 .text checkField__9daAlink_cFv */
bool daAlink_c::checkField() {
return dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()) == 0;
return dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()) == ST_FIELD;
}
/* 800C02C8-800C0310 0BAC08 0048+00 6/6 0/0 0/0 .text checkBossRoom__9daAlink_cFv */
bool daAlink_c::checkBossRoom() {
return dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()) == 3;
return dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()) == ST_BOSS_ROOM;
}
/* 800C0310-800C0358 0BAC50 0048+00 4/4 0/0 0/0 .text checkDungeon__9daAlink_cFv */
bool daAlink_c::checkDungeon() {
return dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()) == 1;
return dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()) == ST_DUNGEON;
}
/* 800C0358-800C03A0 0BAC98 0048+00 3/3 0/0 0/0 .text checkCastleTown__9daAlink_cFv */
bool daAlink_c::checkCastleTown() {
return dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()) == 4;
return dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()) == ST_CASTLE_TOWN;
}
/* 800C03A0-800C03E8 0BACE0 0048+00 6/6 0/0 1/1 .text checkCloudSea__9daAlink_cFv */
bool daAlink_c::checkCloudSea() {
return dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()) == 5;
return dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()) == ST_CLOUD_SEA;
}
/* 800C03E8-800C044C 0BAD28 0064+00 5/5 0/0 0/0 .text checkRoomOnly__9daAlink_cFv */
bool daAlink_c::checkRoomOnly() {
return dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()) == 2 || checkLv7DungeonShop();
return dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()) == ST_ROOM || checkLv7DungeonShop();
}
/* 800C044C-800C04B4 0BAD8C 0068+00 3/3 0/0 0/0 .text checkLv2DungeonRoomSpecial__9daAlink_cFv */
@@ -19697,9 +19697,9 @@ asm void daAlink_c::setWaterDropColor(J3DGXColorS10 const* param_0) {
/* 800CC7DC-800CC7FC 0C711C 0020+00 2/2 0/0 0/0 .text initTevCustomColor__9daAlink_cFv */
void daAlink_c::initTevCustomColor() {
mTevStr.field_0x367 = 0;
mTevStr.field_0x358 = 0;
mTevStr.field_0x35a = 0;
mTevStr.field_0x35c = 0;
mTevStr.mFogColor.r = 0;
mTevStr.mFogColor.g = 0;
mTevStr.mFogColor.b = 0;
mTevStr.field_0x360 = 0;
mTevStr.field_0x362 = 0;
}
@@ -20034,7 +20034,14 @@ daAlink_c::firePointEff_c::firePointEff_c() {
}
/* 800CFC7C-800CFCB8 0CA5BC 003C+00 0/0 2/2 0/0 .text __dt__15LIGHT_INFLUENCEFv */
LIGHT_INFLUENCE::~LIGHT_INFLUENCE() {}
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
extern "C" asm void __dt__15LIGHT_INFLUENCEFv() {
nofralloc
#include "asm/d/a/d_a_alink/__dt__15LIGHT_INFLUENCEFv.s"
}
#pragma pop
/* 800CFCB8-800CFCF4 0CA5F8 003C+00 2/2 0/0 0/0 .text __dt__18daAlink_footData_cFv */
daAlink_footData_c::~daAlink_footData_c() {}
+1 -1
View File
@@ -83,7 +83,7 @@ extern "C" u8 mGndCheck__11fopAcM_gc_c[84];
extern "C" u8 mStatus__20dStage_roomControl_c[65792];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 data_804505F0[8];
extern "C" extern u8 data_80450D68[4];
extern "C" extern u8 mNoChangeRoom__20dStage_roomControl_c[4];
//
// Declarations:
+11 -11
View File
@@ -1775,22 +1775,22 @@ int daNpcT_c::draw(int param_0, int param_1, f32 param_2, GXColorS10* color, f32
return 1;
}
mTevStr.field_0x358 = 0;
mTevStr.field_0x35a = 0;
mTevStr.field_0x35c = 0;
mTevStr.field_0x35e = 0;
mTevStr.mFogColor.r = 0;
mTevStr.mFogColor.g = 0;
mTevStr.mFogColor.b = 0;
mTevStr.mFogColor.a = 0;
if (color != NULL) {
mTevStr.field_0x358 = color->r;
mTevStr.field_0x35a = color->g;
mTevStr.field_0x35c = color->b;
mTevStr.field_0x35e = color->a;
mTevStr.mFogColor.r = color->r;
mTevStr.mFogColor.g = color->g;
mTevStr.mFogColor.b = color->b;
mTevStr.mFogColor.a = color->a;
}
if (field_0xdb8 != 0 && mTimer != 0) {
f32 r = (f32)field_0xdb8 / (f32)mTimer;
if (!cM3d_IsZero(r)) {
mTevStr.field_0x358 = r * 20.0f;
mTevStr.mFogColor.r = r * 20.0f;
}
} else if (param_0 != 0) {
mTevStr.field_0x35a = 20;
@@ -1874,8 +1874,8 @@ asm int daNpcT_c::draw(int param_0, int param_1, f32 param_2, _GXColorS10* param
/* 80148C70-80148CCC 1435B0 005C+00 1/1 0/0 58/58 .text setEnvTevColor__8daNpcT_cFv */
void daNpcT_c::setEnvTevColor() {
mTevStr.field_0x381 = dComIfG_Bgsp().GetPolyColor(field_0x930);
mTevStr.field_0x380 = dComIfG_Bgsp().GetRoomId(field_0x930);
mTevStr.mEnvrIdxOverride = dComIfG_Bgsp().GetPolyColor(field_0x930);
mTevStr.mRoomNo = dComIfG_Bgsp().GetRoomId(field_0x930);
}
/* 80148CCC-80148D10 14360C 0044+00 1/1 0/0 58/58 .text setRoomNo__8daNpcT_cFv */
+4 -4
View File
@@ -543,23 +543,23 @@ 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) {
int 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);
}
return false;
return 0;
}
/* 80074EA0-80074EF0 06F7E0 0050+00 0/0 13/13 0/0 .text GetPolyAtt1__4dBgSFRC13cBgS_PolyInfo */
bool dBgS::GetPolyAtt1(cBgS_PolyInfo const& poly) {
int dBgS::GetPolyAtt1(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->GetPolyAtt1(poly);
}
return false;
return 0;
}
/* 80074EF0-80074F40 06F830 0050+00 0/0 7/7 8/8 .text GetGroundCode__4dBgSFRC13cBgS_PolyInfo */
+2 -2
View File
@@ -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 int dBgW::GetPolyAtt0(cBgS_PolyInfo const& param_0) {
nofralloc
#include "asm/d/bg/d_bg_w/GetPolyAtt0__4dBgWFRC13cBgS_PolyInfo.s"
}
@@ -1177,7 +1177,7 @@ asm BOOL dBgW::GetPolyAtt0(cBgS_PolyInfo const& param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm bool dBgW::GetPolyAtt1(cBgS_PolyInfo const& param_0) {
asm int dBgW::GetPolyAtt1(cBgS_PolyInfo const& param_0) {
nofralloc
#include "asm/d/bg/d_bg_w/GetPolyAtt1__4dBgWFRC13cBgS_PolyInfo.s"
}
+2 -2
View File
@@ -767,7 +767,7 @@ asm s32 dBgWKCol::GetWallCode(cBgS_PolyInfo const& param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm BOOL dBgWKCol::GetPolyAtt0(cBgS_PolyInfo const& param_0) {
asm int dBgWKCol::GetPolyAtt0(cBgS_PolyInfo const& param_0) {
nofralloc
#include "asm/d/bg/d_bg_w_kcol/GetPolyAtt0__8dBgWKColFRC13cBgS_PolyInfo.s"
}
@@ -777,7 +777,7 @@ asm BOOL dBgWKCol::GetPolyAtt0(cBgS_PolyInfo const& param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dBgWKCol::GetPolyAtt1(cBgS_PolyInfo const& param_0) {
asm int dBgWKCol::GetPolyAtt1(cBgS_PolyInfo const& param_0) {
nofralloc
#include "asm/d/bg/d_bg_w_kcol/GetPolyAtt1__8dBgWKColFRC13cBgS_PolyInfo.s"
}
+1 -1
View File
@@ -816,7 +816,7 @@ extern "C" f32 Zero__4cXyz[3];
extern "C" u8 BaseY__4cXyz[12];
extern "C" extern u8 g_dComIfGoat_gameInfo[4 + 4 /* padding */];
extern "C" extern u8 data_80450B44[4];
extern "C" extern u8 struct_80450BE4[4];
extern "C" extern u8 mBlureFlag__13mDoGph_gInf_c[4];
extern "C" u8 stopStatus__10fopAc_ac_c[4];
extern "C" u8 m_object__7dDemo_c[4];
extern "C" u8 m_midnaActor__9daPy_py_c[4];
+1 -1
View File
@@ -532,7 +532,7 @@ extern "C" extern u8 g_env_light[4880];
extern "C" extern u32 g_blackColor;
extern "C" extern u32 __float_max;
extern "C" extern u8 data_80450B74[4];
extern "C" extern u8 struct_80450D64[4];
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
extern "C" u8 mEmitterMng__13dPa_control_c[4];
//
+1 -1
View File
@@ -109,7 +109,7 @@ extern "C" extern void* __vt__8cM3dGLin[3];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_mEnvSeMgr[780];
extern "C" extern u32 __float_max;
extern "C" extern u8 struct_80450D64[4];
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
//
// Declarations:
+1 -1
View File
@@ -170,7 +170,7 @@ extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 j3dSys[284];
extern "C" extern u8 g_clearColor[4];
extern "C" extern u8 data_80450688[8];
extern "C" extern u8 struct_80450BB8[4];
extern "C" extern u8 mInitFlag__17mDoAud_zelAudio_c[4];
extern "C" u8 mFrameBufferTimg__13mDoGph_gInf_c[4];
extern "C" u8 mFrameBufferTex__13mDoGph_gInf_c[4];
extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */];
+1 -1
View File
@@ -402,7 +402,7 @@ extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" f32 Zero__4cXyz[3];
extern "C" extern u32 __float_nan;
extern "C" extern u8 struct_80450D64[4];
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
extern "C" u8 m_object__7dDemo_c[4];
extern "C" extern u8 struct_80450F88[8];
extern "C" u8 m_midnaActor__9daPy_py_c[4];
+1 -1
View File
@@ -150,7 +150,7 @@ extern "C" extern u8 j3dSys[284];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" extern u32 __float_nan;
extern "C" f32 mGroundY__11fopAcM_gc_c;
extern "C" extern u8 struct_80450D64[4];
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
//
// Declarations:
+1 -1
View File
@@ -169,7 +169,7 @@ extern "C" u8 mGndCheck__11fopAcM_gc_c[84];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_env_light[4880];
extern "C" extern u8 j3dSys[284];
extern "C" extern u8 struct_80450D64[4];
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
//
// Declarations:
+1 -1
View File
@@ -128,7 +128,7 @@ extern "C" extern u8 g_mEnvSeMgr[780];
extern "C" extern u8 g_Counter[12 + 4 /* padding */];
extern "C" extern u8 j3dSys[284];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" extern u8 struct_80450D64[4];
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
extern "C" extern u8 struct_80451070[8];
//
+2 -2
View File
@@ -61,8 +61,8 @@ void dMdl_c::draw() {
mpModelData->getMaterialNodePointer(mMaterialId)->loadSharedDL();
shape->loadPreDrawSetting();
GXColor amb_color = {mpTevstr->field_0x348.r, mpTevstr->field_0x348.g, mpTevstr->field_0x348.b,
mpTevstr->field_0x348.a};
GXColor amb_color = {mpTevstr->mColorC0.r, mpTevstr->mColorC0.g, mpTevstr->mColorC0.b,
mpTevstr->mColorC0.a};
GXSetChanAmbColor(GX_COLOR0A0, amb_color);
GXSetChanMatColor(GX_COLOR0A0, g_whiteColor);
dKy_setLight_nowroom_actor(mpTevstr);
+42 -43
View File
@@ -442,7 +442,7 @@ static u8 dStage_isBossStage(dStage_dt_c* stageDt) {
return false;
}
return dStage_stagInfo_GetSTType(pstag) == 3;
return dStage_stagInfo_GetSTType(pstag) == ST_BOSS_ROOM;
}
/* 80023F50-80023F84 01E890 0034+00 1/1 0/0 0/1 .text dStage_KeepDoorInfoInit__FP11dStage_dt_c */
@@ -503,40 +503,12 @@ void dStage_startStage_c::set(const char* i_Name, s8 i_RoomNo, s16 i_Point, s8 i
/* 803F6094-80406194 022DB4 10100+00 12/12 31/31 16/16 .bss mStatus__20dStage_roomControl_c */
dStage_roomStatus_c dStage_roomControl_c::mStatus[0x40];
/* 80450D58-80450D60 000258 0008+00 1/1 0/0 0/0 .sbss tmp_name$4456 */
static char tmp_name[8];
/* 80450D60-80450D64 000260 0004+00 1/1 3/3 1/1 .sbss mProcID__20dStage_roomControl_c */
u32 dStage_roomControl_c::mProcID;
/* 80450D64-80450D68 -00001 0004+00 6/6 94/94 101/101 .sbss None */
/* 80450D64 0001+00 data_80450D64 None */
s8 struct_80450D64;
/* 80450D65 0001+00 data_80450D65 None */
s8 gLastStayNo;
/* 80450D66 0001+00 data_80450D66 None */
s8 gNextStayNo;
/* 80450D67 0001+00 data_80450D67 None */
s8 gTimePass;
/* 80450D68-80450D6C 000268 0004+00 2/2 2/2 1/1 .sbss None */
u8 data_80450D68;
/* 80450D6C-80450D70 00026C 0004+00 1/1 2/2 0/0 .sbss mArcBankName__20dStage_roomControl_c */
char* dStage_roomControl_c::mArcBankName;
/* 80450D70-80450D74 000270 0004+00 1/1 1/1 0/0 .sbss mArcBankData__20dStage_roomControl_c */
char* dStage_roomControl_c::mArcBankData;
/* 800241E8-80024338 01EB28 0150+00 1/1 0/0 0/4 .text init__20dStage_roomControl_cFv */
void dStage_roomControl_c::init() {
struct_80450D64 = -1;
gLastStayNo = -1;
gNextStayNo = -1;
data_80450D68 = 0;
mStayNo = -1;
mOldStayNo = -1;
mNextStayNo = -1;
mNoChangeRoom = 0;
data_804505F0 = -1;
if (dComIfGp_getStartStagePoint() >= 0 || dComIfGp_getStartStagePoint() == -4) {
@@ -1610,20 +1582,20 @@ JKRExpHeap* dStage_roomControl_c::getMemoryBlock(int i_roomNo) {
/* 800243E8-80024424 01ED28 003C+00 2/2 0/0 0/0 .text setStayNo__20dStage_roomControl_cFi
*/
void dStage_roomControl_c::setStayNo(int stayNo) {
gLastStayNo = struct_80450D64;
struct_80450D64 = stayNo;
gNextStayNo = struct_80450D64;
mOldStayNo = mStayNo;
mStayNo = stayNo;
mNextStayNo = mStayNo;
if (struct_80450D64 < 0) {
if (mStayNo < 0) {
return;
}
onStatusDraw(struct_80450D64);
onStatusDraw(mStayNo);
}
/* 80024424-8002442C 01ED64 0008+00 0/0 0/0 1/1 .text setNextStayNo__20dStage_roomControl_cFi */
void dStage_roomControl_c::setNextStayNo(int nextStayNo) {
gNextStayNo = nextStayNo;
mNextStayNo = nextStayNo;
}
static int stayRoomCheck(int param_0, u8* param_1, int param_2) {
@@ -1679,8 +1651,8 @@ void dStage_roomControl_c::zoneCountCheck(int stayNo) const {
dComIfGs_clearRoomSwitch(status->mZoneNo);
dComIfGs_clearRoomItem(status->mZoneNo);
if (dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()) != 0 &&
stayNo != gLastStayNo) {
if (dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()) != ST_FIELD &&
stayNo != mOldStayNo) {
if (--status->mZoneCount == 0) {
dComIfGs_removeZone(status->mZoneNo);
status->mZoneNo = -1;
@@ -1928,7 +1900,7 @@ static int dStage_roomInit(int stayNo) {
/* 80024DB0-80024DB8 01F6F0 0008+00 2/2 0/0 0/0 .text SetTimePass__20dStage_roomControl_cFi */
void dStage_roomControl_c::SetTimePass(int isPassing) {
gTimePass = isPassing;
m_time_pass = isPassing;
}
roomRead_class* dStage_stageDt_c::getRoom() const {
@@ -1948,6 +1920,8 @@ dStage_objectNameInf* dStage_searchName(char const* objName) {
}
static const char* dStage_getName(s16 procName, s8 subtype) {
static char tmp_name[8];
dStage_objectNameInf* obj = &l_objectName[0];
char* tmp = NULL;
@@ -1974,6 +1948,31 @@ const char* dStage_getName2(s16 procName, s8 subtype) {
return dStage_getName(procName, subtype);
}
/* 80450D60-80450D64 000260 0004+00 1/1 3/3 1/1 .sbss mProcID__20dStage_roomControl_c */
u32 dStage_roomControl_c::mProcID;
/* 80450D64-80450D68 -00001 0004+00 6/6 94/94 101/101 .sbss None */
/* 80450D64 0001+00 data_80450D64 None */
s8 dStage_roomControl_c::mStayNo;
/* 80450D65 0001+00 data_80450D65 None */
s8 dStage_roomControl_c::mOldStayNo;
/* 80450D66 0001+00 data_80450D66 None */
s8 dStage_roomControl_c::mNextStayNo;
/* 80450D67 0001+00 data_80450D67 None */
s8 dStage_roomControl_c::m_time_pass;
/* 80450D68-80450D6C 000268 0004+00 2/2 2/2 1/1 .sbss None */
u8 dStage_roomControl_c::mNoChangeRoom;
/* 80450D6C-80450D70 00026C 0004+00 1/1 2/2 0/0 .sbss mArcBankName__20dStage_roomControl_c */
char* dStage_roomControl_c::mArcBankName;
/* 80450D70-80450D74 000270 0004+00 1/1 1/1 0/0 .sbss mArcBankData__20dStage_roomControl_c */
char* dStage_roomControl_c::mArcBankData;
/* 80024EFC-80024F98 01F83C 009C+00 7/7 0/0 0/0 .text
* dStage_actorCreate__FP22stage_actor_data_classP16fopAcM_prm_class */
static void dStage_actorCreate(stage_actor_data_class* param_0, fopAcM_prm_class* param_1) {
@@ -2926,7 +2925,7 @@ void dStage_Delete() {
strcmp(dComIfGp_getNextStageName(), dComIfGp_getStartStageName())) {
dStage_roomControl_c::destroyMemoryBlock();
if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == 1) {
if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == ST_DUNGEON) {
dRes_info_c* info = dComIfG_getStageResInfo("Stg_00");
*info->getArchiveName() = 'X';
dComIfGp_setOldMulti();
+2 -6
View File
@@ -61,10 +61,6 @@ extern "C" void _restgpr_28();
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern bool data_80450680;
//
// Declarations:
//
/* ############################################################################################## */
/* 80450F98-80450F9C 000498 0004+00 2/2 0/0 0/0 .sbss mTypeGroupData__7dTres_c */
dTres_c::typeGroupData_c* dTres_c::mTypeGroupData;
@@ -81,7 +77,7 @@ asm int dTres_c::createWork() {
/* 8009BC18-8009BC60 096558 0048+00 0/0 1/1 0/0 .text create__7dTres_cFv */
void dTres_c::create() {
if (dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()) != 3) {
if (dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()) != ST_BOSS_ROOM) {
reset();
}
}
@@ -116,7 +112,7 @@ void dTres_c::reset() {
*/
#ifdef NONMATCHING
void dTres_c::addData(dTres_c::list_class* p_list, s8 roomNo) {
if (dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()) != 3) {
if (dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()) != ST_BOSS_ROOM) {
reset();
typeGroupData_c* listData = p_list->field_0x4;
+513 -205
View File
@@ -11,6 +11,8 @@
#include "dol2asm.h"
#include "dolphin/types.h"
#include "m_Do/m_Do_audio.h"
#include "SSystem/SComponent/c_math.h"
#include "SSystem/SComponent/c_counter.h"
//
// Types:
@@ -305,7 +307,6 @@ extern "C" void __as__12J3DLightInfoFRC12J3DLightInfo();
extern "C" void setEffectMtx__13J3DTexMtxInfoFPA4_f();
extern "C" void simpleCalcMaterial__12J3DModelDataFUsPA4_f();
extern "C" void init__12J3DFrameCtrlFs();
extern "C" void GXInitLightAttn();
extern "C" void __register_global_object();
extern "C" void __destroy_arr();
extern "C" void __construct_array();
@@ -342,7 +343,6 @@ extern "C" extern void* g_fopKy_Method[5 + 1 /* padding */];
extern "C" u8 m_bloom__13mDoGph_gInf_c[20];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" u8 mStatus__20dStage_roomControl_c[65792];
extern "C" extern u8 g_Counter[12 + 4 /* padding */];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
@@ -545,7 +545,7 @@ SECTION_DATA static u8 lightStatusBase[232] = {
/* 803BBEAC-803BBEBC 018FCC 0010+00 4/4 0/0 0/0 .data lightMaskData */
SECTION_DATA static u16 lightMaskData[8] = {
0x0001, 0x0002, 0x0004, 0x0008, 0x0010, 0x0020, 0x0040, 0x0080,
GX_LIGHT0, GX_LIGHT1, GX_LIGHT2, GX_LIGHT3, GX_LIGHT4, GX_LIGHT5, GX_LIGHT6, GX_LIGHT7,
};
/* 8019CB0C-8019CCDC 19744C 01D0+00 3/2 0/0 0/0 .text dKy_WolfPowerup_BgAmbCol__FP11_GXColorS10 */
@@ -1049,7 +1049,7 @@ SECTION_SDATA2 static f32 lit_5077 = 99999.8984375f;
/* 8019E694-8019E708 198FD4 0074+00 2/2 0/0 0/0 .text plight_init__Fv */
static void plight_init() {
g_env_light.field_0x38[0].mPow = lit_5077;
g_env_light.mLightInfluence[0].mPow = lit_5077;
for (int i = 0; i < 100; i++) {
g_env_light.mPointLight[i] = NULL;
@@ -1060,8 +1060,8 @@ static void plight_init() {
g_env_light.field_0x72c[i] = NULL;
}
g_env_light.field_0x12a4 = -1;
g_env_light.field_0x12a8 = -1;
g_env_light.mPlayerPLightIdx = -1;
g_env_light.mPlayerEfLightIdx = -1;
}
/* 8019E708-8019E734 199048 002C+00 1/1 0/0 0/0 .text darkmist_init__Fv */
@@ -1206,6 +1206,186 @@ SECTION_SDATA2 static f32 lit_5348 = 360.0f;
SECTION_SDATA2 static f32 lit_5349 = 0.012000000104308128f;
/* 8019EC98-8019F264 1995D8 05CC+00 1/1 0/0 0/0 .text envcolor_init__Fv */
#ifdef NONMATCHING
static void envcolor_init() {
stage_palette_info_class* palette = dComIfGp_getStagePaletteInfo();
stage_pselect_info_class* pselect = dComIfGp_getStagePselectInfo();
stage_envr_info_class* envr = dComIfGp_getStageEnvrInfo();
stage_vrbox_info_class* vrbox = dComIfGp_getStageVrboxcolInfo();
dKy_actor_addcol_set(0, 0, 0, 0.0f);
dKy_fog_startendz_set(0.0f, 0.0f, 0.0f);
dKy_vrbox_addcol_set(0, 0, 0, 0.0f);
g_env_light.field_0x1280 = 0;
g_env_light.mInitAnmTimer = 1;
g_env_light.mSchBit = 0;
g_env_light.mSchbitTimer = 0;
g_env_light.mVrboxInvisible = false;
g_env_light.mContrastFlag = 0;
g_env_light.mFogAdjEnable = true;
g_env_light.mFogAdjTableType = 0;
g_env_light.mFogAdjCenter = 0x140;
dKyd_xfog_table_set(0);
g_env_light.mColAllcolRatio = 1.0f;
g_env_light.mColActColRatio = 1.0f;
g_env_light.mColBgColRatio = 1.0f;
g_env_light.mColFogColRatio = 1.0f;
g_env_light.mColVrboxSoraColRatio = 1.0f;
g_env_light.mColVrboxKumocolRatio = 1.0f;
g_env_light.field_0x1210 = 1.0f;
g_env_light.mAllcolRatio = 1.0f;
g_env_light.mActcolRatio = 1.0f;
g_env_light.mBgcolRatio = 1.0f;
g_env_light.mFogcolRatio = 1.0f;
g_env_light.mVrboxSoracolRatio = 1.0f;
g_env_light.mVrboxKumocolRatio = 1.0f;
g_env_light.field_0x122c = 1.0f;
g_env_light.mItemGetCol_chg = 0;
g_env_light.field_0x1240 = 0.0f;
g_env_light.field_0x1230 = 0.0f;
g_env_light.field_0x1234 = 0.0f;
g_env_light.mThunderEff.mStateTimer = 0;
g_env_light.field_0x1238 = 0.0f;
g_env_light.field_0x123c = 0.0f;
g_env_light.field_0x12d6 = 0;
g_env_light.mShadowMode = 0;
g_env_light.mCameraInWater = 0;
g_env_light.field_0x1258 = 0.0f;
g_env_light.mActorLightEffect = 100;
g_env_light.mPaletteTerrainLightEffect = 1.0f;
g_env_light.field_0x1064 = 0.0f;
g_env_light.field_0x1068 = -1.0f;
g_env_light.field_0x106c = -1.0f;
g_env_light.mDemoAttentionPoint = 0.0f;
if (!strcmp(dComIfGp_getStartStageName(), "R_SP127")) {
g_env_light.mDemoAttentionPoint = 0.11f;
}
g_env_light.field_0x1308 = 0;
g_env_light.field_0x130b = 0;
g_env_light.field_0x1309 = 1;
dKy_light_size_get(dComIfGp_getStartStageName());
g_env_light.mGrassLightEffectRate = 1.0f;
g_env_light.field_0x12fc = -1;
g_env_light.field_0x1278 = 0.0f;
g_env_light.field_0x1264 = -255.0f;
g_env_light.field_0x1268 = 999999.0f;
g_env_light.field_0x126c = 999999.0f;
g_env_light.field_0x127c = 200.0f;
if (dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()) == ST_BOSS_ROOM) {
g_env_light.mpSchedule = dKyd_schejule_boss_getp();
} else {
g_env_light.mpSchedule = dKyd_schejule_getp();
}
g_env_light.mNowRoom = dComIfGp_roomControl_getStayNo();
g_env_light.mEnvrIdxCurr = dComIfGp_roomControl_getStayNo();
g_env_light.mColPatBlend = 1.0f;
g_env_light.field_0x12b0 = 0;
g_env_light.mColpatWeather = 0;
g_env_light.field_0xecc = 0.0f;
if (!strcmp(dComIfGp_getStartStageName(), "F_SP127") || !strcmp(dComIfGp_getStartStageName(), "R_SP127")) {
if (g_env_light.field_0x12cc >= 7) {
g_env_light.mColpatWeather = 2;
} else if (g_env_light.field_0x12cc != 0) {
g_env_light.mColpatWeather = 1;
}
} else if (!strcmp(dComIfGp_getStartStageName(), "D_MN07A")) {
if (g_env_light.field_0x12cc == 1) {
g_env_light.mColpatWeather = 1;
} else if (g_env_light.field_0x12cc == 2) {
g_env_light.mColpatWeather = 2;
}
} else {
g_env_light.field_0x12cc = 0;
}
g_env_light.mRainCountOrig = 0;
g_env_light.field_0x12a0 = 0;
g_env_light.mDiceWeatherMode = 0;
g_env_light.mDiceWeatherChangeTime = dComIfGs_getTime() + (cM_rndF(g_Counter.mCounter0 & 0x1F) * 15.0f);
if (g_env_light.mDiceWeatherChangeTime >= 360.0f) {
g_env_light.mDiceWeatherChangeTime -= 360.0f;
}
g_env_light.mDiceWeatherState = 0;
g_env_light.mDiceWeatherCurrPattern = 0;
g_env_light.mDiceWeatherCounter = 0;
g_env_light.mDiceWeatherTime = 0.0f;
g_env_light.mColPatPrev = g_env_light.mColpatWeather;
g_env_light.mColPatCurr = g_env_light.mColpatWeather;
g_env_light.mColpatPrevGather = 0xFF;
g_env_light.mColpatCurrGather = 0xFF;
g_env_light.mColPatBlendGather = -1.0f;
g_env_light.mColPatMode = 0;
g_env_light.mColPatModeGather = 0;
if (envr != NULL) {
g_env_light.mpDmEnvr = envr;
} else {
g_env_light.mpDmEnvr = (stage_envr_info_class*)dKyd_dmenvr_getp();
}
if (palette != NULL) {
g_env_light.mpDmPalet = palette;
} else {
g_env_light.mpDmPalet = (stage_palette_info_class*)dKyd_dmpalet_getp();
}
if (pselect != NULL) {
g_env_light.mpDmPselect = pselect;
} else {
g_env_light.mpDmPselect = (stage_pselect_info_class*)dKyd_dmpselect_getp();
}
if (vrbox != NULL) {
g_env_light.mpDmVrbox = vrbox;
} else {
g_env_light.mpDmVrbox = (stage_vrbox_info_class*)dKyd_dmvrbox_getp();
}
plight_init();
plight_set();
darkmist_init();
bgparts_activelight_init();
g_env_light.field_0x11c8 = 1.0f;
g_env_light.field_0x11cc = 1.0f;
g_env_light.field_0x11d0 = 1.0f;
g_env_light.field_0xf2c = 0;
g_env_light.field_0xf30 = NULL;
g_env_light.field_0xf34 = 0.0f;
g_env_light.field_0xf38 = NULL;
undwater_init();
dComIfGs_PolyDamageOff_Set(0);
g_env_light.field_0x98c = dComIfGp_roomControl_getStayNo();
g_env_light.field_0x12fa = 0;
g_env_light.field_0x12fb = 0;
g_env_light.field_0x1300 = -1;
g_env_light.field_0x1302 = -1;
g_env_light.mWaterSurfaceShineRate = 1.0f;
int timeH = dStage_stagInfo_GetTimeH(i_dComIfGp_getStage()->getStagInfo());
if (timeH >= 0) {
dComIfGs_setTime(timeH * 15.0f);
}
g_env_light.mTimeSpeed = 0.012f;
memset(&g_env_light.mMoyaSE, 0, 0x10);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1214,12 +1394,37 @@ static asm void envcolor_init() {
#include "asm/d/kankyo/d_kankyo/envcolor_init__Fv.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 80453CB8-80453CBC 0022B8 0004+00 3/3 0/0 0/0 .sdata2 @5365 */
SECTION_SDATA2 static f32 lit_5365 = 120.0f;
/* 8019F264-8019F2E8 199BA4 0084+00 1/1 1/1 0/0 .text dKy_clear_game_init__Fv */
// matches with literals
#ifdef NONMATCHING
void dKy_clear_game_init() {
dKy_actor_addcol_set(0, 0, 0, 0.0f);
g_env_light.mSunPos.x = 1.0f;
g_env_light.mSunPos.y = 0.0f;
g_env_light.mSunPos.z = 0.0f;
g_env_light.mMoonPos.x = -1.0f;
g_env_light.mMoonPos.y = 0.0f;
g_env_light.mMoonPos.z = 0.0f;
g_env_light.mNexttime = -1.0f;
g_env_light.mTime = -1.0f;
g_env_light.mDarkDaytime = 120.0f;
g_env_light.mDarktimeWeek = 0;
g_env_light.field_0x12fe = 0;
g_env_light.field_0x130a = 0;
g_env_light.field_0x12cc = 0;
g_env_light.field_0x130c = 0;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1228,6 +1433,7 @@ asm void dKy_clear_game_init() {
#include "asm/d/kankyo/d_kankyo/dKy_clear_game_init__Fv.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 803BBFD0-803BBFF0 -00001 0020+00 1/1 0/0 0/0 .data @5842 */
@@ -1508,7 +1714,7 @@ WIND_INF_ENTITY::WIND_INF_ENTITY() {
}
/* 8019F4F8-8019F4FC 199E38 0004+00 1/1 0/0 0/0 .text __ct__15LIGHT_INFLUENCEFv */
LIGHT_INFLUENCE::LIGHT_INFLUENCE() {
extern "C" void __ct__15LIGHT_INFLUENCEFv() {
/* empty function */
}
@@ -1919,7 +2125,7 @@ asm void dScnKy_env_light_c::settingTevStruct_plightcol_plus(cXyz* param_0, dKy_
Z2EnvSeMgr g_mEnvSeMgr;
/* 8042E07C-8042E7BC 05AD9C 0740+00 5/4 0/0 0/0 .bss lightStatusData */
static u8 lightStatusData[1856];
static LightStatus lightStatusData[8];
/* 80453D4C-80453D50 00234C 0004+00 1/1 0/0 0/0 .sdata2 @7011 */
SECTION_SDATA2 static f32 lit_7011 = 30000.0f;
@@ -2214,14 +2420,70 @@ SECTION_DEAD static char const* const stringBase_80394E5E = "colordata_tbl.dat";
#pragma pop
/* 801A5C1C-801A5E54 1A055C 0238+00 1/0 0/0 0/0 .text dKy_Create__FPv */
// matches with literals
#ifdef NONMATCHING
static int dKy_Create(void*) {
BOOL setNextTime = false;
stage_envr_info_class* envr = dComIfGp_getStageEnvrInfo();
if (envr != NULL && dComIfGp_getStartStageRoomNo() != -1) {
if (envr[dComIfGp_getStartStageRoomNo()].field_0x0[0x40] != 0) {
mDoGph_gInf_c::getBloom()->create();
}
}
envcolor_init();
g_env_light.field_0x12b0 = 0;
g_env_light.field_0x1254 = 1.0f;
g_env_light.mPLightNearPos.x = 0.0f;
g_env_light.mPLightNearPos.y = 0.0f;
g_env_light.mPLightNearPos.z = 0.0f;
g_env_light.field_0xf3c = 0;
g_env_light.field_0xf40 = 0.0f;
g_env_light.field_0xf3d = 0;
dKy_setLight_init();
dKy_Sound_init();
dKyw_wind_set();
dungeonlight_init();
dKy_setLight_nowroom(dComIfGp_roomControl_getStayNo());
g_env_light.mResPolEfftbl = (dKy_pol_efftbl_struct*)dComIfG_getStageRes("pol_efftbl.dat");
g_env_light.mResPolEffcol = (dKy_pol_effcol_struct*)dComIfG_getStageRes("pol_effcol.dat");
g_env_light.mResPolEfftbl2 = (dKy_pol_efftbl_struct*)dComIfG_getStageRes("pol_efftbl2.dat");
g_env_light.mResPolEffcol2 = (dKy_pol_effcol_struct*)dComIfG_getStageRes("pol_effcol2.dat");
g_env_light.mResPolSound = (dKy_pol_sound_struct*)dComIfG_getStageRes("pol_sound.dat");
g_env_light.mResPolArg = (dKy_pol_arg_struct*)dComIfG_getStageRes("pol_arg.dat");
g_env_light.mResColorDataTbl = (dKy_color_data_struct*)dComIfG_getStageRes("colordata_tbl.dat");
if (g_env_light.mNexttime != -1.0f) {
setNextTime = true;
dComIfGs_setTime(g_env_light.mNexttime);
}
if (dKy_darkworld_check()) {
if (g_env_light.mTime == -1.0f) {
g_env_light.mTime = dComIfGs_getTime();
}
} else if (g_env_light.mTime != -1.0f) {
if (!setNextTime) {
dComIfGs_setTime(g_env_light.mTime);
}
g_env_light.mTime = -1.0f;
}
g_env_light.mNexttime = -1.0f;
return 4;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dKy_Create(void* param_0) {
static asm int dKy_Create(void* param_0) {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_Create__FPv.s"
}
#pragma pop
#endif
/* 801A5E54-801A60BC 1A0794 0268+00 1/1 1/1 0/0 .text dKy_setLight_init__Fv */
#pragma push
@@ -2234,14 +2496,9 @@ asm void dKy_setLight_init() {
#pragma pop
/* 801A60BC-801A60E0 1A09FC 0024+00 0/0 1/1 0/0 .text dKy_setLight__Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKy_setLight() {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_setLight__Fv.s"
void dKy_setLight() {
g_env_light.mSunPos2 = g_env_light.mSunPos;
}
#pragma pop
/* 801A60E0-801A61F4 1A0A20 0114+00 2/2 0/0 0/0 .text dKy_GlobalLight_set__Fv */
#pragma push
@@ -2553,14 +2810,11 @@ asm void dKy_vrbox_addcol_kasumi_set(s16 param_0, s16 param_1, s16 param_2, f32
#pragma pop
/* 801A8060-801A80D0 1A29A0 0070+00 1/1 0/0 0/0 .text dKy_vrbox_addcol_set__Fsssf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dKy_vrbox_addcol_set(s16 param_0, s16 param_1, s16 param_2, f32 param_3) {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_vrbox_addcol_set__Fsssf.s"
static void dKy_vrbox_addcol_set(s16 param_0, s16 param_1, s16 param_2, f32 param_3) {
dKy_vrbox_addcol_sky0_set(param_0, param_1, param_2, param_3);
dKy_vrbox_addcol_kasumi_set(param_0, param_1, param_2, param_3);
dKy_addcol_fog_set(param_0, param_1, param_2, param_3);
}
#pragma pop
/* ############################################################################################## */
/* 80394C6C-80394C6C 0212CC 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@@ -2581,24 +2835,24 @@ asm void dKy_fog_startendz_set(f32 param_0, f32 param_1, f32 param_2) {
#pragma pop
/* 801A8168-801A8190 1A2AA8 0028+00 0/0 1/1 0/0 .text dKy_Itemgetcol_chg_on__Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKy_Itemgetcol_chg_on() {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_Itemgetcol_chg_on__Fv.s"
void dKy_Itemgetcol_chg_on() {
if (g_env_light.mItemGetCol_chg != 0 && g_env_light.mItemGetCol_chg != 6) {
return;
}
g_env_light.mItemGetCol_chg = 1;
}
#pragma pop
/* 801A8190-801A81C0 1A2AD0 0030+00 2/2 0/0 0/0 .text dKy_Sound_init__Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dKy_Sound_init() {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_Sound_init__Fv.s"
static void dKy_Sound_init() {
f32 tmp = lit_5346;
g_env_light.mSound.field_0x0.x = tmp;
g_env_light.mSound.field_0x0.y = tmp;
g_env_light.mSound.field_0x0.z = tmp;
g_env_light.mSound.field_0xc = 0;
g_env_light.mSound.field_0x14 = -1;
g_env_light.mSound.field_0x10 = 0;
}
#pragma pop
/* 801A81C0-801A8474 1A2B00 02B4+00 0/0 5/5 27/27 .text dKy_Sound_set__F4cXyziUii */
#pragma push
@@ -2611,14 +2865,9 @@ asm void dKy_Sound_set(cXyz param_0, int param_1, unsigned int param_2, int para
#pragma pop
/* 801A8474-801A8484 1A2DB4 0010+00 0/0 1/1 8/8 .text dKy_Sound_get__Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm SND_INFLUENCE* dKy_Sound_get() {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_Sound_get__Fv.s"
SND_INFLUENCE* dKy_Sound_get() {
return &g_env_light.mSound;
}
#pragma pop
/* 801A8484-801A8538 1A2DC4 00B4+00 0/0 2/2 0/0 .text dKy_SordFlush_set__F4cXyzi */
#pragma push
@@ -2695,37 +2944,96 @@ static asm void GxXFog_set() {
#pragma pop
/* 801A87E4-801A880C 1A3124 0028+00 0/0 0/0 52/52 .text dKy_change_colpat__FUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKy_change_colpat(u8 param_0) {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_change_colpat__FUc.s"
void dKy_change_colpat(u8 colpat) {
g_env_light.mColpatCurrGather = colpat;
if (g_env_light.mColPatCurr == colpat) {
return;
}
g_env_light.mColPatBlendGather = FLOAT_LABEL(lit_4409);
}
#pragma pop
/* 801A880C-801A8854 1A314C 0048+00 0/0 0/0 25/25 .text dKy_custom_colset__FUcUcf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKy_custom_colset(u8 param_0, u8 param_1, f32 param_2) {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_custom_colset__FUcUcf.s"
void dKy_custom_colset(u8 prevGather, u8 curGather, f32 blend) {
if (g_env_light.mInitAnmTimer != 1) {
if (blend < lit_4505) {
g_env_light.mColpatPrevGather = prevGather;
} else {
g_env_light.mColpatPrevGather = curGather;
}
g_env_light.mColpatCurrGather = curGather;
g_env_light.mColPatBlendGather = blend;
g_env_light.mColPatModeGather = 1;
}
}
#pragma pop
/* 801A8854-801A88EC 1A3194 0098+00 0/0 0/0 2/2 .text dKy_setLight_mine__FP12dKy_tevstr_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKy_setLight_mine(dKy_tevstr_c* param_0) {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_setLight_mine__FP12dKy_tevstr_c.s"
void dKy_setLight_mine(dKy_tevstr_c* p_tevstr) {
GXLightObj light;
GXInitLightPos(&light, p_tevstr->mLightObj.mInfo.mLightPosition.x,
p_tevstr->mLightObj.mInfo.mLightPosition.y,
p_tevstr->mLightObj.mInfo.mLightPosition.z);
GXInitLightDir(&light, p_tevstr->mLightObj.mInfo.mLightDirection.x,
p_tevstr->mLightObj.mInfo.mLightDirection.y,
p_tevstr->mLightObj.mInfo.mLightDirection.z);
GXInitLightColor(&light, p_tevstr->mLightObj.mInfo.mColor);
GXInitLightAttn(&light, p_tevstr->mLightObj.mInfo.mCosAtten.x,
p_tevstr->mLightObj.mInfo.mCosAtten.y, p_tevstr->mLightObj.mInfo.mCosAtten.z,
p_tevstr->mLightObj.mInfo.mDistAtten.x, p_tevstr->mLightObj.mInfo.mDistAtten.y,
p_tevstr->mLightObj.mInfo.mDistAtten.z);
GXLoadLightObjImm(&light, (GXLightID)*lightMaskData);
}
#pragma pop
/* 801A88EC-801A8A34 1A322C 0148+00 2/2 5/5 11/11 .text dKy_tevstr_init__FP12dKy_tevstr_cScUc */
// almost
#ifdef NONMATCHING
void dKy_tevstr_init(dKy_tevstr_c* p_tevstr, s8 roomNo, u8 param_2) {
memset(p_tevstr, 0, sizeof(dKy_tevstr_c));
if (roomNo == -1) {
p_tevstr->mRoomNo = dComIfGp_roomControl_getStayNo();
} else {
p_tevstr->mRoomNo = roomNo;
}
p_tevstr->mEnvrIdxCurr = p_tevstr->mRoomNo;
p_tevstr->mEnvrIdxPrev = p_tevstr->mRoomNo;
p_tevstr->mEnvrIdxOverride = param_2;
p_tevstr->mInitTimer = 1;
p_tevstr->mInitType = 0x7B;
p_tevstr->mColorC0.a = 0;
p_tevstr->mColorK0.a = 255;
p_tevstr->field_0x378 = 0;
p_tevstr->field_0x374 = 1.0f;
p_tevstr->field_0x384 = 0;
p_tevstr->mLightObj.mInfo.mColor.g = 0;
p_tevstr->mLightObj.mInfo.mColor.b = 0;
p_tevstr->mLightObj.mInfo.mColor.a = 255;
p_tevstr->mLightObj.mInfo.mCosAtten.x = 1.0f;
p_tevstr->mLightObj.mInfo.mCosAtten.y = 0.0f;
p_tevstr->mLightObj.mInfo.mCosAtten.z = 0.0f;
p_tevstr->mLightObj.mInfo.mDistAtten.x = 1.0f;
p_tevstr->mLightObj.mInfo.mDistAtten.y = 0.0f;
p_tevstr->mLightObj.mInfo.mDistAtten.z = 0.0f;
for (int i = 0; i < 6; i++) {
J3DLightObj* light = &p_tevstr->field_0x074[i];
lightStatusData[i].field_0x0 = light->mInfo.mLightPosition;
lightStatusData[i].field_0x18 = light->mInfo.mColor;
lightStatusData[i].field_0x1c.x = 1.0f;
lightStatusData[i].field_0x1c.y = 0.0f;
lightStatusData[i].field_0x1c.z = 0.0f;
lightStatusData[i].field_0x28.x = 1.0f;
lightStatusData[i].field_0x28.y = 0.0f;
lightStatusData[i].field_0x28.z = 0.0f;
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -2734,88 +3042,58 @@ asm void dKy_tevstr_init(dKy_tevstr_c* param_0, s8 param_1, u8 param_2) {
#include "asm/d/kankyo/d_kankyo/dKy_tevstr_init__FP12dKy_tevstr_cScUc.s"
}
#pragma pop
#endif
/* 801A8A34-801A8A44 1A3374 0010+00 0/0 1/1 0/0 .text dKy_rain_check__Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKy_rain_check() {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_rain_check__Fv.s"
int dKy_rain_check() {
return g_env_light.mRainCount;
}
#pragma pop
/* 801A8A44-801A8A54 1A3384 0010+00 0/0 0/0 5/5 .text dKy_set_allcol_ratio__Ff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKy_set_allcol_ratio(f32 param_0) {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_set_allcol_ratio__Ff.s"
void dKy_set_allcol_ratio(f32 ratio) {
g_env_light.mAllcolRatio = ratio;
}
#pragma pop
/* 801A8A54-801A8A64 1A3394 0010+00 0/0 1/1 1/1 .text dKy_set_actcol_ratio__Ff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKy_set_actcol_ratio(f32 param_0) {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_set_actcol_ratio__Ff.s"
void dKy_set_actcol_ratio(f32 ratio) {
g_env_light.mActcolRatio = ratio;
}
#pragma pop
/* 801A8A64-801A8A74 1A33A4 0010+00 0/0 1/1 1/1 .text dKy_set_bgcol_ratio__Ff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKy_set_bgcol_ratio(f32 param_0) {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_set_bgcol_ratio__Ff.s"
void dKy_set_bgcol_ratio(f32 ratio) {
g_env_light.mBgcolRatio = ratio;
}
#pragma pop
/* 801A8A74-801A8A84 1A33B4 0010+00 0/0 1/1 1/1 .text dKy_set_fogcol_ratio__Ff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKy_set_fogcol_ratio(f32 param_0) {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_set_fogcol_ratio__Ff.s"
void dKy_set_fogcol_ratio(f32 ratio) {
g_env_light.mFogcolRatio = ratio;
}
#pragma pop
/* 801A8A84-801A8AB8 1A33C4 0034+00 0/0 1/1 0/0 .text dKy_set_vrboxcol_ratio__Ff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKy_set_vrboxcol_ratio(f32 param_0) {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_set_vrboxcol_ratio__Ff.s"
void dKy_set_vrboxcol_ratio(f32 ratio) {
dKy_set_vrboxsoracol_ratio(ratio);
dKy_set_vrboxkumocol_ratio(ratio);
}
#pragma pop
/* 801A8AB8-801A8AC8 1A33F8 0010+00 1/1 0/0 0/0 .text dKy_set_vrboxsoracol_ratio__Ff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dKy_set_vrboxsoracol_ratio(f32 param_0) {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_set_vrboxsoracol_ratio__Ff.s"
static void dKy_set_vrboxsoracol_ratio(f32 ratio) {
g_env_light.mVrboxSoracolRatio = ratio;
}
#pragma pop
/* 801A8AC8-801A8AD8 1A3408 0010+00 1/1 0/0 0/0 .text dKy_set_vrboxkumocol_ratio__Ff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dKy_set_vrboxkumocol_ratio(f32 param_0) {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_set_vrboxkumocol_ratio__Ff.s"
static void dKy_set_vrboxkumocol_ratio(f32 ratio) {
g_env_light.mVrboxKumocolRatio = ratio;
}
#pragma pop
/* 801A8AD8-801A8B38 1A3418 0060+00 0/0 1/1 0/0 .text dKy_itudemo_se__Fv */
// matches with literals
#ifdef NONMATCHING
void dKy_itudemo_se() {
if (g_env_light.mMoyaSE != 0) {
mDoAud_seStart(g_env_light.mMoyaSE, NULL, 0, 0);
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -2824,46 +3102,35 @@ asm void dKy_itudemo_se() {
#include "asm/d/kankyo/d_kankyo/dKy_itudemo_se__Fv.s"
}
#pragma pop
#endif
/* 801A8B38-801A8B58 1A3478 0020+00 1/1 2/2 11/11 .text dKy_get_dayofweek__Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s32 dKy_get_dayofweek() {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_get_dayofweek__Fv.s"
s32 dKy_get_dayofweek() {
return dComIfGs_getDate() % 7;
}
#pragma pop
/* 801A8B58-801A8B68 1A3498 0010+00 0/0 3/3 0/0 .text dKy_set_nexttime__Ff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKy_set_nexttime(f32 param_0) {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_set_nexttime__Ff.s"
void dKy_set_nexttime(f32 nextTime) {
g_env_light.mNexttime = nextTime;
}
#pragma pop
/* 801A8B68-801A8BC8 1A34A8 0060+00 0/0 1/1 0/0 .text dKy_instant_timechg__Ff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKy_instant_timechg(f32 param_0) {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_instant_timechg__Ff.s"
void dKy_instant_timechg(f32 time) {
if (time < g_env_light.getDaytime()) {
dComIfGs_setDate(dComIfGs_getDate() + 1);
dKankyo_DayProc();
}
dComIfGs_setTime(time);
}
#pragma pop
/* 801A8BC8-801A8C04 1A3508 003C+00 0/0 1/1 0/0 .text dKy_instant_rainchg__Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKy_instant_rainchg() {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_instant_rainchg__Fv.s"
void dKy_instant_rainchg() {
dKyw_rain_set(250);
g_env_light.mColpatWeather = 1;
g_env_light.mColPatPrev = 1;
g_env_light.mColPatCurr = 1;
}
#pragma pop
/* 801A8C04-801A8E20 1A3544 021C+00 3/3 0/0 0/0 .text NewAmbColGet__FP11_GXColorS10 */
#pragma push
@@ -3051,24 +3318,14 @@ static asm void dKy_WaterIn_Light_set() {
/* 801AB270-801AB280 1A5BB0 0010+00 0/0 2/2 0/0 .text dKy_camera_water_in_status_set__FUc
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKy_camera_water_in_status_set(u8 param_0) {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_camera_water_in_status_set__FUc.s"
void dKy_camera_water_in_status_set(u8 status) {
g_env_light.mCameraInWater = status;
}
#pragma pop
/* 801AB280-801AB290 1A5BC0 0010+00 3/3 1/1 5/5 .text dKy_camera_water_in_status_check__Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm BOOL dKy_camera_water_in_status_check() {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_camera_water_in_status_check__Fv.s"
BOOL dKy_camera_water_in_status_check() {
return g_env_light.mCameraInWater;
}
#pragma pop
/* ############################################################################################## */
/* 80394C6C-80394C6C 0212CC 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@@ -3108,14 +3365,26 @@ asm u8 dKy_pol_sound_get(cBgS_PolyInfo const* param_0) {
#pragma pop
/* 801AB59C-801AB668 1A5EDC 00CC+00 0/0 5/5 0/0 .text dKy_pol_argument_get__FPC13cBgS_PolyInfo */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKy_pol_argument_get(cBgS_PolyInfo const* param_0) {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_pol_argument_get__FPC13cBgS_PolyInfo.s"
u8 dKy_pol_argument_get(cBgS_PolyInfo const* p_poly) {
dScnKy_env_light_c* envLight = &g_env_light;
if (p_poly == NULL || &dComIfG_Bgsp() == NULL) {
return 0;
}
int att0 = dComIfG_Bgsp().GetPolyAtt0(*p_poly);
if (!strcmp(dComIfGp_getStartStageName(), "F_SP127") && g_env_light.field_0x12fe == 4 &&
att0 == 4) {
att0 = 13;
}
int att1 = dComIfG_Bgsp().GetPolyAtt1(*p_poly);
if (envLight->mResPolArg != NULL) {
return envLight->mResPolArg[att0].data[att1];
}
return 0;
}
#pragma pop
/* 801AB668-801AB7D0 1A5FA8 0168+00 0/0 1/1 2/2 .text
* dKy_pol_eff_prim_get__FPC13cBgS_PolyInfoP8_GXColor */
@@ -3128,6 +3397,33 @@ asm void dKy_pol_eff_prim_get(cBgS_PolyInfo const* param_0, _GXColor* param_1) {
}
#pragma pop
/* u8 dKy_pol_eff_prim_get(cBgS_PolyInfo const* p_poly, GXColor* p_color) {
dScnKy_env_light_c* envLight = &g_env_light;
if (p_poly == NULL || p_color == NULL || &dComIfG_Bgsp() == NULL) {
return 0xFF;
}
int att0 = dComIfG_Bgsp().GetPolyAtt0(*p_poly);
if (!strcmp(dComIfGp_getStartStageName(), "F_SP127") && g_env_light.field_0x12fe == 4 && att0 ==
4) { att0 = 13; } else if (!strcmp(dComIfGp_getStartStageName(), "D_MN05A") &&
dComIfGs_isStageBossEnemy() && att0 == 11) { att0 = 7;
}
int att1 = dComIfG_Bgsp().GetPolyAtt1(*p_poly);
if (envLight->mResPolEffcol == NULL || ) {
u32 index = envLight->mResPolEffcol[att0].data[att1];
if (index >= 100) {
return 0xFF;
}
p_color->r = envLight->mResColorDataTbl[index].data[0];
p_color->g = envLight->mResColorDataTbl[index].data[1];
p_color->b = envLight->mResColorDataTbl[index].data[2];
}
} */
/* 801AB7D0-801AB93C 1A6110 016C+00 0/0 1/1 2/2 .text
* dKy_pol_eff_env_get__FPC13cBgS_PolyInfoP8_GXColor */
#pragma push
@@ -3204,44 +3500,55 @@ asm void dKy_pol_eff2_ratio_get(cBgS_PolyInfo const* param_0) {
#pragma pop
/* 801AC140-801AC168 1A6A80 0028+00 0/0 2/2 0/0 .text dKy_TeachWind_existence_chk__Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKy_TeachWind_existence_chk() {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_TeachWind_existence_chk__Fv.s"
BOOL dKy_TeachWind_existence_chk() {
if (g_env_light.mTeachWindExist == 0xFF) {
return -1;
}
return g_env_light.mTeachWindExist ? TRUE : FALSE;
}
#pragma pop
/* 801AC168-801AC228 1A6AA8 00C0+00 4/4 0/0 2/2 .text dKy_SunMoon_Light_Check__Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKy_SunMoon_Light_Check() {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_SunMoon_Light_Check__Fv.s"
bool dKy_SunMoon_Light_Check() {
bool check = false;
if (g_env_light.mSunInitialized && !dKy_darkworld_check()) {
// stage is not City in the Sky, Hyrule Castle, or Hidden Skill area
if (memcmp(dComIfGp_getStartStageName(), "D_MN07", 6) &&
memcmp(dComIfGp_getStartStageName(), "D_MN09", 6) &&
strcmp(dComIfGp_getStartStageName(), "F_SP200")) {
check = true;
}
}
return check;
}
#pragma pop
/* 801AC228-801AC28C 1A6B68 0064+00 3/3 0/0 0/0 .text dKy_Outdoor_check__Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm int dKy_Outdoor_check() {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_Outdoor_check__Fv.s"
static int dKy_Outdoor_check() {
BOOL outdoors = false;
u32 type = ST_FIELD;
if (i_dComIfGp_getStage() != NULL) {
type = dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo());
}
if (type == ST_FIELD) {
outdoors = true;
}
return outdoors;
}
#pragma pop
/* 801AC28C-801AC2E0 1A6BCC 0054+00 1/1 0/0 0/0 .text dKy_Indoor_check__Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dKy_Indoor_check() {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_Indoor_check__Fv.s"
static int dKy_Indoor_check() {
BOOL indoors = false;
if (dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()) != ST_FIELD) {
indoors = true;
}
return indoors;
}
#pragma pop
/* 801AC2E0-801AC2E8 1A6C20 0008+00 0/0 1/1 0/0 .text dKy_withwarp_capture_check__Fv */
BOOL dKy_withwarp_capture_check() {
@@ -3266,14 +3573,15 @@ asm void dKy_depth_dist_set(void* param_0) {
#pragma pop
/* 801AC57C-801AC5BC 1A6EBC 0040+00 13/13 21/21 134/134 .text dKy_darkworld_check__Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm bool dKy_darkworld_check() {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_darkworld_check__Fv.s"
bool dKy_darkworld_check() {
bool check = false;
if (dComIfGp_world_dark_get() == 1) {
check = true;
}
return check;
}
#pragma pop
/**
* @brief Returns the following info about a room: (1) if the room must not be in twilight and (2)
+1 -1
View File
@@ -379,7 +379,7 @@ extern "C" extern u8 j3dSys[284];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" extern u32 __float_nan;
extern "C" u8 mFrameBufferTimg__13mDoGph_gInf_c[4];
extern "C" extern u8 struct_80450D64[4];
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
extern "C" u8 m_mode__7dDemo_c[4];
extern "C" u8 sOldVcdVatCmd__8J3DShape[4];
+102 -101
View File
@@ -129,6 +129,7 @@ extern "C" void dKyw_evt_wind_set_go__Fv();
extern "C" void dKyw_rain_set__Fi();
extern "C" extern char const* const d_kankyo_d_kankyo_wether__stringBase0;
//
// External References:
//
@@ -270,12 +271,12 @@ static J3DPacket* dKyw_setDrawPacketListXluBg(J3DPacket* p_packet, int type) {
/* 80056C60-80056C98 0515A0 0038+00 1/0 0/0 0/0 .text draw__18dKankyo_sun_PacketFv */
void dKankyo_sun_Packet::draw() {
dKyr_drawSun(j3dSys.getViewMtx(), &field_0x10[0], mColor, &mpResMoon);
dKyr_drawSun(j3dSys.getViewMtx(), mPos, mColor, &mpResMoon);
}
/* 80056C98-80056CD0 0515D8 0038+00 1/0 0/0 0/0 .text draw__22dKankyo_sunlenz_PacketFv */
void dKankyo_sunlenz_Packet::draw() {
dKyr_drawLenzflare(j3dSys.getViewMtx(), &field_0x24[0], field_0x10, &mpResBall);
dKyr_drawLenzflare(j3dSys.getViewMtx(), mPositions, mColor, &mpResBall);
}
/* 80056CD0-80056D0C 051610 003C+00 2/2 0/0 0/0 .text __dt__8RAIN_EFFFv */
@@ -288,8 +289,8 @@ RAIN_EFF::RAIN_EFF() {
/* 80056D10-80056D58 051650 0048+00 1/0 0/0 0/0 .text draw__19dKankyo_rain_PacketFv */
void dKankyo_rain_Packet::draw() {
dKyr_drawSibuki(j3dSys.getViewMtx(), &field_0x10);
dKyr_drawRain(j3dSys.getViewMtx(), &field_0x10);
dKyr_drawSibuki(j3dSys.getViewMtx(), &mpTex);
dKyr_drawRain(j3dSys.getViewMtx(), &mpTex);
}
/* 80056D58-80056D94 051698 003C+00 1/1 1/1 0/0 .text __dt__8SNOW_EFFFv */
@@ -302,7 +303,7 @@ SNOW_EFF::SNOW_EFF() {
/* 80056D98-80056DC8 0516D8 0030+00 1/0 0/0 0/0 .text draw__19dKankyo_snow_PacketFv */
void dKankyo_snow_Packet::draw() {
dKyr_drawSnow(j3dSys.getViewMtx(), &field_0x10);
dKyr_drawSnow(j3dSys.getViewMtx(), &mpTex);
}
/* 80056DC8-80056E04 051708 003C+00 1/1 1/1 0/0 .text __dt__8STAR_EFFFv */
@@ -354,7 +355,7 @@ VRKUMO_EFF::VRKUMO_EFF() {
/* 80056F58-80056F8C 051898 0034+00 1/0 0/0 0/0 .text draw__21dKankyo_vrkumo_PacketFv */
void dKankyo_vrkumo_Packet::draw() {
drawVrkumo(j3dSys.getViewMtx(), field_0x10, &mpResCloudtx_01);
drawVrkumo(j3dSys.getViewMtx(), mColor, &mpResCloudtx_01);
}
/* 80056F8C-80056FC8 0518CC 003C+00 2/2 0/0 0/0 .text __dt__12EF_ODOUR_EFFFv */
@@ -408,7 +409,7 @@ static void dKyw_Sun_Draw() {
/* 80057130-80057174 051A70 0044+00 1/1 0/0 0/0 .text dKyw_drawSunlenz__Fi */
static void dKyw_drawSunlenz(int type) {
if (g_env_light.mpSunLenzPacket->field_0x9e == 0) {
if (g_env_light.mpSunLenzPacket->mDrawLenzInSky == false) {
dKyw_setDrawPacketListIndScreen(g_env_light.mpSunLenzPacket, type);
} else {
dKyw_setDrawPacketListSky(g_env_light.mpSunLenzPacket, type);
@@ -550,35 +551,35 @@ inline u32 tmp_dComIfGp_particle_set(u16 param_0, const cXyz* param_1, const csX
/* 800574E0-800579EC 051E20 050C+00 0/0 1/1 0/0 .text dKyw_wether_init__Fv */
void dKyw_wether_init() {
g_env_light.mSunPacketEnabled = false;
g_env_light.field_0xed4.field_0x0 = 0;
g_env_light.field_0xed4.field_0x4 = 0;
g_env_light.mRainPacketEnabled = 0;
g_env_light.mSunInitialized = false;
g_env_light.mThunderEff.mStatus = 0;
g_env_light.mThunderEff.mMode = 0;
g_env_light.mRainInitialized = false;
g_env_light.mRainCount = 0;
g_env_light.mSnowPacketEnabled = 0;
g_env_light.mSnowInitialized = false;
g_env_light.field_0xe92 = 0;
g_env_light.mSnowCount = 0;
g_env_light.field_0xe90 = 0;
g_env_light.field_0xe91 = 0;
g_env_light.mStarPacketEnabled = false;
g_env_light.mStarInitialized = false;
g_env_light.mStarCount = 0;
f32 tmp0 = FLOAT_LABEL(lit_4378);
g_env_light.mStarDensity = tmp0;
g_env_light.mCloudPacketEnabled = 0;
g_env_light.field_0xeb8 = 0;
g_env_light.mCloudInitialized = 0;
g_env_light.mMoyaCount = 0;
g_env_light.field_0xebc = tmp0;
g_env_light.field_0xeb5 = 0;
g_env_light.mHousiPacketEnabled = false;
g_env_light.field_0xeac = 0;
g_env_light.mMoyaMode = 0;
g_env_light.mHousiInitialized = false;
g_env_light.mHousiCount = 0;
g_env_light.mOdourPacketStatus = 0;
g_env_light.field_0xf24 = 0;
g_env_light.field_0xf21 = 0;
g_env_light.mpOdourPacket = NULL;
g_env_light.field_0x1038 = 0;
g_env_light.field_0x103c = 0;
g_env_light.mMudPacketEnabled = 0;
g_env_light.mMudInitialized = 0;
g_env_light.field_0x1048 = 0;
g_env_light.mEvilPacketEnabled = 0;
g_env_light.mEvilInitialized = 0;
g_env_light.field_0x1054 = 0;
g_env_light.field_0x1051 = 0;
g_env_light.field_0xe60 = tmp0;
@@ -622,41 +623,41 @@ void dKyw_wether_init() {
/* 800579EC-80057A04 05232C 0018+00 0/0 1/1 0/0 .text dKyw_wether_init2__Fv */
void dKyw_wether_init2() {
g_env_light.field_0xec4 = 0;
g_env_light.field_0xec8 = 0;
g_env_light.mVrkumoStatus = 0;
g_env_light.mVrkumoCount = 0;
}
/* 80057A04-80057C84 052344 0280+00 0/0 1/1 0/0 .text dKyw_wether_delete__Fv */
void dKyw_wether_delete() {
if (g_env_light.mSunPacketEnabled) {
if (g_env_light.mSunInitialized) {
delete g_env_light.mpSunPacket;
delete g_env_light.mpSunLenzPacket;
g_env_light.mpSunPacket = NULL;
g_env_light.mpSunLenzPacket = NULL;
}
if (g_env_light.mRainPacketEnabled) {
if (g_env_light.mRainInitialized) {
delete g_env_light.mpRainPacket;
g_env_light.mpRainPacket = NULL;
}
if (g_env_light.mSnowPacketEnabled) {
if (g_env_light.mSnowInitialized) {
delete g_env_light.mpSnowPacket;
g_env_light.mpSnowPacket = NULL;
g_env_light.field_0xe90 = 0;
}
if (g_env_light.mStarPacketEnabled) {
if (g_env_light.mStarInitialized) {
delete g_env_light.mpStarPacket;
g_env_light.mpStarPacket = NULL;
}
if (g_env_light.mHousiPacketEnabled) {
if (g_env_light.mHousiInitialized) {
delete g_env_light.mpHousiPacket;
g_env_light.mpHousiPacket = NULL;
}
if (g_env_light.mCloudPacketEnabled) {
if (g_env_light.mCloudInitialized) {
delete g_env_light.mpCloudPacket;
g_env_light.mpCloudPacket = NULL;
}
@@ -666,12 +667,12 @@ void dKyw_wether_delete() {
g_env_light.mpOdourPacket = NULL;
}
if (g_env_light.mMudPacketEnabled) {
if (g_env_light.mMudInitialized) {
delete g_env_light.mpMudPacket;
g_env_light.mpMudPacket = NULL;
}
if (g_env_light.mEvilPacketEnabled) {
if (g_env_light.mEvilInitialized) {
delete g_env_light.mpEvilPacket;
g_env_light.mpEvilPacket = NULL;
}
@@ -739,7 +740,7 @@ dKankyo_sun_Packet::~dKankyo_sun_Packet() {}
/* 800581AC-8005820C 052AEC 0060+00 0/0 1/1 0/0 .text dKyw_wether_delete2__Fv */
void dKyw_wether_delete2() {
if (g_env_light.field_0xec4 != 0) {
if (g_env_light.mVrkumoStatus != 0) {
delete g_env_light.mpVrkumoPacket;
g_env_light.mpVrkumoPacket = NULL;
}
@@ -750,11 +751,11 @@ dKankyo_vrkumo_Packet::~dKankyo_vrkumo_Packet() {}
/* 80058290-800582F8 052BD0 0068+00 1/1 0/0 0/0 .text wether_move_thunder__Fv */
static void wether_move_thunder() {
switch (g_env_light.field_0xed4.field_0x0) {
switch (g_env_light.mThunderEff.mStatus) {
case 0:
if (g_env_light.field_0xed4.field_0x4 != 0) {
if (g_env_light.mThunderEff.mMode != 0) {
dKyr_thunder_init();
g_env_light.field_0xed4.field_0x0 = 1;
g_env_light.mThunderEff.mStatus = 1;
}
break;
case 1:
@@ -777,7 +778,7 @@ SECTION_SDATA2 static f32 lit_4611 = 1000000000.0f;
/* 80058318-80058894 052C58 057C+00 1/1 0/0 0/0 .text wether_move_sun__Fv */
static void wether_move_sun() {
s32 sunVisible = false;
if (dComIfGp_checkStatus(1) && !g_env_light.field_0x12d4) {
if (dComIfGp_checkStatus(1) && !g_env_light.mVrboxInvisible) {
roomRead_class* room = dComIfGp_getStageRoom();
if (room != NULL && room->field_0x0 > dComIfGp_roomControl_getStayNo()) {
sunVisible = dStage_roomRead_dt_c_GetVrboxswitch(
@@ -793,7 +794,7 @@ static void wether_move_sun() {
sunVisible = false;
}
switch (g_env_light.mSunPacketEnabled) {
switch (g_env_light.mSunInitialized) {
case FALSE:
if (sunVisible && dKy_darkworld_check() != true) {
g_env_light.mpSunPacket = new (0x20) dKankyo_sun_Packet();
@@ -854,16 +855,16 @@ static void wether_move_sun() {
f32 tmp0_2 = FLOAT_LABEL(lit_4378);
g_env_light.mpSunLenzPacket->field_0x90 = tmp0_2;
g_env_light.mpSunLenzPacket->field_0x98 = tmp0_2;
g_env_light.mpSunLenzPacket->field_0x9e = 0;
g_env_light.mpSunLenzPacket->mDrawLenzInSky = false;
dKyr_sun_move();
dKyr_lenzflare_move();
g_env_light.mSunPacketEnabled = true;
g_env_light.mSunInitialized = true;
}
}
break;
case TRUE:
if (!sunVisible) {
g_env_light.mSunPacketEnabled = false;
g_env_light.mSunInitialized = false;
delete g_env_light.mpSunPacket;
delete g_env_light.mpSunLenzPacket;
g_env_light.mpSunPacket = NULL;
@@ -897,7 +898,7 @@ SECTION_SDATA2 static f64 lit_4671 = 4503601774854144.0 /* cast s32 to float */;
// matches with literals
#ifdef NONMATCHING
static void wether_move_rain() {
switch (g_env_light.mRainPacketEnabled) {
switch (g_env_light.mRainInitialized) {
case FALSE:
if (g_env_light.mRainCount > 3) {
g_env_light.mpRainPacket = new (32) dKankyo_rain_Packet();
@@ -905,7 +906,7 @@ static void wether_move_rain() {
if (g_env_light.mpRainPacket != NULL) {
dKyr_rain_init();
dKyr_rain_move();
g_env_light.mRainPacketEnabled = 1;
g_env_light.mRainInitialized = 1;
if (g_env_light.mRainCount != 250) {
mDoAud_seStart(JA_SE_ATM_RAIN_START, NULL, 0, 0);
@@ -929,7 +930,7 @@ static void wether_move_rain() {
}
if (g_env_light.mRainCount <= 3) {
g_env_light.mRainPacketEnabled = 0;
g_env_light.mRainInitialized = 0;
mDoAud_seStart(JA_SE_ATM_RAIN_END, NULL, 0, 0);
delete g_env_light.mpRainPacket;
g_env_light.mpRainPacket = NULL;
@@ -950,13 +951,13 @@ static asm void wether_move_rain() {
/* 80058B00-80058B8C 053440 008C+00 1/1 0/0 0/0 .text wether_move_snow__Fv */
static void wether_move_snow() {
switch (g_env_light.mSnowPacketEnabled) {
switch (g_env_light.mSnowInitialized) {
case FALSE:
if (g_env_light.mSnowCount != 0 || g_env_light.field_0xe90 != 0) {
dKyr_snow_init();
if (g_env_light.mpSnowPacket != NULL) {
dKyr_snow_move();
g_env_light.mSnowPacketEnabled = 1;
g_env_light.mSnowInitialized = 1;
}
}
break;
@@ -1020,7 +1021,7 @@ static void wether_move_star() {
return;
} else {
// Stage is Hero Shade arena
if ((dComIfGp_checkStatus(1) && !g_env_light.field_0x12d4) ||
if ((dComIfGp_checkStatus(1) && !g_env_light.mVrboxInvisible) ||
!strcmp(dComIfGp_getStartStageName(), "F_SP200")) {
roomRead_class* room = dComIfGp_getStageRoom();
if (room != NULL && room->field_0x0 > dComIfGp_roomControl_getStayNo()) {
@@ -1048,11 +1049,11 @@ static void wether_move_star() {
}
}
if (g_env_light.field_0x12c8 != 0) {
if (g_env_light.mColpatWeather != 0) {
density = FLOAT_LABEL(lit_4378);
}
if (g_env_light.field_0x12c3 != 0 && g_env_light.field_0x11dc > lit_4767) {
if (g_env_light.mColPatCurr != 0 && g_env_light.mColPatBlend > lit_4767) {
density = FLOAT_LABEL(lit_4378);
}
@@ -1071,7 +1072,7 @@ static void wether_move_star() {
g_env_light.mStarCount = (s16)(lit_4772 * g_env_light.mStarDensity);
}
switch (g_env_light.mStarPacketEnabled) {
switch (g_env_light.mStarInitialized) {
case FALSE:
if (g_env_light.mStarCount != 0) {
dKyr_star_init();
@@ -1080,7 +1081,7 @@ static void wether_move_star() {
if (g_env_light.mpStarPacket != NULL) {
dKyr_star_move();
dKyr_shstar_move();
g_env_light.mStarPacketEnabled = true;
g_env_light.mStarInitialized = true;
}
}
break;
@@ -1089,7 +1090,7 @@ static void wether_move_star() {
dKyr_shstar_move();
if (g_env_light.mStarCount == 0) {
g_env_light.mStarPacketEnabled = false;
g_env_light.mStarInitialized = false;
delete g_env_light.mpStarPacket;
g_env_light.mpStarPacket = NULL;
@@ -1117,9 +1118,9 @@ static void wether_move_housi() {
if (dKy_darkworld_check() == true ||
(!strcmp(dComIfGp_getStartStageName(), "F_SP115") &&
dComIfGp_roomControl_getStayNo() == 1 && dComIfGp_getStartStageLayer() == 9)) {
if (g_env_light.field_0x12d2 != 0) {
if (g_env_light.mInitAnmTimer != 0) {
g_env_light.field_0xea9 = 0;
g_env_light.field_0xeac = 200;
g_env_light.mHousiCount = 200;
// Stage is Faron Woods and Room is Faron Spring or
// Stage is Castle Town and Room is Castle Town Center or
@@ -1133,14 +1134,14 @@ static void wether_move_housi() {
dComIfGp_getStartStageRoomNo() == 0 && dComIfGp_getStartStageLayer() == 9) ||
(!strcmp(dComIfGp_getStartStageName(), "F_SP115") &&
dComIfGp_getStartStageLayer() == 9)) {
g_env_light.field_0xeac = 0;
g_env_light.mHousiCount = 0;
}
}
}
switch (g_env_light.mHousiPacketEnabled) {
switch (g_env_light.mHousiInitialized) {
case FALSE:
if (g_env_light.field_0xeac != 0) {
if (g_env_light.mHousiCount != 0) {
g_env_light.mpHousiPacket = new (32) dKankyo_housi_Packet();
if (g_env_light.mpHousiPacket != NULL) {
@@ -1173,23 +1174,23 @@ static void wether_move_housi() {
g_env_light.mpHousiPacket->field_0x5de8 = tmp0;
g_env_light.mpHousiPacket->field_0x10.set(tmp0, tmp0, tmp0);
for (int i = 0; i < 300; i++) {
g_env_light.mpHousiPacket->field_0x18[i].field_0x0 = 0;
g_env_light.mpHousiPacket->mHousiEff[i].mStatus = 0;
}
dKyr_housi_move();
g_env_light.mHousiPacketEnabled = true;
g_env_light.mHousiInitialized = true;
}
}
break;
case TRUE:
if (g_env_light.field_0xeac == 0 &&
if (g_env_light.mHousiCount == 0 &&
g_env_light.mpHousiPacket->field_0x5de8 <= FLOAT_LABEL(lit_4378)) {
g_env_light.mHousiPacketEnabled = false;
g_env_light.mHousiInitialized = false;
delete g_env_light.mpHousiPacket;
g_env_light.mpHousiPacket = NULL;
} else {
dKyr_housi_move();
if (!dKy_darkworld_check()) {
g_env_light.field_0xeac = 0;
g_env_light.mHousiCount = 0;
}
}
break;
@@ -1233,32 +1234,32 @@ static void wether_move_odour() {
/* 80059580-80059728 053EC0 01A8+00 1/1 0/0 0/0 .text wether_move_moya__Fv */
static void wether_move_moya() {
switch (g_env_light.mCloudPacketEnabled) {
switch (g_env_light.mCloudInitialized) {
case 0:
if (g_env_light.field_0xeb8 != 0) {
if (g_env_light.mMoyaCount != 0) {
g_env_light.mpCloudPacket = new (32) dKankyo_cloud_Packet();
if (g_env_light.mpCloudPacket != NULL) {
g_env_light.mpCloudPacket->mpResTex = (u8*)dComIfG_getObjectRes("Always", 0x53);
for (int i = 0; i < 50; i++) {
g_env_light.mpCloudPacket->field_0x18[i].field_0x0 = 0;
g_env_light.mpCloudPacket->mCloudEff[i].mStatus = 0;
}
g_env_light.mpCloudPacket->field_0x14 = 0;
g_env_light.mpCloudPacket->mCount = 0;
cloud_shadow_move();
g_env_light.mCloudPacketEnabled++;
g_env_light.mCloudInitialized++;
}
}
break;
case 1:
if (g_env_light.field_0xeb5 == 0) {
if (g_env_light.mMoyaMode == 0) {
dKyw_get_wind_pow();
}
cloud_shadow_move();
if (g_env_light.field_0xeb8 == 0 && g_env_light.mpCloudPacket->field_0x14 == 0) {
g_env_light.mCloudPacketEnabled = 0;
if (g_env_light.mMoyaCount == 0 && g_env_light.mpCloudPacket->mCount == 0) {
g_env_light.mCloudInitialized = 0;
delete g_env_light.mpCloudPacket;
g_env_light.mpCloudPacket = NULL;
@@ -1336,7 +1337,7 @@ static asm void wether_move_vrkumo() {
/* 80059E38-80059F74 054778 013C+00 1/1 0/0 0/0 .text wether_move_mud__Fv */
static void wether_move_mud() {
switch (g_env_light.mMudPacketEnabled) {
switch (g_env_light.mMudInitialized) {
case 0:
if (g_env_light.field_0x1048 != 0) {
g_env_light.mpMudPacket = new (32) dKankyo_mud_Packet();
@@ -1344,7 +1345,7 @@ static void wether_move_mud() {
if (g_env_light.mpMudPacket != NULL) {
dKyr_mud_init();
dKyr_mud_move();
g_env_light.mMudPacketEnabled++;
g_env_light.mMudInitialized++;
}
}
break;
@@ -1352,7 +1353,7 @@ static void wether_move_mud() {
dKyr_mud_move();
if (g_env_light.field_0x1048 == 0 && g_env_light.mpMudPacket->field_0x10 == 0) {
g_env_light.mMudPacketEnabled = 0;
g_env_light.mMudInitialized = 0;
delete g_env_light.mpMudPacket;
g_env_light.mpMudPacket = NULL;
@@ -1363,7 +1364,7 @@ static void wether_move_mud() {
/* 80059F74-8005A0B8 0548B4 0144+00 1/1 0/0 0/0 .text wether_move_evil__Fv */
static void wether_move_evil() {
switch (g_env_light.mEvilPacketEnabled & 0xF) {
switch (g_env_light.mEvilInitialized & 0xF) {
case 0:
if (g_env_light.field_0x1054 != 0) {
g_env_light.mpEvilPacket = new (32) dKankyo_evil_Packet();
@@ -1371,7 +1372,7 @@ static void wether_move_evil() {
if (g_env_light.mpEvilPacket != NULL) {
dKyr_evil_init();
dKyr_evil_move();
g_env_light.mEvilPacketEnabled++;
g_env_light.mEvilInitialized++;
}
}
break;
@@ -1379,7 +1380,7 @@ static void wether_move_evil() {
dKyr_evil_move();
if (g_env_light.field_0x1054 == 0 && g_env_light.mpEvilPacket->field_0x10 == 0) {
g_env_light.mEvilPacketEnabled = 0;
g_env_light.mEvilInitialized = 0;
delete g_env_light.mpEvilPacket;
g_env_light.mpEvilPacket = NULL;
@@ -1390,7 +1391,7 @@ static void wether_move_evil() {
/* 8005A0B8-8005A154 0549F8 009C+00 0/0 1/1 0/0 .text dKyw_wether_move_draw__Fv */
void dKyw_wether_move_draw() {
g_env_light.field_0x1288 = 0;
g_env_light.mMoyaSE = 0;
if (strcmp(dComIfGp_getStartStageName(), "Name")) {
wether_move_sun();
@@ -1415,11 +1416,11 @@ void dKyw_wether_move_draw2() {
/* 8005A174-8005A304 054AB4 0190+00 0/0 1/1 0/0 .text dKyw_wether_draw__Fv */
void dKyw_wether_draw() {
if (strcmp(dComIfGp_getStartStageName(), "Name") && g_env_light.mCloudPacketEnabled != 0) {
if (strcmp(dComIfGp_getStartStageName(), "Name") && g_env_light.mCloudInitialized != 0) {
dKyw_Cloud_Draw();
}
if (strcmp(dComIfGp_getStartStageName(), "Name") && g_env_light.mSunPacketEnabled) {
if (strcmp(dComIfGp_getStartStageName(), "Name") && g_env_light.mSunInitialized) {
stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo();
if (dStage_stagInfo_GetArg0(stag_info) != 0) {
@@ -1428,21 +1429,21 @@ void dKyw_wether_draw() {
}
}
if (g_env_light.mStarPacketEnabled) {
if (g_env_light.mStarInitialized) {
dKyw_Star_Draw();
dKyw_shstar_Draw();
}
if (strcmp(dComIfGp_getStartStageName(), "Name")) {
if (g_env_light.mRainPacketEnabled) {
if (g_env_light.mRainInitialized) {
dKyw_Rain_Draw();
}
if (g_env_light.mSnowPacketEnabled) {
if (g_env_light.mSnowInitialized) {
dKyw_Snow_Draw();
}
if (g_env_light.mHousiPacketEnabled) {
if (g_env_light.mHousiInitialized) {
dKyw_Housi_Draw();
}
@@ -1450,11 +1451,11 @@ void dKyw_wether_draw() {
dKyw_Odour_Draw();
}
if (g_env_light.mMudPacketEnabled != 0) {
if (g_env_light.mMudInitialized != 0) {
dKyw_mud_Draw();
}
if (g_env_light.mEvilPacketEnabled != 0) {
if (g_env_light.mEvilInitialized != 0) {
dKyw_evil_Draw();
}
@@ -1464,7 +1465,7 @@ void dKyw_wether_draw() {
/* 8005A304-8005A340 054C44 003C+00 0/0 1/1 0/0 .text dKyw_wether_draw2__Fv */
void dKyw_wether_draw2() {
if (g_env_light.field_0xec4 != 0 && g_env_light.field_0xec4 < 99) {
if (g_env_light.mVrkumoStatus != 0 && g_env_light.mVrkumoStatus < 99) {
dKyw_Vrkumo_Draw();
}
}
@@ -1512,13 +1513,13 @@ void dKyw_wether_proc() {
g_env_light.field_0x12c9 >= 1 && g_env_light.field_0x12c9 < 6) {
dKy_get_dayofweek();
cLib_addCalc(&g_env_light.field_0xebc, lit_4379, lit_5362, lit_5363, lit_4770);
g_env_light.field_0xeb5 = 7;
g_env_light.field_0xeb8 = 49;
g_env_light.mMoyaMode = 7;
g_env_light.mMoyaCount = 49;
} else {
cLib_addCalc(&g_env_light.field_0xebc, FLOAT_LABEL(lit_4378), lit_5362,
lit_5363, lit_5364[0]);
if (g_env_light.field_0xebc <= lit_4769 && g_env_light.field_0xeb8 == 49) {
g_env_light.field_0xeb8 = 0;
if (g_env_light.field_0xebc <= lit_4769 && g_env_light.mMoyaCount == 49) {
g_env_light.mMoyaCount = 0;
}
}
}
@@ -1529,9 +1530,9 @@ void dKyw_wether_proc() {
if (!strcmp(dComIfGp_getStartStageName(), "F_SP127") &&
(g_env_light.field_0x12fe == 1 || g_env_light.field_0x12fe == 3)) {
if (g_env_light.field_0x12fe == 1) {
g_env_light.field_0xeac = 35;
g_env_light.mHousiCount = 35;
} else {
g_env_light.field_0xeac = 30;
g_env_light.mHousiCount = 30;
}
g_env_light.field_0xea9 = 2;
}
@@ -1560,8 +1561,8 @@ static void dKyw_wind_init() {
g_env_light.field_0xe66 = 0;
g_env_light.mWind.field_0xc = 0;
g_env_light.custom_windpower = tmp_0;
g_env_light.field_0xe6d = 0;
g_env_light.field_0xe6e = 0;
g_env_light.mEvtWindSet = 0;
g_env_light.mTeachWindExist = 0;
}
/* ############################################################################################## */
@@ -1649,7 +1650,7 @@ static void dKyw_pntwind_init() {
}
for (int i = 0; i < 5; i++) {
g_env_light.field_0x848[i].field_0x0[0] = 0;
g_env_light.mWindInfluenceEntity[i].mInUse = 0;
}
}
@@ -1671,14 +1672,14 @@ static void pntwind_set(WIND_INFLUENCE* pntwind) {
/* 8005ADFC-8005AE28 05573C 002C+00 0/0 0/0 5/5 .text dKyw_pntwind_set__FP14WIND_INFLUENCE */
void dKyw_pntwind_set(WIND_INFLUENCE* pntwind) {
pntwind->field_0x28 = 0;
pntwind->mConstant = 0;
pntwind->field_0x29 = 0;
pntwind_set(pntwind);
}
/* 8005AE28-8005AE58 055768 0030+00 1/1 0/0 0/0 .text dKyw_pntlight_set__FP14WIND_INFLUENCE */
static void dKyw_pntlight_set(WIND_INFLUENCE* pntwind) {
pntwind->field_0x28 = 0;
pntwind->mConstant = 0;
pntwind->field_0x29 = 1;
pntwind_set(pntwind);
}
@@ -1786,21 +1787,21 @@ void dKyw_custom_windpower(f32 pow) {
}
/* 8005B61C-8005B638 055F5C 001C+00 0/0 0/0 6/6 .text dKyw_evt_wind_set__Fss */
void dKyw_evt_wind_set(s16 param_0, s16 param_1) {
g_env_light.field_0xe6d = 1;
g_env_light.field_0xe68 = param_0;
g_env_light.field_0xe6a = param_1;
void dKyw_evt_wind_set(s16 angleX, s16 angleY) {
g_env_light.mEvtWindSet = 1;
g_env_light.mEvtWindAngleX = angleX;
g_env_light.mEvtWindAngleY = angleY;
}
/* 8005B638-8005B64C 055F78 0014+00 0/0 0/0 3/3 .text dKyw_evt_wind_set_go__Fv */
void dKyw_evt_wind_set_go() {
g_env_light.field_0xe6d = 1;
g_env_light.mEvtWindSet = 1;
}
/* 8005B64C-8005B660 055F8C 0014+00 0/0 1/1 5/5 .text dKyw_rain_set__Fi */
void dKyw_rain_set(int count) {
g_env_light.mRainCount = count;
g_env_light.field_0x129c = count;
g_env_light.mRainCountOrig = count;
}
/* 8037A368-8037A368 0069C8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+1 -1
View File
@@ -365,7 +365,7 @@ extern "C" u8 mStatus__20dStage_roomControl_c[65792];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" u8 mTypeGroupListAll__7dTres_c[204 + 4 /* padding */];
extern "C" extern u32 __float_max;
extern "C" extern u8 struct_80450D64[4];
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
extern "C" extern u8 data_80450E58[4];
extern "C" extern u8 data_80450E60[4];
extern "C" u8 mLayerList__8dMpath_c[4];
+1 -1
View File
@@ -447,7 +447,7 @@ extern "C" extern void* __vt__19dMenuFmapIconDisp_c[3];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_fmapHIO[1188];
extern "C" extern u8 g_meter2_info[248];
extern "C" extern u8 struct_80450D64[4];
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
extern "C" u8 m_midnaActor__9daPy_py_c[4];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
+1 -1
View File
@@ -228,7 +228,7 @@ extern "C" extern void* __vt__11dDrawPath_c[16];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_Counter[12 + 4 /* padding */];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" extern u8 struct_80450D64[4];
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
//
// Declarations:
+2 -2
View File
@@ -907,7 +907,7 @@ asm void dMenu_Letter_c::screenSetMenu() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J2DTextBox::getWhite() const {
asm JUtility::TColor J2DTextBox::getWhite() const {
nofralloc
#include "asm/d/menu/d_menu_letter/getWhite__10J2DTextBoxCFv.s"
}
@@ -917,7 +917,7 @@ asm void J2DTextBox::getWhite() const {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J2DTextBox::getBlack() const {
asm JUtility::TColor J2DTextBox::getBlack() const {
nofralloc
#include "asm/d/menu/d_menu_letter/getBlack__10J2DTextBoxCFv.s"
}
+2018 -652
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -556,7 +556,7 @@ 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" extern u8 struct_80450D64[4];
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
extern "C" extern u8 g_msg_unit[4 + 4 /* padding */];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
+1 -1
View File
@@ -1338,7 +1338,7 @@ int dMsgFlow_c::query042(mesg_flow_node_branch*, fopAc_ac_c*, int) {
ret = 1;
} else if (midna->checkNpcFar()) {
ret = 2;
} else if (g_env_light.mEvilPacketEnabled & 0x80) {
} else if (g_env_light.mEvilInitialized & 0x80) {
ret = 3;
}
+29 -60
View File
@@ -6,6 +6,7 @@
#include "d/msg/d_msg_string.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "JSystem/JGeometry.h"
//
// Forward References:
@@ -52,82 +53,50 @@ SECTION_DATA extern void* __vt__12dMsgString_c[8] = {
};
/* 80249C20-80249CA0 244560 0080+00 0/0 15/15 0/0 .text __ct__12dMsgString_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dMsgString_c::dMsgString_c() {
nofralloc
#include "asm/d/msg/d_msg_string/__ct__12dMsgString_cFv.s"
dMsgString_c::dMsgString_c() {
field_0x28 = 0;
mpOutFont = new COutFont_c(field_0x28);
mpOutFont->createPane();
getResource();
}
#pragma pop
/* 80249CA0-80249D28 2445E0 0088+00 0/0 1/1 0/0 .text __ct__12dMsgString_cFUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dMsgString_c::dMsgString_c(u8 param_0) {
nofralloc
#include "asm/d/msg/d_msg_string/__ct__12dMsgString_cFUc.s"
dMsgString_c::dMsgString_c(u8 param_0) {
field_0x28 = param_0;
mpOutFont = new COutFont_c(field_0x28);
mpOutFont->createPane();
getResource();
}
#pragma pop
/* 80249D28-80249DB4 244668 008C+00 0/0 17/17 0/0 .text __dt__12dMsgString_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dMsgString_c::~dMsgString_c() {
nofralloc
#include "asm/d/msg/d_msg_string/__dt__12dMsgString_cFv.s"
dMsgString_c::~dMsgString_c() {
delete mpOutFont;
mpOutFont = NULL;
}
#pragma pop
/* 80249DB4-80249DE4 2446F4 0030+00 1/0 0/0 0/0 .text
* resetStringLocal__12dMsgString_cFP10J2DTextBox */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMsgString_c::resetStringLocal(J2DTextBox* param_0) {
nofralloc
#include "asm/d/msg/d_msg_string/resetStringLocal__12dMsgString_cFP10J2DTextBox.s"
void dMsgString_c::resetStringLocal(J2DTextBox* p_textBox) {
mpOutFont->reset(p_textBox);
}
#pragma pop
/* ############################################################################################## */
/* 80454D78-80454D7C 003378 0004+00 1/1 0/0 0/0 .sdata2 @3777 */
SECTION_SDATA2 static f32 lit_3777 = 255.0f;
/* 80454D7C-80454D80 00337C 0004+00 1/1 0/0 0/0 .sdata2 @3778 */
SECTION_SDATA2 static f32 lit_3778 = -1.0f;
/* 80454D80-80454D88 003380 0004+04 1/1 0/0 0/0 .sdata2 @3779 */
SECTION_SDATA2 static f32 lit_3779[1 + 1 /* padding */] = {
1.0f,
/* padding */
0.0f,
};
/* 80454D88-80454D90 003388 0008+00 1/1 0/0 0/0 .sdata2 @3781 */
SECTION_SDATA2 static f64 lit_3781 = 4503599627370496.0 /* cast u32 to float */;
/* 80249DE4-80249ED0 244724 00EC+00 1/0 0/0 0/0 .text
* drawOutFontLocal__12dMsgString_cFP10J2DTextBoxf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMsgString_c::drawOutFontLocal(J2DTextBox* param_0, f32 param_1) {
nofralloc
#include "asm/d/msg/d_msg_string/drawOutFontLocal__12dMsgString_cFP10J2DTextBoxf.s"
void dMsgString_c::drawOutFontLocal(J2DTextBox* p_textBox, f32 i_alpha) {
JGeometry::TVec3<f32> pos = p_textBox->getGlbVtx(0);
f32 y = pos.y;
if (i_alpha == -1.0f) {
i_alpha = p_textBox->getAlpha() / 255.0f;
}
mpOutFont->setAlphaRatio(i_alpha);
mpOutFont->draw(p_textBox, pos.x, y, 1.0f);
}
#pragma pop
/* 80249ED0-80249F00 244810 0030+00 1/0 0/0 0/0 .text
* drawFontLocal__12dMsgString_cFP10J2DTextBoxUcffffUlUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMsgString_c::drawFontLocal(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_string/drawFontLocal__12dMsgString_cFP10J2DTextBoxUcffffUlUc.s"
void dMsgString_c::drawFontLocal(J2DTextBox* p_textBox, u8 type, f32 posX, f32 posY,
f32 sizeX, f32 sizeY, u32 color, u8 alpha) {
mpOutFont->drawFont(p_textBox, type, posX, posY, sizeX, sizeY, color, alpha);
}
#pragma pop
+1 -1
View File
@@ -137,7 +137,7 @@ extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_clearColor[4];
extern "C" u8 mFrameBufferTex__13mDoGph_gInf_c[4];
extern "C" extern u8 struct_80450BE4[4];
extern "C" extern u8 mBlureFlag__13mDoGph_gInf_c[4];
extern "C" u8 sManager__10JFWDisplay[4];
//
+250 -351
View File
@@ -7,124 +7,11 @@
#include "dol2asm.h"
#include "dolphin/types.h"
#include "m_Do/m_Do_ext.h"
//
// Types:
//
struct JSUMemoryInputStream {
/* 802552B8 */ ~JSUMemoryInputStream();
/* 802DC520 */ void setBuffer(void const*, s32);
};
struct JKRAramArchive {};
struct J2DOrthoGraph {
/* 802E96D0 */ J2DOrthoGraph(f32, f32, f32, f32, f32, f32);
/* 802E980C */ void setOrtho(JGeometry::TBox2<f32> const&, f32, f32);
};
//
// Forward References:
//
extern "C" void __ct__8CPaneMgrFv();
extern "C" void __ct__8CPaneMgrFP9J2DScreenUxUcP10JKRExpHeap();
extern "C" void __dt__8CPaneMgrFv();
extern "C" void setAlpha__8CPaneMgrFUc();
extern "C" void reinit__8CPaneMgrFv();
extern "C" void initiate__8CPaneMgrFP7J2DPaneP10JKRExpHeap();
extern "C" void getBlack__9J2DWindowCFv();
extern "C" void getWhite__9J2DWindowCFv();
extern "C" void childPaneGetSize__8CPaneMgrFP7J2DPane();
extern "C" void childPaneSetSize__8CPaneMgrFP7J2DPaneff();
extern "C" void getGlobalPosX__8CPaneMgrFv();
extern "C" void getGlobalPosY__8CPaneMgrFv();
extern "C" void setWhite__9J2DWindowFQ28JUtility6TColor();
extern "C" void setBlack__10J2DTextBoxFQ28JUtility6TColor();
extern "C" void setBlack__9J2DWindowFQ28JUtility6TColor();
extern "C" void setBlackWhite__8CPaneMgrFQ28JUtility6TColorQ28JUtility6TColor();
extern "C" void setBlackWhite__9J2DWindowFQ28JUtility6TColorQ28JUtility6TColor();
extern "C" void paneTrans__8CPaneMgrFff();
extern "C" void paneScale__8CPaneMgrFff();
extern "C" void scaleAnime__8CPaneMgrFsffUc();
extern "C" void
colorAnime__8CPaneMgrFsQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColorUc();
extern "C" void getGlobalVtx__8CPaneMgrFP7J2DPanePA3_A4_fUcbs();
extern "C" void getGlobalVtxCenter__8CPaneMgrFP7J2DPanebs();
extern "C" void getBounds__8CPaneMgrFP7J2DPane();
extern "C" void dPaneClass_showNullPane__FP9J2DScreen();
extern "C" void dPaneClass_showNullPane__FP7J2DPane();
extern "C" void dPaneClass_setPriority__FPPvP7JKRHeapP9J2DScreenPCcUlP10JKRArchive();
extern "C" void __dt__20JSUMemoryInputStreamFv();
extern "C" void __dt__20JSURandomInputStreamFv();
extern "C" void __dt__10JSUIosBaseFv();
extern "C" void __sinit_d_pane_class_cpp();
//
// External References:
//
extern "C" void mDoExt_getCurrentHeap__Fv();
extern "C" void dLib_getExpandSizeFromAramArchive__FP14JKRAramArchivePCc();
extern "C" void __ct__13CPaneMgrAlphaFv();
extern "C" void __dt__13CPaneMgrAlphaFv();
extern "C" void rateCalc__13CPaneMgrAlphaFssUc();
extern "C" void childPaneCount__13CPaneMgrAlphaFP7J2DPane();
extern "C" void childPaneGetAlpha__13CPaneMgrAlphaFP7J2DPane();
extern "C" void childPaneSetAlpha__13CPaneMgrAlphaFP7J2DPaneUc();
extern "C" void alloc__7JKRHeapFUli();
extern "C" void free__7JKRHeapFPv();
extern "C" void __dl__FPv();
extern "C" void __dt__14JSUInputStreamFv();
extern "C" void setBuffer__20JSUMemoryInputStreamFPCvl();
extern "C" void __ct__13J2DOrthoGraphFffffff();
extern "C" void func_802E980C();
extern "C" void getBounds__7J2DPaneFv();
extern "C" void rotate__7J2DPaneFff13J2DRotateAxisf();
extern "C" void getFirstChildPane__7J2DPaneFv();
extern "C" void getNextChildPane__7J2DPaneFv();
extern "C" void getParentPane__7J2DPaneFv();
extern "C" void setPriority__9J2DScreenFP20JSURandomInputStreamUlP10JKRArchive();
extern "C" void _savegpr_24();
extern "C" void _savegpr_25();
extern "C" void _savegpr_26();
extern "C" void _savegpr_27();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_24();
extern "C" void _restgpr_25();
extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" extern void* __vt__20JSURandomInputStream[9];
extern "C" extern void* __vt__14JSUInputStream[6 + 1 /* padding */];
extern "C" extern void* __vt__20JSUMemoryInputStream[9 + 1 /* padding */];
extern "C" extern void* __vt__14J2DGrafContext[10];
extern "C" extern void* __vt__13J2DOrthoGraph[10];
//
// Declarations:
//
/* ############################################################################################## */
/* 803C2DF8-803C2E04 01FF18 000C+00 2/2 4/4 0/0 .data __vt__10JSUIosBase */
SECTION_DATA extern void* __vt__10JSUIosBase[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__10JSUIosBaseFv,
};
/* 803C2E04-803C2E18 01FF24 0010+04 3/3 0/0 0/0 .data __vt__8CPaneMgr */
SECTION_DATA extern void* __vt__8CPaneMgr[4 + 1 /* padding */] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__8CPaneMgrFv,
(void*)setAlpha__8CPaneMgrFUc,
/* padding */
NULL,
};
#include "m_Do/m_Do_graphic.h"
#include "JSystem/J2DGraph/J2DOrthoGraph.h"
#include "JSystem/J2DGraph/J2DPicture.h"
#include "JSystem/JSupport/JSUMemoryStream.h"
#include "d/d_lib.h"
/* 80253930-80253984 24E270 0054+00 0/0 11/11 0/0 .text __ct__8CPaneMgrFv */
CPaneMgr::CPaneMgr() {
@@ -134,10 +21,10 @@ CPaneMgr::CPaneMgr() {
/* 80253984-80253A18 24E2C4 0094+00 0/0 58/58 2/2 .text
* __ct__8CPaneMgrFP9J2DScreenUxUcP10JKRExpHeap */
CPaneMgr::CPaneMgr(J2DScreen* pScrn, u64 tag, u8 flags, JKRExpHeap* pHeap) {
J2DPane* pane = pScrn->search(tag);
CPaneMgr::CPaneMgr(J2DScreen* p_scrn, u64 tag, u8 flags, JKRExpHeap* p_heap) {
J2DPane* pane = p_scrn->search(tag);
mFlags = flags;
initiate(pane, pHeap);
initiate(pane, p_heap);
}
/* 80253A18-80253AB4 24E358 009C+00 1/0 11/11 0/0 .text __dt__8CPaneMgrFv */
@@ -155,9 +42,10 @@ CPaneMgr::~CPaneMgr() {
/* 80253AB4-80253B2C 24E3F4 0078+00 1/0 0/0 0/0 .text setAlpha__8CPaneMgrFUc */
void CPaneMgr::setAlpha(u8 alpha) {
if (mFlags & 2) {
field_0x10 = mpFirstStackAlpha;
field_0x10 = (u8*)mpFirstStackAlpha;
childPaneSetAlpha(getPanePtr()->getFirstChildPane(), alpha);
}
getPanePtr()->setAlpha(alpha);
}
@@ -185,12 +73,11 @@ void CPaneMgr::reinit() {
/* 80253C08-80254000 24E548 03F8+00 1/1 0/0 0/0 .text initiate__8CPaneMgrFP7J2DPaneP10JKRExpHeap
*/
// switch issues
#ifdef NONMATCHING
void CPaneMgr::initiate(J2DPane* pPane, JKRExpHeap* pHeap) {
(J2DPane*)mWindow = pPane;
if (pHeap) {
heap = pHeap;
void CPaneMgr::initiate(J2DPane* p_pane, JKRExpHeap* p_heap) {
mPane = p_pane;
if (p_heap) {
heap = p_heap;
} else {
heap = (JKRExpHeap*)mDoExt_getCurrentHeap();
}
@@ -205,24 +92,24 @@ void CPaneMgr::initiate(J2DPane* pPane, JKRExpHeap* pHeap) {
childPaneCount(getPanePtr()->getFirstChildPane());
if (mFlags & 1) {
mpFirstStackSize = heap->alloc(mChildPaneCount * 12, 0x20);
field_0x20 = mpFirstStackSize;
field_0x20 = (s16*)mpFirstStackSize;
childPaneGetSize(getPanePtr()->getFirstChildPane());
}
if (mFlags & 2) {
mpFirstStackAlpha = heap->alloc(mChildPaneCount, 0x20);
field_0x10 = mpFirstStackAlpha;
childPaneGetSize(getPanePtr()->getFirstChildPane());
field_0x10 = (u8*)mpFirstStackAlpha;
childPaneGetAlpha(getPanePtr()->getFirstChildPane());
}
}
mInitPos.x = pPane->getBounds().i.x;
mInitPos.y = pPane->getBounds().i.y;
mInitPos.x = p_pane->getBounds().i.x;
mInitPos.y = p_pane->getBounds().i.y;
mGlobalPos.x = getGlobalPosX();
mGlobalPos.y = getGlobalPosY();
mInitSize.x = pPane->getWidth();
mInitSize.y = pPane->getHeight();
mInitSize.x = p_pane->getWidth();
mInitSize.y = p_pane->getHeight();
mInitScale.x = getPanePtr()->getScaleX();
mInitScale.y = getPanePtr()->getScaleY();
@@ -230,15 +117,16 @@ void CPaneMgr::initiate(J2DPane* pPane, JKRExpHeap* pHeap) {
mInitTrans.x = getPanePtr()->getTranslateX();
mInitTrans.y = getPanePtr()->getTranslateY();
mRotateZ = pPane->getRotateZ();
mRotateOffset.x = pPane->getRotOffsetX();
mRotateOffset.y = pPane->getRotOffsetY();
mRotateZ = p_pane->getRotateZ();
mRotateOffset.x = p_pane->getRotOffsetX();
mRotateOffset.y = p_pane->getRotOffsetY();
if (pPane->getKind() == 'PAN2') {
if (p_pane->getKind() == 'PAN2') {
mInitAlpha = 255;
} else {
mInitAlpha = pPane->getAlpha();
mInitAlpha = p_pane->getAlpha();
}
field_0x60 = 0;
field_0x62 = 0;
mScaleAnime = 0;
@@ -248,44 +136,25 @@ void CPaneMgr::initiate(J2DPane* pPane, JKRExpHeap* pHeap) {
mAlphaTimer = 0;
switch (getPanePtr()->getKind()) {
case 'TBX3':
case 'TBX4':
case 'WIN3':
JUtility::TColor white = mWindow->getWhite();
mInitWhite.set(white.r, white.g, white.b, white.a);
JUtility::TColor black = mWindow->getBlack();
mInitBlack.set(black.r, black.g, black.b, black.a);
break;
case 'WIN1':
case 'WIN2':
mInitWhite.set(((J2DWindow*)mPane)->getWhite());
mInitBlack.set(((J2DWindow*)mPane)->getBlack());
return;
case 'PIC1':
case 'PIC2':
JUtility::TColor white2 = mWindow->getWhite();
mInitWhite.set(white2.r, white2.g, white2.b, white2.a);
JUtility::TColor black2 = mWindow->getBlack();
mInitBlack.set(black2.r, black2.g, black2.b, black2.a);
break;
case 'WIN1':
JUtility::TColor white3 = mWindow->getWhite();
mInitWhite.set(white3.r, white3.g, white3.b, white3.a);
JUtility::TColor black3 = mWindow->getBlack();
mInitBlack.set(black3.r, black3.g, black3.b, black3.a);
break;
mInitWhite.set(((J2DPicture*)mPane)->getWhite());
mInitBlack.set(((J2DPicture*)mPane)->getBlack());
return;
case 'TBX1':
case 'TBX2':
mInitWhite.set(((J2DTextBox*)mPane)->getWhite());
mInitBlack.set(((J2DTextBox*)mPane)->getBlack());
return;
}
mInitWhite.set(255, 255, 255, 255);
mInitBlack.set(0, 0, 0, 0);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgr::initiate(J2DPane* param_0, JKRExpHeap* param_1) {
nofralloc
#include "asm/d/pane/d_pane_class/initiate__8CPaneMgrFP7J2DPaneP10JKRExpHeap.s"
}
#pragma pop
#endif
/* 80254000-8025400C 24E940 000C+00 0/0 1/0 0/0 .text getBlack__9J2DWindowCFv */
JUtility::TColor J2DWindow::getBlack() const {
@@ -298,41 +167,43 @@ JUtility::TColor J2DWindow::getWhite() const {
}
/* 80254018-80254134 24E958 011C+00 1/1 0/0 0/0 .text childPaneGetSize__8CPaneMgrFP7J2DPane */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgr::childPaneGetSize(J2DPane* param_0) {
nofralloc
#include "asm/d/pane/d_pane_class/childPaneGetSize__8CPaneMgrFP7J2DPane.s"
void CPaneMgr::childPaneGetSize(J2DPane* p_pane) {
if (p_pane != NULL) {
field_0x20[0] = p_pane->getBounds().i.x;
field_0x20[1] = p_pane->getBounds().i.y;
field_0x20[2] = p_pane->getWidth();
field_0x20[3] = p_pane->getHeight();
field_0x20[4] = p_pane->getRotOffsetX();
field_0x20[5] = p_pane->getRotOffsetY();
field_0x20 += 6;
childPaneGetSize(p_pane->getFirstChildPane());
childPaneGetSize(p_pane->getNextChildPane());
}
}
#pragma pop
/* ############################################################################################## */
/* 80454E88-80454E90 003488 0004+04 4/4 0/0 0/0 .sdata2 @3858 */
SECTION_SDATA2 static f32 lit_3858[1 + 1 /* padding */] = {
0.0f,
/* padding */
0.0f,
};
/* 80454E90-80454E98 003490 0008+00 2/2 0/0 0/0 .sdata2 @3860 */
SECTION_SDATA2 static f64 lit_3860 = 4503601774854144.0 /* cast s32 to float */;
/* 80254134-802542E8 24EA74 01B4+00 1/1 0/0 0/0 .text childPaneSetSize__8CPaneMgrFP7J2DPaneff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgr::childPaneSetSize(J2DPane* param_0, f32 param_1, f32 param_2) {
nofralloc
#include "asm/d/pane/d_pane_class/childPaneSetSize__8CPaneMgrFP7J2DPaneff.s"
void CPaneMgr::childPaneSetSize(J2DPane* p_pane, f32 param_1, f32 param_2) {
if (p_pane != NULL) {
p_pane->move(field_0x20[0] * param_1, field_0x20[1] * param_2);
p_pane->resize(field_0x20[2] * param_1, field_0x20[3] * param_2);
if (p_pane->getRotateZ() != 0.0f) {
p_pane->rotate(field_0x20[4] * param_1, field_0x20[5] * param_2, ROTATE_Z, p_pane->getRotateZ());
}
field_0x20 += 6;
childPaneSetSize(p_pane->getFirstChildPane(), param_1, param_2);
childPaneSetSize(p_pane->getNextChildPane(), param_1, param_2);
}
}
#pragma pop
/* 802542E8-80254364 24EC28 007C+00 2/2 18/18 0/0 .text getGlobalPosX__8CPaneMgrFv */
f32 CPaneMgr::getGlobalPosX() {
f32 posX = getPosX();
for (J2DPane* pane = getPanePtr()->getParentPane(); pane != NULL;
pane = pane->getParentPane()) {
pane = pane->getParentPane()) {
posX += pane->getBounds().i.x;
}
return posX;
@@ -342,7 +213,7 @@ f32 CPaneMgr::getGlobalPosX() {
f32 CPaneMgr::getGlobalPosY() {
f32 posY = getPosY();
for (J2DPane* pane = getPanePtr()->getParentPane(); pane != NULL;
pane = pane->getParentPane()) {
pane = pane->getParentPane()) {
posY += pane->getBounds().i.y;
}
return posY;
@@ -368,14 +239,22 @@ bool J2DWindow::setBlack(JUtility::TColor black) {
/* 80254458-80254568 24ED98 0110+00 1/1 7/7 0/0 .text
* setBlackWhite__8CPaneMgrFQ28JUtility6TColorQ28JUtility6TColor */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgr::setBlackWhite(JUtility::TColor param_0, JUtility::TColor param_1) {
nofralloc
#include "asm/d/pane/d_pane_class/setBlackWhite__8CPaneMgrFQ28JUtility6TColorQ28JUtility6TColor.s"
void CPaneMgr::setBlackWhite(JUtility::TColor black, JUtility::TColor white) {
switch (mPane->getKind()) {
case 'WIN1':
case 'WIN2':
((J2DWindow*)mPane)->setBlackWhite(black, white);
break;
case 'PIC1':
case 'PIC2':
((J2DPicture*)mPane)->setBlackWhite(black, white);
break;
case 'TBX1':
case 'TBX2':
((J2DTextBox*)mPane)->setBlackWhite(black, white);
break;
}
}
#pragma pop
/* 80254568-802545B0 24EEA8 0048+00 0/0 1/0 0/0 .text
* setBlackWhite__9J2DWindowFQ28JUtility6TColorQ28JUtility6TColor */
@@ -385,62 +264,33 @@ bool J2DWindow::setBlackWhite(JUtility::TColor black, JUtility::TColor white) {
return true;
}
/* ############################################################################################## */
/* 80454E98-80454EA0 003498 0004+04 3/3 0/0 0/0 .sdata2 @4046 */
SECTION_SDATA2 static f32 lit_4046[1 + 1 /* padding */] = {
0.5f,
/* padding */
0.0f,
};
/* 802545B0-80254638 24EEF0 0088+00 0/0 51/51 3/3 .text paneTrans__8CPaneMgrFff */
// matches with literals
#ifdef NONMATCHING
void CPaneMgr::paneTrans(f32 x, f32 y) {
f32 moveX = x + getInitCenterPosX() - getSizeX() * 0.5f;
f32 moveY = y + getInitCenterPosY() - getSizeY() * 0.5f;
getPanePtr()->move(moveX, moveY);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgr::paneTrans(f32 param_0, f32 param_1) {
nofralloc
#include "asm/d/pane/d_pane_class/paneTrans__8CPaneMgrFff.s"
}
#pragma pop
#endif
/* 80254638-802547CC 24EF78 0194+00 0/0 5/5 0/0 .text paneScale__8CPaneMgrFff */
// swapped float reg
#ifdef NONMATCHING
void CPaneMgr::paneScale(f32 x, f32 y) {
f32 moveX = getPosX() + getSizeX() * 0.5f;
f32 moveY = getPosY() + getSizeY() * 0.5f;
getPanePtr()->resize(mInitSize.x * x, mInitSize.y * y);
getPanePtr()->move(moveX - getSizeY() * 0.5f, moveY - getSizeX() * 0.5f);
f32 moveX2 = moveX - getSizeX() * 0.5f;
f32 moveY2 = moveY - getSizeY() * 0.5f;
getPanePtr()->move(moveX2, moveY2);
if (mRotateZ != 0.0f) {
getPanePtr()->rotate(mRotateOffset.x * x, mRotateOffset.y * y, ROTATE_Z, getRotateZ());
}
if (mFlags & 1) {
field_0x20 = mpFirstStackSize;
field_0x20 = (s16*)mpFirstStackSize;
childPaneSetSize(getPanePtr()->getFirstChildPane(), x, y);
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgr::paneScale(f32 param_0, f32 param_1) {
nofralloc
#include "asm/d/pane/d_pane_class/paneScale__8CPaneMgrFff.s"
}
#pragma pop
#endif
/* 802547CC-802548BC 24F10C 00F0+00 0/0 10/10 0/0 .text scaleAnime__8CPaneMgrFsffUc */
bool CPaneMgr::scaleAnime(s16 param_0, f32 param_1, f32 param_2, u8 param_3) {
@@ -457,148 +307,197 @@ bool CPaneMgr::scaleAnime(s16 param_0, f32 param_1, f32 param_2, u8 param_3) {
return false;
}
/* ############################################################################################## */
/* 80454EA0-80454EA8 0034A0 0008+00 1/1 0/0 0/0 .sdata2 @4349 */
SECTION_SDATA2 static f64 lit_4349 = 4503599627370496.0 /* cast u32 to float */;
/* 802548BC-80254C90 24F1FC 03D4+00 0/0 4/4 0/0 .text
* colorAnime__8CPaneMgrFsQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColorUc
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgr::colorAnime(s16 param_0, JUtility::TColor param_1, JUtility::TColor param_2,
JUtility::TColor param_3, JUtility::TColor param_4, u8 param_5) {
nofralloc
#include "asm/d/pane/d_pane_class/func_802548BC.s"
bool CPaneMgr::colorAnime(s16 anmTimer, JUtility::TColor startBlack, JUtility::TColor endBlack,
JUtility::TColor startWhite, JUtility::TColor endWhite, u8 calcType) {
if (mColorAnime < anmTimer - 1) {
mColorAnime++;
f32 rate = rateCalc(anmTimer, mColorAnime, calcType);
JUtility::TColor black;
JUtility::TColor white;
if (startBlack.r != endBlack.r) {
black.r = startBlack.r + rate * (endBlack.r - startBlack.r);
} else {
black.r = endBlack.r;
}
if (startBlack.g != endBlack.g) {
black.g = startBlack.g + rate * (endBlack.g - startBlack.g);
} else {
black.g = endBlack.g;
}
if (startBlack.b != endBlack.b) {
black.b = startBlack.b + rate * (endBlack.b - startBlack.b);
} else {
black.b = endBlack.b;
}
if (startBlack.a != endBlack.a) {
black.a = startBlack.a + rate * (endBlack.a - startBlack.a);
} else {
black.a = endBlack.a;
}
if (startWhite.r != endWhite.r) {
white.r = startWhite.r + rate * (endWhite.r - startWhite.r);
} else {
white.r = endWhite.r;
}
if (startWhite.g != endWhite.g) {
white.g = startWhite.g + rate * (endWhite.g - startWhite.g);
} else {
white.g = endWhite.g;
}
if (startWhite.b != endWhite.b) {
white.b = startWhite.b + rate * (endWhite.b - startWhite.b);
} else {
white.b = endWhite.b;
}
if (startWhite.a != endWhite.a) {
white.a = startWhite.a + rate * (endWhite.a - startWhite.a);
} else {
white.a = endWhite.a;
}
setBlackWhite(black, white);
} else {
mColorAnime = anmTimer;
setBlackWhite(endBlack, endWhite);
return true;
}
return false;
}
#pragma pop
/* ############################################################################################## */
/* 80454EA8-80454EAC 0034A8 0004+00 1/1 0/0 0/0 .sdata2 @4473 */
SECTION_SDATA2 static f32 lit_4473 = 608.0f;
/* 80454EAC-80454EB0 0034AC 0004+00 1/1 0/0 0/0 .sdata2 @4474 */
SECTION_SDATA2 static f32 lit_4474 = 448.0f;
/* 80454EB0-80454EB4 0034B0 0004+00 1/1 0/0 0/0 .sdata2 @4475 */
SECTION_SDATA2 static f32 lit_4475 = -1.0f;
/* 80454EB4-80454EB8 0034B4 0004+00 1/1 0/0 0/0 .sdata2 @4476 */
SECTION_SDATA2 static f32 lit_4476 = 1.0f;
/* 80254C90-80254EBC 24F5D0 022C+00 1/1 9/9 0/0 .text
* getGlobalVtx__8CPaneMgrFP7J2DPanePA3_A4_fUcbs */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgr::getGlobalVtx(J2DPane* param_0, f32 (*param_1)[3][4], u8 param_2, bool param_3,
Vec CPaneMgr::getGlobalVtx(J2DPane* p_pane, Mtx* param_1, u8 param_2, bool param_3,
s16 param_4) {
nofralloc
#include "asm/d/pane/d_pane_class/getGlobalVtx__8CPaneMgrFP7J2DPanePA3_A4_fUcbs.s"
}
#pragma pop
Mtx m;
MtxP mp = (MtxP)param_1;
J2DPane* parent = p_pane->getParentPane();
J2DOrthoGraph ortho(0.0f, 0.0f, 608.0f, 448.0f, -1.0f, 1.0f);
ortho.setOrtho(mDoGph_gInf_c::getMinXF(), mDoGph_gInf_c::getMinYF(), mDoGph_gInf_c::getWidthF(), mDoGph_gInf_c::getHeightF(), -1.0f, 1.0f);
/* 80254EBC-80254FB8 24F7FC 00FC+00 0/0 56/56 1/1 .text getGlobalVtxCenter__8CPaneMgrFP7J2DPanebs
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm Vec CPaneMgr::getGlobalVtxCenter(J2DPane* param_0, bool param_1, s16 param_2) {
nofralloc
#include "asm/d/pane/d_pane_class/getGlobalVtxCenter__8CPaneMgrFP7J2DPanebs.s"
if (parent != NULL) {
getGlobalVtx(parent, param_1, param_2, param_3, param_4);
PSMTXCopy(*param_1, m);
PSMTXConcat(m, *p_pane->getMtx(), *param_1);
} else {
p_pane->calcMtx();
PSMTXCopy(*p_pane->getMtx(), *param_1);
}
Vec outVec;
if (param_2 >= 4) {
outVec.x = 0.0f;
outVec.y = 0.0f;
outVec.z = 0.0f;
return outVec;
} else {
JGeometry::TBox2<f32> bounds = *getBounds(p_pane);
f32 x2 = (param_2 & 1) ? bounds.f.x : bounds.i.x;
f32 y2 = (param_2 & 2) ? bounds.f.y : bounds.i.y;
outVec.x = mp[0][3] + (x2 * mp[0][0] + (y2 * mp[0][1]));
outVec.y = mp[1][3] + (x2 * mp[1][0] + (y2 * mp[1][1]));
outVec.z = mp[2][3] + (x2 * mp[2][0] + (y2 * mp[2][1]));
return outVec;
}
}
/* 80254EBC-80254FB8 24F7FC 00FC+00 0/0 56/56 1/1 .text tCenter__8CPaneMgrFP7J2DPanebs
*/
Vec CPaneMgr::getGlobalVtxCenter(J2DPane* p_pane, bool param_1, s16) {
Mtx m;
Vec vtxCenter;
Vec v1 = getGlobalVtx(p_pane, &m, 0, param_1, 0);
Vec v2 = getGlobalVtx(p_pane, &m, 3, param_1, 0);
vtxCenter.x = (v1.x + v2.x) * 0.5f;
vtxCenter.y = (v1.y + v2.y) * 0.5f;
vtxCenter.z = (v1.z + v2.z) * 0.5f;
return vtxCenter;
}
#pragma pop
/* ############################################################################################## */
/* 80430748-80430758 05D468 0010+00 2/2 0/0 0/0 .bss static_mBounds */
static f32 static_mBounds[4];
static JGeometry::TBox2<f32> static_mBounds(0.0f, 0.0f, 0.0f, 0.0f);
/* 80254FB8-802550E8 24F8F8 0130+00 1/1 0/0 0/0 .text getBounds__8CPaneMgrFP7J2DPane */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgr::getBounds(J2DPane* param_0) {
nofralloc
#include "asm/d/pane/d_pane_class/getBounds__8CPaneMgrFP7J2DPane.s"
JGeometry::TBox2<f32>* CPaneMgr::getBounds(J2DPane* p_pane) {
JGeometry::TBox2<f32> bounds(p_pane->getBounds());
J2DPane* parent = p_pane->getParentPane();
if (parent != NULL) {
JGeometry::TBox2<f32>* parentBounds = getBounds(parent);
f32 y = parentBounds->i.y;
JGeometry::TBox2<f32>* parentBounds2 = getBounds(parent);
bounds.addPos(JGeometry::TVec2<f32>(parentBounds2->i.x, y));
}
f32 transX = -p_pane->getTranslateX();
f32 transY = -p_pane->getTranslateY();
bounds.addPos(JGeometry::TVec2<f32>(transX, transY));
static_mBounds = bounds;
return &static_mBounds;
}
#pragma pop
/* 802550E8-8025512C 24FA28 0044+00 0/0 54/54 3/3 .text dPaneClass_showNullPane__FP9J2DScreen */
void dPaneClass_showNullPane(J2DScreen* pScrn) {
if (pScrn) {
dPaneClass_showNullPane(pScrn->search('ROOT'));
void dPaneClass_showNullPane(J2DScreen* p_scrn) {
if (p_scrn) {
dPaneClass_showNullPane(p_scrn->search('ROOT'));
}
}
/* 8025512C-80255184 24FA6C 0058+00 1/1 0/0 0/0 .text dPaneClass_showNullPane__FP7J2DPane
*/
void dPaneClass_showNullPane(J2DPane* pPane) {
if (pPane) {
if (!pPane->isVisible()) {
pPane->show();
void dPaneClass_showNullPane(J2DPane* p_pane) {
if (p_pane) {
if (!p_pane->isVisible()) {
p_pane->show();
}
dPaneClass_showNullPane(pPane->getFirstChildPane());
dPaneClass_showNullPane(pPane->getNextChildPane());
dPaneClass_showNullPane(p_pane->getFirstChildPane());
dPaneClass_showNullPane(p_pane->getNextChildPane());
}
}
/* 80255184-802552B8 24FAC4 0134+00 0/0 1/1 0/0 .text
* dPaneClass_setPriority__FPPvP7JKRHeapP9J2DScreenPCcUlP10JKRArchive */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dPaneClass_setPriority(void** param_0, JKRHeap* param_1, J2DScreen* param_2,
char const* param_3, u32 param_4, JKRArchive* param_5) {
nofralloc
#include "asm/d/pane/d_pane_class/dPaneClass_setPriority__FPPvP7JKRHeapP9J2DScreenPCcUlP10JKRArchive.s"
}
#pragma pop
bool dPaneClass_setPriority(void** i_data, JKRHeap* p_heap, J2DScreen* p_screen,
char const* resName, u32 param_4, JKRArchive* p_archive) {
if (p_archive == NULL) {
return false;
}
/* 802552B8-80255328 24FBF8 0070+00 0/0 1/0 0/0 .text __dt__20JSUMemoryInputStreamFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm JSUMemoryInputStream::~JSUMemoryInputStream() {
extern "C" asm void __dt__20JSUMemoryInputStreamFv() {
nofralloc
#include "asm/d/pane/d_pane_class/__dt__20JSUMemoryInputStreamFv.s"
}
#pragma pop
u32 size = dLib_getExpandSizeFromAramArchive((JKRAramArchive*)p_archive, resName);
if (size == 0) {
return false;
}
/* 80255328-80255388 24FC68 0060+00 0/0 1/0 0/0 .text __dt__20JSURandomInputStreamFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm JSURandomInputStream::~JSURandomInputStream() {
extern "C" asm void __dt__20JSURandomInputStreamFv() {
nofralloc
#include "asm/d/pane/d_pane_class/__dt__20JSURandomInputStreamFv.s"
}
#pragma pop
*i_data = p_heap->alloc(size, 0x20);
u32 len = p_archive->readResource(*i_data, size, resName);
/* 80255388-802553D0 24FCC8 0048+00 1/0 0/0 0/0 .text __dt__10JSUIosBaseFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm JSUIosBase::~JSUIosBase() {
extern "C" asm void __dt__10JSUIosBaseFv() {
nofralloc
#include "asm/d/pane/d_pane_class/__dt__10JSUIosBaseFv.s"
}
#pragma pop
if (len != 0) {
JSUMemoryInputStream stream(*i_data, len);
return p_screen->setPriority(&stream, param_4, p_archive);
}
/* 802553D0-802553EC 24FD10 001C+00 0/0 1/0 0/0 .text __sinit_d_pane_class_cpp */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __sinit_d_pane_class_cpp() {
nofralloc
#include "asm/d/pane/d_pane_class/__sinit_d_pane_class_cpp.s"
return false;
}
#pragma pop
#pragma push
#pragma force_active on
REGISTER_CTORS(0x802553D0, __sinit_d_pane_class_cpp);
#pragma pop
+220 -250
View File
@@ -6,330 +6,300 @@
#include "d/pane/d_pane_class_alpha.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Forward References:
//
extern "C" void __ct__13CPaneMgrAlphaFv();
extern "C" void __ct__13CPaneMgrAlphaFP9J2DScreenUxUcP10JKRExpHeap();
extern "C" void __dt__13CPaneMgrAlphaFv();
extern "C" void initiateAlpha__13CPaneMgrAlphaFP7J2DPaneP10JKRExpHeap();
extern "C" void show__13CPaneMgrAlphaFv();
extern "C" void hide__13CPaneMgrAlphaFv();
extern "C" void isVisible__13CPaneMgrAlphaFv();
extern "C" void rateCalc__13CPaneMgrAlphaFssUc();
extern "C" void setAlpha__13CPaneMgrAlphaFUc();
extern "C" void setAlphaRate__13CPaneMgrAlphaFf();
extern "C" void getAlphaRate__13CPaneMgrAlphaFv();
extern "C" void alphaAnime__13CPaneMgrAlphaFsUcUcUc();
extern "C" void alphaAnimeLoop__13CPaneMgrAlphaFsUcUcUc();
extern "C" void childPaneCount__13CPaneMgrAlphaFP7J2DPane();
extern "C" void childPaneGetAlpha__13CPaneMgrAlphaFP7J2DPane();
extern "C" void childPaneSetAlpha__13CPaneMgrAlphaFP7J2DPaneUc();
extern "C" void __ct__17CPaneMgrAlphaMorfFP9J2DScreenUxUcP10JKRExpHeap();
extern "C" void __dt__17CPaneMgrAlphaMorfFv();
extern "C" void initiateAlphaMorf__17CPaneMgrAlphaMorfFv();
extern "C" void setBackupAlpha__17CPaneMgrAlphaMorfFv();
extern "C" void setAlphaMorfRate__17CPaneMgrAlphaMorfFf();
extern "C" void childPaneBackupAlpha__17CPaneMgrAlphaMorfFP7J2DPane();
extern "C" void childPaneSetAlphaMorf__17CPaneMgrAlphaMorfFP7J2DPanef();
//
// External References:
//
extern "C" void mDoExt_getCurrentHeap__Fv();
extern "C" void alloc__7JKRHeapFUli();
extern "C" void free__7JKRHeapFPv();
extern "C" void __dl__FPv();
extern "C" void getFirstChildPane__7J2DPaneFv();
extern "C" void getNextChildPane__7J2DPaneFv();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
//
// Declarations:
//
/* ############################################################################################## */
/* 803C2E18-803C2E28 01FF38 0010+00 2/2 0/0 0/0 .data __vt__17CPaneMgrAlphaMorf */
SECTION_DATA extern void* __vt__17CPaneMgrAlphaMorf[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__17CPaneMgrAlphaMorfFv,
(void*)setAlpha__13CPaneMgrAlphaFUc,
};
/* 803C2E28-803C2E38 01FF48 0010+00 3/3 0/0 0/0 .data __vt__13CPaneMgrAlpha */
SECTION_DATA extern void* __vt__13CPaneMgrAlpha[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__13CPaneMgrAlphaFv,
(void*)setAlpha__13CPaneMgrAlphaFUc,
};
#include "m_Do/m_Do_ext.h"
/* 802553EC-802553FC 24FD2C 0010+00 0/0 2/2 0/0 .text __ct__13CPaneMgrAlphaFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm CPaneMgrAlpha::CPaneMgrAlpha() {
nofralloc
#include "asm/d/pane/d_pane_class_alpha/__ct__13CPaneMgrAlphaFv.s"
}
#pragma pop
CPaneMgrAlpha::CPaneMgrAlpha() {}
/* 802553FC-8025546C 24FD3C 0070+00 1/1 9/9 1/1 .text
* __ct__13CPaneMgrAlphaFP9J2DScreenUxUcP10JKRExpHeap */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm CPaneMgrAlpha::CPaneMgrAlpha(J2DScreen* param_0, u64 param_1, u8 param_2, JKRExpHeap* param_3) {
nofralloc
#include "asm/d/pane/d_pane_class_alpha/__ct__13CPaneMgrAlphaFP9J2DScreenUxUcP10JKRExpHeap.s"
CPaneMgrAlpha::CPaneMgrAlpha(J2DScreen* p_screen, u64 tag, u8 flags, JKRExpHeap* p_heap) {
J2DPane* pane = p_screen->search(tag);
mFlags = flags;
initiateAlpha(pane, p_heap);
}
#pragma pop
/* 8025546C-802554E0 24FDAC 0074+00 2/1 1/1 0/0 .text __dt__13CPaneMgrAlphaFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm CPaneMgrAlpha::~CPaneMgrAlpha() {
nofralloc
#include "asm/d/pane/d_pane_class_alpha/__dt__13CPaneMgrAlphaFv.s"
CPaneMgrAlpha::~CPaneMgrAlpha() {
if (mpFirstStackAlpha != NULL) {
heap->free(mpFirstStackAlpha);
mpFirstStackAlpha = NULL;
}
}
#pragma pop
/* 802554E0-802555C8 24FE20 00E8+00 1/1 0/0 0/0 .text
* initiateAlpha__13CPaneMgrAlphaFP7J2DPaneP10JKRExpHeap */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgrAlpha::initiateAlpha(J2DPane* param_0, JKRExpHeap* param_1) {
nofralloc
#include "asm/d/pane/d_pane_class_alpha/initiateAlpha__13CPaneMgrAlphaFP7J2DPaneP10JKRExpHeap.s"
void CPaneMgrAlpha::initiateAlpha(J2DPane* p_pane, JKRExpHeap* p_heap) {
mPane = p_pane;
if (p_heap != NULL) {
heap = p_heap;
} else {
heap = (JKRExpHeap*)mDoExt_getCurrentHeap();
}
mpFirstStackAlpha = NULL;
field_0x10 = NULL;
mChildPaneCount = 0;
if (mFlags != 0) {
childPaneCount(mPane->getFirstChildPane());
if (mFlags & 2) {
mpFirstStackAlpha = heap->alloc(mChildPaneCount, 0x20);
field_0x10 = (u8*)mpFirstStackAlpha;
childPaneGetAlpha(mPane->getFirstChildPane());
}
}
if (p_pane->getKind() == 'PAN2') {
mInitAlpha = 255;
} else {
mInitAlpha = p_pane->getAlpha();
}
mAlphaTimer = 0;
}
#pragma pop
/* 802555C8-80255608 24FF08 0040+00 0/0 40/40 2/2 .text show__13CPaneMgrAlphaFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgrAlpha::show() {
nofralloc
#include "asm/d/pane/d_pane_class_alpha/show__13CPaneMgrAlphaFv.s"
void CPaneMgrAlpha::show() {
if (!isVisible()) {
mPane->show();
}
}
#pragma pop
/* 80255608-8025564C 24FF48 0044+00 0/0 46/46 2/2 .text hide__13CPaneMgrAlphaFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgrAlpha::hide() {
nofralloc
#include "asm/d/pane/d_pane_class_alpha/hide__13CPaneMgrAlphaFv.s"
void CPaneMgrAlpha::hide() {
if (isVisible() == true) {
mPane->hide();
}
}
#pragma pop
/* 8025564C-80255658 24FF8C 000C+00 2/2 12/12 0/0 .text isVisible__13CPaneMgrAlphaFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgrAlpha::isVisible() {
nofralloc
#include "asm/d/pane/d_pane_class_alpha/isVisible__13CPaneMgrAlphaFv.s"
bool CPaneMgrAlpha::isVisible() {
return mPane->isVisible();
}
#pragma pop
/* ############################################################################################## */
/* 80454EB8-80454EC0 0034B8 0004+04 1/1 0/0 0/0 .sdata2 @3692 */
SECTION_SDATA2 static f32 lit_3692[1 + 1 /* padding */] = {
1.0f,
/* padding */
0.0f,
};
/* 80454EC0-80454EC8 0034C0 0008+00 3/3 0/0 0/0 .sdata2 @3694 */
SECTION_SDATA2 static f64 lit_3694 = 4503601774854144.0 /* cast s32 to float */;
/* 80255658-80255758 24FF98 0100+00 2/2 2/2 0/0 .text rateCalc__13CPaneMgrAlphaFssUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm f32 CPaneMgrAlpha::rateCalc(s16 param_0, s16 param_1, u8 param_2) {
nofralloc
#include "asm/d/pane/d_pane_class_alpha/rateCalc__13CPaneMgrAlphaFssUc.s"
f32 CPaneMgrAlpha::rateCalc(s16 maxTimer, s16 curTimer, u8 calcType) {
if (maxTimer <= curTimer) {
return 1.0f;
}
switch (calcType) {
case 1:
return (f32)(curTimer * curTimer) / (f32)(maxTimer * maxTimer);
case 2:
return (f32)((maxTimer - curTimer) * (maxTimer - curTimer)) / (f32)(maxTimer * maxTimer);
default:
return (f32)curTimer / (f32)maxTimer;
}
}
#pragma pop
/* 80255758-802557D0 250098 0078+00 2/0 0/0 0/0 .text setAlpha__13CPaneMgrAlphaFUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgrAlpha::setAlpha(u8 param_0) {
nofralloc
#include "asm/d/pane/d_pane_class_alpha/setAlpha__13CPaneMgrAlphaFUc.s"
void CPaneMgrAlpha::setAlpha(u8 alpha) {
if (mFlags & 2) {
field_0x10 = (u8*)mpFirstStackAlpha;
childPaneSetAlpha(mPane->getFirstChildPane(), alpha);
}
mPane->setAlpha(alpha);
}
#pragma pop
/* ############################################################################################## */
/* 80454EC8-80454ED0 0034C8 0008+00 6/6 0/0 0/0 .sdata2 @3708 */
SECTION_SDATA2 static f64 lit_3708 = 4503599627370496.0 /* cast u32 to float */;
/* 802557D0-80255828 250110 0058+00 1/1 173/173 5/5 .text setAlphaRate__13CPaneMgrAlphaFf
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgrAlpha::setAlphaRate(f32 param_0) {
nofralloc
#include "asm/d/pane/d_pane_class_alpha/setAlphaRate__13CPaneMgrAlphaFf.s"
void CPaneMgrAlpha::setAlphaRate(f32 rate) {
setAlpha(mInitAlpha * rate);
}
#pragma pop
/* ############################################################################################## */
/* 80454ED0-80454ED8 0034D0 0004+04 2/2 0/0 0/0 .sdata2 @3721 */
SECTION_SDATA2 static f32 lit_3721[1 + 1 /* padding */] = {
0.0f,
/* padding */
0.0f,
};
/* 80255828-80255878 250168 0050+00 0/0 107/107 2/2 .text getAlphaRate__13CPaneMgrAlphaFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm f32 CPaneMgrAlpha::getAlphaRate() {
nofralloc
#include "asm/d/pane/d_pane_class_alpha/getAlphaRate__13CPaneMgrAlphaFv.s"
f32 CPaneMgrAlpha::getAlphaRate() {
f32 rate = 0.0f;
if (mInitAlpha != 0) {
rate = getAlpha() / (f32)mInitAlpha;
}
return rate;
}
#pragma pop
/* 80255878-80255964 2501B8 00EC+00 0/0 31/31 1/1 .text alphaAnime__13CPaneMgrAlphaFsUcUcUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgrAlpha::alphaAnime(s16 param_0, u8 param_1, u8 param_2, u8 param_3) {
nofralloc
#include "asm/d/pane/d_pane_class_alpha/alphaAnime__13CPaneMgrAlphaFsUcUcUc.s"
bool CPaneMgrAlpha::alphaAnime(s16 timer, u8 startAlpha, u8 endAlpha, u8 calcType) {
if (mAlphaTimer < timer - 1) {
mAlphaTimer++;
f32 rate = rateCalc(timer, mAlphaTimer, calcType);
setAlpha(startAlpha + rate * (f32)(endAlpha - startAlpha));
} else {
mAlphaTimer = timer;
setAlpha(endAlpha);
return true;
}
return false;
}
#pragma pop
/* 80255964-80255A60 2502A4 00FC+00 0/0 0/0 1/1 .text alphaAnimeLoop__13CPaneMgrAlphaFsUcUcUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgrAlpha::alphaAnimeLoop(s16 param_0, u8 param_1, u8 param_2, u8 param_3) {
nofralloc
#include "asm/d/pane/d_pane_class_alpha/alphaAnimeLoop__13CPaneMgrAlphaFsUcUcUc.s"
bool CPaneMgrAlpha::alphaAnimeLoop(s16 param_0, u8 param_1, u8 param_2, u8 param_3) {
bool ret = false;
s16 temp_r4 = param_0 / 2;
mAlphaTimer++;
if (mAlphaTimer >= param_0) {
mAlphaTimer = 0;
ret = true;
}
s16 tmp;
if (mAlphaTimer < temp_r4) {
tmp = mAlphaTimer;
} else {
tmp = param_0 - mAlphaTimer;
}
f32 rate = rateCalc(temp_r4, tmp, param_3);
setAlpha(param_1 + rate * (f32)(param_2 - param_1));
return ret;
}
#pragma pop
/* 80255A60-80255ACC 2503A0 006C+00 1/1 1/1 0/0 .text childPaneCount__13CPaneMgrAlphaFP7J2DPane */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgrAlpha::childPaneCount(J2DPane* param_0) {
nofralloc
#include "asm/d/pane/d_pane_class_alpha/childPaneCount__13CPaneMgrAlphaFP7J2DPane.s"
void CPaneMgrAlpha::childPaneCount(J2DPane* p_pane) {
if (p_pane != NULL) {
mChildPaneCount++;
childPaneCount(p_pane->getFirstChildPane());
childPaneCount(p_pane->getNextChildPane());
}
}
#pragma pop
/* 80255ACC-80255B5C 25040C 0090+00 1/1 1/1 0/0 .text childPaneGetAlpha__13CPaneMgrAlphaFP7J2DPane
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgrAlpha::childPaneGetAlpha(J2DPane* param_0) {
nofralloc
#include "asm/d/pane/d_pane_class_alpha/childPaneGetAlpha__13CPaneMgrAlphaFP7J2DPane.s"
void CPaneMgrAlpha::childPaneGetAlpha(J2DPane* p_pane) {
if (p_pane != NULL) {
u8 alpha;
if (p_pane->getKind() == 'PAN2') {
alpha = 255;
} else {
alpha = p_pane->getAlpha();
}
*field_0x10 = alpha;
field_0x10++;
childPaneGetAlpha(p_pane->getFirstChildPane());
childPaneGetAlpha(p_pane->getNextChildPane());
}
}
#pragma pop
/* 80255B5C-80255C68 25049C 010C+00 1/1 1/1 0/0 .text
* childPaneSetAlpha__13CPaneMgrAlphaFP7J2DPaneUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgrAlpha::childPaneSetAlpha(J2DPane* param_0, u8 param_1) {
nofralloc
#include "asm/d/pane/d_pane_class_alpha/childPaneSetAlpha__13CPaneMgrAlphaFP7J2DPaneUc.s"
void CPaneMgrAlpha::childPaneSetAlpha(J2DPane* p_pane, u8 alpha) {
if (p_pane != NULL) {
if (!p_pane->mIsInfluencedAlpha) {
f32 tmp;
if (mInitAlpha == 0) {
tmp = 0.0f;
} else {
tmp = (f32)alpha / (f32)mInitAlpha;
}
p_pane->setAlpha(*field_0x10 * tmp);
}
field_0x10++;
childPaneSetAlpha(p_pane->getFirstChildPane(), alpha);
childPaneSetAlpha(p_pane->getNextChildPane(), alpha);
}
}
#pragma pop
/* 80255C68-80255CAC 2505A8 0044+00 0/0 5/5 0/0 .text
* __ct__17CPaneMgrAlphaMorfFP9J2DScreenUxUcP10JKRExpHeap */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm CPaneMgrAlphaMorf::CPaneMgrAlphaMorf(J2DScreen* param_0, u64 param_1, u8 param_2,
JKRExpHeap* param_3) {
nofralloc
#include "asm/d/pane/d_pane_class_alpha/__ct__17CPaneMgrAlphaMorfFP9J2DScreenUxUcP10JKRExpHeap.s"
CPaneMgrAlphaMorf::CPaneMgrAlphaMorf(J2DScreen* p_screen, u64 tag, u8 flags,
JKRExpHeap* p_heap)
: CPaneMgrAlpha(p_screen, tag, flags, p_heap) {
initiateAlphaMorf();
}
#pragma pop
/* 80255CAC-80255D48 2505EC 009C+00 1/0 0/0 0/0 .text __dt__17CPaneMgrAlphaMorfFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm CPaneMgrAlphaMorf::~CPaneMgrAlphaMorf() {
nofralloc
#include "asm/d/pane/d_pane_class_alpha/__dt__17CPaneMgrAlphaMorfFv.s"
CPaneMgrAlphaMorf::~CPaneMgrAlphaMorf() {
if (mpFirstSaveAlpha != NULL) {
heap->free(mpFirstSaveAlpha);
mpFirstSaveAlpha = NULL;
}
if (mpFirstGetAlpha != NULL) {
heap->free(mpFirstGetAlpha);
mpFirstGetAlpha = NULL;
}
}
#pragma pop
/* 80255D48-80255DD0 250688 0088+00 1/1 0/0 0/0 .text initiateAlphaMorf__17CPaneMgrAlphaMorfFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgrAlphaMorf::initiateAlphaMorf() {
nofralloc
#include "asm/d/pane/d_pane_class_alpha/initiateAlphaMorf__17CPaneMgrAlphaMorfFv.s"
void CPaneMgrAlphaMorf::initiateAlphaMorf() {
mpFirstSaveAlpha = NULL;
field_0x20 = NULL;
mpFirstGetAlpha = NULL;
field_0x28 = NULL;
if (mpFirstStackAlpha != NULL) {
mpFirstSaveAlpha = heap->alloc(mChildPaneCount, 0x20);
field_0x20 = (u8*)mpFirstSaveAlpha;
mpFirstGetAlpha = heap->alloc(mChildPaneCount, 0x20);
field_0x28 = (u8*)mpFirstGetAlpha;
setBackupAlpha();
}
}
#pragma pop
/* 80255DD0-80255E28 250710 0058+00 1/1 3/3 0/0 .text setBackupAlpha__17CPaneMgrAlphaMorfFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgrAlphaMorf::setBackupAlpha() {
nofralloc
#include "asm/d/pane/d_pane_class_alpha/setBackupAlpha__17CPaneMgrAlphaMorfFv.s"
void CPaneMgrAlphaMorf::setBackupAlpha() {
if (mpFirstStackAlpha != NULL) {
field_0x20 = (u8*)mpFirstSaveAlpha;
field_0x28 = (u8*)mpFirstGetAlpha;
childPaneBackupAlpha(mPane->getFirstChildPane());
}
}
#pragma pop
/* 80255E28-80255E98 250768 0070+00 0/0 3/3 0/0 .text setAlphaMorfRate__17CPaneMgrAlphaMorfFf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgrAlphaMorf::setAlphaMorfRate(f32 param_0) {
nofralloc
#include "asm/d/pane/d_pane_class_alpha/setAlphaMorfRate__17CPaneMgrAlphaMorfFf.s"
void CPaneMgrAlphaMorf::setAlphaMorfRate(f32 rate) {
if (mpFirstStackAlpha != NULL) {
field_0x20 = (u8*)mpFirstSaveAlpha;
field_0x28 = (u8*)mpFirstGetAlpha;
childPaneSetAlphaMorf(mPane->getFirstChildPane(), rate);
} else {
setAlphaRate(rate);
}
}
#pragma pop
/* 80255E98-80255F28 2507D8 0090+00 1/1 0/0 0/0 .text
* childPaneBackupAlpha__17CPaneMgrAlphaMorfFP7J2DPane */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgrAlphaMorf::childPaneBackupAlpha(J2DPane* param_0) {
nofralloc
#include "asm/d/pane/d_pane_class_alpha/childPaneBackupAlpha__17CPaneMgrAlphaMorfFP7J2DPane.s"
void CPaneMgrAlphaMorf::childPaneBackupAlpha(J2DPane* p_pane) {
if (p_pane != NULL) {
*field_0x20 = p_pane->getAlpha();
field_0x20++;
*field_0x28 = p_pane->getAlpha();
field_0x28++;
childPaneBackupAlpha(p_pane->getFirstChildPane());
childPaneBackupAlpha(p_pane->getNextChildPane());
}
}
#pragma pop
/* 80255F28-80256018 250868 00F0+00 1/1 0/0 0/0 .text
* childPaneSetAlphaMorf__17CPaneMgrAlphaMorfFP7J2DPanef */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgrAlphaMorf::childPaneSetAlphaMorf(J2DPane* param_0, f32 param_1) {
nofralloc
#include "asm/d/pane/d_pane_class_alpha/childPaneSetAlphaMorf__17CPaneMgrAlphaMorfFP7J2DPanef.s"
void CPaneMgrAlphaMorf::childPaneSetAlphaMorf(J2DPane* p_pane, f32 morf) {
if (p_pane != NULL) {
if (*field_0x20 == *field_0x28) {
p_pane->setAlpha(*field_0x20 * morf);
} else {
*field_0x20 = *field_0x28;
}
field_0x20++;
field_0x28++;
childPaneSetAlphaMorf(p_pane->getFirstChildPane(), morf);
childPaneSetAlphaMorf(p_pane->getNextChildPane(), morf);
}
}
#pragma pop
+1 -1
View File
@@ -469,7 +469,7 @@ extern "C" extern u32 g_whiteColor;
extern "C" u8 mFrameBufferTimg__13mDoGph_gInf_c[4];
extern "C" extern u8 JPTracePCB4[4];
extern "C" f32 mWaterY__11fopAcM_wt_c[1 + 1 /* padding */];
extern "C" extern u8 struct_80450D64[4];
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
extern "C" u8 sOldVcdVatCmd__8J3DShape[4];
//
+1
View File
@@ -137,6 +137,7 @@ extern "C" extern void* g_fpcNd_Method[5 + 1 /* padding */];
extern "C" extern void* __vt__10dDlst_2D_c[3];
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
extern "C" void* mRenderModeObj__15mDoMch_render_c[1 + 1 /* padding */];
extern "C" extern u8 mInitFlag__17mDoAud_zelAudio_c[4];
extern "C" u8 mFader__13mDoGph_gInf_c[4];
extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */];
extern "C" u8 mData__12dEnemyItem_c[4 + 4 /* padding */];
+21 -20
View File
@@ -197,6 +197,7 @@ extern "C" u8 mFader__13mDoGph_gInf_c[4];
extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */];
extern "C" u8 mProcID__20dStage_roomControl_c[4];
extern "C" extern u8 struct_80450D8C[4];
extern "C" extern u8 mBgmSet__17mDoAud_zelAudio_c;
extern "C" u8 m_emitter__8daYkgr_c[4];
extern "C" u8 sManager__10JFWDisplay[4];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
@@ -238,19 +239,19 @@ static u8 g_preLoadHIO[4];
/* 80451124-80451128 -00001 0004+00 3/3 7/7 38/38 .sbss None */
/* 80451124 0001+00 data_80451124 None */
/* 80451125 0003+00 data_80451125 None */
s8 struct_80451124;
/* 80451125 0003+00 nextPauseTimer__9dScnPly_c None */
s8 dScnPly_c::pauseTimer;
s8 data_80451125;
s8 dScnPly_c::nextPauseTimer;
/* 80259400-80259440 253D40 0040+00 1/1 0/0 0/0 .text calcPauseTimer__9dScnPly_cFv */
s8 dScnPly_c::calcPauseTimer() {
if (data_80451125 != 0) {
struct_80451124 = data_80451125;
data_80451125 = 0;
return struct_80451124;
if (nextPauseTimer != 0) {
pauseTimer = nextPauseTimer;
nextPauseTimer = 0;
return pauseTimer;
} else {
return func_80252E70(&struct_80451124); // cLib_calcTimer<s8> : 80252E70
return func_80252E70(&pauseTimer); // cLib_calcTimer<s8> : 80252E70
}
}
@@ -418,7 +419,7 @@ static int dScnPly_Draw(dScnPly_c* scn) {
}
dMdl_mng_c::reset();
if (!dComIfGp_isPauseFlag() && struct_80451124 == 0) {
if (!dComIfGp_isPauseFlag() && pauseTimer == 0) {
if (fpcM_GetName(scn) == PROC_PLAY_SCENE) {
dComIfGp_getVibration().Run();
}
@@ -429,9 +430,9 @@ static int dScnPly_Draw(dScnPly_c* scn) {
cCt_execCounter();
} else {
dPa_control_c::onStatus(1);
if (struct_80451124 == 0) {
if (pauseTimer == 0) {
dPa_control_c::onStatus(2);
if (struct_80451124 == 0) {
if (pauseTimer == 0) {
dComIfGp_getVibration().Pause();
}
}
@@ -523,11 +524,11 @@ 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 s8 struct_80450764 = 0xFF;
SECTION_SDATA static s8 preLoadNo = 0xFF;
#pragma push
#pragma force_active on
SECTION_SDATA static u8 data_80450765 = 1;
SECTION_SDATA static u8 doPreLoad = 1;
#pragma pop
/* 802598AC-80259AC4 2541EC 0218+00 1/0 0/0 0/0 .text dScnPly_Delete__FP9dScnPly_c */
@@ -576,7 +577,7 @@ void dScnPly_c::offReset() {
if (field_0x1d4 != 0 && !fopOvlpM_IsPeek()) {
mDoRst::offReset();
mDoRst::offResetPrepare();
struct_80451501 = false;
JUTGamePad::C3ButtonReset::sResetOccurred = false;
JUTGamePad::setResetCallback(mDoRst_resetCallBack, NULL);
field_0x1d4 = 0;
}
@@ -922,15 +923,15 @@ static int phase_4(dScnPly_c* i_this) {
dComIfG_setBrightness(255);
mDoGph_gInf_c::offFade();
mDoAud_zelAudio_c::onBgmSet();
struct_80451124 = 0;
data_80451125 = 0;
struct_80450764 = -1;
dScnPly_c::pauseTimer = 0;
dScnPly_c::nextPauseTimer = 0;
preLoadNo = -1;
if (data_80450765 != 0 && !strcmp(dComIfGp_getStartStageName(), (char*)PreLoadInfoT[0])) {
struct_80450764 = 0;
if (doPreLoad != 0 && !strcmp(dComIfGp_getStartStageName(), (char*)PreLoadInfoT[0])) {
preLoadNo = 0;
}
if (struct_80450764 < 0) {
if (preLoadNo < 0) {
return 4;
}
+1 -1
View File
@@ -110,7 +110,7 @@ extern "C" u8 mDemoArcName__20dStage_roomControl_c[10 + 2 /* padding */];
extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */];
extern "C" u8 mArcBankName__20dStage_roomControl_c[4];
extern "C" u8 mArcBankData__20dStage_roomControl_c[4];
extern "C" extern u8 struct_80451124[4];
extern "C" extern u8 pauseTimer__9dScnPly_c[4];
//
// Declarations:
+1 -1
View File
@@ -14,7 +14,7 @@ fapGm_HIO_c::fapGm_HIO_c()
mLetterBottomShadowColor(-1) {
mUsingHostIO = true;
if (data_80450580) {
if (mDoMain::developmentMode) {
mDisplayMeter = true;
mDisplayPrint = true;
} else {
+11 -11
View File
@@ -560,8 +560,8 @@ s32 fopAcM_callCallback(fopAc_ac_c* p_actor, heapCallbackFunc p_callbackFunc, JK
/* 80450CC8-80450CCC -00001 0004+00 2/2 0/0 0/0 .sbss None */
/* 80450CC8 0001+00 data_80450CC8 None */
/* 80450CC9 0003+00 data_80450CC9 None */
static u8 lbl_80450CC8;
static u8 lbl_80450CC9;
static u8 HeapAdjustEntry;
static u8 HeapAdjustVerbose;
/* 8001A1E8-8001A4B0 014B28 02C8+00 1/1 0/0 0/0 .text
* fopAcM_entrySolidHeap___FP10fopAc_ac_cPFP10fopAc_ac_c_iUl */
@@ -614,7 +614,7 @@ bool fopAcM_entrySolidHeap_(fopAc_ac_c* p_actor, heapCallbackFunc p_heapCallback
break;
}
if (lbl_80450CC8 == 0) {
if (HeapAdjustEntry == 0) {
mDoExt_adjustSolidHeap(heap00);
p_actor->mHeap = heap00;
return true;
@@ -657,7 +657,7 @@ bool fopAcM_entrySolidHeap_(fopAc_ac_c* p_actor, heapCallbackFunc p_heapCallback
OSReport_Error("ばぐばぐです\n"); // "There's a big bug\n"
OSReport_Error("緊急回避措置\n"); // "Emergency action\n"
lbl_80450CC8 = 0;
HeapAdjustEntry = 0;
}
}
// "fopAcM_entrySolidHeap didn't work [%s]\n"
@@ -668,21 +668,21 @@ bool fopAcM_entrySolidHeap_(fopAc_ac_c* p_actor, heapCallbackFunc p_heapCallback
/* 8001A4B0-8001A528 014DF0 0078+00 0/0 4/4 446/446 .text
* fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl */
bool fopAcM_entrySolidHeap(fopAc_ac_c* p_actor, heapCallbackFunc p_heapCallback, u32 size) {
u8 oldCC9 = lbl_80450CC9;
u8 oldCC9 = HeapAdjustVerbose;
if (size & 0x80000000) {
lbl_80450CC9 = 1;
HeapAdjustVerbose = 1;
}
u8 oldCC8 = lbl_80450CC8;
u8 oldCC8 = HeapAdjustEntry;
if (size & 0x20000000) {
lbl_80450CC8 = 0;
HeapAdjustEntry = 0;
} else if (size & 0x10000000) {
lbl_80450CC8 = 1;
HeapAdjustEntry = 1;
}
bool result = fopAcM_entrySolidHeap_(p_actor, p_heapCallback, size & 0xFFFFFF);
lbl_80450CC9 = oldCC9;
lbl_80450CC8 = oldCC8;
HeapAdjustVerbose = oldCC9;
HeapAdjustEntry = oldCC8;
return result;
}
+1 -1
View File
@@ -45,7 +45,7 @@ extern "C" void fpcMtd_IsDelete__FP20process_method_classPv();
extern "C" void fpcMtd_Delete__FP20process_method_classPv();
extern "C" void fpcMtd_Create__FP20process_method_classPv();
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 struct_80451124[4];
extern "C" extern u8 pauseTimer__9dScnPly_c[4];
//
// Declarations:
+4 -4
View File
@@ -29,7 +29,7 @@ static OSAlarm Alarm;
/* 8001659C-8001665C 010EDC 00C0+00 0/0 1/1 0/0 .text mDoDvdErr_ThdInit__Fv */
void mDoDvdErr_ThdInit() {
if (!data_80450C88) {
if (!mDoDvdErr_initialized) {
OSTime time = OSGetTime();
OSThread* curThread = OSGetCurrentThread();
s32 priority = OSGetThreadPriority(curThread);
@@ -40,16 +40,16 @@ void mDoDvdErr_ThdInit() {
OSCreateAlarm(&Alarm);
OSSetPeriodicAlarm(&Alarm, time, OS_BUS_CLOCK / 4, AlarmHandler);
data_80450C88 = 1;
mDoDvdErr_initialized = true;
}
}
/* 8001665C-800166A4 010F9C 0048+00 0/0 1/1 0/0 .text mDoDvdErr_ThdCleanup__Fv */
void mDoDvdErr_ThdCleanup() {
if (data_80450C88) {
if (mDoDvdErr_initialized) {
OSCancelThread(&DvdErr_thread);
OSCancelAlarm(&Alarm);
data_80450C88 = 0;
mDoDvdErr_initialized = false;
}
}
+6 -5
View File
@@ -27,7 +27,6 @@ extern "C" void mDoRst_resetCallBack__FiPv();
extern "C" u32 getResetData__6mDoRstFv();
extern "C" extern char const* const m_Do_m_Do_Reset__stringBase0;
extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */];
extern "C" extern u8 struct_80450C80;
//
// External References:
@@ -138,7 +137,7 @@ void mDoRst_resetCallBack(int port, void*) {
cAPICPad_recalibrate();
} else {
if (mDoRst::is3ButtonReset()) {
struct_80451501 = false;
JUTGamePad::C3ButtonReset::sResetOccurred = false;
JUTGamePad::C3ButtonReset::sCallback = mDoRst_resetCallBack;
JUTGamePad::C3ButtonReset::sCallbackArg = NULL;
return;
@@ -171,8 +170,10 @@ u8 struct_80450C7C;
u8 struct_80450C7D;
u8 struct_80450C7E;
u8 struct_80450C7F;
u8 struct_80450C80;
u8 struct_80450C81;
bool SyncWidthSound;
u8 sDefaultDirection;
u8 struct_80450C82;
u8 struct_80450C83;
u8 struct_80450C84;
@@ -182,6 +183,6 @@ u8 struct_80450C87;
#pragma pop
/* 80450C88-80450C90 000188 0008+00 0/0 2/2 0/0 .sbss None */
u8 data_80450C88;
bool mDoDvdErr_initialized;
/* 80374198-80374198 0007F8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+6 -8
View File
@@ -101,7 +101,6 @@ extern "C" extern u8 data_80450B80[4];
extern "C" extern u8 data_80450B84[4];
extern "C" extern u8 data_80450B88[4];
extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */];
extern "C" extern bool struct_80450C80;
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
extern "C" u8 sCurrentHeap__7JKRHeap[4];
@@ -114,19 +113,18 @@ extern "C" u8 sCurrentHeap__7JKRHeap[4];
/* 80450BB8 0001+00 data_80450BB8 None */
/* 80450BB9 0001+00 data_80450BB9 None */
/* 80450BBA 0002+00 data_80450BBA None */
bool struct_80450BB8;
#pragma push
#pragma force_active on
bool sResetFlag;
bool mDoAud_zelAudio_c::mInitFlag;
extern bool data_80450bba;
bool data_80450bba;
bool mDoAud_zelAudio_c::mResetFlag;
bool mDoAud_zelAudio_c::mBgmSet;
#pragma pop
/* 80006FB4-80006FC0 0018F4 000C+00 1/1 0/0 0/0 .text reset__17mDoAud_zelAudio_cFv */
void mDoAud_zelAudio_c::reset() {
data_80450bba = false;
mBgmSet = false;
}
/* 803DBF40-803DBF4C 008C60 000C+00 1/1 0/1 0/0 .bss @3620 */
@@ -187,7 +185,7 @@ static void mDoAud_Create() {
l_arcCommand->destroy();
mDoAud_zelAudio_c::onInitFlag();
struct_80450C80 = true;
SyncWidthSound = true;
}
}
+2 -7
View File
@@ -4,17 +4,12 @@
//
#include "m_Do/m_Do_controller_pad.h"
#include "m_Do/m_Do_main.h"
#include "SSystem/SComponent/c_lib.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "f_ap/f_ap_game.h"
//
// External References:
//
extern "C" extern s8 data_80450580;
//
// Declarations:
//
@@ -31,7 +26,7 @@ void mDoCPd_c::create() {
JUTGamePad* pad = new JUTGamePad(JUTGamePad::Port_1);
m_gamePad[0] = pad;
if (data_80450580 != 0) {
if (mDoMain::developmentMode != 0) {
m_gamePad[1] = new JUTGamePad(JUTGamePad::Port_2);
m_gamePad[2] = new JUTGamePad(JUTGamePad::Port_3);
m_gamePad[3] = new JUTGamePad(JUTGamePad::Port_4);
+5 -7
View File
@@ -13,6 +13,7 @@
#include "dolphin/os/OSThread.h"
#include "dolphin/types.h"
#include "m_Do/m_Do_ext.h"
#include "m_Do/m_Do_reset.h"
//
// Types:
@@ -26,9 +27,6 @@ struct JASDvd {
static JASTaskThread* getThreadPointer();
};
extern "C" extern u8 struct_80450C80;
extern "C" extern u8 struct_80450C81;
//
// Declarations:
//
@@ -132,7 +130,7 @@ void mDoDvdThd_param_c::mainLoop() {
while (this->waitForKick() != 0) {
while (mDoDvdThd_command_c* command = this->getFirstCommand()) {
this->cut(command);
if (struct_80450C80 != 0) {
if (SyncWidthSound) {
JASDvd::getThreadPointer()->sendCmdMsg(cb, &command, 4);
} else {
cb(&command);
@@ -187,7 +185,7 @@ mDoDvdThd_mountArchive_c::mDoDvdThd_mountArchive_c(u8 param_0) {
mArchive = NULL;
mHeap = NULL;
if (param_0 == 0) {
mMountDirection = struct_80450C81;
mMountDirection = sDefaultDirection;
}
}
@@ -278,7 +276,7 @@ mDoDvdThd_mountXArchive_c::mDoDvdThd_mountXArchive_c(u8 param_0, JKRArchive::EMo
mMountMode = param_1;
mHeap = NULL;
if (param_0 == 0) {
mMountDirection = struct_80450C81;
mMountDirection = sDefaultDirection;
}
}
@@ -319,7 +317,7 @@ s32 mDoDvdThd_mountXArchive_c::execute() {
mDoDvdThd_toMainRam_c::mDoDvdThd_toMainRam_c(u8 param_0) {
mMountDirection = param_0;
if (param_0 == 0) {
mMountDirection = struct_80450C81;
mMountDirection = sDefaultDirection;
}
}
+1 -1
View File
@@ -3131,7 +3131,7 @@ static asm void mDoExt_initFont2() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void mDoExt_getSubFont() {
asm JUTFont* mDoExt_getSubFont() {
nofralloc
#include "asm/m_Do/m_Do_ext/mDoExt_getSubFont__Fv.s"
}
+10 -10
View File
@@ -144,6 +144,7 @@ extern "C" f32 Zero__4cXyz[3];
extern "C" u8 mPadStatus__10JUTGamePad[48];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" extern s8 data_80450580;
extern "C" extern s8 developmentMode__7mDoMain;
extern "C" void* mRenderModeObj__15mDoMch_render_c[1 + 1 /* padding */];
extern "C" u8 systemConsole__9JFWSystem[4];
extern "C" u8 sManager__10JFWDisplay[4];
@@ -222,16 +223,15 @@ f32 mDoGph_gInf_c::mFadeSpeed;
/* 80450BE4-80450BE8 -00001 0004+00 8/8 9/9 11/11 .sbss None */
/* 80450BE4 0001+00 data_80450BE4 None */
/* 80450BE5 0001+00 data_80450BE5 None */
/* 80450BE6 0001+00 data_80450BE6 None */
/* 80450BE6 0001+00 mFade__13mDoGph_gInf_c None */
/* 80450BE7 0001+00 data_80450BE7 None */
extern u8 struct_80450BE4;
u8 struct_80450BE4;
bool mDoGph_gInf_c::mBlureFlag;
#pragma push
#pragma force_active on
static bool data_80450BE5;
u8 data_80450BE6;
u8 mDoGph_gInf_c::mFade;
bool data_80450BE7;
#pragma pop
@@ -272,7 +272,7 @@ SECTION_SDATA2 static f32 lit_4063 = 1.0f;
/* 80007FD8-80008028 002918 0050+00 1/1 6/4 15/15 .text fadeOut__13mDoGph_gInf_cFfR8_GXColor */
void mDoGph_gInf_c::fadeOut(f32 fadeSpeed, GXColor& fadeColor) {
data_80450BE6 = 1;
mFade = 1;
mFadeSpeed = fadeSpeed;
mFadeColor = fadeColor;
@@ -286,7 +286,7 @@ void mDoGph_gInf_c::fadeOut(f32 fadeSpeed, GXColor& fadeColor) {
/* 80008028-80008078 002968 0050+00 0/0 0/0 2/2 .text fadeOut_f__13mDoGph_gInf_cFfR8_GXColor */
void mDoGph_gInf_c::fadeOut_f(f32 fadeSpeed, GXColor& fadeColor) {
data_80450BE6 = 129;
mFade = 129;
mFadeSpeed = fadeSpeed;
mFadeColor = fadeColor;
@@ -319,7 +319,7 @@ Mtx mDoGph_gInf_c::mBlureMtx;
/* 800080A0-800080D0 0029E0 0030+00 1/1 1/1 0/0 .text onBlure__13mDoGph_gInf_cFPA4_Cf */
void mDoGph_gInf_c::onBlure(const Mtx m) {
struct_80450BE4 = 1;
mBlureFlag = true;
PSMTXCopy(m, mBlureMtx);
}
@@ -393,12 +393,12 @@ SECTION_SDATA2 static f32 lit_4131 = 255.0f;
// li instead of addi
#ifdef NONMATCHING
void mDoGph_gInf_c::calcFade() {
if (data_80450BE6) {
if (mDoGph_gInf_c::mFade == 1) {
mFadeRate += mFadeSpeed;
if (mFadeRate < 0.0f) {
mFadeRate = 0.0f;
data_80450BE6 = false;
mDoGph_gInf_c::mFade = 0;
} else {
if (mFadeRate > 1.0f) {
mFadeRate = 1.0f;
@@ -468,7 +468,7 @@ int mDoGph_AfterOfDraw() {
BOOL console_visible = port3_connected && fapGmHIO_isPrint();
// Dev mode check
if (!data_80450580) {
if (!mDoMain::developmentMode) {
procBar_visible = false;
console_visible = false;
}
+23 -18
View File
@@ -105,6 +105,7 @@ extern "C" u32 VIGetDTVStatus();
extern "C" void _savegpr_28();
extern "C" void _restgpr_28();
extern "C" extern s8 data_80450580;
extern "C" extern s8 developmentMode__7mDoMain;
extern "C" u32 memMargin__7mDoMain;
extern "C" u32 maxStdHeaps__Q29JFWSystem11CSetUpParam;
extern "C" u32 sysHeapSize__Q29JFWSystem11CSetUpParam;
@@ -123,7 +124,7 @@ extern "C" u8 systemConsole__9JFWSystem[4];
extern "C" u8 sSystemHeap__7JKRHeap[4];
extern "C" u8 sRootHeap__7JKRHeap[4];
extern "C" u8 sDebugPrint__10JUTDbPrint[4 + 4 /* padding */];
extern "C" extern bool struct_80451500;
extern "C" extern bool sResetSwitchPushing__Q210JUTGamePad13C3ButtonReset;
extern "C" u8 sErrorManager__12JUTException[4];
extern "C" u8 sConsole__12JUTException[4];
extern "C" u8 sManager__17JUTConsoleManager[4];
@@ -133,7 +134,7 @@ extern "C" u8 sManager__17JUTConsoleManager[4];
//
/* 80450BF0-80450BF4 0000F0 0004+00 1/1 0/0 0/0 .sbss None */
static u8 data_80450BF0;
static u8 mDebugFill;
/* 80450BF4-80450BF8 0000F4 0004+00 1/1 0/0 0/0 .sbss solidHeapErrors */
static int solidHeapErrors;
@@ -285,30 +286,34 @@ static u8 debug_key2;
/* 8000B68C-8000B73C 005FCC 00B0+00 1/1 0/0 0/0 .text developKeyCheck__FUlUl */
static int developKeyCheck(u32 btnTrig, u32 btnHold) {
static u8 key_link;
static u8 key_ganon;
static u8 key_zelda;
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;
if (key_link == 3 && key_ganon == 6 && key_zelda == 5) {
mDoMain::developmentMode = 1;
} else {
debug_key0 = 0;
debug_key1 = 0;
debug_key2 = 0;
key_link = 0;
key_ganon = 0;
key_zelda = 0;
}
}
if (btnHold == (CButton::L | CButton::DPAD_RIGHT) && btnTrig == CButton::L) {
debug_key0++;
key_link++;
}
if (btnHold == (CButton::R | CButton::DPAD_UP) && btnTrig == CButton::R) {
debug_key1++;
key_ganon++;
}
if (btnHold == (CButton::Z | CButton::DPAD_LEFT) && btnTrig == CButton::Z) {
debug_key2++;
key_zelda++;
}
return data_80450580;
return mDoMain::developmentMode;
}
/* 8000B73C-8000B768 00607C 002C+00 1/1 0/0 0/0 .text mDoMch_IsProgressiveMode__Fv */
@@ -348,7 +353,7 @@ void myExceptionCallback(u16, OSContext*, u32, u32) {
PPCHalt();
} else {
manager->setTraceSuppress(0x80);
if (data_80450580 == 0) {
if (mDoMain::developmentMode == 0) {
JUTGamePad pad(JUTGamePad::Port_1);
manager->setGamePad(&pad);
@@ -356,11 +361,11 @@ void myExceptionCallback(u16, OSContext*, u32, u32) {
OSEnableInterrupts();
// "Accepting Key input\n"
OSReport("キー入力を受け付けています\n");
while (data_80450580 == 0) {
while (mDoMain::developmentMode == 0) {
exceptionReadPad(&btnTrig, &btnHold);
developKeyCheck(btnTrig, btnHold);
JUTException::waitTime(30);
if (struct_80451501) {
if (JUTGamePad::C3ButtonReset::sResetOccurred) {
exceptionRestart();
}
}
@@ -431,7 +436,7 @@ static void fault_callback_scroll(u16, OSContext* p_context, u32, u32) {
u32 btnHold, btnTrig;
exceptionReadPad(&btnTrig, &btnHold);
if (struct_80451501) {
if (JUTGamePad::C3ButtonReset::sResetOccurred) {
OSResetSystem(1, 0, 0);
}
@@ -657,11 +662,11 @@ SECTION_SDATA GXRenderModeObj* mDoMch_render_c::mRenderModeObj = &g_ntscZeldaInt
// reg alloc r30 - r31
#ifdef NONMATCHING
int mDoMch_Create() {
if (data_80450580 == 0 || !(OSGetConsoleType() & 0x10000000)) {
if (mDoMain::developmentMode == 0 || !(OSGetConsoleType() & 0x10000000)) {
OSReportDisable();
}
JKRHeap::setDefaultDebugFill(data_80450BF0);
JKRHeap::setDefaultDebugFill(mDebugFill);
JFWSystem::setMaxStdHeap(1);
u32 arenaHi = OSGetArenaHi();
@@ -700,7 +705,7 @@ int mDoMch_Create() {
mDoExt_createAssertHeap(JKRHeap::getRootHeap());
JFWSystem::init();
if (data_80450580 == 0) {
if (mDoMain::developmentMode == 0) {
JUTAssertion::setVisible(false);
JUTDbPrint::getManager()->setVisible(false);
}
+15 -15
View File
@@ -43,6 +43,7 @@ extern "C" u8 COPYDATE_STRING__7mDoMain[18 + 2 /* padding */];
extern "C" u32 memMargin__7mDoMain;
extern "C" u8 sPowerOnTime__7mDoMain[4];
extern "C" u8 sHungUpTime__7mDoMain[4];
extern "C" s8 developmentMode__7mDoMain;
extern "C" extern u8 data_80450B38[4];
extern "C" extern u8 data_80450B3C[4];
extern "C" extern u8 data_80450B40[4];
@@ -118,7 +119,6 @@ extern "C" u8 m_gamePad__8mDoCPd_c[16];
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
extern "C" extern JKRSolidHeap* g_mDoAud_audioHeap;
extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */];
extern "C" extern u8 struct_80450C80[8];
extern "C" u8 systemConsole__9JFWSystem[4];
extern "C" u8 sSystemHeap__7JKRHeap[4];
extern "C" u8 sCurrentHeap__7JKRHeap[4];
@@ -278,7 +278,7 @@ void HeapCheck::heapDisplay() const {
}
/* 80450580-80450584 000000 0004+00 3/3 6/6 0/0 .sdata None */
SECTION_SDATA s8 data_80450580 = 0xFF;
SECTION_SDATA s8 mDoMain::developmentMode = -1;
/* 80450584-80450588 000004 0004+00 0/0 1/1 0/0 .sdata memMargin__7mDoMain */
SECTION_SDATA u32 mDoMain::memMargin = 0xFFFFFFFF;
@@ -287,7 +287,7 @@ SECTION_SDATA u32 mDoMain::memMargin = 0xFFFFFFFF;
SECTION_SDATA u8 mDoMain::mHeapBriefType = 4;
/* 80450B00-80450B08 000000 0008+00 1/1 0/0 0/0 .sbss None */
static u8 data_80450B00;
static u8 fillcheck_check_frame;
/* 80450B08-80450B0C 000008 0004+00 1/1 1/1 0/0 .sbss sPowerOnTime__7mDoMain */
OSTime mDoMain::sPowerOnTime;
@@ -299,7 +299,7 @@ OSTime mDoMain::sHungUpTime;
/* 80450B18 0001+00 data_80450B18 None */
/* 80450B19 0001+00 data_80450B19 None */
/* 80450B1A 0002+00 data_80450B1A None */
static bool struct_80450B18; // sDisplayHeapDebug
static bool mDisplayHeapSize; // sDisplayHeapDebug
static u8 sDisplayHeap;
static bool sCheckHeap;
@@ -513,17 +513,17 @@ asm void* LOAD_COPYDATE(void* param_0) {
#endif
static void debug() {
if (data_80450580) {
if (mDoMain::developmentMode) {
if (sCheckHeap) {
CheckHeap(PAD_3);
}
if ((mDoCPd_c::getGamePad(PAD_3)->getButton() & ~CButton::Z) == CButton::R &&
mDoCPd_c::getGamePad(PAD_3)->testTrigger(CButton::Z)) {
struct_80450B18 ^= 1;
mDisplayHeapSize ^= 1;
}
if (struct_80450B18) {
if (mDisplayHeapSize) {
if ((mDoCPd_c::getGamePad(PAD_3)->getButton() & ~CButton::Z) == CButton::L &&
mDoCPd_c::getGamePad(PAD_3)->testTrigger(CButton::Z)) {
mDoMain::mHeapBriefType < 5 ? mDoMain::mHeapBriefType++ :
@@ -591,7 +591,7 @@ void main01(void) {
JUTConsole* console = JFWSystem::getSystemConsole();
s32 output = 0;
if (data_80450580 != 0) {
if (mDoMain::developmentMode != 0) {
output = JUTConsole::OUTPUT_OSREPORT | JUTConsole::OUTPUT_CONSOLE;
}
@@ -601,18 +601,18 @@ void main01(void) {
mDoDvdThd_callback_c::create(LOAD_COPYDATE, NULL);
fapGm_Create__Fv();
fopAcM_initManager__Fv();
struct_80450B18 = 0;
mDisplayHeapSize = 0;
cDyl_InitAsync__Fv();
g_mDoAud_audioHeap = JKRSolidHeap::create(0x14D800, JKRHeap::getCurrentHeap(), false);
do {
frame++;
if (data_80450B00 != 0 && frame % data_80450B00 == 0) {
if (fillcheck_check_frame != 0 && frame % fillcheck_check_frame == 0) {
mDoMch_HeapCheckAll__Fv();
}
if (struct_80450C80[0]) {
if (SyncWidthSound) {
g_mDoMemCd_control.update();
}
@@ -670,16 +670,16 @@ void main() {
g_dComIfG_gameInfo.ct();
if (data_80450580 < 0) {
if (mDoMain::developmentMode < 0) {
DVDDiskID* disk_id = DVDGetCurrentDiskID();
if (disk_id->game_version > 0x90) {
data_80450580 = 1;
mDoMain::developmentMode = 1;
} else if (disk_id->game_version > 0x80) {
u32 consoleType = OSGetConsoleType();
data_80450580 = (consoleType >> 0x1C) & 1;
mDoMain::developmentMode = (consoleType >> 0x1C) & 1;
} else {
data_80450580 = 0;
mDoMain::developmentMode = 0;
}
}
+4 -4
View File
@@ -113,16 +113,16 @@ static u32 print_warings;
static u32 print_systems;
/* 80450BB4-80450BB8 -00001 0004+00 3/3 0/0 0/0 .sbss None */
static bool sOSReportInit;
static bool print_initialized;
static bool data_80450BB5;
/* 800068C4-800068DC 001204 0018+00 1/1 1/1 0/0 .text OSReportInit__Fv */
void OSReportInit() {
if (sOSReportInit) {
if (print_initialized) {
return;
}
sOSReportInit = true;
print_initialized = true;
}
/* ############################################################################################## */
@@ -166,7 +166,7 @@ void mDoPrintf_vprintf(char const* fmt, va_list args) {
/* 80006A10-80006A9C 001350 008C+00 1/1 0/0 0/0 .text mDoPrintf_VReport */
void mDoPrintf_VReport(const char* fmt, va_list args) {
if (!sOSReportInit) {
if (!print_initialized) {
OSReportInit();
}
if (sOSReportForceEnable || !sOSReportDisabled) {