d_ev_camera work (#2412)

* 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
This commit is contained in:
Carco_21 2025-04-30 18:46:15 -04:00 committed by GitHub
parent 430dc32da9
commit 497c9c49de
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 2583 additions and 804 deletions

View File

@ -242,7 +242,7 @@ public:
/* 8008BE2C */ bool uniformTransEvCamera();
/* 8008BE50 */ bool uniformBrakeEvCamera();
/* 8008BE74 */ bool uniformAcceleEvCamera();
/* 8008BE98 */ void transEvCamera(int);
/* 8008BE98 */ bool transEvCamera(int);
/* 8008E938 */ bool watchActorEvCamera();
/* 8008FAE8 */ bool restorePosEvCamera();
/* 80090174 */ bool talktoEvCamera();
@ -553,7 +553,7 @@ public:
/* 0x2C4 */ int field_0x2c4;
/* 0x2C8 */ f32 field_0x2c8;
/* 0x2CC */ BG mBG;
/* 0x3E8 */ union {
/* 0x3E8 */ union mWork {
struct {
/* 0x00 */ int field_0x0;
/* 0x04 */ int field_0x4;
@ -746,9 +746,229 @@ public:
} hookshot;
struct {
/* 0x00 */ bool field_0x0;
/* 0x01 */ bool field_0x1;
/* 0x04 */ int field_0x4;
/* 0x08 */ int field_0x8;
/* 0x0C */ u8 field_0xc[0x10 - 0xc];
/* 0x10 */ cXyz field_0x10;
/* 0x1C */ f32 mFovy;
/* 0x20 */ f32 field_0x20;
/* 0x24 */ fopAc_ac_c* mRelActor;
/* 0x28 */ char field_0x28;
/* 0x29 */ char field_0x29;
/* 0x2C */ int field_0x2c;
/* 0x30 */ bool field_0x30;
/* 0x34 */ cXyz mBasePos;
/* 0x40 */ char field_0x40;
/* 0x41 */ char field_0x41;
/* 0x42 */ u8 field_0x42[0x48 - 0x42];
/* 0x48 */ char field_0x48;
/* 0x49 */ u8 field_0x49[0x4c - 0x49];
/* 0x4C */ int field_0x4c;
/* 0x50 */ int field_0x50;
/* 0x54 */ u8 field_0x54[0x5c - 0x54];
/* 0x5C */ f32* field_0x5c;
/* 0x60 */ u8 field_0x60[0x6c - 0x60];
/* 0x6C */ int field_0x6c;
} event;
struct {
/* 0x00 */ u8 field_0x0[0x4 - 0x0];
/* 0x04 */ cXyz field_0x4;
/* 0x10 */ cXyz field_0x10;
/* 0x1C */ f32 field_0x1c;
/* 0x20 */ f32 field_0x20;
/* 0x24 */ f32 field_0x24;
/* 0x28 */ f32 field_0x28;
/* 0x2C */ fopAc_ac_c* field_0x2c;
/* 0x30 */ fopAc_ac_c* field_0x30;
/* 0x34 */ fpc_ProcID field_0x34;
/* 0x38 */ fpc_ProcID field_0x38;
/* 0x3C */ u8 field_0x3c[0x40 - 0x3c];
/* 0x40 */ u32 field_0x40;
} stoker;
struct {
/* 0x00 */ u8 field_0x0[0x10 - 0x0];
/* 0x10 */ cXyz field_0x10;
/* 0x1C */ cXyz field_0x1c;
/* 0x28 */ cXyz field_0x28;
/* 0x34 */ f32 field_0x34;
/* 0x38 */ f32 field_0x38;
/* 0x3C */ fopAc_ac_c* field_0x3c;
/* 0x40 */ fopAc_ac_c* field_0x40;
/* 0x44 */ int field_0x44;
/* 0x48 */ int field_0x48;
/* 0x4C */ f32 field_0x4c;
/* 0x50 */ f32 field_0x50;
/* 0x54 */ f32 field_0x54;
/* 0x58 */ f32 field_0x58;
} rolling;
struct {
/* 0x00 */ u8 field_0x0[0x4 - 0x0];
/* 0x04 */ cXyz field_0x4;
/* 0x10 */ u8 field_0x10[0x1c - 0x10];
/* 0x1C */ cXyz field_0x1c;
/* 0x28 */ f32 field_0x28;
/* 0x2C */ f32 field_0x2c;
/* 0x30 */ f32 field_0x30;
/* 0x34 */ f32 field_0x34;
/* 0x38 */ f32 field_0x38;
/* 0x3C */ fopAc_ac_c* field_0x3c;
/* 0x40 */ fopAc_ac_c* field_0x40;
/* 0x44 */ fpc_ProcID field_0x44;
/* 0x48 */ u8 field_0x48[0x4c - 0x48];
/* 0x4C */ u32 field_0x4c;
} fixedPos;
struct trans {
/* 0x00 */ cXyz mStartEye;
/* 0x0C */ cXyz mStartCenter;
/* 0x18 */ f32 mStartFovy;
/* 0x1C */ f32 field_0x1c;
/* 0x20 */ cXyz mEye;
/* 0x2C */ cXyz mCenter;
/* 0x38 */ f32 mFovy;
/* 0x3C */ f32 field_0x3c;
/* 0x40 */ fopAc_ac_c* mRelActor;
/* 0x44 */ fpc_ProcID mRelActorID;
/* 0x48 */ char mRelUseMask;
/* 0x49 */ char field_0x49;
/* 0x4A */ char field_0x4a;
/* 0x4B */ char field_0x4b;
/* 0x50 */ int mTimer;
/* 0x54 */ int mTransType;
/* 0x58 */ f32 mCushion;
/* 0x5C */ f32* mBSpPoints;
/* 0x60 */ cSGlobe field_0x60;
/* 0x68 */ bool field_0x68;
/* 0x6C */ int mBSpCurve;
} trans;
struct actor {
/* 0x00 */ cXyz field_0x0;
/* 0x0C */ cXyz field_0xc;
/* 0x18 */ f32 field_0x18;
/* 0x1C */ int field_0x1c;
/* 0x20 */ f32 field_0x20;
/* 0x24 */ int field_0x24;
/* 0x28 */ f32 field_0x28;
/* 0x2C */ f32 field_0x2c;
/* 0x30 */ f32 field_0x30;
/* 0x34 */ fopAc_ac_c* field_0x34;
/* 0x38 */ fpc_ProcID field_0x38;
/* 0x3C */ cSGlobe field_0x3c;
/* 0x44 */ int field_0x44;
/* 0x48 */ u8 field_0x48[4];
/* 0x4C */ cSGlobe field_0x4c;
/* 0x54 */ int field_0x54;
/* 0x58 */ int field_0x58;
/* 0x5C */ f32 field_0x5c;
/* 0x60 */ f32 field_0x60;
/* 0x64 */ u8 field_0x64[4];
/* 0x68 */ int field_0x68;
} actor;
struct restorePos {
/* 0x000 */ cXyz field_0x0;
/* 0x00C */ cXyz field_0xc;
/* 0x018 */ f32 field_0x18;
/* 0x01C */ int field_0x1c;
/* 0x020 */ f32 field_0x20;
/* 0x024 */ int field_0x24;
/* 0x028 */ f32 field_0x28;
/* 0x034 */ fopAc_ac_c* field_0x34;
/* 0x038 */ cSGlobe field_0x38;
/* 0x040 */ int field_0x40;
/* 0x044 */ int field_0x44;
/* 0x048 */ dCamInfo_c field_0x48;
/* 0x068 */ int field_0x68;
/* 0x06C */ u8 field_0x6c[0x100 - 0x6c];
/* 0x100 */ cSAngle field_0x100;
} restorePos;
struct gameOver {
/* 0x00 */ int field_0x0;
/* 0x04 */ int field_0x4;
/* 0x08 */ int field_0x8;
/* 0x0C */ int mType;
/* 0x10 */ cXyz field_0x10;
/* 0x1C */ cSGlobe field_0x1c;
/* 0x24 */ u8 field_0x24[0x3c - 0x24];
/* 0x3C */ u8 field_0x3c;
} gameOver;
struct tact {
/* 0x00 */ int field_0x0;
/* 0x04 */ int field_0x4;
/* 0x08 */ int field_0x8;
/* 0x0C */ int field_0xc;
/* 0x10 */ u8 field_0x10[4];
/* 0x14 */ int field_0x14;
/* 0x18 */ u8 field_0x18[4];
/* 0x1C */ cXyz* field_0x1c;
/* 0x20 */ cXyz* field_0x20;
/* 0x24 */ int field_0x24;
/* 0x28 */ u8 field_0x28[4];
/* 0x2C */ f32 field_0x2c;
/* 0x30 */ cXyz field_0x30;
/* 0x3C */ cXyz field_0x3c;
} tact;
struct load {
/* 0x00 */ int mTimer;
/* 0x04 */ int mSlot;
/* 0x08 */ int mType;
/* 0x0C */ cSGlobe field_0xc;
/* 0x14 */ cSGlobe field_0x14;
/* 0x1C */ cXyz field_0x1c;
/* 0x28 */ cXyz field_0x28;
/* 0x34 */ cXyz field_0x34;
/* 0x40 */ cSAngle field_0x40;
/* 0x42 */ cSAngle field_0x42;
/* 0x44 */ f32 field_0x44;
/* 0x48 */ f32 field_0x48;
} load;
struct item0 {
/* 0x00 */ int field_0x0;
/* 0x04 */ int field_0x4;
/* 0x08 */ int field_0x8;
/* 0x0C */ cXyz field_0xc;
/* 0x18 */ f32 field_0x18;
/* 0x1C */ int field_0x1c;
/* 0x20 */ int field_0x20;
/* 0x24 */ cSGlobe field_0x24;
/* 0x44 */ cXyz field_0x44;
/* 0x50 */ cXyz field_0x50;
/* 0x5C */ f32 field_0x5c;
} item0;
struct bSpline {
/* 0x00 */ cXyz* mCenters;
/* 0x04 */ cXyz* mEyes;
/* 0x08 */ f32* mFovys;
/* 0x0C */ int mTimer;
/* 0x10 */ int field_0x10;
/* 0x14 */ fopAc_ac_c* mRelActor;
/* 0x18 */ u8 field_0x18[4];
/* 0x1c */ bool field_0x1c;
} bSpline;
struct {
/* 0x00 */ fopAc_ac_c* mActor1;
/* 0x04 */ fopAc_ac_c* mActor2;
/* 0x08 */ u8 field_0x8[4];
/* 0x0C */ fpc_ProcID mActor1ID;
/* 0x10 */ fpc_ProcID mActor2ID;
/* 0x14 */ f32 mCtrCus;
/* 0x18 */ f32 mEyeCus;
/* 0x1C */ f32 mRadiusMin;
/* 0x20 */ f32 mRadiusMax;
/* 0x24 */ f32 mLatitudeMin;
/* 0x28 */ f32 mLatitudeMax;
/* 0x2C */ f32 mLongitudeMin;
/* 0x30 */ f32 mLongitudeMax;
/* 0x34 */ int mLongitudeType;
/* 0x38 */ f32 mFovy;
/* 0x3C */ f32 mCtrRatio;
/* 0x40 */ cXyz mCtrGap;
/* 0x4C */ f32 field_0x4c;
/* 0x50 */ f32 field_0x50;
/* 0x54 */ cSAngle field_0x54;
/* 0x56 */ cSAngle field_0x56;
/* 0x58 */ cSAngle field_0x58;
/* 0x5A */ cSAngle field_0x5a;
} twoActor0;
struct {
u8 field_0x0[0x100];
} bytes;

File diff suppressed because it is too large Load Diff