Skip to content

Commit 0b50e10

Browse files
authored
d_a_obj_crvgate Matching (#2385)
* d_a_obj_crvgate equivalent * d_a_obj_crvgate matching * d_a_obj_crvgate comments
1 parent c7eb18a commit 0b50e10

File tree

3 files changed

+789
-662
lines changed

3 files changed

+789
-662
lines changed

configure.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1863,7 +1863,7 @@ def MatchingFor(*versions):
18631863
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_cowdoor"),
18641864
ActorRel(NonMatching, "d_a_obj_crope"),
18651865
ActorRel(NonMatching, "d_a_obj_crvfence"),
1866-
ActorRel(NonMatching, "d_a_obj_crvgate"),
1866+
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_crvgate"),
18671867
ActorRel(NonMatching, "d_a_obj_crvhahen"),
18681868
ActorRel(NonMatching, "d_a_obj_crvlh_down"),
18691869
ActorRel(NonMatching, "d_a_obj_crvlh_up"),

include/d/actor/d_a_obj_crvgate.h

Lines changed: 62 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,34 @@
11
#ifndef D_A_OBJ_CRVGATE_H
22
#define D_A_OBJ_CRVGATE_H
33

4-
#include "f_op/f_op_actor_mng.h"
4+
#include "d/d_bg_s_acch.h"
5+
#include "d/d_bg_s_movebg_actor.h"
6+
#include "d/d_cc_d.h"
57

68
/**
79
* @ingroup actors-objects
810
* @class daObjCRVGATE_c
911
* @brief Caravan Gate
1012
*
11-
* @details
12-
*
13+
* @details Caravan Gate at Arbiter's Grounds Exterior at King Bulblin's Tent.
14+
* The gate consists of two door objects that work as a pair. One door references
15+
* the other through the mpDoorPair pointer. The door will move when the player
16+
* touches it.
17+
* At the end of the fight, the player rides the bullbo and crashes into the door,
18+
* destroying it.
1319
*/
14-
class daObjCRVGATE_c : public fopAc_ac_c {
20+
class daObjCRVGATE_c : public dBgS_MoveBgActor {
1521
public:
1622
/* 80BD0398 */ void initCcCylinder();
1723
/* 80BD0500 */ void setCcCylinder();
18-
/* 80BD069C */ void checkOpen();
24+
/* 80BD069C */ int checkOpen();
1925
/* 80BD0880 */ void actionStartEvent();
2026
/* 80BD0978 */ void actionWaitEvent();
2127
/* 80BD0A64 */ void Demo_Set();
2228
/* 80BD0B7C */ void SetOpen();
2329
/* 80BD0B88 */ void actionDemoEvent();
2430
/* 80BD0D28 */ void event_proc_call();
25-
/* 80BD0D90 */ void CheckVec();
31+
/* 80BD0D90 */ int CheckVec();
2632
/* 80BD0E1C */ void KeyVib();
2733
/* 80BD0F9C */ void DoorVib();
2834
/* 80BD10C0 */ void VibStop();
@@ -34,19 +40,61 @@ class daObjCRVGATE_c : public fopAc_ac_c {
3440
/* 80BD2338 */ void B_CloseAction();
3541
/* 80BD245C */ void SetB_Close();
3642
/* 80BD2528 */ void setBaseMtx();
37-
/* 80BD2670 */ void CreateHeap();
43+
/* 80BD2670 */ int CreateHeap();
3844
/* 80BD2758 */ void SetDoor();
39-
/* 80BD28C0 */ void create();
40-
/* 80BD2E88 */ void Create();
41-
/* 80BD2ECC */ void Execute(f32 (**)[3][4]);
42-
/* 80BD2FB8 */ void Draw();
43-
/* 80BD3074 */ void Delete();
45+
/* 80BD28C0 */ int create();
46+
/* 80BD2E88 */ int Create();
47+
/* 80BD2ECC */ int Execute(f32 (**)[3][4]);
48+
/* 80BD2FB8 */ int Draw();
49+
/* 80BD3074 */ int Delete();
4450

4551
private:
46-
/* 0x568 */ u8 field_0x568[0xde4 - 0x568];
52+
/* 0x5A0 */ s32 mEventID;
53+
/* 0x5A4 */ bool mFlagGateClosed;
54+
/* 0x5A5 */ bool field_0x5a5;
55+
/* 0x5A6 */ u8 field_0x5a6[2];
56+
/* 0x5A8 */ s16 mDoorTargetAngle;
57+
/* 0x5AA */ bool mFlagDemoEventPlay;
58+
/* 0x5AB */ u8 mDestructionCount;
59+
/* 0x5AC */ u8 mKeyParam;
60+
/* 0x5AD */ bool mEventFlag;
61+
/* 0x5AE */ bool mFlagDoorStuck;
62+
/* 0x5AF */ u8 mStatus;
63+
/* 0x5B0 */ bool mDoorPairLoaded;
64+
/* 0x5B1 */ bool mFlagDoorMove;
65+
/* 0x5B4 */ daObjCRVGATE_c* mpDoorPair;
66+
/* 0x5B8 */ f32 mFovY;
67+
/* 0x5BC */ s16 field_0x5bc;
68+
/* 0x5C0 */ cXyz mCamEye;
69+
/* 0x5CC */ cXyz mCamCenter;
70+
/* 0x5D8 */ csXyz mDoorOpenAngle;
71+
/* 0x5E0 */ cXyz mPos;
72+
/* 0x5EC */ cXyz mPosAccel;
73+
/* 0x5F8 */ cXyz mPosTmp;
74+
/* 0x604 */ u8 field_0x604[6];
75+
/* 0x60A */ csXyz mMoveAngle;
76+
/* 0x610 */ csXyz mDoorVib;
77+
/* 0x618 */ f32 mMinHeight;
78+
/* 0x61C */ cXyz mXyzSph[3];
79+
/* 0x640 */ fpc_ProcID mDoorPairProcID;
80+
/* 0x644 */ s16 mDoorY;
81+
/* 0x646 */ s16 mDoorAngle;
82+
/* 0x648 */ s16 mDoorSwingTargetAngle;
83+
/* 0x64A */ s16 mDoorStep;
84+
/* 0x64C */ Z2SoundObjSimple mSound;
85+
/* 0x66C */ s16 field_0x66c;
86+
/* 0x66E */ u8 field_0x66e[6];
87+
/* 0x674 */ J3DModel* mpModelGate;
88+
/* 0x678 */ J3DModel* mpModelKey;
89+
/* 0x67C */ request_of_phase_process_class mPhaseReq;
90+
/* 0x684 */ dBgS_AcchCir mAcchCir;
91+
/* 0x6C4 */ dBgS_ObjAcch mAcch;
92+
/* 0x89C */ dCcD_Stts mStts;
93+
/* 0x8D8 */ dCcD_Sph mSph[3];
94+
/* 0xC80 */ dCcD_Cyl mCyl;
95+
/* 0xDBC */ u8 field_0xdbc[40];
4796
};
4897

4998
STATIC_ASSERT(sizeof(daObjCRVGATE_c) == 0xde4);
5099

51-
52100
#endif /* D_A_OBJ_CRVGATE_H */

0 commit comments

Comments
 (0)