summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2022-06-01 04:55:21 -0700
committerGitHub <noreply@github.com>2022-06-01 04:55:21 -0700
commitab03edeb80df5bc65f4a001cda3f0320f57af01f (patch)
tree40a834ecb4a9324a1f8021224edba6a659422c62 /include
parent9bcbccbeb5966896e10b9f29cc4c69bc49abe20d (diff)
parent132f0cbfb7109828e0edb6312803fae6eb60d0a7 (diff)
Merge pull request #197 from lepelog/event
event manager
Diffstat (limited to 'include')
-rw-r--r--include/d/com/d_com_inf_game.h1
-rw-r--r--include/d/d_camera.h187
-rw-r--r--include/d/d_stage.h26
-rw-r--r--include/d/event/d_event.h18
-rw-r--r--include/d/event/d_event_data.h17
-rw-r--r--include/d/event/d_event_manager.h65
-rw-r--r--include/f_op/f_op_actor.h7
-rw-r--r--include/f_op/f_op_actor_mng.h13
-rw-r--r--include/f_pc/f_pc_manager.h6
9 files changed, 293 insertions, 47 deletions
diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h
index 115a7a4bf7..b29ff2157d 100644
--- a/include/d/com/d_com_inf_game.h
+++ b/include/d/com/d_com_inf_game.h
@@ -1368,6 +1368,7 @@ u8 dComIfGp_getSelectItem(int index);
u8 dComIfGp_TargetWarpPt_get();
void dComIfGp_TargetWarpPt_set(u8);
BOOL dComIfGp_TransportWarp_check();
+u8 dComIfGp_SelectWarpPt_get();
void dComIfGp_setNextStage(char const* stage, s16 point, s8 roomNo, s8 layer, f32 lastSpeed,
u32 lastMode, int, s8 wipe, s16 lastAngle, int, int);
void dComIfGp_setNextStage(char const* stage, s16 point, s8 roomNo, s8 layer);
diff --git a/include/d/d_camera.h b/include/d/d_camera.h
index fb7e2fef14..a82d9e1459 100644
--- a/include/d/d_camera.h
+++ b/include/d/d_camera.h
@@ -1,6 +1,193 @@
#ifndef D_D_CAMERA_H
#define D_D_CAMERA_H
+#include "SSystem/SComponent/c_angle.h"
+#include "SSystem/SComponent/c_xyz.h"
+#include "d/bg/d_bg_s_lin_chk.h"
+#include "d/d_stage.h"
#include "dolphin/types.h"
+#include "f_op/f_op_camera_mng.h"
+
+class fopAc_ac_c;
+
+struct dCamMapToolData {
+ /* 8015FEB8 */ void Set(s32, s32, fopAc_ac_c*, u16, u8);
+};
+
+struct dCamera_c {
+ struct dCamInfo_c {
+ /* 8018291C */ dCamInfo_c();
+ /* 80182920 */ ~dCamInfo_c();
+ };
+
+ /* 8008908C */ void getEvIntData(int*, char*, int);
+ /* 80088CB0 */ void getEvIntData(int*, char*);
+ /* 80089154 */ void getEvFloatData(f32*, char*, f32);
+ /* 80088D90 */ void getEvFloatData(f32*, char*);
+ /* 8008933C */ void getEvStringData(char*, char*, char*);
+ /* 800894C4 */ void getEvActor(char*);
+ /* 800895F4 */ void getEvActor(char*, char*);
+ /* 80089730 */ void pauseEvCamera();
+ /* 800897E8 */ void fixedFrameEvCamera();
+ /* 8008A510 */ void stokerEvCamera();
+ /* 8008A974 */ void rollingEvCamera();
+ /* 8008B9B0 */ void fixedPositionEvCamera();
+ /* 8008BE2C */ void uniformTransEvCamera();
+ /* 8008BE50 */ void uniformBrakeEvCamera();
+ /* 8008BE74 */ void uniformAcceleEvCamera();
+ /* 8008E938 */ void watchActorEvCamera();
+ /* 8008FAE8 */ void restorePosEvCamera();
+ /* 80090174 */ void talktoEvCamera();
+ /* 80090230 */ void maptoolIdEvCamera();
+ /* 80090478 */ void styleEvCamera();
+ /* 80090514 */ void gameOverEvCamera();
+ /* 80091468 */ void tactEvCamera();
+ /* 800923B8 */ bool turnToActorEvCamera();
+ /* 800923C0 */ void stbWaitEvCamera();
+ /* 800924D0 */ void saveEvCamera();
+ /* 8009258C */ void loadEvCamera();
+ /* 800929AC */ void useItem0EvCamera();
+ /* 800937AC */ void useItem1EvCamera();
+ /* 80094240 */ void getItemEvCamera();
+ /* 80094A70 */ void possessedEvCamera();
+ /* 80095010 */ void fixedFramesEvCamera();
+ /* 8009544C */ void bSplineEvCamera();
+ /* 800956E4 */ void twoActor0EvCamera();
+ /* 80095E7C */ void peepHoleEvCamera();
+ /* 80095FD0 */ void digHoleEvCamera();
+ /* 800965AC */ void hintTalkEvCamera();
+ /* 80096EDC */ void bspTransEvCamera();
+ /* 80097694 */ bool portalWarpEvCamera();
+ /* 8009771C */ void attentionPos(fopAc_ac_c*);
+ /* 80097738 */ void directionOf(fopAc_ac_c*);
+ /* 8009775C */ void positionOf(fopAc_ac_c*);
+ /* 80097778 */ void setFlag(u32);
+ /* 8009778C */ void eyePos(fopAc_ac_c*);
+ /* 8016008C */ dCamera_c(camera_class*);
+ /* 80160304 */ ~dCamera_c();
+ /* 80160470 */ void initialize(camera_class*, fopAc_ac_c*, u32, u32);
+ /* 801614AC */ void Start();
+ /* 801614C4 */ void QuickStart();
+ /* 801614D0 */ void Stop();
+ /* 801614E8 */ void Stay();
+ /* 801614F4 */ void ChangeModeOK(s32);
+ /* 80161550 */ void initPad();
+ /* 801617B0 */ void updatePad();
+ /* 80161D84 */ void initMonitor();
+ /* 80161E34 */ void updateMonitor();
+ /* 80162088 */ void checkForceLockTarget();
+ /* 801622B0 */ void infoReport();
+ /* 801622B4 */ void Run();
+ /* 80162D38 */ void NotRun();
+ /* 80162FB8 */ void V();
+ /* 80162FD4 */ void U();
+ /* 8016300C */ void SetTrimSize(s32);
+ /* 80163028 */ void SetTrimTypeForce(s32);
+ /* 80163034 */ void CalcTrimSize();
+ /* 80163154 */ void Draw();
+ /* 8016317C */ void setStageMapToolData();
+ /* 80163340 */ void setMapToolData();
+ /* 80163558 */ void SetTagData(fopAc_ac_c*, s32, u16, u8);
+ /* 801635AC */ void setRoomMapToolData(dCamMapToolData*, s32, s32);
+ /* 801635E4 */ void nextMode(s32);
+ /* 80163C38 */ void onModeChange(s32, s32);
+ /* 80163D50 */ void ModeFix(s32);
+ /* 80163D5C */ void nextType(s32);
+ /* 8016444C */ void onTypeChange(s32, s32);
+ /* 8016469C */ void onStyleChange(s32, s32);
+ /* 801647B0 */ void onRoomChange(s32);
+ /* 80164878 */ void getParamTargetActor(s32);
+ /* 80164944 */ void GetCameraTypeFromMapToolID(s32, s32);
+ /* 80164B64 */ void GetCameraTypeFromCameraName(char const*);
+ /* 80164C10 */ void GetCameraTypeFromToolData(stage_camera2_data_class*);
+ /* 80164C64 */ void pushInfo(dCamera_c::dCamInfo_c*, s16);
+ /* 80164CAC */ void popInfo(dCamera_c::dCamInfo_c*);
+ /* 80164D2C */ void heightOf(fopAc_ac_c*);
+ /* 80164E20 */ void relationalPos(fopAc_ac_c*, fopAc_ac_c*, cXyz*, f32);
+ /* 80164D6C */ void relationalPos(fopAc_ac_c*, cXyz*);
+ /* 80165104 */ void setUSOAngle();
+ /* 80165158 */ void getUSOAngle(cSAngle);
+ /* 8016517C */ void pointInSight(cXyz*);
+ /* 80167C24 */ void radiusActorInSight(fopAc_ac_c*, fopAc_ac_c*, fopAc_ac_c*);
+ /* 80165238 */ void radiusActorInSight(fopAc_ac_c*, fopAc_ac_c*, cXyz*, cXyz*, f32, s16, f32);
+ /* 801657EC */ void groundHeight(cXyz*);
+ /* 801658C0 */ void lineBGCheck(cXyz*, cXyz*, dBgS_LinChk*, u32);
+ /* 80165AF0 */ void lineBGCheck(cXyz*, cXyz*, u32);
+ /* 801659F4 */ void lineBGCheck(cXyz*, cXyz*, cXyz*, u32);
+ /* 80165B60 */ void lineCollisionCheckBush(cXyz*, cXyz*);
+ /* 80165CE0 */ void compWallMargin(cXyz*, cXyz*, f32);
+ /* 80165EF4 */ void defaultTriming();
+ /* 80165FB4 */ void setView(f32, f32, f32, f32);
+ /* 8016608C */ void forwardCheckAngle();
+ /* 80166764 */ void bumpCheck(u32);
+ /* 80167BF8 */ void lineBGCheckBoth(cXyz*, cXyz*, dBgS_LinChk*, u32);
+ /* 80167CD8 */ void jutOutCheck(cXyz*, f32);
+ /* 80167E3C */ void tooNearEscape(cXyz*);
+ /* 80167EF4 */ void getWaterSurfaceHeight(cXyz*);
+ /* 80167FEC */ void checkGroundInfo();
+ /* 80168744 */ void chaseCamera(s32);
+ /* 8016C384 */ void lockonCamera(s32);
+ /* 8016E448 */ void getMsgCmdSpeaker();
+ /* 8016E4A4 */ void getMsgCmdCut(s32);
+ /* 8016E4F4 */ void talktoCamera(s32);
+ /* 80174E18 */ void talkBasePos(fopAc_ac_c*);
+ /* 80174E34 */ void talkEyePos(fopAc_ac_c*);
+ /* 80174EA4 */ bool CalcSubjectAngle(s16*, s16*);
+ /* 80174EAC */ void SaveZoomRatio();
+ /* 80174ED4 */ void subjectCamera(s32);
+ /* 80176074 */ void magneCamera(s32);
+ /* 801767F8 */ void colosseumCamera(s32);
+ /* 80176DF0 */ bool test1Camera(s32);
+ /* 80176DF8 */ bool test2Camera(s32);
+ /* 80176E00 */ void towerCamera(s32);
+ /* 80178E50 */ void hookshotCamera(s32);
+ /* 80179590 */ void railCamera(s32);
+ /* 8017A2A0 */ void paraRailCamera(s32);
+ /* 8017ADC0 */ void rideCamera(s32);
+ /* 8017D974 */ bool manualCamera(s32);
+ /* 8017D97C */ void observeCamera(s32);
+ /* 8017DFAC */ void fixedFrameCamera(s32);
+ /* 8017E730 */ void fixedPositionCamera(s32);
+ /* 8017F25C */ void oneSideCamera(s32);
+ /* 8017F828 */ void eventCamera(s32);
+ /* 8018050C */ void currentEvCamera();
+ /* 801806D4 */ bool letCamera(s32);
+ /* 801806DC */ void setEventRecoveryTrans(s16);
+ /* 80180738 */ void runEventRecoveryTrans();
+ /* 80180A40 */ void EventRecoverNotime();
+ /* 80180AA8 */ void Set(cXyz, cXyz);
+ /* 80180AE0 */ void Set(cXyz, cXyz, f32, s16);
+ /* 80180B40 */ void Set(cXyz, cXyz, s16, f32);
+ /* 80180C18 */ void Reset(cXyz, cXyz);
+ /* 80180C68 */ void Reset();
+ /* 80180BA0 */ void Reset(cXyz, cXyz, f32, s16);
+ /* 80180D24 */ void shakeCamera();
+ /* 80181000 */ void StartShake(s32, u8*, s32, cXyz);
+ /* 80181158 */ void StopShake();
+ /* 80181170 */ void StartBlure(int, fopAc_ac_c*, f32, f32);
+ /* 801811B8 */ void ResetBlure();
+ /* 80181208 */ void SetBlureAlpha(f32);
+ /* 80181210 */ void SetBlureScale(f32, f32, f32);
+ /* 80181220 */ void SetBlurePosition(f32, f32, f32);
+ /* 80181278 */ void SetBlureActor(fopAc_ac_c*);
+ /* 80181280 */ void blureCamera();
+ /* 80181490 */ void onHorseDush();
+ /* 80181500 */ void GetForceLockOnActor();
+ /* 80181534 */ void ForceLockOn(fopAc_ac_c*);
+ /* 80181560 */ void ForceLockOff(unsigned int);
+ /* 8018159C */ void ForceLockOff(fopAc_ac_c*);
+ /* 80181E20 */ void Up();
+ /* 80181E64 */ void Eye();
+ /* 80181E98 */ cXyz Center();
+ /* 8018295C */ void footHeightOf(fopAc_ac_c*);
+ /* 80182964 */ void push_any_key();
+ /* 8018296C */ void clrFlag(u32);
+ /* 80182980 */ void chkFlag(u32);
+ /* 801829AC */ void Bank();
+
+ static u8 engine_tbl[240];
+};
+
+dCamera_c* dCam_getBody();
#endif /* D_D_CAMERA_H */
diff --git a/include/d/d_stage.h b/include/d/d_stage.h
index ae0e3dc679..032fac58c6 100644
--- a/include/d/d_stage.h
+++ b/include/d/d_stage.h
@@ -236,8 +236,26 @@ struct dStage_DMap_c {
// DMAP
};
+struct dStage_MapEvent_dt_c {
+ u8 mType;
+ u8 field_0x1[3 - 1];
+ u8 field_0x3;
+ u8 field_0x4[7 - 4];
+ u8 field_0x7;
+ u8 field_0x8;
+ u8 field_0x9;
+ u8 field_0xA[0xD - 0xA];
+ char mName[10];
+ u8 field_0x17;
+ u8 field_0x18;
+ u8 field_0x19[0x1B - 0x19];
+ u8 field_0x1B;
+}; // SIZE = 0x1C
+
struct dStage_MapEventInfo_c {
// REVT
+ int mCount;
+ dStage_MapEvent_dt_c* mData;
};
class dStage_dt_c {
@@ -892,4 +910,12 @@ inline u32 dStage_FileList_dt_getMiniMap(dStage_FileList_dt_c* p_fList) {
return p_fList->mParameters >> 3 & 7;
}
+inline int dStage_MapEvent_dt_c_getEventSCutSW(dStage_MapEvent_dt_c* event) {
+ return event->field_0x8 & 1;
+}
+
+inline int dStage_MapEvent_dt_c_getEventSCutType(dStage_MapEvent_dt_c* event) {
+ return event->field_0x8 >> 1 & 3;
+}
+
#endif /* D_D_STAGE_H */
diff --git a/include/d/event/d_event.h b/include/d/event/d_event.h
index 20c6f4be3f..52d9896d30 100644
--- a/include/d/event/d_event.h
+++ b/include/d/event/d_event.h
@@ -62,13 +62,13 @@ public:
void moveApproval(void*);
BOOL compulsory(void*, char const*, u16);
void remove();
- void* getStageEventDt(); // ret type probably wrong, fix later
+ dStage_MapEvent_dt_c* getStageEventDt();
void sceneChange(int);
u32 getPId(void*);
- void convPId(unsigned int);
+ void* convPId(unsigned int);
void getStbDemoData(char*);
- static void searchMapEventData(u8, s32);
- static void searchMapEventData(u8);
+ static dStage_MapEvent_dt_c* searchMapEventData(u8, s32);
+ static dStage_MapEvent_dt_c* searchMapEventData(u8);
s16 runningEventID(s16);
void setPt1(void*);
void setPt2(void*);
@@ -82,11 +82,14 @@ public:
u16 chkFlag2(u16 flag) { return flag & mFlag2; }
bool runCheck() { return field_0xe5 != 0; }
u16 chkEventFlag(u16 flag) { return flag & mEventFlag; }
+ void onEventFlag(u16 flag) { mEventFlag |= flag; }
u8 getMode() const { return mMode; }
u16 checkHind(u16 flag) { return flag & mHindFlag; }
u8 checkCompulsory() { return mCompulsory; }
bool i_isOrderOK() { return field_0xe5 == 0 || field_0xe5 == 2; }
+ void* getPt1() { return convPId(mPt1); }
+ void* getPt2() { return convPId(mPt2); }
public:
/* 0x000 */ u8 field_0x0[4];
@@ -116,7 +119,7 @@ public:
/* 0x0EE */ u8 mPreItemNo;
/* 0x0EF */ u8 mGtItm;
/* 0x0F0 */ float mCullRate;
- /* 0x0F4 */ void* mStageEventDt;
+ /* 0x0F4 */ dStage_MapEvent_dt_c* mStageEventDt;
/* 0x0F8 */ void* mChangeOK;
/* 0x0FC */ u8 field_0xfc[4];
/* 0x100 */ SkipFunc mSkipFunc;
@@ -130,4 +133,9 @@ public:
/* 0x12C */ int field_0x12c;
}; // Size = 0x130
+int dEv_defaultSkipProc(void* param_0, int param_1);
+int dEv_defaultSkipZev(void* param_0, int param_1);
+int dEv_defaultSkipStb(void* param_0, int param_1);
+int dEv_noFinishSkipProc(void* param_0, int param_1);
+
#endif /* D_EVENT_D_EVENT_H */
diff --git a/include/d/event/d_event_data.h b/include/d/event/d_event_data.h
index b1517d7bfa..1d2e77e357 100644
--- a/include/d/event/d_event_data.h
+++ b/include/d/event/d_event_data.h
@@ -52,6 +52,8 @@ public:
void startCheck();
int getDataTop() { return mDataTop; }
+ int getFlagId() { return mFlagId; }
+ char* getName() { return mName; }
private:
/* 0x00 */ char mName[32];
@@ -98,9 +100,9 @@ public:
int getCurrentCut() { return mCurrentCut; }
int getStartCut() { return mStartCut; }
-private:
+ // private:
/* 0x00 */ char mName[32];
- /* 0x20 */ u32 mTagID;
+ /* 0x20 */ s32 mTagID;
/* 0x24 */ u32 mIndex;
/* 0x28 */ u32 mFlagID;
/* 0x2C */ int mType;
@@ -108,7 +110,7 @@ private:
/* 0x34 */ u8 field_0x34[2];
/* 0x36 */ s16 field_0x36;
/* 0x38 */ int mCurrentCut;
- /* 0x3C */ u32 field_0x3c;
+ /* 0x3C */ s32 field_0x3c;
/* 0x40 */ bool field_0x40;
/* 0x41 */ bool field_0x41;
/* 0x42 */ s16 field_0x42;
@@ -118,11 +120,13 @@ private:
class dEvDtEvent_c {
public:
- void finishCheck();
+ int finishCheck();
void forceFinish();
void specialStaffProc(dEvDtStaff_c*);
int getNStaff() { return mNStaff; }
int getStaff(int idx) { return mStaff[idx]; }
+ char* getName() { return mName; }
+ int getPriority() { return mPriority; }
/* 0x00 */ char mName[32];
/* 0x20 */ u32 mIndex;
@@ -156,7 +160,7 @@ private:
class dEvDtBase_c {
public:
- dEvDtBase_c();
+ dEvDtBase_c() { init(); }
~dEvDtBase_c() {}
int init();
int init(char*, int);
@@ -168,6 +172,7 @@ public:
dEvDtEvent_c* getEventP(int i) { return &mEventP[i]; }
dEvDtData_c* getDataP(int i) { return &mDataP[i]; }
dEvDtCut_c* getCutP(int i) { return &mCutP[i]; }
+ char* getEventName(int i) { return mEventP[i].getName(); }
int getStaffCurrentCut(int i) { return mStaffP[i].getCurrentCut(); }
dEvDtCut_c* getCutStaffCurrentCutP(int i) { return getCutP(getStaffCurrentCut(i)); }
int getStaffStartCut(int i) { return mStaffP[i].getStartCut(); }
@@ -200,7 +205,7 @@ public:
void setIDataP(int* p_idata) { mIDataP = p_idata; }
void setSDataP(char* p_sdata) { mSDataP = p_sdata; }
-private:
+ // private:
/* 0x00 */ event_binary_data_header* mHeaderP;
/* 0x04 */ dEvDtEvent_c* mEventP;
/* 0x08 */ dEvDtStaff_c* mStaffP;
diff --git a/include/d/event/d_event_manager.h b/include/d/event/d_event_manager.h
index 7427c80c4d..344f1f59ad 100644
--- a/include/d/event/d_event_manager.h
+++ b/include/d/event/d_event_manager.h
@@ -8,16 +8,16 @@ class dEvent_exception_c {
public:
dEvent_exception_c() { mEventInfoIdx = -1; }
void init();
- void setStartDemo(int);
- void getEventName();
+ s32 setStartDemo(int);
+ const char* getEventName();
-private:
- u32 mEventInfoIdx;
+ // private:
+ s32 mEventInfoIdx;
u8 field_0x4;
u8 field_0x5;
u8 field_0x6;
u8 field_0x7;
- u32 mState;
+ s32 mState;
};
class dEvent_manager_c {
@@ -30,7 +30,7 @@ public:
void demoInit();
void roomInit(int);
void roomFinish(int);
- void orderStartDemo();
+ int orderStartDemo();
void remove();
void startProc(dEvDtEvent_c*);
void closeProc(dEvDtEvent_c*);
@@ -39,37 +39,44 @@ public:
void Experts();
dEvDtEvent_c* getEventData(s16);
dEvDtEvent_c* getEventData(s16, int);
- int 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*);
+ s16 getEventIdx(char const*, u8, s32);
+ s16 getEventIdx(fopAc_ac_c*, u8);
+ s16 getEventIdx(fopAc_ac_c*, char const*, u8);
+ int isMapToolCamera(u8, s32);
+ int order(s16);
+ int startCheck(s16);
+ int startCheckOld(char const*);
+ int endCheck(s16);
+ int endCheckOld(char const*);
s32 getMyStaffId(char const*, fopAc_ac_c*, int);
- void getIsAddvance(int);
- void getMyActIdx(int, char const* const*, int, int, int);
- void getMyNowCutName(int);
+ int getIsAddvance(int);
+ int getMyActIdx(int, char const* const*, int, int, int);
+ char* getMyNowCutName(int);
dEvDtData_c* getMyDataP(int, char const*, int);
void* getMySubstanceP(int, char const*, int);
- void getMySubstanceNum(int, char const*);
+ int getMySubstanceNum(int, char const*);
void cutEnd(int);
- void getEventPrio(fopAc_ac_c*, s16);
+ int 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);
+ cXyz* getGoal();
+ const char* getRunEventName();
+ fopAc_ac_c* specialCast_Shutter(s16, int);
fopAc_ac_c* specialCast(char const*, int);
- void ChkPresentEnd();
- void checkStartDemo();
+ int ChkPresentEnd();
+ int checkStartDemo();
void setStartDemo(int param_0) { mEventException.setStartDemo(param_0); }
void setCameraPlay(int status) { mCameraPlay = status; }
- dEvDtBase_c& getBase() { return mEventList[field_0x1b4]; }
+ dEvDtBase_c& getBase() { return mEventList[mCurrentEventType]; }
+
+ void setFlag(int flag) { mFlags.flagSet(flag); }
+
+ static int getIndexCompositId(s16 param_0) { return param_0 != -1 ? (u8)param_0 : -1; }
+ static int getTypeCompositId(s16 param_0) { return param_0 == -1 ? 0 : param_0 >> 8; }
+
+ static s16 makeCompositId(s16 a, int b) { return a | (b << 8); }
private:
/* 0x0000 */ dEvDtBase_c mEventList[11];
@@ -77,11 +84,11 @@ private:
/* 0x0190 */ dEvent_exception_c mEventException;
/* 0x019C */ cXyz mGoal;
/* 0x01A8 */ u8 field_0x1a8[2];
- /* 0x01AA */ s16 field_0x1aa;
+ /* 0x01AA */ s16 mCurrentEventCompositId;
/* 0x01AC */ u8 field_0x1ac[4];
/* 0x01B0 */ int mRoomNo;
- /* 0x01B4 */ u32 field_0x1b4;
- /* 0x01B8 */ u32 field_0x1b8;
+ /* 0x01B4 */ u32 mCurrentEventType;
+ /* 0x01B8 */ s32 field_0x1b8;
/* 0x01BC */ dEvDtFlag_c mFlags;
/* 0x06BC */ bool mDataLoaded;
};
diff --git a/include/f_op/f_op_actor.h b/include/f_op/f_op_actor.h
index 576474fc8e..54f6bbac2b 100644
--- a/include/f_op/f_op_actor.h
+++ b/include/f_op/f_op_actor.h
@@ -14,7 +14,7 @@ public:
dEvt_info_c();
virtual ~dEvt_info_c();
void setEventName(char*);
- s16 getEventName();
+ char* getEventName();
void beforeProc();
void onCondition(u16);
void offCondition(u16);
@@ -29,7 +29,7 @@ public:
void setArchiveName(char* name) { mArchiveName = name; }
u8 getMapToolId() { return mMapToolId; }
s16 getEventId() { return mEventId; }
- u8 getIdx() { return mIndex; }
+ s16 getIdx() { return mIndex; }
char* getArchiveName() { return mArchiveName; }
bool chkCondition(u16 condition) { return mCondition == condition; }
@@ -40,7 +40,7 @@ public:
/* 0x06 */ u16 mCondition;
/* 0x08 */ s16 mEventId;
/* 0x0A */ u8 mMapToolId;
- /* 0x0B */ u8 mIndex;
+ /* 0x0B */ s8 mIndex;
/* 0x0C */ char* mArchiveName;
/* 0x10 */ void* field_0x10;
/* 0x14 */ void* field_0x14;
@@ -119,6 +119,7 @@ public:
const cXyz& getPosition() const { return mCurrent.mPosition; }
const csXyz& getAngle() const { return mCurrent.mAngle; }
+ s8 getRoomNo() const { return mCurrent.mRoomNo; }
}; // Size: 0x568
s32 fopAc_IsActor(void* actor);
diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h
index 0a238b9e16..d30f8c7c7a 100644
--- a/include/f_op/f_op_actor_mng.h
+++ b/include/f_op/f_op_actor_mng.h
@@ -110,6 +110,10 @@ inline void fopAcM_SetParam(void* p_actor, u32 param) {
fpcM_SetParam(p_actor, param);
}
+inline s16 fpcAcM_GetProfName(void* pActor) {
+ return fpcM_GetProfName(pActor);
+}
+
inline u8 fopAcM_GetGroup(const fopAc_ac_c* p_actor) {
return p_actor->mGroup;
}
@@ -122,6 +126,10 @@ inline void fopAcM_OffStatus(fopAc_ac_c* pActor, u32 flag) {
pActor->mStatus &= ~flag;
}
+inline fopAc_ac_c* fopAcM_Search(fopAcIt_JudgeFunc func, void* param) {
+ return (fopAc_ac_c*)fopAcIt_Judge(func, param);
+}
+
inline fopAc_ac_c* fopAcM_SearchByID(unsigned int id) {
return (fopAc_ac_c*)fopAcIt_Judge((fopAcIt_JudgeFunc)fpcSch_JudgeByID, &id);
}
@@ -362,9 +370,8 @@ void fopAcM_effSmokeSet1__FPUlPUlPC4cXyzPC5csXyzfPC12dKy_tevstr_ci(void);
void fopAcM_riverStream__FP4cXyzPsPff(void);
void fopAcM_carryOffRevise__FP10fopAc_ac_c(void);
void fopAcM_searchFromName4Event__FPCcs(void);
-void fopAcM_GetName__FPv(void); // mostly inlined
-void fopAcM_GetID__FPCv(void); // mostly inlined
-static void fopAcM_GetParam__FPCv(void const*); // mostly inlined
+void fopAcM_GetName__FPv(void); // mostly inlined
+void fopAcM_GetID__FPCv(void); // mostly inlined
}
#endif
diff --git a/include/f_pc/f_pc_manager.h b/include/f_pc/f_pc_manager.h
index 6d5fbb611c..6d5a7ac875 100644
--- a/include/f_pc/f_pc_manager.h
+++ b/include/f_pc/f_pc_manager.h
@@ -27,6 +27,10 @@ inline void fpcM_SetParam(void* p_actor, u32 param) {
((base_process_class*)p_actor)->mParameters = param;
}
+inline s16 fpcM_GetProfName(void* pActor) {
+ return ((base_process_class*)pActor)->mBsTypeId;
+}
+
inline int fpcM_Create(s16 procName, FastCreateReqFunc createFunc, void* process) {
return fpcSCtRq_Request(fpcLy_CurrentLayer(), procName, (stdCreateFunc)createFunc, NULL,
process);
@@ -54,4 +58,4 @@ extern "C" {
void fpcM_Delete__FPv(void);
}
-#endif \ No newline at end of file
+#endif