mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-07-28 15:07:04 -04:00
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:
+4
-10
@@ -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
@@ -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
|
||||
|
||||
@@ -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];
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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
File diff suppressed because it is too large
Load Diff
+220
-125
@@ -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 */
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
+52
-124
@@ -1,139 +1,67 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: f_ap/f_ap_game
|
||||
//
|
||||
|
||||
#include "f_ap/f_ap_game.h"
|
||||
#include "SSystem/SComponent/c_counter.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_camera_mng.h"
|
||||
#include "f_op/f_op_draw_tag.h"
|
||||
#include "f_op/f_op_overlap_mng.h"
|
||||
#include "f_op/f_op_scene_mng.h"
|
||||
#include "f_pc/f_pc_manager.h"
|
||||
#include "m_Do/m_Do_main.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
fapGm_HIO_c::fapGm_HIO_c()
|
||||
: mColor(-1), mLetterTopColor(-1), mLetterBottomColor(-1), mLetterTopShadowColor(-1),
|
||||
mLetterBottomShadowColor(-1) {
|
||||
mUsingHostIO = true;
|
||||
|
||||
struct fapGm_HIO_c {
|
||||
/* 80018944 */ fapGm_HIO_c();
|
||||
/* 80018AE0 */ ~fapGm_HIO_c();
|
||||
};
|
||||
if (data_80450580) {
|
||||
mDisplayMeter = true;
|
||||
mDisplayPrint = true;
|
||||
} else {
|
||||
mDisplayMeter = false;
|
||||
mDisplayPrint = false;
|
||||
mDisplay2D = false;
|
||||
}
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__11fapGm_HIO_cFv();
|
||||
extern "C" static void fapGm_After__Fv();
|
||||
extern "C" void fapGm_Execute__Fv();
|
||||
extern "C" void fapGm_Create__Fv();
|
||||
extern "C" void __dt__11fapGm_HIO_cFv();
|
||||
extern "C" void __sinit_f_ap_game_cpp();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void fopCamM_Management__Fv();
|
||||
extern "C" void fopCamM_Init__Fv();
|
||||
extern "C" void fopOvlpM_Management__Fv();
|
||||
extern "C" void fopOvlpM_Init__Fv();
|
||||
extern "C" void fopScnM_Management__Fv();
|
||||
extern "C" void fopScnM_Init__Fv();
|
||||
extern "C" void fopDwTg_CreateQueue__Fv();
|
||||
extern "C" void fpcM_Management__FPFv_vPFv_v();
|
||||
extern "C" void fpcM_Init__Fv();
|
||||
extern "C" void cCt_Counter__Fi();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void __register_global_object();
|
||||
extern "C" extern u32 data_80450580;
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803A35A0-803A35B0 0006C0 000C+04 2/2 0/0 0/0 .data __vt__11fapGm_HIO_c */
|
||||
SECTION_DATA extern void* __vt__11fapGm_HIO_c[3 + 1 /* padding */] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__11fapGm_HIO_cFv,
|
||||
/* padding */
|
||||
NULL,
|
||||
};
|
||||
|
||||
/* 80451BC0-80451BC4 0001C0 0004+00 1/1 0/0 0/0 .sdata2 @3689 */
|
||||
SECTION_SDATA2 static f32 lit_3689 = 9.0f / 10.0f;
|
||||
|
||||
/* 80451BC4-80451BC8 0001C4 0004+00 1/1 0/0 0/0 .sdata2 @3690 */
|
||||
SECTION_SDATA2 static f32 lit_3690 = 3.0f / 5.0f;
|
||||
|
||||
/* 80018944-80018A44 013284 0100+00 1/1 0/0 0/0 .text __ct__11fapGm_HIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm fapGm_HIO_c::fapGm_HIO_c() {
|
||||
nofralloc
|
||||
#include "asm/f_ap/f_ap_game/__ct__11fapGm_HIO_cFv.s"
|
||||
mDisplay2D = true;
|
||||
mDisplayParticle = true;
|
||||
mDisplayProcessID = false;
|
||||
mMemBlockOff = false;
|
||||
mColor.set(255, 255, 255, 255);
|
||||
field_0xc = 0.9f;
|
||||
field_0x10 = 0.6f;
|
||||
mLetterTopColor.set(255, 150, 0, 255);
|
||||
mLetterBottomColor.set(255, 120, 0, 255);
|
||||
mLetterTopShadowColor.set(0, 0, 0, 255);
|
||||
mLetterBottomShadowColor.set(0, 0, 0, 255);
|
||||
mLetterPositionX = 0;
|
||||
mLetterPositionY = 10;
|
||||
mLetterFontSize = 27;
|
||||
mLineSpacing = 0;
|
||||
mLetterSpacing = 0;
|
||||
mBackgroundAlpha = 130;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80018A44-80018A6C 013384 0028+00 1/1 0/0 0/0 .text fapGm_After__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fapGm_After() {
|
||||
nofralloc
|
||||
#include "asm/f_ap/f_ap_game/fapGm_After__Fv.s"
|
||||
void fapGm_After() {
|
||||
fopScnM_Management();
|
||||
fopOvlpM_Management();
|
||||
fopCamM_Management();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80018A6C-80018AA0 0133AC 0034+00 0/0 1/1 0/0 .text fapGm_Execute__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fapGm_Execute() {
|
||||
nofralloc
|
||||
#include "asm/f_ap/f_ap_game/fapGm_Execute__Fv.s"
|
||||
void fapGm_Execute() {
|
||||
fpcM_Management(NULL, fapGm_After);
|
||||
cCt_Counter(0);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803F1BB0-803F1BBC 01E8D0 000C+00 1/1 0/0 0/0 .bss @3691 */
|
||||
static u8 lit_3691[12];
|
||||
fapGm_HIO_c g_HIO;
|
||||
|
||||
/* 803F1BBC-803F1C00 01E8DC 0040+04 2/2 3/3 0/0 .bss g_HIO */
|
||||
extern u8 g_HIO[64 + 4 /* padding */];
|
||||
u8 g_HIO[64 + 4 /* padding */];
|
||||
|
||||
/* 80018AA0-80018AE0 0133E0 0040+00 0/0 1/1 0/0 .text fapGm_Create__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fapGm_Create() {
|
||||
nofralloc
|
||||
#include "asm/f_ap/f_ap_game/fapGm_Create__Fv.s"
|
||||
void fapGm_Create() {
|
||||
fpcM_Init();
|
||||
fopScnM_Init();
|
||||
fopOvlpM_Init();
|
||||
fopCamM_Init();
|
||||
fopDwTg_CreateQueue();
|
||||
g_HIO.field_0x04 = -1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80018AE0-80018B28 013420 0048+00 2/1 0/0 0/0 .text __dt__11fapGm_HIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm fapGm_HIO_c::~fapGm_HIO_c() {
|
||||
nofralloc
|
||||
#include "asm/f_ap/f_ap_game/__dt__11fapGm_HIO_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80018B28-80018B64 013468 003C+00 0/0 1/0 0/0 .text __sinit_f_ap_game_cpp */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void __sinit_f_ap_game_cpp() {
|
||||
nofralloc
|
||||
#include "asm/f_ap/f_ap_game/__sinit_f_ap_game_cpp.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
REGISTER_CTORS(0x80018B28, __sinit_f_ap_game_cpp);
|
||||
#pragma pop
|
||||
fapGm_HIO_c::~fapGm_HIO_c() {}
|
||||
@@ -17,7 +17,6 @@
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "d/d_stage.h"
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "f_op/f_op_actor_iter.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "m_Do/m_Do_lib.h"
|
||||
#include "msl_c/math.h"
|
||||
|
||||
@@ -15,32 +15,6 @@ struct mDoRst {
|
||||
static u8 mResetData[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
struct mDoMemCd_Ctrl_c {
|
||||
/* 8001672C */ mDoMemCd_Ctrl_c();
|
||||
/* 80016730 */ void ThdInit();
|
||||
/* 800167D0 */ void main();
|
||||
/* 80016894 */ void update();
|
||||
/* 800169B4 */ void load();
|
||||
/* 80016A0C */ void restore();
|
||||
/* 80016AB0 */ void LoadSync(void*, u32, u32);
|
||||
/* 80016B58 */ void save(void*, u32, u32);
|
||||
/* 80016BD4 */ void store();
|
||||
/* 80016CE0 */ void SaveSync();
|
||||
/* 80016D74 */ void getStatus(u32);
|
||||
/* 80016E58 */ void command_format();
|
||||
/* 80016EA8 */ void format();
|
||||
/* 80016F2C */ void FormatSync();
|
||||
/* 80016FB8 */ void attach();
|
||||
/* 800170B8 */ void command_attach();
|
||||
/* 80017110 */ void detach();
|
||||
/* 80017148 */ void mount();
|
||||
/* 80017274 */ void loadfile();
|
||||
/* 800172D4 */ void checkspace();
|
||||
/* 80017360 */ void setCardState(s32);
|
||||
};
|
||||
|
||||
struct OSThread {};
|
||||
|
||||
struct JKRThread {
|
||||
/* 802D16B8 */ JKRThread(OSThread*, int);
|
||||
/* 802D1758 */ ~JKRThread();
|
||||
@@ -92,17 +66,9 @@ extern "C" void mDoMemCdRWm_Restore__FP12CARDFileInfoPvUl();
|
||||
extern "C" void becomeCurrentHeap__7JKRHeapFv();
|
||||
extern "C" void __ct__9JKRThreadFP8OSThreadi();
|
||||
extern "C" void __dt__9JKRThreadFv();
|
||||
extern "C" void OSInitMutex();
|
||||
extern "C" void OSLockMutex();
|
||||
extern "C" void OSUnlockMutex();
|
||||
extern "C" void OSTryLockMutex();
|
||||
extern "C" void OSInitCond();
|
||||
extern "C" void OSWaitCond();
|
||||
extern "C" void OSSignalCond();
|
||||
extern "C" void OSGetCurrentThread();
|
||||
extern "C" void OSCreateThread();
|
||||
extern "C" void OSResumeThread();
|
||||
extern "C" void OSGetThreadPriority();
|
||||
extern "C" void CARDInit();
|
||||
extern "C" void CARDFreeBlocks();
|
||||
extern "C" void CARDCheck();
|
||||
@@ -392,8 +358,7 @@ asm void mDoMemCd_Ctrl_c::setCardState(s32 param_0) {
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803EAF40-803ECF40 017C60 2000+00 2/2 27/27 0/0 .bss g_mDoMemCd_control */
|
||||
extern u8 g_mDoMemCd_control[8192];
|
||||
u8 g_mDoMemCd_control[8192];
|
||||
mDoMemCd_Ctrl_c g_mDoMemCd_control;
|
||||
|
||||
/* 8001741C-80017470 011D5C 0054+00 1/1 0/0 0/0 .text mDoMemCd_main__FPv */
|
||||
#pragma push
|
||||
@@ -405,19 +370,4 @@ static asm void mDoMemCd_main(void* param_0) {
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80017470-80017498 011DB0 0028+00 0/0 1/0 0/0 .text __sinit_m_Do_MemCard_cpp */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void __sinit_m_Do_MemCard_cpp() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_MemCard/__sinit_m_Do_MemCard_cpp.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
REGISTER_CTORS(0x80017470, __sinit_m_Do_MemCard_cpp);
|
||||
#pragma pop
|
||||
|
||||
/* 803743F8-803743F8 000A58 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
@@ -4,17 +4,10 @@
|
||||
//
|
||||
|
||||
#include "m_Do/m_Do_controller_pad.h"
|
||||
#include "SSystem/SComponent/c_lib.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct mDoRst {
|
||||
static u8 mResetData[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -42,12 +35,12 @@ extern "C" void setEnabled__Q210JUTGamePad7CRumbleFUl();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern u8 g_HIO[64 + 4 /* padding */];
|
||||
extern "C" extern u32 data_80450580;
|
||||
extern "C" extern s8 data_80450580;
|
||||
extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */];
|
||||
extern "C" u8 sAnalogMode__10JUTGamePad[4];
|
||||
extern "C" u8 sCallback__Q210JUTGamePad13C3ButtonReset[4];
|
||||
extern "C" u8 sCallbackArg__Q210JUTGamePad13C3ButtonReset[4 + 4 /* padding */];
|
||||
extern "C" extern u8 struct_80451500[4];
|
||||
extern "C" extern bool struct_80451500;
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
@@ -61,80 +54,56 @@ JUTGamePad* mDoCPd_c::m_gamePad[4];
|
||||
interface_of_controller_pad mDoCPd_c::m_cpadInfo[4];
|
||||
|
||||
/* 80007954-80007A94 002294 0140+00 0/0 1/1 0/0 .text create__8mDoCPd_cFv */
|
||||
#ifdef NONMATCHING
|
||||
void mDoCPd_c::create() {
|
||||
JUTGamePad* JUTGamePad_ptr;
|
||||
cpadInfo* m_cpadInfo_addr;
|
||||
JUTGamePad* pad = new JUTGamePad(JUTGamePad::Port_1);
|
||||
m_gamePad[0] = pad;
|
||||
|
||||
JUTGamePad_ptr = new JUTGamePad(JUTGamePad::Port_1);
|
||||
m_gamePad[0] = JUTGamePad_ptr;
|
||||
if (lbl_80450580 == 0) {
|
||||
if (data_80450580 != 0) {
|
||||
m_gamePad[1] = new JUTGamePad(JUTGamePad::Port_2);
|
||||
m_gamePad[2] = new JUTGamePad(JUTGamePad::Port_3);
|
||||
m_gamePad[3] = new JUTGamePad(JUTGamePad::Port_4);
|
||||
} else {
|
||||
m_gamePad[1] = NULL;
|
||||
m_gamePad[2] = NULL;
|
||||
m_gamePad[3] = NULL;
|
||||
JUTGamePad_ptr = m_gamePad[3];
|
||||
} else {
|
||||
m_gamePad[1] = new JUTGamePad(JUTGamePad::Port_2);
|
||||
m_gamePad[2] = new JUTGamePad(JUTGamePad::Port_3);
|
||||
JUTGamePad_ptr = new JUTGamePad(JUTGamePad::Port_4);
|
||||
}
|
||||
m_gamePad[3] = JUTGamePad_ptr;
|
||||
if (m_Do_Reset_NS_mDoRst_NS_mResetData->field_0x0 == 0) {
|
||||
lbl_80451501 = false;
|
||||
lbl_804514EC = resetCallBack__6mDoRstFiPv;
|
||||
lbl_804514F0 = 0;
|
||||
|
||||
if (!mDoRst::isReset()) {
|
||||
JUTGamePad::clearResetOccurred();
|
||||
JUTGamePad::setResetCallback(mDoRst_resetCallBack, NULL);
|
||||
}
|
||||
sAnalogMode = 3;
|
||||
PADSetAnalogMode(3);
|
||||
m_cpadInfo_addr = &m_cpadInfo;
|
||||
for (int i = 4; i != 0; i--) {
|
||||
m_cpadInfo_addr->interface.field_0x3a = false;
|
||||
m_cpadInfo_addr->interface.field_0x39 = false;
|
||||
m_cpadInfo_addr->interface.field_0x3c = false;
|
||||
m_cpadInfo_addr->interface.field_0x3b = false;
|
||||
m_cpadInfo_addr = m_cpadInfo_addr->unk1;
|
||||
JUTGamePad::setAnalogMode(3);
|
||||
|
||||
interface_of_controller_pad* cpad = &m_cpadInfo[0];
|
||||
for (int i = 0; i < 4; i++) {
|
||||
cpad->mTrigLockL = false;
|
||||
cpad->mHoldLockL = false;
|
||||
cpad->mTrigLockR = false;
|
||||
cpad->mHoldLockR = false;
|
||||
cpad++;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoCPd_c::create() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_controller_pad/create__8mDoCPd_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80007A94-80007B7C 0023D4 00E8+00 0/0 1/1 0/0 .text read__8mDoCPd_cFv */
|
||||
#ifdef NONMATCHING
|
||||
void mDoCPd_c::read() {
|
||||
//_savegpr_29();
|
||||
gamePad->read();
|
||||
if (m_Do_Reset_NS_mDoRst_NS_mResetData->field_0x0 == 0 &&
|
||||
m_Do_Reset_NS_mDoRst_NS_mResetData->field_0x8 != 0) {
|
||||
JUTGamePad* JUTGamePad_ptr =
|
||||
JUTGamePad::getGamePad(m_Do_Reset_NS_mDoRst_NS_mResetData->pad_index);
|
||||
bool error = false;
|
||||
if (JUTGamePad_ptr->pad_port != 0xffff &&
|
||||
JUTGamePad_ptr->rumble.field_0x10 != 0) { // Make the rumble thing right
|
||||
error = true;
|
||||
}
|
||||
if (error = false) {
|
||||
m_Do_Reset_NS_mDoRst_NS_mResetData->field_0x8 = 0;
|
||||
JUTGamePad::read();
|
||||
|
||||
if (!mDoRst::isReset() && mDoRst::is3ButtonReset()) {
|
||||
JUTGamePad* pad = JUTGamePad::getGamePad(mDoRst::get3ButtonResetPort());
|
||||
|
||||
if (!pad->isPushing3ButtonReset()) { // Make the rumble thing right
|
||||
mDoRst::off3ButtonReset();
|
||||
}
|
||||
}
|
||||
JUTGamePad** m_gamePad_ptr = m_gamePad;
|
||||
cpadInfo* cpad_ptr = &m_cpadInfo;
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (*m_gamePad_ptr == 0) {
|
||||
cLib_memSet(cpad_ptr, 0, 0x40);
|
||||
if (m_gamePad[i] == NULL) {
|
||||
cLib_memSet(m_gamePad[i], 0, 0x40);
|
||||
} else {
|
||||
convert(&cpad_ptr->interface, *m_gamePad_ptr);
|
||||
LRlockCheck(&cpad_ptr->interface);
|
||||
convert(&m_cpadInfo[i], m_gamePad[i]);
|
||||
LRlockCheck(&m_cpadInfo[i]);
|
||||
}
|
||||
m_gamePad_ptr = m_gamePad_ptr + 1; // Shouldn't it be 4 if it's incrementing a pointer???
|
||||
cpad_ptr = cpad_ptr->unk1;
|
||||
}
|
||||
}
|
||||
#else
|
||||
@@ -148,72 +117,27 @@ asm void mDoCPd_c::read() {
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451A20-80451A24 000020 0004+00 1/1 0/0 0/0 .sdata2 @3709 */
|
||||
SECTION_SDATA2 static f32 lit_3709 = 1.0f / 15.0f;
|
||||
|
||||
/* 80451A24-80451A28 000024 0004+00 1/1 0/0 0/0 .sdata2 @3710 */
|
||||
SECTION_SDATA2 static f32 lit_3710 = 1.0f;
|
||||
|
||||
/* 80451A28-80451A30 000028 0004+04 1/1 0/0 0/0 .sdata2 @3711 */
|
||||
SECTION_SDATA2 static f32 lit_3711[1 + 1 /* padding */] = {
|
||||
0.0071428571827709675f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
|
||||
/* 80451A30-80451A38 000030 0008+00 1/1 0/0 0/0 .sdata2 @3713 */
|
||||
SECTION_SDATA2 static f64 lit_3713 = 4503599627370496.0 /* cast u32 to float */;
|
||||
|
||||
/* 80007B7C-80007CD0 0024BC 0154+00 1/1 0/0 0/0 .text
|
||||
* convert__8mDoCPd_cFP27interface_of_controller_padP10JUTGamePad */
|
||||
#ifdef NONMATCHING
|
||||
// off on load order, regalloc, const placement (int-to-float conversion magic).
|
||||
void mDoCPd_c::convert(interface_of_controller_pad* pInterface, JUTGamePad* pPad) {
|
||||
pInterface->mButtonFlags = pPad->buttons.mButtonFlags;
|
||||
pInterface->mPressedButtonFlags = pPad->buttons.mPressedButtonFlags;
|
||||
pInterface->mMainStickPosX = pPad->control_stick.mPosX;
|
||||
pInterface->mMainStickPosY = pPad->control_stick.mPosY;
|
||||
pInterface->mMainStickValue = pPad->control_stick.mValue;
|
||||
pInterface->mMainStickAngle = pPad->control_stick.mAngle;
|
||||
pInterface->mCStickPosX = pPad->c_stick.mPosX;
|
||||
pInterface->mCStickPosY = pPad->c_stick.mPosY;
|
||||
pInterface->mCStickValue = pPad->c_stick.mValue;
|
||||
pInterface->mCStickAngle = pPad->c_stick.mAngle;
|
||||
pInterface->mButtonFlags = pPad->getButton();
|
||||
pInterface->mPressedButtonFlags = pPad->getTrigger();
|
||||
pInterface->mMainStickPosX = pPad->getMainStickX();
|
||||
pInterface->mMainStickPosY = pPad->getMainStickY();
|
||||
pInterface->mMainStickValue = pPad->getMainStickValue();
|
||||
pInterface->mMainStickAngle = pPad->getMainStickAngle();
|
||||
pInterface->mCStickPosX = pPad->getSubStickX();
|
||||
pInterface->mCStickPosY = pPad->getSubStickY();
|
||||
pInterface->mCStickValue = pPad->getSubStickValue();
|
||||
pInterface->mCStickAngle = pPad->getSubStickAngle();
|
||||
|
||||
pInterface->mAnalogA = lbl_80451A20 * pPad->buttons.mAnalogARaw;
|
||||
if (pInterface->mAnalogA > lbl_80451A24 /* 1.0 */) {
|
||||
pInterface->mAnalogA = lbl_80451A24;
|
||||
}
|
||||
mDoCPd_ANALOG_CONV(pPad->getAnalogA(), pInterface->mAnalogA);
|
||||
mDoCPd_ANALOG_CONV(pPad->getAnalogB(), pInterface->mAnalogB);
|
||||
mDoCPd_TRIGGER_CONV(pPad->getAnalogL(), pInterface->mTriggerLeft);
|
||||
mDoCPd_TRIGGER_CONV(pPad->getAnalogR(), pInterface->mTriggerRight);
|
||||
|
||||
pInterface->mAnalogB = lbl_80451A20 * pPad->buttons.mAnalogBRaw;
|
||||
if (pInterface->mAnalogB > lbl_80451A24 /* 1.0 */) {
|
||||
pInterface->mAnalogB = lbl_80451A24;
|
||||
}
|
||||
|
||||
// pInterface->mTriggerLeft = pPad->buttons.mTriggerLeftRaw * (1/140.0f);
|
||||
pInterface->mTriggerLeft = lbl_80451A28 * pPad->buttons.mTriggerLeftRaw;
|
||||
if (pInterface->mTriggerLeft > lbl_80451A24 /* 1.0 */) {
|
||||
pInterface->mTriggerLeft = lbl_80451A24;
|
||||
}
|
||||
|
||||
pInterface->mTriggerRight = lbl_80451A28 * pPad->buttons.mTriggerRightRaw;
|
||||
if (pInterface->mTriggerRight > lbl_80451A24 /* 1.0 */) {
|
||||
pInterface->mTriggerRight = lbl_80451A24;
|
||||
}
|
||||
|
||||
pInterface->mGamepadErrorFlags = pPad->error_value;
|
||||
pInterface->mGamepadErrorFlags = pPad->getErrorStatus();
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoCPd_c::convert(interface_of_controller_pad* param_0, JUTGamePad* param_1) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_controller_pad/convert__8mDoCPd_cFP27interface_of_controller_padP10JUTGamePad.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80007CD0-80007D74 002610 00A4+00 1/1 0/0 0/0 .text
|
||||
* LRlockCheck__8mDoCPd_cFP27interface_of_controller_pad */
|
||||
|
||||
@@ -2427,7 +2427,7 @@ JKRExpHeap* mDoExt_createGameHeap(u32 param_0, JKRHeap* param_1) {
|
||||
}
|
||||
|
||||
/* 8000ED50-8000ED58 -00001 0008+00 0/0 0/0 0/0 .text mDoExt_getGameHeap__Fv */
|
||||
JKRHeap* mDoExt_getGameHeap() {
|
||||
JKRExpHeap* mDoExt_getGameHeap() {
|
||||
return gameHeap;
|
||||
}
|
||||
|
||||
@@ -2540,8 +2540,8 @@ JKRSolidHeap* mDoExt_createSolidHeapFromSystem(u32 pSize, u32 pAlignment) {
|
||||
|
||||
/* 8000EF68-8000EFBC 0098A8 0054+00 2/2 0/0 0/0 .text
|
||||
* mDoExt_createSolidHeapToCurrent__FPP7JKRHeapUlP7JKRHeapUl */
|
||||
static JKRSolidHeap* mDoExt_createSolidHeapToCurrent(JKRHeap** pOutHeap, u32 pSize,
|
||||
JKRHeap* pParentHeap, u32 pAlignment) {
|
||||
JKRSolidHeap* mDoExt_createSolidHeapToCurrent(JKRHeap** pOutHeap, u32 pSize, JKRHeap* pParentHeap,
|
||||
u32 pAlignment) {
|
||||
if (pOutHeap != NULL) {
|
||||
*pOutHeap = JKRHeap::getCurrentHeap();
|
||||
}
|
||||
|
||||
+36
-25
@@ -4,23 +4,12 @@
|
||||
//
|
||||
|
||||
#include "m_Do/m_Do_lib.h"
|
||||
#include "JSystem/JMath/JMATrigonometric.h"
|
||||
#include "JSystem/JUtility/JUTTexture.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct _GXTlutObj {};
|
||||
|
||||
struct _GXTexObj {};
|
||||
|
||||
struct ResTIMG {};
|
||||
|
||||
struct JMath {
|
||||
static u8 sincosTable_[65536];
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -43,10 +32,6 @@ extern "C" void init__11J3DUClipperFv();
|
||||
extern "C" void calcViewFrustum__11J3DUClipperFv();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void PSMTXMultVec();
|
||||
extern "C" void GXInitTexObj();
|
||||
extern "C" void GXInitTexObjCI();
|
||||
extern "C" void GXInitTexObjLOD();
|
||||
extern "C" void GXInitTlutObj();
|
||||
extern "C" void __register_global_object();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
@@ -69,6 +54,27 @@ SECTION_SDATA2 static f64 lit_3638 = 4503601774854144.0 /* cast s32 to float */;
|
||||
|
||||
/* 8001513C-8001528C 00FA7C 0150+00 0/0 3/3 2/2 .text
|
||||
* mDoLib_setResTimgObj__FPC7ResTIMGP9_GXTexObjUlP10_GXTlutObj */
|
||||
#ifdef NONMATCHING
|
||||
bool mDoLib_setResTimgObj(ResTIMG const* res, _GXTexObj* o_texObj, u32 param_2,
|
||||
_GXTlutObj* o_tlutObj) {
|
||||
if (res->palettesEnabled) {
|
||||
GXInitTlutObj(o_tlutObj, (void*)(res + res->paletteOffset), (GXTlutFmt)res->paletteFormat,
|
||||
res->paletteCount);
|
||||
GXInitTexObjCI(o_texObj, (void*)(res + res->texDataOffset), res->width, res->height,
|
||||
(GXCITexFmt)res->format, (GXTexWrapMode)res->wrapS,
|
||||
(GXTexWrapMode)res->wrapT, 1 - res->mipmapCount, param_2);
|
||||
} else {
|
||||
GXInitTexObj(o_texObj, (void*)(res + res->texDataOffset), res->width, res->height,
|
||||
(GXTexFmt)res->format, (GXTexWrapMode)res->wrapS, (GXTexWrapMode)res->wrapT,
|
||||
(s32)1 - res->mipmapCount);
|
||||
}
|
||||
GXInitTexObjLOD(o_texObj, (GXTexFilter)res->minFilter, (GXTexFilter)res->magFilter,
|
||||
(f32)res->minLOD * 0.125f, (f32)res->maxLOD * 0.125f, (f32)res->LODBias * 0.01f,
|
||||
(s32)res->biasClamp, (s32)res->doEdgeLOD, (GXAnisotropy)res->maxAnisotropy);
|
||||
|
||||
return res->palettesEnabled;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -78,6 +84,7 @@ asm void mDoLib_setResTimgObj(ResTIMG const* param_0, _GXTexObj* param_1, u32 pa
|
||||
#include "asm/m_Do/m_Do_lib/mDoLib_setResTimgObj__FPC7ResTIMGP9_GXTexObjUlP10_GXTlutObj.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 803DD8E4-803DD940 00A604 005C+00 2/2 5/5 5/5 .bss mClipper__14mDoLib_clipper */
|
||||
J3DUClipper mDoLib_clipper::mClipper;
|
||||
@@ -92,14 +99,18 @@ f32 mDoLib_clipper::mFovyRate;
|
||||
SECTION_SDATA2 static f32 lit_3739 = 182.04444885253906f;
|
||||
|
||||
/* 8001528C-80015310 00FBCC 0084+00 0/0 1/1 0/0 .text setup__14mDoLib_clipperFffff */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoLib_clipper::setup(f32 param_0, f32 param_1, f32 param_2, f32 param_3) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_lib/setup__14mDoLib_clipperFffff.s"
|
||||
void mDoLib_clipper::setup(f32 fovy, f32 aspect, f32 near, f32 far) {
|
||||
mClipper.setFovy(fovy);
|
||||
mClipper.setAspect(aspect);
|
||||
mClipper.setNear(near);
|
||||
mClipper.setFar(far);
|
||||
mSystemFar = far;
|
||||
mClipper.calcViewFrustum();
|
||||
|
||||
s16 tmp = fovy * 182.04444885253906f;
|
||||
|
||||
mFovyRate = cM_scos(tmp) / cM_ssin(tmp);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451B84-80451B88 000184 0004+00 2/2 0/0 0/0 .sdata2 @3784 */
|
||||
|
||||
+154
-189
@@ -4,6 +4,9 @@
|
||||
//
|
||||
|
||||
#include "m_Do/m_Do_machine.h"
|
||||
#include "JSystem/JFramework/JFWSystem.h"
|
||||
#include "JSystem/JUtility/JUTDbPrint.h"
|
||||
#include "JSystem/JUtility/JUTException.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
@@ -11,85 +14,22 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct mDoRst {
|
||||
static u8 mResetData[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
struct mDoMemCd_Ctrl_c {
|
||||
/* 80016730 */ void ThdInit();
|
||||
};
|
||||
|
||||
struct mDoMch_render_c {
|
||||
static void* mRenderModeObj[1 + 1 /* padding */];
|
||||
};
|
||||
|
||||
struct mDoMain {
|
||||
static u32 memMargin;
|
||||
static u8 sHungUpTime[4];
|
||||
static _GXRenderModeObj* mRenderModeObj;
|
||||
};
|
||||
|
||||
struct mDoDvdThd {
|
||||
/* 80015858 */ void create(s32);
|
||||
};
|
||||
|
||||
struct JKRHeap {
|
||||
/* 802CE438 */ void becomeCurrentHeap();
|
||||
/* 802CE72C */ void getFreeSize();
|
||||
/* 802CE784 */ void getTotalFreeSize();
|
||||
/* 802CEB78 */ void setErrorFlag(bool);
|
||||
/* 802CEB88 */ void setErrorHandler(void (*)(void*, u32, int));
|
||||
|
||||
static u8 sSystemHeap[4];
|
||||
static u8 sRootHeap[4];
|
||||
};
|
||||
|
||||
struct cMl {
|
||||
/* 80263220 */ void init(JKRHeap*);
|
||||
};
|
||||
|
||||
struct OSThread {};
|
||||
|
||||
struct OSContext {};
|
||||
|
||||
struct JUTVideo {
|
||||
/* 802E4CAC */ void destroyManager();
|
||||
};
|
||||
|
||||
struct JUTGamePad {
|
||||
struct EPadPort {};
|
||||
|
||||
/* 802E06DC */ JUTGamePad(JUTGamePad::EPadPort);
|
||||
/* 802E07B0 */ ~JUTGamePad();
|
||||
};
|
||||
|
||||
struct JUTFont {};
|
||||
|
||||
struct JUTException {
|
||||
/* 802E2F18 */ void isEnablePad() const;
|
||||
/* 802E2F54 */ void readPad(u32*, u32*);
|
||||
/* 802E3980 */ void waitTime(s32);
|
||||
/* 802E3AEC */ void setPreUserCallback(void (*)(u16, OSContext*, u32, u32));
|
||||
/* 802E3AFC */ void setPostUserCallback(void (*)(u16, OSContext*, u32, u32));
|
||||
/* 802E3B0C */ void appendMapFile(char const*);
|
||||
|
||||
static u8 sErrorManager[4];
|
||||
static u8 sConsole[4];
|
||||
};
|
||||
|
||||
struct JUTDbPrint {
|
||||
/* 802E0190 */ void start(JUTFont*, JKRHeap*);
|
||||
|
||||
static u8 sDebugPrint[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
struct JUTConsole {
|
||||
/* 802E7BB8 */ void print_f(char const*, ...);
|
||||
/* 802E7C38 */ void print(char const*);
|
||||
/* 802E80A8 */ void scroll(int);
|
||||
/* 802E8184 */ void getUsedLine() const;
|
||||
/* 802E81A8 */ void getLineOffset() const;
|
||||
};
|
||||
|
||||
struct JUTConsoleManager {
|
||||
/* 802E8450 */ void drawDirect(bool) const;
|
||||
/* 802E84C4 */ void setDirectConsole(JUTConsole*);
|
||||
@@ -98,15 +38,7 @@ struct JUTConsoleManager {
|
||||
};
|
||||
|
||||
struct JUTAssertion {
|
||||
/* 802E4C34 */ void setVisible(bool);
|
||||
};
|
||||
|
||||
struct JKRThreadSwitch {
|
||||
/* 802D1A14 */ void createManager(JKRHeap*);
|
||||
};
|
||||
|
||||
struct JKRThread {
|
||||
/* 802D16B8 */ JKRThread(OSThread*, int);
|
||||
/* 802E4C34 */ static void setVisible(bool);
|
||||
};
|
||||
|
||||
struct JKRDvdRipper {
|
||||
@@ -125,39 +57,22 @@ struct JKRAram {
|
||||
static u32 sSZSBufferSize[1 + 1 /* padding */];
|
||||
};
|
||||
|
||||
struct JFWSystem {
|
||||
struct CSetUpParam {
|
||||
static u32 maxStdHeaps;
|
||||
static u32 sysHeapSize;
|
||||
static u32 fifoBufSize;
|
||||
static u32 aramAudioBufSize;
|
||||
static u32 aramGraphBufSize;
|
||||
static void* renderMode;
|
||||
};
|
||||
|
||||
/* 80271CD0 */ void firstInit();
|
||||
/* 80271D18 */ void init();
|
||||
|
||||
static u8 systemHeap[4];
|
||||
static u8 systemConsole[4];
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" static void myGetHeapTypeByString__FP7JKRHeap();
|
||||
extern "C" static void myMemoryErrorRoutine__FPvUli();
|
||||
extern "C" static void myHeapCheckRecursive__FP7JKRHeap();
|
||||
extern "C" void myHeapCheckRecursive__FP7JKRHeap();
|
||||
extern "C" void mDoMch_HeapCheckAll__Fv();
|
||||
extern "C" static void developKeyCheck__FUlUl();
|
||||
extern "C" static void mDoMch_IsProgressiveMode__Fv();
|
||||
extern "C" static void exceptionReadPad__FPUlPUl();
|
||||
extern "C" static void exceptionRestart__Fv();
|
||||
extern "C" static void myExceptionCallback__FUsP9OSContextUlUl();
|
||||
extern "C" static s8 developKeyCheck__FUlUl(u32, u32);
|
||||
extern "C" bool mDoMch_IsProgressiveMode__Fv();
|
||||
extern "C" bool exceptionReadPad__FPUlPUl(u32*, u32*);
|
||||
extern "C" void exceptionRestart__Fv();
|
||||
extern "C" void myExceptionCallback__FUsP9OSContextUlUl();
|
||||
extern "C" static void fault_callback_scroll__FUsP9OSContextUlUl();
|
||||
extern "C" static void my_PrintHeap__FPCcUl();
|
||||
extern "C" static void my_SysPrintHeap__FPCcPvUl();
|
||||
extern "C" void my_SysPrintHeap__FPCcPvUl();
|
||||
extern "C" void mDoMch_Create__Fv();
|
||||
extern "C" extern char const* const m_Do_m_Do_machine__stringBase0;
|
||||
extern "C" void* mRenderModeObj__15mDoMch_render_c[1 + 1 /* padding */];
|
||||
@@ -168,9 +83,6 @@ extern "C" void* mRenderModeObj__15mDoMch_render_c[1 + 1 /* padding */];
|
||||
|
||||
extern "C" void OSReportDisable();
|
||||
extern "C" void OSReportEnable();
|
||||
extern "C" void OSReport();
|
||||
extern "C" void OSReport_Error();
|
||||
extern "C" void OSReport_System();
|
||||
extern "C" void mDoExt_createAssertHeap__FP7JKRHeap();
|
||||
extern "C" void mDoExt_createDbPrintHeap__FUlP7JKRHeap();
|
||||
extern "C" void mDoExt_getDbPrintHeap__Fv();
|
||||
@@ -222,28 +134,16 @@ extern "C" void getLineOffset__10JUTConsoleCFv();
|
||||
extern "C" void drawDirect__17JUTConsoleManagerCFb();
|
||||
extern "C" void setDirectConsole__17JUTConsoleManagerFP10JUTConsole();
|
||||
extern "C" void PPCHalt();
|
||||
extern "C" void OSGetConsoleType();
|
||||
extern "C" void OSGetArenaHi();
|
||||
extern "C" void OSGetArenaLo();
|
||||
extern "C" void OSSetArenaHi();
|
||||
extern "C" void OSEnableInterrupts();
|
||||
extern "C" void OSResetSystem();
|
||||
extern "C" void OSGetResetCode();
|
||||
extern "C" void OSGetProgressiveMode();
|
||||
extern "C" u32 OSGetProgressiveMode();
|
||||
extern "C" void OSSetProgressiveMode();
|
||||
extern "C" void OSGetCurrentThread();
|
||||
extern "C" void OSGetThreadPriority();
|
||||
extern "C" void OSGetTime();
|
||||
extern "C" void DVDChangeDir();
|
||||
extern "C" void VIFlush();
|
||||
extern "C" void VISetBlack();
|
||||
extern "C" void VISetBlack(s32);
|
||||
extern "C" void VIGetRetraceCount();
|
||||
extern "C" void VIGetDTVStatus();
|
||||
extern "C" void GXSetDrawDoneCallback();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" extern u8 g_mDoMemCd_control[8192];
|
||||
extern "C" extern u32 data_80450580;
|
||||
extern "C" extern s8 data_80450580;
|
||||
extern "C" u32 memMargin__7mDoMain;
|
||||
extern "C" u32 maxStdHeaps__Q29JFWSystem11CSetUpParam;
|
||||
extern "C" u32 sysHeapSize__Q29JFWSystem11CSetUpParam;
|
||||
@@ -267,7 +167,7 @@ extern "C" u8 systemConsole__9JFWSystem[4];
|
||||
extern "C" u8 sSystemHeap__7JKRHeap[4];
|
||||
extern "C" u8 sRootHeap__7JKRHeap[4];
|
||||
extern "C" u8 sDebugPrint__10JUTDbPrint[4 + 4 /* padding */];
|
||||
extern "C" extern u8 struct_80451500[4];
|
||||
extern "C" extern bool struct_80451500;
|
||||
extern "C" u8 sErrorManager__12JUTException[4];
|
||||
extern "C" u8 sConsole__12JUTException[4];
|
||||
extern "C" u8 sManager__17JUTConsoleManager[4];
|
||||
@@ -331,7 +231,7 @@ static u8 struct_80450C10[8];
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void myGetHeapTypeByString(JKRHeap* param_0) {
|
||||
static asm char* myGetHeapTypeByString(JKRHeap* param_0) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_machine/myGetHeapTypeByString__FP7JKRHeap.s"
|
||||
}
|
||||
@@ -367,24 +267,37 @@ SECTION_DEAD static char const* const stringBase_80373EEE = "error in %08x(%s)\n
|
||||
#pragma pop
|
||||
|
||||
/* 8000B5C8-8000B668 005F08 00A0+00 1/1 0/0 0/0 .text myHeapCheckRecursive__FP7JKRHeap */
|
||||
#ifdef NONMATCHING
|
||||
void myHeapCheckRecursive(JKRHeap* param_0) {
|
||||
if (!param_0->check()) {
|
||||
char* type = myGetHeapTypeByString(param_0);
|
||||
OSReport_Error("error in %08x(%s)\n", param_0, type);
|
||||
}
|
||||
|
||||
JSUTree<JKRHeap> heapTree = param_0->getHeapTree();
|
||||
for (heapTree.getFirstChild(); heapTree.getNextChild() != NULL; heapTree--) {
|
||||
/* if (heapTree->getNextChild() == NULL) {
|
||||
heapTree--;
|
||||
} */
|
||||
JKRHeap* heap = (JKRHeap*)heapTree.getObject();
|
||||
myHeapCheckRecursive(heap);
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void myHeapCheckRecursive(JKRHeap* param_0) {
|
||||
asm void myHeapCheckRecursive(JKRHeap* param_0) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_machine/myHeapCheckRecursive__FP7JKRHeap.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8000B668-8000B68C 005FA8 0024+00 0/0 2/2 0/0 .text mDoMch_HeapCheckAll__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoMch_HeapCheckAll() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_machine/mDoMch_HeapCheckAll__Fv.s"
|
||||
void mDoMch_HeapCheckAll() {
|
||||
myHeapCheckRecursive(JKRHeap::sRootHeap);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8000B68C-8000B73C 005FCC 00B0+00 1/1 0/0 0/0 .text developKeyCheck__FUlUl */
|
||||
#pragma push
|
||||
@@ -397,56 +310,79 @@ static asm void developKeyCheck(u32 param_0, u32 param_1) {
|
||||
#pragma pop
|
||||
|
||||
/* 8000B73C-8000B768 00607C 002C+00 1/1 0/0 0/0 .text mDoMch_IsProgressiveMode__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void mDoMch_IsProgressiveMode() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_machine/mDoMch_IsProgressiveMode__Fv.s"
|
||||
u8 mDoMch_IsProgressiveMode() {
|
||||
return OSGetProgressiveMode() == true;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8000B768-8000B798 0060A8 0030+00 2/2 0/0 0/0 .text exceptionReadPad__FPUlPUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void exceptionReadPad(u32* param_0, u32* param_1) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_machine/exceptionReadPad__FPUlPUl.s"
|
||||
bool exceptionReadPad(u32* param_0, u32* param_1) {
|
||||
return JUTException::getManager()->readPad(param_0, param_1);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8000B798-8000B7C8 0060D8 0030+00 1/1 0/0 0/0 .text exceptionRestart__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void exceptionRestart() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_machine/exceptionRestart__Fv.s"
|
||||
void exceptionRestart() {
|
||||
mDoRst_reset(0, 0, 0);
|
||||
OSResetSystem(0, 0, 0);
|
||||
do {
|
||||
} while (true);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80373DE8-80373DE8 000448 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80373F01 = "振動停止&原点復帰\n";
|
||||
SECTION_DEAD static char const* const stringBase_80373F15 = "例外マネージャがありません\n";
|
||||
SECTION_DEAD static char const* const stringBase_80373F31 = "キー入力を受け付けています\n";
|
||||
SECTION_DEAD static char const* const stringBase_80373F4D = "JUTAssertionを可視化しました\n";
|
||||
SECTION_DEAD static char const* const stringBase_80373F6B = "3秒間停止\n";
|
||||
SECTION_DEAD static char const* const stringBase_80373F76 = "/map/Final/Release";
|
||||
#pragma pop
|
||||
|
||||
/* 8000B7C8-8000B95C 006108 0194+00 1/1 0/0 0/0 .text myExceptionCallback__FUsP9OSContextUlUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void myExceptionCallback(u16 param_0, OSContext* param_1, u32 param_2, u32 param_3) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_machine/myExceptionCallback__FUsP9OSContextUlUl.s"
|
||||
void myExceptionCallback(u16 param_0, OSContext* param_1, u32 param_2, u32 param_3) {
|
||||
u32 tmp1;
|
||||
u32 tmp2;
|
||||
|
||||
mDoMain::sHungUpTime = OSGetTime();
|
||||
OSReportEnable();
|
||||
cAPICPad_recalibrate__Fv();
|
||||
// "Vibration stopping & resetting to default\n"
|
||||
OSReport("振動停止&原点復帰\n");
|
||||
|
||||
JUTException* manager = JUTException::getManager();
|
||||
|
||||
if (manager == NULL) {
|
||||
// "Exception Manager doesn't exist\n"
|
||||
OSReport("例外マネージャがありません\n");
|
||||
PPCHalt();
|
||||
} else {
|
||||
manager->setTraceSuppress(0x80);
|
||||
if (data_80450580 == 0) {
|
||||
JUTGamePad pad(JUTGamePad::Port_1);
|
||||
manager->field_0x84 = &pad;
|
||||
manager->field_0x88 = -1;
|
||||
|
||||
if (manager != NULL) {
|
||||
OSEnableInterrupts();
|
||||
// "Accepting Key input\n"
|
||||
OSReport("キー入力を受け付けています\n");
|
||||
while (data_80450580 == 0) {
|
||||
exceptionReadPad(&tmp2, &tmp1);
|
||||
developKeyCheck(tmp2, tmp1);
|
||||
JUTException::waitTime(30);
|
||||
if (struct_80451501) {
|
||||
exceptionRestart();
|
||||
}
|
||||
}
|
||||
// "JUTAssertion is visible\n"
|
||||
OSReport("JUTAssertionを可視化しました\n");
|
||||
JUTAssertion::setVisible(true);
|
||||
JUTDbPrint::getManager()->setVisible(true);
|
||||
JFWSystem::getSystemConsole()->setOutput(3);
|
||||
} else {
|
||||
PPCHalt();
|
||||
}
|
||||
} else {
|
||||
// "Wait for 3 seconds\n"
|
||||
OSReport("3秒間停止\n");
|
||||
JUTException::waitTime(3000);
|
||||
}
|
||||
}
|
||||
DVDChangeDir("/map/Final/Release");
|
||||
JUTVideo::destroyManager();
|
||||
GXSetDrawDoneCallback(0);
|
||||
VISetBlack(0);
|
||||
VIFlush();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80373DE8-80373DE8 000448 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
@@ -497,14 +433,11 @@ SECTION_DEAD static char const* const stringBase_80374017 = ""
|
||||
#pragma pop
|
||||
|
||||
/* 8000BCF8-8000BD44 006638 004C+00 1/1 0/0 0/0 .text my_SysPrintHeap__FPCcPvUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void my_SysPrintHeap(char const* param_0, void* param_1, u32 param_2) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_machine/my_SysPrintHeap__FPCcPvUl.s"
|
||||
void my_SysPrintHeap(char const* message, void* start, u32 size) {
|
||||
// "32m%-24s = %08x-%08x size=%d KB\n"
|
||||
OSReport_System("\x1b[32m%-24s = %08x-%08x size=%d KB\n\x1b[m", message, start,
|
||||
(u32)start + size, size >> 10);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80373DE8-80373DE8 000448 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
@@ -521,28 +454,60 @@ SECTION_DEAD static char const* const stringBase_8037409E = "/map/Final/Release/
|
||||
#pragma pop
|
||||
|
||||
/* 803A2F60-803A2F9C 000080 003C+00 1/0 0/0 0/0 .data g_ntscZeldaIntDf */
|
||||
SECTION_DATA static u8 g_ntscZeldaIntDf[60] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x02, 0x60, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x1B, 0x00, 0x10, 0x02,
|
||||
0x9A, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06,
|
||||
0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
|
||||
0x06, 0x06, 0x06, 0x06, 0x06, 0x08, 0x08, 0x0A, 0x0C, 0x0A, 0x08, 0x08, 0x00, 0x00, 0x00,
|
||||
};
|
||||
SECTION_DATA static _GXRenderModeObj g_ntscZeldaIntDf = {0,
|
||||
608,
|
||||
448,
|
||||
448,
|
||||
27,
|
||||
16,
|
||||
666,
|
||||
448,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
{{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6}},
|
||||
{8, 8, 10, 12, 10, 8, 8}};
|
||||
|
||||
/* 803A2F9C-803A2FD8 0000BC 003C+00 1/1 1/1 0/0 .data g_ntscZeldaProg */
|
||||
SECTION_DATA extern u8 g_ntscZeldaProg[60] = {
|
||||
0x00, 0x00, 0x00, 0x02, 0x02, 0x60, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0x1B, 0x00, 0x10, 0x02,
|
||||
0x9A, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06,
|
||||
0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
|
||||
0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x15, 0x16, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
SECTION_DATA extern _GXRenderModeObj g_ntscZeldaProg = {2,
|
||||
608,
|
||||
448,
|
||||
448,
|
||||
27,
|
||||
16,
|
||||
666,
|
||||
448,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
{{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6}},
|
||||
{0, 0, 21, 22, 21, 0, 0}};
|
||||
|
||||
/* 804505A0-804505A8 -00001 0004+04 1/1 3/3 0/0 .sdata mRenderModeObj__15mDoMch_render_c
|
||||
*/
|
||||
SECTION_SDATA void* mDoMch_render_c::mRenderModeObj[1 + 1 /* padding */] = {
|
||||
(void*)&g_ntscZeldaIntDf,
|
||||
/* padding */
|
||||
NULL,
|
||||
};
|
||||
SECTION_SDATA _GXRenderModeObj* mDoMch_render_c::mRenderModeObj = &g_ntscZeldaIntDf;
|
||||
|
||||
/* 8000BD44-8000C0CC 006684 0388+00 0/0 2/1 0/0 .text mDoMch_Create__Fv */
|
||||
#pragma push
|
||||
|
||||
@@ -4,98 +4,35 @@
|
||||
//
|
||||
|
||||
#include "m_Do/m_Do_machine_exception.h"
|
||||
#include "JSystem/JFramework/JFWSystem.h"
|
||||
#include "JSystem/JKernel/JKRAram.h"
|
||||
#include "JSystem/JUtility/JUTConsole.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "m_Do/m_Do_main.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct mDoMain {
|
||||
static u8 COPYDATE_STRING[18 + 2 /* padding */];
|
||||
static u8 sPowerOnTime[4];
|
||||
static u8 sHungUpTime[4];
|
||||
};
|
||||
|
||||
struct dRes_control_c {
|
||||
/* 8003C638 */ void dump();
|
||||
};
|
||||
|
||||
struct JUTConsole {
|
||||
/* 802E7C38 */ void print(char const*);
|
||||
/* 802E7F7C */ void dumpToTerminal(unsigned int);
|
||||
};
|
||||
|
||||
struct JKRHeap {
|
||||
/* 802CE72C */ void getFreeSize();
|
||||
/* 802CE784 */ void getTotalFreeSize();
|
||||
};
|
||||
|
||||
struct JKRAramHeap {
|
||||
/* 802D3218 */ void dump();
|
||||
};
|
||||
|
||||
struct JKRAram {
|
||||
static u8 sAramObject[4];
|
||||
};
|
||||
|
||||
struct JFWSystem {
|
||||
static u8 systemConsole[4];
|
||||
};
|
||||
|
||||
struct DynamicModuleControlBase {
|
||||
/* 80262470 */ void dump();
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" static void print_f__FPCce();
|
||||
extern "C" static void print__FPCc();
|
||||
extern "C" static void dispHeapInfo__Fv();
|
||||
extern "C" static void dispGameInfo__Fv();
|
||||
extern "C" static void dispDateInfo__Fv();
|
||||
extern "C" static void dispConsoleToTerminal__Fv();
|
||||
extern "C" void exception_addition__FP10JUTConsole();
|
||||
extern "C" extern char const* const m_Do_m_Do_machine_exception__stringBase0;
|
||||
extern "C" extern u8 struct_80450C98[4];
|
||||
extern "C" extern u8 struct_80450C9C[4];
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void dump__14dRes_control_cFv();
|
||||
extern "C" void dump__24DynamicModuleControlBaseFv();
|
||||
extern "C" void getFreeSize__7JKRHeapFv();
|
||||
extern "C" void getTotalFreeSize__7JKRHeapFv();
|
||||
extern "C" void dump__11JKRAramHeapFv();
|
||||
extern "C" void print__10JUTConsoleFPCc();
|
||||
extern "C" void JUTConsole_print_f_va_();
|
||||
extern "C" void dumpToTerminal__10JUTConsoleFUi();
|
||||
extern "C" void OSTicksToCalendarTime();
|
||||
extern "C" void _savegpr_23();
|
||||
extern "C" void _restgpr_23();
|
||||
extern "C" u8 COPYDATE_STRING__7mDoMain[18 + 2 /* padding */];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" u8 sPowerOnTime__7mDoMain[4];
|
||||
extern "C" extern u8 data_80450B0C[4];
|
||||
extern "C" u8 sHungUpTime__7mDoMain[4];
|
||||
extern "C" extern u8 data_80450B14[4];
|
||||
extern "C" extern u8 gameHeap[4];
|
||||
extern "C" extern u8 zeldaHeap[4];
|
||||
extern "C" extern u8 archiveHeap[4];
|
||||
extern "C" u8 systemConsole__9JFWSystem[4];
|
||||
extern "C" u8 sAramObject__7JKRAram[4];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450C90-80450C98 000190 0004+04 3/3 0/0 0/0 .sbss sConsole */
|
||||
static u8 sConsole[4 + 4 /* padding */];
|
||||
static JUTConsole* sConsole;
|
||||
|
||||
/* 80017D7C-80017E08 0126BC 008C+00 3/3 0/0 0/0 .text print_f__FPCce */
|
||||
#pragma push
|
||||
@@ -107,107 +44,80 @@ static asm void print_f(char const* param_0, ...) {
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80017E08-80017E30 012748 0028+00 2/2 0/0 0/0 .text print__FPCc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void print(char const* param_0) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_machine_exception/print__FPCc.s"
|
||||
void print(char const* string) {
|
||||
sConsole->print(string);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80374460-80374460 000AC0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80374460 =
|
||||
"--------------------------------------\n";
|
||||
SECTION_DEAD static char const* const stringBase_80374488 = "-- Heap Free / TotalFree (KB) --\n";
|
||||
SECTION_DEAD static char const* const stringBase_803744AA = " Zelda %5d / %5d\n";
|
||||
SECTION_DEAD static char const* const stringBase_803744BD = " Game %5d / %5d\n";
|
||||
SECTION_DEAD static char const* const stringBase_803744D0 = "Archive %5d / %5d\n";
|
||||
SECTION_DEAD static char const* const stringBase_803744E3 = "--------------------------------\n";
|
||||
#pragma pop
|
||||
const char* stringBase_80374460 = "--------------------------------------\n";
|
||||
|
||||
/* 80017E30-80017F8C 012770 015C+00 1/1 0/0 0/0 .text dispHeapInfo__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dispHeapInfo() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_machine_exception/dispHeapInfo__Fv.s"
|
||||
void dispHeapInfo() {
|
||||
JKRExpHeap* zelda = zeldaHeap;
|
||||
JKRExpHeap* game = gameHeap;
|
||||
JKRExpHeap* archive = archiveHeap;
|
||||
|
||||
u32 zeldaFree = zelda->getFreeSize();
|
||||
u32 gameFree = game->getFreeSize();
|
||||
u32 archiveFree = archive->getFreeSize();
|
||||
u32 zeldaTotal = zelda->getTotalFreeSize();
|
||||
u32 gameTotal = game->getTotalFreeSize();
|
||||
u32 archiveTotal = archive->getTotalFreeSize();
|
||||
|
||||
print("-- Heap Free / TotalFree (KB) --\n");
|
||||
print_f(" Zelda %5d / %5d\n", zeldaFree >> 10, zeldaTotal >> 10);
|
||||
print_f(" Game %5d / %5d\n", gameFree >> 10, gameTotal >> 10);
|
||||
print_f("Archive %5d / %5d\n", archiveFree >> 10, archiveTotal >> 10);
|
||||
print("--------------------------------\n");
|
||||
|
||||
if (JKRAram::getAramHeap()) {
|
||||
JKRAram::getAramHeap()->dump();
|
||||
}
|
||||
dump__24DynamicModuleControlBaseFv();
|
||||
g_dComIfG_gameInfo.mResControl.dump();
|
||||
|
||||
zelda->dump_sort();
|
||||
game->dump_sort();
|
||||
archive->dump_sort();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80374460-80374460 000AC0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80374505 = "Start StageName:RoomNo [%s:%d]\n";
|
||||
#pragma pop
|
||||
|
||||
/* 80017F8C-80017FD0 0128CC 0044+00 1/1 0/0 0/0 .text dispGameInfo__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dispGameInfo() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_machine_exception/dispGameInfo__Fv.s"
|
||||
void dispGameInfo() {
|
||||
print_f("Start StageName:RoomNo [%s:%d]\n", dComIfGp_getStartStageName(),
|
||||
dComIfGp_getStartStageRoomNo());
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80374460-80374460 000AC0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80374525 =
|
||||
"------------- Date Infomation ---------\n";
|
||||
SECTION_DEAD static char const* const stringBase_8037454E = " FINAL VERSION\n";
|
||||
SECTION_DEAD static char const* const stringBase_8037455E = "COMPILE USER: FINAL\n";
|
||||
SECTION_DEAD static char const* const stringBase_80374573 = "COPYDATE : %17s\n";
|
||||
SECTION_DEAD static char const* const stringBase_80374586 =
|
||||
"PowerOnTime: %04d/%2d/%2d %2d:%2d:%2d`%03d\"%03d\n";
|
||||
SECTION_DEAD static char const* const stringBase_803745B7 =
|
||||
"HungUpTime : %04d/%2d/%2d %2d:%2d:%2d`%03d\"%03d\n";
|
||||
SECTION_DEAD static char const* const stringBase_803745E8 =
|
||||
"PlayTime : %4d days, %2d:%2d:%2d`%03d\"%03d\n";
|
||||
SECTION_DEAD static char const* const stringBase_80374616 =
|
||||
"---------------------------------------\n";
|
||||
/* @stringBase0 padding */
|
||||
SECTION_DEAD static char const* const pad_8037463F = "";
|
||||
#pragma pop
|
||||
void dispDateInfo() {
|
||||
print("------------- Date Infomation ---------\n");
|
||||
print(" FINAL VERSION\n");
|
||||
print("COMPILE USER: FINAL\n");
|
||||
print_f("COPYDATE : %17s\n", mDoMain::COPYDATE_STRING);
|
||||
|
||||
/* 80017FD0-80018124 012910 0154+00 1/1 0/0 0/0 .text dispDateInfo__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dispDateInfo() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_machine_exception/dispDateInfo__Fv.s"
|
||||
OSCalendarTime time;
|
||||
OSTicksToCalendarTime(mDoMain::sPowerOnTime, &time);
|
||||
print_f("PowerOnTime: %04d/%2d/%2d %2d:%2d:%2d`%03d\"%03d\n", time.year, time.month,
|
||||
time.day_of_month, time.hours, time.minutes, time.seconds, time.milliseconds,
|
||||
time.microseconds);
|
||||
|
||||
OSTicksToCalendarTime(mDoMain::sHungUpTime, &time);
|
||||
print_f("HungUpTime : %04d/%2d/%2d %2d:%2d:%2d`%03d\"%03d\n", time.year, time.month,
|
||||
time.day_of_month, time.hours, time.minutes, time.seconds, time.milliseconds,
|
||||
time.microseconds);
|
||||
|
||||
OSTicksToCalendarTime(mDoMain::sHungUpTime - mDoMain::sPowerOnTime, &time);
|
||||
print_f("PlayTime : %4d days, %2d:%2d:%2d`%03d\"%03d\n", time.year_day, time.hours,
|
||||
time.minutes, time.seconds, time.milliseconds, time.microseconds);
|
||||
print("---------------------------------------\n");
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80018124-8001814C 012A64 0028+00 1/1 0/0 0/0 .text dispConsoleToTerminal__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dispConsoleToTerminal() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_machine_exception/dispConsoleToTerminal__Fv.s"
|
||||
void dispConsoleToTerminal() {
|
||||
JFWSystem::getSystemConsole()->dumpToTerminal(0xFFFFFFFF);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001814C-8001817C 012A8C 0030+00 0/0 1/1 0/0 .text exception_addition__FP10JUTConsole
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void exception_addition(JUTConsole* param_0) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_machine_exception/exception_addition__FP10JUTConsole.s"
|
||||
void exception_addition(JUTConsole* pConsole) {
|
||||
sConsole = pConsole;
|
||||
dispHeapInfo();
|
||||
dispDateInfo();
|
||||
dispConsoleToTerminal();
|
||||
dispGameInfo();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450C98-80450C9C -00001 0004+00 0/0 0/0 50/50 .sbss None */
|
||||
|
||||
+179
-325
@@ -4,65 +4,25 @@
|
||||
//
|
||||
|
||||
#include "m_Do/m_Do_main.h"
|
||||
#include "JSystem/JFramework/JFWSystem.h"
|
||||
#include "JSystem/JKernel/JKRAram.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "JSystem/JUtility/JUTReport.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f_ap/f_ap_game.h"
|
||||
#include "m_Do/m_Do_MemCard.h"
|
||||
#include "m_Do/m_Do_Reset.h"
|
||||
#include "m_Do/m_Do_controller_pad.h"
|
||||
#include "m_Do/m_Do_dvd_thread.h"
|
||||
#include "m_Do/m_Do_graphic.h"
|
||||
#include "msl_c/string.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct mDoRst {
|
||||
static u8 mResetData[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
struct mDoMemCd_Ctrl_c {
|
||||
/* 80016894 */ void update();
|
||||
};
|
||||
|
||||
struct mDoDvdThd_callback_c {
|
||||
/* 80015C74 */ void create(void* (*)(void*), void*);
|
||||
};
|
||||
|
||||
struct dRes_control_c {
|
||||
/* 8003C638 */ void dump();
|
||||
};
|
||||
|
||||
struct dComIfG_inf_c {
|
||||
/* 8002CBE4 */ void ct();
|
||||
};
|
||||
|
||||
struct JUTConsole {
|
||||
/* 802E75EC */ void clear();
|
||||
/* 802E7F7C */ void dumpToTerminal(unsigned int);
|
||||
/* 802E80A8 */ void scroll(int);
|
||||
/* 802E81A8 */ void getLineOffset() const;
|
||||
};
|
||||
|
||||
struct JUTAssertion {
|
||||
/* 802E4C3C */ void setMessageCount(int);
|
||||
};
|
||||
|
||||
struct JKRSolidHeap {
|
||||
/* 802D0A24 */ void create(u32, JKRHeap*, bool);
|
||||
};
|
||||
|
||||
struct JKRAramHeap {
|
||||
/* 802D3134 */ void getFreeSize();
|
||||
/* 802D31AC */ void getTotalFreeSize();
|
||||
/* 802D3218 */ void dump();
|
||||
};
|
||||
|
||||
struct JKRAram {
|
||||
static u8 sAramObject[4];
|
||||
};
|
||||
|
||||
struct JFWSystem {
|
||||
static u8 systemConsole[4];
|
||||
};
|
||||
|
||||
struct DynamicModuleControlBase {
|
||||
/* 80262470 */ void dump();
|
||||
};
|
||||
@@ -71,7 +31,7 @@ struct DynamicModuleControlBase {
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" static void version_check__Fv();
|
||||
extern "C" void version_check__Fv();
|
||||
extern "C" void CheckHeap1__9HeapCheckFv();
|
||||
extern "C" static void CheckHeap__FUl();
|
||||
extern "C" static void countUsed__FP10JKRExpHeap();
|
||||
@@ -79,7 +39,7 @@ extern "C" void getUsedCount__9HeapCheckCFv();
|
||||
extern "C" void heapDisplay__9HeapCheckCFv();
|
||||
extern "C" static void debugDisplay__Fv();
|
||||
extern "C" static void Debug_console__FUl();
|
||||
extern "C" static void LOAD_COPYDATE__FPv();
|
||||
extern "C" void* LOAD_COPYDATE__FPv();
|
||||
extern "C" static void debug__Fv();
|
||||
extern "C" static void main01__Fv();
|
||||
extern "C" void main();
|
||||
@@ -166,13 +126,7 @@ extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" u8 m_gamePad__8mDoCPd_c[16];
|
||||
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
|
||||
extern "C" extern u8 g_mDoMemCd_control[8192];
|
||||
extern "C" extern u8 g_HIO[64 + 4 /* padding */];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_mDoAud_audioHeap[4];
|
||||
extern "C" extern u8 gameHeap[4];
|
||||
extern "C" extern u8 zeldaHeap[4];
|
||||
extern "C" extern u8 archiveHeap[4];
|
||||
extern "C" extern JKRSolidHeap* g_mDoAud_audioHeap;
|
||||
extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */];
|
||||
extern "C" extern u8 struct_80450C80[8];
|
||||
extern "C" u8 systemConsole__9JFWSystem[4];
|
||||
@@ -185,8 +139,8 @@ extern "C" u8 sAramObject__7JKRAram[4];
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
static void version_check() {
|
||||
if ((!strcmp("20Apr2004", "20Apr2004")) && (!strcmp("Patch2", "Patch2"))) {
|
||||
void version_check() {
|
||||
if (!strcmp("20Apr2004", "20Apr2004") && !strcmp("Patch2", "Patch2")) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -235,30 +189,7 @@ extern "C" HeapCheck HostioHeapCheck;
|
||||
extern "C" HeapCheck CommandHeapCheck;
|
||||
|
||||
/* 803A2EE0-803A2EF4 000000 0012+02 2/2 1/1 0/0 .data COPYDATE_STRING__7mDoMain */
|
||||
// "??/??/?? ??:??:?"
|
||||
SECTION_DATA u8 mDoMain::COPYDATE_STRING[18 + 2 /* padding */] = {
|
||||
0x3F,
|
||||
0x3F,
|
||||
0x2F,
|
||||
0x3F,
|
||||
0x3F,
|
||||
0x2F,
|
||||
0x3F,
|
||||
0x3F,
|
||||
0x20,
|
||||
0x3F,
|
||||
0x3F,
|
||||
0x3A,
|
||||
0x3F,
|
||||
0x3F,
|
||||
0x3A,
|
||||
0x3F,
|
||||
0x3F,
|
||||
0x00,
|
||||
/* padding */
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
SECTION_DATA char mDoMain::COPYDATE_STRING[18] = "??/??/?? ??:??:??";
|
||||
|
||||
/* 803A2EF4-803A2F14 -00001 0020+00 1/2 0/0 0/0 .data HeapCheckTable */
|
||||
SECTION_DATA static HeapCheck* HeapCheckTable[8] = {
|
||||
@@ -291,41 +222,26 @@ static HeapCheck HostioHeapCheck;
|
||||
static HeapCheck CommandHeapCheck;
|
||||
|
||||
/* 8000578C-80005848 0000CC 00BC+00 1/1 0/0 0/0 .text CheckHeap__FUl */
|
||||
#ifdef NONMATCHING
|
||||
void CheckHeap(u32 controller_pad_no) {
|
||||
void CheckHeap(u32 i_padNo) {
|
||||
mDoMch_HeapCheckAll__Fv();
|
||||
OSCheckActiveThreads();
|
||||
|
||||
bool unk = false;
|
||||
bool comboCheck = false;
|
||||
|
||||
// if L + R + Z is pressed...
|
||||
if (((m_cpadInfo[controller_pad_no].mButtonFlags & ~0x10) == 0x60) &&
|
||||
m_cpadInfo[controller_pad_no].mPressedButtonFlags & 0x10) {
|
||||
unk = true;
|
||||
if ((mDoCPd_c::getHold(i_padNo) & ~CButton::Z) == (CButton::L + CButton::R) &&
|
||||
mDoCPd_c::getTrig(i_padNo) & CButton::Z) {
|
||||
comboCheck = true;
|
||||
}
|
||||
|
||||
int unk2 = comboCheck;
|
||||
for (int i = 0; i < 8; i++) {
|
||||
HeapCheckTable[i]->CheckHeap1();
|
||||
if (unk) {
|
||||
HeapCheck* currentHeap = HeapCheckTable[i];
|
||||
s32 used_count = currentHeap->getUsedCount();
|
||||
|
||||
currentHeap->getUsedCountRef() = used_count;
|
||||
used_count = currentHeap->getHeap()->getTotalUsedSize();
|
||||
currentHeap->getTotalUsedSizeRef() = used_count;
|
||||
if (unk2) {
|
||||
HeapCheckTable[i]->saveRelBase();
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void CheckHeap(u32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_main/CheckHeap__FUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
static int countUsed(JKRExpHeap* heap) {
|
||||
OSDisableScheduler();
|
||||
@@ -393,54 +309,39 @@ SECTION_DEAD static char const* const stringBase_80373B4C = "%10d";
|
||||
/* 803A2F14-803A2F28 -00001 0014+00 0/1 0/0 0/0 .data desc1$3717 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* desc1[5] = {
|
||||
(void*)(((char*)&m_Do_m_Do_main__stringBase0) + 0x14F),
|
||||
(void*)(((char*)&m_Do_m_Do_main__stringBase0) + 0x150),
|
||||
(void*)(((char*)&m_Do_m_Do_main__stringBase0) + 0x15A),
|
||||
(void*)(((char*)&m_Do_m_Do_main__stringBase0) + 0x164),
|
||||
(void*)(((char*)&m_Do_m_Do_main__stringBase0) + 0x16E),
|
||||
SECTION_DATA static char* desc1[5] = {
|
||||
"", "TotalFree", "MaxUsed ", "Used ", "RelUsed ",
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 803A2F28-803A2F40 -00001 0014+04 0/1 0/0 0/0 .data desc2$3718 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* desc2[5 + 1 /* padding */] = {
|
||||
(void*)(((char*)&m_Do_m_Do_main__stringBase0) + 0x14F),
|
||||
(void*)(((char*)&m_Do_m_Do_main__stringBase0) + 0x178),
|
||||
(void*)(((char*)&m_Do_m_Do_main__stringBase0) + 0x182),
|
||||
(void*)(((char*)&m_Do_m_Do_main__stringBase0) + 0x18C),
|
||||
(void*)(((char*)&m_Do_m_Do_main__stringBase0) + 0x18C),
|
||||
/* padding */
|
||||
NULL,
|
||||
SECTION_DATA static char* desc2[5] = {
|
||||
"", "/ MaxFree", "/HeapSize", "Blk/Bytes", "Blk/Bytes",
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80450580-80450584 000000 0004+00 3/3 6/6 0/0 .sdata None */
|
||||
SECTION_SDATA extern s8 data_80450580 = 0xFF;
|
||||
SECTION_SDATA s8 data_80450580 = 0xFF;
|
||||
|
||||
/* 80450584-80450588 000004 0004+00 0/0 1/1 0/0 .sdata memMargin__7mDoMain */
|
||||
SECTION_SDATA u32 mDoMain::memMargin = 0xFFFFFFFF;
|
||||
|
||||
/* 80450588-80450590 000008 0008+00 2/2 0/0 0/0 .sdata None */
|
||||
// 0x04 is mDoMain::mHeapBriefType
|
||||
SECTION_SDATA static u8 data_80450588[8] = {
|
||||
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
/* 80450B00-80450B08 000000 0008+00 1/1 0/0 0/0 .sbss None */
|
||||
static u8 data_80450B00[8];
|
||||
static u8 data_80450B00;
|
||||
|
||||
/* 80450B08-80450B0C 000008 0004+00 1/1 1/1 0/0 .sbss sPowerOnTime__7mDoMain */
|
||||
// should be OSTime
|
||||
u8 mDoMain::sPowerOnTime[4];
|
||||
extern u8 data_80450B0C[4];
|
||||
u8 data_80450B0C[4];
|
||||
OSTime mDoMain::sPowerOnTime;
|
||||
|
||||
/* 80450B10-80450B14 000010 0004+00 0/0 2/2 0/0 .sbss sHungUpTime__7mDoMain */
|
||||
// should be OSTime
|
||||
u8 mDoMain::sHungUpTime[4];
|
||||
extern u8 data_80450B14[4];
|
||||
u8 data_80450B14[4];
|
||||
OSTime mDoMain::sHungUpTime;
|
||||
|
||||
/* 80450B18-80450B1C -00001 0004+00 3/3 0/0 0/0 .sbss None */
|
||||
/* 80450B18 0001+00 data_80450B18 None */
|
||||
@@ -456,33 +357,29 @@ static u8 data_80450B1B;
|
||||
void debugDisplay(void) {
|
||||
int tmp1;
|
||||
int tmp2;
|
||||
HeapCheck** hct = (HeapCheck**)lbl_803A2EE0;
|
||||
|
||||
if (lbl_80450B19 >= 1 && lbl_80450B19 <= 6) {
|
||||
hct[lbl_80450B19 - 1]->heapDisplay();
|
||||
if (struct_80450B18[1] >= 1 && struct_80450B18[1] <= 6) {
|
||||
HeapCheckTable[struct_80450B18[1]]->heapDisplay();
|
||||
}
|
||||
|
||||
if (lbl_80450588 == 5) {
|
||||
JKRAramHeap* heap = sAramObject__7JKRAram->getAramHeap();
|
||||
if (data_80450588[0] == 5) {
|
||||
JKRAramHeap* heap = JKRAram::getAramHeap();
|
||||
if (heap) {
|
||||
JUTReport(0x1db, 100, lbl_803739A0 + 0x196);
|
||||
JUTReport(0x1db, 0x72, lbl_803739A0 + 0x1A0, heap->getFreeSize());
|
||||
JUTReport(0x1db, 0x80, lbl_803739A0 + 0x150);
|
||||
JUTReport(0x1db, 0x8e, lbl_803739A0 + 0x1A0, heap->getTotalFreeSize());
|
||||
JUTReport(0x1db, 100, "ARAM Free");
|
||||
JUTReport(0x1db, 0x72, "%d", heap->getFreeSize());
|
||||
JUTReport(0x1db, 0x80, "TotalFree");
|
||||
JUTReport(0x1db, 0x8e, "%d", heap->getTotalFreeSize());
|
||||
}
|
||||
|
||||
} else {
|
||||
if (lbl_80450588) {
|
||||
JUTReport(0x1db, 100, lbl_803739A0 + 0x1A3, lbl_803A2F14[lbl_80450588]);
|
||||
JUTReport(0x1db, 0x72, lbl_803739A0 + 0x1A3, lbl_803A2F28[lbl_80450588]);
|
||||
if (data_80450588[0] != 0) {
|
||||
JUTReport(0x1db, 100, "%s", desc1[data_80450588[0]]);
|
||||
JUTReport(0x1db, 0x72, "%s", lbl_803A2F28[data_80450588[0]]);
|
||||
|
||||
int k = 0;
|
||||
for (int i = 0; i < 8; i++, k += 0x2c) {
|
||||
// heap check table stuff
|
||||
HeapCheck* heap_check;
|
||||
heap_check = HeapCheckTable[i];
|
||||
for (int i = 0; i < 8; i++, k += 0x2C) {
|
||||
HeapCheck* heap_check = HeapCheckTable[i];
|
||||
|
||||
switch (lbl_80450588) {
|
||||
switch (data_80450588[0]) {
|
||||
case 3: {
|
||||
tmp1 = heap_check->getUsedCount();
|
||||
tmp2 = heap_check->getHeap()->getTotalUsedSize();
|
||||
@@ -505,9 +402,9 @@ void debugDisplay(void) {
|
||||
break;
|
||||
}
|
||||
|
||||
JUTReport(0x1db, k + 0x96, lbl_80373B46, heap_check->getNames()[0]);
|
||||
JUTReport(0x1db, k + 0xA4, lbl_80373B4C, tmp1);
|
||||
JUTReport(0x1db, k + 0xB2, lbl_80373B4C, tmp2);
|
||||
JUTReport(0x1db, k + 0x96, " [%s]", heap_check->getName());
|
||||
JUTReport(0x1db, k + 0xA4, "%10d", tmp1);
|
||||
JUTReport(0x1db, k + 0xB2, "%10d", tmp2);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -542,19 +439,19 @@ SECTION_DEAD static char const* const stringBase_80373BFB =
|
||||
static f32 console_position_x;
|
||||
|
||||
/* 80450B20-80450B24 000020 0004+00 1/1 0/0 0/0 .sbss None */
|
||||
static u8 data_80450B20[4];
|
||||
static s8 data_80450B20;
|
||||
|
||||
/* 80450B24-80450B28 000024 0004+00 1/1 0/0 0/0 .sbss console_position_y$3779 */
|
||||
static f32 console_position_y;
|
||||
|
||||
/* 80450B28-80450B2C 000028 0004+00 1/1 0/0 0/0 .sbss None */
|
||||
static u8 data_80450B28[4];
|
||||
static s8 data_80450B28;
|
||||
|
||||
/* 80450B2C-80450B30 00002C 0004+00 1/1 0/0 0/0 .sbss console_scroll$3782 */
|
||||
static f32 console_scroll;
|
||||
|
||||
/* 80450B30-80450B34 000030 0004+00 1/1 0/0 0/0 .sbss None */
|
||||
static u8 data_80450B30[4];
|
||||
static s8 data_80450B30;
|
||||
|
||||
/* 80451A00-80451A04 000000 0004+00 1/1 0/0 0/0 .sdata2 @3884 */
|
||||
SECTION_SDATA2 static f32 lit_3884 = 20.0f;
|
||||
@@ -584,119 +481,112 @@ SECTION_SDATA2 static f32 lit_3888[1 + 1 /* padding */] = {
|
||||
SECTION_SDATA2 static f64 lit_3890 = 4503601774854144.0 /* cast s32 to float */;
|
||||
|
||||
/* 80005D4C-8000614C 00068C 0400+00 1/1 0/0 0/0 .text Debug_console__FUl */
|
||||
// middle section has lots of issues
|
||||
#ifdef NONMATCHING
|
||||
void Debug_console(u32 controller_pad_no) {
|
||||
bool Debug_console(u32 i_padNo) {
|
||||
float tmp2;
|
||||
float tmp3;
|
||||
int tmp6;
|
||||
|
||||
// systemConsole
|
||||
if (lbl_804511B8) {
|
||||
if (!lbl_80450B20) {
|
||||
lbl_80450B1C = lbl_80451A00;
|
||||
lbl_80450B20 = 1;
|
||||
JUTConsole* console = JFWSystem::getSystemConsole();
|
||||
if (console) {
|
||||
if (!data_80450B20) {
|
||||
console_position_x = 20.0f;
|
||||
data_80450B20 = 1;
|
||||
}
|
||||
if (!data_80450B28) {
|
||||
console_position_y = 30.0f;
|
||||
data_80450B28 = 1;
|
||||
}
|
||||
if (!data_80450B30) {
|
||||
console_scroll = 0.0f;
|
||||
data_80450B30 = 1;
|
||||
}
|
||||
|
||||
if (!lbl_80450B28) {
|
||||
lbl_80450B24 = lbl_80451A04;
|
||||
lbl_80450B28 = 1;
|
||||
}
|
||||
if (!lbl_80450B30) {
|
||||
lbl_80450B2C = lbl_80451A08;
|
||||
lbl_80450B30 = 1;
|
||||
}
|
||||
|
||||
u32 tmp5 = m_cpadInfo[controller_pad_no].mPressedButtonFlags;
|
||||
|
||||
if ((m_cpadInfo[controller_pad_no].mPressedButtonFlags & 0x10) &&
|
||||
!(m_cpadInfo[controller_pad_no].mButtonFlags & ~0x10)) {
|
||||
lbl_804511B8->field_0x68 = !lbl_804511B8->field_0x68;
|
||||
if (mDoCPd_c::getTrig(i_padNo) & CButton::Z &&
|
||||
!(mDoCPd_c::getHold(i_padNo) & ~CButton::Z)) {
|
||||
bool visible = console->isVisible() == false;
|
||||
console->setVisible(visible);
|
||||
JUTAssertion::setMessageCount(0);
|
||||
}
|
||||
|
||||
if (lbl_804511B8->field_0x68) {
|
||||
u32 tmp = m_cpadInfo[controller_pad_no].mButtonFlags;
|
||||
|
||||
if (console->isVisible()) {
|
||||
// if R and L are pressed
|
||||
if ((tmp & CButton::R && tmp & CButton::L) ||
|
||||
((lbl_80451A08 > m_cpadInfo[controller_pad_no].mTriggerLeft) &&
|
||||
(lbl_80451A08 > m_cpadInfo[controller_pad_no].mTriggerRight))) {
|
||||
tmp2 = m_cpadInfo[controller_pad_no].mMainStickPosX;
|
||||
tmp3 = m_cpadInfo[controller_pad_no].mMainStickPosY;
|
||||
|
||||
// if x buttons are pressed, clear the console
|
||||
if (tmp & (CButton::Y | CButton::START) && tmp5 & CButton::START) {
|
||||
lbl_804511B8->clear();
|
||||
if ((mDoCPd_c::getHold(i_padNo) & CButton::L &&
|
||||
mDoCPd_c::getHold(i_padNo) & CButton::R) ||
|
||||
((mDoCPd_c::getAnalogL(i_padNo) > 0.0f &&
|
||||
(0.0f > mDoCPd_c::getAnalogR(i_padNo))))) {
|
||||
if (mDoCPd_c::getTrig(i_padNo) & (CButton::Y | CButton::X) &&
|
||||
mDoCPd_c::getTrig(i_padNo) & CButton::START) {
|
||||
console->clear();
|
||||
}
|
||||
|
||||
u32 tmp = m_cpadInfo[controller_pad_no].mButtonFlags;
|
||||
|
||||
if (!(tmp & (CButton::Y | CButton::START))) {
|
||||
if (!(mDoCPd_c::getHold(i_padNo) & (CButton::Y | CButton::X))) {
|
||||
// subtract console scroll value from stick Y
|
||||
float tmp4 = lbl_80450B2C;
|
||||
lbl_80450B2C = tmp4 - tmp3;
|
||||
if (lbl_80450B2C <= lbl_80451A0C) {
|
||||
lbl_80451A10 <= lbl_80450B2C ? tmp = 0 : tmp = lbl_80451A0C;
|
||||
console_scroll -= mDoCPd_c::getStickY(i_padNo);
|
||||
int tmp;
|
||||
if (1.0f <= console_scroll) {
|
||||
-1.0f <= console_scroll ? tmp = 0 : tmp = -console_scroll;
|
||||
} else {
|
||||
tmp = (tmp4 - tmp3);
|
||||
tmp = mDoCPd_c::getStickX(i_padNo) - mDoCPd_c::getStickY(i_padNo);
|
||||
}
|
||||
|
||||
if (tmp) {
|
||||
lbl_80450B2C -= (tmp ^ 0x80000000) - 4503601774854144.00000000;
|
||||
lbl_804511B8->scroll(tmp);
|
||||
console_scroll -= tmp;
|
||||
console->scroll(tmp);
|
||||
}
|
||||
} else {
|
||||
if (tmp & CButton::X) {
|
||||
lbl_80450B2C += tmp2;
|
||||
if (mDoCPd_c::getHold(i_padNo) & CButton::X) {
|
||||
console_position_x += mDoCPd_c::getStickX(i_padNo);
|
||||
}
|
||||
|
||||
if (tmp & CButton::Y) {
|
||||
lbl_80450B2C -= tmp3;
|
||||
if (mDoCPd_c::getHold(i_padNo) & CButton::Y) {
|
||||
console_position_y -= mDoCPd_c::getStickY(i_padNo);
|
||||
}
|
||||
}
|
||||
|
||||
if (tmp5 & CButton::A) {
|
||||
lbl_804511B8->dumpToTerminal(0xFFFFFFFF);
|
||||
lbl_804511B8->field_0x58 = 3;
|
||||
if (mDoCPd_c::getTrig(i_padNo) & CButton::A) {
|
||||
console->dumpToTerminal(0xFFFFFFFF);
|
||||
console->setOutput(3);
|
||||
}
|
||||
|
||||
JUTReport(0x1E, 0x186, 1, lbl_80373B51);
|
||||
JUTReport(0x1E, 400, 1, lbl_80373B73);
|
||||
JUTReport(0x1E, 0x19A, 1, lbl_80373B8D);
|
||||
tmp6 = lbl_804511B8->getLineOffset();
|
||||
JUTReport(0x1E, 0x1A4, 1, lbl_80373BB6, tmp6, lbl_804511B8->field_0x40,
|
||||
lbl_804511B8->field_0x44, lbl_804511B8->field_0x58);
|
||||
JUTReport(0x1E, 0x186, 1, "Press X+Y+START to CLEAR console.");
|
||||
JUTReport(0x1E, 400, 1, "3DStick UP/Down to scroll");
|
||||
JUTReport(0x1E, 0x19A, 1, "Press A to output terminal from console.");
|
||||
JUTReport(0x1E, 0x1A4, 1, "SCROLL:%3d %3d %3d Output=%1x",
|
||||
console->getLineOffset(), console->getPositionX(),
|
||||
console->getPositionY(), console->getOutput());
|
||||
}
|
||||
} else {
|
||||
if (tmp5 & 4) {
|
||||
g_HIO.field_0x15 ^= 1;
|
||||
if (mDoCPd_c::getTrig(i_padNo) & CButton::DPAD_DOWN) {
|
||||
g_HIO.mDisplayMeter ^= 1;
|
||||
}
|
||||
|
||||
if (tmp5 & 1) {
|
||||
if (sAramObject__7JKRAram->getAramHeap()) {
|
||||
sAramObject__7JKRAram->getAramHeap()->dump();
|
||||
if (mDoCPd_c::getTrig(i_padNo) & CButton::DPAD_LEFT) {
|
||||
if (JKRAram::getAramHeap()) {
|
||||
JKRAram::getAramHeap()->dump();
|
||||
}
|
||||
|
||||
dump__24DynamicModuleControlBaseFv();
|
||||
dump__14dRes_control_cFv();
|
||||
g_dComIfG_gameInfo.mResControl.dump();
|
||||
}
|
||||
|
||||
if (tmp5 & 2) {
|
||||
sSystemHeap__7JKRHeap->dump_sort();
|
||||
if (mDoCPd_c::getTrig(i_padNo) & CButton::DPAD_RIGHT) {
|
||||
JKRHeap::getSystemHeap()->dump_sort();
|
||||
}
|
||||
|
||||
if (tmp5 & 8) {
|
||||
lbl_80450C2C->dump_sort();
|
||||
lbl_80450C28->dump_sort();
|
||||
lbl_80450C34->dump_sort();
|
||||
if (mDoCPd_c::getTrig(i_padNo) & CButton::DPAD_UP) {
|
||||
zeldaHeap->dump_sort();
|
||||
gameHeap->dump_sort();
|
||||
archiveHeap->dump_sort();
|
||||
}
|
||||
JUTReport(0x1E, 0x1B8, 1, lbl_80373BD5);
|
||||
JUTReport(0x1E, 0x1C2, 1, lbl_80373BFB);
|
||||
JUTReport(0x1E, 0x1B8, 1, "Press L+R trigger to control console.");
|
||||
JUTReport(0x1E, 0x1C2, 1, "Press [Z] trigger to close this window.");
|
||||
}
|
||||
lbl_804511B8->field_0x40 = lbl_80450B1C;
|
||||
lbl_804511B8->field_0x44 = lbl_80450B24;
|
||||
tmp6 = 1;
|
||||
console->setPosition(console_position_x, console_position_y);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
@@ -728,7 +618,7 @@ s32 LOAD_COPYDATE(void*) {
|
||||
|
||||
if (status) {
|
||||
DVDReadPrio((DVDFileInfo*)fileInfo, &buffer, 32, 0, 2);
|
||||
memcpy(lbl_803A2EE0, buffer, 17);
|
||||
memcpy(mDoMain::COPYDATE_STRING, buffer, 17);
|
||||
status = DVDClose((DVDFileInfo*)fileInfo);
|
||||
}
|
||||
return status;
|
||||
@@ -737,7 +627,7 @@ s32 LOAD_COPYDATE(void*) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void LOAD_COPYDATE(void* param_0) {
|
||||
asm void* LOAD_COPYDATE(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_main/LOAD_COPYDATE__FPv.s"
|
||||
}
|
||||
@@ -750,14 +640,14 @@ static void debug() {
|
||||
CheckHeap(2);
|
||||
}
|
||||
|
||||
if (((mDoCPd_c::m_gamePad[2]->buttons.mButtonFlags & ~0x10) == 0x20) &&
|
||||
(mDoCPd_c::m_gamePad[2]->buttons.mPressedButtonFlags & 0x10)) {
|
||||
if ((mDoCPd_c::getGamePad(2)->getButton() & ~CButton::Z) == CButton::R &&
|
||||
mDoCPd_c::getGamePad(2)->testTrigger(CButton::Z)) {
|
||||
struct_80450B18[0] ^= 0x1;
|
||||
}
|
||||
|
||||
if (struct_80450B18[0]) {
|
||||
if (((mDoCPd_c::m_gamePad[2]->buttons.mButtonFlags & ~0x10) == 0x40) &&
|
||||
(mDoCPd_c::m_gamePad[2]->buttons.mPressedButtonFlags & 0x10)) {
|
||||
if ((mDoCPd_c::getGamePad(2)->getButton() & ~CButton::Z) == CButton::L &&
|
||||
mDoCPd_c::getGamePad(2)->testTrigger(CButton::Z)) {
|
||||
data_80450588[0] < 0x5 ? data_80450588[0]++ : data_80450588[0] = 0x1;
|
||||
}
|
||||
|
||||
@@ -770,106 +660,83 @@ static void debug() {
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450B34-80450B38 000034 0004+00 1/1 0/0 0/0 .sbss frame$3939 */
|
||||
static u8 frame[4];
|
||||
static u32 frame;
|
||||
|
||||
/* 8000628C-80006454 000BCC 01C8+00 1/1 0/0 0/0 .text main01__Fv */
|
||||
// almost
|
||||
#ifdef NONMATCHING
|
||||
void main01(void) {
|
||||
HeapCheck* heaps = lbl_803D32E0;
|
||||
|
||||
mDoMch_Create__Fv();
|
||||
mDoGph_Create();
|
||||
create__8mDoCPd_cFv();
|
||||
mDoCPd_c::create();
|
||||
|
||||
// mDoDVDThd_callback_c thread_callback;
|
||||
// JKRSolidHeap audio_heap;
|
||||
|
||||
// Root Heap
|
||||
heaps[0].setHeap((JKRExpHeap*)JKRHeap::getRootHeap());
|
||||
RootHeapCheck.setHeap((JKRExpHeap*)JKRHeap::getRootHeap());
|
||||
if (JKRHeap::getRootHeap()) {
|
||||
heaps[0].setHeapSize(JKRHeap::getRootHeap()->getSize());
|
||||
RootHeapCheck.setHeapSize(JKRHeap::getRootHeap()->getSize());
|
||||
}
|
||||
|
||||
// System Heap
|
||||
heaps[1].setHeap((JKRExpHeap*)JKRHeap::getSystemHeap());
|
||||
SystemHeapCheck.setHeap((JKRExpHeap*)JKRHeap::getSystemHeap());
|
||||
if (JKRHeap::getSystemHeap()) {
|
||||
heaps[1].setHeapSize(JKRHeap::getSystemHeap()->getSize());
|
||||
SystemHeapCheck.setHeapSize(JKRHeap::getSystemHeap()->getSize());
|
||||
}
|
||||
|
||||
// Zelda Heap
|
||||
heaps[2].setHeap(mDoExt_getZeldaHeap());
|
||||
if (heaps[2].getHeap()) {
|
||||
heaps[2].setHeapSize(heaps[2].getHeap()->getSize());
|
||||
ZeldaHeapCheck.setHeap(mDoExt_getZeldaHeap());
|
||||
if (ZeldaHeapCheck.getHeap()) {
|
||||
ZeldaHeapCheck.setHeapSize(ZeldaHeapCheck.getHeap()->getSize());
|
||||
}
|
||||
|
||||
// Game Heap
|
||||
heaps[3].setHeap(mDoExt_getGameHeap());
|
||||
if (heaps[3].getHeap()) {
|
||||
heaps[3].setHeapSize(heaps[3].getHeap()->getSize());
|
||||
GameHeapCheck.setHeap(mDoExt_getGameHeap());
|
||||
if (GameHeapCheck.getHeap()) {
|
||||
GameHeapCheck.setHeapSize(GameHeapCheck.getHeap()->getSize());
|
||||
}
|
||||
|
||||
// Archive Heap
|
||||
heaps[4].setHeap(mDoExt_getArchiveHeap());
|
||||
if (heaps[4].getHeap()) {
|
||||
heaps[4].setHeapSize(heaps[4].getHeap()->getSize());
|
||||
ArchiveHeapCheck.setHeap(mDoExt_getArchiveHeap());
|
||||
if (ArchiveHeapCheck.getHeap()) {
|
||||
ArchiveHeapCheck.setHeapSize(ArchiveHeapCheck.getHeap()->getSize());
|
||||
}
|
||||
|
||||
// J2D Heap
|
||||
heaps[5].setHeap(mDoExt_getJ2dHeap());
|
||||
if (heaps[5].getHeap()) {
|
||||
heaps[5].setHeapSize(heaps[5].getHeap()->getSize());
|
||||
J2dHeapCheck.setHeap(mDoExt_getJ2dHeap());
|
||||
if (J2dHeapCheck.getHeap()) {
|
||||
J2dHeapCheck.setHeapSize(J2dHeapCheck.getHeap()->getSize());
|
||||
}
|
||||
|
||||
// HostIO Heap
|
||||
heaps[6].setHeap(mDoExt_getHostIOHeap());
|
||||
if (heaps[6].getHeap()) {
|
||||
heaps[6].setHeapSize(heaps[6].getHeap()->getSize());
|
||||
HostioHeapCheck.setHeap(mDoExt_getHostIOHeap());
|
||||
if (HostioHeapCheck.getHeap()) {
|
||||
HostioHeapCheck.setHeapSize(HostioHeapCheck.getHeap()->getSize());
|
||||
}
|
||||
|
||||
// Command Heap
|
||||
heaps[7].setHeap(mDoExt_getCommandHeap());
|
||||
|
||||
JUTConsole* systemConsole = lbl_804511B8;
|
||||
|
||||
if (heaps[7].getHeap()) {
|
||||
heaps[7].setHeapSize(heaps[7].getHeap()->getSize());
|
||||
CommandHeapCheck.setHeap(mDoExt_getCommandHeap());
|
||||
if (CommandHeapCheck.getHeap()) {
|
||||
CommandHeapCheck.setHeapSize(CommandHeapCheck.getHeap()->getSize());
|
||||
}
|
||||
|
||||
u32 unk = 0;
|
||||
if (lbl_80450580) {
|
||||
unk = 3;
|
||||
JUTConsole* console = JFWSystem::getSystemConsole();
|
||||
if (data_80450580 != 0) {
|
||||
console->setOutput(3);
|
||||
}
|
||||
|
||||
systemConsole->field_0x58 = unk;
|
||||
systemConsole->field_0x40 = 0x20;
|
||||
systemConsole->field_0x44 = 0x2A;
|
||||
console->setPosition(32, 42);
|
||||
|
||||
// lol
|
||||
mDoDVDThd_callback_c::create(LOAD_COPYDATE, 0);
|
||||
fapGm_Create();
|
||||
fopAcM_initManager();
|
||||
lbl_80450B18 = 0;
|
||||
mDoDvdThd_callback_c::create(LOAD_COPYDATE, NULL);
|
||||
fapGm_Create__Fv();
|
||||
fopAcM_initManager__Fv();
|
||||
struct_80450B18[0] = 0;
|
||||
cDyl_InitAsync__Fv();
|
||||
|
||||
// g_mDoAud_audioHeap
|
||||
g_mDoAud_audioHeap = JKRSolidHeap::create(0x14D800, JKRHeap::getCurrentHeap(), false);
|
||||
|
||||
lbl_80450BBC = JKRSolidHeap::create(0x14d800, JKRHeap::getCurrentHeap(), false);
|
||||
|
||||
// main loop
|
||||
do {
|
||||
// global frame counter?
|
||||
lbl_80450B34++;
|
||||
frame++;
|
||||
|
||||
if (lbl_80450B00 && (lbl_80450B34 == ((lbl_80450B34 / lbl_80450B00) * lbl_80450B00))) {
|
||||
if (data_80450B00 && frame == data_80450B00 * (frame / data_80450B00)) {
|
||||
mDoMch_HeapCheckAll__Fv();
|
||||
}
|
||||
|
||||
if (lbl_80450C80) {
|
||||
update__15mDoMemCd_Ctrl_cFv();
|
||||
if (struct_80450C80[0]) {
|
||||
g_mDoMemCd_control.update();
|
||||
}
|
||||
mDoCPd_c_NS_read();
|
||||
fapGm_Execute();
|
||||
mDoAud_Execute();
|
||||
mDoCPd_c::read();
|
||||
fapGm_Execute__Fv();
|
||||
mDoAud_Execute__Fv();
|
||||
debug();
|
||||
} while (true);
|
||||
}
|
||||
@@ -889,30 +756,28 @@ static asm void main01() {
|
||||
static u8 mainThreadStack[32768];
|
||||
|
||||
/* 803DB420-803DB740 008140 0318+08 1/1 0/0 0/0 .bss mainThread */
|
||||
static u8 mainThread[792 + 8 /* padding */];
|
||||
static OSThread mainThread;
|
||||
|
||||
/* 80006454-800065D8 000D94 0184+00 0/0 1/1 0/0 .text main */
|
||||
#ifdef NONMATCHING
|
||||
void main() {
|
||||
u32 resetCode;
|
||||
OSThread* current_thread = OSGetCurrentThread();
|
||||
OSPriority* priority;
|
||||
u8* stack = &mainThreadStack[0];
|
||||
mDoMain::sPowerOnTime = OSGetTime();
|
||||
OSReportInit();
|
||||
version_check();
|
||||
mDoRstData* reset_data = (mDoRstData*)OSAllocFromArenaLo(0x18, 4);
|
||||
mDoRst::setResetData(reset_data);
|
||||
|
||||
if (!mDoRst::getResetData()) {
|
||||
if (!mDoRst::i_getResetData()) {
|
||||
do {
|
||||
} while (true);
|
||||
}
|
||||
|
||||
if (!(OSGetResetCode() & 0x80000000)) {
|
||||
if (!(OSGetResetCode() >> 0x1F)) {
|
||||
mDoRst::offReset();
|
||||
mDoRst::offResetPrepare();
|
||||
mDoRst::off3ButtonReset();
|
||||
mDoRst::off3ButtonResetPort(-1);
|
||||
mDoRst::set3ButtonResetPort(-1);
|
||||
mDoRst::setLogoScnFlag(0);
|
||||
mDoRst::setProgSeqFlag(0);
|
||||
mDoRst::setProgChgFlag(0);
|
||||
@@ -921,39 +786,28 @@ void main() {
|
||||
mDoRst::offReturnToMenu();
|
||||
}
|
||||
|
||||
dComIfG_ct();
|
||||
g_dComIfG_gameInfo.ct();
|
||||
|
||||
if (data_80450580 < 0) {
|
||||
DVDDiskID* disk_id = DVDGetCurrentDiskID();
|
||||
|
||||
if (disk_id->game_version <= 0x90) {
|
||||
if (disk_id->game_version <= 0x80) {
|
||||
data_80450580 = 0;
|
||||
} else {
|
||||
resetCode = OSGetConsoleType();
|
||||
data_80450580 = (-(resetCode & 0x10000000) >> 0x1f);
|
||||
}
|
||||
} else {
|
||||
if (disk_id->game_version > 0x90) {
|
||||
data_80450580 = 1;
|
||||
} else if (disk_id->game_version > 0x80) {
|
||||
u32 consoleType = OSGetConsoleType();
|
||||
data_80450580 = (consoleType >> 0x1c) & 1;
|
||||
} else {
|
||||
data_80450580 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
priority = OSGetThreadPriority(current_thread);
|
||||
OSCreateThread(&mainThread, main01, 0, &mainThread, 0x8000, priority, 0);
|
||||
s32 priority = OSGetThreadPriority(current_thread);
|
||||
OSCreateThread(&mainThread, main01, 0, stack + sizeof(mainThreadStack), sizeof(mainThreadStack),
|
||||
priority, 0);
|
||||
OSResumeThread(&mainThread);
|
||||
OSSetThreadPriority(current_thread, 0x1F);
|
||||
OSSuspendThread(current_thread);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void main() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_main/main.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 800065D8-800065E0 000F18 0008+00 0/0 2/0 0/0 .text dump_sort__7JKRHeapFv */
|
||||
bool JKRHeap::dump_sort() {
|
||||
|
||||
+136
-185
@@ -11,45 +11,6 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct csXyz {};
|
||||
|
||||
struct Quaternion {};
|
||||
|
||||
struct Vec {};
|
||||
|
||||
struct cXyz {
|
||||
/* 80266B34 */ void operator-(Vec const&) const;
|
||||
/* 80266CBC */ void outprod(Vec const&) const;
|
||||
/* 80266EF4 */ void normalize();
|
||||
/* 80266FDC */ void normalizeRS();
|
||||
};
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
/* 8000CCC8 */ void push();
|
||||
/* 8000CD14 */ void pop();
|
||||
/* 8000CD64 */ void transS(cXyz const&);
|
||||
/* 8000CDD4 */ void transM(cXyz const&);
|
||||
/* 8000CD9C */ void transM(f32, f32, f32);
|
||||
/* 8000CE00 */ void scaleS(cXyz const&);
|
||||
/* 8000CE70 */ void scaleM(cXyz const&);
|
||||
/* 8000CE38 */ void scaleM(f32, f32, f32);
|
||||
/* 8000CE9C */ void XYZrotS(csXyz const&);
|
||||
/* 8000CED4 */ void XYZrotM(csXyz const&);
|
||||
/* 8000CF0C */ void ZXYrotS(csXyz const&);
|
||||
/* 8000CF44 */ void ZXYrotM(csXyz const&);
|
||||
/* 8000CF7C */ void quatM(Quaternion const*);
|
||||
/* 8000D070 */ ~mDoMtx_stack_c();
|
||||
|
||||
static u8 now[48];
|
||||
static u8 buffer[768];
|
||||
static void* next;
|
||||
static void* end;
|
||||
};
|
||||
|
||||
struct mDoMtx_quatStack_c {
|
||||
/* 8000D034 */ ~mDoMtx_quatStack_c();
|
||||
};
|
||||
|
||||
struct JMath {
|
||||
static u8 sincosTable_[65536];
|
||||
};
|
||||
@@ -106,14 +67,6 @@ extern "C" void normalize__4cXyzFv();
|
||||
extern "C" void normalizeRS__4cXyzFv();
|
||||
extern "C" void cM_atan2s__Fff();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void PSMTXIdentity();
|
||||
extern "C" void PSMTXCopy();
|
||||
extern "C" void PSMTXConcat();
|
||||
extern "C" void PSMTXTrans();
|
||||
extern "C" void PSMTXScale();
|
||||
extern "C" void PSMTXQuat();
|
||||
extern "C" void C_MTXLookAt();
|
||||
extern "C" void PSVECDotProduct();
|
||||
extern "C" void __register_global_object();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
@@ -126,44 +79,82 @@ extern "C" extern f32 G_CM3D_F_ABS_MIN[1 + 1 /* padding */];
|
||||
//
|
||||
|
||||
/* 8000C0CC-8000C164 006A0C 0098+00 1/1 0/0 0/0 .text mDoMtx_XYZrotS__FPA4_fsss */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void mDoMtx_XYZrotS(f32 (*param_0)[4], s16 param_1, s16 param_2, s16 param_3) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_mtx/mDoMtx_XYZrotS__FPA4_fsss.s"
|
||||
void mDoMtx_XYZrotS(Mtx mtx, s16 x, s16 y, s16 z) {
|
||||
Mtx tmp;
|
||||
if (z != 0) {
|
||||
mDoMtx_ZrotS(mtx, z);
|
||||
} else {
|
||||
PSMTXIdentity(mtx);
|
||||
}
|
||||
|
||||
if (y != 0) {
|
||||
mDoMtx_YrotS(tmp, y);
|
||||
PSMTXConcat(mtx, tmp, mtx);
|
||||
}
|
||||
|
||||
if (x != 0) {
|
||||
mDoMtx_XrotS(tmp, x);
|
||||
PSMTXConcat(mtx, tmp, mtx);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8000C164-8000C208 006AA4 00A4+00 1/1 8/8 13/13 .text mDoMtx_XYZrotM__FPA4_fsss */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoMtx_XYZrotM(f32 (*param_0)[4], s16 param_1, s16 param_2, s16 param_3) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_mtx/mDoMtx_XYZrotM__FPA4_fsss.s"
|
||||
void mDoMtx_XYZrotM(Mtx mtx, s16 x, s16 y, s16 z) {
|
||||
Mtx tmp;
|
||||
if (z != 0) {
|
||||
mDoMtx_ZrotS(tmp, z);
|
||||
PSMTXConcat(mtx, tmp, mtx);
|
||||
}
|
||||
|
||||
if (y != 0) {
|
||||
mDoMtx_YrotS(tmp, y);
|
||||
PSMTXConcat(mtx, tmp, mtx);
|
||||
}
|
||||
|
||||
if (x != 0) {
|
||||
mDoMtx_XrotS(tmp, x);
|
||||
PSMTXConcat(mtx, tmp, mtx);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8000C208-8000C2A0 006B48 0098+00 1/1 10/10 37/37 .text mDoMtx_ZXYrotS__FPA4_fsss */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoMtx_ZXYrotS(f32 (*param_0)[4], s16 param_1, s16 param_2, s16 param_3) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_mtx/mDoMtx_ZXYrotS__FPA4_fsss.s"
|
||||
void mDoMtx_ZXYrotS(Mtx mtx, s16 x, s16 y, s16 z) {
|
||||
Mtx tmp;
|
||||
if (y != 0) {
|
||||
mDoMtx_YrotS(mtx, y);
|
||||
} else {
|
||||
PSMTXIdentity(mtx);
|
||||
}
|
||||
|
||||
if (x != 0) {
|
||||
mDoMtx_XrotS(tmp, x);
|
||||
PSMTXConcat(mtx, tmp, mtx);
|
||||
}
|
||||
|
||||
if (z != 0) {
|
||||
mDoMtx_ZrotS(tmp, z);
|
||||
PSMTXConcat(mtx, tmp, mtx);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8000C2A0-8000C344 006BE0 00A4+00 1/1 19/19 149/149 .text mDoMtx_ZXYrotM__FPA4_fsss */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoMtx_ZXYrotM(f32 (*param_0)[4], s16 param_1, s16 param_2, s16 param_3) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_mtx/mDoMtx_ZXYrotM__FPA4_fsss.s"
|
||||
void mDoMtx_ZXYrotM(Mtx mtx, s16 x, s16 y, s16 z) {
|
||||
Mtx tmp;
|
||||
if (y != 0) {
|
||||
mDoMtx_YrotS(tmp, y);
|
||||
PSMTXConcat(mtx, tmp, mtx);
|
||||
}
|
||||
|
||||
if (x != 0) {
|
||||
mDoMtx_XrotS(tmp, x);
|
||||
PSMTXConcat(mtx, tmp, mtx);
|
||||
}
|
||||
|
||||
if (z != 0) {
|
||||
mDoMtx_ZrotS(tmp, z);
|
||||
PSMTXConcat(mtx, tmp, mtx);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451B08-80451B0C 000108 0004+00 6/6 0/0 0/0 .sdata2 @3676 */
|
||||
@@ -188,14 +179,11 @@ asm void mDoMtx_XrotS(f32 (*param_0)[4], s16 param_1) {
|
||||
#pragma pop
|
||||
|
||||
/* 8000C39C-8000C3DC 006CDC 0040+00 0/0 11/11 425/425 .text mDoMtx_XrotM__FPA4_fs */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoMtx_XrotM(f32 (*param_0)[4], s16 param_1) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_mtx/mDoMtx_XrotM__FPA4_fs.s"
|
||||
void mDoMtx_XrotM(Mtx mtx, s16 x) {
|
||||
Mtx tmp;
|
||||
mDoMtx_XrotS(tmp, x);
|
||||
PSMTXConcat(mtx, tmp, mtx);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8000C3DC-8000C434 006D1C 0058+00 5/5 24/24 809/809 .text mDoMtx_YrotS__FPA4_fs */
|
||||
#pragma push
|
||||
@@ -208,14 +196,11 @@ asm void mDoMtx_YrotS(f32 (*param_0)[4], s16 param_1) {
|
||||
#pragma pop
|
||||
|
||||
/* 8000C434-8000C474 006D74 0040+00 0/0 44/44 775/775 .text mDoMtx_YrotM__FPA4_fs */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoMtx_YrotM(f32 (*param_0)[4], s16 param_1) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_mtx/mDoMtx_YrotM__FPA4_fs.s"
|
||||
void mDoMtx_YrotM(Mtx mtx, s16 y) {
|
||||
Mtx tmp;
|
||||
mDoMtx_YrotS(tmp, y);
|
||||
PSMTXConcat(mtx, tmp, mtx);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8000C474-8000C4CC 006DB4 0058+00 7/7 1/1 6/6 .text mDoMtx_ZrotS__FPA4_fs */
|
||||
#pragma push
|
||||
@@ -228,14 +213,11 @@ asm void mDoMtx_ZrotS(f32 (*param_0)[4], s16 param_1) {
|
||||
#pragma pop
|
||||
|
||||
/* 8000C4CC-8000C50C 006E0C 0040+00 0/0 9/9 302/302 .text mDoMtx_ZrotM__FPA4_fs */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoMtx_ZrotM(f32 (*param_0)[4], s16 param_1) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_mtx/mDoMtx_ZrotM__FPA4_fs.s"
|
||||
void mDoMtx_ZrotM(Mtx mtx, s16 z) {
|
||||
Mtx tmp;
|
||||
mDoMtx_ZrotS(tmp, z);
|
||||
PSMTXConcat(mtx, tmp, mtx);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8000C50C-8000C710 006E4C 0204+00 0/0 3/3 0/0 .text mDoMtx_lookAt__FPA4_fPC3VecPC3Vecs
|
||||
*/
|
||||
@@ -315,155 +297,118 @@ asm void mDoMtx_MtxToRot(f32 const (*param_0)[4], csXyz* param_1) {
|
||||
/* ############################################################################################## */
|
||||
/* 803DD470-803DD4A0 00A190 0030+00 12/12 142/142 1820/1820 .bss now__14mDoMtx_stack_c
|
||||
*/
|
||||
u8 mDoMtx_stack_c::now[48];
|
||||
Mtx mDoMtx_stack_c::now;
|
||||
|
||||
/* 803DD4A0-803DD7A0 00A1C0 0300+00 2/2 0/0 0/0 .bss buffer__14mDoMtx_stack_c */
|
||||
u8 mDoMtx_stack_c::buffer[768];
|
||||
Mtx mDoMtx_stack_c::buffer[16];
|
||||
|
||||
/* 803DD7A0-803DD7AC 00A4C0 000C+00 1/1 0/0 0/0 .bss @4048 */
|
||||
static u8 lit_4048[12];
|
||||
|
||||
/* 804505A8-804505AC -00001 0004+00 3/3 0/0 0/0 .sdata next__14mDoMtx_stack_c */
|
||||
SECTION_SDATA void* mDoMtx_stack_c::next = (void*)&mDoMtx_stack_c::buffer;
|
||||
SECTION_SDATA Mtx* mDoMtx_stack_c::next = (Mtx*)&mDoMtx_stack_c::buffer;
|
||||
|
||||
/* 804505AC-804505B0 -00001 0004+00 2/2 0/0 0/0 .sdata end__14mDoMtx_stack_c */
|
||||
SECTION_SDATA void* mDoMtx_stack_c::end = (void*)&lit_4048;
|
||||
SECTION_SDATA Mtx* mDoMtx_stack_c::end = (Mtx*)&lit_4048;
|
||||
|
||||
/* 8000CCC8-8000CD14 007608 004C+00 0/0 0/0 24/24 .text push__14mDoMtx_stack_cFv */
|
||||
// regalloc
|
||||
#ifdef NONMATCHING
|
||||
bool mDoMtx_stack_c::push() {
|
||||
if (next >= end) {
|
||||
return false;
|
||||
}
|
||||
next++;
|
||||
PSMTXCopy(now, *next);
|
||||
return true;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoMtx_stack_c::push() {
|
||||
asm bool mDoMtx_stack_c::push() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_mtx/push__14mDoMtx_stack_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8000CD14-8000CD64 007654 0050+00 0/0 0/0 24/24 .text pop__14mDoMtx_stack_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoMtx_stack_c::pop() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_mtx/pop__14mDoMtx_stack_cFv.s"
|
||||
bool mDoMtx_stack_c::pop() {
|
||||
if (next <= buffer) {
|
||||
return false;
|
||||
}
|
||||
next--;
|
||||
PSMTXCopy(*next, now);
|
||||
return true;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8000CD64-8000CD9C 0076A4 0038+00 0/0 50/50 484/484 .text transS__14mDoMtx_stack_cFRC4cXyz */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoMtx_stack_c::transS(cXyz const& param_0) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_mtx/transS__14mDoMtx_stack_cFRC4cXyz.s"
|
||||
void mDoMtx_stack_c::transS(cXyz const& param_0) {
|
||||
transS(param_0.x, param_0.y, param_0.z);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8000CD9C-8000CDD4 0076DC 0038+00 1/1 29/29 285/285 .text transM__14mDoMtx_stack_cFfff
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoMtx_stack_c::transM(f32 param_0, f32 param_1, f32 param_2) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_mtx/transM__14mDoMtx_stack_cFfff.s"
|
||||
void mDoMtx_stack_c::transM(f32 x, f32 y, f32 z) {
|
||||
Mtx tmp;
|
||||
PSMTXTrans(tmp, x, y, z);
|
||||
PSMTXConcat(now, tmp, now);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8000CDD4-8000CE00 007714 002C+00 0/0 3/3 40/40 .text transM__14mDoMtx_stack_cFRC4cXyz
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoMtx_stack_c::transM(cXyz const& param_0) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_mtx/transM__14mDoMtx_stack_cFRC4cXyz.s"
|
||||
void mDoMtx_stack_c::transM(cXyz const& param_0) {
|
||||
transM(param_0.x, param_0.y, param_0.z);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8000CE00-8000CE38 007740 0038+00 0/0 0/0 2/2 .text scaleS__14mDoMtx_stack_cFRC4cXyz */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoMtx_stack_c::scaleS(cXyz const& param_0) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_mtx/scaleS__14mDoMtx_stack_cFRC4cXyz.s"
|
||||
void mDoMtx_stack_c::scaleS(cXyz const& param_0) {
|
||||
scaleS(param_0.x, param_0.y, param_0.z);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8000CE38-8000CE70 007778 0038+00 1/1 13/13 219/219 .text scaleM__14mDoMtx_stack_cFfff
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoMtx_stack_c::scaleM(f32 param_0, f32 param_1, f32 param_2) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_mtx/scaleM__14mDoMtx_stack_cFfff.s"
|
||||
void mDoMtx_stack_c::scaleM(f32 x, f32 y, f32 z) {
|
||||
Mtx tmp;
|
||||
PSMTXScale(tmp, x, y, z);
|
||||
PSMTXConcat(now, tmp, now);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8000CE70-8000CE9C 0077B0 002C+00 0/0 7/7 79/79 .text scaleM__14mDoMtx_stack_cFRC4cXyz
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoMtx_stack_c::scaleM(cXyz const& param_0) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_mtx/scaleM__14mDoMtx_stack_cFRC4cXyz.s"
|
||||
void mDoMtx_stack_c::scaleM(cXyz const& param_0) {
|
||||
scaleM(param_0.x, param_0.y, param_0.z);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8000CE9C-8000CED4 0077DC 0038+00 0/0 3/3 0/0 .text XYZrotS__14mDoMtx_stack_cFRC5csXyz
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoMtx_stack_c::XYZrotS(csXyz const& param_0) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_mtx/XYZrotS__14mDoMtx_stack_cFRC5csXyz.s"
|
||||
void mDoMtx_stack_c::XYZrotS(csXyz const& param_0) {
|
||||
XYZrotS(param_0.x, param_0.y, param_0.z);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8000CED4-8000CF0C 007814 0038+00 0/0 1/1 4/4 .text XYZrotM__14mDoMtx_stack_cFRC5csXyz
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoMtx_stack_c::XYZrotM(csXyz const& param_0) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_mtx/XYZrotM__14mDoMtx_stack_cFRC5csXyz.s"
|
||||
void mDoMtx_stack_c::XYZrotM(csXyz const& param_0) {
|
||||
XYZrotM(param_0.x, param_0.y, param_0.z);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8000CF0C-8000CF44 00784C 0038+00 0/0 5/5 43/43 .text ZXYrotS__14mDoMtx_stack_cFRC5csXyz */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoMtx_stack_c::ZXYrotS(csXyz const& param_0) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_mtx/ZXYrotS__14mDoMtx_stack_cFRC5csXyz.s"
|
||||
void mDoMtx_stack_c::ZXYrotS(csXyz const& param_0) {
|
||||
ZXYrotS(param_0.x, param_0.y, param_0.z);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8000CF44-8000CF7C 007884 0038+00 0/0 24/24 250/250 .text ZXYrotM__14mDoMtx_stack_cFRC5csXyz */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoMtx_stack_c::ZXYrotM(csXyz const& param_0) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_mtx/ZXYrotM__14mDoMtx_stack_cFRC5csXyz.s"
|
||||
void mDoMtx_stack_c::ZXYrotM(csXyz const& param_0) {
|
||||
ZXYrotM(param_0.x, param_0.y, param_0.z);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8000CF7C-8000CFB8 0078BC 003C+00 0/0 1/1 6/6 .text quatM__14mDoMtx_stack_cFPC10Quaternion */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoMtx_stack_c::quatM(Quaternion const* param_0) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_mtx/quatM__14mDoMtx_stack_cFPC10Quaternion.s"
|
||||
void mDoMtx_stack_c::quatM(Quaternion const* param_0) {
|
||||
Mtx tmp;
|
||||
PSMTXQuat(tmp, param_0);
|
||||
PSMTXConcat(now, tmp, now);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803DD7AC-803DD7B8 00A4CC 000C+00 0/1 0/0 0/0 .bss @4078 */
|
||||
@@ -593,3 +538,9 @@ SECTION_DATA extern u8 g_mDoMtx_identity[48 + 24 /* padding */] = {
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
|
||||
/* SECTION_DATA extern Mtx g_mDoMtx_identity = {
|
||||
{1.0f, 0.0f, 0.0f, 0.0f},
|
||||
{0.0f, 1.0f, 0.0f, 0.0f},
|
||||
{0.0f, 0.0f, 1.0f, 0.0f},
|
||||
}; */
|
||||
|
||||
@@ -18,7 +18,7 @@ struct __va_list_struct {};
|
||||
//
|
||||
|
||||
extern "C" static void OSSwitchFiberEx__FUlUlUlUlUlUl();
|
||||
extern "C" static void my_PutString__FPCc();
|
||||
extern "C" void my_PutString__FPCc();
|
||||
extern "C" static void OSVAttention__FPCcP16__va_list_struct();
|
||||
extern "C" void OSAttention();
|
||||
extern "C" void OSReportDisable();
|
||||
@@ -50,10 +50,8 @@ extern "C" void OSDisableInterrupts();
|
||||
extern "C" void OSRestoreInterrupts();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" void fputs();
|
||||
extern "C" void fflush();
|
||||
extern "C" void vprintf();
|
||||
extern "C" extern void* __files[80];
|
||||
extern "C" extern u8 struct_80450B98[4];
|
||||
extern "C" extern u8 data_80450B9C[4];
|
||||
|
||||
@@ -73,14 +71,9 @@ static asm void OSSwitchFiberEx(u32 param_0, u32 param_1, u32 param_2, u32 param
|
||||
#pragma pop
|
||||
|
||||
/* 800067C8-800067F4 001108 002C+00 3/3 0/0 0/0 .text my_PutString__FPCc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void my_PutString(char const* param_0) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_printf/my_PutString__FPCc.s"
|
||||
void my_PutString(const char* string) {
|
||||
fputs(string, &__files.stdout);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800067F4-80006814 001134 0020+00 3/3 0/0 0/0 .text OSVAttention__FPCcP16__va_list_struct */
|
||||
#pragma push
|
||||
@@ -175,7 +168,7 @@ asm void OSReportInit() {
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803DB740-803DBF40 008460 0800+00 1/1 0/0 0/0 .bss mDoPrintf_FiberStack */
|
||||
static u8 mDoPrintf_FiberStack[2048];
|
||||
static u8 mDoPrintf_FiberStack[2048] ALIGN_DECL(32);
|
||||
|
||||
/* 800068DC-80006964 00121C 0088+00 1/1 0/0 0/0 .text
|
||||
* mDoPrintf_vprintf_Interrupt__FPCcP16__va_list_struct */
|
||||
|
||||
Reference in New Issue
Block a user