mirror of
https://github.com/zeldaret/tp
synced 2026-07-08 14:36:36 -04:00
d_file_select, JASResArcLoader, d_a_obj_stone, d_a_obj_stone_mark (#309)
* setup TU * JASResArcLoader OK * d_a_obj_stoneMark work * some funcs in d_a_obj_stoneMark * many changes * quat, d_a_obj_stone, d_a_alink, fix python script, tidy makefile * d_file_select functions + pr cleanup
This commit is contained in:
+11
-11
@@ -12285,12 +12285,12 @@ void daAlink_c::setSelectEquipItem(int param_0) {
|
||||
}
|
||||
|
||||
if (checkWoodSwordEquip()) {
|
||||
if (mEquipItem == 0x103 || param_0 != 0) {
|
||||
if (mEquipItem == EQUIP_SWORD || param_0 != 0) {
|
||||
mSwordModel->getModelData()->getMaterialNodePointer(1)->getShape()->hide();
|
||||
} else {
|
||||
mSwordModel->getModelData()->getMaterialNodePointer(1)->getShape()->show();
|
||||
}
|
||||
} else if (mEquipItem == 0x103 || param_0 != 0) {
|
||||
} else if (mEquipItem == EQUIP_SWORD || param_0 != 0) {
|
||||
mSwordModel->getModelData()->getMaterialNodePointer(0)->getShape()->show();
|
||||
} else {
|
||||
mSwordModel->getModelData()->getMaterialNodePointer(0)->getShape()->hide();
|
||||
@@ -13911,7 +13911,7 @@ const daAlink_BckData* daAlink_c::getMainBckData(daAlink_c::daAlink_ANM i_anmID)
|
||||
return &m_mainBckShield[i_anmID];
|
||||
}
|
||||
|
||||
if ((mEquipItem == 0x103 && i_anmID < 0x15 && i_anmID >= 0x10) ||
|
||||
if ((mEquipItem == EQUIP_SWORD && i_anmID < 0x15 && i_anmID >= 0x10) ||
|
||||
(i_anmID == ANM_SWIM_WAIT && mEquipItem != NO_ITEM))
|
||||
{
|
||||
return &m_mainBckSword[i_anmID - 0x10];
|
||||
@@ -15569,7 +15569,7 @@ asm int daAlink_c::checkItemActionInitStart() {
|
||||
/* 800B7090-800B7168 0B19D0 00D8+00 1/1 0/0 0/0 .text checkItemChangeAutoAction__9daAlink_cFv */
|
||||
int daAlink_c::checkItemChangeAutoAction() {
|
||||
if (i_checkResetFlg0(RFLG0_UNK_80)) {
|
||||
if (mEquipItem == 0x103) {
|
||||
if (mEquipItem == EQUIP_SWORD) {
|
||||
if (i_checkModeFlg(0x40000)) {
|
||||
return 0;
|
||||
}
|
||||
@@ -16030,9 +16030,9 @@ void daAlink_c::allUnequip(int param_0) {
|
||||
itemEquip(KANTERA);
|
||||
i_onNoResetFlg1(FLG1_UNK_40);
|
||||
return;
|
||||
} else if (mEquipItem == 0x103) {
|
||||
} else if (mEquipItem == EQUIP_SWORD) {
|
||||
swordUnequip();
|
||||
} else if (mEquipItem == 0x102) {
|
||||
} else if (mEquipItem == noentry71) {
|
||||
deleteEquipItem(0, 0);
|
||||
field_0x2060->initOldFrameMorf(lit_7808, 0, 35);
|
||||
} else {
|
||||
@@ -16072,7 +16072,7 @@ BOOL daAlink_c::checkItemChangeFromButton() {
|
||||
if (doTrigger() && i_dComIfGp_getDoStatus() == 4) {
|
||||
if (mEquipItem != KANTERA && i_checkNoResetFlg2(FLG2_UNK_1)) {
|
||||
offKandelaarModel();
|
||||
} else if (mSwordFlourishTimer != 0 && mEquipItem == 0x103 &&
|
||||
} else if (mSwordFlourishTimer != 0 && mEquipItem == EQUIP_SWORD &&
|
||||
!checkWoodSwordEquip() && !i_checkModeFlg(0x402))
|
||||
{
|
||||
return procSwordUnequipSpInit();
|
||||
@@ -16246,7 +16246,7 @@ int daAlink_c::checkNextAction(int param_0) {
|
||||
setSpeedAndAngleAtn();
|
||||
} else if (((!checkUpperReadyThrowAnime() || mFastShotTime != 0) ||
|
||||
(checkBoomerangThrowAnime() &&
|
||||
(mThrowBoomerangAcKeep.getActor() != NULL || mEquipItem == 0x102 ||
|
||||
(mThrowBoomerangAcKeep.getActor() != NULL || mEquipItem == noentry71 ||
|
||||
i_checkNoResetFlg1(FLG1_UNK_2)))) ||
|
||||
(checkCopyRodThrowAnime() &&
|
||||
(mCopyRodAcKeep.getActor() != NULL || i_checkNoResetFlg1(FLG1_UNK_10000))))
|
||||
@@ -17059,7 +17059,7 @@ void daAlink_c::setLastSceneMode(u32* o_mode) {
|
||||
*o_mode |= 0x200000;
|
||||
}
|
||||
|
||||
if (mEquipItem == 0x103) {
|
||||
if (mEquipItem == EQUIP_SWORD) {
|
||||
*o_mode |= 0x28000000;
|
||||
} else if (mEquipItem < NO_ITEM) {
|
||||
*o_mode |= mEquipItem << 0x18;
|
||||
@@ -17531,7 +17531,7 @@ BOOL daAlink_c::setItemModel() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (mEquipItem == 0x103) {
|
||||
if (mEquipItem == EQUIP_SWORD) {
|
||||
setSwordModel();
|
||||
return 1;
|
||||
}
|
||||
@@ -18300,7 +18300,7 @@ void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) {
|
||||
i_dComIfGp_clearPlayerStatus1(0,0x7fb7b78);
|
||||
|
||||
cancelHookshotShot();
|
||||
if (mEquipItem == 0x109) {
|
||||
if (mEquipItem == noentry77) {
|
||||
deleteEquipItem(0, 0);
|
||||
}
|
||||
|
||||
|
||||
@@ -141,7 +141,7 @@ BOOL daAlink_c::checkBoomerangAnime() const {
|
||||
|
||||
/* 800E04AC-800E04E8 0DADEC 003C+00 13/13 0/0 0/0 .text checkBoomerangThrowAnime__9daAlink_cCFv */
|
||||
BOOL daAlink_c::checkBoomerangThrowAnime() const {
|
||||
return (mEquipItem == BOOMERANG || i_checkNoResetFlg1(FLG1_UNK_2) || mEquipItem == 0x102) &&
|
||||
return (mEquipItem == BOOMERANG || i_checkNoResetFlg1(FLG1_UNK_2) || mEquipItem == noentry71) &&
|
||||
checkUpperAnime(0x53);
|
||||
}
|
||||
|
||||
|
||||
@@ -109,7 +109,7 @@ BOOL daAlink_c::checkFishingRodGrab(fopAc_ac_c* param_0) const {
|
||||
/* 800F3EB8-800F3F38 0EE7F8 0080+00 0/0 0/0 2/2 .text
|
||||
* checkCanoePaddleGrab__9daAlink_cCFP10fopAc_ac_c */
|
||||
BOOL daAlink_c::checkCanoePaddleGrab(fopAc_ac_c* param_0) const {
|
||||
return mEquipItem == 0x10B && checkCanoeRideOwn(param_0);
|
||||
return mEquipItem == noentry79 && checkCanoeRideOwn(param_0);
|
||||
}
|
||||
|
||||
/* 800F3F38-800F3FC4 0EE878 008C+00 0/0 0/0 1/1 .text checkCanoeFishingRodGrabOrPut__9daAlink_cCFv
|
||||
|
||||
@@ -972,7 +972,7 @@ int daAlink_c::procBackJump() {
|
||||
offModeFlg(0x2000);
|
||||
}
|
||||
|
||||
if (checkCutTurnInput() && mEquipItem == 0x103) {
|
||||
if (checkCutTurnInput() && mEquipItem == EQUIP_SWORD) {
|
||||
field_0x3198 = getCutTurnDirection();
|
||||
}
|
||||
|
||||
@@ -1031,7 +1031,7 @@ int daAlink_c::procBackJumpLand() {
|
||||
checkNextAction(0);
|
||||
}
|
||||
} else if (frameCtrl->getFrame() > daAlinkHIO_backJump_c0::m.mLandAnm.mCheckFrame) {
|
||||
if (mEquipItem == 0x103 && (field_0x3198 != 2 || checkCutTurnInput())) {
|
||||
if (mEquipItem == EQUIP_SWORD && (field_0x3198 != 2 || checkCutTurnInput())) {
|
||||
return procCutTurnInit(1, field_0x3198);
|
||||
}
|
||||
|
||||
@@ -1795,7 +1795,7 @@ int daAlink_c::execute() {
|
||||
if (dComIfGp_event_runCheck()) {
|
||||
field_0x3184 = dComIfGp_evmng_getMyStaffId("Alink", this, 0);
|
||||
|
||||
if (mEvtInfo.checkCommandDoor() && !dComIfGp_event_chkEventFlag(4) && mEquipItem == 0x102) {
|
||||
if (mEvtInfo.checkCommandDoor() && !dComIfGp_event_chkEventFlag(4) && mEquipItem == noentry71) {
|
||||
deleteEquipItem(FALSE, FALSE);
|
||||
}
|
||||
}
|
||||
@@ -1870,7 +1870,7 @@ int daAlink_c::execute() {
|
||||
field_0x2f9d = 0;
|
||||
field_0x2fc1 = 6;
|
||||
|
||||
if (!checkSwordGet() && mEquipItem == 0x103) {
|
||||
if (!checkSwordGet() && mEquipItem == EQUIP_SWORD) {
|
||||
deleteEquipItem(FALSE, FALSE);
|
||||
}
|
||||
|
||||
@@ -2068,7 +2068,7 @@ int daAlink_c::execute() {
|
||||
}
|
||||
}
|
||||
|
||||
if (checkEndResetFlg0(ERFLG0_UNK_1000000) && mEquipItem == 0x103) {
|
||||
if (checkEndResetFlg0(ERFLG0_UNK_1000000) && mEquipItem == EQUIP_SWORD) {
|
||||
mSwordFlourishTimer = daAlinkHIO_cut_c0::m.mFlourishTime;
|
||||
}
|
||||
|
||||
@@ -3648,7 +3648,7 @@ s32 daAlink_c::getItemID() const {
|
||||
|
||||
/* 800D0370-800D038C 0CACB0 001C+00 1/0 0/0 0/0 .text getGrabActorID__9daAlink_cCFv */
|
||||
s32 daAlink_c::getGrabActorID() const {
|
||||
if (mEquipItem == 0x102) {
|
||||
if (mEquipItem == noentry71) {
|
||||
return mItemAcKeep.getID();
|
||||
} else {
|
||||
return mGrabItemAcKeep.getID();
|
||||
|
||||
+5
-2
@@ -77,8 +77,11 @@ extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803A7240-803A7250 004360 0010+00 0/0 0/0 6/6 .data ZeroQuat */
|
||||
SECTION_DATA extern u8 ZeroQuat[16] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
|
||||
Quaternion ZeroQuat = {
|
||||
0.0f,
|
||||
0.0f,
|
||||
0.0f,
|
||||
1.0f
|
||||
};
|
||||
|
||||
/* 803A7250-803A7260 004370 0010+00 0/0 1/1 0/0 .data __vt__10CSTControl */
|
||||
|
||||
+361
-644
File diff suppressed because it is too large
Load Diff
@@ -6,6 +6,7 @@
|
||||
#include "d/s/d_s_name.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/d_procname.h"
|
||||
// #include "d/file/d_file_select.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_overlap_mng.h"
|
||||
|
||||
+10
-8
@@ -3530,26 +3530,28 @@ asm void mDoExt_removeSubFont() {
|
||||
|
||||
/* 80014C54-80014D5C 00F594 0108+00 3/3 14/14 445/445 .text
|
||||
* mDoExt_J3DModel__create__FP12J3DModelDataUlUl */
|
||||
J3DModel* mDoExt_J3DModel__create(J3DModelData* i_modelData, u32 param_1, u32 param_2) {
|
||||
J3DModel* mDoExt_J3DModel__create(J3DModelData* i_modelData, u32 modelFlag, u32 differedDlistFlag) {
|
||||
if (i_modelData != NULL) {
|
||||
J3DModel* model = new J3DModel();
|
||||
|
||||
if (model != NULL) {
|
||||
// Update the modelFlag if the model data passed in has a shared dlist object
|
||||
if (i_modelData->getMaterialNodePointer(0)->getSharedDisplayListObj() != NULL) {
|
||||
if (i_modelData->isLocked()) {
|
||||
param_1 = 0x20000;
|
||||
} else if (param_1 == 0x20000) {
|
||||
param_1 |= 0x40000;
|
||||
modelFlag = J3DMdlFlag_Unk20000;
|
||||
} else if (modelFlag == J3DMdlFlag_Unk20000) {
|
||||
modelFlag |= J3DMdlFlag_Unk40000;
|
||||
} else {
|
||||
param_1 = 0x80000;
|
||||
modelFlag = J3DMdlFlag_Unk80000;
|
||||
}
|
||||
}
|
||||
|
||||
if (!model->entryModelData(i_modelData, param_1, 1)) {
|
||||
if (param_1 == 0x80000 && model->newDifferedDisplayList(param_2)) {
|
||||
// Set up the model
|
||||
if (!model->entryModelData(i_modelData, modelFlag, 1)) {
|
||||
if (modelFlag == J3DMdlFlag_Unk80000 && model->newDifferedDisplayList(differedDlistFlag)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
model->lock();
|
||||
return model;
|
||||
}
|
||||
|
||||
@@ -8,14 +8,11 @@
|
||||
#include "JSystem/JKernel/JKRAram.h"
|
||||
#include "JSystem/JKernel/JKRAramStream.h"
|
||||
#include "JSystem/JKernel/JKRDvdAramRipper.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "JSystem/JUtility/JUTDbPrint.h"
|
||||
#include "JSystem/JUtility/JUTException.h"
|
||||
#include "SSystem/SComponent/c_API_controller_pad.h"
|
||||
#include "SSystem/SComponent/c_malloc.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "m_Do/m_Do_DVDError.h"
|
||||
#include "m_Do/m_Do_MemCard.h"
|
||||
#include "m_Do/m_Do_dvd_thread.h"
|
||||
@@ -46,8 +43,6 @@ extern "C" void* mRenderModeObj__15mDoMch_render_c[1 + 1 /* padding */];
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void OSReportDisable();
|
||||
extern "C" void OSReportEnable();
|
||||
extern "C" void mDoExt_createAssertHeap__FP7JKRHeap();
|
||||
extern "C" void mDoExt_createDbPrintHeap__FUlP7JKRHeap();
|
||||
extern "C" void mDoExt_getDbPrintHeap__Fv();
|
||||
@@ -65,9 +60,7 @@ extern "C" void mDoRst_reset__FiUli();
|
||||
extern "C" void create__9mDoDvdThdFl();
|
||||
extern "C" void mDoDvdErr_ThdInit__Fv();
|
||||
extern "C" void ThdInit__15mDoMemCd_Ctrl_cFv();
|
||||
extern "C" void exception_addition__FP10JUTConsole();
|
||||
extern "C" void init__3cMlFP7JKRHeap();
|
||||
extern "C" void cAPICPad_recalibrate__Fv();
|
||||
extern "C" void cM_initRnd__Fiii();
|
||||
extern "C" void firstInit__9JFWSystemFv();
|
||||
extern "C" void init__9JFWSystemFv();
|
||||
@@ -124,10 +117,6 @@ extern "C" u8 systemConsole__9JFWSystem[4];
|
||||
extern "C" u8 sSystemHeap__7JKRHeap[4];
|
||||
extern "C" u8 sRootHeap__7JKRHeap[4];
|
||||
extern "C" u8 sDebugPrint__10JUTDbPrint[4 + 4 /* padding */];
|
||||
extern "C" extern bool sResetSwitchPushing__Q210JUTGamePad13C3ButtonReset;
|
||||
extern "C" u8 sErrorManager__12JUTException[4];
|
||||
extern "C" u8 sConsole__12JUTException[4];
|
||||
extern "C" u8 sManager__17JUTConsoleManager[4];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
@@ -387,26 +376,7 @@ void myExceptionCallback(u16, OSContext*, u32, u32) {
|
||||
VIFlush();
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 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_80373F89 = "(SRR0-3):%08X %08X %08X %08X\n";
|
||||
SECTION_DEAD static char const* const stringBase_80373FA7 =
|
||||
"PUSH START BUTTON TO ADDITIONAL INFOMATION\n";
|
||||
SECTION_DEAD static char const* const stringBase_80373FD3 =
|
||||
"--------------------------------------\n";
|
||||
#pragma pop
|
||||
|
||||
/* 80451B00-80451B04 000100 0004+00 1/1 0/0 0/0 .sdata2 @3940 */
|
||||
SECTION_SDATA2 static f32 lit_3940 = 8.0f;
|
||||
|
||||
/* 80451B04-80451B08 000104 0004+00 1/1 0/0 0/0 .sdata2 @3941 */
|
||||
SECTION_SDATA2 static f32 lit_3941 = 6.0f;
|
||||
|
||||
/* 8000B95C-8000BCF4 00629C 0398+00 1/1 0/0 0/0 .text fault_callback_scroll__FUsP9OSContextUlUl */
|
||||
#ifdef NONMATCHING
|
||||
// Everything matches but there are issues with dead section
|
||||
static void fault_callback_scroll(u16, OSContext* p_context, u32, u32) {
|
||||
JUTException* manager = JUTException::getManager();
|
||||
JUTConsole* exConsole = manager->getConsole();
|
||||
@@ -523,41 +493,17 @@ static void fault_callback_scroll(u16, OSContext* p_context, u32, u32) {
|
||||
} while (true);
|
||||
} while (true);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void fault_callback_scroll(u16 param_0, OSContext* param_1, u32 param_2, u32 param_3) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_machine/fault_callback_scroll__FUsP9OSContextUlUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
// originally used in my_PrintHeap, but the function body was removed in retail
|
||||
const char* my_PrintHeapSring = "\x1B[32m%-24s = size=%d KB\n\x1B[m";
|
||||
|
||||
/* 8000BCF4-8000BCF8 006634 0004+00 1/1 0/0 0/0 .text my_PrintHeap__FPCcUl */
|
||||
static void my_PrintHeap(char const* heapName, u32 heapSize) {
|
||||
/* empty function */
|
||||
return;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 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_80373FFB = ""
|
||||
"\x1B"
|
||||
"[32m%-24s = size=%d KB\n"
|
||||
"\x1B"
|
||||
"[m";
|
||||
SECTION_DEAD static char const* const stringBase_80374017 = ""
|
||||
"\x1B"
|
||||
"[32m%-24s = %08x-%08x size=%d KB\n"
|
||||
"\x1B"
|
||||
"[m";
|
||||
#pragma pop
|
||||
|
||||
/* 8000BCF8-8000BD44 006638 004C+00 1/1 0/0 0/0 .text my_SysPrintHeap__FPCcPvUl */
|
||||
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 / 1024);
|
||||
}
|
||||
@@ -577,7 +523,7 @@ SECTION_DEAD static char const* const stringBase_8037409E = "/map/Final/Release/
|
||||
#pragma pop
|
||||
|
||||
/* 803A2F60-803A2F9C 000080 003C+00 1/0 0/0 0/0 .data g_ntscZeldaIntDf */
|
||||
SECTION_DATA static _GXRenderModeObj g_ntscZeldaIntDf = {
|
||||
static _GXRenderModeObj g_ntscZeldaIntDf = {
|
||||
0,
|
||||
608,
|
||||
448,
|
||||
@@ -605,7 +551,7 @@ SECTION_DATA static _GXRenderModeObj g_ntscZeldaIntDf = {
|
||||
};
|
||||
|
||||
/* 803A2F9C-803A2FD8 0000BC 003C+00 1/1 1/1 0/0 .data g_ntscZeldaProg */
|
||||
SECTION_DATA extern _GXRenderModeObj g_ntscZeldaProg = {
|
||||
extern _GXRenderModeObj g_ntscZeldaProg = {
|
||||
2,
|
||||
608,
|
||||
448,
|
||||
@@ -634,7 +580,7 @@ SECTION_DATA extern _GXRenderModeObj g_ntscZeldaProg = {
|
||||
|
||||
/* 804505A0-804505A8 -00001 0004+04 1/1 3/3 0/0 .sdata mRenderModeObj__15mDoMch_render_c
|
||||
*/
|
||||
SECTION_SDATA GXRenderModeObj* mDoMch_render_c::mRenderModeObj = &g_ntscZeldaIntDf;
|
||||
GXRenderModeObj* mDoMch_render_c::mRenderModeObj = &g_ntscZeldaIntDf;
|
||||
|
||||
/* 8000BD44-8000C0CC 006684 0388+00 0/0 2/1 0/0 .text mDoMch_Create__Fv */
|
||||
// reg alloc r30 - r31
|
||||
|
||||
Reference in New Issue
Block a user