diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2022-06-01 04:55:21 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-01 04:55:21 -0700 |
| commit | ab03edeb80df5bc65f4a001cda3f0320f57af01f (patch) | |
| tree | 40a834ecb4a9324a1f8021224edba6a659422c62 /include | |
| parent | 9bcbccbeb5966896e10b9f29cc4c69bc49abe20d (diff) | |
| parent | 132f0cbfb7109828e0edb6312803fae6eb60d0a7 (diff) | |
Merge pull request #197 from lepelog/event
event manager
Diffstat (limited to 'include')
| -rw-r--r-- | include/d/com/d_com_inf_game.h | 1 | ||||
| -rw-r--r-- | include/d/d_camera.h | 187 | ||||
| -rw-r--r-- | include/d/d_stage.h | 26 | ||||
| -rw-r--r-- | include/d/event/d_event.h | 18 | ||||
| -rw-r--r-- | include/d/event/d_event_data.h | 17 | ||||
| -rw-r--r-- | include/d/event/d_event_manager.h | 65 | ||||
| -rw-r--r-- | include/f_op/f_op_actor.h | 7 | ||||
| -rw-r--r-- | include/f_op/f_op_actor_mng.h | 13 | ||||
| -rw-r--r-- | include/f_pc/f_pc_manager.h | 6 |
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 |
