move / fix bunch of stuff (#133)

* fix some class structures / d_event wip

* d_event wip

* move gamepad stuff

* move m_Do_main

* move d_bomb / partial m_Do_reset

* format

* remove asm

* add Z2SoundID enum

* move some Z2 classes

* fix

* move more Z2 stuff

* fix fopAc_ac_c more
This commit is contained in:
TakaRikka
2021-06-12 15:22:36 -07:00
committed by GitHub
parent 5be309a186
commit 4448c08ac0
132 changed files with 6755 additions and 3217 deletions
+85 -263
View File
@@ -4,275 +4,94 @@
#include "d/a/d_a_itembase.h"
#include "d/a/d_a_player.h"
#include "d/d_stage.h"
#include "d/event/d_event_manager.h"
#include "d/save/d_save.h"
#include "dolphin/types.h"
#pragma pack(push, 1)
class dEvt_order_c {
public:
/* 80030154 */ ~dEvt_order_c();
/* 800415D4 */ dEvt_order_c();
~dEvt_order_c();
dEvt_order_c();
private:
u8 field_0x0;
u8 field_0x1;
u8 field_0x2;
u8 field_0x3;
u8 field_0x4;
u8 field_0x5;
u8 field_0x6;
u8 field_0x7;
u8 field_0x8;
u8 field_0x9;
u8 field_0xa;
u8 field_0xb;
u8 field_0xc;
u8 field_0xd;
u8 field_0xe;
u8 field_0xf;
u8 field_0x10;
u8 field_0x11;
u8 field_0x12;
u8 field_0x13;
u8 field_0x14;
u8 field_0x15;
u8 field_0x16;
u8 field_0x17;
u8 field_0x18;
u8 field_0x19;
u8 field_0x1a;
u8 field_0x1b;
u8 field_0x1c;
u8 field_0x1d;
u8 field_0x1e;
u8 field_0x1f;
u8 field_0x20;
u8 field_0x21;
u8 field_0x22;
u8 field_0x23;
u8 field_0x24;
u8 field_0x25;
u8 field_0x26;
u8 field_0x27;
u8 field_0x28;
u8 field_0x29;
u8 field_0x2a;
u8 field_0x2b;
u8 field_0x2c;
u8 field_0x2d;
u8 field_0x2e;
u8 field_0x2f;
u8 field_0x30;
u8 field_0x31;
u8 field_0x32;
u8 field_0x33;
u8 field_0x34;
u8 field_0x35;
u8 field_0x36;
u8 field_0x37;
u8 field_0x38;
u8 field_0x39;
u8 field_0x3a;
u8 field_0x3b;
u8 field_0x3c;
u8 field_0x3d;
u8 field_0x3e;
u8 field_0x3f;
u8 field_0x40;
u8 field_0x41;
u8 field_0x42;
u8 field_0x43;
u8 field_0x44;
u8 field_0x45;
u8 field_0x46;
u8 field_0x47;
u8 field_0x48;
u8 field_0x49;
u8 field_0x4a;
u8 field_0x4b;
u8 field_0x4c;
u8 field_0x4d;
u8 field_0x4e;
u8 field_0x4f;
u8 field_0x50;
u8 field_0x51;
u8 field_0x52;
u8 field_0x53;
u8 field_0x54;
u8 field_0x55;
u8 field_0x56;
u8 field_0x57;
u8 field_0x58;
u8 field_0x59;
u8 field_0x5a;
u8 field_0x5b;
u8 field_0x5c;
u8 field_0x5d;
u8 field_0x5e;
u8 field_0x5f;
u8 field_0x60;
u8 field_0x61;
u8 field_0x62;
u8 field_0x63;
u8 field_0x64;
u8 field_0x65;
u8 field_0x66;
u8 field_0x67;
u8 field_0x68;
u8 field_0x69;
u8 field_0x6a;
u8 field_0x6b;
u8 field_0x6c;
u8 field_0x6d;
u8 field_0x6e;
u8 field_0x6f;
u8 field_0x70;
u8 field_0x71;
u8 field_0x72;
u8 field_0x73;
u8 field_0x74;
u8 field_0x75;
u8 field_0x76;
u8 field_0x77;
u8 field_0x78;
u8 field_0x79;
u8 field_0x7a;
u8 field_0x7b;
u8 field_0x7c;
u8 field_0x7d;
u8 field_0x7e;
u8 field_0x7f;
u8 field_0x80;
u8 field_0x81;
u8 field_0x82;
u8 field_0x83;
u8 field_0x84;
u8 field_0x85;
u8 field_0x86;
u8 field_0x87;
u8 field_0x88;
u8 field_0x89;
u8 field_0x8a;
u8 field_0x8b;
u8 field_0x8c;
u8 field_0x8d;
u8 field_0x8e;
u8 field_0x8f;
u8 field_0x90;
u8 field_0x91;
u8 field_0x92;
u8 field_0x93;
u8 field_0x94;
u8 field_0x95;
u8 field_0x96;
u8 field_0x97;
u8 field_0x98;
u8 field_0x99;
u8 field_0x9a;
u8 field_0x9b;
u8 field_0x9c;
u8 field_0x9d;
u8 field_0x9e;
u8 field_0x9f;
u8 field_0xa0;
u8 field_0xa1;
u8 field_0xa2;
u8 field_0xa3;
u8 field_0xa4;
u8 field_0xa5;
u8 field_0xa6;
u8 field_0xa7;
u8 field_0xa8;
u8 field_0xa9;
u8 field_0xaa;
u8 field_0xab;
u8 field_0xac;
u8 field_0xad;
u8 field_0xae;
u8 field_0xaf;
u8 field_0xb0;
u8 field_0xb1;
u8 field_0xb2;
u8 field_0xb3;
u8 field_0xb4;
u8 field_0xb5;
u8 field_0xb6;
u8 field_0xb7;
u8 field_0xb8;
u8 field_0xb9;
u8 field_0xba;
u8 field_0xbb;
u8 field_0xbc;
u8 field_0xbd;
u8 field_0xbe;
};
#pragma pack(pop)
/* 0x00 */ u16 mEventType;
/* 0x02 */ u16 mFlag;
/* 0x04 */ s16 field_0x04;
/* 0x08 */ fopAc_ac_c* mActor1;
/* 0x0C */ fopAc_ac_c* mActor2;
/* 0x10 */ s16 mEventId;
/* 0x12 */ s16 mPriority;
/* 0x14 */ u8 mNextOrderIdx;
/* 0x15 */ u8 mEventInfoIdx;
}; // Size = 0x18
typedef int (*SkipFunc)(void*, int);
#pragma pack(push, 1)
class dEvt_control_c {
public:
/* 80041580 */ dEvt_control_c();
/* 800415D8 */ void orderOld(u16, u16, u16, u16, void*, void*, void const*);
/* 80041668 */ void order(u16, u16, u16, u16, void*, void*, s16, u8);
/* 80041804 */ void setParam(dEvt_order_c*);
/* 80041934 */ void beforeFlagProc(dEvt_order_c*);
/* 80041964 */ void afterFlagProc(dEvt_order_c*);
/* 800419A8 */ void commonCheck(dEvt_order_c*, u16, u16);
/* 80041A20 */ void talkCheck(dEvt_order_c*);
/* 80041B58 */ void talkXyCheck(dEvt_order_c*);
/* 80041C90 */ void catchCheck(dEvt_order_c*);
/* 80041D34 */ void talkEnd();
/* 80041DDC */ void demoCheck(dEvt_order_c*);
/* 80041F18 */ void demoEnd();
/* 80041FA0 */ void potentialCheck(dEvt_order_c*);
/* 80042014 */ void doorCheck(dEvt_order_c*);
/* 8004212C */ void itemCheck(dEvt_order_c*);
/* 800421C0 */ void endProc();
/* 80042254 */ void change();
/* 800422C0 */ void entry();
/* 80042518 */ void reset(void*);
/* 80042468 */ void reset();
/* 800425B4 */ void clearSkipSystem();
/* 8004290C */ void getSkipEventName();
/* 80042914 */ void setSkipProc(void*, int (*)(void*, int), int);
/* 80042958 */ void setSkipZev(void*, char*);
/* 800429A8 */ void onSkipFade();
/* 800429B4 */ void offSkipFade();
/* 800429D4 */ void skipper();
/* 80042BBC */ void Step();
/* 80042FA8 */ void moveApproval(void*);
/* 8004316C */ void compulsory(void*, char const*, u16);
/* 800431E8 */ void remove();
/* 80043278 */ void getStageEventDt();
/* 80043280 */ void sceneChange(int);
/* 800432C8 */ void getPId(void*);
/* 800432EC */ void convPId(unsigned int);
/* 8004331C */ void getStbDemoData(char*);
/* 80043500 */ void searchMapEventData(u8, s32);
/* 800434D8 */ void searchMapEventData(u8);
/* 8004360C */ void runningEventID(s16);
/* 8004362C */ void setPt1(void*);
/* 8004365C */ void setPt2(void*);
/* 8004368C */ void setPtT(void*);
/* 800436BC */ void setPtI(void*);
/* 800436EC */ void setPtI_Id(unsigned int);
/* 800436F4 */ void setPtD(void*);
/* 80043724 */ void setGtItm(u8);
dEvt_control_c();
void orderOld(u16, u16, u16, u16, void*, void*, void const*);
void order(u16, u16, u16, u16, void*, void*, s16, u8);
void setParam(dEvt_order_c*);
s32 beforeFlagProc(dEvt_order_c*);
void afterFlagProc(dEvt_order_c*);
void commonCheck(dEvt_order_c*, u16, u16);
void talkCheck(dEvt_order_c*);
void talkXyCheck(dEvt_order_c*);
void catchCheck(dEvt_order_c*);
void talkEnd();
void demoCheck(dEvt_order_c*);
void demoEnd();
s32 potentialCheck(dEvt_order_c*);
void doorCheck(dEvt_order_c*);
void itemCheck(dEvt_order_c*);
void endProc();
void change();
void entry();
void reset(void*);
void reset();
void clearSkipSystem();
char* getSkipEventName();
void setSkipProc(void*, SkipFunc, int);
void setSkipZev(void*, char*);
void onSkipFade();
void offSkipFade();
void skipper();
void Step();
void moveApproval(void*);
void compulsory(void*, char const*, u16);
void remove();
void* getStageEventDt(); // ret type probably wrong, fix later
void sceneChange(int);
u32 getPId(void*);
void convPId(unsigned int);
void getStbDemoData(char*);
void searchMapEventData(u8, s32);
void searchMapEventData(u8);
s16 runningEventID(s16);
void setPt1(void*);
void setPt2(void*);
void setPtT(void*);
void setPtI(void*);
void setPtI_Id(unsigned int);
void setPtD(void*);
void setGtItm(u8);
private:
u16 chkFlag2(u16 flag) { return flag & mFlag2; }
public:
/* 0x000 */ u8 field_0x0[4];
/* 0x004 */ dEvt_order_c event_order;
/* 0x0C4 */ int mPt1;
/* 0x0C8 */ int mPt2;
/* 0x0CC */ int mPtT;
/* 0x0D0 */ int mPtI;
/* 0x0D4 */ int mPtd;
/* 0x004 */ dEvt_order_c mOrder[8];
/* 0x0C4 */ u32 mPt1;
/* 0x0C8 */ u32 mPt2;
/* 0x0CC */ u32 mPtT;
/* 0x0D0 */ u32 mPtI;
/* 0x0D4 */ u32 mPtd;
/* 0x0D8 */ u16 mEventFlag;
/* 0x0DA */ u16 mFlag2;
/* 0x0DC */ u16 mHindFlag;
/* 0x0DE */ u16 field_0xde;
/* 0x0E0 */ u16 field_0xe0;
/* 0x0E2 */ u8 field_0xe2;
/* 0x0DE */ s16 mSpecifiedEvent; // name maybe wrong
/* 0x0E0 */ s16 field_0xe0;
/* 0x0E2 */ u8 mNum;
/* 0x0E3 */ u8 field_0xe3;
/* 0x0E4 */ u8 mMode;
/* 0x0E5 */ u8 field_0xe5;
@@ -287,15 +106,18 @@ private:
/* 0x0EE */ u8 mPreItemNo;
/* 0x0EF */ u8 mGtItm;
/* 0x0F0 */ float mCullRate;
/* 0x0F4 */ int mStageEventDt;
/* 0x0F8 */ int mChangeOK;
/* 0x0FC */ u8 field_0xfc[20];
/* 0x110 */ bool mSkipFade;
/* 0x114 */ char mSkipEventName[0x14];
/* 0x0F4 */ void* mStageEventDt;
/* 0x0F8 */ void* mChangeOK;
/* 0x0FC */ u8 field_0xfc[4];
/* 0x100 */ SkipFunc mSkipFunc;
/* 0x104 */ u32 field_0x104;
/* 0x108 */ u32 field_0x108;
/* 0x10C */ u32 field_0x10c;
/* 0x110 */ int mSkipFade;
/* 0x114 */ char mSkipEventName[20];
/* 0x128 */ u8 mCompulsory;
/* 0x129 */ u8 field_0x129;
/* 0x129 */ bool field_0x129;
/* 0x12C */ int field_0x12c;
};
#pragma pack(pop)
}; // Size = 0x130
#endif /* D_EVENT_D_EVENT_H */
+90 -38
View File
@@ -5,59 +5,111 @@
#include "d/save/d_save.h"
#include "dolphin/types.h"
struct dEvDtStaff_c {
/* 80043FD8 */ void specialProc_WaitStart(int);
/* 8004403C */ void specialProc_WaitProc(int);
/* 80044080 */ void specialProc();
/* 80044134 */ void init();
/* 80044170 */ void advanceCut(int);
/* 80044190 */ void specialProcLight();
/* 80044324 */ void specialProcMessage();
/* 80044A58 */ void specialProcSound();
/* 80044CB8 */ void specialProcCreate();
/* 80044EE4 */ void specialProcDirector();
/* 80045878 */ void specialProcPackage();
/* 80045AFC */ void specialProcTimekeeper();
/* 80045C34 */ void specialProcEffect();
struct event_binary_data_header {};
struct dEvDtData_c {};
class dEvDtCut_c {
public:
void startCheck();
private:
/* 0x00 */ u8 field_0x0[0x20];
/* 0x20 */ u32 mTagID;
/* 0x28 */ int field_0x28[3];
/* 0x34 */ u32 mFlagId;
/* 0x38 */ u32 mDataTop;
/* 0x3C */ u32 mNext;
};
struct dEvDtEvent_c {
/* 80043E78 */ void finishCheck();
/* 80043EFC */ void forceFinish();
/* 80043F70 */ void specialStaffProc(dEvDtStaff_c*);
class dEvDtStaff_c {
public:
void specialProc_WaitStart(int);
void specialProc_WaitProc(int);
void specialProc();
void init();
void advanceCut(int);
void specialProcLight();
void specialProcMessage();
void specialProcSound();
void specialProcCreate();
void specialProcDirector();
void specialProcPackage();
void specialProcTimekeeper();
void specialProcEffect();
private:
/* 0x00 */ u8 field_0x00[4];
/* 0x04 */ void* field_0x04;
/* 0x08 */ u32 field_0x08;
/* 0x0C */ int field_0x0c;
/* 0x10 */ u32 field_0x10;
/* 0x14 */ u8 field_0x14[0xC];
/* 0x20 */ u32 mTagID;
/* 0x24 */ u32 field_0x24;
/* 0x28 */ u8 field_0x28[4];
/* 0x2C */ int mType;
/* 0x30 */ u32 mStartCut;
/* 0x34 */ u8 field_0x34[2];
/* 0x36 */ s16 field_0x36;
/* 0x38 */ int mCurrentCut;
/* 0x3C */ u32 field_0x3c;
/* 0x40 */ u8 field_0x40;
/* 0x41 */ u8 field_0x41;
/* 0x42 */ s16 field_0x42;
/* 0x44 */ s16 mSoundWait;
/* 0x46 */ u8 field_0x46[4];
/* 0x4A */ int field_0x4a;
};
class dEvDtEvent_c {
public:
void finishCheck();
void forceFinish();
void specialStaffProc(dEvDtStaff_c*);
/* 0x00 */ s32 mEventNum;
};
class dEvDtFlag_c {
public:
/* 80043D60 */ void flagCheck(int);
/* 80043DC8 */ void flagSet(int);
/* 80043E30 */ void flagMaxCheck(int);
/* 80043E58 */ void init();
dEvDtFlag_c() {}
void flagCheck(int);
void flagSet(int);
bool flagMaxCheck(int);
void init();
#define FlagMax 0x2800
private:
u8 field_0x0[320];
};
u32 mFlags[320];
}; // Size = 0x500
#pragma pack(push, 1)
class dEvDtBase_c {
public:
dEvDtBase_c();
~dEvDtBase_c();
/* 80046138 */ void init();
/* 8004616C */ void init(char*, int);
/* 8004628C */ void advanceCut(dEvDtEvent_c*);
/* 800462FC */ void advanceCutLocal(dEvDtStaff_c*);
void init();
void init(char*, int);
void advanceCut(dEvDtEvent_c*);
void advanceCutLocal(dEvDtStaff_c*);
event_binary_data_header* getHeaderP() { return mHeaderP; }
s32 getEventNum() { return mEventP->mEventNum; }
s32 roomNo() { return mRoomNo; }
private:
u32 field_0x0;
u32 field_0x4;
u32 field_0x8;
u32 field_0xc;
u32 field_0x10;
u32 field_0x14;
u32 field_0x18;
u32 field_0x1c;
u32 field_0x20;
};
/* 0x00 */ event_binary_data_header* mHeaderP;
/* 0x04 */ dEvDtEvent_c* mEventP;
/* 0x08 */ dEvDtStaff_c* mStaffP;
/* 0x0C */ dEvDtCut_c* mCutP;
/* 0x10 */ dEvDtData_c* mDataP;
/* 0x14 */ float* mFDataP;
/* 0x18 */ s32* mIDataP;
/* 0x1C */ char* mSDataP;
/* 0x20 */ s32 mRoomNo;
}; // Size = 0x24
#pragma pack(pop)
#endif /* D_EVENT_D_EVENT_DATA_H */
+63 -69
View File
@@ -4,87 +4,81 @@
#include "d/event/d_event_data.h"
#include "dolphin/types.h"
struct dEvDtData_c {};
#pragma pack(push, 1)
class dEvent_exception_c {
public:
/* 800463DC */ void init();
/* 800463F0 */ void setStartDemo(int);
/* 80046480 */ void getEventName();
dEvent_exception_c() { mEventInfoIdx = -1; }
void init();
void setStartDemo(int);
void getEventName();
private:
u32 field_0x0;
u32 mEventInfoIdx;
u8 field_0x4;
u8 field_0x5;
u8 field_0x6;
u8 field_0x7;
u32 field_0x8;
u32 mState;
};
#pragma pack(pop)
#pragma pack(push, 1)
struct dEvent_manager_c {
/* 800465E8 */ void getSubstance(dEvDtData_c*, int);
/* 80046688 */ dEvent_manager_c();
/* 80046710 */ void create();
/* 80046800 */ void setObjectArchive(char*);
/* 80046888 */ void demoInit();
/* 80046904 */ void roomInit(int);
/* 800469EC */ void roomFinish(int);
/* 80046A58 */ void orderStartDemo();
/* 80046C0C */ void remove();
/* 80046CB8 */ void startProc(dEvDtEvent_c*);
/* 80046DA0 */ void closeProc(dEvDtEvent_c*);
/* 80046DAC */ void endProc(s16, int);
/* 80046E64 */ void Sequencer();
/* 800473FC */ void Experts();
/* 800474BC */ void getEventData(s16);
/* 80047454 */ void getEventData(s16, int);
/* 80047514 */ void getEventIdx(char const*, u8, s32);
/* 80047698 */ void getEventIdx(fopAc_ac_c*, u8);
/* 80047758 */ void getEventIdx(fopAc_ac_c*, char const*, u8);
/* 80047930 */ void isMapToolCamera(u8, s32);
/* 80047984 */ void order(s16);
/* 800479F8 */ void startCheck(s16);
/* 80047A38 */ void startCheckOld(char const*);
/* 80047A78 */ void endCheck(s16);
/* 80047ADC */ void endCheckOld(char const*);
/* 80047B1C */ void getMyStaffId(char const*, fopAc_ac_c*, int);
/* 80047D4C */ void getIsAddvance(int);
/* 80047E10 */ void getMyActIdx(int, char const* const*, int, int, int);
/* 80047F5C */ void getMyNowCutName(int);
/* 80047FC8 */ void getMyDataP(int, char const*, int);
/* 800480EC */ void getMySubstanceP(int, char const*, int);
/* 80048144 */ void getMySubstanceNum(int, char const*);
/* 8004817C */ void cutEnd(int);
/* 800481F4 */ void getEventPrio(fopAc_ac_c*, s16);
/* 800482CC */ void issueStaff(char const*);
/* 80048348 */ void cancelStaff(char const*);
/* 800483C4 */ void setGoal(cXyz*);
/* 800483E0 */ void getGoal();
/* 800483E8 */ void getRunEventName();
/* 80048520 */ void specialCast_Shutter(s16, int);
/* 80048618 */ void specialCast(char const*, int);
/* 800487F0 */ void ChkPresentEnd();
/* 8004882C */ void checkStartDemo();
class dEvent_manager_c {
public:
void getSubstance(dEvDtData_c*, int);
dEvent_manager_c();
void create();
void setObjectArchive(char*);
void demoInit();
void roomInit(int);
void roomFinish(int);
void orderStartDemo();
void remove();
void startProc(dEvDtEvent_c*);
void closeProc(dEvDtEvent_c*);
void endProc(s16, int);
void Sequencer();
void Experts();
void getEventData(s16);
dEvDtEvent_c* getEventData(s16, int);
void getEventIdx(char const*, u8, s32);
void getEventIdx(fopAc_ac_c*, u8);
void getEventIdx(fopAc_ac_c*, char const*, u8);
void isMapToolCamera(u8, s32);
void order(s16);
void startCheck(s16);
void startCheckOld(char const*);
void endCheck(s16);
void endCheckOld(char const*);
void getMyStaffId(char const*, fopAc_ac_c*, int);
void getIsAddvance(int);
void getMyActIdx(int, char const* const*, int, int, int);
void getMyNowCutName(int);
void getMyDataP(int, char const*, int);
void getMySubstanceP(int, char const*, int);
void getMySubstanceNum(int, char const*);
void cutEnd(int);
void getEventPrio(fopAc_ac_c*, s16);
void issueStaff(char const*);
void cancelStaff(char const*);
void setGoal(cXyz*);
void getGoal();
void getRunEventName();
void specialCast_Shutter(s16, int);
void specialCast(char const*, int);
void ChkPresentEnd();
void checkStartDemo();
/* 0x0000 */ dEvDtBase_c event_data_base[11];
/* 0x018C */ u32 field_0x18c;
/* 0x0190 */ u32 field_0x190;
/* 0x0194 */ u8 field_0x194[0x8];
/* 0x019C */ cXyz goal;
/* 0x01A8 */ u8 field_0x1A8[4];
private:
/* 0x0000 */ dEvDtBase_c mEventList[11];
/* 0x018C */ s32 mCameraPlay;
/* 0x0190 */ dEvent_exception_c mEventException;
/* 0x019C */ cXyz mGoal;
/* 0x01A8 */ u8 field_0x1a8[2];
/* 0x01AA */ u16 field_0x1aa;
/* 0x01AC */ u8 field_0x1ac[0x8];
/* 0x01B4 */ dEvent_exception_c event_exception;
/* 0x01C0 */ cXyz position;
/* 0x01CC */ u8 field_0x1cc[0x14];
/* 0x01E0 */ dEvDtFlag_c event_data_flag;
/* 0x0320 */ u8 field_0x320[0x35C];
/* 0x067C */ void* vtable;
/* 0x0680 */ u8 field_0x680[0x3C];
/* 0x01AC */ u8 field_0x1ac[4];
/* 0x01B0 */ u32 field_0x1b0;
/* 0x01B4 */ u32 field_0x1b4;
/* 0x01B8 */ u32 field_0x1b8;
/* 0x01BC */ dEvDtFlag_c mFlags;
/* 0x06BC */ bool mDataLoaded;
};
#pragma pack(pop)
#endif /* D_EVENT_D_EVENT_MANAGER_H */