m_Do cleanup, d_resource, drawlist stuff (#145)

* d_resource / some d_stage

* setup dDlst_list_c / d_select_icon OK

* JUTXfb / some JUTVideo + various

* some J2D classes / JUTVideo/Fader attempts

* bunch of m_Do cleanup + matches / f_ap_game OK

* mDoLib_clipper::setup OK

* most of d_meter_HIO OK

* pane_class / kantera_icon_meter
This commit is contained in:
TakaRikka
2021-09-24 08:11:10 -07:00
committed by GitHub
parent 6dcfdaf8a3
commit 7374f5f2f7
261 changed files with 6757 additions and 10882 deletions
+4 -10
View File
@@ -603,12 +603,6 @@ struct dInsect_c {
/* 80110648 */ void Insect_Release();
};
struct dDlst_shadowControl_c {
/* 80055F1C */ void addReal(u32, J3DModel*);
static u8 mSimpleTexObj[32];
};
struct dDemo_object_c {
/* 80039088 */ void getActor(u8);
};
@@ -5191,7 +5185,7 @@ COMPILER_STRIP_GATE(0x8038D658, &lit_3757);
/* 8038D664-8038D6BC 019CC4 0058+00 41/50 0/0 0/0 .rodata m__19daAlinkHIO_basic_c0 */
daAlinkHIO_basic_c1 const daAlinkHIO_basic_c0::m = {
0, 20000, -10000, 8000, 1, 30, 400, 600, 16384, 1.0f, 4.0f, 0.7f, 3.0f,
false, 20000, -10000, 8000, 1, 30, 400, 600, 16384, 1.0f, 4.0f, 0.7f, 3.0f,
60.0f, 85.0f, 300.0f, 200.0f, 20.0f, 30.0f, 23.0f, 41.0f, 0.7f, 0.5f, 0.7f, 400.0f, 5000.0f};
/* 8038D6BC-8038D714 019D1C 0058+00 34/47 0/0 0/0 .rodata m__18daAlinkHIO_move_c0 */
@@ -16279,17 +16273,17 @@ asm void daAlink_c::setJumpMode() {
/* 800B4908-800B4918 0AF248 0010+00 0/0 0/0 1/1 .text getMetamorphoseNearDis__9daAlink_cCFv */
float daAlink_c::getMetamorphoseNearDis() const {
return daAlinkHIO_basic_c0::m.mMetamorphoseNearDis;
return daAlinkHIO_basic_c0::m.mTransformBlockNearDis;
}
/* 800B4918-800B4928 0AF258 0010+00 0/0 0/0 1/1 .text getMetamorphoseFarDis__9daAlink_cCFv */
float daAlink_c::getMetamorphoseFarDis() const {
return daAlinkHIO_basic_c0::m.mMetamorphoseFarDis;
return daAlinkHIO_basic_c0::m.mTransformBlockFarDis;
}
/* 800B4928-800B4938 0AF268 0010+00 0/0 0/0 1/1 .text getMetamorphoseFarAngle__9daAlink_cCFv */
s16 daAlink_c::getMetamorphoseFarAngle() const {
return daAlinkHIO_basic_c0::m.mMetamorphoseFarAngle;
return daAlinkHIO_basic_c0::m.mTransformBlockFarAngle;
}
/* 800B4938-800B4950 0AF278 0018+00 0/0 1/1 0/0 .text setMidnaMsg__9daAlink_cFv */
+96 -214
View File
@@ -4,9 +4,11 @@
//
#include "d/a/d_a_player.h"
#include "d/com/d_com_inf_game.h"
#include "dol2asm.h"
#include "dolphin/mtx/mtx.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor_iter.h"
#include "f_op/f_op_actor_mng.h"
//
@@ -19,21 +21,6 @@ struct mDoMtx_stack_c {
static u8 now[48];
};
struct daAlink_c {
/* 800A0744 */ void setLookPosFromOut(cXyz*);
/* 800BDF60 */ void startRestartRoom(u32, int, int, int);
/* 800D72BC */ void setDamagePoint(int, int, int, int);
/* 800E01CC */ void cancelBoomerangLock(fopAc_ac_c*);
/* 800E0244 */ void checkBoomerangChargeEnd();
/* 800E02B8 */ void checkBoomerangCarry(fopAc_ac_c*);
/* 800E7AEC */ void setFmChainPosFromOut(fopAc_ac_c*, cXyz*, int);
};
struct dRes_control_c {
/* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
/* 8003C400 */ void getIDRes(char const*, u16, dRes_info_c*, int);
};
struct JMath {
static u8 sincosTable_[65536];
};
@@ -161,9 +148,7 @@ extern "C" extern void* __vt__18mDoExt_transAnmBas[5];
extern "C" extern void* __vt__18J3DAnmTransformKey[5];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" u8 mDemoArcName__20dStage_roomControl_c[10 + 2 /* padding */];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" extern u32 __float_nan;
extern "C" u8 sOldVcdVatCmd__8J3DShape[4];
//
@@ -373,52 +358,48 @@ asm void daPy_py_c::checkDrinkBottleItem(int param_0) {
#pragma pop
/* 8015EB40-8015EB68 159480 0028+00 0/0 4/4 0/0 .text checkOilBottleItem__9daPy_py_cFi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm BOOL daPy_py_c::checkOilBottleItem(int param_0) {
nofralloc
#include "asm/d/a/d_a_player/checkOilBottleItem__9daPy_py_cFi.s"
BOOL daPy_py_c::checkOilBottleItem(int i_itemNo) {
bool isOilBottleItem = false;
if (i_itemNo == CHUCHU_YELLOW || i_itemNo == OIL_BOTTLE_2 || i_itemNo == OIL_BOTTLE) {
isOilBottleItem = true;
}
return isOilBottleItem;
}
#pragma pop
/* 8015EB68-8015EB90 1594A8 0028+00 0/0 2/2 0/0 .text checkOpenBottleItem__9daPy_py_cFi
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daPy_py_c::checkOpenBottleItem(int param_0) {
nofralloc
#include "asm/d/a/d_a_player/checkOpenBottleItem__9daPy_py_cFi.s"
BOOL daPy_py_c::checkOpenBottleItem(int i_itemNo) {
bool isOpenBottleItem = false;
if (i_itemNo == WATER_BOTTLE || i_itemNo == WORM || i_itemNo == FAIRY) {
isOpenBottleItem = true;
}
return isOpenBottleItem;
}
#pragma pop
/* 8015EB90-8015EBB8 1594D0 0028+00 0/0 11/11 0/0 .text checkBowItem__9daPy_py_cFi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daPy_py_c::checkBowItem(int param_0) {
nofralloc
#include "asm/d/a/d_a_player/checkBowItem__9daPy_py_cFi.s"
BOOL daPy_py_c::checkBowItem(int i_itemNo) {
bool isBowItem = false;
if (i_itemNo == BOW || i_itemNo == BOMB_ARROW || i_itemNo == HAWK_ARROW) {
isBowItem = true;
}
return isBowItem;
}
#pragma pop
/* 8015EBB8-8015EBD8 1594F8 0020+00 0/0 23/23 0/0 .text checkHookshotItem__9daPy_py_cFi
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daPy_py_c::checkHookshotItem(int param_0) {
nofralloc
#include "asm/d/a/d_a_player/checkHookshotItem__9daPy_py_cFi.s"
BOOL daPy_py_c::checkHookshotItem(int i_itemNo) {
bool isHookshotItem = false;
if (i_itemNo == HOOKSHOT || i_itemNo == W_HOOKSHOT) {
isHookshotItem = true;
}
return isHookshotItem;
}
#pragma pop
/* 8015EBD8-8015EC28 159518 0050+00 0/0 3/3 0/0 .text checkTradeItem__9daPy_py_cFi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daPy_py_c::checkTradeItem(int param_0) {
asm BOOL daPy_py_c::checkTradeItem(int param_0) {
nofralloc
#include "asm/d/a/d_a_player/checkTradeItem__9daPy_py_cFi.s"
}
@@ -426,35 +407,26 @@ asm void daPy_py_c::checkTradeItem(int param_0) {
/* 8015EC28-8015EC48 159568 0020+00 0/0 2/2 0/0 .text checkDungeonWarpItem__9daPy_py_cFi
*/
// regalloc
#ifdef NONMATCHING
BOOL daPy_py_c::checkDungeonWarpItem(int i_item_id) {
BOOL daPy_py_c::checkDungeonWarpItem(int i_itemNo) {
bool isDungeonWarpItem = false;
if (i_item_id == DUNGEON_EXIT || i_item_id == DUNGEON_BACK) {
if (i_itemNo == DUNGEON_EXIT || i_itemNo == DUNGEON_BACK) {
isDungeonWarpItem = true;
}
return isDungeonWarpItem;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm BOOL daPy_py_c::checkDungeonWarpItem(int param_0) {
nofralloc
#include "asm/d/a/d_a_player/checkDungeonWarpItem__9daPy_py_cFi.s"
}
#pragma pop
#endif
/* 8015EC48-8015ECB8 159588 0070+00 0/0 10/10 3/3 .text setActor__16daPy_actorKeep_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daPy_actorKeep_c::setActor() {
nofralloc
#include "asm/d/a/d_a_player/setActor__16daPy_actorKeep_cFv.s"
void daPy_actorKeep_c::setActor() {
if (mID != -1) {
mActor = fopAcM_SearchByID(mID);
if (mActor == NULL) {
mID = -1;
}
} else {
mActor = NULL;
}
}
#pragma pop
/* 8015ECB8-8015ECFC 1595F8 0044+00 0/0 59/59 4/4 .text setData__16daPy_actorKeep_cFP10fopAc_ac_c
*/
@@ -477,15 +449,11 @@ daPy_anmHeap_c::daPy_anmHeap_c(u32 pBufferSize) {
mBufferSize = pBufferSize;
}
/* 8015ED50-8015EDAC 159690 005C+00 0/0 2/2 2/2 .text __dt__14daPy_anmHeap_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm daPy_anmHeap_c::~daPy_anmHeap_c() {
nofralloc
#include "asm/d/a/d_a_player/__dt__14daPy_anmHeap_cFv.s"
daPy_anmHeap_c::~daPy_anmHeap_c() {
if (mAnimeHeap != NULL) {
mDoExt_destroySolidHeap(mAnimeHeap);
}
}
#pragma pop
void daPy_anmHeap_c::initData() {
resetIdx();
@@ -494,14 +462,22 @@ void daPy_anmHeap_c::initData() {
}
/* 8015EDC4-8015EE00 159704 003C+00 0/0 1/1 1/1 .text mallocBuffer__14daPy_anmHeap_cFv */
#ifdef NONMATCHING
void* daPy_anmHeap_c::mallocBuffer() {
void* buf = new (0x20) void*[mBufferSize];
mBuffer = buf;
return mBuffer;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daPy_anmHeap_c::mallocBuffer() {
asm void* daPy_anmHeap_c::mallocBuffer() {
nofralloc
#include "asm/d/a/d_a_player/mallocBuffer__14daPy_anmHeap_cFv.s"
}
#pragma pop
#endif
/* 8015EE00-8015EF84 159740 0184+00 0/0 1/1 1/1 .text
* createHeap__14daPy_anmHeap_cFQ214daPy_anmHeap_c16daAlinkHEAP_TYPE */
@@ -516,126 +492,43 @@ asm void daPy_anmHeap_c::createHeap(daPy_anmHeap_c::daAlinkHEAP_TYPE param_0) {
/* ############################################################################################## */
/* 80453648-80453650 001C48 0008+00 1/0 0/0 0/0 .sdata2 sumouArcName$4614 */
extern "C" u8 sumouArcName[8];
extern "C" char sumouArcName[8];
/* 80453650-80453658 001C50 0005+03 1/0 0/0 0/0 .sdata2 ocArcName$4615 */
extern "C" u8 ocArcName[5 + 3 /* padding */];
extern "C" char ocArcName[8];
/* 80453658-80453660 001C58 0005+03 1/0 0/0 0/0 .sdata2 drArcName$4618 */
extern "C" u8 drArcName[5 + 3 /* padding */];
extern "C" char drArcName[8];
/* 80453660-80453668 001C60 0008+00 1/0 0/0 0/0 .sdata2 msDemoArcName$4619 */
extern "C" u8 msDemoArcName[8];
extern "C" char msDemoArcName[8];
/* 80453668-80453670 001C68 0006+02 1/0 0/0 0/0 .sdata2 lastGanonArcName$4620 */
extern "C" u8 lastGanonArcName[6 + 2 /* padding */];
extern "C" char lastGanonArcName[8];
/* 80453670-80453678 001C70 0006+02 1/0 0/0 0/0 .sdata2 pigGanonArcName$4621 */
extern "C" u8 pigGanonArcName[6 + 2 /* padding */];
extern "C" char pigGanonArcName[8];
/* 80393DA8-80393DB4 020408 000A+02 1/0 0/0 0/0 .rodata twglArcName$4616 */
SECTION_RODATA static u8 const twglArcName[10 + 2 /* padding */] = {
0x54,
0x57,
0x47,
0x61,
0x74,
0x65,
0x5F,
0x4C,
0x6B,
0x00,
/* padding */
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x80393DA8, &twglArcName);
SECTION_RODATA static char const twglArcName[12] = "TWGate_Lk";
/* 80393DB4-80393DC0 020414 000A+02 1/0 0/0 0/0 .rodata twgwArcName$4617 */
SECTION_RODATA static u8 const twgwArcName[10 + 2 /* padding */] = {
0x54,
0x57,
0x47,
0x61,
0x74,
0x65,
0x5F,
0x57,
0x66,
0x00,
/* padding */
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x80393DB4, &twgwArcName);
SECTION_RODATA static char const twgwArcName[12] = "TWGate_Wf";
/* 803BA0A0-803BA0C0 -00001 0020+00 1/1 0/0 0/0 .data arcName$4622 */
SECTION_DATA static void* arcName[8] = {
(void*)&sumouArcName, (void*)&ocArcName, (void*)&twglArcName, (void*)&twgwArcName,
(void*)&drArcName, (void*)&msDemoArcName, (void*)&lastGanonArcName, (void*)&pigGanonArcName,
SECTION_DATA static char* arcName[8] = {
(char*)&sumouArcName, (char*)&ocArcName, (char*)&twglArcName, (char*)&twgwArcName,
(char*)&drArcName, (char*)&msDemoArcName, (char*)&lastGanonArcName, (char*)&pigGanonArcName,
};
/* 80453648-80453650 001C48 0008+00 1/0 0/0 0/0 .sdata2 sumouArcName$4614 */
SECTION_SDATA2 static u8 sumouArcName[8] = {
0x61, 0x6C, 0x53, 0x75, 0x6D, 0x6F, 0x75, 0x00,
};
SECTION_SDATA2 static char sumouArcName[8] = "alSumou";
/* 80453650-80453658 001C50 0005+03 1/0 0/0 0/0 .sdata2 ocArcName$4615 */
SECTION_SDATA2 static u8 ocArcName[5 + 3 /* padding */] = {
0x42,
0x5F,
0x6F,
0x68,
0x00,
/* padding */
0x00,
0x00,
0x00,
};
SECTION_SDATA2 static char ocArcName[8] = "B_oh";
/* 80453658-80453660 001C58 0005+03 1/0 0/0 0/0 .sdata2 drArcName$4618 */
SECTION_SDATA2 static u8 drArcName[5 + 3 /* padding */] = {
0x42,
0x5F,
0x44,
0x52,
0x00,
/* padding */
0x00,
0x00,
0x00,
};
SECTION_SDATA2 static char drArcName[8] = "B_DR";
/* 80453660-80453668 001C60 0008+00 1/0 0/0 0/0 .sdata2 msDemoArcName$4619 */
SECTION_SDATA2 static u8 msDemoArcName[8] = {
0x4C, 0x76, 0x36, 0x47, 0x61, 0x74, 0x65, 0x00,
};
SECTION_SDATA2 static char msDemoArcName[8] = "Lv6Gate";
/* 80453668-80453670 001C68 0006+02 1/0 0/0 0/0 .sdata2 lastGanonArcName$4620 */
SECTION_SDATA2 static u8 lastGanonArcName[6 + 2 /* padding */] = {
0x42,
0x5F,
0x67,
0x6E,
0x64,
0x00,
/* padding */
0x00,
0x00,
};
SECTION_SDATA2 static char lastGanonArcName[8] = "B_gnd";
/* 80453670-80453678 001C70 0006+02 1/0 0/0 0/0 .sdata2 pigGanonArcName$4621 */
SECTION_SDATA2 static u8 pigGanonArcName[6 + 2 /* padding */] = {
0x42,
0x5F,
0x6D,
0x67,
0x6E,
0x00,
/* padding */
0x00,
0x00,
};
SECTION_SDATA2 static char pigGanonArcName[8] = "B_mgn";
/* 8015EF84-8015F068 1598C4 00E4+00 3/3 0/0 0/0 .text loadData__14daPy_anmHeap_cFUs */
#pragma push
@@ -694,14 +587,10 @@ J3DAnmBase* daPy_anmHeap_c::loadDataDemoRID(u16 pID, u16 pArcNo) {
}
/* 8015F168-8015F1A0 159AA8 0038+00 1/1 4/4 0/0 .text setAnimeHeap__14daPy_anmHeap_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daPy_anmHeap_c::setAnimeHeap() {
nofralloc
#include "asm/d/a/d_a_player/setAnimeHeap__14daPy_anmHeap_cFv.s"
void daPy_anmHeap_c::setAnimeHeap() {
mAnimeHeap->freeAll();
mDoExt_setCurrentHeap(mAnimeHeap);
}
#pragma pop
/* ############################################################################################## */
/* 803BA0C0-803BA14C 0171E0 0089+03 1/1 0/0 0/0 .data l_sightDL */
@@ -891,14 +780,15 @@ asm void daPy_sightPacket_c::setSightImage(ResTIMG* param_0) {
#pragma pop
/* 8015F398-8015F3C4 159CD8 002C+00 0/0 8/8 10/10 .text checkMasterSwordEquip__9daPy_py_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daPy_py_c::checkMasterSwordEquip() {
nofralloc
#include "asm/d/a/d_a_player/checkMasterSwordEquip__9daPy_py_cFv.s"
BOOL daPy_py_c::checkMasterSwordEquip() {
u32 equipSword = dComIfGs_getSelectEquipSword();
bool isMasterSword = false;
if (equipSword == MASTER_SWORD || equipSword == LIGHT_SWORD) {
isMasterSword = true;
}
return isMasterSword;
}
#pragma pop
/* 8015F3C4-8015F3FC 159D04 0038+00 0/0 4/4 0/0 .text checkWoodShieldEquip__9daPy_py_cFv
*/
@@ -911,38 +801,24 @@ asm void daPy_py_c::checkWoodShieldEquip() {
}
#pragma pop
/* ############################################################################################## */
/* 80453684-80453688 001C84 0004+00 1/1 0/0 0/0 .sdata2 @4741 */
SECTION_SDATA2 static f32 lit_4741 = -12.5f;
/* 80453688-80453690 001C88 0004+04 1/1 0/0 0/0 .sdata2 @4742 */
SECTION_SDATA2 static f32 lit_4742[1 + 1 /* padding */] = {
57.5f,
/* padding */
0.0f,
};
BOOL daPy_py_c::checkNowWolf() {
return dComIfGp_getLinkPlayer()->i_checkWolf();
}
/* 8015F3FC-8015F424 159D3C 0028+00 0/0 4/4 3/3 .text getAttentionOffsetY__9daPy_py_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daPy_py_c::getAttentionOffsetY() {
nofralloc
#include "asm/d/a/d_a_player/getAttentionOffsetY__9daPy_py_cFv.s"
f32 daPy_py_c::getAttentionOffsetY() {
if (checkNowWolf()) {
return -12.5f;
}
return 57.5f;
}
#pragma pop
/* 8015F424-8015F438 159D64 0014+00 0/0 17/17 33/33 .text checkNowWolfEyeUp__9daPy_py_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daPy_py_c::checkNowWolfEyeUp() {
nofralloc
#include "asm/d/a/d_a_player/checkNowWolfEyeUp__9daPy_py_cFv.s"
s16 daPy_py_c::checkNowWolfEyeUp() {
return daAlink_getAlinkActorClass()->checkWolfEyeUp();
}
#pragma pop
/* 8015F438-8015F478 159D78 0040+00 0/0 0/0 1/1 .text forceRestartRoom__9daPy_py_cFiUli
*/
@@ -957,6 +833,11 @@ asm void daPy_py_c::forceRestartRoom(int param_0, u32 param_1, int param_2) {
/* 8015F478-8015F4B8 159DB8 0040+00 0/0 0/0 3/3 .text
* setFmChainPos__9daPy_py_cFP10fopAc_ac_cP4cXyzi */
#ifdef NONMATCHING
void daPy_py_c::setFmChainPos(fopAc_ac_c* param_0, cXyz* param_1, int param_2) {
daAlink_getAlinkActorClass()->setFmChainPosFromOut(param_0, param_1, param_2);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -965,6 +846,7 @@ asm void daPy_py_c::setFmChainPos(fopAc_ac_c* param_0, cXyz* param_1, int param_
#include "asm/d/a/d_a_player/setFmChainPos__9daPy_py_cFP10fopAc_ac_cP4cXyzi.s"
}
#pragma pop
#endif
/* 8015F4B8-8015F4F0 159DF8 0038+00 0/0 0/0 1/1 .text cancelFmChainGrab__9daPy_py_cFv */
#pragma push
+38 -63
View File
@@ -17,12 +17,6 @@
struct scene_class {};
struct phaseParam_c {};
struct mDoRst {
static u8 mResetData[4 + 4 /* padding */];
};
struct mDoGph_gInf_c {
static u8 mFader[4];
};
@@ -43,11 +37,6 @@ struct dMapInfo_n {
/* 8003EE5C */ void getMapPlayerPos();
};
struct dDlst_shadowControl_c {
/* 80055C74 */ void setReal(u32, s8, J3DModel*, cXyz*, f32, f32, dKy_tevstr_c*);
/* 80055F84 */ void setSimple(cXyz*, f32, f32, cXyz*, s16, f32, _GXTexObj*);
};
struct dComIfG_resLoader_c {
/* 8002F314 */ dComIfG_resLoader_c();
/* 8002F328 */ ~dComIfG_resLoader_c();
@@ -1417,15 +1406,14 @@ static int phase_1(char* arc_name) {
/* 8002CE38-8002CEB4 027778 007C+00 1/0 0/0 0/0 .text phase_2__FPc */
static int phase_2(char* arc_name) {
int tmp = dComIfG_syncObjectRes(arc_name);
int syncStatus = dComIfG_syncObjectRes(arc_name);
if (tmp < 0) {
if (syncStatus < 0) {
OSReport_Error("%s.arc Sync Read Error !!\n", arc_name);
tmp = 5;
return 5;
} else {
tmp = tmp > 0 ? 0 : 2;
return syncStatus > 0 ? 0 : 2;
}
return tmp;
}
/* 8002CEB4-8002CEBC 0277F4 0008+00 1/0 0/0 0/0 .text phase_3__FPc */
@@ -1434,6 +1422,7 @@ static int phase_3(char* param_0) {
}
typedef int (*dComIfG_phaseMethod)(char*);
typedef int (*dComIfG_phaseMethod0)(phaseParam_c*);
/* ############################################################################################## */
/* 803A71B8-803A71C4 -00001 000C+00 1/1 0/0 0/0 .data l_method$5017 */
@@ -1445,6 +1434,16 @@ SECTION_DATA static dComIfG_phaseMethod l_method_5017[3] = {
/* 8002CEBC-8002CEFC 0277FC 0040+00 0/0 7/7 550/550 .text
* dComIfG_resLoad__FP30request_of_phase_process_classPCc */
#ifdef NONMATCHING
int dComIfG_resLoad(request_of_phase_process_class* param_0, char const* param_1) {
if (param_0->mPhaseStep == 2) {
return 4;
} else {
dComLbG_PhaseHandler(param_0, &l_method_5017[0], (void*)param_1);
}
return 0;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1453,38 +1452,38 @@ asm void dComIfG_resLoad(request_of_phase_process_class* param_0, char const* pa
#include "asm/d/com/d_com_inf_game/dComIfG_resLoad__FP30request_of_phase_process_classPCc.s"
}
#pragma pop
#endif
/* 8002CEFC-8002CF5C 02783C 0060+00 1/0 0/0 0/0 .text phase_01__FP12phaseParam_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void phase_01(phaseParam_c* param_0) {
nofralloc
#include "asm/d/com/d_com_inf_game/phase_01__FP12phaseParam_c.s"
static int phase_01(phaseParam_c* param_0) {
if (dComIfG_setObjectRes(param_0->field_0x0, 0, param_0->heap) == 0) {
return 5;
} else {
return 2;
}
}
#pragma pop
/* 8002CF5C-8002CFB8 02789C 005C+00 1/0 0/0 0/0 .text phase_02__FP12phaseParam_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void phase_02(phaseParam_c* param_0) {
nofralloc
#include "asm/d/com/d_com_inf_game/phase_02__FP12phaseParam_c.s"
static int phase_02(phaseParam_c* param_0) {
int syncStatus = dComIfG_syncObjectRes(param_0->field_0x0);
if (syncStatus < 0) {
return 5;
} else {
return syncStatus > 0 ? 0 : 2;
}
}
#pragma pop
/* 8002CFB8-8002CFC0 0278F8 0008+00 1/0 0/0 0/0 .text phase_03__FP12phaseParam_c */
static bool phase_03(phaseParam_c* param_0) {
static int phase_03(phaseParam_c* param_0) {
return false;
}
/* ############################################################################################## */
/* 803A71C4-803A71D0 -00001 000C+00 1/1 0/0 0/0 .data l_method$5051 */
SECTION_DATA static void* l_method_5051[3] = {
(void*)phase_01__FP12phaseParam_c,
(void*)phase_02__FP12phaseParam_c,
(void*)phase_03__FP12phaseParam_c,
SECTION_DATA static dComIfG_phaseMethod0 l_method_5051[3] = {
phase_01,
phase_02,
phase_03,
};
/* 8002CFC0-8002D008 027900 0048+00 1/1 3/3 0/0 .text
@@ -2331,39 +2330,15 @@ asm void dComIfG_resLoader_c::load(char const** param_0, JKRHeap* param_1) {
}
#pragma pop
/* ############################################################################################## */
/* 80378F38-80378F38 005598 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80379098 = "Stg_00";
#pragma pop
/* 8002F434-8002F478 029D74 0044+00 0/0 12/12 12/12 .text dComIfG_getStageRes__FPCc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dComIfG_getStageRes(char const* param_0) {
nofralloc
#include "asm/d/com/d_com_inf_game/dComIfG_getStageRes__FPCc.s"
void* dComIfG_getStageRes(char const* resName) {
return dComIfG_getStageRes("Stg_00", resName);
}
#pragma pop
/* ############################################################################################## */
/* 80378F38-80378F38 005598 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_8037909F = "Xtg_00";
#pragma pop
/* 8002F478-8002F4BC 029DB8 0044+00 0/0 1/1 0/0 .text dComIfG_getOldStageRes__FPCc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dComIfG_getOldStageRes(char const* param_0) {
nofralloc
#include "asm/d/com/d_com_inf_game/dComIfG_getOldStageRes__FPCc.s"
void* dComIfG_getOldStageRes(char const* resName) {
return dComIfG_getStageRes("Xtg_00", resName);
}
#pragma pop
static char buf[32];
-4
View File
@@ -16,10 +16,6 @@ struct mDoCPd_c {
static u8 m_cpadInfo[256];
};
struct dRes_control_c {
/* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
};
struct dAttDrawParam_c {
/* 80070158 */ dAttDrawParam_c();
/* 80073FC4 */ ~dAttDrawParam_c();
+131 -187
View File
@@ -4,7 +4,8 @@
//
#include "d/d_drawlist.h"
#include "JSystem/J2DGraph/J2DScreen.h"
#include "JSystem/J3DGraphBase/J3DShape.h"
#include "JSystem/J3DGraphBase/J3DSys.h"
#include "dol2asm.h"
#include "dolphin/mtx/mtx44.h"
#include "dolphin/mtx/mtxvec.h"
@@ -30,64 +31,6 @@ struct mDoGph_gInf_c {
static u8 mBackColor[4];
};
struct mDoExt_3DlineMatSortPacket {
/* 80014E20 */ ~mDoExt_3DlineMatSortPacket();
/* 800561C8 */ mDoExt_3DlineMatSortPacket();
};
struct dKy_tevstr_c {};
struct dDlst_shadowTri_c {
/* 80056270 */ ~dDlst_shadowTri_c();
/* 80056344 */ dDlst_shadowTri_c();
};
struct dDlst_shadowSimple_c {
/* 8005520C */ void draw();
/* 800553EC */ void set(cXyz*, f32, f32, cXyz*, s16, f32, _GXTexObj*);
/* 8005638C */ dDlst_shadowSimple_c();
};
struct J3DModel {};
struct dDlst_shadowReal_c {
/* 800544F0 */ void reset();
/* 80054500 */ void imageDraw(f32 (*)[4]);
/* 800545D4 */ void draw();
/* 80054BD0 */ void setShadowRealMtx(cXyz*, cXyz*, f32, f32, f32, dKy_tevstr_c*);
/* 80055028 */ void set(u32, J3DModel*, cXyz*, f32, f32, dKy_tevstr_c*, f32, f32);
/* 800551D4 */ void add(J3DModel*);
/* 800561F8 */ ~dDlst_shadowReal_c();
/* 800562D0 */ dDlst_shadowReal_c();
};
struct dDlst_shadowRealPoly_c {
/* 800569A0 */ void getTri();
/* 800569A8 */ s32 getTriMax();
};
struct cM3dGPla {};
struct cBgD_Vtx_t {};
struct dDlst_shadowPoly_c {
/* 80054288 */ void set(cBgD_Vtx_t*, u16, u16, u16, cM3dGPla*);
/* 800543B4 */ void draw();
};
struct dDlst_shadowControl_c {
/* 80055684 */ void init();
/* 80055768 */ void reset();
/* 800557C8 */ void imageDraw(f32 (*)[4]);
/* 80055A14 */ void draw(f32 (*)[4]);
/* 80055C74 */ void setReal(u32, s8, J3DModel*, cXyz*, f32, f32, dKy_tevstr_c*);
/* 80055F1C */ void addReal(u32, J3DModel*);
/* 80055F84 */ void setSimple(cXyz*, f32, f32, cXyz*, s16, f32, _GXTexObj*);
/* 80055FE8 */ void setSimpleTex(ResTIMG const*);
static u8 mSimpleTexObj[32];
};
struct dDlst_effectLine_c {
/* 80053E9C */ void draw();
/* 800541F4 */ void update(cXyz&, _GXColor&, u16, u16, u16, u16, f32, f32, f32, f32);
@@ -136,12 +79,17 @@ struct dDlst_2DM_c {
/* 80052C58 */ void draw();
};
struct cM_rnd_c {
class cM_rnd_c {
public:
/* 80053CDC */ void init(int, int, int);
/* 80053CEC */ void get();
/* 80053DE0 */ void getF(f32);
/* 80053E18 */ void getFX(f32);
/* 80053E60 */ void getValue(f32, f32);
/* 80053CEC */ f32 get();
/* 80053DE0 */ f32 getF(f32);
/* 80053E18 */ f32 getFX(f32);
/* 80053E60 */ f32 getValue(f32, f32);
/* 0x0 */ int seed0;
/* 0x4 */ int seed1;
/* 0x8 */ int seed2;
};
struct cBgS_ShdwDraw {
@@ -167,12 +115,6 @@ struct J3DUClipper {
/* 80273A44 */ void clip(f32 const (*)[4], Vec*, Vec*) const;
};
struct J3DShape {
/* 80315300 */ void loadPreDrawSetting() const;
static u8 sOldVcdVatCmd[4];
};
struct J2DPicture {
/* 800539DC */ void getTexture(u8) const;
/* 80053C44 */ void setWhite(JUtility::TColor);
@@ -395,26 +337,24 @@ extern "C" u8 sOldVcdVatCmd__8J3DShape[4];
//
/* 80051AC0-80051ADC 04C400 001C+00 0/0 3/3 0/0 .text setViewPort__14dDlst_window_cFffffff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDlst_window_c::setViewPort(f32 param_0, f32 param_1, f32 param_2, f32 param_3,
f32 param_4, f32 param_5) {
nofralloc
#include "asm/d/d_drawlist/setViewPort__14dDlst_window_cFffffff.s"
void dDlst_window_c::setViewPort(f32 param_0, f32 param_1, f32 param_2, f32 param_3, f32 param_4,
f32 param_5) {
mViewport = param_0;
field_0x04 = param_1;
field_0x08 = param_2;
field_0x0C = param_3;
field_0x10 = param_4;
field_0x14 = param_5;
}
#pragma pop
/* 80051ADC-80051AF0 04C41C 0014+00 0/0 4/4 0/0 .text setScissor__14dDlst_window_cFffff
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDlst_window_c::setScissor(f32 param_0, f32 param_1, f32 param_2, f32 param_3) {
nofralloc
#include "asm/d/d_drawlist/setScissor__14dDlst_window_cFffff.s"
void dDlst_window_c::setScissor(f32 param_0, f32 param_1, f32 param_2, f32 param_3) {
mScissor = param_0;
field_0x1c = param_1;
field_0x20 = param_2;
field_0x24 = param_3;
}
#pragma pop
/* 80051AF0-80051CF0 04C430 0200+00 1/0 0/0 0/0 .text draw__13dDlst_2DTri_cFv */
#pragma push
@@ -448,7 +388,7 @@ asm void dDlst_2DPoint_c::draw() {
/* ############################################################################################## */
/* 80450648-8045064C 0000C8 0004+00 1/1 0/0 0/0 .sdata l_color$4033 */
SECTION_SDATA static u8 l_color_4033[4] = {
SECTION_SDATA static _GXColor l_color_4033 = {
0xFF,
0xFF,
0xFF,
@@ -2062,16 +2002,16 @@ SECTION_DATA static u8 l_matDL[123 + 1 /* padding */] = {
};
/* 803A8D7C-803A8D8C 005E9C 0010+00 1/1 0/0 0/0 .data l_imageDrawColor$5405 */
SECTION_DATA static u8 l_imageDrawColor[16] = {
0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF,
};
SECTION_DATA static _GXColor l_imageDrawColor[4] = {{0xFF, 0x00, 0x00, 0x00},
{0x00, 0xFF, 0x00, 0x00},
{0x00, 0x00, 0xFF, 0x00},
{0x00, 0x00, 0x00, 0xFF}};
/* 803A8D8C-803A8D9C 005EAC 0010+00 0/1 0/0 0/0 .data l_tevColorChan$5438 */
#pragma push
#pragma force_active on
SECTION_DATA static u8 l_tevColorChan[16] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03,
};
SECTION_DATA static GXTevColor l_tevColorChan[4] = {GX_CH_RED, GX_CH_BLUE, GX_CH_GREEN,
GX_CH_ALPHA};
#pragma pop
/* 803A8D9C-803A8DCC 005EBC 0030+00 0/0 0/0 0/0 .data mtx_adj$5842 */
@@ -2332,21 +2272,19 @@ asm void J2DPicture::setBlack(JUtility::TColor param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm J2DAnmBase::~J2DAnmBase() {
// asm J2DAnmBase::~J2DAnmBase() {
extern "C" asm void __dt__10J2DAnmBaseFv() {
nofralloc
#include "asm/d/d_drawlist/__dt__10J2DAnmBaseFv.s"
}
#pragma pop
/* 80053CDC-80053CEC 04E61C 0010+00 0/0 2/2 0/0 .text init__8cM_rnd_cFiii */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void cM_rnd_c::init(int param_0, int param_1, int param_2) {
nofralloc
#include "asm/d/d_drawlist/init__8cM_rnd_cFiii.s"
void cM_rnd_c::init(int s0, int s1, int s2) {
seed0 = s0;
seed1 = s1;
seed2 = s2;
}
#pragma pop
/* ############################################################################################## */
/* 80452034-80452038 000634 0004+00 1/1 0/0 0/0 .sdata2 @4791 */
@@ -2362,48 +2300,45 @@ SECTION_SDATA2 static f32 lit_4793 = 30307.0f;
SECTION_SDATA2 static f64 lit_4794 = 1.0;
/* 80053CEC-80053DE0 04E62C 00F4+00 2/2 0/0 0/0 .text get__8cM_rnd_cFv */
// reg swap
#ifdef NONMATCHING
f32 cM_rnd_c::get() {
seed0 = seed0 * 171 % 30269;
seed1 = seed1 * 172 % 30307;
seed2 = seed2 * 170 % 30323;
f32 rm = fmod((seed0 / 30269.0f) + (seed1 / 30307.0f) + (seed2 / 30323.0f), 1.0f);
return __fabs(rm);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void cM_rnd_c::get() {
asm f32 cM_rnd_c::get() {
nofralloc
#include "asm/d/d_drawlist/get__8cM_rnd_cFv.s"
}
#pragma pop
#endif
/* 80053DE0-80053E18 04E720 0038+00 1/1 0/0 0/0 .text getF__8cM_rnd_cFf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void cM_rnd_c::getF(f32 param_0) {
nofralloc
#include "asm/d/d_drawlist/getF__8cM_rnd_cFf.s"
f32 cM_rnd_c::getF(f32 param_0) {
return get() * param_0;
}
#pragma pop
/* ############################################################################################## */
/* 80452048-8045204C 000648 0004+00 5/5 0/0 0/0 .sdata2 @4806 */
SECTION_SDATA2 static f32 lit_4806 = 2.0f;
/* 80053E18-80053E60 04E758 0048+00 1/1 0/0 0/0 .text getFX__8cM_rnd_cFf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void cM_rnd_c::getFX(f32 param_0) {
nofralloc
#include "asm/d/d_drawlist/getFX__8cM_rnd_cFf.s"
f32 cM_rnd_c::getFX(f32 param_0) {
return ((get() - lit_4072) * param_0) * lit_4806;
}
#pragma pop
/* 80053E60-80053E9C 04E7A0 003C+00 1/1 0/0 0/0 .text getValue__8cM_rnd_cFff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void cM_rnd_c::getValue(f32 param_0, f32 param_1) {
nofralloc
#include "asm/d/d_drawlist/getValue__8cM_rnd_cFff.s"
f32 cM_rnd_c::getValue(f32 param_0, f32 param_1) {
return param_0 + getF(param_1);
}
#pragma pop
/* ############################################################################################## */
/* 8045204C-80452050 00064C 0004+00 1/1 0/0 0/0 .sdata2 @4876 */
@@ -2455,24 +2390,23 @@ asm void dDlst_shadowPoly_c::draw() {
#pragma pop
/* 80054478-800544F0 04EDB8 0078+00 1/1 0/0 0/0 .text J3DDrawBuffer__create__FUl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void J3DDrawBuffer__create(u32 param_0) {
nofralloc
#include "asm/d/d_drawlist/J3DDrawBuffer__create__FUl.s"
static J3DDrawBuffer* J3DDrawBuffer__create(u32 size) {
J3DDrawBuffer* buffer = new J3DDrawBuffer();
if (buffer) {
if (buffer->allocBuffer(size) == kJ3DError_Success) {
return buffer;
}
delete buffer;
}
return NULL;
}
#pragma pop
/* 800544F0-80054500 04EE30 0010+00 2/2 0/0 0/0 .text reset__18dDlst_shadowReal_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDlst_shadowReal_c::reset() {
nofralloc
#include "asm/d/d_drawlist/reset__18dDlst_shadowReal_cFv.s"
void dDlst_shadowReal_c::reset() {
mState = 0;
mModelNum = 0;
}
#pragma pop
/* 80054500-800545D4 04EE40 00D4+00 1/1 0/0 0/0 .text imageDraw__18dDlst_shadowReal_cFPA4_f */
#pragma push
@@ -2634,14 +2568,16 @@ asm void dDlst_shadowReal_c::set(u32 param_0, J3DModel* param_1, cXyz* param_2,
#pragma pop
/* 800551D4-8005520C 04FB14 0038+00 1/1 0/0 0/0 .text add__18dDlst_shadowReal_cFP8J3DModel */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDlst_shadowReal_c::add(J3DModel* param_0) {
nofralloc
#include "asm/d/d_drawlist/add__18dDlst_shadowReal_cFP8J3DModel.s"
bool dDlst_shadowReal_c::add(J3DModel* pModel) {
u8 curModelNum = mModelNum;
if (curModelNum == 0 || pModel == NULL) {
return false;
}
mModelNum++;
mpModels[curModelNum] = pModel;
return true;
}
#pragma pop
/* ############################################################################################## */
/* 80450650-80450654 0000D0 0004+00 1/1 0/0 0/0 .sdata l_color$5326 */
@@ -2707,14 +2643,17 @@ asm void dDlst_shadowControl_c::init() {
#pragma pop
/* 80055768-800557C8 0500A8 0060+00 1/1 0/0 0/0 .text reset__21dDlst_shadowControl_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDlst_shadowControl_c::reset() {
nofralloc
#include "asm/d/d_drawlist/reset__21dDlst_shadowControl_cFv.s"
void dDlst_shadowControl_c::reset() {
dDlst_shadowReal_c* shadowReal = &mReal[0];
for (int i = 0; i < 8; i++) {
shadowReal->reset();
shadowReal++;
}
mSimpleNum = 0;
mRealNum = 0;
field_0x4 = NULL;
}
#pragma pop
/* 800557C8-80055A14 050108 024C+00 0/0 1/1 0/0 .text imageDraw__21dDlst_shadowControl_cFPA4_f */
#pragma push
@@ -2830,6 +2769,18 @@ asm void dDlst_peekZ_c::peekData() {
#pragma pop
/* 800560F0-800561C8 050A30 00D8+00 0/0 1/1 0/0 .text __ct__12dDlst_list_cFv */
#ifdef NONMATCHING
dDlst_list_c::dDlst_list_c() {
field_0x68 = &field_0x64;
field_0xb0 = &field_0xac;
field_0x1b8 = &field_0x1b4;
field_0x240 = &field_0x23c;
J3DDrawBuffer** tmp = &mOpaListSky;
for (int i = 0; i < 0x15; i++) {
*(tmp + i) = NULL;
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -2838,6 +2789,7 @@ asm dDlst_list_c::dDlst_list_c() {
#include "asm/d/d_drawlist/__ct__12dDlst_list_cFv.s"
}
#pragma pop
#endif
/* 800561C8-800561F8 050B08 0030+00 1/1 0/0 0/0 .text __ct__26mDoExt_3DlineMatSortPacketFv */
#pragma push
@@ -3024,70 +2976,62 @@ asm void dDlst_list_c::entryZSortXluDrawList(J3DDrawBuffer* param_0, J3DPacket*
/* 800566D4-80056710 051014 003C+00 1/1 1/1 0/0 .text
* drawOpaDrawList__12dDlst_list_cFP13J3DDrawBuffer */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDlst_list_c::drawOpaDrawList(J3DDrawBuffer* param_0) {
nofralloc
#include "asm/d/d_drawlist/drawOpaDrawList__12dDlst_list_cFP13J3DDrawBuffer.s"
void dDlst_list_c::drawOpaDrawList(J3DDrawBuffer* pDrawBuf) {
J3DShape::resetVcdVatCache();
j3dSys.setDrawModeOpaTexEdge();
pDrawBuf->draw();
}
#pragma pop
/* 80056710-8005674C 051050 003C+00 1/1 1/1 0/0 .text
* drawXluDrawList__12dDlst_list_cFP13J3DDrawBuffer */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDlst_list_c::drawXluDrawList(J3DDrawBuffer* param_0) {
nofralloc
#include "asm/d/d_drawlist/drawXluDrawList__12dDlst_list_cFP13J3DDrawBuffer.s"
void dDlst_list_c::drawXluDrawList(J3DDrawBuffer* pDrawBuf) {
J3DShape::resetVcdVatCache();
j3dSys.setDrawModeXlu();
pDrawBuf->draw();
}
#pragma pop
/* 8005674C-80056770 05108C 0024+00 0/0 1/1 0/0 .text drawOpaListItem3d__12dDlst_list_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDlst_list_c::drawOpaListItem3d() {
nofralloc
#include "asm/d/d_drawlist/drawOpaListItem3d__12dDlst_list_cFv.s"
void dDlst_list_c::drawOpaListItem3d() {
drawOpaDrawList(mOpaListItem3d);
}
#pragma pop
/* 80056770-80056794 0510B0 0024+00 0/0 1/1 0/0 .text drawXluListItem3d__12dDlst_list_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDlst_list_c::drawXluListItem3d() {
nofralloc
#include "asm/d/d_drawlist/drawXluListItem3d__12dDlst_list_cFv.s"
void dDlst_list_c::drawXluListItem3d() {
drawXluDrawList(mXluListItem3d);
}
#pragma pop
/* 80056794-800567C4 0510D4 0030+00 2/2 35/35 6/6 .text
* set__12dDlst_list_cFRPP12dDlst_base_cRPP12dDlst_base_cP12dDlst_base_c */
#ifdef NONMATCHING
int dDlst_list_c::set(dDlst_base_c**& param_0, dDlst_base_c**& param_1, dDlst_base_c* param_2) {
if (*param_0 >= *param_1) {
return 0;
}
*param_0 = param_2;
*param_0++;
return 1;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDlst_list_c::set(dDlst_base_c**& param_0, dDlst_base_c**& param_1,
dDlst_base_c* param_2) {
asm int dDlst_list_c::set(dDlst_base_c**& param_0, dDlst_base_c**& param_1, dDlst_base_c* param_2) {
nofralloc
#include "asm/d/d_drawlist/set__12dDlst_list_cFRPP12dDlst_base_cRPP12dDlst_base_cP12dDlst_base_c.s"
}
#pragma pop
#endif
/* 800567C4-8005681C 051104 0058+00 0/0 1/1 0/0 .text
* draw__12dDlst_list_cFPP12dDlst_base_cPP12dDlst_base_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDlst_list_c::draw(dDlst_base_c** param_0, dDlst_base_c** param_1) {
nofralloc
#include "asm/d/d_drawlist/draw__12dDlst_list_cFPP12dDlst_base_cPP12dDlst_base_c.s"
void dDlst_list_c::draw(dDlst_base_c** pStart, dDlst_base_c** pEnd) {
for (; pStart < pEnd; pStart++) {
dDlst_base_c* base = *pStart;
base->draw();
}
}
#pragma pop
/* ############################################################################################## */
/* 8037A1B0-8037A1B0 006810 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+46 -136
View File
@@ -7,45 +7,6 @@
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct dKantera_icon_c {
/* 801AE938 */ dKantera_icon_c();
/* 801AE974 */ ~dKantera_icon_c();
/* 801AEA68 */ void initiate();
/* 801AEB7C */ void setAlphaRate(f32);
/* 801AEBA0 */ void setPos(f32, f32);
/* 801AEBF4 */ void setScale(f32, f32);
/* 801AEC44 */ void setNowGauge(u16, u16);
};
struct dDlst_KanteraIcon_c {
/* 801AECB8 */ void draw();
/* 801AED1C */ ~dDlst_KanteraIcon_c();
};
struct JKRExpHeap {};
struct JKRArchive {};
struct J2DGrafContext {};
struct J2DScreen {
/* 802F8498 */ J2DScreen();
/* 802F8648 */ void setPriority(char const*, u32, JKRArchive*);
/* 802F8ED4 */ void draw(f32, f32, J2DGrafContext const*);
};
struct CPaneMgrAlpha {
/* 802557D0 */ void setAlphaRate(f32);
};
struct CPaneMgr {
/* 80253984 */ CPaneMgr(J2DScreen*, u64, u8, JKRExpHeap*);
};
//
// Forward References:
//
@@ -74,82 +35,57 @@ extern "C" void __ct__9J2DScreenFv();
extern "C" void setPriority__9J2DScreenFPCcUlP10JKRArchive();
extern "C" void draw__9J2DScreenFffPC14J2DGrafContext();
extern "C" extern void* __vt__12dDlst_base_c[3];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_drawHIO[3880];
//
// Declarations:
//
/* ############################################################################################## */
/* 803BC218-803BC228 019338 0010+00 2/2 0/0 0/0 .data __vt__19dDlst_KanteraIcon_c */
SECTION_DATA extern void* __vt__19dDlst_KanteraIcon_c[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)draw__19dDlst_KanteraIcon_cFv,
(void*)__dt__19dDlst_KanteraIcon_cFv,
};
/* 803BC228-803BC238 019348 000C+04 2/2 0/0 0/0 .data __vt__15dKantera_icon_c */
SECTION_DATA extern void* __vt__15dKantera_icon_c[3 + 1 /* padding */] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__15dKantera_icon_cFv,
/* padding */
NULL,
};
/* 801AE938-801AE974 1A9278 003C+00 0/0 3/3 0/0 .text __ct__15dKantera_icon_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dKantera_icon_c::dKantera_icon_c() {
nofralloc
#include "asm/d/d_kantera_icon_meter/__ct__15dKantera_icon_cFv.s"
dKantera_icon_c::dKantera_icon_c() {
initiate();
}
#pragma pop
/* 801AE974-801AEA68 1A92B4 00F4+00 1/0 0/0 0/0 .text __dt__15dKantera_icon_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dKantera_icon_c::~dKantera_icon_c() {
nofralloc
#include "asm/d/d_kantera_icon_meter/__dt__15dKantera_icon_cFv.s"
}
#pragma pop
dKantera_icon_c::~dKantera_icon_c() {
delete mpKanteraIcon->getScreen();
delete mpKanteraIcon;
mpKanteraIcon = NULL;
/* ############################################################################################## */
/* 80394F50-80394F50 0215B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80394F50 = "zelda_kantera_icon_mater.blo";
/* @stringBase0 padding */
SECTION_DEAD static char const* const pad_80394F6D = "\0\0";
#pragma pop
delete mpParent;
mpParent = NULL;
delete mpGauge;
mpGauge = NULL;
}
/* 801AEA68-801AEB7C 1A93A8 0114+00 1/1 0/0 0/0 .text initiate__15dKantera_icon_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKantera_icon_c::initiate() {
nofralloc
#include "asm/d/d_kantera_icon_meter/initiate__15dKantera_icon_cFv.s"
void dKantera_icon_c::initiate() {
mpKanteraIcon = new dDlst_KanteraIcon_c();
J2DScreen* scrn = new J2DScreen();
scrn->setPriority("zelda_kantera_icon_mater.blo", 0x20000, dComIfGp_getMain2DArchive());
dPaneClass_showNullPane(scrn);
mpKanteraIcon->setScreen(scrn);
mpParent = new CPaneMgr(scrn, 'kan_m_n', 2, NULL);
mpGauge = new CPaneMgr(scrn, 'yellow_m', 0, NULL);
}
#pragma pop
/* 801AEB7C-801AEBA0 1A94BC 0024+00 0/0 4/4 0/0 .text setAlphaRate__15dKantera_icon_cFf
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKantera_icon_c::setAlphaRate(f32 param_0) {
nofralloc
#include "asm/d/d_kantera_icon_meter/setAlphaRate__15dKantera_icon_cFf.s"
void dKantera_icon_c::setAlphaRate(f32 alphaRate) {
mpParent->setAlphaRate(alphaRate);
}
#pragma pop
/* 801AEBA0-801AEBF4 1A94E0 0054+00 0/0 3/3 0/0 .text setPos__15dKantera_icon_cFff */
// need g_drawHIO global setup
#ifdef NONMATCHING
void dKantera_icon_c::setPos(f32 x, f32 y) {
mpParent->translate(x + g_drawHIO.mLanternIconMeterPosX, y + g_drawHIO.mLanternIconMeterPosY)
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -158,8 +94,15 @@ asm void dKantera_icon_c::setPos(f32 param_0, f32 param_1) {
#include "asm/d/d_kantera_icon_meter/setPos__15dKantera_icon_cFff.s"
}
#pragma pop
#endif
/* 801AEBF4-801AEC44 1A9534 0050+00 0/0 4/4 0/0 .text setScale__15dKantera_icon_cFff */
// need g_drawHIO global setup
#ifdef NONMATCHING
void dKantera_icon_c::setScale(f32 h, f32 v) {
mpParent->scale(h * g_drawHIO.mLanternIconMeterSize, v * g_drawHIO.mLanternIconMeterSize)
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -168,55 +111,22 @@ asm void dKantera_icon_c::setScale(f32 param_0, f32 param_1) {
#include "asm/d/d_kantera_icon_meter/setScale__15dKantera_icon_cFff.s"
}
#pragma pop
/* ############################################################################################## */
/* 80453EF8-80453F00 0024F8 0004+04 1/1 0/0 0/0 .sdata2 @3759 */
SECTION_SDATA2 static f32 lit_3759[1 + 1 /* padding */] = {
1.0f,
/* padding */
0.0f,
};
/* 80453F00-80453F08 002500 0008+00 1/1 0/0 0/0 .sdata2 @3761 */
SECTION_SDATA2 static f64 lit_3761 = 4503599627370496.0 /* cast u32 to float */;
#endif
/* 801AEC44-801AECB8 1A9584 0074+00 0/0 4/4 0/0 .text setNowGauge__15dKantera_icon_cFUsUs
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKantera_icon_c::setNowGauge(u16 param_0, u16 param_1) {
nofralloc
#include "asm/d/d_kantera_icon_meter/setNowGauge__15dKantera_icon_cFUsUs.s"
void dKantera_icon_c::setNowGauge(u16 h, u16 v) {
mpGauge->scale((f32)v / (f32)h, 1.0f);
}
#pragma pop
/* ############################################################################################## */
/* 80453F08-80453F10 002508 0004+04 1/1 0/0 0/0 .sdata2 @3776 */
SECTION_SDATA2 static f32 lit_3776[1 + 1 /* padding */] = {
0.0f,
/* padding */
0.0f,
};
/* 801AECB8-801AED1C 1A95F8 0064+00 1/0 0/0 0/0 .text draw__19dDlst_KanteraIcon_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDlst_KanteraIcon_c::draw() {
nofralloc
#include "asm/d/d_kantera_icon_meter/draw__19dDlst_KanteraIcon_cFv.s"
void dDlst_KanteraIcon_c::draw() {
J2DGrafContext* curGraf = dComIfGp_getCurrentGrafPort();
curGraf->setup2D();
mp_scrn->draw(0.0f, 0.0f, curGraf);
}
#pragma pop
/* 801AED1C-801AED64 1A965C 0048+00 1/0 0/0 0/0 .text __dt__19dDlst_KanteraIcon_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dDlst_KanteraIcon_c::~dDlst_KanteraIcon_c() {
nofralloc
#include "asm/d/d_kantera_icon_meter/__dt__19dDlst_KanteraIcon_cFv.s"
}
#pragma pop
dDlst_KanteraIcon_c::~dDlst_KanteraIcon_c() {}
/* 80394F50-80394F50 0215B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+331 -220
View File
@@ -5,8 +5,10 @@
#include "d/d_resorce.h"
#include "JSystem/JKernel/JKRSolidHeap.h"
#include "d/com/d_com_inf_game.h"
#include "dol2asm.h"
#include "dolphin/mtx/mtx.h"
#include "dolphin/os/OSCache.h"
#include "dolphin/types.h"
//
@@ -26,52 +28,10 @@ struct mDoExt_transAnmBas {
/* 8003C784 */ ~mDoExt_transAnmBas();
};
struct mDoDvdThd_mountArchive_c {
/* 80015E14 */ void create(char const*, u8, JKRHeap*);
};
struct dRes_control_c {
/* 8003BFB0 */ ~dRes_control_c();
/* 8003C078 */ void setRes(char const*, dRes_info_c*, int, char const*, u8, JKRHeap*);
/* 8003C160 */ void syncRes(char const*, dRes_info_c*, int);
/* 8003C194 */ void deleteRes(char const*, dRes_info_c*, int);
/* 8003C1E4 */ void getResInfo(char const*, dRes_info_c*, int);
/* 8003C260 */ void newResInfo(dRes_info_c*, int);
/* 8003C288 */ void getResInfoLoaded(char const*, dRes_info_c*, int);
/* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
/* 8003C37C */ void getRes(char const*, char const*, dRes_info_c*, int);
/* 8003C400 */ void getIDRes(char const*, u16, dRes_info_c*, int);
/* 8003C470 */ void syncAllRes(dRes_info_c*, int);
/* 8003C4E4 */ void setObjectRes(char const*, void*, u32, JKRHeap*);
/* 8003C5BC */ void setStageRes(char const*, JKRHeap*);
/* 8003C638 */ void dump();
/* 8003C6B8 */ void getObjectResName2Index(char const*, char const*);
};
struct dBgWKCol {
/* 8007E7D0 */ void initKCollision(void*);
};
struct cBgS {
/* 80074578 */ void ConvDzb(void*);
};
struct _GXAttr {};
struct ResTIMG {};
struct JUTNameTab {
/* 802DEAF8 */ void getName(u16) const;
};
struct JKRMemBreakFlag {};
struct JKRMemArchive {
/* 802D6A6C */ JKRMemArchive(void*, u32, JKRMemBreakFlag);
};
struct J3DTransformInfo {};
struct J3DTexture {
/* 8031221C */ void addResTIMG(u16, ResTIMG const*);
};
@@ -210,6 +170,7 @@ extern "C" s32 getKind__18J3DAnmTransformKeyCFv();
extern "C" void getTransform__18J3DAnmTransformKeyCFUsP16J3DTransformInfo();
extern "C" void calc__11J3DTexNoAnmCFPUs();
extern "C" extern char const* const d_d_resorce__stringBase0;
extern "C" void DCStoreRangeNoSync(void*, u32);
//
// External References:
@@ -238,7 +199,7 @@ extern "C" void findIdxResource__10JKRArchiveCFUl();
extern "C" void findNameResource__10JKRArchiveCFPCc();
extern "C" void __ct__13JKRMemArchiveFPvUl15JKRMemBreakFlag();
extern "C" void getName__10JUTNameTabCFUs();
extern "C" void JUTReportConsole_f();
extern "C" void JUTReportConsole_f(const char*, ...);
extern "C" void addResTIMG__10J3DTextureFUsPC7ResTIMG();
extern "C" void addTexMtxIndexInDL__8J3DShapeF7_GXAttrUl();
extern "C" void addTexMtxIndexInVcd__8J3DShapeF7_GXAttr();
@@ -254,7 +215,6 @@ extern "C" void load__24J3DClusterLoaderDataBaseFPCv();
extern "C" void load__22J3DModelLoaderDataBaseFPCvUl();
extern "C" void load__20J3DAnmLoaderDataBaseFPCv24J3DAnmLoaderDataBaseFlag();
extern "C" void setResource__20J3DAnmLoaderDataBaseFP10J3DAnmBasePCv();
extern "C" void DCStoreRangeNoSync();
extern "C" void __destroy_arr();
extern "C" void __construct_array();
extern "C" void _savegpr_20();
@@ -272,14 +232,9 @@ extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void memcmp();
extern "C" void snprintf();
extern "C" void strncpy();
extern "C" void strlen();
extern "C" void stricmp();
extern "C" extern u8 const j3dDefaultMtx[48];
extern "C" extern void* __vt__14J3DMaterialAnm[4];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_env_light[4880];
extern "C" u8 mFrameBufferTimg__13mDoGph_gInf_c[4];
extern "C" u8 mZbufferTimg__13mDoGph_gInf_c[4];
@@ -291,41 +246,47 @@ extern "C" extern u8 j3dDefaultTevSwapMode[4];
//
/* 8003A260-8003A280 034BA0 0020+00 0/0 1/1 0/0 .text __ct__11dRes_info_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dRes_info_c::dRes_info_c() {
nofralloc
#include "asm/d/d_resorce/__ct__11dRes_info_cFv.s"
dRes_info_c::dRes_info_c() {
mCount = 0;
mDMCommand = NULL;
mArchive = NULL;
heap = NULL;
mDataHeap = NULL;
mRes = NULL;
}
#pragma pop
/* 8003A280-8003A348 034BC0 00C8+00 3/3 1/1 0/0 .text __dt__11dRes_info_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dRes_info_c::~dRes_info_c() {
nofralloc
#include "asm/d/d_resorce/__dt__11dRes_info_cFv.s"
dRes_info_c::~dRes_info_c() {
if (mDMCommand != NULL) {
delete mDMCommand;
mDMCommand = NULL;
} else if (mArchive != NULL) {
deleteArchiveRes();
if (mDataHeap != NULL) {
mDoExt_destroySolidHeap(mDataHeap);
mDataHeap = NULL;
mArchive->unmount();
}
mRes = NULL;
mArchive = NULL;
}
}
#pragma pop
/* ############################################################################################## */
/* 803798B8-803798B8 005F18 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_803798B8 = "%s%s.arc";
#pragma pop
/* 8003A348-8003A3F0 034C88 00A8+00 1/1 0/0 0/0 .text set__11dRes_info_cFPCcPCcUcP7JKRHeap */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dRes_info_c::set(char const* param_0, char const* param_1, u8 param_2, JKRHeap* param_3) {
nofralloc
#include "asm/d/d_resorce/set__11dRes_info_cFPCcPCcUcP7JKRHeap.s"
int dRes_info_c::set(char const* pArcName, char const* pArcPath, u8 param_2, JKRHeap* pHeap) {
char path[40];
if (*pArcPath != NULL) {
snprintf(path, 40, "%s%s.arc", pArcPath, pArcName);
mDMCommand = mDoDvdThd_mountArchive_c::create(path, param_2, pHeap);
if (mDMCommand == NULL) {
return false;
}
}
strncpy(mArchiveName, pArcName, 10);
return true;
}
#pragma pop
/* 8003A3F0-8003A490 034D30 00A0+00 1/1 0/0 0/0 .text setAlpha__FP16J3DMaterialTable */
#pragma push
@@ -653,7 +614,7 @@ SECTION_DEAD static char const* const stringBase_80379912 = "<%s> res == NULL !!
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dRes_info_c::loadResource() {
asm int dRes_info_c::loadResource() {
nofralloc
#include "asm/d/d_resorce/loadResource__11dRes_info_cFv.s"
}
@@ -694,7 +655,7 @@ asm void dRes_info_c::deleteArchiveRes() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void getArcHeader(JKRArchive* param_0) {
static asm void* getArcHeader(JKRArchive* param_0) {
nofralloc
#include "asm/d/d_resorce/getArcHeader__FP10JKRArchive.s"
}
@@ -702,54 +663,86 @@ static asm void getArcHeader(JKRArchive* param_0) {
/* 8003BAC4-8003BAF8 036404 0034+00 1/1 0/0 0/0 .text setRes__11dRes_info_cFP10JKRArchiveP7JKRHeap
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dRes_info_c::setRes(JKRArchive* param_0, JKRHeap* param_1) {
nofralloc
#include "asm/d/d_resorce/setRes__11dRes_info_cFP10JKRArchiveP7JKRHeap.s"
int dRes_info_c::setRes(JKRArchive* pArchive, JKRHeap* pHeap) {
mArchive = pArchive;
heap = pHeap;
mDataHeap = NULL;
return loadResource() >> 0x1F;
}
#pragma pop
/* ############################################################################################## */
/* 803798B8-803798B8 005F18 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80379927 =
"<%s.arc> setRes: archive mount error !!\n";
SECTION_DEAD static char const* const stringBase_80379950 =
"<%s.arc> mDMCommandsetRes: can't alloc memory\n";
#pragma pop
/* 8003BAF8-8003BC98 036438 01A0+00 2/2 0/0 0/0 .text setRes__11dRes_info_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dRes_info_c::setRes() {
nofralloc
#include "asm/d/d_resorce/setRes__11dRes_info_cFv.s"
int dRes_info_c::setRes() {
if (mArchive == NULL) {
if (mDMCommand == NULL) {
return -1;
}
if ((int)mDMCommand->mIsDone == 0) {
return 1;
}
mArchive = mDMCommand->getArchive();
heap = mDMCommand->getHeap();
delete mDMCommand;
mDMCommand = NULL;
if (mArchive == NULL) {
OSReport_Error("<%s.arc> setRes: archive mount error !!\n", mArchiveName);
return -1;
}
if (heap != NULL) {
heap->lock();
mDataHeap = mDoExt_createSolidHeapToCurrent(0, heap, 0x20);
int rt = loadResource();
mDoExt_restoreCurrentHeap();
mDoExt_adjustSolidHeap(mDataHeap);
heap->unlock();
if (rt < 0) {
return -1;
}
} else {
mDataHeap = mDoExt_createSolidHeapFromGameToCurrent(0, 0);
if (mDataHeap == NULL) {
OSReport_Error("<%s.arc> mDMCommandsetRes: can't alloc memory\n", mArchiveName);
return -1;
}
int rt = loadResource();
mDoExt_restoreCurrentHeap();
mDoExt_adjustSolidHeap(mDataHeap);
if (rt < 0) {
return -1;
}
}
u32 heapSize = mDataHeap->getHeapSize();
void* heapStartAddr = mDataHeap->getStartAddr();
DCStoreRangeNoSync(heapStartAddr, heapSize);
}
return 0;
}
#pragma pop
/* 8003BC98-8003BD00 0365D8 0068+00 1/1 0/0 0/0 .text myGetMemBlockSize__FPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void myGetMemBlockSize(void* param_0) {
nofralloc
#include "asm/d/d_resorce/myGetMemBlockSize__FPv.s"
static s32 myGetMemBlockSize(void* param_0) {
JKRHeap* heap = JKRHeap::findFromRoot(param_0);
if (heap->getHeapType() == 'EXPH') {
return JKRHeap::getSize(param_0, heap);
} else {
return -1;
}
}
#pragma pop
/* 8003BD00-8003BD2C 036640 002C+00 1/1 0/0 0/0 .text myGetMemBlockSize0__FPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void myGetMemBlockSize0(void* param_0) {
nofralloc
#include "asm/d/d_resorce/myGetMemBlockSize0__FPv.s"
static s32 myGetMemBlockSize0(void* param_0) {
s32 size = myGetMemBlockSize(param_0);
if (size < 0) {
size = 0;
}
return size;
}
#pragma pop
/* ############################################################################################## */
/* 803798B8-803798B8 005F18 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@@ -765,6 +758,41 @@ SECTION_DEAD static char const* const stringBase_80379A09 =
#pragma pop
/* 8003BD2C-8003BE38 03666C 010C+00 1/1 0/0 0/0 .text dump_long__11dRes_info_cFP11dRes_info_ci */
#ifdef NONMATCHING
void dRes_info_c::dump_long(dRes_info_c* param_0, int param_1) {
void* header;
int blockSize1;
int blockSize2;
JUTReportConsole_f("dRes_info_c::dump_long %08x %d\n", param_0, param_1);
JUTReportConsole_f(
"No Command Archive ArcHeader(size) SolidHeap(size) Resource Cnt ArchiveName\n");
for (int i = 0; i < param_1; i++) {
if (getCount() != 0) {
JKRArchive* archive = getArchive();
header = NULL;
blockSize1 = 0;
if (archive != NULL) {
header = getArcHeader(archive);
blockSize1 = myGetMemBlockSize0(header);
}
JKRSolidHeap* dataHeap = mDataHeap;
blockSize2 = 0;
if (dataHeap != NULL) {
blockSize2 = myGetMemBlockSize0((void*)dataHeap);
}
JUTReportConsole_f("%2d %08x %08x %08x(%6x) %08x(%5x) %08x %3d %s\n", i, getDMCommand(),
archive, header, blockSize1, &mDataHeap, blockSize2, mRes,
getArchiveName());
}
param_0++;
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -773,6 +801,7 @@ asm void dRes_info_c::dump_long(dRes_info_c* param_0, int param_1) {
#include "asm/d/d_resorce/dump_long__11dRes_info_cFP11dRes_info_ci.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 803798B8-803798B8 005F18 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@@ -837,78 +866,128 @@ SECTION_DEAD static char const* const stringBase_80379B40 =
/* 8003C078-8003C160 0369B8 00E8+00 2/2 8/8 0/0 .text
* setRes__14dRes_control_cFPCcP11dRes_info_ciPCcUcP7JKRHeap */
// matches except resInfo destructor issues?
#ifdef NONMATCHING
int dRes_control_c::setRes(char const* arcName, dRes_info_c* pInfo, int infoSize,
char const* arcPath, u8 param_4, JKRHeap* pHeap) {
dRes_info_c* resInfo = getResInfo(arcName, pInfo, infoSize);
if (resInfo == NULL) {
resInfo = newResInfo(pInfo, infoSize);
if (resInfo == NULL) {
// "<%s.arc> dRes_control_c::setRes: 空きリソース情報ポインタがありません\n"
// "<%s.arc> dRes_control_c::setRes: There isn't a free Resource Info pointer\n"
OSReport_Error(
"\x3C\x25\x73\x2E\x61\x72\x63\x3E\x20\x64\x52\x65\x73\x5F\x63\x6F\x6E\x74\x72\x6F"
"\x6C\x5F\x63\x3A\x3A\x73\x65\x74\x52\x65\x73\x3A\x20\x8B\xF3\x82\xAB\x83\x8A\x83"
"\x5C\x81\x5B\x83\x58\x8F\xEE\x95\xF1\x83\x7C\x83\x43\x83\x93\x83\x5E\x82\xAA\x82"
"\xA0\x82\xE8\x82\xDC\x82\xB9\x82\xF1\x0A",
arcName);
delete resInfo;
return 0;
}
int resStatus = resInfo->set(arcName, arcPath, param_4, pHeap);
if (resStatus == 0) {
OSReport_Error("<%s.arc> dRes_control_c::setRes: res info set error !!\n", arcName);
delete resInfo;
return 0;
}
}
resInfo->incCount();
return 1;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dRes_control_c::setRes(char const* param_0, dRes_info_c* param_1, int param_2,
char const* param_3, u8 param_4, JKRHeap* param_5) {
asm int dRes_control_c::setRes(char const* param_0, dRes_info_c* param_1, int param_2,
char const* param_3, u8 param_4, JKRHeap* param_5) {
nofralloc
#include "asm/d/d_resorce/setRes__14dRes_control_cFPCcP11dRes_info_ciPCcUcP7JKRHeap.s"
}
#pragma pop
#endif
/* 8003C160-8003C194 036AA0 0034+00 0/0 10/10 1/1 .text
* syncRes__14dRes_control_cFPCcP11dRes_info_ci */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dRes_control_c::syncRes(char const* param_0, dRes_info_c* param_1, int param_2) {
nofralloc
#include "asm/d/d_resorce/syncRes__14dRes_control_cFPCcP11dRes_info_ci.s"
int dRes_control_c::syncRes(char const* arcName, dRes_info_c* pInfo, int infoSize) {
dRes_info_c* resInfo = getResInfo(arcName, pInfo, infoSize);
if (resInfo == NULL) {
return -1;
} else {
return resInfo->setRes();
}
}
#pragma pop
/* 8003C194-8003C1E4 036AD4 0050+00 1/1 7/7 0/0 .text
* deleteRes__14dRes_control_cFPCcP11dRes_info_ci */
#ifdef NONMATCHING
int dRes_control_c::deleteRes(char const* arcName, dRes_info_c* pInfo, int infoSize) {
dRes_info_c* resInfo = getResInfo(arcName, pInfo, infoSize);
if (resInfo == NULL) {
return 0;
} else {
if (resInfo->decCount() == 0) {
delete resInfo;
}
return 1;
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dRes_control_c::deleteRes(char const* param_0, dRes_info_c* param_1, int param_2) {
asm int dRes_control_c::deleteRes(char const* param_0, dRes_info_c* param_1, int param_2) {
nofralloc
#include "asm/d/d_resorce/deleteRes__14dRes_control_cFPCcP11dRes_info_ci.s"
}
#pragma pop
#endif
/* 8003C1E4-8003C260 036B24 007C+00 5/5 5/5 3/3 .text
* getResInfo__14dRes_control_cFPCcP11dRes_info_ci */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dRes_control_c::getResInfo(char const* param_0, dRes_info_c* param_1, int param_2) {
nofralloc
#include "asm/d/d_resorce/getResInfo__14dRes_control_cFPCcP11dRes_info_ci.s"
dRes_info_c* dRes_control_c::getResInfo(char const* pArcName, dRes_info_c* pResInfo, int infoSize) {
for (int i = 0; i < infoSize; i++) {
if (pResInfo->getCount() != 0) {
if (!stricmp(pArcName, pResInfo->getArchiveName())) {
return pResInfo;
}
}
pResInfo++;
}
return NULL;
}
#pragma pop
/* 8003C260-8003C288 036BA0 0028+00 1/1 0/0 0/0 .text newResInfo__14dRes_control_cFP11dRes_info_ci
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dRes_control_c::newResInfo(dRes_info_c* param_0, int param_1) {
nofralloc
#include "asm/d/d_resorce/newResInfo__14dRes_control_cFP11dRes_info_ci.s"
dRes_info_c* dRes_control_c::newResInfo(dRes_info_c* pResInfo, int infoSize) {
for (int i = 0; i < infoSize; i++) {
if (pResInfo->getCount() == 0) {
return pResInfo;
}
pResInfo++;
}
return NULL;
}
#pragma pop
/* ############################################################################################## */
/* 803798B8-803798B8 005F18 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80379B78 =
"<%s.arc> getRes: res during reading !!\n";
#pragma pop
/* 8003C288-8003C2EC 036BC8 0064+00 4/4 0/0 0/0 .text
* getResInfoLoaded__14dRes_control_cFPCcP11dRes_info_ci */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dRes_control_c::getResInfoLoaded(char const* param_0, dRes_info_c* param_1, int param_2) {
nofralloc
#include "asm/d/d_resorce/getResInfoLoaded__14dRes_control_cFPCcP11dRes_info_ci.s"
dRes_info_c* dRes_control_c::getResInfoLoaded(char const* arcName, dRes_info_c* pResInfo,
int infoSize) {
dRes_info_c* resInfo = getResInfo(arcName, pResInfo, infoSize);
if (resInfo == NULL) {
resInfo = NULL;
} else if (resInfo->getArchive() == NULL) {
OSReport_Warning("<%s.arc> getRes: res during reading !!\n", arcName);
resInfo = NULL;
}
return resInfo;
}
#pragma pop
/* ############################################################################################## */
/* 803798B8-803798B8 005F18 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@@ -921,27 +1000,65 @@ SECTION_DEAD static char const* const stringBase_80379BA0 =
/* 8003C2EC-8003C37C 036C2C 0090+00 1/1 54/54 894/894 .text
* getRes__14dRes_control_cFPCclP11dRes_info_ci */
// weird branching
#ifdef NONMATCHING
void* dRes_control_c::getRes(char const* arcName, s32 resIdx, dRes_info_c* pInfo, int infoSize) {
dRes_info_c* resInfo = getResInfoLoaded(arcName, pInfo, infoSize);
if (resInfo == NULL) {
JKRArchive* archive = resInfo->getArchive();
u32 fileCount = archive->countFile();
if (resIdx >= (int)fileCount) {
OSReport_Error("<%s.arc> getRes: res index over !! index=%d count=%d\n", arcName,
resIdx, fileCount);
return NULL;
}
}
return resInfo->getRes(resIdx);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dRes_control_c::getRes(char const* param_0, s32 param_1, dRes_info_c* param_2,
int param_3) {
asm void* dRes_control_c::getRes(char const* param_0, s32 param_1, dRes_info_c* param_2,
int param_3) {
nofralloc
#include "asm/d/d_resorce/getRes__14dRes_control_cFPCclP11dRes_info_ci.s"
}
#pragma pop
#endif
/* 8003C37C-8003C400 036CBC 0084+00 0/0 18/18 109/109 .text
* getRes__14dRes_control_cFPCcPCcP11dRes_info_ci */
// same weird branch issue
#ifdef NONMATCHING
void* dRes_control_c::getRes(char const* arcName, char const* resName, dRes_info_c* pInfo,
int infoSize) {
dRes_info_c* resInfo = getResInfoLoaded(arcName, pInfo, infoSize);
if (resInfo == NULL) {
JKRArchive* archive = resInfo->getArchive();
JKRArchive::SDIFileEntry* entry = archive->findNameResource(resName);
if (entry != NULL) {
return resInfo->getRes(entry - archive->mFiles);
} else {
return NULL;
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dRes_control_c::getRes(char const* param_0, char const* param_1, dRes_info_c* param_2,
int param_3) {
asm void* dRes_control_c::getRes(char const* param_0, char const* param_1, dRes_info_c* param_2,
int param_3) {
nofralloc
#include "asm/d/d_resorce/getRes__14dRes_control_cFPCcPCcP11dRes_info_ci.s"
}
#pragma pop
#endif
/* 8003C400-8003C470 036D40 0070+00 0/0 7/7 4/4 .text
* getIDRes__14dRes_control_cFPCcUsP11dRes_info_ci */
@@ -957,82 +1074,76 @@ asm void dRes_control_c::getIDRes(char const* param_0, u16 param_1, dRes_info_c*
/* 8003C470-8003C4E4 036DB0 0074+00 0/0 3/3 0/0 .text syncAllRes__14dRes_control_cFP11dRes_info_ci
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dRes_control_c::syncAllRes(dRes_info_c* param_0, int param_1) {
nofralloc
#include "asm/d/d_resorce/syncAllRes__14dRes_control_cFP11dRes_info_ci.s"
int dRes_control_c::syncAllRes(dRes_info_c* pInfo, int infoSize) {
for (int i = 0; i < infoSize; i++) {
if (pInfo->getDMCommand() != NULL && pInfo->setRes() > 0) {
return 1;
}
pInfo++;
}
return 0;
}
#pragma pop
/* ############################################################################################## */
/* 803798B8-803798B8 005F18 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80379BD6 = "";
#pragma pop
/* 8003C4E4-8003C5BC 036E24 00D8+00 1/1 0/0 0/0 .text
* setObjectRes__14dRes_control_cFPCcPvUlP7JKRHeap */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dRes_control_c::setObjectRes(char const* param_0, void* param_1, u32 param_2,
JKRHeap* param_3) {
nofralloc
#include "asm/d/d_resorce/setObjectRes__14dRes_control_cFPCcPvUlP7JKRHeap.s"
}
#pragma pop
int dRes_control_c::setObjectRes(char const* arcName, void* i_archiveRes, u32 param_2,
JKRHeap* param_3) {
if (!setRes(arcName, &mObjectInfo[0], 0x80, "", 0, NULL)) {
return 0;
} else {
JKRMemArchive* memArchive =
new JKRMemArchive(i_archiveRes, param_2, JKRMEMBREAK_FLAG_UNKNOWN0);
/* ############################################################################################## */
/* 803798B8-803798B8 005F18 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80379BD7 = "/res/Stage/%s/";
#pragma pop
if (memArchive == NULL || !memArchive->isMounted()) {
return 0;
} else {
dRes_info_c* info = getResInfo(arcName, &mObjectInfo[0], 0x80);
int resStatus = info->setRes(memArchive, param_3);
return resStatus == 0 ? 1 : 0;
}
}
}
/* 8003C5BC-8003C638 036EFC 007C+00 0/0 2/2 0/0 .text setStageRes__14dRes_control_cFPCcP7JKRHeap
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dRes_control_c::setStageRes(char const* param_0, JKRHeap* param_1) {
nofralloc
#include "asm/d/d_resorce/setStageRes__14dRes_control_cFPCcP7JKRHeap.s"
}
#pragma pop
int dRes_control_c::setStageRes(char const* arcName, JKRHeap* pHeap) {
char path[20];
/* ############################################################################################## */
/* 803798B8-803798B8 005F18 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80379BE6 = "\ndRes_control_c::dump mObjectInfo\n";
SECTION_DEAD static char const* const stringBase_80379C09 = "\ndRes_control_c::dump mStageInfo\n";
/* @stringBase0 padding */
SECTION_DEAD static char const* const pad_80379C2B = "\0\0\0\0";
#pragma pop
snprintf(path, 20, "/res/Stage/%s/", dComIfGp_getStartStageName());
return setRes(arcName, &mStageInfo[0], 0x40, path, 1, pHeap);
}
/* 8003C638-8003C6B8 036F78 0080+00 0/0 2/2 0/0 .text dump__14dRes_control_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dRes_control_c::dump() {
nofralloc
#include "asm/d/d_resorce/dump__14dRes_control_cFv.s"
void dRes_control_c::dump() {
JUTReportConsole_f("\ndRes_control_c::dump mObjectInfo\n");
dRes_info_c::dump(&mObjectInfo[0], ARRAY_SIZE(mObjectInfo));
dRes_info_c::dump_long(&mObjectInfo[0], ARRAY_SIZE(mObjectInfo));
JUTReportConsole_f("\ndRes_control_c::dump mStageInfo\n");
dRes_info_c::dump(&mStageInfo[0], ARRAY_SIZE(mStageInfo));
dRes_info_c::dump_long(&mStageInfo[0], ARRAY_SIZE(mStageInfo));
}
#pragma pop
/* 8003C6B8-8003C734 036FF8 007C+00 0/0 0/0 32/32 .text
* getObjectResName2Index__14dRes_control_cFPCcPCc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dRes_control_c::getObjectResName2Index(char const* param_0, char const* param_1) {
nofralloc
#include "asm/d/d_resorce/getObjectResName2Index__14dRes_control_cFPCcPCc.s"
int dRes_control_c::getObjectResName2Index(char const* arcName, char const* param_1) {
dRes_info_c* info = getResInfoLoaded(arcName, &mObjectInfo[0], ARRAY_SIZE(mObjectInfo));
if (info == NULL) {
return -1;
} else if (param_1 == NULL) {
return -1;
} else {
JKRArchive* archive = info->getArchive();
JKRArchive::SDIFileEntry* entry = archive->findNameResource(param_1);
if (entry != NULL) {
return entry->file_id;
} else {
return -1;
}
}
}
#pragma pop
/* 8003C734-8003C77C 037074 0048+00 1/0 0/0 0/0 .text __dt__10J3DAnmBaseFv */
#pragma push
+26 -144
View File
@@ -1,158 +1,40 @@
//
// Generated By: dol2asm
// Translation Unit: d/d_select_icon
//
#include "d/d_select_icon.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
dSi_HIO_c::dSi_HIO_c() {}
struct dSi_HIO_c {
/* 80195A2C */ dSi_HIO_c();
/* 80195C1C */ ~dSi_HIO_c();
};
void dSelect_icon_c::animation() {
if (field_0x10->getAlpha() != 0) {
field_0x20 += field_0x2c;
if (field_0x20 >= field_0x1c->getFrameMax()) {
field_0x20 = 0.0f;
}
field_0x1c->setFrame(field_0x20);
struct J2DPane {};
field_0x28 += field_0x2c;
if (field_0x28 >= field_0x24->getFrameMax()) {
field_0x28 = 0.0f;
}
struct dSelect_icon_c {
/* 80195A3C */ void animation();
/* 80195B40 */ void setAlpha(u8);
/* 80195B70 */ void setPos(J2DPane*, f32, f32);
};
struct J2DScreen {
/* 802F9690 */ void animation();
};
struct CPaneMgr {
/* 80254638 */ void paneScale(f32, f32);
};
//
// Forward References:
//
extern "C" void __ct__9dSi_HIO_cFv();
extern "C" void animation__14dSelect_icon_cFv();
extern "C" void setAlpha__14dSelect_icon_cFUc();
extern "C" void setPos__14dSelect_icon_cFP7J2DPaneff();
extern "C" void __dt__9dSi_HIO_cFv();
extern "C" void __sinit_d_select_icon_cpp();
//
// External References:
//
extern "C" void paneScale__8CPaneMgrFff();
extern "C" void __dl__FPv();
extern "C" void animation__9J2DScreenFv();
extern "C" void __register_global_object();
//
// Declarations:
//
/* ############################################################################################## */
/* 803BB7B8-803BB7C8 0188D8 000C+04 2/2 0/0 0/0 .data __vt__9dSi_HIO_c */
SECTION_DATA extern void* __vt__9dSi_HIO_c[3 + 1 /* padding */] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__9dSi_HIO_cFv,
/* padding */
NULL,
};
/* 80195A2C-80195A3C 19036C 0010+00 1/1 0/0 0/0 .text __ct__9dSi_HIO_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dSi_HIO_c::dSi_HIO_c() {
nofralloc
#include "asm/d/d_select_icon/__ct__9dSi_HIO_cFv.s"
field_0x24->setFrame(field_0x28);
field_0x8->animation();
field_0x10->paneScale(field_0x14, field_0x14);
}
}
#pragma pop
/* ############################################################################################## */
/* 80453A70-80453A78 002070 0004+04 1/1 0/0 0/0 .sdata2 @3740 */
SECTION_SDATA2 static f32 lit_3740[1 + 1 /* padding */] = {
0.0f,
/* padding */
0.0f,
};
/* 80453A78-80453A80 002078 0008+00 1/1 0/0 0/0 .sdata2 @3773 */
SECTION_SDATA2 static f64 lit_3773 = 4503601774854144.0 /* cast s32 to float */;
/* 80195A3C-80195B40 19037C 0104+00 0/0 1/1 0/0 .text animation__14dSelect_icon_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dSelect_icon_c::animation() {
nofralloc
#include "asm/d/d_select_icon/animation__14dSelect_icon_cFv.s"
void dSelect_icon_c::setAlpha(u8 param_0) {
field_0x10->setAlpha(param_0);
}
#pragma pop
/* 80195B40-80195B70 190480 0030+00 0/0 1/1 0/0 .text setAlpha__14dSelect_icon_cFUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dSelect_icon_c::setAlpha(u8 param_0) {
nofralloc
#include "asm/d/d_select_icon/setAlpha__14dSelect_icon_cFUc.s"
void dSelect_icon_c::setPos(J2DPane* param_0, f32 transX, f32 transY) {
field_0x14 = param_0->getWidth() / 100.0f;
field_0x18 = param_0->getHeight() / 100.0f;
field_0x10->paneScale(field_0x14, field_0x14);
field_0xc->getPanePtr()->translate(transX, transY);
}
#pragma pop
/* ############################################################################################## */
/* 80453A80-80453A88 002080 0004+04 1/1 0/0 0/0 .sdata2 @3814 */
SECTION_SDATA2 static f32 lit_3814[1 + 1 /* padding */] = {
100.0f,
/* padding */
0.0f,
};
dSi_HIO_c::~dSi_HIO_c() {}
/* 80195B70-80195C1C 1904B0 00AC+00 0/0 1/1 0/0 .text setPos__14dSelect_icon_cFP7J2DPaneff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dSelect_icon_c::setPos(J2DPane* param_0, f32 param_1, f32 param_2) {
nofralloc
#include "asm/d/d_select_icon/setPos__14dSelect_icon_cFP7J2DPaneff.s"
}
#pragma pop
/* 80195C1C-80195C64 19055C 0048+00 2/1 0/0 0/0 .text __dt__9dSi_HIO_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dSi_HIO_c::~dSi_HIO_c() {
nofralloc
#include "asm/d/d_select_icon/__dt__9dSi_HIO_cFv.s"
}
#pragma pop
/* ############################################################################################## */
/* 8042CA10-8042CA20 059730 000C+04 1/1 0/0 0/0 .bss @3648 */
static u8 lit_3648[12 + 4 /* padding */];
/* 80451050-80451058 000550 0008+00 1/1 0/0 0/0 .sbss g_siHIO */
static u8 g_siHIO[8];
/* 80195C64-80195C9C 1905A4 0038+00 0/0 1/0 0/0 .text __sinit_d_select_icon_cpp */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __sinit_d_select_icon_cpp() {
nofralloc
#include "asm/d/d_select_icon/__sinit_d_select_icon_cpp.s"
}
#pragma pop
#pragma push
#pragma force_active on
REGISTER_CTORS(0x80195C64, __sinit_d_select_icon_cpp);
#pragma pop
static dSi_HIO_c g_siHIO;
+248 -237
View File
@@ -4,6 +4,7 @@
//
#include "d/d_stage.h"
#include "d/com/d_com_inf_game.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "m_Do/m_Do_ext.h"
@@ -28,14 +29,6 @@ struct dSvBit_HIO_c {
/* 8025C1F8 */ void init();
};
struct dRes_info_c {};
struct dRes_control_c {
/* 8003C160 */ void syncRes(char const*, dRes_info_c*, int);
/* 8003C194 */ void deleteRes(char const*, dRes_info_c*, int);
/* 8003C1E4 */ void getResInfo(char const*, dRes_info_c*, int);
};
struct dDrawPath_c {
struct room_class {};
};
@@ -45,28 +38,10 @@ struct dMpath_c {
/* 8003FA40 */ void setPointer(s8, void*, int);
};
struct dEvent_manager_c {
/* 80046710 */ void create();
/* 80046C0C */ void remove();
};
struct dComIfG_play_c {
/* 8002C97C */ void getLayerNo(int);
};
struct cBgS_PolyInfo {};
struct dBgS {
/* 80074B98 */ void GetExitId(cBgS_PolyInfo const&);
/* 80075100 */ void GetRoomId(cBgS_PolyInfo const&);
};
struct cMl {
/* 80263228 */ void memalignB(int, u32);
};
struct cBgS_GndChk {};
struct JKRAramArchive {};
//
@@ -449,9 +424,7 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void snprintf(char*, u32, char*, ...);
extern "C" extern J3DLightInfo const j3dDefaultLightInfo;
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_save_bit_HIO[1184 + 4 /* padding */];
extern "C" extern u8 data_804505F0[8];
extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */];
@@ -460,6 +433,10 @@ extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */];
// Declarations:
//
inline dStage_stageDt_c& dComIfGp_getStage() {
return g_dComIfG_gameInfo.play.getStage();
}
void dStage_nextStage_c::set(const char* i_stage, s8 i_roomId, s16 i_point, s8 i_layer, s8 i_wipe,
u8 i_speed) {
if (!enabled) {
@@ -561,8 +538,8 @@ static int dStage_RoomKeepDoorInit(dStage_dt_c* param_0, void* param_1, int para
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_RoomKeepDoorInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_RoomKeepDoorInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_RoomKeepDoorInit__FP11dStage_dt_cPviPv.s"
}
@@ -600,18 +577,17 @@ u32 dStage_roomControl_c::mProcID;
/* 80450D67 0001+00 data_80450D67 None */
s8 struct_80450D64;
extern s8 sLastStayNo;
#pragma push
#pragma force_active on
s8 sLastStayNo;
extern s8 sNextStayNo;
s8 sNextStayNo;
#pragma pop
extern bool sTimePass;
bool sTimePass;
s8 sTimePass;
/* 80450D68-80450D6C 000268 0004+00 2/2 2/2 1/1 .sbss None */
extern u8 data_80450D68[4];
u8 data_80450D68[4];
u8 data_80450D68;
/* 80450D6C-80450D70 00026C 0004+00 1/1 2/2 0/0 .sbss mArcBankName__20dStage_roomControl_c */
char* dStage_roomControl_c::mArcBankName;
@@ -648,25 +624,24 @@ asm void dStage_roomControl_c::init() {
/* 80024338-80024384 01EC78 004C+00 1/1 1/1 0/7 .text initZone__20dStage_roomControl_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dStage_roomControl_c::initZone() {
nofralloc
#include "asm/d/d_stage/initZone__20dStage_roomControl_cFv.s"
void dStage_roomControl_c::initZone() {
dComIfGs_initZone();
dStage_roomStatus_c* status = &mStatus[0];
for (int i = 0; i < 0x40; i++) {
status->mZoneNo = -1;
status++;
}
}
#pragma pop
/* 80024384-800243B0 01ECC4 002C+00 2/2 27/27 6/6 .text getStatusRoomDt__20dStage_roomControl_cFi
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dStage_roomControl_c::getStatusRoomDt(int param_0) {
nofralloc
#include "asm/d/d_stage/getStatusRoomDt__20dStage_roomControl_cFi.s"
dStage_roomStatus_c* dStage_roomControl_c::getStatusRoomDt(int i_statusIdx) {
if (i_statusIdx < 0 || i_statusIdx >= 0x40) {
return NULL;
}
return &mStatus[i_statusIdx];
}
#pragma pop
/* ############################################################################################## */
/* 803A3B18-803A65CC 000C38 2AB4+00 2/2 0/0 0/0 .data l_objectName */
@@ -1067,14 +1042,25 @@ SECTION_DATA JKRExpHeap* dStage_roomControl_c::mMemoryBlock[19] = {
};
/* 800243B0-800243E8 01ECF0 0038+00 0/0 3/3 1/1 .text getMemoryBlock__20dStage_roomControl_cFi */
#ifdef NONMATCHING
JKRExpHeap* dStage_roomControl_c::getMemoryBlock(int i_roomNo) {
int blockId = getMemoryBlockID(i_roomNo);
if (blockId < 0) {
return NULL;
}
return mMemoryBlock[blockId];
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dStage_roomControl_c::getMemoryBlock(int param_0) {
asm JKRExpHeap* dStage_roomControl_c::getMemoryBlock(int param_0) {
nofralloc
#include "asm/d/d_stage/getMemoryBlock__20dStage_roomControl_cFi.s"
}
#pragma pop
#endif
/* 800243E8-80024424 01ED28 003C+00 2/2 0/0 0/0 .text setStayNo__20dStage_roomControl_cFi
*/
@@ -1101,21 +1087,9 @@ asm void dStage_roomControl_c::setStayNo(int param_0) {
#endif
/* 80024424-8002442C 01ED64 0008+00 0/0 0/0 1/1 .text setNextStayNo__20dStage_roomControl_cFi */
// matches but need to fix data
#ifdef NONMATCHING
void dStage_roomControl_c::setNextStayNo(int param_0) {
sNextStayNo = param_0;
void dStage_roomControl_c::setNextStayNo(int nextStayNo) {
sNextStayNo = nextStayNo;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dStage_roomControl_c::setNextStayNo(int param_0) {
nofralloc
#include "asm/d/d_stage/setNextStayNo__20dStage_roomControl_cFi.s"
}
#pragma pop
#endif
static int stayRoomCheck(int param_0, u8* param_1, int param_2) {
for (; param_0 > 0; param_0--) {
@@ -1138,14 +1112,12 @@ static asm void createRoomScene(int param_0) {
#pragma pop
/* 800244E8-8002451C 01EE28 0034+00 0/0 0/0 8/13 .text checkRoomDisp__20dStage_roomControl_cCFi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dStage_roomControl_c::checkRoomDisp(int param_0) const {
nofralloc
#include "asm/d/d_stage/checkRoomDisp__20dStage_roomControl_cCFi.s"
bool dStage_roomControl_c::checkRoomDisp(int i_roomNo) const {
if (checkStatusFlag(i_roomNo, 8)) {
return false;
}
return checkStatusFlag(i_roomNo, 16) ? true : false;
}
#pragma pop
/* 8002451C-8002471C 01EE5C 0200+00 2/2 0/0 0/2 .text loadRoom__20dStage_roomControl_cFiPUcb */
#pragma push
@@ -1190,7 +1162,7 @@ void dStage_roomControl_c::destroyMemoryBlock() {
/* ############################################################################################## */
/* 803A696C-803A6AAC 003A8C 0140+00 2/2 0/0 0/0 .data mArcBank__20dStage_roomControl_c */
SECTION_DATA u8 dStage_roomControl_c::mArcBank[320] = {
SECTION_DATA char dStage_roomControl_c::mArcBank[32][10] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -1214,24 +1186,14 @@ SECTION_DATA u8 dStage_roomControl_c::mArcBank[320] = {
};
/* 8002490C-80024940 01F24C 0034+00 1/1 1/1 0/2 .text setArcBank__20dStage_roomControl_cFiPCc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dStage_roomControl_c::setArcBank(int param_0, char const* param_1) {
nofralloc
#include "asm/d/d_stage/setArcBank__20dStage_roomControl_cFiPCc.s"
void dStage_roomControl_c::setArcBank(int i_bank, char const* param_1) {
strncpy(&mArcBank[i_bank][0], param_1, 9);
}
#pragma pop
/* 80024940-80024954 01F280 0014+00 1/1 1/1 0/1 .text getArcBank__20dStage_roomControl_cFi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dStage_roomControl_c::getArcBank(int param_0) {
nofralloc
#include "asm/d/d_stage/getArcBank__20dStage_roomControl_cFi.s"
char* dStage_roomControl_c::getArcBank(int i_bank) {
return mArcBank[i_bank];
}
#pragma pop
/* ############################################################################################## */
/* 80378A50-80378A50 0050B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@@ -1244,17 +1206,56 @@ SECTION_DEAD static char const* const stringBase_80378AF0 =
/* 80024954-80024A34 01F294 00E0+00 0/0 2/2 0/2 .text resetArchiveBank__20dStage_roomControl_cFi
*/
// regalloc
#ifdef NONMATCHING
int dStage_roomControl_c::resetArchiveBank(int i_bank) {
for (; i_bank < 32; i_bank++) {
char* bank = getArcBank(i_bank);
if (strcmp(bank, "")) {
s32 syncStatus = dComIfG_syncObjectRes(bank);
if (syncStatus < 0) {
OSReport_Error("Bank[%d] : %s.arc Sync Read Error !!\n", bank, i_bank);
} else {
if (syncStatus > 0) {
return 0;
}
dComIfG_deleteObjectResMain(bank);
setArcBank(i_bank, "");
}
}
}
return 1;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dStage_roomControl_c::resetArchiveBank(int param_0) {
asm int dStage_roomControl_c::resetArchiveBank(int param_0) {
nofralloc
#include "asm/d/d_stage/resetArchiveBank__20dStage_roomControl_cFi.s"
}
#pragma pop
#endif
/* 80024A34-80024ABC 01F374 0088+00 1/1 0/0 0/2 .text
* create__Q220dStage_roomControl_c9roomDzs_cFUc */
#ifdef NONMATCHING
void dStage_roomControl_c::roomDzs_c::create(u8 param_0) {
JKRExpHeap* archeap = mDoExt_getArchiveHeap();
JKRHeap** heap = new (archeap, -4) JKRHeap*[param_0];
m_dzs = heap;
JKRHeap* heap2 = (JKRHeap*)m_dzs;
if (heap2 != NULL) {
for (u8 i = 0; i < param_0; i++) {
heap2 = heap[i];
}
m_num = param_0;
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1263,6 +1264,7 @@ asm void dStage_roomControl_c::roomDzs_c::create(u8 param_0) {
#include "asm/d/d_stage/create__Q220dStage_roomControl_c9roomDzs_cFUc.s"
}
#pragma pop
#endif
/* 80024ABC-80024B44 01F3FC 0088+00 1/1 0/0 0/0 .text remove__Q220dStage_roomControl_c9roomDzs_cFv
*/
@@ -1368,21 +1370,9 @@ static asm void dStage_roomInit(int param_0) {
#pragma pop
/* 80024DB0-80024DB8 01F6F0 0008+00 2/2 0/0 0/0 .text SetTimePass__20dStage_roomControl_cFi */
// matches but need to fix data
#ifdef NONMATCHING
void dStage_roomControl_c::SetTimePass(int isPassing) {
sTimePass = isPassing;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dStage_roomControl_c::SetTimePass(int param_0) {
nofralloc
#include "asm/d/d_stage/SetTimePass__20dStage_roomControl_cFi.s"
}
#pragma pop
#endif
roomRead_class* dStage_stageDt_c::getRoom() const {
return mRoom;
@@ -1429,14 +1419,29 @@ const char* dStage_getName2(s16 procName, s8 subtype) {
/* 80024EFC-80024F98 01F83C 009C+00 7/7 0/0 0/0 .text
* dStage_actorCreate__FP22stage_actor_data_classP16fopAcM_prm_class */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_actorCreate(stage_actor_data_class* param_0, fopAcM_prm_class* param_1) {
nofralloc
#include "asm/d/d_stage/dStage_actorCreate__FP22stage_actor_data_classP16fopAcM_prm_class.s"
static void dStage_actorCreate(stage_actor_data_class* param_0, fopAcM_prm_class* param_1) {
dStage_objectNameInf* actorInf = dStage_searchName((char*)param_0);
fopAc_ac_c* actor;
if (actorInf == NULL) {
JKRHeap::free(param_1, NULL);
} else {
param_1->mSubtype = actorInf->mSubtype;
s16 objName = actorInf->mProcName;
// "hider" actor
if (objName == 0x30F) {
actor = (fopAc_ac_c*)fopAcM_FastCreate(objName, 0, NULL, param_1);
if (actor != NULL) {
fopAcM_delete(actor);
}
} else {
layer_class* curLayer = fpcLy_CurrentLayer();
fpcSCtRq_Request(curLayer, objName, 0, NULL, param_1);
}
}
}
#pragma pop
/* ############################################################################################## */
/* 80451C90-80451C94 000290 0004+00 2/2 0/0 0/0 .sdata2 @4270 */
@@ -1477,43 +1482,43 @@ SECTION_DEAD static char const* const stringBase_80378B2B = "S_MV000";
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_playerInit(dStage_dt_c* param_0, void* param_1, int param_2, void* param_3) {
static asm int dStage_playerInit(dStage_dt_c* param_0, void* param_1, int param_2, void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_playerInit__FP11dStage_dt_cPviPv.s"
}
#pragma pop
/* 800252B8-80025308 01FBF8 0050+00 1/0 0/0 0/0 .text dStage_cameraInit__FP11dStage_dt_cPviPv */
#ifdef NONMATCHING
static int dStage_cameraInit(dStage_dt_c* param_0, void* param_1, int param_2, void* param_3) {
unkTest* tmp = (unkTest*)param_1;
param_0->setCamera((stage_camera_class*)tmp->field_0x4);
dStage_cameraCreate((stage_camera2_data_class*)tmp->field_0x4, 0, 0);
return 1;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_cameraInit(dStage_dt_c* param_0, void* param_1, int param_2, void* param_3) {
static asm int dStage_cameraInit(dStage_dt_c* param_0, void* param_1, int param_2, void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_cameraInit__FP11dStage_dt_cPviPv.s"
}
#pragma pop
#endif
/* 80025308-8002533C 01FC48 0034+00 1/0 0/0 0/0 .text dStage_RoomCameraInit__FP11dStage_dt_cPviPv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_RoomCameraInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_RoomCameraInit__FP11dStage_dt_cPviPv.s"
static int dStage_RoomCameraInit(dStage_dt_c* i_stage, void* param_1, int param_2, void* param_3) {
i_stage->setCamera((stage_camera_class*)param_1 + 4);
return 1;
}
#pragma pop
/* 8002533C-80025370 01FC7C 0034+00 2/0 0/0 0/0 .text dStage_arrowInit__FP11dStage_dt_cPviPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_arrowInit(dStage_dt_c* param_0, void* param_1, int param_2, void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_arrowInit__FP11dStage_dt_cPviPv.s"
static int dStage_arrowInit(dStage_dt_c* i_stage, void* param_1, int param_2, void* param_3) {
i_stage->setArrow((stage_arrow_class*)param_1 + 4);
return 1;
}
#pragma pop
/* 80025370-800253FC 01FCB0 008C+00 1/0 0/0 0/0 .text getMapInfo2__15dStage_roomDt_cCFi
*/
@@ -1562,8 +1567,8 @@ asm stage_map_info_dummy_class* dStage_stageDt_c::getMapInfoBase() const {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_paletteInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_paletteInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_paletteInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -1574,8 +1579,8 @@ static asm void dStage_paletteInfoInit(dStage_dt_c* param_0, void* param_1, int
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_pselectInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_pselectInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_pselectInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -1585,8 +1590,8 @@ static asm void dStage_pselectInfoInit(dStage_dt_c* param_0, void* param_1, int
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_envrInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_envrInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_envrInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -1597,8 +1602,8 @@ static asm void dStage_envrInfoInit(dStage_dt_c* param_0, void* param_1, int par
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_filiInfo2Init(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_filiInfo2Init(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_filiInfo2Init__FP11dStage_dt_cPviPv.s"
}
@@ -1609,8 +1614,8 @@ static asm void dStage_filiInfo2Init(dStage_dt_c* param_0, void* param_1, int pa
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_fieldMapFiliInfo2Init(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_fieldMapFiliInfo2Init(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_fieldMapFiliInfo2Init__FP11dStage_dt_cPviPv.s"
}
@@ -1620,8 +1625,8 @@ static asm void dStage_fieldMapFiliInfo2Init(dStage_dt_c* param_0, void* param_1
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_filiInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_filiInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_filiInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -1632,8 +1637,8 @@ static asm void dStage_filiInfoInit(dStage_dt_c* param_0, void* param_1, int par
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_vrboxInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_vrboxInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_vrboxInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -1644,8 +1649,8 @@ static asm void dStage_vrboxInfoInit(dStage_dt_c* param_0, void* param_1, int pa
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_vrboxcolInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_vrboxcolInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_vrboxcolInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -1656,8 +1661,8 @@ static asm void dStage_vrboxcolInfoInit(dStage_dt_c* param_0, void* param_1, int
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_plightInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_plightInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_plightInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -1667,8 +1672,8 @@ static asm void dStage_plightInfoInit(dStage_dt_c* param_0, void* param_1, int p
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_lgtvInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_lgtvInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_lgtvInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -1696,8 +1701,8 @@ SECTION_DEAD static char const* const stringBase_80378B33 = "Xtg_00";
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_stagInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_stagInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_stagInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -1718,8 +1723,8 @@ asm void dStage_stageDt_c::resetOldMulti() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_sclsInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_sclsInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_sclsInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -1730,8 +1735,8 @@ static asm void dStage_sclsInfoInit(dStage_dt_c* param_0, void* param_1, int par
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_actorCommonLayerInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_actorCommonLayerInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_actorCommonLayerInit__FP11dStage_dt_cPviPv.s"
}
@@ -1742,8 +1747,8 @@ static asm void dStage_actorCommonLayerInit(dStage_dt_c* param_0, void* param_1,
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_tgscCommonLayerInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_tgscCommonLayerInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_tgscCommonLayerInit__FP11dStage_dt_cPviPv.s"
}
@@ -1753,7 +1758,7 @@ static asm void dStage_tgscCommonLayerInit(dStage_dt_c* param_0, void* param_1,
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_actorInit(dStage_dt_c* param_0, void* param_1, int param_2, void* param_3) {
static asm int dStage_actorInit(dStage_dt_c* param_0, void* param_1, int param_2, void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_actorInit__FP11dStage_dt_cPviPv.s"
}
@@ -1764,8 +1769,8 @@ static asm void dStage_actorInit(dStage_dt_c* param_0, void* param_1, int param_
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_actorInit_always(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_actorInit_always(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_actorInit_always__FP11dStage_dt_cPviPv.s"
}
@@ -1775,8 +1780,8 @@ static asm void dStage_actorInit_always(dStage_dt_c* param_0, void* param_1, int
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_tgscInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_tgscInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_tgscInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -1786,8 +1791,8 @@ static asm void dStage_tgscInfoInit(dStage_dt_c* param_0, void* param_1, int par
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_doorInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_doorInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_doorInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -1797,8 +1802,8 @@ static asm void dStage_doorInfoInit(dStage_dt_c* param_0, void* param_1, int par
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_roomReadInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_roomReadInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_roomReadInit__FP11dStage_dt_cPviPv.s"
}
@@ -1819,8 +1824,8 @@ asm u8 dStage_roomRead_dt_c_GetReverbStage(roomRead_class& param_0, int param_1)
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_ppntInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_ppntInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_ppntInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -1830,8 +1835,8 @@ static asm void dStage_ppntInfoInit(dStage_dt_c* param_0, void* param_1, int par
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_pathInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_pathInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_pathInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -1841,8 +1846,8 @@ static asm void dStage_pathInfoInit(dStage_dt_c* param_0, void* param_1, int par
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_rppnInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_rppnInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_rppnInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -1852,8 +1857,8 @@ static asm void dStage_rppnInfoInit(dStage_dt_c* param_0, void* param_1, int par
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_rpatInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_rpatInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_rpatInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -1864,8 +1869,8 @@ static asm void dStage_rpatInfoInit(dStage_dt_c* param_0, void* param_1, int par
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_soundInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_soundInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_soundInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -1876,8 +1881,8 @@ static asm void dStage_soundInfoInit(dStage_dt_c* param_0, void* param_1, int pa
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_soundInfoInitCL(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_soundInfoInitCL(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_soundInfoInitCL__FP11dStage_dt_cPviPv.s"
}
@@ -1902,6 +1907,28 @@ SECTION_DEAD static char const* const stringBase_80378B3A = "dStage_dt_c_decode:
/* 800260B4-8002617C 0209F4 00C8+00 9/9 0/0 0/0 .text
* dStage_dt_c_decode__FPvP11dStage_dt_cP9FuncTablei */
// no idea
#ifdef NONMATCHING
static void dStage_dt_c_decode(void* i_data, dStage_dt_c* i_stage, FuncTable* param_2,
int param_3) {
int* ptr;
if (i_data != NULL) {
int ivar4 = 0;
ptr = (int*)i_data + 1;
for (int i = 0; i < param_3; i += 12) {
for (int j = 0; j < (int)ptr; j += 12) {
if ((int)ptr == ivar4) {
param_2->function(i_stage, (void*)ptr, param_3, i_data);
}
}
ivar4++;
}
}
OSReport_Error("dStage_dt_c_decode: i_data is NULL\n");
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1911,14 +1938,15 @@ static asm void dStage_dt_c_decode(void* param_0, dStage_dt_c* param_1, FuncTabl
#include "asm/d/d_stage/dStage_dt_c_decode__FPvP11dStage_dt_cP9FuncTablei.s"
}
#pragma pop
#endif
/* 8002617C-800261B0 020ABC 0034+00 1/0 0/0 0/0 .text dStage_stEventInfoInit__FP11dStage_dt_cPviPv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_stEventInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_stEventInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_stEventInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -1929,8 +1957,8 @@ static asm void dStage_stEventInfoInit(dStage_dt_c* param_0, void* param_1, int
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_mapEventInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_mapEventInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_mapEventInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -1941,8 +1969,8 @@ static asm void dStage_mapEventInfoInit(dStage_dt_c* param_0, void* param_1, int
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_floorInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_floorInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_floorInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -1952,8 +1980,8 @@ static asm void dStage_floorInfoInit(dStage_dt_c* param_0, void* param_1, int pa
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_memaInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_memaInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_memaInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -1963,8 +1991,8 @@ static asm void dStage_memaInfoInit(dStage_dt_c* param_0, void* param_1, int par
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_mecoInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_mecoInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_mecoInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -1975,8 +2003,8 @@ static asm void dStage_mecoInfoInit(dStage_dt_c* param_0, void* param_1, int par
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_stageKeepTresureInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_stageKeepTresureInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_stageKeepTresureInit__FP11dStage_dt_cPviPv.s"
}
@@ -1987,8 +2015,8 @@ static asm void dStage_stageKeepTresureInit(dStage_dt_c* param_0, void* param_1,
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_fieldMapTresureInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_fieldMapTresureInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_fieldMapTresureInit__FP11dStage_dt_cPviPv.s"
}
@@ -2008,8 +2036,7 @@ static asm void dStage_dt_c_offsetToPtr(void* param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_mapPathInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_mapPathInit(dStage_dt_c* param_0, void* param_1, int param_2, void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_mapPathInit__FP11dStage_dt_cPviPv.s"
}
@@ -2020,8 +2047,8 @@ static asm void dStage_mapPathInit(dStage_dt_c* param_0, void* param_1, int para
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_mapPathInitCommonLayer(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_mapPathInitCommonLayer(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_mapPathInitCommonLayer__FP11dStage_dt_cPviPv.s"
}
@@ -2032,8 +2059,8 @@ static asm void dStage_mapPathInitCommonLayer(dStage_dt_c* param_0, void* param_
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_fieldMapMapPathInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_fieldMapMapPathInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_fieldMapMapPathInit__FP11dStage_dt_cPviPv.s"
}
@@ -2065,8 +2092,8 @@ static asm void readMult(dStage_dt_c* param_0, dStage_Multi_c* param_1, bool par
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_multInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_multInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_multInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -2076,8 +2103,8 @@ static asm void dStage_multInfoInit(dStage_dt_c* param_0, void* param_1, int par
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_lbnkInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_lbnkInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_lbnkInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -2088,8 +2115,8 @@ static asm void dStage_lbnkInfoInit(dStage_dt_c* param_0, void* param_1, int par
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_roomTresureInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_roomTresureInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_roomTresureInit__FP11dStage_dt_cPviPv.s"
}
@@ -2100,8 +2127,8 @@ static asm void dStage_roomTresureInit(dStage_dt_c* param_0, void* param_1, int
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_layerTresureInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_layerTresureInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_layerTresureInit__FP11dStage_dt_cPviPv.s"
}
@@ -2111,8 +2138,8 @@ static asm void dStage_layerTresureInit(dStage_dt_c* param_0, void* param_1, int
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_dmapInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_dmapInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_dmapInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -2123,8 +2150,8 @@ static asm void dStage_dmapInfoInit(dStage_dt_c* param_0, void* param_1, int par
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_stageDrtgInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_stageDrtgInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_stageDrtgInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -2135,8 +2162,8 @@ static asm void dStage_stageDrtgInfoInit(dStage_dt_c* param_0, void* param_1, in
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_roomDrtgInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_roomDrtgInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_roomDrtgInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -2146,8 +2173,8 @@ static asm void dStage_roomDrtgInfoInit(dStage_dt_c* param_0, void* param_1, int
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_elstInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
static asm int dStage_elstInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_elstInfoInit__FP11dStage_dt_cPviPv.s"
}
@@ -2164,25 +2191,18 @@ static asm void dKankyo_create() {
#pragma pop
/* 80026914-80026940 021254 002C+00 1/1 0/0 0/0 .text layerMemoryInfoLoader__FPvP11dStage_dt_ci */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void layerMemoryInfoLoader(void* param_0, dStage_dt_c* param_1, int param_2) {
nofralloc
#include "asm/d/d_stage/layerMemoryInfoLoader__FPvP11dStage_dt_ci.s"
static void layerMemoryInfoLoader(void* i_data, dStage_dt_c* i_stage, int param_2) {
dStage_dt_c_decode(i_data, i_stage, &l_layerFuncTable_5131[0], 2);
}
#pragma pop
/* 80026940-800269B4 021280 0074+00 1/1 0/0 0/0 .text
* dStage_dt_c_stageInitLoader__FPvP11dStage_dt_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dStage_dt_c_stageInitLoader(void* param_0, dStage_dt_c* param_1) {
nofralloc
#include "asm/d/d_stage/dStage_dt_c_stageInitLoader__FPvP11dStage_dt_c.s"
static void dStage_dt_c_stageInitLoader(void* i_data, dStage_dt_c* i_stage) {
dStage_dt_c_offsetToPtr(i_data);
i_stage->init();
dStage_dt_c_decode(i_data, i_stage, &l_funcTable_5136, 1);
layerMemoryInfoLoader(i_data, i_stage, -1);
}
#pragma pop
/* 800269B4-80026AE8 0212F4 0134+00 2/2 0/0 0/0 .text layerTableLoader__FPvP11dStage_dt_ci */
#pragma push
@@ -2258,22 +2278,13 @@ asm void dStage_dt_c_fieldMapLoader(void* param_0, dStage_dt_c* param_1) {
}
#pragma pop
/* ############################################################################################## */
/* 80378A50-80378A50 0050B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80378B69 = "stage.dzs";
#pragma pop
/* 80026CDC-80026D38 02161C 005C+00 0/0 1/1 0/0 .text dStage_infoCreate__Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dStage_infoCreate() {
nofralloc
#include "asm/d/d_stage/dStage_infoCreate__Fv.s"
void dStage_infoCreate() {
void* stageRsrc = dComIfG_getStageRes("stage.dzs");
dComIfGp_roomControl_init();
dStage_dt_c_stageInitLoader(stageRsrc, &dComIfGp_getStage());
}
#pragma pop
/* ############################################################################################## */
/* 80378A50-80378A50 0050B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+85 -55
View File
@@ -170,6 +170,10 @@ inline dEvent_manager_c& dComIfGp_getEventManager() {
return g_dComIfG_gameInfo.play.getEvtManager();
}
inline dEvt_control_c& dComIfGp_getEvent() {
return g_dComIfG_gameInfo.play.getEvent();
}
/* 80041480-80041488 03BDC0 0008+00 1/1 0/0 0/0 .text event_debug_evnt__21@unnamed@d_event_cpp@Fv
*/
static bool func_80041480() {
@@ -201,17 +205,17 @@ dEvt_order_c::dEvt_order_c() {
/* 800415D8-80041668 03BF18 0090+00 1/1 0/0 0/0 .text orderOld__14dEvt_control_cFUsUsUsUsPvPvPCv
*/
void dEvt_control_c::orderOld(u16 param_0, u16 param_1, u16 param_2, u16 param_3, void* param_4,
bool dEvt_control_c::orderOld(u16 param_0, u16 param_1, u16 param_2, u16 param_3, void* param_4,
void* param_5, void const* param_6) {
s16 eventIdx = dComIfGp_getEventManager().getEventIdx((char*)param_6, -1, -1);
order(param_0, param_1, param_2, param_3, param_4, param_5, eventIdx, -1);
return order(param_0, param_1, param_2, param_3, param_4, param_5, eventIdx, -1);
}
/* 80041668-80041804 03BFA8 019C+00 3/3 13/13 0/0 .text order__14dEvt_control_cFUsUsUsUsPvPvsUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dEvt_control_c::order(u16 param_0, u16 param_1, u16 param_2, u16 param_3, void* param_4,
asm bool dEvt_control_c::order(u16 param_0, u16 param_1, u16 param_2, u16 param_3, void* param_4,
void* param_5, s16 param_6, u8 param_7) {
nofralloc
#include "asm/d/event/d_event/order__14dEvt_control_cFUsUsUsUsPvPvsUc.s"
@@ -268,7 +272,7 @@ asm void dEvt_control_c::afterFlagProc(dEvt_order_c* param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dEvt_control_c::commonCheck(dEvt_order_c* param_0, u16 param_1, u16 param_2) {
asm int dEvt_control_c::commonCheck(dEvt_order_c* param_0, u16 param_1, u16 param_2) {
nofralloc
#include "asm/d/event/d_event/commonCheck__14dEvt_control_cFP12dEvt_order_cUsUs.s"
}
@@ -381,33 +385,54 @@ asm void dEvt_control_c::doorCheck(dEvt_order_c* param_0) {
}
#pragma pop
/* ############################################################################################## */
/* 80379D80-80379D80 0063E0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80379DB3 = "DEFAULT_GETITEM";
#pragma pop
/* 8004212C-800421C0 03CA6C 0094+00 1/1 0/0 0/0 .text itemCheck__14dEvt_control_cFP12dEvt_order_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dEvt_control_c::itemCheck(dEvt_order_c* param_0) {
nofralloc
#include "asm/d/event/d_event/itemCheck__14dEvt_control_cFP12dEvt_order_c.s"
int dEvt_control_c::itemCheck(dEvt_order_c* param_0) {
const char* event = "DEFAULT_GETITEM";
if (commonCheck(param_0, 8, 4)) {
mMode = 2;
mSpecifiedEvent = dComIfGp_getEventManager().getEventIdx(event, -1, -1);
dComIfGp_getEventManager().order(mSpecifiedEvent);
return 1;
} else {
return 0;
}
}
#pragma pop
/* 800421C0-80042254 03CB00 0094+00 1/1 0/0 0/0 .text endProc__14dEvt_control_cFv */
#ifdef NONMATCHING
int dEvt_control_c::endProc() {
switch (mMode) {
case 1:
talkEnd();
break;
case 2:
demoEnd();
break;
}
mMode = 0;
field_0xea = 255;
mMapToolId = 255;
mStageEventDt = NULL;
field_0xec = 255;
field_0xed = 0;
field_0xe0 = -1;
mPreItemNo = 255;
dComIfGp_getEventManager().setStartDemo(-2);
return 1;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dEvt_control_c::endProc() {
asm int dEvt_control_c::endProc() {
nofralloc
#include "asm/d/event/d_event/endProc__14dEvt_control_cFv.s"
}
#pragma pop
#endif
/* 80042254-800422C0 03CB94 006C+00 1/1 0/0 0/0 .text change__14dEvt_control_cFv */
#pragma push
@@ -481,14 +506,10 @@ void dEvt_control_c::clearSkipSystem() {
}
/* 800425E8-8004261C 03CF28 0034+00 0/0 2/2 5/5 .text dEv_defaultSkipProc__FPvi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm int dEv_defaultSkipProc(void* param_0, int param_1) {
nofralloc
#include "asm/d/event/d_event/dEv_defaultSkipProc__FPvi.s"
int dEv_defaultSkipProc(void* param_0, int param_1) {
dComIfGp_getEvent().reset(param_0);
return 1;
}
#pragma pop
/* ############################################################################################## */
/* 80379D80-80379D80 0063E0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@@ -518,14 +539,10 @@ asm int dEv_defaultSkipStb(void* param_0, int param_1) {
#pragma pop
/* 800428DC-8004290C 03D21C 0030+00 0/0 1/1 33/33 .text dEv_noFinishSkipProc__FPvi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm int dEv_noFinishSkipProc(void* param_0, int param_1) {
nofralloc
#include "asm/d/event/d_event/dEv_noFinishSkipProc__FPvi.s"
int dEv_noFinishSkipProc(void* param_0, int param_1) {
dComIfGp_getEvent().offSkipFade();
return 0;
}
#pragma pop
char* dEvt_control_c::getSkipEventName() {
return mSkipEventName;
@@ -593,14 +610,30 @@ asm void dEvt_control_c::moveApproval(void* param_0) {
#pragma pop
/* 8004316C-800431E8 03DAAC 007C+00 0/0 28/28 0/0 .text compulsory__14dEvt_control_cFPvPCcUs */
#ifdef NONMATCHING
bool dEvt_control_c::compulsory(void* param_0, char const* param_1, u16 param_2) {
bool check = false;
if (field_0xe5 == 0 || field_0xe5 == 2) {
check = true;
}
if (!check || mCompulsory) {
return false;
} else {
mCompulsory = 1;
return orderOld(3, 2, 0, param_2, param_0, NULL, param_1);
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dEvt_control_c::compulsory(void* param_0, char const* param_1, u16 param_2) {
asm bool dEvt_control_c::compulsory(void* param_0, char const* param_1, u16 param_2) {
nofralloc
#include "asm/d/event/d_event/compulsory__14dEvt_control_cFPvPCcUs.s"
}
#pragma pop
#endif
void dEvt_control_c::remove() {
mMode = 0;
@@ -682,38 +715,35 @@ dEvt_info_c::dEvt_info_c() {
}
/* 80043428-80043480 03DD68 0058+00 0/0 0/0 4/4 .text setEventName__11dEvt_info_cFPc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dEvt_info_c::setEventName(char* param_0) {
nofralloc
#include "asm/d/event/d_event/setEventName__11dEvt_info_cFPc.s"
void dEvt_info_c::setEventName(char* param_0) {
if (param_0 == NULL) {
mEventId = -1;
} else {
mEventId = dComIfGp_getEventManager().getEventIdx(param_0, -1, -1);
}
}
#pragma pop
/* 80043480-800434CC 03DDC0 004C+00 1/1 0/0 0/0 .text getEventName__11dEvt_info_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dEvt_info_c::getEventName() {
nofralloc
#include "asm/d/event/d_event/getEventName__11dEvt_info_cFv.s"
// fake match?
s16 dEvt_info_c::getEventName() {
if (mEventId == -1) {
return 0;
} else {
dEvDtEvent_c* data = dComIfGp_getEventManager().getEventData(mEventId);
if (data == NULL) {
return 0;
}
}
}
#pragma pop
void dEvt_info_c::beforeProc() {
setCondition(2);
}
/* 800434D8-80043500 03DE18 0028+00 0/0 4/4 1/1 .text searchMapEventData__14dEvt_control_cFUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dEvt_control_c::searchMapEventData(u8 param_0) {
nofralloc
#include "asm/d/event/d_event/searchMapEventData__14dEvt_control_cFUc.s"
void dEvt_control_c::searchMapEventData(u8 param_0) {
searchMapEventData(param_0, (s32)struct_80450D64);
}
#pragma pop
/* 80043500-8004360C 03DE40 010C+00 3/3 7/7 5/5 .text searchMapEventData__14dEvt_control_cFUcl */
#pragma push
+46 -87
View File
@@ -4,6 +4,7 @@
//
#include "d/event/d_event_manager.h"
#include "d/com/d_com_inf_game.h"
#include "dol2asm.h"
#include "dolphin/types.h"
@@ -11,26 +12,6 @@
// Types:
//
struct dRes_info_c {};
struct dRes_control_c {
/* 8003C37C */ void getRes(char const*, char const*, dRes_info_c*, int);
};
struct dEvt_control_c {
/* 80042468 */ void reset();
/* 80042914 */ void setSkipProc(void*, int (*)(void*, int), int);
/* 800429A8 */ void onSkipFade();
/* 80043278 */ void getStageEventDt();
/* 80043280 */ void sceneChange(int);
/* 800432EC */ void convPId(unsigned int);
/* 80043500 */ void searchMapEventData(u8, s32);
/* 8004360C */ void runningEventID(s16);
/* 8004365C */ void setPt2(void*);
/* 800436BC */ void setPtI(void*);
/* 800436F4 */ void setPtD(void*);
};
struct dCamera_c {
/* 80180A40 */ void EventRecoverNotime();
/* 80181E98 */ void Center();
@@ -40,8 +21,6 @@ struct Z2StatusMgr {
/* 802B61E8 */ void setDemoName(char*);
};
struct JAISoundID {};
struct Z2SeMgr {
/* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
};
@@ -172,9 +151,7 @@ extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" u8 mDemoArcName__20dStage_roomControl_c[10 + 2 /* padding */];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" extern u32 __float_nan;
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
//
@@ -271,26 +248,7 @@ dEvDtBase_c::dEvDtBase_c() {
/* ############################################################################################## */
/* 80379F50-80379F60 0065B0 000F+01 6/6 0/0 0/0 .rodata
* DataFileName__29@unnamed@d_event_manager_cpp@ */
SECTION_RODATA static u8 const data_80379F50[15 + 1 /* padding */] = {
0x65,
0x76,
0x65,
0x6E,
0x74,
0x5F,
0x6C,
0x69,
0x73,
0x74,
0x2E,
0x64,
0x61,
0x74,
0x00,
/* padding */
0x00,
};
COMPILER_STRIP_GATE(0x80379F50, &data_80379F50);
SECTION_RODATA static char const data_80379F50[16] = "event_list.dat";
/* 80379F60-80379F60 0065C0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
@@ -299,24 +257,42 @@ SECTION_DEAD static char const* const stringBase_8037A07E = "Event";
#pragma pop
/* 80046710-80046800 041050 00F0+00 0/0 1/1 0/0 .text create__16dEvent_manager_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dEvent_manager_c::create() {
nofralloc
#include "asm/d/event/d_event_manager/create__16dEvent_manager_cFv.s"
int dEvent_manager_c::create() {
mCameraPlay = 0;
mEventException.init();
mFlags.init();
field_0x1b4 = 0;
field_0x1aa = -1;
field_0x1b8 = 0;
field_0x1b0 = -1;
mDataLoaded = 0;
for (int i = 4; i <= 9; i++) {
mEventList[i].init();
}
char* res = (char*)dComIfG_getStageRes(data_80379F50);
mEventList[3].init(res, -1);
mEventList[10].init();
res = (char*)dComIfG_getObjectRes("Event", data_80379F50);
mEventList[1].init(res, -1);
mEventList[2].init();
return 1;
}
#pragma pop
/* 80046800-80046888 041140 0088+00 0/0 8/8 24/24 .text setObjectArchive__16dEvent_manager_cFPc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dEvent_manager_c::setObjectArchive(char* param_0) {
nofralloc
#include "asm/d/event/d_event_manager/setObjectArchive__16dEvent_manager_cFPc.s"
bool dEvent_manager_c::setObjectArchive(char* param_0) {
char* rt = NULL;
if (param_0 != NULL) {
char* res = (char*)dComIfG_getObjectRes(param_0, data_80379F50);
rt = res;
mEventList[2].init(res, -1);
} else {
mEventList[2].init();
}
return rt != NULL;
}
#pragma pop
/* 80046888-80046904 0411C8 007C+00 0/0 1/1 0/0 .text demoInit__16dEvent_manager_cFv */
#pragma push
@@ -374,34 +350,22 @@ void dEvent_manager_c::remove() {
}
/* 80046C74-80046C88 0415B4 0014+00 1/1 0/0 0/0 .text extraOnObjectCallBack__FP10fopAc_ac_cPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void extraOnObjectCallBack(fopAc_ac_c* param_0, void* param_1) {
nofralloc
#include "asm/d/event/d_event_manager/extraOnObjectCallBack__FP10fopAc_ac_cPv.s"
static int extraOnObjectCallBack(fopAc_ac_c* pActor, void* param_1) {
fopAcM_OnStatus(pActor, 0x800);
return 0;
}
#pragma pop
/* 80046C88-80046C9C 0415C8 0014+00 1/1 0/0 0/0 .text extraOffObjectCallBack__FP10fopAc_ac_cPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void extraOffObjectCallBack(fopAc_ac_c* param_0, void* param_1) {
nofralloc
#include "asm/d/event/d_event_manager/extraOffObjectCallBack__FP10fopAc_ac_cPv.s"
static int extraOffObjectCallBack(fopAc_ac_c* pActor, void* param_1) {
fopAcM_OffStatus(pActor, 0x800);
return 0;
}
#pragma pop
/* 80046C9C-80046CB8 0415DC 001C+00 1/1 0/0 0/0 .text allOffObjectCallBack__FP10fopAc_ac_cPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void allOffObjectCallBack(fopAc_ac_c* param_0, void* param_1) {
nofralloc
#include "asm/d/event/d_event_manager/allOffObjectCallBack__FP10fopAc_ac_cPv.s"
static int allOffObjectCallBack(fopAc_ac_c* pActor, void* param_1) {
fopAcM_OffStatus(pActor, 0x9000);
return 0;
}
#pragma pop
/* 80046CB8-80046DA0 0415F8 00E8+00 1/1 0/0 0/0 .text
* startProc__16dEvent_manager_cFP12dEvDtEvent_c */
@@ -416,14 +380,9 @@ asm void dEvent_manager_c::startProc(dEvDtEvent_c* param_0) {
/* 80046DA0-80046DAC 0416E0 000C+00 2/2 0/0 0/0 .text
* closeProc__16dEvent_manager_cFP12dEvDtEvent_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dEvent_manager_c::closeProc(dEvDtEvent_c* param_0) {
nofralloc
#include "asm/d/event/d_event_manager/closeProc__16dEvent_manager_cFP12dEvDtEvent_c.s"
void dEvent_manager_c::closeProc(dEvDtEvent_c* param_0) {
param_0->field_0xa4 = 2;
}
#pragma pop
/* ############################################################################################## */
/* 80379F60-80379F60 0065C0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@@ -527,7 +486,7 @@ asm dEvDtEvent_c* dEvent_manager_c::getEventData(s16 param_0, int param_1) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dEvent_manager_c::getEventData(s16 param_0) {
asm dEvDtEvent_c* dEvent_manager_c::getEventData(s16 param_0) {
nofralloc
#include "asm/d/event/d_event_manager/getEventData__16dEvent_manager_cFs.s"
}
+5 -92
View File
@@ -4,6 +4,7 @@
//
#include "d/kankyo/d_kankyo.h"
#include "d/com/d_com_inf_game.h"
#include "dol2asm.h"
#include "dolphin/types.h"
@@ -13,8 +14,6 @@
struct sub_kankyo__class {};
struct stage_pure_lightvec_info_class {};
struct mDoMtx_stack_c {
static u8 now[48];
};
@@ -27,88 +26,21 @@ struct mDoGph_gInf_c {
static u8 m_bloom[20];
};
struct daPy_py_c {
/* 8015F424 */ void checkNowWolfEyeUp();
};
struct dSv_player_status_b_c {
/* 80032BB0 */ void isDarkClearLV(int) const;
};
struct dSv_memBit_c {
/* 80034860 */ void isSwitch(int) const;
/* 80034934 */ void isDungeonItem(int) const;
};
struct dSv_info_c {
/* 80035360 */ void isSwitch(int, int) const;
};
struct dSv_event_tmp_flag_c {
static u8 const tempBitLabels[370 + 2 /* padding */];
};
struct dSv_event_c {
/* 800349A4 */ void offEventBit(u16);
/* 800349BC */ void isEventBit(u16) const;
};
struct dStage_roomControl_c {
/* 80024384 */ void getStatusRoomDt(int);
/* 8019F780 */ void GetTimePass();
static u8 mStatus[65792];
};
struct dRes_info_c {};
struct dRes_control_c {
/* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
};
struct dPa_levelEcallBack {};
struct dPa_control_c {
/* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*,
u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*,
cXyz const*, f32);
};
struct dMsgObject_c {
/* 8023819C */ void getActor();
};
struct dComIfG_play_c {
/* 8002C950 */ void getLayerNo_common(char const*, int, int);
/* 8002C97C */ void getLayerNo(int);
};
struct dBgS_CamGndChk_Wtr {
/* 80077A00 */ dBgS_CamGndChk_Wtr();
/* 80077A98 */ ~dBgS_CamGndChk_Wtr();
};
struct cBgS_PolyInfo {};
struct dBgS {
/* 80074E50 */ void GetPolyAtt0(cBgS_PolyInfo const&);
/* 80074EA0 */ void GetPolyAtt1(cBgS_PolyInfo const&);
};
struct color_RGB_class {};
struct cBgS_GndChk {
/* 80267D28 */ void SetPos(cXyz const*);
};
struct cBgS {
/* 800744A0 */ void GroundCross(cBgS_GndChk*);
};
struct _GXFogType {};
struct JAISoundID {};
struct Z2SeMgr {
/* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
};
@@ -127,10 +59,6 @@ struct Z2AudioMgr {
static u8 mAudioMgrPtr[4 + 4 /* padding */];
};
struct JUTNameTab {
/* 802DEAF8 */ void getName(u16) const;
};
struct JMath {
static u8 sincosTable_[65536];
};
@@ -345,7 +273,7 @@ extern "C" void dKy_shadow_mode_check__FUc();
extern "C" void dKy_bg_MAxx_proc__FPv();
extern "C" void __dt__18dScnKy_env_light_cFv();
extern "C" void __sinit_d_kankyo_cpp();
extern "C" static void dKankyo_DayProc__Fv();
extern "C" void dKankyo_DayProc__Fv();
extern "C" extern char const* const d_kankyo_d_kankyo__stringBase0;
extern "C" extern u8 struct_80451070[8];
@@ -353,8 +281,6 @@ extern "C" extern u8 struct_80451070[8];
// External References:
//
SECTION_INIT void memset();
SECTION_INIT void memcpy();
extern "C" void mDoAud_setSceneName__FPCcll();
extern "C" void __dt__4cXyzFv();
extern "C" void create__Q213mDoGph_gInf_c7bloom_cFv();
@@ -475,11 +401,7 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void abs();
extern "C" void memcmp();
extern "C" void strcmp();
extern "C" void cos();
extern "C" void sin();
extern "C" u8 const tempBitLabels__20dSv_event_tmp_flag_c[370 + 2 /* padding */];
extern "C" extern u8 const j3dDefaultMtx[48];
extern "C" extern void* __vt__12J3DFrameCtrl[3];
@@ -488,12 +410,8 @@ extern "C" extern void* g_fpcLf_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_dComIfG_gameInfo[122384];
extern "C" extern u8 g_meter2_info[248];
extern "C" extern u8 g_Counter[12 + 4 /* padding */];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" extern u32 __float_nan;
extern "C" extern u8 struct_80450D64[4];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
//
@@ -1583,7 +1501,7 @@ asm void dScnKy_env_light_c::setDaytime() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dStage_roomControl_c::GetTimePass() {
asm s8 dStage_roomControl_c::GetTimePass() {
nofralloc
#include "asm/d/kankyo/d_kankyo/GetTimePass__20dStage_roomControl_cFv.s"
}
@@ -3527,14 +3445,9 @@ REGISTER_CTORS(0x801ADCA4, __sinit_d_kankyo_cpp);
#pragma pop
/* 801ADD00-801ADD38 1A8640 0038+00 2/2 0/0 0/0 .text dKankyo_DayProc__Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dKankyo_DayProc() {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKankyo_DayProc__Fv.s"
void dKankyo_DayProc() {
dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[91]);
}
#pragma pop
/* ############################################################################################## */
/* 80451070-80451078 -00001 0008+00 0/0 1/1 0/0 .sbss None */
+26
View File
@@ -468,6 +468,31 @@ void dMeter2Info_c::decMsgKeyWaitTimer() {
/* 8021C250-8021C370 216B90 0120+00 0/0 16/16 0/0 .text
* getString__13dMeter2Info_cFUlPcP14JMSMesgEntry_c */
#ifdef NONMATCHING
void dMeter2Info_c::getString(u32 param_0, char* param_1, JMSMesgEntry_c* param_2) {
strcpy(param_1, "");
bmgHeader* res;
if (mMsgResource == NULL) {
JKRArchive* msgDtArc = dComIfGp_getMsgDtArchive(0);
res = (bmgHeader*)JKRArchive::getGlbResource('ROOT', "zel_00.bmg", msgDtArc);
if (res == NULL) {
return;
}
} else {
for (u16 i = bmgHeader->unk1; i < bmgHeader->entrycount; i++) {
JMSMesgEntry_c* entry = (JMSMesgEntry_c*)res + 0x20 + i;
if (param_0 == entry->mStringId) {
strcpy(param_1, (char*)&res + 0x20 + 0x24 + 8 + 0x14);
}
}
}
if (mMsgResource == NULL) {
dComIfGp_getMsgDtArchive(0)->removeResourceAll();
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -476,6 +501,7 @@ asm void dMeter2Info_c::getString(u32 param_0, char* param_1, JMSMesgEntry_c* pa
#include "asm/d/meter/d_meter2_info/getString__13dMeter2Info_cFUlPcP14JMSMesgEntry_c.s"
}
#pragma pop
#endif
/* 8021C370-8021C544 216CB0 01D4+00 0/0 1/1 0/0 .text
* getStringKana__13dMeter2Info_cFUlPcP14JMSMesgEntry_c */
+1465 -935
View File
File diff suppressed because it is too large Load Diff
+220 -125
View File
@@ -6,6 +6,7 @@
#include "d/pane/d_pane_class.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "m_Do/m_Do_ext.h"
//
// Types:
@@ -18,18 +19,6 @@ struct JSUMemoryInputStream {
struct JKRAramArchive {};
struct J2DWindow {
/* 80254000 */ void getBlack() const;
/* 8025400C */ void getWhite() const;
/* 802543E0 */ void setWhite(JUtility::TColor);
/* 80254430 */ void setBlack(JUtility::TColor);
/* 80254568 */ void setBlackWhite(JUtility::TColor, JUtility::TColor);
};
struct J2DTextBox {
/* 80254408 */ void setBlack(JUtility::TColor);
};
struct J2DOrthoGraph {
/* 802E96D0 */ J2DOrthoGraph(f32, f32, f32, f32, f32, f32);
/* 802E980C */ void setOrtho(JGeometry::TBox2<f32> const&, f32, f32);
@@ -65,7 +54,7 @@ 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" static void dPaneClass_showNullPane__FP7J2DPane();
extern "C" void dPaneClass_showNullPane__FP7J2DPane();
extern "C" void dPaneClass_setPriority__FPPvP7JKRHeapP9J2DScreenPCcUlP10JKRArchive();
extern "C" void __dt__20JSUMemoryInputStreamFv();
extern "C" void __dt__20JSURandomInputStreamFv();
@@ -138,58 +127,156 @@ SECTION_DATA extern void* __vt__8CPaneMgr[4 + 1 /* padding */] = {
};
/* 80253930-80253984 24E270 0054+00 0/0 11/11 0/0 .text __ct__8CPaneMgrFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm CPaneMgr::CPaneMgr() {
nofralloc
#include "asm/d/pane/d_pane_class/__ct__8CPaneMgrFv.s"
CPaneMgr::CPaneMgr() {
mpFirstStackAlpha = NULL;
mpFirstStackSize = NULL;
}
#pragma pop
/* 80253984-80253A18 24E2C4 0094+00 0/0 58/58 2/2 .text
* __ct__8CPaneMgrFP9J2DScreenUxUcP10JKRExpHeap */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm CPaneMgr::CPaneMgr(J2DScreen* param_0, u64 param_1, u8 param_2, JKRExpHeap* param_3) {
nofralloc
#include "asm/d/pane/d_pane_class/__ct__8CPaneMgrFP9J2DScreenUxUcP10JKRExpHeap.s"
CPaneMgr::CPaneMgr(J2DScreen* pScrn, u64 tag, u8 flags, JKRExpHeap* pHeap) {
J2DPane* pane = pScrn->search(tag);
mFlags = flags;
initiate(pane, pHeap);
}
#pragma pop
/* 80253A18-80253AB4 24E358 009C+00 1/0 11/11 0/0 .text __dt__8CPaneMgrFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm CPaneMgr::~CPaneMgr() {
nofralloc
#include "asm/d/pane/d_pane_class/__dt__8CPaneMgrFv.s"
CPaneMgr::~CPaneMgr() {
if (mpFirstStackSize) {
heap->free(mpFirstStackSize);
mpFirstStackSize = NULL;
}
if (mpFirstStackAlpha) {
heap->free(mpFirstStackAlpha);
mpFirstStackAlpha = NULL;
}
}
#pragma pop
/* 80253AB4-80253B2C 24E3F4 0078+00 1/0 0/0 0/0 .text setAlpha__8CPaneMgrFUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgr::setAlpha(u8 param_0) {
nofralloc
#include "asm/d/pane/d_pane_class/setAlpha__8CPaneMgrFUc.s"
void CPaneMgr::setAlpha(u8 alpha) {
if (mFlags & 2) {
field_0x10 = mpFirstStackAlpha;
childPaneSetAlpha(getPanePtr()->getFirstChildPane(), alpha);
}
getPanePtr()->setAlpha(alpha);
}
#pragma pop
/* 80253B2C-80253C08 24E46C 00DC+00 0/0 3/3 0/0 .text reinit__8CPaneMgrFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgr::reinit() {
nofralloc
#include "asm/d/pane/d_pane_class/reinit__8CPaneMgrFv.s"
void CPaneMgr::reinit() {
mInitPos.x = getPanePtr()->getBounds().i.x;
mInitPos.y = getPanePtr()->getBounds().i.y;
mGlobalPos.x = getGlobalPosX();
mGlobalPos.y = getGlobalPosY();
mInitSize.x = getPanePtr()->getWidth();
mInitSize.y = getPanePtr()->getHeight();
mInitScale.x = getPanePtr()->getScaleX();
mInitScale.y = getPanePtr()->getScaleY();
mInitTrans.x = getPanePtr()->getTranslateX();
mInitTrans.y = getPanePtr()->getTranslateY();
mRotateZ = getPanePtr()->getRotateZ();
mRotateOffset.x = getPanePtr()->getRotOffsetX();
mRotateOffset.y = getPanePtr()->getRotOffsetY();
}
#pragma pop
/* 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;
} else {
heap = (JKRExpHeap*)mDoExt_getCurrentHeap();
}
mpFirstStackAlpha = NULL;
field_0x10 = NULL;
mpFirstStackSize = NULL;
field_0x20 = NULL;
mChildPaneCount = 0;
if (mFlags) {
childPaneCount(getPanePtr()->getFirstChildPane());
if (mFlags & 1) {
mpFirstStackSize = heap->alloc(mChildPaneCount * 12, 0x20);
field_0x20 = mpFirstStackSize;
childPaneGetSize(getPanePtr()->getFirstChildPane());
}
if (mFlags & 2) {
mpFirstStackAlpha = heap->alloc(mChildPaneCount, 0x20);
field_0x10 = mpFirstStackAlpha;
childPaneGetSize(getPanePtr()->getFirstChildPane());
}
}
mInitPos.x = pPane->getBounds().i.x;
mInitPos.y = pPane->getBounds().i.y;
mGlobalPos.x = getGlobalPosX();
mGlobalPos.y = getGlobalPosY();
mInitSize.x = pPane->getWidth();
mInitSize.y = pPane->getHeight();
mInitScale.x = getPanePtr()->getScaleX();
mInitScale.y = getPanePtr()->getScaleY();
mInitTrans.x = getPanePtr()->getTranslateX();
mInitTrans.y = getPanePtr()->getTranslateY();
mRotateZ = pPane->getRotateZ();
mRotateOffset.x = pPane->getRotOffsetX();
mRotateOffset.y = pPane->getRotOffsetY();
if (pPane->getKind() == 'PAN2') {
mInitAlpha = 255;
} else {
mInitAlpha = pPane->getAlpha();
}
field_0x60 = 0;
field_0x62 = 0;
mScaleAnime = 0;
field_0x66 = 0;
field_0x68 = 0;
mColorAnime = 0;
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 '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(255, 255, 255, 255);
mInitBlack.set(0, 0, 0, 0);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -198,26 +285,17 @@ asm void CPaneMgr::initiate(J2DPane* param_0, JKRExpHeap* param_1) {
#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 */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J2DWindow::getBlack() const {
nofralloc
#include "asm/d/pane/d_pane_class/getBlack__9J2DWindowCFv.s"
JUtility::TColor J2DWindow::getBlack() const {
return mBlack;
}
#pragma pop
/* 8025400C-80254018 24E94C 000C+00 0/0 1/0 0/0 .text getWhite__9J2DWindowCFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J2DWindow::getWhite() const {
nofralloc
#include "asm/d/pane/d_pane_class/getWhite__9J2DWindowCFv.s"
JUtility::TColor J2DWindow::getWhite() const {
return mWhite;
}
#pragma pop
/* 80254018-80254134 24E958 011C+00 1/1 0/0 0/0 .text childPaneGetSize__8CPaneMgrFP7J2DPane */
#pragma push
@@ -251,54 +329,42 @@ asm void CPaneMgr::childPaneSetSize(J2DPane* param_0, f32 param_1, f32 param_2)
#pragma pop
/* 802542E8-80254364 24EC28 007C+00 2/2 18/18 0/0 .text getGlobalPosX__8CPaneMgrFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgr::getGlobalPosX() {
nofralloc
#include "asm/d/pane/d_pane_class/getGlobalPosX__8CPaneMgrFv.s"
f32 CPaneMgr::getGlobalPosX() {
f32 posX = getPosX();
for (J2DPane* pane = getPanePtr()->getParentPane(); pane != NULL;
pane = pane->getParentPane()) {
posX += pane->getBounds().i.x;
}
return posX;
}
#pragma pop
/* 80254364-802543E0 24ECA4 007C+00 2/2 15/15 0/0 .text getGlobalPosY__8CPaneMgrFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgr::getGlobalPosY() {
nofralloc
#include "asm/d/pane/d_pane_class/getGlobalPosY__8CPaneMgrFv.s"
f32 CPaneMgr::getGlobalPosY() {
f32 posY = getPosY();
for (J2DPane* pane = getPanePtr()->getParentPane(); pane != NULL;
pane = pane->getParentPane()) {
posY += pane->getBounds().i.y;
}
return posY;
}
#pragma pop
/* 802543E0-80254408 24ED20 0028+00 0/0 1/0 0/0 .text setWhite__9J2DWindowFQ28JUtility6TColor */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J2DWindow::setWhite(JUtility::TColor param_0) {
nofralloc
#include "asm/d/pane/d_pane_class/setWhite__9J2DWindowFQ28JUtility6TColor.s"
bool J2DWindow::setWhite(JUtility::TColor white) {
mWhite = white;
return true;
}
#pragma pop
/* 80254408-80254430 24ED48 0028+00 0/0 1/0 0/0 .text setBlack__10J2DTextBoxFQ28JUtility6TColor */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J2DTextBox::setBlack(JUtility::TColor param_0) {
nofralloc
#include "asm/d/pane/d_pane_class/setBlack__10J2DTextBoxFQ28JUtility6TColor.s"
bool J2DTextBox::setBlack(JUtility::TColor black) {
mBlackColor = black;
return true;
}
#pragma pop
/* 80254430-80254458 24ED70 0028+00 0/0 1/0 0/0 .text setBlack__9J2DWindowFQ28JUtility6TColor */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J2DWindow::setBlack(JUtility::TColor param_0) {
nofralloc
#include "asm/d/pane/d_pane_class/setBlack__9J2DWindowFQ28JUtility6TColor.s"
bool J2DWindow::setBlack(JUtility::TColor black) {
mBlack = black;
return true;
}
#pragma pop
/* 80254458-80254568 24ED98 0110+00 1/1 7/7 0/0 .text
* setBlackWhite__8CPaneMgrFQ28JUtility6TColorQ28JUtility6TColor */
@@ -313,14 +379,11 @@ asm void CPaneMgr::setBlackWhite(JUtility::TColor param_0, JUtility::TColor para
/* 80254568-802545B0 24EEA8 0048+00 0/0 1/0 0/0 .text
* setBlackWhite__9J2DWindowFQ28JUtility6TColorQ28JUtility6TColor */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J2DWindow::setBlackWhite(JUtility::TColor param_0, JUtility::TColor param_1) {
nofralloc
#include "asm/d/pane/d_pane_class/setBlackWhite__9J2DWindowFQ28JUtility6TColorQ28JUtility6TColor.s"
bool J2DWindow::setBlackWhite(JUtility::TColor black, JUtility::TColor white) {
mBlack = black;
mWhite = white;
return true;
}
#pragma pop
/* ############################################################################################## */
/* 80454E98-80454EA0 003498 0004+04 3/3 0/0 0/0 .sdata2 @4046 */
@@ -331,6 +394,14 @@ SECTION_SDATA2 static f32 lit_4046[1 + 1 /* padding */] = {
};
/* 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
@@ -339,8 +410,28 @@ asm void CPaneMgr::paneTrans(f32 param_0, f32 param_1) {
#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);
if (mRotateZ != 0.0f) {
getPanePtr()->rotate(mRotateOffset.x * x, mRotateOffset.y * y, ROTATE_Z, getRotateZ());
}
if (mFlags & 1) {
field_0x20 = mpFirstStackSize;
childPaneSetSize(getPanePtr()->getFirstChildPane(), x, y);
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -349,16 +440,22 @@ asm void CPaneMgr::paneScale(f32 param_0, f32 param_1) {
#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 */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgr::scaleAnime(s16 param_0, f32 param_1, f32 param_2, u8 param_3) {
nofralloc
#include "asm/d/pane/d_pane_class/scaleAnime__8CPaneMgrFsffUc.s"
bool CPaneMgr::scaleAnime(s16 param_0, f32 param_1, f32 param_2, u8 param_3) {
if (mScaleAnime < param_0 - 1) {
mScaleAnime++;
f32 rate = rateCalc(param_0, mScaleAnime, param_3);
f32 tmp = param_1 + rate * (param_2 - param_1);
getPanePtr()->scale(mInitScale.x * tmp, mInitScale.y * tmp);
} else {
mScaleAnime = param_0;
getPanePtr()->scale(mInitScale.x * param_2, mInitScale.y * param_2);
return true;
}
return false;
}
#pragma pop
/* ############################################################################################## */
/* 80454EA0-80454EA8 0034A0 0008+00 1/1 0/0 0/0 .sdata2 @4349 */
@@ -428,25 +525,23 @@ asm void CPaneMgr::getBounds(J2DPane* param_0) {
#pragma pop
/* 802550E8-8025512C 24FA28 0044+00 0/0 54/54 3/3 .text dPaneClass_showNullPane__FP9J2DScreen */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dPaneClass_showNullPane(J2DScreen* param_0) {
nofralloc
#include "asm/d/pane/d_pane_class/dPaneClass_showNullPane__FP9J2DScreen.s"
void dPaneClass_showNullPane(J2DScreen* pScrn) {
if (pScrn) {
dPaneClass_showNullPane(pScrn->search('ROOT'));
}
}
#pragma pop
/* 8025512C-80255184 24FA6C 0058+00 1/1 0/0 0/0 .text dPaneClass_showNullPane__FP7J2DPane
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dPaneClass_showNullPane(J2DPane* param_0) {
nofralloc
#include "asm/d/pane/d_pane_class/dPaneClass_showNullPane__FP7J2DPane.s"
void dPaneClass_showNullPane(J2DPane* pPane) {
if (pPane) {
if (!pPane->isVisible()) {
pPane->show();
}
dPaneClass_showNullPane(pPane->getFirstChildPane());
dPaneClass_showNullPane(pPane->getNextChildPane());
}
}
#pragma pop
/* 80255184-802552B8 24FAC4 0134+00 0/0 1/1 0/0 .text
* dPaneClass_setPriority__FPPvP7JKRHeapP9J2DScreenPCcUlP10JKRArchive */
+1 -1
View File
@@ -158,7 +158,7 @@ SECTION_SDATA2 static f64 lit_3694 = 4503601774854144.0 /* cast s32 to float */;
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgrAlpha::rateCalc(s16 param_0, s16 param_1, u8 param_2) {
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"
}