Skip to content

Commit df8f49f

Browse files
authored
More d_ev_camera work (#2422)
* Work on fixedFrameEvCamera * Work on stokerEvCamera * Small work * Cleanup and started on transEvCamera * Work on watchActorEvCamera * Work on gameOverEvCamera and other cleanup * Implemented mWork pointer logic where needed * Small work on useItem0EvCamera * Work on bSplineEvCamera * work on twoActor0EvCamera function and cleanup * Work on transEvCamera * Cleanup * Work on possessedEvCamera * Work on fixedFramesEvCamera & started on digHoleEvCamera * All functions have been at least somewhat worked on * Further general work and cleanup
1 parent 885981c commit df8f49f

File tree

3 files changed

+1435
-894
lines changed

3 files changed

+1435
-894
lines changed

include/d/actor/d_a_midna.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ class daMidna_c : public fopAc_ac_c {
281281
BOOL checkNoHairScale() const { return checkStateFlg0(FLG0_NO_HAIR_SCALE); }
282282
BOOL checkNpcNear() { return checkStateFlg0(FLG0_NPC_NEAR); }
283283
BOOL checkNpcFar() { return checkStateFlg0(FLG0_NPC_FAR); }
284-
BOOL checkNoDraw() const { return checkStateFlg0(FLG0_NO_DRAW); }
284+
u32 checkNoDraw() const { return checkStateFlg0(FLG0_NO_DRAW); }
285285
BOOL checkNoInput() const { return checkStateFlg0(FLG0_NO_INPUT); }
286286
BOOL checkWolfNoPos() const { return checkStateFlg0(FLG0_WOLF_NO_POS); }
287287
int checkMetamorphoseEnable() { return (this->*mpFunc)(); }

include/d/d_camera.h

Lines changed: 130 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -752,11 +752,11 @@ class dCamera_c {
752752
/* 0x0C */ u8 field_0xc[0x10 - 0xc];
753753
/* 0x10 */ cXyz field_0x10;
754754
/* 0x1C */ f32 mFovy;
755-
/* 0x20 */ f32 field_0x20;
755+
/* 0x20 */ f32 mBank;
756756
/* 0x24 */ fopAc_ac_c* mRelActor;
757-
/* 0x28 */ char field_0x28;
757+
/* 0x28 */ char mRelUseMask;
758758
/* 0x29 */ char field_0x29;
759-
/* 0x2C */ int field_0x2c;
759+
/* 0x2C */ int mTimer;
760760
/* 0x30 */ bool field_0x30;
761761
/* 0x34 */ cXyz mBasePos;
762762
/* 0x40 */ char field_0x40;
@@ -772,7 +772,12 @@ class dCamera_c {
772772
/* 0x6C */ int field_0x6c;
773773
} event;
774774
struct {
775-
/* 0x00 */ u8 field_0x0[0x4 - 0x0];
775+
/* 0x00 */
776+
} fixedFrame;
777+
struct {
778+
/* 0x00 */ bool field_0x0;
779+
/* 0x01 */ bool field_0x1;
780+
/* 0x02 */ u8 field_0x2[2];
776781
/* 0x04 */ cXyz field_0x4;
777782
/* 0x10 */ cXyz field_0x10;
778783
/* 0x1C */ f32 field_0x1c;
@@ -787,20 +792,21 @@ class dCamera_c {
787792
/* 0x40 */ u32 field_0x40;
788793
} stoker;
789794
struct {
790-
/* 0x00 */ u8 field_0x0[0x10 - 0x0];
795+
/* 0x00 */ u8 field_0x0[0x4 - 0x0];
796+
/* 0x04 */ cXyz field_0x4;
791797
/* 0x10 */ cXyz field_0x10;
792-
/* 0x1C */ cXyz field_0x1c;
793-
/* 0x28 */ cXyz field_0x28;
794-
/* 0x34 */ f32 field_0x34;
795-
/* 0x38 */ f32 field_0x38;
796-
/* 0x3C */ fopAc_ac_c* field_0x3c;
798+
/* 0x1C */ cXyz mEye;
799+
/* 0x28 */ cXyz mCenter;
800+
/* 0x34 */ f32 mFovy;
801+
/* 0x38 */ f32 mBank;
802+
/* 0x3C */ fopAc_ac_c* mRelActor;
797803
/* 0x40 */ fopAc_ac_c* field_0x40;
798-
/* 0x44 */ int field_0x44;
799-
/* 0x48 */ int field_0x48;
800-
/* 0x4C */ f32 field_0x4c;
801-
/* 0x50 */ f32 field_0x50;
802-
/* 0x54 */ f32 field_0x54;
803-
/* 0x58 */ f32 field_0x58;
804+
/* 0x44 */ int mTimer;
805+
/* 0x48 */ int mTransType;
806+
/* 0x4C */ f32 mRoll;
807+
/* 0x50 */ f32 mRadiusAdd;
808+
/* 0x54 */ f32 mLatitude;
809+
/* 0x58 */ f32 mCtrCus;
804810
} rolling;
805811
struct {
806812
/* 0x00 */ u8 field_0x0[0x4 - 0x0];
@@ -816,7 +822,7 @@ class dCamera_c {
816822
/* 0x40 */ fopAc_ac_c* field_0x40;
817823
/* 0x44 */ fpc_ProcID field_0x44;
818824
/* 0x48 */ u8 field_0x48[0x4c - 0x48];
819-
/* 0x4C */ s32 field_0x4c;
825+
/* 0x4C */ u32 field_0x4c;
820826
} fixedPos;
821827
struct trans {
822828
/* 0x00 */ cXyz mStartEye;
@@ -833,6 +839,7 @@ class dCamera_c {
833839
/* 0x49 */ char field_0x49;
834840
/* 0x4A */ char field_0x4a;
835841
/* 0x4B */ char field_0x4b;
842+
/* 0x4C */ u8 field_0x4c[4];
836843
/* 0x50 */ int mTimer;
837844
/* 0x54 */ int mTransType;
838845
/* 0x58 */ f32 mCushion;
@@ -842,25 +849,25 @@ class dCamera_c {
842849
/* 0x6C */ int mBSpCurve;
843850
} trans;
844851
struct actor {
845-
/* 0x00 */ cXyz field_0x0;
852+
/* 0x00 */ cXyz mCtrGap;
846853
/* 0x0C */ cXyz field_0xc;
847-
/* 0x18 */ f32 field_0x18;
848-
/* 0x1C */ int field_0x1c;
849-
/* 0x20 */ f32 field_0x20;
850-
/* 0x24 */ int field_0x24;
851-
/* 0x28 */ f32 field_0x28;
852-
/* 0x2C */ f32 field_0x2c;
853-
/* 0x30 */ f32 field_0x30;
854-
/* 0x34 */ fopAc_ac_c* field_0x34;
855-
/* 0x38 */ fpc_ProcID field_0x38;
854+
/* 0x18 */ f32 mCushion;
855+
/* 0x1C */ int mNearTimer;
856+
/* 0x20 */ f32 mNearDist;
857+
/* 0x24 */ int mFarTimer;
858+
/* 0x28 */ f32 mFarDist;
859+
/* 0x2C */ f32 mZoomDist;
860+
/* 0x30 */ f32 mZoomVAngle;
861+
/* 0x34 */ fopAc_ac_c* mTargetActor;
862+
/* 0x38 */ fpc_ProcID mTargetActorID;
856863
/* 0x3C */ cSGlobe field_0x3c;
857864
/* 0x44 */ int field_0x44;
858865
/* 0x48 */ u8 field_0x48[4];
859866
/* 0x4C */ cSGlobe field_0x4c;
860867
/* 0x54 */ int field_0x54;
861-
/* 0x58 */ int field_0x58;
862-
/* 0x5C */ f32 field_0x5c;
863-
/* 0x60 */ f32 field_0x60;
868+
/* 0x58 */ int mBlure;
869+
/* 0x5C */ f32 mFrontAngle;
870+
/* 0x60 */ f32 mFovy;
864871
/* 0x64 */ u8 field_0x64[4];
865872
/* 0x68 */ int field_0x68;
866873
} actor;
@@ -921,19 +928,64 @@ class dCamera_c {
921928
/* 0x44 */ f32 field_0x44;
922929
/* 0x48 */ f32 field_0x48;
923930
} load;
924-
struct item0 {
931+
struct item {
925932
/* 0x00 */ int field_0x0;
926933
/* 0x04 */ int field_0x4;
927-
/* 0x08 */ int field_0x8;
934+
/* 0x08 */ int mType;
928935
/* 0x0C */ cXyz field_0xc;
929936
/* 0x18 */ f32 field_0x18;
930937
/* 0x1C */ int field_0x1c;
931938
/* 0x20 */ int field_0x20;
932939
/* 0x24 */ cSGlobe field_0x24;
940+
/* 0x2C */ cXyz field_0x2c;
941+
/* 0x38 */ cXyz field_0x38;
933942
/* 0x44 */ cXyz field_0x44;
934943
/* 0x50 */ cXyz field_0x50;
935944
/* 0x5C */ f32 field_0x5c;
936-
} item0;
945+
} item;
946+
struct getItem {
947+
/* 0x000 */ u8 field_0x0[4];
948+
/* 0x004 */ int mTimer;
949+
/* 0x008 */ int field_0x8;
950+
/* 0x00C */ fopAc_ac_c* mRelActor;
951+
/* 0x010 */ fpc_ProcID mRelActorID;
952+
/* 0x014 */ f32* mCurvePoints;
953+
/* 0x018 */ int field_0x18;
954+
/* 0x01C */ cXyz mStartCenter;
955+
/* 0x028 */ cXyz mStartEye;
956+
/* 0x034 */ u8 field_0x34[8];
957+
/* 0x03C */ cSGlobe field_0x3c;
958+
/* 0x044 */ cXyz field_0x44;
959+
/* 0x050 */ cXyz field_0x50;
960+
/* 0x100 */ cSGlobe field_0x100;
961+
} getItem;
962+
struct possessed {
963+
/* 0x00 */ int field_0x0;
964+
/* 0x04 */ int mType;
965+
/* 0x08 */ int mTimer;
966+
/* 0x0C */ int field_0xc;
967+
/* 0x10 */ f32 mRadius;
968+
/* 0x14 */ cSAngle mLatitude;
969+
/* 0x16 */ cSAngle mLongitude;
970+
/* 0x18 */ f32 mFovy;
971+
/* 0x1C */ f32 mCushion;
972+
/* 0x20 */ int mBlure;
973+
/* 0x24 */ fopAc_ac_c* mTargetActor;
974+
/* 0x28 */ cSGlobe field_0x28;
975+
} possessed;
976+
struct {
977+
/* 0x00 */ bool field_0x0;
978+
/* 0x04 */ cXyz field_0x4;
979+
/* 0x10 */ cXyz field_0x10;
980+
/* 0x1C */ cXyz* field_0x1c[2];
981+
/* 0x24 */ f32* field_0x24[2];
982+
/* 0x2C */ fopAc_ac_c* mRelActor;
983+
/* 0x30 */ char mRelUseMask;
984+
/* 0x31 */ char field_0x31;
985+
/* 0x34 */ int mTimer;
986+
/* 0x38 */ int field_0x38;
987+
/* 0x3C */ int mChoice;
988+
} fixedFrames;
937989
struct bSpline {
938990
/* 0x00 */ cXyz* mCenters;
939991
/* 0x04 */ cXyz* mEyes;
@@ -969,6 +1021,51 @@ class dCamera_c {
9691021
/* 0x58 */ cSAngle field_0x58;
9701022
/* 0x5A */ cSAngle field_0x5a;
9711023
} twoActor0;
1024+
struct digHole {
1025+
/* 0x00 */ int field_0x0;
1026+
/* 0x04 */ int mType;
1027+
/* 0x08 */ int field_0x8;
1028+
/* 0x0C */ f32 field_0xc;
1029+
/* 0x10 */ s8 field_0x10;
1030+
/* 0x11 */ u8 field_0x11[3];
1031+
/* 0x14 */ cXyz field_0x14;
1032+
/* 0x20 */ cXyz field_0x20;
1033+
} digHole;
1034+
struct hintTalk {
1035+
/* 0x00 */ fopAc_ac_c* mTeacher;
1036+
/* 0x04 */ fopAc_ac_c* mStudent;
1037+
/* 0x08 */ cXyz field_0x8;
1038+
/* 0x14 */ cXyz field_0x14;
1039+
/* 0x20 */ cSGlobe mDirection;
1040+
/* 0x28 */ cSGlobe field_0x28;
1041+
/* 0x30 */ f32 mRadius;
1042+
/* 0x34 */ f32 mFovy;
1043+
/* 0x38 */ f32 mCtrGapY;
1044+
/* 0x3C */ int mTimer;
1045+
/* 0x40 */ cXyz field_0x40;
1046+
} hintTalk;
1047+
struct bspTrans {
1048+
/* 0x00 */ int mTimer;
1049+
/* 0x04 */ f32* mBase;
1050+
/* 0x08 */ f32* mSet1;
1051+
/* 0x0C */ d2DBSplinePath mSplinePath1;
1052+
/* 0x40 */ f32* mSet2;
1053+
/* 0x44 */ d2DBSplinePath mSplinePath2;
1054+
/* 0x78 */ cXyz field_0x78;
1055+
/* 0x84 */ cXyz field_0x84;
1056+
/* 0x90 */ f32 field_0x90;
1057+
/* 0x94 */ cXyz field_0x94;
1058+
/* 0xA0 */ cXyz field_0xa0;
1059+
/* 0xAC */ f32 field_0xac;
1060+
/* 0xB0 */ fopAc_ac_c* mRelActor;
1061+
/* 0xB4 */ fpc_ProcID mRelActorID;
1062+
/* 0xB8 */ char mRelUseMask;
1063+
/* 0xB9 */ char field_0xb9;
1064+
/* 0xBC */ f32 mCushion;
1065+
/* 0xC0 */ u32 field_0xc0[6];
1066+
1067+
1068+
} bspTrans;
9721069
struct {
9731070
u8 field_0x0[0x100];
9741071
} bytes;

0 commit comments

Comments
 (0)