mirror of
https://github.com/zeldaret/tp
synced 2026-05-23 06:54:28 -04:00
m_Do / d_a_npc work
This commit is contained in:
@@ -114,6 +114,8 @@ private:
|
||||
|
||||
class J3DMaterialAnm {
|
||||
public:
|
||||
J3DMaterialAnm() { initialize(); }
|
||||
|
||||
/* 8032C320 */ void initialize();
|
||||
/* 8032C5A4 */ void setMatColorAnm(int, J3DMatColorAnm*);
|
||||
/* 8032C5E4 */ void setTexMtxAnm(int, J3DTexMtxAnm*);
|
||||
|
||||
@@ -64,6 +64,8 @@ public:
|
||||
mpFirstChild = NULL;
|
||||
}
|
||||
|
||||
void setUserArea(u32 area) { mpUserData = (void*)area; }
|
||||
|
||||
virtual bool entry(J3DDrawBuffer*);
|
||||
virtual void draw();
|
||||
virtual ~J3DPacket() {}
|
||||
|
||||
@@ -2,5 +2,14 @@
|
||||
#define JASDVDTHREAD_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio2/JASTaskThread.h"
|
||||
|
||||
class JASDvd {
|
||||
public:
|
||||
/* 8028FEFC */ static JASTaskThread* getThreadPointer();
|
||||
/* 8028FF04 */ void createThread(s32, int, u32);
|
||||
|
||||
static JASTaskThread* sThread;
|
||||
};
|
||||
|
||||
#endif /* JASDVDTHREAD_H */
|
||||
|
||||
@@ -2,5 +2,22 @@
|
||||
#define JASTASKTHREAD_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JKernel/JKRThread.h"
|
||||
|
||||
class JASTaskThread : public JKRThread {
|
||||
public:
|
||||
/* 8028F6C4 */ JASTaskThread(int, int, u32);
|
||||
/* 8028F9EC */ void allocCallStack(void (*)(void*), void*);
|
||||
/* 8028F850 */ void allocCallStack(void (*)(void*), void const*, u32);
|
||||
/* 8028FC54 */ void sendCmdMsg(void (*)(void*), void*);
|
||||
/* 8028FB5C */ void sendCmdMsg(void (*)(void*), void const*, u32);
|
||||
/* 8028FE88 */ void pause(bool);
|
||||
|
||||
/* 8028F724 */ virtual ~JASTaskThread();
|
||||
/* 8028FD4C */ virtual void run();
|
||||
|
||||
/* 0x7C */ OSThreadQueue* mpThreadQueue;
|
||||
/* 0x84 */ bool field_0x84;
|
||||
};
|
||||
|
||||
#endif /* JASTASKTHREAD_H */
|
||||
|
||||
@@ -25,7 +25,7 @@ public:
|
||||
/* vt[16] */ virtual s32 do_getFreeSize(void); /* override */
|
||||
/* vt[17] */ virtual void* do_getMaxFreeBlock(void); /* override */
|
||||
/* vt[18] */ virtual s32 do_getTotalFreeSize(void); /* override */
|
||||
/* vt[19] */ virtual u8 do_changeGroupID(u8 param_1); /* override */
|
||||
/* vt[19] */ virtual s32 do_changeGroupID(u8 param_1); /* override */
|
||||
/* vt[20] */ virtual u8 do_getCurrentGroupId(void); /* override */
|
||||
|
||||
public:
|
||||
|
||||
@@ -73,7 +73,7 @@ public:
|
||||
/* vt[16] */ virtual s32 do_getFreeSize(); /* override */
|
||||
/* vt[17] */ virtual void* do_getMaxFreeBlock(); /* override */
|
||||
/* vt[18] */ virtual s32 do_getTotalFreeSize(); /* override */
|
||||
/* vt[19] */ virtual u8 do_changeGroupID(u8 newGroupID); /* override */
|
||||
/* vt[19] */ virtual s32 do_changeGroupID(u8 newGroupID); /* override */
|
||||
/* vt[20] */ virtual u8 do_getCurrentGroupId(); /* override */
|
||||
/* vt[21] */ virtual void state_register(JKRHeap::TState*, u32) const; /* override */
|
||||
/* vt[22] */ virtual bool state_compare(JKRHeap::TState const&,
|
||||
|
||||
@@ -43,7 +43,7 @@ public:
|
||||
s32 getFreeSize();
|
||||
void* getMaxFreeBlock();
|
||||
s32 getTotalFreeSize();
|
||||
u8 changeGroupID(u8 newGroupId);
|
||||
s32 changeGroupID(u8 newGroupId);
|
||||
u32 getMaxAllocatableSize(int alignment);
|
||||
|
||||
JKRHeap* find(void* ptr) const;
|
||||
@@ -73,7 +73,7 @@ public:
|
||||
/* vt[16] */ virtual s32 do_getFreeSize() = 0;
|
||||
/* vt[17] */ virtual void* do_getMaxFreeBlock() = 0;
|
||||
/* vt[18] */ virtual s32 do_getTotalFreeSize() = 0;
|
||||
/* vt[19] */ virtual u8 do_changeGroupID(u8 newGroupID);
|
||||
/* vt[19] */ virtual s32 do_changeGroupID(u8 newGroupID);
|
||||
/* vt[20] */ virtual u8 do_getCurrentGroupId();
|
||||
/* vt[21] */ virtual void state_register(JKRHeap::TState*, unsigned long) const;
|
||||
/* vt[22] */ virtual bool state_compare(JKRHeap::TState const&, JKRHeap::TState const&) const;
|
||||
|
||||
@@ -287,6 +287,7 @@ public:
|
||||
|
||||
class JPAParticleCallBack {
|
||||
public:
|
||||
JPAParticleCallBack() {}
|
||||
virtual ~JPAParticleCallBack();
|
||||
virtual void execute(JPABaseEmitter*, JPABaseParticle*);
|
||||
virtual void draw(JPABaseEmitter*, JPABaseParticle*);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#ifndef JSYSTEM_JUTILITY_JUTREPORT_H
|
||||
#define JSYSTEM_JUTILITY_JUTREPORT_H
|
||||
|
||||
void JUTReport(int, int, const char*, ...);
|
||||
void JUTReport(int, int, int, const char*, ...);
|
||||
void JUTReport(int x_pos, int y_pos, const char* str, ...);
|
||||
void JUTReport(int x_pos, int y_pos, int, const char* str, ...);
|
||||
|
||||
#endif
|
||||
@@ -38,11 +38,7 @@ public:
|
||||
/* 0x04A4 */ Z2SceneMgr mSceneMgr;
|
||||
/* 0x04C4 */ Z2StatusMgr mStatusMgr;
|
||||
/* 0x04F4 */ Z2SoundObjMgr mSoundObjMgr;
|
||||
|
||||
/* 0x0514 */ /* virtual */ void startSound(JAISoundID, JAISoundHandle*,
|
||||
JGeometry::TVec3<f32> const*);
|
||||
/* 0x0514 */ void* vtable; // remove later
|
||||
|
||||
/* 0x0514 */ virtual void startSound(JAISoundID, JAISoundHandle*, JGeometry::TVec3<f32> const*);
|
||||
/* 0x0518 */ bool mResettingFlag;
|
||||
/* 0x0519 */ bool field_0x519;
|
||||
/* 0x051C */ JASAudioReseter mAudioReseter;
|
||||
|
||||
@@ -4,18 +4,29 @@
|
||||
#include "Z2AudioLib/Z2SoundObject.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
struct Z2WolfHowlData {};
|
||||
/*
|
||||
* Z2WolfHowlData
|
||||
* mLineNum: Number of lines/points within the song
|
||||
* mSongData: u16 array which corresponds to each line/point
|
||||
*
|
||||
* The high byte of each u16 line corresponds to bar type (low, middle, high)
|
||||
* The low byte of each u16 line corresponds to length of note
|
||||
*/
|
||||
struct Z2WolfHowlData {
|
||||
u8 mLineNum;
|
||||
u16* mSongData;
|
||||
};
|
||||
|
||||
class Z2WolfHowlMgr {
|
||||
public:
|
||||
Z2WolfHowlMgr();
|
||||
|
||||
void resetState();
|
||||
void calcVolumeMod(float);
|
||||
void calcVolumeMod(f32);
|
||||
void getNowPitch();
|
||||
void getNowInputValue();
|
||||
void calcPitchMod(float, float);
|
||||
void startWolfHowlSound(float, float, bool, float);
|
||||
void calcPitchMod(f32, f32);
|
||||
void startWolfHowlSound(f32, f32, bool, f32);
|
||||
void setCorrectData(s8, Z2WolfHowlData*);
|
||||
void getCorrectLine(u8);
|
||||
void getCorrectLineNum();
|
||||
@@ -29,37 +40,37 @@ private:
|
||||
/* 0x00 */ JAISoundHandle* field_0x00;
|
||||
/* 0x04 */ JAISoundHandle* field_0x04;
|
||||
/* 0x08 */ JAISoundHandle* field_0x08;
|
||||
/* 0x0C */ Z2WolfHowlData* field_0x0c;
|
||||
/* 0x10 */ void* field_0x10;
|
||||
/* 0x14 */ float mNowInputValue;
|
||||
/* 0x18 */ float field_0x18;
|
||||
/* 0x1C */ float field_0x1c;
|
||||
/* 0x20 */ float field_0x20;
|
||||
/* 0x24 */ float field_0x24;
|
||||
/* 0x28 */ float field_0x28;
|
||||
/* 0x0C */ Z2WolfHowlData* mpCurSong;
|
||||
/* 0x10 */ Z2WolfHowlData** mpSongList;
|
||||
/* 0x14 */ f32 mNowInputValue;
|
||||
/* 0x18 */ f32 field_0x18;
|
||||
/* 0x1C */ f32 field_0x1c;
|
||||
/* 0x20 */ f32 field_0x20;
|
||||
/* 0x24 */ f32 field_0x24;
|
||||
/* 0x28 */ f32 field_0x28;
|
||||
/* 0x2C */ u8 field_0x2c[4];
|
||||
/* 0x30 */ float field_0x30;
|
||||
/* 0x34 */ float field_0x34;
|
||||
/* 0x38 */ float field_0x38;
|
||||
/* 0x3C */ float field_0x3c;
|
||||
/* 0x40 */ float field_0x40;
|
||||
/* 0x44 */ float field_0x44;
|
||||
/* 0x48 */ float field_0x48;
|
||||
/* 0x4C */ float field_0x4c;
|
||||
/* 0x50 */ float field_0x50;
|
||||
/* 0x54 */ float field_0x54;
|
||||
/* 0x58 */ float field_0x58;
|
||||
/* 0x5C */ float field_0x5c;
|
||||
/* 0x60 */ float field_0x60;
|
||||
/* 0x64 */ float field_0x64;
|
||||
/* 0x68 */ float field_0x68;
|
||||
/* 0x6C */ float field_0x6c;
|
||||
/* 0x70 */ float field_0x70;
|
||||
/* 0x74 */ float field_0x74;
|
||||
/* 0x78 */ float field_0x78;
|
||||
/* 0x7C */ float field_0x7c;
|
||||
/* 0x80 */ float field_0x80;
|
||||
/* 0x84 */ float field_0x84;
|
||||
/* 0x30 */ f32 field_0x30;
|
||||
/* 0x34 */ f32 field_0x34;
|
||||
/* 0x38 */ f32 field_0x38;
|
||||
/* 0x3C */ f32 field_0x3c;
|
||||
/* 0x40 */ f32 field_0x40;
|
||||
/* 0x44 */ f32 field_0x44;
|
||||
/* 0x48 */ f32 field_0x48;
|
||||
/* 0x4C */ f32 field_0x4c;
|
||||
/* 0x50 */ f32 field_0x50;
|
||||
/* 0x54 */ f32 field_0x54;
|
||||
/* 0x58 */ f32 field_0x58;
|
||||
/* 0x5C */ f32 field_0x5c;
|
||||
/* 0x60 */ f32 field_0x60;
|
||||
/* 0x64 */ f32 field_0x64;
|
||||
/* 0x68 */ f32 field_0x68;
|
||||
/* 0x6C */ f32 field_0x6c;
|
||||
/* 0x70 */ f32 field_0x70;
|
||||
/* 0x74 */ f32 field_0x74;
|
||||
/* 0x78 */ f32 field_0x78;
|
||||
/* 0x7C */ f32 field_0x7c;
|
||||
/* 0x80 */ f32 field_0x80;
|
||||
/* 0x84 */ f32 field_0x84;
|
||||
/* 0x88 */ void* mTimer;
|
||||
/* 0x8C */ u8 mReleaseTimer;
|
||||
/* 0x8D */ u8 field_0x8d;
|
||||
|
||||
+35
-17
@@ -33,6 +33,7 @@ class J2DAnmBase;
|
||||
|
||||
class daAlink_lockCursor_c : public dDlst_base_c {
|
||||
public:
|
||||
daAlink_lockCursor_c() {}
|
||||
/* 80125F14 */ BOOL create();
|
||||
/* 80126358 */ void update();
|
||||
/* 80126424 */ virtual void draw();
|
||||
@@ -64,6 +65,7 @@ private:
|
||||
|
||||
class daAlink_sight_c : public daPy_sightPacket_c {
|
||||
public:
|
||||
daAlink_sight_c() {}
|
||||
/* 80126650 */ bool create();
|
||||
/* 80126710 */ void onLockFlg();
|
||||
|
||||
@@ -78,6 +80,7 @@ private:
|
||||
|
||||
class daAlink_blur_c : public J3DPacket {
|
||||
public:
|
||||
daAlink_blur_c() {}
|
||||
/* 801256EC */ void initBlur(f32, int, cXyz const*, cXyz const*, cXyz const*);
|
||||
/* 8012589C */ void copyBlur(cXyz const*, cXyz const*, cXyz const*);
|
||||
/* 80125B0C */ void traceBlur(cXyz const*, cXyz const*, s16);
|
||||
@@ -100,9 +103,16 @@ private:
|
||||
|
||||
class dAlink_bottleWaterPcallBack_c : public JPAParticleCallBack {
|
||||
public:
|
||||
dAlink_bottleWaterPcallBack_c() { initialize(0.0f); }
|
||||
/* 80124A2C */ virtual void execute(JPABaseEmitter*, JPABaseParticle*);
|
||||
/* 800CFCF8 */ virtual ~dAlink_bottleWaterPcallBack_c();
|
||||
|
||||
void initialize(f32 minY) {
|
||||
mHitFlg = 0;
|
||||
mAppearFlg = 0;
|
||||
mKeepMinY = minY;
|
||||
}
|
||||
|
||||
private:
|
||||
/* 0x04 */ s16 mHitFlg;
|
||||
/* 0x06 */ s16 mAppearFlg;
|
||||
@@ -127,6 +137,8 @@ STATIC_ASSERT(sizeof(daAlink_footData_c) == 0xA4);
|
||||
|
||||
class daAlink_matAnm_c : public J3DMaterialAnm {
|
||||
public:
|
||||
daAlink_matAnm_c() { init(); }
|
||||
|
||||
/* 8009D8E4 */ void init();
|
||||
/* 800D0180 */ void offSetFlg();
|
||||
|
||||
@@ -423,9 +435,10 @@ public:
|
||||
|
||||
class hsChainShape_c : public J3DPacket {
|
||||
public:
|
||||
hsChainShape_c() {}
|
||||
/* 80107900 */ virtual void draw();
|
||||
/* 800D0CDC */ virtual ~hsChainShape_c();
|
||||
};
|
||||
}; // Size: 0x10
|
||||
|
||||
/* 8009D87C */ bool getE3Zhint();
|
||||
/* 8009D884 */ char* getAlinkArcName();
|
||||
@@ -574,7 +587,7 @@ public:
|
||||
/* 800B21EC */ BOOL checkSlope() const;
|
||||
/* 800B25CC */ BOOL itemTriggerCheck(u8);
|
||||
/* 800B25E8 */ BOOL itemButtonCheck(u8);
|
||||
/* 800B2604 */ void itemButton();
|
||||
/* 800B2604 */ BOOL itemButton();
|
||||
/* 800B2634 */ void itemTrigger();
|
||||
/* 800B2664 */ void spActionButton();
|
||||
/* 800B2688 */ void spActionTrigger();
|
||||
@@ -702,7 +715,7 @@ public:
|
||||
/* 800BFDB0 */ BOOL checkZoraWearAbility() const;
|
||||
/* 800BFDFC */ BOOL checkMagicArmorWearAbility() const;
|
||||
/* 800BFE48 */ J3DModelData* loadAramBmd(u16, u32);
|
||||
/* 800BFF04 */ void loadAram(u16, u32);
|
||||
/* 800BFF04 */ void* loadAram(u16, u32);
|
||||
/* 800BFF70 */ J3DAnmTevRegKey* loadAramItemBrk(u16, J3DModel*);
|
||||
/* 800BFFCC */ void loadAramItemBtk(u16, J3DModel*);
|
||||
/* 800C0028 */ void loadAramItemBtp(u16, J3DModel*);
|
||||
@@ -1567,21 +1580,21 @@ public:
|
||||
/* 80107744 */ void procBoardCutTurn();
|
||||
/* 801083C8 */ void hookshotAtHitCallBack(dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
|
||||
/* 801086DC */ void resetHookshotMode();
|
||||
/* 8010871C */ void setEnemyBombHookshot(fopAc_ac_c*);
|
||||
/* 80108784 */ void checkLv7BossRoom();
|
||||
/* 801087B0 */ void checkHookshotStickBG(cBgS_PolyInfo&);
|
||||
/* 8010871C */ bool setEnemyBombHookshot(fopAc_ac_c*);
|
||||
/* 80108784 */ bool checkLv7BossRoom();
|
||||
/* 801087B0 */ bool checkHookshotStickBG(cBgS_PolyInfo&);
|
||||
/* 80108828 */ void cancelHookshotCarry();
|
||||
/* 80108864 */ void changeHookshotDrawModel();
|
||||
/* 801088A0 */ void checkHookshotRoofLv7Boss();
|
||||
/* 801088C8 */ void checkChaseHookshot();
|
||||
/* 80108980 */ void checkOctaIealSpecialCollect();
|
||||
/* 801089E8 */ void checkBossOctaIealRoom();
|
||||
/* 80108A18 */ void checkHookshotWait() const;
|
||||
/* 801088A0 */ BOOL checkHookshotRoofLv7Boss();
|
||||
/* 801088C8 */ BOOL checkChaseHookshot();
|
||||
/* 80108980 */ BOOL checkOctaIealSpecialCollect();
|
||||
/* 801089E8 */ BOOL checkBossOctaIealRoom();
|
||||
/* 80108A18 */ BOOL checkHookshotWait() const;
|
||||
/* 80108A3C */ void setHookshotCatchNow();
|
||||
/* 80108B34 */ void setHookshotModel();
|
||||
/* 80108DB4 */ void setHookshotSight();
|
||||
/* 80108EEC */ void cancelHookshotShot();
|
||||
/* 80108F64 */ void cancelHookshotMove();
|
||||
/* 80108F64 */ bool cancelHookshotMove();
|
||||
/* 8010903C */ void checkHookshotReadyMaterialOffMode() const;
|
||||
/* 80109070 */ void setHookshotReadyMaterial();
|
||||
/* 801090EC */ void initHookshotUpperAnimeSpeed(int);
|
||||
@@ -2269,7 +2282,7 @@ public:
|
||||
virtual s16 getGiantPuzzleAimAngle() const;
|
||||
virtual void setGoronSideMove(fopAc_ac_c*);
|
||||
virtual void setCargoCarry(fopAc_ac_c*);
|
||||
virtual bool getHookshotTopPos();
|
||||
virtual cXyz* getHookshotTopPos();
|
||||
virtual bool checkHookshotReturnMode() const;
|
||||
virtual bool checkHookshotShootReturnMode() const;
|
||||
virtual bool checkOctaIealHang() const;
|
||||
@@ -2427,7 +2440,12 @@ private:
|
||||
/* 0x0072C */ J3DAnmBase* field_0x072c;
|
||||
/* 0x00730 */ mDoExt_bckAnm field_0x730;
|
||||
/* 0x0074C */ mDoExt_bckAnm field_0x74C;
|
||||
/* 0x00768 */ u8 field_0x0768[0x5C];
|
||||
/* 0x00768 */ J3DModelData* field_0x0768;
|
||||
/* 0x0076C */ Z2SoundObjSimple* field_0x076c;
|
||||
/* 0x00770 */ hsChainShape_c* field_0x770;
|
||||
/* 0x00774 */ u8 field_0x0774[0x77C - 0x774];
|
||||
/* 0x0077C */ dBgS_ObjLinChk* mpHookshotLinChk;
|
||||
/* 0x00780 */ u8 field_0x780[0x7C4 - 0x780];
|
||||
/* 0x007C4 */ daPy_actorKeep_c mWolfLockAcKeep[10];
|
||||
/* 0x00814 */ dCcD_Stts field_0x814;
|
||||
/* 0x00850 */ dCcD_Cyl field_0x850[3];
|
||||
@@ -2467,7 +2485,7 @@ private:
|
||||
/* 0x02118 */ daPy_anmHeap_c mAnmHeap5;
|
||||
/* 0x0212C */ daPy_anmHeap_c mAnmHeap6;
|
||||
/* 0x02140 */ daPy_anmHeap_c mAnmHeap7;
|
||||
/* 0x02154 */ mDoExt_bckAnm field_0x2154;
|
||||
/* 0x02154 */ mDoExt_bckAnm field_0x2154; // issue here?
|
||||
/* 0x02170 */ u8 field_0x2170[0x18];
|
||||
/* 0x02188 */ dEyeHL_c mEyeHL1;
|
||||
/* 0x0219C */ dEyeHL_c mEyeHL2;
|
||||
@@ -2644,7 +2662,7 @@ private:
|
||||
/* 0x03014 */ s16 mFallVoiceInit;
|
||||
/* 0x03016 */ u8 field_0x3016[2];
|
||||
/* 0x03018 */ s16 field_0x3018;
|
||||
/* 0x0301A */ s16 field_0x301a;
|
||||
/* 0x0301A */ s16 mHookshotMode;
|
||||
/* 0x0301C */ s16 field_0x301c;
|
||||
/* 0x0301E */ s16 field_0x301e;
|
||||
/* 0x03020 */ s16 field_0x3020;
|
||||
@@ -2950,7 +2968,7 @@ private:
|
||||
/* 0x037C8 */ cXyz field_0x37c8;
|
||||
/* 0x037D4 */ cXyz field_0x37d4;
|
||||
/* 0x037E0 */ cXyz field_0x37e0;
|
||||
/* 0x037EC */ cXyz field_0x37ec;
|
||||
/* 0x037EC */ cXyz mHookshotTopPos;
|
||||
/* 0x037F8 */ cXyz field_0x37f8;
|
||||
/* 0x03804 */ cXyz field_0x3804;
|
||||
/* 0x03810 */ cXyz field_0x3810;
|
||||
|
||||
@@ -332,4 +332,190 @@ public:
|
||||
|
||||
STATIC_ASSERT(sizeof(daNpcT_c) == 0xE40);
|
||||
|
||||
class daNpcF_ActorMngr_c {
|
||||
private:
|
||||
/* 0x0 */ u32 mActorID;
|
||||
|
||||
public:
|
||||
/* 801506B0 */ void initialize();
|
||||
/* 801506D8 */ void entry(unsigned int);
|
||||
/* 801506BC */ void entry(fopAc_ac_c*);
|
||||
/* 801506E0 */ void remove();
|
||||
/* 801506EC */ void getActorP();
|
||||
|
||||
/* 80155E40 */ virtual ~daNpcF_ActorMngr_c();
|
||||
};
|
||||
|
||||
class daNpcF_c : public fopAc_ac_c {
|
||||
private:
|
||||
/* 0x568 */ mDoExt_McaMorfSO* mMcaMorf;
|
||||
/* 0x56C */ mDoExt_bckAnm mBckAnm;
|
||||
/* 0x588 */ mDoExt_btpAnm mBtpAnm;
|
||||
/* 0x5A0 */ mDoExt_btkAnm mBtkAnm;
|
||||
/* 0x5B8 */ mDoExt_brkAnm mBrkAnm;
|
||||
/* 0x5D0 */ dBgS_ObjAcch field_0x5d0;
|
||||
/* 0x7A8 */ dCcD_Stts field_0x7a8;
|
||||
/* 0x7E4 */ dBgS_AcchCir field_0x7e4;
|
||||
/* 0x824 */ daNpcF_ActorMngr_c field_0x824;
|
||||
/* 0x82C */ daNpcF_ActorMngr_c field_0x82c[5];
|
||||
/* 0x854 */ cXyz field_0x854[3];
|
||||
/* 0x878 */ cXyz field_0x878;
|
||||
/* 0x884 */ cXyz field_0x884;
|
||||
/* 0x890 */ cXyz field_0x890;
|
||||
/* 0x89C */ cXyz field_0x89c;
|
||||
/* 0x8A8 */ cXyz field_0x8a8;
|
||||
/* 0x8B4 */ cXyz field_0x8b4;
|
||||
/* 0x8C0 */ cXyz field_0x8c0;
|
||||
/* 0x8CC */ cXyz field_0x8cc;
|
||||
/* 0x8D8 */ cXyz field_0x8d8;
|
||||
/* 0x8E4 */ cXyz field_0x8e4;
|
||||
/* 0x8F0 */ csXyz field_0x8f0;
|
||||
/* 0x8F6 */ csXyz field_0x8f6;
|
||||
/* 0x8FC */ csXyz field_0x8fc;
|
||||
/* 0x902 */ csXyz field_0x902;
|
||||
/* 0x908 */ csXyz field_0x908[3];
|
||||
/* 0x91A */ csXyz field_0x91a[3];
|
||||
/* 0x92C */ int field_0x92c;
|
||||
/* 0x930 */ u32 field_0x930;
|
||||
/* 0x934 */ u32 field_0x934;
|
||||
/* 0x938 */ u32 field_0x938;
|
||||
/* 0x93C */ u32 field_0x93c[5];
|
||||
/* 0x950 */ int field_0x950;
|
||||
/* 0x954 */ int field_0x954;
|
||||
/* 0x958 */ int field_0x958;
|
||||
/* 0x95C */ int field_0x95c;
|
||||
/* 0x960 */ int field_0x960;
|
||||
/* 0x964 */ int field_0x964;
|
||||
/* 0x968 */ int field_0x968;
|
||||
/* 0x96C */ int field_0x96c;
|
||||
/* 0x970 */ f32 field_0x970;
|
||||
/* 0x974 */ f32 field_0x974;
|
||||
/* 0x978 */ f32 field_0x978;
|
||||
/* 0x97C */ f32 field_0x97c;
|
||||
/* 0x980 */ f32 field_0x980;
|
||||
/* 0x984 */ f32 field_0x984[3];
|
||||
/* 0x990 */ u16 field_0x990;
|
||||
/* 0x990 */ u16 field_0x992;
|
||||
/* 0x990 */ u16 field_0x994;
|
||||
/* 0x990 */ u16 field_0x996;
|
||||
/* 0x998 */ u16 field_0x998;
|
||||
/* 0x99C */ u32 field_0x99c;
|
||||
/* 0x9A0 */ u32 field_0x9a0;
|
||||
/* 0x9A4 */ int field_0x9a4;
|
||||
/* 0x9A8 */ int field_0x9a8;
|
||||
/* 0x9AC */ int field_0x9ac;
|
||||
/* 0x9B0 */ u32 field_0x9b0;
|
||||
/* 0x9B4 */ int mFlowNodeNo;
|
||||
/* 0x9B8 */ cXyz field_0x9b8;
|
||||
/* 0x9C4 */ cXyz field_0x9c4;
|
||||
/* 0x9D0 */ u16 field_0x9d0;
|
||||
/* 0x9D2 */ u16 field_0x9d2;
|
||||
/* 0x9D4 */ u16 field_0x9d4;
|
||||
/* 0x9D6 */ u16 field_0x9d6;
|
||||
/* 0x9D8 */ u16 field_0x9d8;
|
||||
/* 0x9DA */ u16 field_0x9da;
|
||||
/* 0x9DC */ u16 field_0x9dc;
|
||||
/* 0x9DE */ u16 field_0x9de;
|
||||
/* 0x9E0 */ u16 field_0x9e0;
|
||||
/* 0x9E2 */ u16 field_0x9e2;
|
||||
/* 0x9E4 */ u16 field_0x9e4;
|
||||
/* 0x9E6 */ u16 field_0x9e6;
|
||||
/* 0x9E8 */ u8 field_0x9e8;
|
||||
/* 0x9E9 */ u8 field_0x9e9;
|
||||
/* 0x9EA */ u8 field_0x9ea;
|
||||
/* 0x9EB */ u8 field_0x9eb;
|
||||
/* 0x9EC */ u8 field_0x9ec;
|
||||
/* 0x9ED */ u8 field_0x9ed;
|
||||
/* 0x9EE */ u8 field_0x9ee;
|
||||
/* 0x9EF */ u8 field_0x9ef;
|
||||
/* 0x9F0 */ u8 field_0x9f0;
|
||||
/* 0x9F1 */ u8 field_0x9f1;
|
||||
/* 0x9F2 */ bool mHide;
|
||||
/* 0x9f3 */ u8 field_0x9f3;
|
||||
/* 0x9F4 */ u8 field_0x9f4;
|
||||
/* 0x9F5 */ u8 field_0x9f5;
|
||||
/* 0x9F6 */ u8 field_0x9f6;
|
||||
/* 0x9F8 */ dMsgFlow_c field_0x9f8;
|
||||
/* 0xA44 */ cBgS_GndChk field_0xa44;
|
||||
/* 0xA80 */ dBgS_GndChk field_0xa80;
|
||||
/* 0xAD4 */ dBgS_LinChk field_0xad4;
|
||||
|
||||
public:
|
||||
struct daNpcF_anmPlayData {};
|
||||
|
||||
/* 80152014 */ void execute();
|
||||
/* 801522AC */ void draw(int, int, f32, _GXColorS10*, int);
|
||||
/* 80152614 */ void tgHitCallBack(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
|
||||
/* 80152654 */ void srchAttnActor1(void*, void*);
|
||||
/* 801526E8 */ void srchActor(void*, void*);
|
||||
|
||||
/* 801528C8 */ void initialize();
|
||||
/* 80152B2C */ void getTrnsfrmKeyAnmP(char*, int);
|
||||
/* 80152B68 */ void getTexPtrnAnmP(char*, int);
|
||||
/* 80152BA4 */ void getTexSRTKeyAnmP(char*, int);
|
||||
/* 80152BE0 */ void getTevRegKeyAnmP(char*, int);
|
||||
/* 80152C1C */ void setMcaMorfAnm(J3DAnmTransformKey*, f32, f32, int, int, int);
|
||||
/* 80152C80 */ void setBckAnm(J3DAnmTransform*, f32, int, int, int, bool);
|
||||
/* 80152CC4 */ void setBtpAnm(J3DAnmTexPattern*, J3DModelData*, f32, int);
|
||||
/* 80152D04 */ void setBtkAnm(J3DAnmTextureSRTKey*, J3DModelData*, f32, int);
|
||||
/* 80152D44 */ void setBrkAnm(J3DAnmTevRegKey*, J3DModelData*, f32, int);
|
||||
/* 80152D84 */ void setEnvTevColor();
|
||||
/* 80152DE0 */ void setRoomNo();
|
||||
/* 80152E24 */ void chkEndAnm(f32);
|
||||
/* 80152EC4 */ void chkEndAnm(J3DFrameCtrl*, f32);
|
||||
/* 80152F40 */ void playAllAnm();
|
||||
/* 80153150 */ void playExpressionAnm(daNpcF_c::daNpcF_anmPlayData***);
|
||||
/* 80153264 */ void playMotionAnm(daNpcF_c::daNpcF_anmPlayData***);
|
||||
/* 8015337C */ void setLookatMtx(int, int*, f32);
|
||||
/* 80153578 */ void hitChk2(dCcD_Cyl*, int, int);
|
||||
/* 80153658 */ void setDamage(int, int, int);
|
||||
/* 80153718 */ void ctrlMsgAnm(int&, int&, fopAc_ac_c*, int);
|
||||
/* 8015387C */ void orderEvent(int, char*, u16, u16, u8, u16);
|
||||
/* 80153954 */ void changeEvent(char*, char*, u16, u16);
|
||||
/* 801539F0 */ void chkActorInSight(fopAc_ac_c*, f32);
|
||||
/* 80153A78 */ void chkActorInArea(fopAc_ac_c*, cXyz, cXyz, s16);
|
||||
/* 80153BDC */ void chkActorInAttnArea(fopAc_ac_c*, fopAc_ac_c*, int);
|
||||
/* 80153D1C */ void initTalk(int, fopAc_ac_c**);
|
||||
/* 80153D84 */ void talkProc(int*, int, fopAc_ac_c**);
|
||||
/* 80153EF4 */ void turn(s16, f32, int);
|
||||
/* 801540A4 */ void step(s16, int, int, int);
|
||||
/* 80154250 */ void setAngle(s16);
|
||||
/* 80154278 */ void getDistTableIdx(int, int);
|
||||
/* 801542A0 */ void getEvtAreaTagP(int, int);
|
||||
/* 8015436C */ void getAttnActorP(int, void* (*)(void*, void*), f32, f32, f32, f32, s16, int,
|
||||
int);
|
||||
/* 80154730 */ void chkActorInSight2(fopAc_ac_c*, f32, s16);
|
||||
/* 80154834 */ void chkPointInArea(cXyz, cXyz, f32, f32, f32, s16);
|
||||
/* 801548F4 */ void chkPointInArea(cXyz, cXyz, cXyz, s16);
|
||||
/* 8015496C */ void getAttentionPos(fopAc_ac_c*);
|
||||
/* 801549E0 */ void chkFindPlayer2(int, s16);
|
||||
/* 80154BD8 */ void setHitodamaPrtcl();
|
||||
|
||||
/* 80155BF4 */ virtual ~daNpcF_c();
|
||||
/* 80155BC8 */ virtual void setParam();
|
||||
/* 80155BC0 */ virtual bool main();
|
||||
/* 80155BD8 */ virtual bool ctrlBtk();
|
||||
/* 80155BBC */ virtual void adjustShapeAngle();
|
||||
/* 8015276C */ virtual void setMtx();
|
||||
/* 801527FC */ virtual void setMtx2();
|
||||
/* 80155BB8 */ virtual void setAttnPos();
|
||||
/* 80155BB4 */ virtual void setCollisions();
|
||||
/* 80155BE0 */ virtual bool setExpressionAnm(int, bool);
|
||||
/* 80155EC8 */ virtual bool setExpressionBtp(int);
|
||||
/* 80155BF0 */ virtual void setExpression(int, f32);
|
||||
/* 80155BE8 */ virtual void setMotionAnm(int, f32);
|
||||
/* 80155BEC */ virtual void setMotion(int, f32, int);
|
||||
/* 80155BD0 */ virtual bool drawDbgInfo();
|
||||
/* 80155BCC */ virtual void drawOtherMdls();
|
||||
|
||||
static u8 const mCcDObjInfo[48];
|
||||
static u8 mCcDCyl[68];
|
||||
static u8 mCcDSph[64];
|
||||
static u8 mFindActorPList[400];
|
||||
static u8 mFindCount[4];
|
||||
static u8 mSrchActorName[2 + 2 /* padding */];
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daNpcF_c) == 0xB48);
|
||||
|
||||
#endif /* D_A_D_A_NPC_H */
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
|
||||
class daPy_sightPacket_c : public dDlst_base_c {
|
||||
public:
|
||||
daPy_sightPacket_c() {}
|
||||
/* 8015F1A0 */ virtual void draw();
|
||||
/* 80140CDC */ virtual ~daPy_sightPacket_c();
|
||||
|
||||
@@ -48,6 +49,10 @@ public:
|
||||
enum daAlinkHEAP_TYPE {};
|
||||
|
||||
/* 80140DCC */ void __defctor();
|
||||
daPy_anmHeap_c() {
|
||||
__defctor();
|
||||
}
|
||||
|
||||
daPy_anmHeap_c(u32);
|
||||
~daPy_anmHeap_c();
|
||||
void initData();
|
||||
@@ -480,7 +485,7 @@ public:
|
||||
virtual void setGoronSideMove(fopAc_ac_c*);
|
||||
virtual void setCargoCarry(fopAc_ac_c*);
|
||||
virtual bool getDpdFarFlg() const;
|
||||
virtual bool getHookshotTopPos();
|
||||
virtual cXyz* getHookshotTopPos();
|
||||
virtual bool checkHookshotReturnMode() const;
|
||||
virtual bool checkHookshotShootReturnMode() const;
|
||||
virtual bool checkOctaIealHang() const;
|
||||
|
||||
@@ -91,7 +91,7 @@ public:
|
||||
u32 ChkGrpInf(cBgS_PolyInfo const&, u32);
|
||||
s32 GetRoomId(cBgS_PolyInfo const&);
|
||||
bool GetPolyAttackThrough(cBgS_PolyInfo const&);
|
||||
bool ChkPolyHSStick(cBgS_PolyInfo const&);
|
||||
u32 ChkPolyHSStick(cBgS_PolyInfo const&);
|
||||
void WallCorrect(dBgS_Acch*);
|
||||
void WallCorrectSort(dBgS_Acch*);
|
||||
f32 RoofChk(dBgS_RoofChk*);
|
||||
|
||||
@@ -180,6 +180,9 @@ public:
|
||||
};
|
||||
|
||||
class dBgS_LinkAcch : public dBgS_Acch {
|
||||
public:
|
||||
dBgS_LinkAcch() { SetLink(); }
|
||||
|
||||
/* 80140F30 */ virtual ~dBgS_LinkAcch();
|
||||
};
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ public:
|
||||
|
||||
class dBgS_LinkGndChk : public dBgS_GndChk {
|
||||
public:
|
||||
dBgS_LinkGndChk() { SetLink(); }
|
||||
/* 80140EB8 */ virtual ~dBgS_LinkGndChk();
|
||||
};
|
||||
|
||||
|
||||
@@ -8,7 +8,8 @@ class dBgS_GrpPassChk : public cBgS_GrpPassChk {
|
||||
public:
|
||||
enum {
|
||||
/* 0x1 */ NORMAL_GRP = 1,
|
||||
/* 0x2 */ WATER_GRP
|
||||
/* 0x2 */ WATER_GRP,
|
||||
/* 0x3 */ FULL_GRP
|
||||
};
|
||||
|
||||
/* 80077BA0 */ dBgS_GrpPassChk();
|
||||
@@ -19,6 +20,7 @@ public:
|
||||
void OnSpl() { mGrp |= WATER_GRP; }
|
||||
void OnNormalGrp() { mGrp |= NORMAL_GRP; }
|
||||
void OffNormalGrp() { mGrp &= ~NORMAL_GRP; }
|
||||
void OffFullGrp() { mGrp &= ~FULL_GRP; }
|
||||
|
||||
private:
|
||||
/* 0x4 */ u32 mGrp;
|
||||
|
||||
@@ -24,8 +24,9 @@ private:
|
||||
/* 0x4C */ f32 mNowY;
|
||||
}; // Size: 0x50
|
||||
|
||||
class dBgS_LinkRoofChk : dBgS_RoofChk {
|
||||
class dBgS_LinkRoofChk : public dBgS_RoofChk {
|
||||
public:
|
||||
dBgS_LinkRoofChk() { SetLink(); }
|
||||
/* 80140E40 */ virtual ~dBgS_LinkRoofChk();
|
||||
};
|
||||
|
||||
|
||||
@@ -117,7 +117,7 @@ public:
|
||||
virtual void GetPolyCamThrough(int) = 0;
|
||||
virtual void GetPolyLinkThrough(int) = 0;
|
||||
virtual void GetPolyArrowThrough(int) = 0;
|
||||
virtual bool GetPolyHSStick(int) = 0;
|
||||
virtual u32 GetPolyHSStick(int) = 0;
|
||||
virtual void GetPolyBoomerangThrough(int) = 0;
|
||||
virtual void GetPolyRopeThrough(int) = 0;
|
||||
virtual void GetPolyBombThrough(int) = 0;
|
||||
@@ -216,7 +216,7 @@ public:
|
||||
/* 8007B504 */ virtual void GetPolyCamThrough(int);
|
||||
/* 8007B52C */ virtual void GetPolyLinkThrough(int);
|
||||
/* 8007B550 */ virtual void GetPolyArrowThrough(int);
|
||||
/* 8007B574 */ virtual bool GetPolyHSStick(int);
|
||||
/* 8007B574 */ virtual u32 GetPolyHSStick(int);
|
||||
/* 8007B598 */ virtual void GetPolyBoomerangThrough(int);
|
||||
/* 8007B5BC */ virtual void GetPolyRopeThrough(int);
|
||||
/* 8007B5E0 */ virtual void GetPolyBombThrough(int);
|
||||
|
||||
@@ -57,7 +57,7 @@ public:
|
||||
virtual void GetPolyCamThrough(int) = 0;
|
||||
virtual void GetPolyLinkThrough(int) = 0;
|
||||
virtual void GetPolyArrowThrough(int) = 0;
|
||||
virtual bool GetPolyHSStick(int) = 0;
|
||||
virtual u32 GetPolyHSStick(int) = 0;
|
||||
virtual void GetPolyBoomerangThrough(int) = 0;
|
||||
virtual void GetPolyRopeThrough(int) = 0;
|
||||
virtual void GetPolyBombThrough(int) = 0;
|
||||
@@ -88,6 +88,7 @@ public:
|
||||
u8 GetRoomId() { return m_roomId; }
|
||||
bool chkStickWall() { return field_0xb & 1; }
|
||||
bool chkStickRoof() { return field_0xb & 2; }
|
||||
bool ChkPushPullOk() const { return m_pushPull_Ok; }
|
||||
|
||||
private:
|
||||
/* 0x08 */ u8 m_priority;
|
||||
|
||||
@@ -53,7 +53,7 @@ public:
|
||||
/* 80082B98 */ virtual void GetPolyCamThrough(int);
|
||||
/* 80082BC4 */ virtual void GetPolyLinkThrough(int);
|
||||
/* 80082BF0 */ virtual void GetPolyArrowThrough(int);
|
||||
/* 80082C1C */ virtual void GetPolyHSStick(int);
|
||||
/* 80082C1C */ virtual u32 GetPolyHSStick(int);
|
||||
/* 80082C48 */ virtual void GetPolyBoomerangThrough(int);
|
||||
/* 80082C74 */ virtual void GetPolyRopeThrough(int);
|
||||
/* 80082CA0 */ virtual void GetPolyBombThrough(int);
|
||||
|
||||
@@ -1357,6 +1357,10 @@ inline void dComIfGs_setNoFile(u8 file) {
|
||||
g_dComIfG_gameInfo.info.setNoFile(file);
|
||||
}
|
||||
|
||||
inline void* dComIfGs_getPEventBit() {
|
||||
return g_dComIfG_gameInfo.info.getEvent().getPEventBit();
|
||||
}
|
||||
|
||||
void dComIfGp_setItemLifeCount(f32 amount, u8 type);
|
||||
void dComIfGp_setItemRupeeCount(long amount);
|
||||
void dComIfGp_setSelectItem(int index);
|
||||
|
||||
@@ -203,17 +203,15 @@ public:
|
||||
/* 8014B010 */ void getDistTable(int);
|
||||
|
||||
dAttCatch_c& getCatghTarget() { return mCatghTarget; }
|
||||
bool chkFlag(u32 flag) { return mFlags & flag; }
|
||||
BOOL Lockon() {
|
||||
bool chk = true;
|
||||
if (!LockonTruth()) {
|
||||
if (!chkFlag(0x20000000)) {
|
||||
chk = false;
|
||||
}
|
||||
BOOL chkFlag(u32 flag) { return mFlags & flag; }
|
||||
s8 Lockon() {
|
||||
/* s32 chk = true;
|
||||
if (!LockonTruth() && !chkFlag(0x20000000)) {
|
||||
chk = false;
|
||||
}
|
||||
return chk;
|
||||
return chk; */
|
||||
|
||||
// return !LockonTruth() && !chkFlag(0x20000000);
|
||||
return !LockonTruth() && !chkFlag(0x20000000);
|
||||
}
|
||||
|
||||
static u8 loc_type_tbl[12];
|
||||
|
||||
@@ -29,6 +29,7 @@ public:
|
||||
|
||||
class dDlst_base_c {
|
||||
public:
|
||||
dDlst_base_c() {}
|
||||
virtual void draw();
|
||||
};
|
||||
|
||||
|
||||
@@ -26,6 +26,12 @@ public:
|
||||
|
||||
class dEyeHL_c : public dEyeHL_mng_c {
|
||||
public:
|
||||
dEyeHL_c() {
|
||||
m_timg = NULL;
|
||||
m_pre = NULL;
|
||||
m_next = NULL;
|
||||
}
|
||||
|
||||
/* 8009C964 */ void entry(J3DModelData*, char const*);
|
||||
/* 8009CA28 */ void remove();
|
||||
/* 80140C80 */ ~dEyeHL_c();
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "dolphin/gx/GX.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "Z2AudioLib/Z2EnvSeMgr.h"
|
||||
|
||||
class cBgS_PolyInfo;
|
||||
|
||||
@@ -485,6 +486,9 @@ public:
|
||||
/* 0x130C */ u8 field_0x130c;
|
||||
}; // Size: 0x1310
|
||||
|
||||
extern dScnKy_env_light_c g_env_light;
|
||||
extern Z2EnvSeMgr g_mEnvSeMgr;
|
||||
|
||||
STATIC_ASSERT(sizeof(dScnKy_env_light_c) == 4880);
|
||||
|
||||
BOOL dKy_darkworld_stage_check(char const*, int);
|
||||
|
||||
@@ -13,6 +13,8 @@ public:
|
||||
|
||||
class dPa_hermiteEcallBack_c : public dPa_levelEcallBack {
|
||||
public:
|
||||
dPa_hermiteEcallBack_c() {}
|
||||
|
||||
/* 8004F6B8 */ void setOldPosP(cXyz const*, cXyz const*);
|
||||
|
||||
/* 8004FCC8 */ virtual ~dPa_hermiteEcallBack_c();
|
||||
|
||||
@@ -833,6 +833,8 @@ public:
|
||||
void setEventReg(u16 i_reg, u8 i_no);
|
||||
u8 getEventReg(u16 i_reg) const;
|
||||
|
||||
void* getPEventBit() { return (void*)mEvent; }
|
||||
|
||||
private:
|
||||
/* 0x0 */ u8 mEvent[256];
|
||||
}; // Size: 0x100
|
||||
|
||||
@@ -224,6 +224,7 @@ u8* OSGetStackPointer(void);
|
||||
void OSCreateAlarm(OSAlarm* alarm);
|
||||
void OSCancelAlarm(OSAlarm* alarm);
|
||||
void OSSetAlarm(OSAlarm* alarm, OSTime time, OSAlarmHandler handler);
|
||||
void OSSetPeriodicAlarm(OSAlarm*, OSTime, OSTime, OSAlarmHandler);
|
||||
|
||||
void OSInitCond(OSCond* cond);
|
||||
void OSWaitCond(OSCond* cond, OSMutex* mutex);
|
||||
|
||||
@@ -162,6 +162,14 @@ inline void fopAcM_SetRoomNo(fopAc_ac_c* actor, s8 roomNo) {
|
||||
actor->mCurrent.mRoomNo = roomNo;
|
||||
}
|
||||
|
||||
inline void fopAcM_setHookCarryNow(fopAc_ac_c* actor) {
|
||||
fopAcM_OnStatus(actor, 0x100000);
|
||||
}
|
||||
|
||||
inline void fopAcM_cancelHookCarryNow(fopAc_ac_c* actor) {
|
||||
fopAcM_OffStatus(actor, 0x100000);
|
||||
}
|
||||
|
||||
void* fopAcM_FastCreate(s16 pProcTypeID, FastCreateReqFunc param_2, void* param_3, void* pData);
|
||||
void fopAcM_setStageLayer(void*);
|
||||
int fopAcM_setRoomLayer(void*, int);
|
||||
|
||||
@@ -2,5 +2,10 @@
|
||||
#define M_DO_M_DO_DVDERROR_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JKernel/JKRThread.h"
|
||||
|
||||
void mDoDvdErr_ThdCleanup();
|
||||
static void mDoDvdErr_Watch(void*);
|
||||
static void AlarmHandler(OSAlarm*, OSContext*);
|
||||
|
||||
#endif /* M_DO_M_DO_DVDERROR_H */
|
||||
|
||||
@@ -39,6 +39,8 @@ public:
|
||||
/* 800172D4 */ s32 checkspace();
|
||||
/* 80017360 */ void setCardState(s32);
|
||||
|
||||
bool isCardCommNone() { return mCardCommand == CARD_NO_COMMAND; }
|
||||
|
||||
/* 0x0000 */ u8 mData[0x1FBC];
|
||||
/* 0x1FBC */ u8 mChannel;
|
||||
/* 0x1FBD */ u8 mCopyToPos;
|
||||
@@ -59,4 +61,8 @@ static int mDoMemCd_main(void*);
|
||||
|
||||
extern mDoMemCd_Ctrl_c g_mDoMemCd_control;
|
||||
|
||||
inline bool mDoMemCd_isCardCommNone() {
|
||||
return g_mDoMemCd_control.isCardCommNone();
|
||||
}
|
||||
|
||||
#endif /* M_DO_M_DO_MEMCARD_H */
|
||||
|
||||
@@ -38,7 +38,7 @@ public:
|
||||
static u8 getProgSeqFlag() { return mResetData->mProgSeqFlag; }
|
||||
static u8 getWarningDispFlag() { return mResetData->mWarningDispFlag; }
|
||||
static BOOL isReturnToMenu() { return mResetData->mReturnToMenu; }
|
||||
static bool isShutdown() { return mResetData->mShutdown; }
|
||||
static BOOL isShutdown() { return mResetData->mShutdown; }
|
||||
static int isReset() { return mResetData->mReset; }
|
||||
static int get3ButtonResetPort() { return mResetData->m3ButtonResetPort; }
|
||||
static int is3ButtonReset() { return mResetData->m3ButtonReset; }
|
||||
@@ -54,4 +54,6 @@ public:
|
||||
static mDoRstData* mResetData;
|
||||
};
|
||||
|
||||
extern u8 data_80450C88;
|
||||
|
||||
#endif /* M_DO_M_DO_RESET_H */
|
||||
|
||||
@@ -20,6 +20,7 @@ extern bool sResetFlag;
|
||||
class mDoAud_zelAudio_c {
|
||||
public:
|
||||
void reset();
|
||||
mDoAud_zelAudio_c() {}
|
||||
~mDoAud_zelAudio_c() {}
|
||||
|
||||
static void onInitFlag() { struct_80450BB8 = true; }
|
||||
@@ -28,6 +29,7 @@ public:
|
||||
static void onResetFlag() { sResetFlag = true; }
|
||||
static void offResetFlag() { sResetFlag = false; }
|
||||
static bool isBgmSet() { return data_80450bba; }
|
||||
static void onBgmSet() { data_80450bba = true; }
|
||||
static void offBgmSet() { data_80450bba = false; }
|
||||
|
||||
Z2AudioMgr mAudioMgr;
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
#include "dolphin/types.h"
|
||||
#include "m_Do/m_Do_Reset.h"
|
||||
|
||||
// Controller Ports 1 - 4
|
||||
enum { PAD_1, PAD_2, PAD_3, PAD_4 };
|
||||
|
||||
class mDoCPd_c {
|
||||
public:
|
||||
// Controller Ports 1 - 4
|
||||
enum { PAD_0, PAD_1, PAD_2, PAD_3 };
|
||||
|
||||
static void create();
|
||||
static void read();
|
||||
static void convert(interface_of_controller_pad*, JUTGamePad*);
|
||||
|
||||
@@ -14,6 +14,7 @@ bool exceptionReadPad(u32*, u32*);
|
||||
void exceptionRestart();
|
||||
void myExceptionCallback(u16, OSContext*, u32, u32);
|
||||
void my_SysPrintHeap(char const*, void*, u32);
|
||||
void mDoMch_HeapCheckAll();
|
||||
|
||||
extern GXRenderModeObj g_ntscZeldaProg;
|
||||
|
||||
|
||||
@@ -10,6 +10,20 @@ void* LOAD_COPYDATE(void*);
|
||||
|
||||
class HeapCheck {
|
||||
public:
|
||||
// needed for sinit
|
||||
/* HeapCheck(JKRExpHeap* heap, const char* name, const char* jName) {
|
||||
mName = name;
|
||||
mJName = jName;
|
||||
setHeap(heap);
|
||||
mMaxTotalUsedSize = 0;
|
||||
mMaxTotalFreeSize = 0;
|
||||
field_0x14 = 0;
|
||||
field_0x18 = 0;
|
||||
mTargetHeapSize = 0;
|
||||
mUsedCount = 0;
|
||||
mTotalUsedSize = 0;
|
||||
} */
|
||||
|
||||
void CheckHeap1(void);
|
||||
s32 getUsedCount(void) const;
|
||||
void heapDisplay(void) const;
|
||||
@@ -21,19 +35,23 @@ public:
|
||||
void setHeapSize(u32 i_size) { mTargetHeapSize = i_size; }
|
||||
s32 getMaxTotalUsedSize() { return mMaxTotalUsedSize; }
|
||||
s32 getMaxTotalFreeSize() { return mMaxTotalFreeSize; }
|
||||
char* getName() const { return mName; }
|
||||
const char* getName() const { return mName; }
|
||||
void saveRelBase() {
|
||||
mUsedCount = getUsedCount();
|
||||
mTotalUsedSize = mHeap->getTotalUsedSize();
|
||||
}
|
||||
|
||||
u32 getRelUsedCount() const { return getUsedCount() - mUsedCount; }
|
||||
u32 getRelTotalUsedSize() const { return mHeap->getTotalUsedSize() - mTotalUsedSize; }
|
||||
|
||||
private:
|
||||
/* 0x00 */ char* mName;
|
||||
/* 0x04 */ char* mJName;
|
||||
/* 0x00 */ const char* mName;
|
||||
/* 0x04 */ const char* mJName;
|
||||
/* 0x08 */ JKRExpHeap* mHeap;
|
||||
/* 0x0C */ s32 mMaxTotalUsedSize;
|
||||
/* 0x10 */ s32 mMaxTotalFreeSize;
|
||||
/* 0x14 */ u8 unk20[8];
|
||||
/* 0x14 */ s32 field_0x14;
|
||||
/* 0x18 */ s32 field_0x18;
|
||||
/* 0x1C */ u32 mTargetHeapSize;
|
||||
/* 0x20 */ u32 mUsedCount;
|
||||
/* 0x24 */ u32 mTotalUsedSize;
|
||||
@@ -47,7 +65,7 @@ struct mDoMain {
|
||||
static OSTime sHungUpTime;
|
||||
};
|
||||
|
||||
extern s8 data_80450580;
|
||||
extern s8 data_80450580; // Debug enabled
|
||||
|
||||
extern bool sOSReportDisabled;
|
||||
extern bool data_80450B99;
|
||||
|
||||
@@ -7,26 +7,6 @@
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct JKRHeap {
|
||||
static u8 sSystemHeap[4];
|
||||
static u8 sCurrentHeap[4];
|
||||
};
|
||||
|
||||
struct JASTaskThread {
|
||||
/* 8028F6C4 */ JASTaskThread(int, int, u32);
|
||||
};
|
||||
|
||||
struct JASDvd {
|
||||
/* 8028FEFC */ u32 getThreadPointer();
|
||||
/* 8028FF04 */ void createThread(s32, int, u32);
|
||||
|
||||
static u8 sThread[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -41,7 +21,6 @@ extern "C" u8 sThread__6JASDvd[4 + 4 /* padding */];
|
||||
|
||||
extern "C" void __ct__13JASTaskThreadFiiUl();
|
||||
extern "C" void* __nw__FUlP7JKRHeapi();
|
||||
extern "C" void OSResumeThread();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern u8 JASDram[4];
|
||||
@@ -54,11 +33,11 @@ extern "C" u8 sCurrentHeap__7JKRHeap[4];
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451208-80451210 000708 0004+04 2/1 0/0 0/0 .sbss sThread__6JASDvd */
|
||||
u8 JASDvd::sThread[4 + 4 /* padding */];
|
||||
JASTaskThread* JASDvd::sThread;
|
||||
|
||||
/* 8028FEFC-8028FF04 -00001 0008+00 0/0 0/0 0/0 .text getThreadPointer__6JASDvdFv */
|
||||
u32 JASDvd::getThreadPointer() {
|
||||
return *(u32*)(&JASDvd::sThread);
|
||||
JASTaskThread* JASDvd::getThreadPointer() {
|
||||
return JASDvd::sThread;
|
||||
}
|
||||
|
||||
/* 8028FF04-8028FFA8 28A844 00A4+00 0/0 1/1 0/0 .text createThread__6JASDvdFliUl */
|
||||
|
||||
@@ -11,26 +11,6 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct JKRHeap {
|
||||
static u8 sSystemHeap[4];
|
||||
};
|
||||
|
||||
struct JKRThread {
|
||||
/* 802D1610 */ JKRThread(JKRHeap*, u32, int, int);
|
||||
/* 802D1758 */ ~JKRThread();
|
||||
};
|
||||
|
||||
struct JASTaskThread {
|
||||
/* 8028F6C4 */ JASTaskThread(int, int, u32);
|
||||
/* 8028F724 */ ~JASTaskThread();
|
||||
/* 8028F9EC */ void allocCallStack(void (*)(void*), void*);
|
||||
/* 8028F850 */ void allocCallStack(void (*)(void*), void const*, u32);
|
||||
/* 8028FC54 */ void sendCmdMsg(void (*)(void*), void*);
|
||||
/* 8028FB5C */ void sendCmdMsg(void (*)(void*), void const*, u32);
|
||||
/* 8028FD4C */ void run();
|
||||
/* 8028FE88 */ void pause(bool);
|
||||
};
|
||||
|
||||
struct JASCalc {
|
||||
/* 8028F354 */ void bcopy(void const*, void*, u32);
|
||||
};
|
||||
@@ -59,12 +39,6 @@ extern "C" void* __nw__FUlP7JKRHeapi();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void __ct__9JKRThreadFP7JKRHeapUlii();
|
||||
extern "C" void __dt__9JKRThreadFv();
|
||||
extern "C" void OSDisableInterrupts();
|
||||
extern "C" void OSRestoreInterrupts();
|
||||
extern "C" void OSSendMessage();
|
||||
extern "C" void OSReceiveMessage();
|
||||
extern "C" void OSLockMutex();
|
||||
extern "C" void OSUnlockMutex();
|
||||
extern "C" void OSInitThreadQueue();
|
||||
extern "C" void OSSleepThread();
|
||||
extern "C" void OSWakeupThread();
|
||||
@@ -104,7 +78,8 @@ asm JASTaskThread::JASTaskThread(int param_0, int param_1, u32 param_2) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm JASTaskThread::~JASTaskThread() {
|
||||
// asm JASTaskThread::~JASTaskThread() {
|
||||
extern "C" asm void __dt__13JASTaskThreadFv() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASTaskThread/__dt__13JASTaskThreadFv.s"
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@ bool JKRAssertHeap::dump_sort() {
|
||||
|
||||
/* 802D142C-802D1434 2CBD6C 0008+00 1/0 0/0 0/0 .text do_changeGroupID__13JKRAssertHeapFUc */
|
||||
|
||||
u8 JKRAssertHeap::do_changeGroupID(u8) {
|
||||
s32 JKRAssertHeap::do_changeGroupID(u8) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -558,7 +558,7 @@ void JKRExpHeap::do_fillFreeArea() {
|
||||
|
||||
/* 802CF928-802CF978 2CA268 0050+00 1/0 0/0 0/0 .text do_changeGroupID__10JKRExpHeapFUc
|
||||
*/
|
||||
u8 JKRExpHeap::do_changeGroupID(u8 param_0) {
|
||||
s32 JKRExpHeap::do_changeGroupID(u8 param_0) {
|
||||
lock();
|
||||
u8 prev = mCurrentGroupId;
|
||||
mCurrentGroupId = param_0;
|
||||
|
||||
@@ -352,7 +352,7 @@ s32 JKRHeap::getTotalFreeSize() {
|
||||
}
|
||||
|
||||
/* 802CE7B0-802CE7DC 2C90F0 002C+00 0/0 1/1 0/0 .text changeGroupID__7JKRHeapFUc */
|
||||
u8 JKRHeap::changeGroupID(u8 param_1) {
|
||||
s32 JKRHeap::changeGroupID(u8 param_1) {
|
||||
return do_changeGroupID(param_1);
|
||||
}
|
||||
|
||||
@@ -624,7 +624,7 @@ void JKRHeap::state_dump(JKRHeap::TState const& p) const {
|
||||
}
|
||||
|
||||
/* 802CEDA4-802CEDAC 2C96E4 0008+00 1/0 1/0 0/0 .text do_changeGroupID__7JKRHeapFUc */
|
||||
u8 JKRHeap::do_changeGroupID(u8 param_0) {
|
||||
s32 JKRHeap::do_changeGroupID(u8 param_0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -409,8 +409,9 @@ asm bool Z2AudioMgr::hasReset() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void Z2AudioMgr::startSound(JAISoundID param_0, JAISoundHandle* param_1,
|
||||
JGeometry::TVec3<f32> const* param_2) {
|
||||
//asm void Z2AudioMgr::startSound(JAISoundID param_0, JAISoundHandle* param_1,
|
||||
// JGeometry::TVec3<f32> const* param_2) {
|
||||
extern "C" asm void func_802CDB1C() {
|
||||
nofralloc
|
||||
#include "asm/Z2AudioLib/Z2AudioMgr/func_802CDB1C.s"
|
||||
}
|
||||
|
||||
@@ -86,91 +86,59 @@ extern "C" u8 mLinkPtr__14Z2CreatureLink[4 + 4 /* padding */];
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804508A0-804508A8 000320 0008+00 1/0 0/0 0/0 .sdata sHowlTobikusa */
|
||||
extern "C" u8 sHowlTobikusa[8];
|
||||
extern "C" u16 sHowlTobikusa[4];
|
||||
|
||||
/* 803CBC50-803CBC5C 028D70 000C+00 1/0 0/0 0/0 .data sHowlUmakusa */
|
||||
SECTION_DATA static u8 sHowlUmakusa[12] = {
|
||||
0x01, 0x0F, 0x02, 0x0F, 0x03, 0x3C, 0x01, 0x0F, 0x02, 0x0F, 0x03, 0x3C,
|
||||
SECTION_DATA static u16 sHowlUmakusa[6] = {
|
||||
0x010F, 0x020F, 0x033C, 0x010F, 0x020F, 0x033C,
|
||||
};
|
||||
|
||||
/* 803CBC5C-803CBC68 028D7C 000C+00 1/0 0/0 0/0 .data sHowlZeldaSong */
|
||||
SECTION_DATA static u8 sHowlZeldaSong[12] = {
|
||||
0x02, 0x1E, 0x01, 0x0F, 0x03, 0x2D, 0x02, 0x1E, 0x01, 0x0F, 0x03, 0x2D,
|
||||
SECTION_DATA static u16 sHowlZeldaSong[6] = {
|
||||
0x021E, 0x010F, 0x032D, 0x021E, 0x010F, 0x032D,
|
||||
};
|
||||
|
||||
/* 803CBC68-803CBC74 028D88 000C+00 1/0 0/0 0/0 .data sHowlLightPrelude */
|
||||
SECTION_DATA static u8 sHowlLightPrelude[12] = {
|
||||
0x01, 0x14, 0x03, 0x28, 0x01, 0x14, 0x03, 0x14, 0x02, 0x14, 0x01, 0x1E,
|
||||
SECTION_DATA static u16 sHowlLightPrelude[6] = {
|
||||
0x0114, 0x0328, 0x0114, 0x0314, 0x0214, 0x011E,
|
||||
};
|
||||
|
||||
/* 803CBC74-803CBC80 028D94 000C+00 1/0 0/0 0/0 .data sHowlSoulRequiem */
|
||||
SECTION_DATA static u8 sHowlSoulRequiem[12] = {
|
||||
0x03, 0x1E, 0x02, 0x0F, 0x03, 0x0F, 0x01, 0x1E, 0x02, 0x1E, 0x03, 0x1E,
|
||||
SECTION_DATA static u16 sHowlSoulRequiem[6] = {
|
||||
0x031E, 0x020F, 0x030F, 0x011E, 0x021E, 0x031E,
|
||||
};
|
||||
|
||||
/* 803CBC80-803CBC8C 028DA0 000C+00 1/0 0/0 0/0 .data sHealingSong */
|
||||
SECTION_DATA static u8 sHealingSong[12] = {
|
||||
0x01, 0x1E, 0x02, 0x1E, 0x03, 0x1E, 0x01, 0x1E, 0x02, 0x1E, 0x03, 0x1E,
|
||||
SECTION_DATA static u16 sHealingSong[6] = {
|
||||
0x011E, 0x021E, 0x031E, 0x011E, 0x021E, 0x031E,
|
||||
};
|
||||
|
||||
/* 803CBC8C-803CBC9C 028DAC 000E+02 1/0 0/0 0/0 .data sNewSong1 */
|
||||
SECTION_DATA static u8 sNewSong1[14 + 2 /* padding */] = {
|
||||
0x03,
|
||||
0x1E,
|
||||
0x02,
|
||||
0x1E,
|
||||
0x01,
|
||||
0x1E,
|
||||
0x03,
|
||||
0x28,
|
||||
0x02,
|
||||
0x14,
|
||||
0x03,
|
||||
0x1E,
|
||||
0x01,
|
||||
0x1E,
|
||||
/* padding */
|
||||
0x00,
|
||||
0x00,
|
||||
SECTION_DATA static u16 sNewSong1[7] = {
|
||||
0x031E, 0x021E, 0x011E, 0x0328, 0x0214, 0x031E, 0x011E,
|
||||
};
|
||||
|
||||
/* 803CBC9C-803CBCAC 028DBC 0010+00 1/0 0/0 0/0 .data sNewSong2 */
|
||||
SECTION_DATA static u8 sNewSong2[16] = {
|
||||
0x01, 0x14, 0x02, 0x14, 0x03, 0x14, 0x02, 0x3C, 0x03, 0x14, 0x01, 0x14, 0x02, 0x14, 0x03, 0x1E,
|
||||
SECTION_DATA static u16 sNewSong2[8] = {
|
||||
0x0114, 0x0214, 0x0314, 0x023C, 0x0314, 0x0114, 0x0214, 0x031E,
|
||||
};
|
||||
|
||||
/* 803CBCAC-803CBCC0 028DCC 0012+02 1/0 0/0 0/0 .data sNewSong3 */
|
||||
SECTION_DATA static u8 sNewSong3[18 + 2 /* padding */] = {
|
||||
0x02,
|
||||
0x1E,
|
||||
0x03,
|
||||
0x3C,
|
||||
0x02,
|
||||
0x28,
|
||||
0x01,
|
||||
0x14,
|
||||
0x03,
|
||||
0x3C,
|
||||
0x01,
|
||||
0x14,
|
||||
0x02,
|
||||
0x14,
|
||||
0x01,
|
||||
0x14,
|
||||
0x02,
|
||||
0x2D,
|
||||
/* padding */
|
||||
0x00,
|
||||
0x00,
|
||||
SECTION_DATA static u16 sNewSong3[9] = {
|
||||
0x021E, 0x033C, 0x0228, 0x0114, 0x033C, 0x0114, 0x0214, 0x0114, 0x022D,
|
||||
};
|
||||
|
||||
/* 803CBCC0-803CBD08 -00001 0048+00 1/1 0/0 0/0 .data sGuideData */
|
||||
SECTION_DATA static void* sGuideData[18] = {
|
||||
(void*)0x04000000, (void*)&sHowlTobikusa, (void*)0x06000000, (void*)&sHowlUmakusa,
|
||||
(void*)0x06000000, (void*)&sHowlZeldaSong, (void*)0x06000000, (void*)&sHealingSong,
|
||||
(void*)0x06000000, (void*)&sHowlSoulRequiem, (void*)0x06000000, (void*)&sHowlLightPrelude,
|
||||
(void*)0x07000000, (void*)&sNewSong1, (void*)0x08000000, (void*)&sNewSong2,
|
||||
(void*)0x09000000, (void*)&sNewSong3,
|
||||
SECTION_DATA static Z2WolfHowlData sGuideData[9] = {
|
||||
{4, sHowlTobikusa},
|
||||
{6, sHowlUmakusa},
|
||||
{6, sHowlZeldaSong},
|
||||
{6, sHealingSong},
|
||||
{6, sHowlSoulRequiem},
|
||||
{6, sHowlLightPrelude},
|
||||
{7, sNewSong1},
|
||||
{8, sNewSong2},
|
||||
{9, sNewSong3},
|
||||
};
|
||||
|
||||
/* 80450880-80450884 000300 0004+00 2/2 0/0 0/0 .sdata cPitchDown */
|
||||
@@ -213,8 +181,8 @@ SECTION_SDATA static f32 sStickHigh = 0.5f;
|
||||
SECTION_SDATA static f32 sStickCenter = 1.0f / 5.0f;
|
||||
|
||||
/* 804508A0-804508A8 000320 0008+00 1/0 0/0 0/0 .sdata sHowlTobikusa */
|
||||
SECTION_SDATA static u8 sHowlTobikusa[8] = {
|
||||
0x01, 0x1E, 0x03, 0x1E, 0x01, 0x1E, 0x03, 0x1E,
|
||||
SECTION_SDATA static u16 sHowlTobikusa[4] = {
|
||||
0x011E, 0x031E, 0x011E, 0x031E,
|
||||
};
|
||||
|
||||
/* 80455E60-80455E64 004460 0004+00 8/8 0/0 0/0 .sdata2 @3485 */
|
||||
|
||||
+178
-137
@@ -13,6 +13,7 @@
|
||||
#include "d/a/d_a_horse_static.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/d_bomb.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
@@ -3307,7 +3308,6 @@ extern "C" u8 mGndCheck__11fopAcM_gc_c[84];
|
||||
extern "C" u8 mWaterCheck__11fopAcM_wt_c[84 + 4 /* padding */];
|
||||
extern "C" u8 mDemoArcName__20dStage_roomControl_c[10 + 2 /* padding */];
|
||||
extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32];
|
||||
extern "C" extern u8 g_env_light[4880];
|
||||
extern "C" f32 Zero__4cXyz[3];
|
||||
extern "C" u8 BaseX__4cXyz[12];
|
||||
extern "C" u8 BaseY__4cXyz[12];
|
||||
@@ -3347,6 +3347,10 @@ inline BOOL i_dComIfGs_isEventBit(u16 id) {
|
||||
return g_dComIfG_gameInfo.info.getEvent().isEventBit(id);
|
||||
}
|
||||
|
||||
inline bool i_dComIfGp_checkPlayerStatus1(int param_0, u32 flag) {
|
||||
return g_dComIfG_gameInfo.play.checkPlayerStatus(param_0, 1, flag);
|
||||
}
|
||||
|
||||
/* 8009D87C-8009D884 0981BC 0008+00 0/0 1/1 0/0 .text getE3Zhint__9daAlink_cFv */
|
||||
bool daAlink_c::getE3Zhint() {
|
||||
return false;
|
||||
@@ -15665,8 +15669,8 @@ BOOL daAlink_c::itemButtonCheck(u8 pButton) {
|
||||
return mItemButton & pButton;
|
||||
}
|
||||
|
||||
void daAlink_c::itemButton() {
|
||||
itemButtonCheck(1 << mSelectItemId);
|
||||
BOOL daAlink_c::itemButton() {
|
||||
return itemButtonCheck(1 << mSelectItemId);
|
||||
}
|
||||
|
||||
void daAlink_c::itemTrigger() {
|
||||
@@ -17152,7 +17156,7 @@ asm J3DModelData* daAlink_c::loadAramBmd(u16 param_0, u32 param_1) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::loadAram(u16 param_0, u32 param_1) {
|
||||
asm void* daAlink_c::loadAram(u16 param_0, u32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/loadAram__9daAlink_cFUsUl.s"
|
||||
}
|
||||
@@ -28031,164 +28035,141 @@ asm void daAlink_c::hookshotAtHitCallBack(dCcD_GObjInf* param_0, fopAc_ac_c* par
|
||||
|
||||
/* 8010859C-801085BC 102EDC 0020+00 1/1 0/0 0/0 .text
|
||||
* daAlink_hookshotAtHitCallBack__FP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daAlink_hookshotAtHitCallBack(fopAc_ac_c* param_0, dCcD_GObjInf* param_1,
|
||||
static void daAlink_hookshotAtHitCallBack(fopAc_ac_c* player, dCcD_GObjInf* param_1,
|
||||
fopAc_ac_c* param_2, dCcD_GObjInf* param_3) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/daAlink_hookshotAtHitCallBack__FP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf.s"
|
||||
((daAlink_c*)player)->hookshotAtHitCallBack(param_1, param_2, param_3);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801085BC-80108600 102EFC 0044+00 1/0 0/0 0/0 .text getHookshotTopPos__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm bool daAlink_c::getHookshotTopPos() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/getHookshotTopPos__9daAlink_cFv.s"
|
||||
cXyz* daAlink_c::getHookshotTopPos() {
|
||||
if (checkHookshotItem(mEquipItem)) {
|
||||
return &mHookshotTopPos;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80108600-80108668 102F40 0068+00 1/0 0/0 0/0 .text checkHookshotReturnMode__9daAlink_cCFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm bool daAlink_c::checkHookshotReturnMode() const {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/checkHookshotReturnMode__9daAlink_cCFv.s"
|
||||
bool daAlink_c::checkHookshotReturnMode() const {
|
||||
return checkHookshotItem(mEquipItem) && (mHookshotMode == 4 || mHookshotMode == 5 || mHookshotMode == 6);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80108668-801086DC 102FA8 0074+00 1/0 0/0 0/0 .text checkHookshotShootReturnMode__9daAlink_cCFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm bool daAlink_c::checkHookshotShootReturnMode() const {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/checkHookshotShootReturnMode__9daAlink_cCFv.s"
|
||||
bool daAlink_c::checkHookshotShootReturnMode() const {
|
||||
return (checkHookshotItem(mEquipItem) && mHookshotMode == 3) || checkHookshotReturnMode();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801086DC-8010871C 10301C 0040+00 6/6 0/0 0/0 .text resetHookshotMode__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::resetHookshotMode() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/resetHookshotMode__9daAlink_cFv.s"
|
||||
void daAlink_c::resetHookshotMode() {
|
||||
mHookshotMode = 0;
|
||||
initLockAt();
|
||||
mSearchBallScale = __float_max[0];
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8010871C-80108784 10305C 0068+00 0/0 0/0 1/1 .text
|
||||
* setEnemyBombHookshot__9daAlink_cFP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::setEnemyBombHookshot(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/setEnemyBombHookshot__9daAlink_cFP10fopAc_ac_c.s"
|
||||
bool daAlink_c::setEnemyBombHookshot(fopAc_ac_c* actor) {
|
||||
if (field_0x284c.getActor() != NULL) {
|
||||
cancelHookshotCarry();
|
||||
field_0x284c.setData(actor);
|
||||
fopAcM_setHookCarryNow(actor);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80108784-801087B0 1030C4 002C+00 3/3 0/0 0/0 .text checkLv7BossRoom__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::checkLv7BossRoom() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/checkLv7BossRoom__9daAlink_cFv.s"
|
||||
bool daAlink_c::checkLv7BossRoom() {
|
||||
return checkStageName("D_MN07A");
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801087B0-80108828 1030F0 0078+00 6/6 0/0 0/0 .text
|
||||
* checkHookshotStickBG__9daAlink_cFR13cBgS_PolyInfo */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::checkHookshotStickBG(cBgS_PolyInfo& param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/checkHookshotStickBG__9daAlink_cFR13cBgS_PolyInfo.s"
|
||||
bool daAlink_c::checkHookshotStickBG(cBgS_PolyInfo& poly) {
|
||||
if (dComIfG_Bgsp().ChkPolyHSStick(poly)) {
|
||||
dBgW_Base* bgw = dComIfG_Bgsp().GetBgWBasePointer(poly);
|
||||
if (bgw != NULL && bgw->ChkPushPullOk()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80108828-80108864 103168 003C+00 4/4 0/0 0/0 .text cancelHookshotCarry__9daAlink_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::cancelHookshotCarry() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/cancelHookshotCarry__9daAlink_cFv.s"
|
||||
void daAlink_c::cancelHookshotCarry() {
|
||||
if (field_0x284c.getActor() != NULL) {
|
||||
fopAcM_cancelHookCarryNow(field_0x284c.getActor());
|
||||
field_0x284c.clearData();
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80108864-801088A0 1031A4 003C+00 2/2 0/0 0/0 .text changeHookshotDrawModel__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::changeHookshotDrawModel() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/changeHookshotDrawModel__9daAlink_cFv.s"
|
||||
void daAlink_c::changeHookshotDrawModel() {
|
||||
if (mEquipItem == HOOKSHOT && field_0x3020 == 1) {
|
||||
J3DModel* old_item = mHeldItemModel;
|
||||
mHeldItemModel = field_0x0710;
|
||||
field_0x0710 = old_item;
|
||||
|
||||
J3DModel* old_item2 = field_0x070c;
|
||||
field_0x070c = field_0x0714;
|
||||
field_0x0714 = old_item2;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801088A0-801088C8 1031E0 0028+00 6/6 0/0 0/0 .text checkHookshotRoofLv7Boss__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::checkHookshotRoofLv7Boss() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/checkHookshotRoofLv7Boss__9daAlink_cFv.s"
|
||||
BOOL daAlink_c::checkHookshotRoofLv7Boss() {
|
||||
return mCargoCarryActor.getActor() != NULL && fopAcM_GetName(mCargoCarryActor.getActor()) == PROC_B_DR;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801088C8-80108980 103208 00B8+00 2/2 0/0 0/0 .text checkChaseHookshot__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::checkChaseHookshot() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/checkChaseHookshot__9daAlink_cFv.s"
|
||||
BOOL daAlink_c::checkChaseHookshot() {
|
||||
if (field_0x2804 == NULL) {
|
||||
if (mTargetedActor != NULL) {
|
||||
field_0x2804 = mTargetedActor;
|
||||
} else {
|
||||
field_0x2804 = this;
|
||||
}
|
||||
} else if (field_0x2804 != mTargetedActor) {
|
||||
field_0x2804 = this;
|
||||
}
|
||||
|
||||
if (mTargetedActor != NULL) {
|
||||
s16 actorName = fopAcM_GetName(mTargetedActor);
|
||||
return field_0x2804 == mTargetedActor && (checkBossOctaIealRoom() || actorName == PROC_Obj_FallObj || actorName == PROC_B_DR || actorName == PROC_E_PH);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80108980-801089E8 1032C0 0068+00 2/2 0/0 0/0 .text checkOctaIealSpecialCollect__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::checkOctaIealSpecialCollect() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/checkOctaIealSpecialCollect__9daAlink_cFv.s"
|
||||
BOOL daAlink_c::checkOctaIealSpecialCollect() {
|
||||
return mActionID == 0xC6 && checkHookshotItem(mEquipItem) && checkBossOctaIealRoom();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801089E8-80108A18 103328 0030+00 5/5 0/0 0/0 .text checkBossOctaIealRoom__9daAlink_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::checkBossOctaIealRoom() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/checkBossOctaIealRoom__9daAlink_cFv.s"
|
||||
BOOL daAlink_c::checkBossOctaIealRoom() {
|
||||
return checkStageName("D_MN01A");
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80108A18-80108A3C 103358 0024+00 19/19 0/0 0/0 .text checkHookshotWait__9daAlink_cCFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::checkHookshotWait() const {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/checkHookshotWait__9daAlink_cCFv.s"
|
||||
BOOL daAlink_c::checkHookshotWait() const {
|
||||
return mHookshotMode == 0 || mHookshotMode == 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80108A3C-80108A90 10337C 0054+00 1/1 0/0 0/0 .text setHookshotCatchNow__9daAlink_cFv
|
||||
*/
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void daAlink_c::setHookshotCatchNow() {
|
||||
field_0x3026 = 5;
|
||||
dComIfGp_getVibration().StartShock(4, 1, cXyz(0.0f, 1.0f, 0.0f));
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -28197,27 +28178,78 @@ asm void daAlink_c::setHookshotCatchNow() {
|
||||
#include "asm/d/a/d_a_alink/setHookshotCatchNow__9daAlink_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80108A90-80108B34 1033D0 00A4+00 1/0 0/0 0/0 .text setHookshotCarryOffset__9daAlink_cFUiPC4cXyz
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm bool daAlink_c::setHookshotCarryOffset(unsigned int param_0, cXyz const* param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/setHookshotCarryOffset__9daAlink_cFUiPC4cXyz.s"
|
||||
bool daAlink_c::setHookshotCarryOffset(unsigned int actorID, cXyz const* offset) {
|
||||
if (i_dComIfGp_checkPlayerStatus1(0, 0x10000)) {
|
||||
fopAc_ac_c* carryActor = mCargoCarryActor.getActor();
|
||||
|
||||
if (carryActor != NULL && fopAcM_checkHookCarryNow(carryActor) && actorID == mCargoCarryActor.getID()) {
|
||||
field_0x37c8 = *offset;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
fopAc_ac_c* actor = field_0x284c.getActor();
|
||||
if (actor != NULL && fopAcM_checkHookCarryNow(actor) && actorID == field_0x284c.getID()) {
|
||||
field_0x37f8 = *offset;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80108B34-80108DB4 103474 0280+00 1/1 0/0 0/0 .text setHookshotModel__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::setHookshotModel() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/setHookshotModel__9daAlink_cFv.s"
|
||||
void daAlink_c::setHookshotModel() {
|
||||
J3DAnmTransform* bck = (J3DAnmTransform*)mAnmHeap9.loadDataIdx(0x17E);
|
||||
|
||||
JKRHeap* heap = setItemHeap();
|
||||
field_0x730.init(bck, 0, 2, lit_6040, 0, -1, false);
|
||||
|
||||
J3DModelData* heldItem_modelData = loadAramBmd(0x316, 0x5C00);
|
||||
mHeldItemModel = initModel(heldItem_modelData, 0x80000, 0);
|
||||
|
||||
J3DModelData* modelData = loadAramBmd(0x318, 0x3800);
|
||||
field_0x070c = initModel(modelData, 0x80000, 0);
|
||||
field_0x0710 = initModel(mHeldItemModel->getModelData(), 0x80000, 0);
|
||||
field_0x0714 = initModel(field_0x070c->getModelData(), 0x80000, 0);
|
||||
|
||||
field_0x0768 = loadAramBmd(0x317, 0x1000);
|
||||
field_0x770 = new hsChainShape_c();
|
||||
field_0x076c = new Z2SoundObjSimple();
|
||||
|
||||
mpHookshotLinChk = new dBgS_ObjLinChk();
|
||||
mpHookshotLinChk->OffFullGrp();
|
||||
mpHookshotLinChk->OnWaterGrp();
|
||||
|
||||
J3DAnmTransform* bck2 = (J3DAnmTransform*)loadAram(0x17F, 0x800);
|
||||
field_0x74C.init(bck2, 0, 2, lit_6040, 0, -1, false);
|
||||
mDoExt_setCurrentHeap(heap);
|
||||
|
||||
resetHookshotMode();
|
||||
field_0x770->setUserArea((u32)this);
|
||||
field_0x2f94 = 1;
|
||||
if (mEquipItem == W_HOOKSHOT) {
|
||||
field_0x2f95 = 6;
|
||||
}
|
||||
|
||||
field_0x3020 = 0;
|
||||
field_0x3024 = 0;
|
||||
|
||||
field_0x122C[0].SetAtSpl(dCcG_At_Spl_UNK_0);
|
||||
field_0x122C[0].OffAtNoHitMark();
|
||||
field_0x122C[0].SetAtAtp(0);
|
||||
field_0x122C[0].SetR(lit_7808);
|
||||
field_0x122C[0].SetAtSe(8);
|
||||
field_0x122C[0].SetAtType(0x4000);
|
||||
field_0x122C[0].SetAtHitMark(1);
|
||||
field_0x122C[0].OnAtSetBit();
|
||||
field_0x122C[0].SetAtHitCallback(daAlink_hookshotAtHitCallBack);
|
||||
field_0x122C[0].SetAtMtrl(0);
|
||||
field_0x076c->init(&mHookshotTopPos, 1);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80108DB4-80108EEC 1036F4 0138+00 6/6 0/0 0/0 .text setHookshotSight__9daAlink_cFv */
|
||||
#pragma push
|
||||
@@ -28230,24 +28262,37 @@ asm void daAlink_c::setHookshotSight() {
|
||||
#pragma pop
|
||||
|
||||
/* 80108EEC-80108F64 10382C 0078+00 1/1 0/0 0/0 .text cancelHookshotShot__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::cancelHookshotShot() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/cancelHookshotShot__9daAlink_cFv.s"
|
||||
void daAlink_c::cancelHookshotShot() {
|
||||
if (checkHookshotItem(mEquipItem) && (mHookshotMode == 3 || mHookshotMode == 5 || mHookshotMode == 4)) {
|
||||
if (mActionID != 0xC5 && mActionID != 0xC6 && mActionID != 0xC4) {
|
||||
mHookshotMode = 6;
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80108F64-8010903C 1038A4 00D8+00 4/4 0/0 0/0 .text cancelHookshotMove__9daAlink_cFv */
|
||||
// checkAttentionLock has weird codegen
|
||||
#ifdef NONMATCHING
|
||||
bool daAlink_c::cancelHookshotMove() {
|
||||
if (mFastShotTime == 0 && mHookshotMode == 0) {
|
||||
if (checkHookshotAnime() && (mTargetedActor == NULL && !i_checkAttentionLock() || !itemButton())) {
|
||||
resetUpperAnime(UPPER_NOW, -1.0f);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::cancelHookshotMove() {
|
||||
asm bool daAlink_c::cancelHookshotMove() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/cancelHookshotMove__9daAlink_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8010903C-80109070 10397C 0034+00 2/2 0/0 0/0 .text
|
||||
* checkHookshotReadyMaterialOffMode__9daAlink_cCFv */
|
||||
@@ -32159,10 +32204,6 @@ asm void daAlink_c::checkWolfLandAction(int param_0) {
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
inline bool i_dComIfGp_checkPlayerStatus1(int param_0, u32 flag) {
|
||||
return g_dComIfG_gameInfo.play.checkPlayerStatus(param_0, 1, flag);
|
||||
}
|
||||
|
||||
/* 80129958-801299A8 124298 0050+00 1/1 0/0 1/1 .text checkMidnaUseAbility__9daAlink_cCFv
|
||||
*/
|
||||
BOOL daAlink_c::checkMidnaUseAbility() const {
|
||||
@@ -35893,8 +35934,8 @@ bool daPy_py_c::getDpdFarFlg() const {
|
||||
}
|
||||
|
||||
/* 8014188C-80141894 13C1CC 0008+00 1/0 0/0 0/0 .text getHookshotTopPos__9daPy_py_cFv */
|
||||
bool daPy_py_c::getHookshotTopPos() {
|
||||
return false;
|
||||
cXyz* daPy_py_c::getHookshotTopPos() {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* 80141894-8014189C 13C1D4 0008+00 1/0 0/0 0/0 .text checkHookshotReturnMode__9daPy_py_cCFv */
|
||||
|
||||
+4
-85
@@ -37,80 +37,6 @@ struct daNpcT_MatAnm_c {
|
||||
/* 8014D24C */ ~daNpcT_MatAnm_c();
|
||||
};
|
||||
|
||||
struct daNpcF_c {
|
||||
struct daNpcF_anmPlayData {};
|
||||
|
||||
/* 80152014 */ void execute();
|
||||
/* 801522AC */ void draw(int, int, f32, _GXColorS10*, int);
|
||||
/* 80152614 */ void tgHitCallBack(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
|
||||
/* 80152654 */ void srchAttnActor1(void*, void*);
|
||||
/* 801526E8 */ void srchActor(void*, void*);
|
||||
/* 8015276C */ void setMtx();
|
||||
/* 801527FC */ void setMtx2();
|
||||
/* 801528C8 */ void initialize();
|
||||
/* 80152B2C */ void getTrnsfrmKeyAnmP(char*, int);
|
||||
/* 80152B68 */ void getTexPtrnAnmP(char*, int);
|
||||
/* 80152BA4 */ void getTexSRTKeyAnmP(char*, int);
|
||||
/* 80152BE0 */ void getTevRegKeyAnmP(char*, int);
|
||||
/* 80152C1C */ void setMcaMorfAnm(J3DAnmTransformKey*, f32, f32, int, int, int);
|
||||
/* 80152C80 */ void setBckAnm(J3DAnmTransform*, f32, int, int, int, bool);
|
||||
/* 80152CC4 */ void setBtpAnm(J3DAnmTexPattern*, J3DModelData*, f32, int);
|
||||
/* 80152D04 */ void setBtkAnm(J3DAnmTextureSRTKey*, J3DModelData*, f32, int);
|
||||
/* 80152D44 */ void setBrkAnm(J3DAnmTevRegKey*, J3DModelData*, f32, int);
|
||||
/* 80152D84 */ void setEnvTevColor();
|
||||
/* 80152DE0 */ void setRoomNo();
|
||||
/* 80152E24 */ void chkEndAnm(f32);
|
||||
/* 80152EC4 */ void chkEndAnm(J3DFrameCtrl*, f32);
|
||||
/* 80152F40 */ void playAllAnm();
|
||||
/* 80153150 */ void playExpressionAnm(daNpcF_c::daNpcF_anmPlayData***);
|
||||
/* 80153264 */ void playMotionAnm(daNpcF_c::daNpcF_anmPlayData***);
|
||||
/* 8015337C */ void setLookatMtx(int, int*, f32);
|
||||
/* 80153578 */ void hitChk2(dCcD_Cyl*, int, int);
|
||||
/* 80153658 */ void setDamage(int, int, int);
|
||||
/* 80153718 */ void ctrlMsgAnm(int&, int&, fopAc_ac_c*, int);
|
||||
/* 8015387C */ void orderEvent(int, char*, u16, u16, u8, u16);
|
||||
/* 80153954 */ void changeEvent(char*, char*, u16, u16);
|
||||
/* 801539F0 */ void chkActorInSight(fopAc_ac_c*, f32);
|
||||
/* 80153A78 */ void chkActorInArea(fopAc_ac_c*, cXyz, cXyz, s16);
|
||||
/* 80153BDC */ void chkActorInAttnArea(fopAc_ac_c*, fopAc_ac_c*, int);
|
||||
/* 80153D1C */ void initTalk(int, fopAc_ac_c**);
|
||||
/* 80153D84 */ void talkProc(int*, int, fopAc_ac_c**);
|
||||
/* 80153EF4 */ void turn(s16, f32, int);
|
||||
/* 801540A4 */ void step(s16, int, int, int);
|
||||
/* 80154250 */ void setAngle(s16);
|
||||
/* 80154278 */ void getDistTableIdx(int, int);
|
||||
/* 801542A0 */ void getEvtAreaTagP(int, int);
|
||||
/* 8015436C */ void getAttnActorP(int, void* (*)(void*, void*), f32, f32, f32, f32, s16, int,
|
||||
int);
|
||||
/* 80154730 */ void chkActorInSight2(fopAc_ac_c*, f32, s16);
|
||||
/* 80154834 */ void chkPointInArea(cXyz, cXyz, f32, f32, f32, s16);
|
||||
/* 801548F4 */ void chkPointInArea(cXyz, cXyz, cXyz, s16);
|
||||
/* 8015496C */ void getAttentionPos(fopAc_ac_c*);
|
||||
/* 801549E0 */ void chkFindPlayer2(int, s16);
|
||||
/* 80154BD8 */ void setHitodamaPrtcl();
|
||||
/* 80155BB4 */ void setCollisions();
|
||||
/* 80155BB8 */ void setAttnPos();
|
||||
/* 80155BBC */ void adjustShapeAngle();
|
||||
/* 80155BC0 */ bool main();
|
||||
/* 80155BC8 */ void setParam();
|
||||
/* 80155BCC */ void drawOtherMdls();
|
||||
/* 80155BD0 */ bool drawDbgInfo();
|
||||
/* 80155BD8 */ bool ctrlBtk();
|
||||
/* 80155BE0 */ bool setExpressionAnm(int, bool);
|
||||
/* 80155BE8 */ void setMotionAnm(int, f32);
|
||||
/* 80155BEC */ void setMotion(int, f32, int);
|
||||
/* 80155BF0 */ void setExpression(int, f32);
|
||||
/* 80155BF4 */ ~daNpcF_c();
|
||||
/* 80155EC8 */ bool setExpressionBtp(int);
|
||||
|
||||
static u8 const mCcDObjInfo[48];
|
||||
static u8 mCcDCyl[68];
|
||||
static u8 mCcDSph[64];
|
||||
static u8 mFindActorPList[400];
|
||||
static u8 mFindCount[4];
|
||||
static u8 mSrchActorName[2 + 2 /* padding */];
|
||||
};
|
||||
|
||||
struct dPath {};
|
||||
|
||||
struct daNpcF_SPCurve_c {
|
||||
@@ -163,15 +89,6 @@ struct daNpcF_Lookat_c {
|
||||
/* 80151FE0 */ void clrRotAngle();
|
||||
};
|
||||
|
||||
struct daNpcF_ActorMngr_c {
|
||||
/* 801506B0 */ void initialize();
|
||||
/* 801506D8 */ void entry(unsigned int);
|
||||
/* 801506BC */ void entry(fopAc_ac_c*);
|
||||
/* 801506E0 */ void remove();
|
||||
/* 801506EC */ void getActorP();
|
||||
/* 80155E40 */ ~daNpcF_ActorMngr_c();
|
||||
};
|
||||
|
||||
struct daBaseNpc_path_c {
|
||||
/* 8014D998 */ daBaseNpc_path_c();
|
||||
/* 8014D9A8 */ void isPath();
|
||||
@@ -4762,7 +4679,8 @@ void daNpcF_c::setExpression(int param_0, f32 param_1) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm daNpcF_c::~daNpcF_c() {
|
||||
// asm daNpcF_c::~daNpcF_c() {
|
||||
extern "C" asm void __dt__8daNpcF_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_npc/__dt__8daNpcF_cFv.s"
|
||||
}
|
||||
@@ -4772,7 +4690,8 @@ asm daNpcF_c::~daNpcF_c() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm daNpcF_ActorMngr_c::~daNpcF_ActorMngr_c() {
|
||||
// asm daNpcF_ActorMngr_c::~daNpcF_ActorMngr_c() {
|
||||
extern "C" asm void __dt__18daNpcF_ActorMngr_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_npc/__dt__18daNpcF_ActorMngr_cFv.s"
|
||||
}
|
||||
|
||||
+1
-1
@@ -671,7 +671,7 @@ bool dBgS::GetPolyAttackThrough(cBgS_PolyInfo const& poly) {
|
||||
}
|
||||
|
||||
/* 800751F8-8007524C 06FB38 0054+00 0/0 1/1 0/0 .text ChkPolyHSStick__4dBgSFRC13cBgS_PolyInfo */
|
||||
bool dBgS::ChkPolyHSStick(cBgS_PolyInfo const& poly) {
|
||||
u32 dBgS::ChkPolyHSStick(cBgS_PolyInfo const& poly) {
|
||||
int bg_index = poly.GetBgIndex();
|
||||
if (m_chk_element[bg_index].ChkUsed()) {
|
||||
return m_chk_element[bg_index].m_bgw_base_ptr->GetPolyHSStick(poly.GetPolyIndex());
|
||||
|
||||
+1
-1
@@ -1076,7 +1076,7 @@ asm void dBgW::GetPolyArrowThrough(int param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm bool dBgW::GetPolyHSStick(int param_0) {
|
||||
asm u32 dBgW::GetPolyHSStick(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/bg/d_bg_w/GetPolyHSStick__4dBgWFi.s"
|
||||
}
|
||||
|
||||
@@ -686,7 +686,7 @@ asm void dBgWKCol::GetPolyArrowThrough(int param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dBgWKCol::GetPolyHSStick(int param_0) {
|
||||
asm u32 dBgWKCol::GetPolyHSStick(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/bg/d_bg_w_kcol/GetPolyHSStick__8dBgWKColFi.s"
|
||||
}
|
||||
|
||||
@@ -263,7 +263,6 @@ extern "C" extern void* __vt__9J3DPacket[5];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" u8 mClipper__14mDoLib_clipper[92];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_env_light[4880];
|
||||
extern "C" extern u8 g_envHIO[68];
|
||||
extern "C" u8 sincosTable___5JMath[65536];
|
||||
extern "C" u8 mBackColor__13mDoGph_gInf_c[4];
|
||||
|
||||
+4
-4
@@ -163,19 +163,19 @@ asm void STControl::Yinit() {
|
||||
#endif
|
||||
|
||||
f32 STControl::getValueStick() {
|
||||
return mDoCPd_c::getStickValue(mDoCPd_c::PAD_0);
|
||||
return mDoCPd_c::getStickValue(PAD_1);
|
||||
}
|
||||
|
||||
s16 STControl::getAngleStick() {
|
||||
return mDoCPd_c::getStickAngle(mDoCPd_c::PAD_0);
|
||||
return mDoCPd_c::getStickAngle(PAD_1);
|
||||
}
|
||||
|
||||
f32 CSTControl::getValueStick() {
|
||||
return mDoCPd_c::getSubStickValue(mDoCPd_c::PAD_0);
|
||||
return mDoCPd_c::getSubStickValue(PAD_1);
|
||||
}
|
||||
|
||||
s16 CSTControl::getAngleStick() {
|
||||
return mDoCPd_c::getSubStickAngle(mDoCPd_c::PAD_0);
|
||||
return mDoCPd_c::getSubStickAngle(PAD_1);
|
||||
}
|
||||
|
||||
/* 8003219C-8003242C 02CADC 0290+00 0/0 24/24 0/0 .text checkTrigger__9STControlFv */
|
||||
|
||||
@@ -154,7 +154,6 @@ extern "C" void _restgpr_29();
|
||||
extern "C" void memcmp();
|
||||
extern "C" extern void* __vt__14J3DMaterialAnm[4];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" extern u8 g_env_light[4880];
|
||||
extern "C" u8 mFrameBufferTimg__13mDoGph_gInf_c[4];
|
||||
extern "C" u8 mZbufferTimg__13mDoGph_gInf_c[4];
|
||||
extern "C" u8 sCurrentHeap__7JKRHeap[4];
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
|
||||
#include "d/kankyo/d_kankyo.h"
|
||||
#include "MSL_C/MSL_Common/Src/mem.h"
|
||||
#include "Z2AudioLib/Z2EnvSeMgr.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/kankyo/d_kankyo_data.h"
|
||||
#include "d/msg/d_msg_object.h"
|
||||
@@ -1934,7 +1933,6 @@ asm void dScnKy_env_light_c::settingTevStruct_plightcol_plus(cXyz* param_0, dKy_
|
||||
#pragma pop
|
||||
|
||||
/* 8042DD70-8042E07C 05AA90 030C+00 1/2 8/8 9/9 .bss g_mEnvSeMgr */
|
||||
extern Z2EnvSeMgr g_mEnvSeMgr;
|
||||
Z2EnvSeMgr g_mEnvSeMgr;
|
||||
|
||||
/* 8042E07C-8042E7BC 05AD9C 0740+00 5/4 0/0 0/0 .bss lightStatusData */
|
||||
|
||||
@@ -427,7 +427,6 @@ extern "C" extern void* __vt__8J3DModel[9];
|
||||
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" extern u8 g_drawHIO[3880];
|
||||
extern "C" extern u8 g_meter2_info[248];
|
||||
extern "C" f32 Zero__4cXyz[3];
|
||||
|
||||
@@ -277,15 +277,15 @@ inline BOOL dComIfGp_event_runCheck() {
|
||||
}
|
||||
|
||||
BOOL dMw_UP_TRIGGER() {
|
||||
return (bool)mDoCPd_c::getTrigUp(mDoCPd_c::PAD_0);
|
||||
return (bool)mDoCPd_c::getTrigUp(PAD_1);
|
||||
}
|
||||
|
||||
bool dMw_DOWN_TRIGGER() {
|
||||
return mDoCPd_c::getTrigDown(mDoCPd_c::PAD_0);
|
||||
return mDoCPd_c::getTrigDown(PAD_1);
|
||||
}
|
||||
|
||||
BOOL dMw_LEFT_TRIGGER() {
|
||||
if (mDoCPd_c::getTrigLeft(mDoCPd_c::PAD_0) && !dMw_UP_TRIGGER()) {
|
||||
if (mDoCPd_c::getTrigLeft(PAD_1) && !dMw_UP_TRIGGER()) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
@@ -293,7 +293,7 @@ BOOL dMw_LEFT_TRIGGER() {
|
||||
}
|
||||
|
||||
BOOL dMw_RIGHT_TRIGGER() {
|
||||
if (mDoCPd_c::getTrigRight(mDoCPd_c::PAD_0) && !dMw_UP_TRIGGER()) {
|
||||
if (mDoCPd_c::getTrigRight(PAD_1) && !dMw_UP_TRIGGER()) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
@@ -301,19 +301,19 @@ BOOL dMw_RIGHT_TRIGGER() {
|
||||
}
|
||||
|
||||
bool dMw_A_TRIGGER() {
|
||||
return mDoCPd_c::getTrigA(mDoCPd_c::PAD_0);
|
||||
return mDoCPd_c::getTrigA(PAD_1);
|
||||
}
|
||||
|
||||
BOOL dMw_B_TRIGGER() {
|
||||
return (bool)mDoCPd_c::getTrigB(mDoCPd_c::PAD_0);
|
||||
return (bool)mDoCPd_c::getTrigB(PAD_1);
|
||||
}
|
||||
|
||||
bool dMw_Z_TRIGGER() {
|
||||
return mDoCPd_c::getTrigZ(mDoCPd_c::PAD_0);
|
||||
return mDoCPd_c::getTrigZ(PAD_1);
|
||||
}
|
||||
|
||||
BOOL dMw_START_TRIGGER() {
|
||||
return (bool)mDoCPd_c::getTrigStart(mDoCPd_c::PAD_0);
|
||||
return (bool)mDoCPd_c::getTrigStart(PAD_1);
|
||||
}
|
||||
|
||||
void dMw_onPauseWindow() {
|
||||
@@ -2011,9 +2011,9 @@ void dMw_c::dMw_collect_create() {
|
||||
mpMenuCollect = new dMenu_Collect_c(mpHeap, mpStick, mpCStick);
|
||||
mpMenuCollect->_create();
|
||||
|
||||
if (mDoCPd_c::getHoldLockL(mDoCPd_c::PAD_0)) {
|
||||
if (mDoCPd_c::getHoldLockL(PAD_1)) {
|
||||
dMw_onButtonBit(1);
|
||||
} else if (mDoCPd_c::getHoldLockR(mDoCPd_c::PAD_0)) {
|
||||
} else if (mDoCPd_c::getHoldLockR(PAD_1)) {
|
||||
dMw_onButtonBit(2);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -474,7 +474,6 @@ extern "C" u8 j_o_id__8dPa_name[10 + 2 /* padding */];
|
||||
extern "C" u8 s_o_id__8dPa_name[28];
|
||||
extern "C" u8 mClipper__14mDoLib_clipper[92];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_env_light[4880];
|
||||
extern "C" u8 sincosTable___5JMath[65536];
|
||||
extern "C" extern u32 g_whiteColor;
|
||||
extern "C" u8 mFrameBufferTimg__13mDoGph_gInf_c[4];
|
||||
|
||||
@@ -126,7 +126,6 @@ extern "C" void __construct_array();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_env_light[4880];
|
||||
extern "C" f32 Zero__4cXyz[3];
|
||||
extern "C" extern u8 g_dComIfAc_gameInfo[8];
|
||||
extern "C" u8 m_object__7dDemo_c[4];
|
||||
|
||||
+39
-88
@@ -4,120 +4,71 @@
|
||||
//
|
||||
|
||||
#include "m_Do/m_Do_DVDError.h"
|
||||
#include "m_Do/m_Do_dvd_thread.h"
|
||||
#include "m_Do/m_Do_reset.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct mDoDvdThd {
|
||||
/* 800158B4 */ void suspend();
|
||||
};
|
||||
|
||||
struct OSThread {};
|
||||
|
||||
struct OSContext {};
|
||||
|
||||
struct OSAlarm {};
|
||||
|
||||
struct JKRThread {
|
||||
/* 802D16B8 */ JKRThread(OSThread*, int);
|
||||
/* 802D1758 */ ~JKRThread();
|
||||
};
|
||||
|
||||
struct JKRHeap {
|
||||
/* 802CE438 */ void becomeCurrentHeap();
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void mDoDvdErr_ThdInit__Fv();
|
||||
extern "C" void mDoDvdErr_ThdCleanup__Fv();
|
||||
extern "C" static void mDoDvdErr_Watch__FPv();
|
||||
extern "C" static void AlarmHandler__FP7OSAlarmP9OSContext();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoExt_getAssertHeap__Fv();
|
||||
extern "C" void suspend__9mDoDvdThdFv();
|
||||
extern "C" void becomeCurrentHeap__7JKRHeapFv();
|
||||
extern "C" void __ct__9JKRThreadFP8OSThreadi();
|
||||
extern "C" void __dt__9JKRThreadFv();
|
||||
extern "C" void OSCreateAlarm();
|
||||
extern "C" void OSSetPeriodicAlarm();
|
||||
extern "C" void OSCancelAlarm();
|
||||
extern "C" void OSDisableInterrupts();
|
||||
extern "C" void OSGetCurrentThread();
|
||||
extern "C" void OSCreateThread();
|
||||
extern "C" void OSCancelThread();
|
||||
extern "C" void OSResumeThread();
|
||||
extern "C" void OSSuspendThread();
|
||||
extern "C" void OSGetThreadPriority();
|
||||
extern "C" void OSGetTime();
|
||||
extern "C" void DVDGetDriveStatus();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern u8 data_80450C88[8];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803DECC0-803DEFE0 00B9E0 0318+08 4/4 0/0 0/0 .bss DvdErr_thread */
|
||||
static u8 DvdErr_thread[792 + 8 /* padding */];
|
||||
static OSThread DvdErr_thread;
|
||||
|
||||
/* 803DEFE0-803DFBE0 00BD00 0C00+00 0/1 0/0 0/0 .bss DvdErr_stack */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
static u8 DvdErr_stack[3072];
|
||||
static u8 DvdErr_stack[3072] ALIGN_DECL(16);
|
||||
#pragma pop
|
||||
|
||||
/* 803DFBE0-803DFC20 00C900 0028+18 1/2 0/0 0/0 .bss Alarm */
|
||||
static u8 Alarm[40 + 24 /* padding */];
|
||||
static OSAlarm Alarm;
|
||||
|
||||
/* 8001659C-8001665C 010EDC 00C0+00 0/0 1/1 0/0 .text mDoDvdErr_ThdInit__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoDvdErr_ThdInit() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_DVDError/mDoDvdErr_ThdInit__Fv.s"
|
||||
void mDoDvdErr_ThdInit() {
|
||||
if (!data_80450C88) {
|
||||
OSTime time = OSGetTime();
|
||||
OSThread* curThread = OSGetCurrentThread();
|
||||
s32 priority = OSGetThreadPriority(curThread);
|
||||
|
||||
OSCreateThread(&DvdErr_thread, mDoDvdErr_Watch, NULL, DvdErr_stack + sizeof(DvdErr_stack), sizeof(DvdErr_stack), priority - 3, 1);
|
||||
OSResumeThread(&DvdErr_thread);
|
||||
OSCreateAlarm(&Alarm);
|
||||
OSSetPeriodicAlarm(&Alarm, time, OS_BUS_CLOCK / 4, AlarmHandler);
|
||||
|
||||
data_80450C88 = 1;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8001665C-800166A4 010F9C 0048+00 0/0 1/1 0/0 .text mDoDvdErr_ThdCleanup__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoDvdErr_ThdCleanup() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_DVDError/mDoDvdErr_ThdCleanup__Fv.s"
|
||||
void mDoDvdErr_ThdCleanup() {
|
||||
if (data_80450C88) {
|
||||
OSCancelThread(&DvdErr_thread);
|
||||
OSCancelAlarm(&Alarm);
|
||||
data_80450C88 = 0;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800166A4-80016704 010FE4 0060+00 1/1 0/0 0/0 .text mDoDvdErr_Watch__FPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void mDoDvdErr_Watch(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_DVDError/mDoDvdErr_Watch__FPv.s"
|
||||
static void mDoDvdErr_Watch(void*) {
|
||||
OSDisableInterrupts();
|
||||
{ JKRThread thread(OSGetCurrentThread(), 0); }
|
||||
|
||||
mDoExt_getAssertHeap()->becomeCurrentHeap();
|
||||
|
||||
do {
|
||||
if (DVDGetDriveStatus() == DVD_STATE_FATAL_ERROR) {
|
||||
mDoDvdThd::suspend();
|
||||
}
|
||||
OSSuspendThread(&DvdErr_thread);
|
||||
} while (true);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80016704-8001672C 011044 0028+00 1/1 0/0 0/0 .text AlarmHandler__FP7OSAlarmP9OSContext
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void AlarmHandler(OSAlarm* param_0, OSContext* param_1) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_DVDError/AlarmHandler__FP7OSAlarmP9OSContext.s"
|
||||
static void AlarmHandler(OSAlarm*, OSContext*) {
|
||||
OSResumeThread(&DvdErr_thread);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
+43
-115
@@ -4,40 +4,17 @@
|
||||
//
|
||||
|
||||
#include "m_Do/m_Do_Reset.h"
|
||||
#include "m_Do/m_Do_DVDError.h"
|
||||
#include "m_Do/m_Do_Audio.h"
|
||||
#include "m_Do/m_Do_MemCard.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/gx/GX.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct Z2AudioMgr {
|
||||
/* 802CDA6C */ void hasReset() const;
|
||||
|
||||
static u8 mAudioMgrPtr[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
struct JUTXfb {
|
||||
/* 802E5214 */ void clearIndex();
|
||||
|
||||
static u8 sManager[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
struct JUTVideo {
|
||||
/* 802E4CAC */ void destroyManager();
|
||||
};
|
||||
|
||||
struct JUTGamePad {
|
||||
struct C3ButtonReset {
|
||||
static u8 sCallback[4];
|
||||
static u8 sCallbackArg[4 + 4 /* padding */];
|
||||
};
|
||||
};
|
||||
|
||||
struct JASTaskThread {
|
||||
/* 8028FE88 */ void pause(bool);
|
||||
};
|
||||
#include "JSystem/JUtility/JUTGamePad.h"
|
||||
#include "JSystem/JUtility/JUTVideo.h"
|
||||
#include "JSystem/JUtility/JUTXfb.h"
|
||||
#include "JSystem/JAudio2/JASDvdThread.h"
|
||||
#include "SSystem/SComponent/c_API_controller_pad.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
@@ -51,13 +28,11 @@ extern "C" u32 getResetData__6mDoRstFv();
|
||||
extern "C" extern char const* const m_Do_m_Do_Reset__stringBase0;
|
||||
extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */];
|
||||
extern "C" extern u8 struct_80450C80;
|
||||
extern "C" extern u8 data_80450C88[8];
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void OSAttention();
|
||||
extern "C" void mDoDvdErr_ThdCleanup__Fv();
|
||||
extern "C" void cAPICPad_recalibrate__Fv();
|
||||
extern "C" void pause__13JASTaskThreadFb();
|
||||
@@ -66,29 +41,15 @@ extern "C" void hasReset__10Z2AudioMgrCFv();
|
||||
extern "C" void destroyManager__8JUTVideoFv();
|
||||
extern "C" void clearIndex__6JUTXfbFv();
|
||||
extern "C" void LCDisable();
|
||||
extern "C" void OSDisableInterrupts();
|
||||
extern "C" void OSRestoreInterrupts();
|
||||
extern "C" void OSSetSaveRegion();
|
||||
extern "C" void OSResetSystem();
|
||||
extern "C" void OSGetCurrentThread();
|
||||
extern "C" void OSCancelThread();
|
||||
extern "C" void OSDetachThread();
|
||||
extern "C" void OSSuspendThread();
|
||||
extern "C" void DVDGetDriveStatus();
|
||||
extern "C" void DVDCheckDisk();
|
||||
extern "C" void VIWaitForRetrace();
|
||||
extern "C" void VIFlush();
|
||||
extern "C" void VISetBlack(s32);
|
||||
extern "C" void GXFlush();
|
||||
extern "C" void GXAbortFrame();
|
||||
extern "C" void GXDrawDone();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" extern u8 g_mDoMemCd_control[8192];
|
||||
extern "C" extern u8 struct_80450BB8[4];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
extern "C" u8 sCallback__Q210JUTGamePad13C3ButtonReset[4];
|
||||
extern "C" u8 sCallbackArg__Q210JUTGamePad13C3ButtonReset[4 + 4 /* padding */];
|
||||
extern "C" extern u8 struct_80451500[4];
|
||||
extern "C" u8 sManager__6JUTXfb[4 + 4 /* padding */];
|
||||
|
||||
//
|
||||
@@ -100,7 +61,7 @@ static void my_OSCancelAlarmAll() {
|
||||
}
|
||||
|
||||
static void destroyVideo() {
|
||||
destroyManager__8JUTVideoFv();
|
||||
JUTVideo::destroyManager();
|
||||
GXSetDrawDoneCallback(NULL);
|
||||
VISetBlack(1);
|
||||
VIFlush();
|
||||
@@ -108,40 +69,30 @@ static void destroyVideo() {
|
||||
return;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80374198-80374198 0007F8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80374198 = "DVD_STATE_BUSY\n";
|
||||
#pragma pop
|
||||
|
||||
/* 80450C78-80450C80 000178 0004+04 3/2 42/42 2/2 .sbss mResetData__6mDoRst */
|
||||
mDoRstData* mDoRst::mResetData;
|
||||
|
||||
/* 80015614-8001574C 00FF54 0138+00 0/0 3/3 0/0 .text mDoRst_reset__FiUli */
|
||||
#ifdef NONMATCHING
|
||||
void mDoRst_reset(int p1, u32 p2, int p3) {
|
||||
mDoCPd_c* pmVar1;
|
||||
u32 uVar2;
|
||||
DVDState DVar3;
|
||||
OSThread* thread;
|
||||
s32 enable;
|
||||
/* sManager */ lbl_80451550->clearIndex();
|
||||
mDoDvdErr_ThdCleanup__Fv();
|
||||
cAPICPad_recalibrate__Fv();
|
||||
if (lbl_80450BB8 != false) {
|
||||
void mDoRst_reset(int param_0, u32 param_1, int param_2) {
|
||||
JUTXfb::getManager()->clearIndex();
|
||||
mDoDvdErr_ThdCleanup();
|
||||
cAPICPad_recalibrate();
|
||||
|
||||
if (mDoAud_zelAudio_c::isInitFlag()) {
|
||||
bool audioReset;
|
||||
do {
|
||||
uVar2 = lbl_80451368->hasReset();
|
||||
} while ((uVar2 & 0xff) == 0);
|
||||
audioReset = Z2AudioMgr::getInterface()->hasReset();
|
||||
} while (!audioReset);
|
||||
}
|
||||
|
||||
if ((s32)DVDGetDriveStatus() == (s32)DVD_STATE_BUSY) {
|
||||
OSAttention(lbl_80374198);
|
||||
if (DVDGetDriveStatus() == DVD_STATE_BUSY) {
|
||||
OSAttention("DVD_STATE_BUSY\n");
|
||||
}
|
||||
JASTaskThread* task_thread = getThreadPointer__6JASDvdFv();
|
||||
|
||||
JASTaskThread* task_thread = JASDvd::getThreadPointer();
|
||||
if (task_thread != NULL) {
|
||||
pause__13JASTaskThreadFb(task_thread, true);
|
||||
thread = task_thread->thread;
|
||||
task_thread->pause(true);
|
||||
OSThread* thread = task_thread->getThreadRecord();
|
||||
if (thread != NULL) {
|
||||
OSSuspendThread(thread);
|
||||
OSDetachThread(thread);
|
||||
@@ -152,79 +103,57 @@ void mDoRst_reset(int p1, u32 p2, int p3) {
|
||||
VIWaitForRetrace();
|
||||
VIWaitForRetrace();
|
||||
|
||||
thread = GXGetCurrentGXThread();
|
||||
enable = OSDisableInterrupts();
|
||||
OSThread* ourThread = OSGetCurrentThread();
|
||||
if (thread != ourThread) {
|
||||
OSCancelThread(thread);
|
||||
OSThread* gxThread = GXGetCurrentGXThread();
|
||||
s32 enable = OSDisableInterrupts();
|
||||
|
||||
if (gxThread != OSGetCurrentThread()) {
|
||||
OSCancelThread(gxThread);
|
||||
GXSetCurrentGXThread();
|
||||
}
|
||||
|
||||
GXFlush();
|
||||
GXAbortFrame();
|
||||
GXDrawDone();
|
||||
|
||||
OSRestoreInterrupts(enable);
|
||||
destroyVideo();
|
||||
|
||||
while (mDoMemCd_isCardCommNone() != 0) {
|
||||
while (!mDoMemCd_isCardCommNone()) {
|
||||
VIWaitForRetrace();
|
||||
}
|
||||
|
||||
my_OSCancelAlarmAll();
|
||||
LCDisable();
|
||||
// probably false match; check out 80015728 or thereabouts in Ghidra
|
||||
OSSetSaveRegion(mDoRst::mResetData, (u8*)(&mDoRst::getResetData()) + 0x18);
|
||||
OSResetSystem(p1, p2, p3);
|
||||
OSSetSaveRegion(mDoRst::mResetData, (u8*)&mDoRst::getResetData + 0x18);
|
||||
OSResetSystem(param_0, param_1, param_2);
|
||||
|
||||
do {
|
||||
VIWaitForRetrace();
|
||||
} while (true);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoRst_reset(int param_0, u32 param_1, int param_2) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_Reset/mDoRst_reset__FiUli.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8001574C-800157F4 01008C 00A8+00 0/0 3/3 0/0 .text mDoRst_resetCallBack__FiPv */
|
||||
// fix JUTGamePad data
|
||||
#ifdef NONMATCHING
|
||||
void mDoRst_resetCallBack(int port, void* p2) {
|
||||
void mDoRst_resetCallBack(int port, void*) {
|
||||
if (!mDoRst::isReset()) {
|
||||
if (port == -1) {
|
||||
cAPICPad_recalibrate__Fv();
|
||||
cAPICPad_recalibrate();
|
||||
} else {
|
||||
if (mDoRst::is3ButtonReset() != 0) {
|
||||
lbl_80451501 = false;
|
||||
/* sCallback */ lbl_804514EC = &mDoRst_resetCallBack;
|
||||
/* sCallbackArg */ lbl_804514F0 = 0;
|
||||
if (mDoRst::is3ButtonReset()) {
|
||||
struct_80451501 = false;
|
||||
JUTGamePad::C3ButtonReset::sCallback = mDoRst_resetCallBack;
|
||||
JUTGamePad::C3ButtonReset::sCallbackArg = NULL;
|
||||
return;
|
||||
}
|
||||
mDoRst::on3ButtonReset();
|
||||
mDoRst::set3ButtonResetPort(port);
|
||||
cAPICPad_recalibrate__Fv();
|
||||
cAPICPad_recalibrate();
|
||||
}
|
||||
|
||||
if ((DVDCheckDisk() == 0) && (DVDGetDriveStatus() != DVD_STATE_FATAL_ERROR)) {
|
||||
if (DVDCheckDisk() == 0 && DVDGetDriveStatus() != DVD_STATE_FATAL_ERROR) {
|
||||
mDoRst::onReturnToMenu();
|
||||
}
|
||||
mDoRst::onReset();
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoRst_resetCallBack(int param_0, void* param_1) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_Reset/mDoRst_resetCallBack__FiPv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 800157F4-800157FC -00001 0008+00 0/0 0/0 0/0 .text getResetData__6mDoRstFv */
|
||||
mDoRstData* mDoRst::getResetData() {
|
||||
@@ -253,7 +182,6 @@ u8 struct_80450C87;
|
||||
#pragma pop
|
||||
|
||||
/* 80450C88-80450C90 000188 0008+00 0/0 2/2 0/0 .sbss None */
|
||||
extern u8 data_80450C88[8];
|
||||
u8 data_80450C88[8];
|
||||
u8 data_80450C88;
|
||||
|
||||
/* 80374198-80374198 0007F8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
+52
-40
@@ -6,23 +6,14 @@
|
||||
#include "m_Do/m_Do_audio.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "m_Do/m_Do_Reset.h"
|
||||
#include "m_Do/m_Do_dvd_thread.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct mDoRst {
|
||||
static u8 mResetData[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
struct mDoDvdThd_toMainRam_c {
|
||||
/* 80016394 */ void create(char const*, u8, JKRHeap*);
|
||||
};
|
||||
|
||||
struct mDoDvdThd_mountXArchive_c {
|
||||
/* 800161E0 */ void create(char const*, u8, JKRArchive::EMountMode, JKRHeap*);
|
||||
};
|
||||
|
||||
struct JAIStreamDataMgr {
|
||||
/* 802A3AD8 */ ~JAIStreamDataMgr();
|
||||
};
|
||||
@@ -96,7 +87,6 @@ extern "C" extern void* __vt__14Z2SoundStarter[5 + 1 /* padding */];
|
||||
extern "C" extern void* __vt__11Z2SoundInfo[20];
|
||||
extern "C" extern void* __vt__15Z2SpeechStarter[5];
|
||||
extern "C" extern void* __vt__10Z2AudioMgr[3];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 data_80450B40[4];
|
||||
extern "C" extern u8 data_80450B48[4];
|
||||
extern "C" extern u8 data_80450B4C[4];
|
||||
@@ -112,7 +102,7 @@ extern "C" extern u8 data_80450B80[4];
|
||||
extern "C" extern u8 data_80450B84[4];
|
||||
extern "C" extern u8 data_80450B88[4];
|
||||
extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */];
|
||||
extern "C" extern u8 struct_80450C80[8];
|
||||
extern "C" extern bool struct_80450C80;
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
extern "C" u8 sCurrentHeap__7JKRHeap[4];
|
||||
|
||||
@@ -140,18 +130,6 @@ void mDoAud_zelAudio_c::reset() {
|
||||
data_80450bba = false;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80373D68-80373D68 0003C8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80373D68 = "/Audiores/Z2Sound.baa";
|
||||
SECTION_DEAD static char const* const stringBase_80373D7E = "/Audiores/Seqs/Z2SoundSeqs.arc";
|
||||
SECTION_DEAD static char const* const stringBase_80373D9D =
|
||||
"ヒープ確保失敗につきオーディオ初期化できません\n";
|
||||
/* @stringBase0 padding */
|
||||
SECTION_DEAD static char const* const pad_80373DCD = "\0\0";
|
||||
#pragma pop
|
||||
|
||||
/* 803DBF40-803DBF4C 008C60 000C+00 1/1 0/1 0/0 .bss @3620 */
|
||||
static u8 lit_3620[12];
|
||||
|
||||
@@ -168,24 +146,58 @@ static mDoDvdThd_toMainRam_c* l_affCommand;
|
||||
static mDoDvdThd_mountXArchive_c* l_arcCommand;
|
||||
|
||||
/* 80006FC0-80007164 001900 01A4+00 1/1 0/0 0/0 .text mDoAud_Create__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void mDoAud_Create() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_audio/mDoAud_Create__Fv.s"
|
||||
static void mDoAud_Create() {
|
||||
if (l_affCommand == NULL) {
|
||||
l_affCommand = mDoDvdThd_toMainRam_c::create("/Audiores/Z2Sound.baa", 2, NULL);
|
||||
|
||||
if (l_affCommand == NULL) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (l_arcCommand == NULL) {
|
||||
l_arcCommand = mDoDvdThd_mountXArchive_c::create("/Audiores/Seqs/Z2SoundSeqs.arc", 0, JKRArchive::MOUNT_DVD, NULL);
|
||||
|
||||
if (l_arcCommand == NULL) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (l_affCommand->sync() && l_arcCommand->sync()) {
|
||||
if (g_mDoAud_audioHeap != NULL) {
|
||||
s32 groupID = JKRHeap::sCurrentHeap->changeGroupID(5);
|
||||
(*(mDoAud_zelAudio_c*)g_mDoAud_zelAudio).mAudioMgr.init(g_mDoAud_audioHeap, 0xA00000, l_affCommand->getMemAddress(), l_arcCommand->getArchive());
|
||||
JKRHeap::sCurrentHeap->changeGroupID(groupID);
|
||||
g_mDoAud_audioHeap->adjustSize();
|
||||
} else {
|
||||
// "Cannot initialize audio due to heap allocation failure\n"
|
||||
OSReport_Error("ヒープ確保失敗につきオーディオ初期化できません\n");
|
||||
}
|
||||
|
||||
(*(mDoAud_zelAudio_c*)g_mDoAud_zelAudio).mAudioMgr.mStatusMgr.setEventBit(dComIfGs_getPEventBit());
|
||||
(*(mDoAud_zelAudio_c*)g_mDoAud_zelAudio).reset();
|
||||
|
||||
u32 soundMode = OSGetSoundMode();
|
||||
Z2AudioMgr::getInterface()->setOutputMode(soundMode);
|
||||
JKRHeap::free(l_affCommand->getMemAddress(), NULL);
|
||||
l_affCommand->destroy();
|
||||
l_arcCommand->destroy();
|
||||
|
||||
mDoAud_zelAudio_c::onInitFlag();
|
||||
struct_80450C80 = true;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80007164-800071BC 001AA4 0058+00 0/0 1/1 0/0 .text mDoAud_Execute__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoAud_Execute() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_audio/mDoAud_Execute__Fv.s"
|
||||
void mDoAud_Execute() {
|
||||
if (!mDoAud_zelAudio_c::isInitFlag()) {
|
||||
if (!mDoRst::isShutdown() && !mDoRst::isReturnToMenu()) {
|
||||
mDoAud_Create();
|
||||
}
|
||||
} else {
|
||||
(*(mDoAud_zelAudio_c*)g_mDoAud_zelAudio).mAudioMgr.gframeProcess();
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800071BC-800071F8 001AFC 003C+00 0/0 3/3 0/0 .text mDoAud_setSceneName__FPCcll */
|
||||
void mDoAud_setSceneName(char const* spot, s32 room, s32 layer) {
|
||||
|
||||
@@ -140,13 +140,11 @@ extern "C" void _restgpr_28();
|
||||
extern "C" extern void* __vt__14J2DGrafContext[10];
|
||||
extern "C" extern void* __vt__13J2DOrthoGraph[10];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" extern u8 g_env_light[4880];
|
||||
extern "C" f32 Zero__4cXyz[3];
|
||||
extern "C" u8 mPadStatus__10JUTGamePad[48];
|
||||
extern "C" u8 sincosTable___5JMath[65536];
|
||||
extern "C" extern s8 data_80450580;
|
||||
extern "C" void* mRenderModeObj__15mDoMch_render_c[1 + 1 /* padding */];
|
||||
;
|
||||
extern "C" u8 systemConsole__9JFWSystem[4];
|
||||
extern "C" u8 sManager__10JFWDisplay[4];
|
||||
extern "C" u8 sCurrentHeap__7JKRHeap[4];
|
||||
|
||||
+148
-266
@@ -17,14 +17,8 @@
|
||||
#include "m_Do/m_Do_controller_pad.h"
|
||||
#include "m_Do/m_Do_dvd_thread.h"
|
||||
#include "m_Do/m_Do_graphic.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct DynamicModuleControlBase {
|
||||
/* 80262470 */ void dump();
|
||||
};
|
||||
#include "m_Do/m_Do_machine.h"
|
||||
#include "DynamicLink.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
@@ -220,21 +214,21 @@ static HeapCheck CommandHeapCheck;
|
||||
|
||||
/* 8000578C-80005848 0000CC 00BC+00 1/1 0/0 0/0 .text CheckHeap__FUl */
|
||||
void CheckHeap(u32 i_padNo) {
|
||||
mDoMch_HeapCheckAll__Fv();
|
||||
mDoMch_HeapCheckAll();
|
||||
OSCheckActiveThreads();
|
||||
|
||||
bool comboCheck = false;
|
||||
|
||||
// if L + R + Z is pressed...
|
||||
// if L + R + Z is pressed
|
||||
if ((mDoCPd_c::getHold(i_padNo) & ~CButton::Z) == (CButton::L + CButton::R) &&
|
||||
mDoCPd_c::getTrig(i_padNo) & CButton::Z) {
|
||||
comboCheck = true;
|
||||
}
|
||||
|
||||
int unk2 = comboCheck;
|
||||
int saveRel = comboCheck;
|
||||
for (int i = 0; i < 8; i++) {
|
||||
HeapCheckTable[i]->CheckHeap1();
|
||||
if (unk2) {
|
||||
if (saveRel) {
|
||||
HeapCheckTable[i]->saveRelBase();
|
||||
}
|
||||
}
|
||||
@@ -266,59 +260,24 @@ void HeapCheck::heapDisplay() const {
|
||||
s32 total_free_size = mHeap->getTotalFreeSize();
|
||||
s32 heap_free_size = mHeap->getFreeSize();
|
||||
|
||||
JUTReport(0x64, 0xd4, "[%sName]", mName);
|
||||
JUTReport(0x64, 0xe3, "HeapSize %8ld", heap_size);
|
||||
JUTReport(0x64, 0xf0, "TargetHeapSize %8ld", mTargetHeapSize);
|
||||
JUTReport(0x64, 0xfd, "TotalFree %8ld", total_free_size - used_count);
|
||||
JUTReport(0x64, 0x10a, "FreeSize %8ld", heap_free_size - used_count);
|
||||
JUTReport(0x64, 0x117, "TotalUsedSize %8ld", total_used_size);
|
||||
JUTReport(0x64, 0x124, "TotalUsedRate %3ld%%",
|
||||
JUTReport(100, 212, "[%sName]", mName);
|
||||
JUTReport(100, 227, "HeapSize %8ld", heap_size);
|
||||
JUTReport(100, 240, "TargetHeapSize %8ld", mTargetHeapSize);
|
||||
JUTReport(100, 253, "TotalFree %8ld", total_free_size - used_count);
|
||||
JUTReport(100, 266, "FreeSize %8ld", heap_free_size - used_count);
|
||||
JUTReport(100, 279, "TotalUsedSize %8ld", total_used_size);
|
||||
JUTReport(100, 292, "TotalUsedRate %3ld%%",
|
||||
(int)(total_used_size * 0x64) / (int)mTargetHeapSize);
|
||||
JUTReport(0x64, 0x131, "MaxTotalUsedSize %8ld", mMaxTotalUsedSize);
|
||||
JUTReport(0x64, 0x13e, "MaxTotalUsedRate %3ld%%",
|
||||
JUTReport(100, 305, "MaxTotalUsedSize %8ld", mMaxTotalUsedSize);
|
||||
JUTReport(100, 318, "MaxTotalUsedRate %3ld%%",
|
||||
(mMaxTotalUsedSize * 0x64) / (int)mTargetHeapSize);
|
||||
JUTReport(0x64, 0x14b, "MinFreeSize %8ld", mMaxTotalFreeSize - used_count);
|
||||
JUTReport(0x64, 0x158, "MinFreeRate %3ld%%",
|
||||
JUTReport(100, 331, "MinFreeSize %8ld", mMaxTotalFreeSize - used_count);
|
||||
JUTReport(100, 344, "MinFreeRate %3ld%%",
|
||||
((mMaxTotalFreeSize - used_count) * 0x64) / (int)mTargetHeapSize);
|
||||
used_count = countUsed(mHeap);
|
||||
JUTReport(0x64, 0x165, "UsedCount %3ld%", used_count);
|
||||
JUTReport(100, 357, "UsedCount %3ld%", used_count);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803739A0-803739A0 000000 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80373AEF = "";
|
||||
SECTION_DEAD static char const* const stringBase_80373AF0 = "TotalFree";
|
||||
SECTION_DEAD static char const* const stringBase_80373AFA = "MaxUsed ";
|
||||
SECTION_DEAD static char const* const stringBase_80373B04 = "Used ";
|
||||
SECTION_DEAD static char const* const stringBase_80373B0E = "RelUsed ";
|
||||
SECTION_DEAD static char const* const stringBase_80373B18 = "/ MaxFree";
|
||||
SECTION_DEAD static char const* const stringBase_80373B22 = "/HeapSize";
|
||||
SECTION_DEAD static char const* const stringBase_80373B2C = "Blk/Bytes";
|
||||
SECTION_DEAD static char const* const stringBase_80373B36 = "ARAM Free";
|
||||
SECTION_DEAD static char const* const stringBase_80373B40 = "%d";
|
||||
SECTION_DEAD static char const* const stringBase_80373B43 = "%s";
|
||||
SECTION_DEAD static char const* const stringBase_80373B46 = " [%s]";
|
||||
SECTION_DEAD static char const* const stringBase_80373B4C = "%10d";
|
||||
#pragma pop
|
||||
|
||||
/* 803A2F14-803A2F28 -00001 0014+00 0/1 0/0 0/0 .data desc1$3717 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
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 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 s8 data_80450580 = 0xFF;
|
||||
|
||||
@@ -326,10 +285,7 @@ SECTION_SDATA s8 data_80450580 = 0xFF;
|
||||
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,
|
||||
};
|
||||
SECTION_SDATA u8 mDoMain::mHeapBriefType = 4;
|
||||
|
||||
/* 80450B00-80450B08 000000 0008+00 1/1 0/0 0/0 .sbss None */
|
||||
static u8 data_80450B00;
|
||||
@@ -344,201 +300,135 @@ OSTime mDoMain::sHungUpTime;
|
||||
/* 80450B18 0001+00 data_80450B18 None */
|
||||
/* 80450B19 0001+00 data_80450B19 None */
|
||||
/* 80450B1A 0002+00 data_80450B1A None */
|
||||
static u8 struct_80450B18[2];
|
||||
|
||||
static u8 data_80450B1A;
|
||||
static u8 data_80450B1B;
|
||||
static bool struct_80450B18; // sDisplayHeapDebug
|
||||
static u8 sDisplayHeap;
|
||||
static bool sCheckHeap;
|
||||
|
||||
/* 80005AD8-80005D4C 000418 0274+00 1/1 0/0 0/0 .text debugDisplay__Fv */
|
||||
#ifdef NONMATCHING
|
||||
void debugDisplay(void) {
|
||||
int tmp1;
|
||||
int tmp2;
|
||||
void debugDisplay() {
|
||||
static char* desc1[5] = {
|
||||
"", "TotalFree", "MaxUsed ", "Used ", "RelUsed ",
|
||||
};
|
||||
|
||||
if (struct_80450B18[1] >= 1 && struct_80450B18[1] <= 6) {
|
||||
HeapCheckTable[struct_80450B18[1]]->heapDisplay();
|
||||
static char* desc2[5] = {
|
||||
"", "/ MaxFree", "/HeapSize", "Blk/Bytes", "Blk/Bytes",
|
||||
};
|
||||
|
||||
if (sDisplayHeap >= 1 && sDisplayHeap <= 6) {
|
||||
HeapCheckTable[sDisplayHeap - 1]->heapDisplay();
|
||||
}
|
||||
|
||||
if (data_80450588[0] == 5) {
|
||||
if (mDoMain::mHeapBriefType == 5) {
|
||||
JKRAramHeap* heap = JKRAram::getAramHeap();
|
||||
if (heap) {
|
||||
JUTReport(0x1db, 100, "ARAM Free");
|
||||
JUTReport(0x1db, 0x72, "%d", heap->getFreeSize());
|
||||
JUTReport(0x1db, 0x80, "TotalFree");
|
||||
JUTReport(0x1db, 0x8e, "%d", heap->getTotalFreeSize());
|
||||
JUTReport(475, 100, "ARAM Free");
|
||||
JUTReport(475, 114, "%d", heap->getFreeSize());
|
||||
JUTReport(475, 128, "TotalFree");
|
||||
JUTReport(475, 142, "%d", heap->getTotalFreeSize());
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
if (data_80450588[0] != 0) {
|
||||
JUTReport(0x1db, 100, "%s", desc1[data_80450588[0]]);
|
||||
JUTReport(0x1db, 0x72, "%s", lbl_803A2F28[data_80450588[0]]);
|
||||
} else if (mDoMain::mHeapBriefType != 0) {
|
||||
JUTReport(475, 100, "%s", desc1[mDoMain::mHeapBriefType]);
|
||||
JUTReport(475, 114, "%s", desc2[mDoMain::mHeapBriefType]);
|
||||
|
||||
int k = 0;
|
||||
for (int i = 0; i < 8; i++, k += 0x2C) {
|
||||
HeapCheck* heap_check = HeapCheckTable[i];
|
||||
for (int i = 0; i < 8; i++) {
|
||||
HeapCheck* heap_check = HeapCheckTable[i];
|
||||
JKRExpHeap* expHeap = heap_check->getHeap();
|
||||
|
||||
switch (data_80450588[0]) {
|
||||
case 3: {
|
||||
tmp1 = heap_check->getUsedCount();
|
||||
tmp2 = heap_check->getHeap()->getTotalUsedSize();
|
||||
break;
|
||||
}
|
||||
case 1: {
|
||||
tmp1 = heap_check->getHeap()->getTotalFreeSize();
|
||||
tmp2 = heap_check->getHeap()->getFreeSize();
|
||||
break;
|
||||
}
|
||||
case 2: {
|
||||
tmp1 = heap_check->getMaxTotalUsedSize();
|
||||
tmp2 = heap_check->getHeap()->getSize();
|
||||
break;
|
||||
}
|
||||
case 4: {
|
||||
tmp1 = heap_check->getUsedCount() - heap_check->getUsedCountRef();
|
||||
tmp2 = heap_check->getHeap()->getTotalUsedSize() -
|
||||
heap_check->getTotalUsedSizeRef();
|
||||
break;
|
||||
}
|
||||
|
||||
JUTReport(0x1db, k + 0x96, " [%s]", heap_check->getName());
|
||||
JUTReport(0x1db, k + 0xA4, "%10d", tmp1);
|
||||
JUTReport(0x1db, k + 0xB2, "%10d", tmp2);
|
||||
}
|
||||
s32 check1;
|
||||
s32 check2;
|
||||
switch (mDoMain::mHeapBriefType) {
|
||||
case 1:
|
||||
check1 = expHeap->getTotalFreeSize();
|
||||
check2 = expHeap->getFreeSize();
|
||||
break;
|
||||
case 2:
|
||||
check1 = heap_check->getMaxTotalUsedSize();
|
||||
check2 = expHeap->getHeapSize();
|
||||
break;
|
||||
case 3:
|
||||
check1 = heap_check->getUsedCount();
|
||||
check2 = expHeap->getTotalUsedSize();
|
||||
break;
|
||||
case 4:
|
||||
check1 = heap_check->getRelUsedCount();
|
||||
check2 = heap_check->getRelTotalUsedSize();
|
||||
break;
|
||||
}
|
||||
|
||||
JUTReport(475, (i * 44) + 150, " [%s]", heap_check->getName());
|
||||
JUTReport(475, (i * 44) + 164, "%10d", check1);
|
||||
JUTReport(475, (i * 44) + 178, "%10d", check2);
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void debugDisplay() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_main/debugDisplay__Fv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803739A0-803739A0 000000 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80373B51 = "Press X+Y+START to CLEAR console.";
|
||||
SECTION_DEAD static char const* const stringBase_80373B73 = "3DStick UP/Down to scroll";
|
||||
SECTION_DEAD static char const* const stringBase_80373B8D =
|
||||
"Press A to output terminal from console.";
|
||||
SECTION_DEAD static char const* const stringBase_80373BB6 = "SCROLL:%3d %3d %3d Output=%1x";
|
||||
SECTION_DEAD static char const* const stringBase_80373BD5 = "Press L+R trigger to control console.";
|
||||
SECTION_DEAD static char const* const stringBase_80373BFB =
|
||||
"Press [Z] trigger to close this window.";
|
||||
#pragma pop
|
||||
|
||||
/* 80450B1C-80450B20 00001C 0004+00 1/1 0/0 0/0 .sbss console_position_x$3776 */
|
||||
static f32 console_position_x;
|
||||
|
||||
/* 80450B20-80450B24 000020 0004+00 1/1 0/0 0/0 .sbss None */
|
||||
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 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 s8 data_80450B30;
|
||||
|
||||
/* 80451A00-80451A04 000000 0004+00 1/1 0/0 0/0 .sdata2 @3884 */
|
||||
SECTION_SDATA2 static f32 lit_3884 = 20.0f;
|
||||
|
||||
/* 80451A04-80451A08 000004 0004+00 1/1 0/0 0/0 .sdata2 @3885 */
|
||||
SECTION_SDATA2 static f32 lit_3885 = 30.0f;
|
||||
|
||||
/* 80451A08-80451A0C 000008 0004+00 1/1 0/0 0/0 .sdata2 @3886 */
|
||||
SECTION_SDATA2 static u8 lit_3886[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
|
||||
/* 80451A0C-80451A10 00000C 0004+00 1/1 0/0 0/0 .sdata2 @3887 */
|
||||
SECTION_SDATA2 static f32 lit_3887 = 1.0f;
|
||||
|
||||
/* 80451A10-80451A18 000010 0004+04 1/1 0/0 0/0 .sdata2 @3888 */
|
||||
SECTION_SDATA2 static f32 lit_3888[1 + 1 /* padding */] = {
|
||||
-1.0f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
|
||||
/* 80451A18-80451A20 000018 0008+00 1/1 0/0 0/0 .sdata2 @3890 */
|
||||
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
|
||||
bool Debug_console(u32 i_padNo) {
|
||||
float tmp2;
|
||||
float tmp3;
|
||||
int tmp6;
|
||||
static f32 console_position_x;
|
||||
static s8 console_x_init;
|
||||
|
||||
static f32 console_position_y;
|
||||
static s8 console_y_init;
|
||||
|
||||
static f32 console_scroll;
|
||||
static s8 console_scroll_init;
|
||||
|
||||
JUTConsole* console = JFWSystem::getSystemConsole();
|
||||
if (console) {
|
||||
if (!data_80450B20) {
|
||||
if (!console_x_init) {
|
||||
console_position_x = 20.0f;
|
||||
data_80450B20 = 1;
|
||||
console_x_init = 1;
|
||||
}
|
||||
if (!data_80450B28) {
|
||||
if (!console_y_init) {
|
||||
console_position_y = 30.0f;
|
||||
data_80450B28 = 1;
|
||||
console_y_init = 1;
|
||||
}
|
||||
if (!data_80450B30) {
|
||||
if (!console_scroll_init) {
|
||||
console_scroll = 0.0f;
|
||||
data_80450B30 = 1;
|
||||
console_scroll_init = 1;
|
||||
}
|
||||
|
||||
if (mDoCPd_c::getTrig(i_padNo) & CButton::Z &&
|
||||
!(mDoCPd_c::getHold(i_padNo) & ~CButton::Z)) {
|
||||
bool visible = console->isVisible() == false;
|
||||
console->setVisible(visible);
|
||||
if (mDoCPd_c::getTrig(i_padNo) & CButton::Z && !(mDoCPd_c::getHold(i_padNo) & ~CButton::Z)) {
|
||||
console->setVisible(console->isVisible() == false);
|
||||
JUTAssertion::setMessageCount(0);
|
||||
}
|
||||
|
||||
if (console->isVisible()) {
|
||||
// if R and L are pressed
|
||||
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) &&
|
||||
u32 holdButtons = mDoCPd_c::getHold(i_padNo);
|
||||
if ((holdButtons & CButton::L && holdButtons & CButton::R) ||
|
||||
((mDoCPd_c::getAnalogL(i_padNo) > 0.0f && mDoCPd_c::getAnalogR(i_padNo) > 0.0f))) {
|
||||
f32 stick_x = mDoCPd_c::getStickX(i_padNo);
|
||||
f32 stick_y = mDoCPd_c::getStickY(i_padNo);
|
||||
|
||||
if (holdButtons & (CButton::Y | CButton::X) &&
|
||||
mDoCPd_c::getTrig(i_padNo) & CButton::START) {
|
||||
console->clear();
|
||||
}
|
||||
|
||||
if (!(mDoCPd_c::getHold(i_padNo) & (CButton::Y | CButton::X))) {
|
||||
// subtract console scroll value from stick Y
|
||||
console_scroll -= mDoCPd_c::getStickY(i_padNo);
|
||||
int tmp;
|
||||
if (1.0f <= console_scroll) {
|
||||
-1.0f <= console_scroll ? tmp = 0 : tmp = -console_scroll;
|
||||
console_scroll -= stick_y;
|
||||
|
||||
int scrollAmount;
|
||||
if (console_scroll > 1.0f) {
|
||||
scrollAmount = console_scroll;
|
||||
} else if (console_scroll < -1.0f) {
|
||||
scrollAmount = -(int)-console_scroll;
|
||||
} else {
|
||||
tmp = mDoCPd_c::getStickX(i_padNo) - mDoCPd_c::getStickY(i_padNo);
|
||||
scrollAmount = 0;
|
||||
}
|
||||
|
||||
if (tmp) {
|
||||
console_scroll -= tmp;
|
||||
console->scroll(tmp);
|
||||
if (scrollAmount != 0) {
|
||||
console_scroll -= scrollAmount;
|
||||
console->scroll(scrollAmount);
|
||||
}
|
||||
} else {
|
||||
if (mDoCPd_c::getHold(i_padNo) & CButton::X) {
|
||||
console_position_x += mDoCPd_c::getStickX(i_padNo);
|
||||
console_position_x += stick_x;
|
||||
}
|
||||
|
||||
if (mDoCPd_c::getHold(i_padNo) & CButton::Y) {
|
||||
console_position_y -= mDoCPd_c::getStickY(i_padNo);
|
||||
console_position_y -= stick_y;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -547,54 +437,46 @@ bool Debug_console(u32 i_padNo) {
|
||||
console->setOutput(JUTConsole::OUTPUT_OSREPORT | JUTConsole::OUTPUT_CONSOLE);
|
||||
}
|
||||
|
||||
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",
|
||||
JUTReport(30, 390, 1, "Press X+Y+START to CLEAR console.");
|
||||
JUTReport(30, 400, 1, "3DStick UP/Down to scroll");
|
||||
JUTReport(30, 410, 1, "Press A to output terminal from console.");
|
||||
JUTReport(30, 420, 1, "SCROLL:%3d %3d %3d Output=%1x",
|
||||
console->getLineOffset(), console->getPositionX(),
|
||||
console->getPositionY(), console->getOutput());
|
||||
}
|
||||
} else {
|
||||
if (mDoCPd_c::getTrig(i_padNo) & CButton::DPAD_DOWN) {
|
||||
g_HIO.mDisplayMeter ^= 1;
|
||||
}
|
||||
} else {
|
||||
u32 pressButtons = mDoCPd_c::getTrig(i_padNo);
|
||||
|
||||
if (mDoCPd_c::getTrig(i_padNo) & CButton::DPAD_LEFT) {
|
||||
if (JKRAram::getAramHeap()) {
|
||||
JKRAram::getAramHeap()->dump();
|
||||
if (pressButtons & CButton::DPAD_DOWN) {
|
||||
g_HIO.mDisplayMeter ^= 1;
|
||||
}
|
||||
|
||||
dump__24DynamicModuleControlBaseFv();
|
||||
g_dComIfG_gameInfo.mResControl.dump();
|
||||
}
|
||||
if (pressButtons & CButton::DPAD_LEFT) {
|
||||
if (JKRAram::getAramHeap()) {
|
||||
JKRAram::getAramHeap()->dump();
|
||||
}
|
||||
|
||||
if (mDoCPd_c::getTrig(i_padNo) & CButton::DPAD_RIGHT) {
|
||||
JKRHeap::getSystemHeap()->dump_sort();
|
||||
}
|
||||
dump__24DynamicModuleControlBaseFv();
|
||||
g_dComIfG_gameInfo.mResControl.dump();
|
||||
}
|
||||
|
||||
if (mDoCPd_c::getTrig(i_padNo) & CButton::DPAD_UP) {
|
||||
zeldaHeap->dump_sort();
|
||||
gameHeap->dump_sort();
|
||||
archiveHeap->dump_sort();
|
||||
if (mDoCPd_c::getTrig(i_padNo) & CButton::DPAD_RIGHT) {
|
||||
JKRHeap::getSystemHeap()->dump_sort();
|
||||
}
|
||||
|
||||
if (mDoCPd_c::getTrig(i_padNo) & CButton::DPAD_UP) {
|
||||
zeldaHeap->dump_sort();
|
||||
gameHeap->dump_sort();
|
||||
archiveHeap->dump_sort();
|
||||
}
|
||||
JUTReport(30, 440, 1, "Press L+R trigger to control console.");
|
||||
JUTReport(30, 450, 1, "Press [Z] trigger to close this window.");
|
||||
}
|
||||
JUTReport(0x1E, 0x1B8, 1, "Press L+R trigger to control console.");
|
||||
JUTReport(0x1E, 0x1C2, 1, "Press [Z] trigger to close this window.");
|
||||
console->setPosition(console_position_x, console_position_y);
|
||||
return 1;
|
||||
}
|
||||
console->setPosition(console_position_x, console_position_y);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void Debug_console(u32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_main/Debug_console__FUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803739A0-803739A0 000000 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
@@ -633,25 +515,25 @@ asm void* LOAD_COPYDATE(void* param_0) {
|
||||
|
||||
static void debug() {
|
||||
if (data_80450580) {
|
||||
if (data_80450B1A) {
|
||||
CheckHeap(2);
|
||||
if (sCheckHeap) {
|
||||
CheckHeap(PAD_3);
|
||||
}
|
||||
|
||||
if ((mDoCPd_c::getGamePad(2)->getButton() & ~CButton::Z) == CButton::R &&
|
||||
mDoCPd_c::getGamePad(2)->testTrigger(CButton::Z)) {
|
||||
struct_80450B18[0] ^= 0x1;
|
||||
if ((mDoCPd_c::getGamePad(PAD_3)->getButton() & ~CButton::Z) == CButton::R &&
|
||||
mDoCPd_c::getGamePad(PAD_3)->testTrigger(CButton::Z)) {
|
||||
struct_80450B18 ^= 1;
|
||||
}
|
||||
|
||||
if (struct_80450B18[0]) {
|
||||
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;
|
||||
if (struct_80450B18) {
|
||||
if ((mDoCPd_c::getGamePad(PAD_3)->getButton() & ~CButton::Z) == CButton::L &&
|
||||
mDoCPd_c::getGamePad(PAD_3)->testTrigger(CButton::Z)) {
|
||||
mDoMain::mHeapBriefType < 5 ? mDoMain::mHeapBriefType++ : mDoMain::mHeapBriefType = 1;
|
||||
}
|
||||
|
||||
debugDisplay();
|
||||
}
|
||||
|
||||
Debug_console(2);
|
||||
Debug_console(PAD_3);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -660,7 +542,7 @@ static void debug() {
|
||||
static u32 frame;
|
||||
|
||||
/* 8000628C-80006454 000BCC 01C8+00 1/1 0/0 0/0 .text main01__Fv */
|
||||
// almost
|
||||
// only issue is output check section with weird code gen
|
||||
#ifdef NONMATCHING
|
||||
void main01(void) {
|
||||
mDoMch_Create__Fv();
|
||||
@@ -708,18 +590,18 @@ void main01(void) {
|
||||
}
|
||||
|
||||
JUTConsole* console = JFWSystem::getSystemConsole();
|
||||
u32 output = JUTConsole::OUTPUT_OSREPORT | JUTConsole::OUTPUT_CONSOLE;
|
||||
s32 output = 0;
|
||||
if (data_80450580 != 0) {
|
||||
data_80450580 = JUTConsole::OUTPUT_NONE;
|
||||
output = JUTConsole::OUTPUT_OSREPORT | JUTConsole::OUTPUT_CONSOLE;
|
||||
}
|
||||
console->setOutput(output);
|
||||
|
||||
console->setOutput(output);
|
||||
console->setPosition(32, 42);
|
||||
|
||||
mDoDvdThd_callback_c::create(LOAD_COPYDATE, NULL);
|
||||
fapGm_Create__Fv();
|
||||
fopAcM_initManager__Fv();
|
||||
struct_80450B18[0] = 0;
|
||||
struct_80450B18 = 0;
|
||||
cDyl_InitAsync__Fv();
|
||||
|
||||
g_mDoAud_audioHeap = JKRSolidHeap::create(0x14D800, JKRHeap::getCurrentHeap(), false);
|
||||
@@ -761,7 +643,7 @@ static OSThread mainThread;
|
||||
/* 80006454-800065D8 000D94 0184+00 0/0 1/1 0/0 .text main */
|
||||
void main() {
|
||||
OSThread* current_thread = OSGetCurrentThread();
|
||||
u8* stack = &mainThreadStack[0];
|
||||
u8* stack = mainThreadStack;
|
||||
mDoMain::sPowerOnTime = OSGetTime();
|
||||
OSReportInit();
|
||||
version_check();
|
||||
@@ -795,7 +677,7 @@ void main() {
|
||||
data_80450580 = 1;
|
||||
} else if (disk_id->game_version > 0x80) {
|
||||
u32 consoleType = OSGetConsoleType();
|
||||
data_80450580 = (consoleType >> 0x1c) & 1;
|
||||
data_80450580 = (consoleType >> 0x1C) & 1;
|
||||
} else {
|
||||
data_80450580 = 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user