mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-08-14 03:52:13 -04:00
Merge remote-tracking branch 'origin/main' into 26-02-27-pjb-dev-2
This commit is contained in:
+4465
-4463
File diff suppressed because it is too large
Load Diff
@@ -34,7 +34,7 @@ public:
|
||||
/* 0x0570 */ u8 prm0;
|
||||
/* 0x0571 */ u8 prm1;
|
||||
/* 0x0572 */ u8 prm2;
|
||||
/* 0x0574 */ ga_s ga_s[256];
|
||||
/* 0x0574 */ struct ga_s ga_s[256];
|
||||
/* 0x4D74 */ int ga_num;
|
||||
/* 0x4D78 */ u8 HIOInit;
|
||||
/* 0x4D79 */ u8 initialized;
|
||||
|
||||
@@ -23,7 +23,7 @@ public:
|
||||
void CheckHit();
|
||||
void WaitAction();
|
||||
void HalfBreakAction();
|
||||
bool VibAction();
|
||||
u8 VibAction();
|
||||
void DummyAction();
|
||||
void RealAction();
|
||||
void Action();
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#include "d/d_cc_uty.h"
|
||||
#include "d/d_msg_flow.h"
|
||||
|
||||
class dPath;
|
||||
struct dPath;
|
||||
|
||||
/**
|
||||
* @ingroup actors-enemies
|
||||
|
||||
+60
-60
@@ -21,75 +21,75 @@ class e_rd_class {
|
||||
public:
|
||||
e_rd_class();
|
||||
|
||||
/* 0x0000 */ fopEn_enemy_c actor;
|
||||
/* 0x05AC */ request_of_phase_process_class mPhase;
|
||||
/* 0x05B4 */ s16 mMode;
|
||||
/* 0x05B6 */ u8 field_0x5b6;
|
||||
/* 0x05B7 */ u8 field_0x5b7;
|
||||
/* 0x05B8 */ u8 field_0x5b8;
|
||||
/* 0x0000 */ fopEn_enemy_c enemy;
|
||||
/* 0x05AC */ request_of_phase_process_class phase;
|
||||
/* 0x05B4 */ s16 mode;
|
||||
/* 0x05B6 */ u8 arg0;
|
||||
/* 0x05B7 */ u8 arg1;
|
||||
/* 0x05B8 */ u8 arg2;
|
||||
/* 0x05B9 */ u8 field_0x5b9;
|
||||
/* 0x05BA */ u8 field_0x5ba;
|
||||
/* 0x05BB */ u8 field_0x5bb;
|
||||
/* 0x05BC */ u8 field_0x5bc;
|
||||
/* 0x05BC */ u8 weapon_type;
|
||||
/* 0x05BD */ s8 field_0x5bd;
|
||||
/* 0x05C0 */ cXyz field_0x5c0;
|
||||
/* 0x05CC */ s16 field_0x5cc;
|
||||
/* 0x05D0 */ mDoExt_McaMorfSO* mpModelMorf;
|
||||
/* 0x05D4 */ Z2CreatureEnemy mSound;
|
||||
/* 0x0678 */ char* mResName;
|
||||
/* 0x067C */ int mAnmID;
|
||||
/* 0x05CC */ s16 target_ya;
|
||||
/* 0x05D0 */ mDoExt_McaMorfSO* anm_p;
|
||||
/* 0x05D4 */ Z2CreatureEnemy sound;
|
||||
/* 0x0678 */ char* resName;
|
||||
/* 0x067C */ int anm;
|
||||
/* 0x0680 */ int field_0x680;
|
||||
/* 0x0684 */ dJntCol_c mJntCol;
|
||||
/* 0x0694 */ J3DModel* field_0x694;
|
||||
/* 0x0698 */ mDoExt_McaMorfSO* mpMorfBowAnm;
|
||||
/* 0x0694 */ J3DModel* arrow;
|
||||
/* 0x0698 */ mDoExt_McaMorfSO* bow_anm;
|
||||
/* 0x069C */ mDoExt_McaMorf* mpMorfHornAnm;
|
||||
/* 0x06A0 */ s8 field_0x6a0;
|
||||
/* 0x06A4 */ cXyz field_0x6a4;
|
||||
/* 0x06B0 */ cXyz field_0x6b0;
|
||||
/* 0x06BC */ csXyz field_0x6bc;
|
||||
/* 0x06C2 */ s8 field_0x6c2;
|
||||
/* 0x06C2 */ s8 run_flag;
|
||||
/* 0x06C3 */ u8 field_0x6c3;
|
||||
/* 0x06C4 */ J3DModel* mpEyeModels[2];
|
||||
/* 0x06C4 */ J3DModel* eye_model[2];
|
||||
/* 0x06CC */ f32 field_0x6cc;
|
||||
/* 0x06D0 */ f32 field_0x6d0;
|
||||
/* 0x06D4 */ J3DModel* mpBossArmorParts[14];
|
||||
/* 0x06D4 */ J3DModel* armor_boss_part[14];
|
||||
/* 0x070C */ s8 field_0x70c[14];
|
||||
/* 0x071C */ cXyz field_0x71c[14];
|
||||
/* 0x07C4 */ cXyz field_0x7c4[14];
|
||||
/* 0x086C */ csXyz field_0x86c[14];
|
||||
/* 0x08C0 */ u32 field_0x8c0[14][3];
|
||||
/* 0x08C0 */ u32 armor_break_eff[14][3];
|
||||
/* 0x0968 */ s8 field_0x968;
|
||||
/* 0x096C */ f32 field_0x96c;
|
||||
/* 0x0970 */ s16 field_0x970;
|
||||
/* 0x0972 */ s16 mAction;
|
||||
/* 0x0974 */ s16 field_0x974;
|
||||
/* 0x0978 */ f32 mPlayerDistance;
|
||||
/* 0x097C */ s16 mPlayerAngleY;
|
||||
/* 0x0980 */ f32 field_0x980;
|
||||
/* 0x0984 */ f32 field_0x984;
|
||||
/* 0x0988 */ u32 mShadowKey;
|
||||
/* 0x098C */ fpc_ProcID mWbActorID;
|
||||
/* 0x0990 */ s16 field_0x990[4];
|
||||
/* 0x0998 */ s16 field_0x998;
|
||||
/* 0x0970 */ s16 counter;
|
||||
/* 0x0972 */ s16 action;
|
||||
/* 0x0974 */ s16 prev_action;
|
||||
/* 0x0978 */ f32 dis;
|
||||
/* 0x097C */ s16 angleY;
|
||||
/* 0x0980 */ f32 attack_range;
|
||||
/* 0x0984 */ f32 waterY;
|
||||
/* 0x0988 */ u32 shadow_key;
|
||||
/* 0x098C */ fpc_ProcID boar_id;
|
||||
/* 0x0990 */ s16 timer[4];
|
||||
/* 0x0998 */ s16 damage_timer;
|
||||
/* 0x099A */ s16 field_0x99a;
|
||||
/* 0x099C */ s16 field_0x99c;
|
||||
/* 0x099E */ s16 field_0x99e;
|
||||
/* 0x099C */ s16 yagura_timer;
|
||||
/* 0x099E */ s16 attack_timer;
|
||||
/* 0x09A0 */ s8 field_0x9a0;
|
||||
/* 0x09A1 */ s8 field_0x9a1;
|
||||
/* 0x09A1 */ s8 look_timer;
|
||||
/* 0x09A2 */ s8 field_0x9a2;
|
||||
/* 0x09A3 */ s8 field_0x9a3;
|
||||
/* 0x09A3 */ s8 arrow_flag;
|
||||
/* 0x09A4 */ s8 field_0x9a4;
|
||||
/* 0x09A5 */ u8 field_0x9a5;
|
||||
/* 0x09A6 */ s16 field_0x9a6;
|
||||
/* 0x09A6 */ s16 bow_shake_timer;
|
||||
/* 0x09A8 */ s16 field_0x9a8;
|
||||
/* 0x09AA */ u8 field_0x9aa;
|
||||
/* 0x09AB */ s8 field_0x9ab;
|
||||
/* 0x09AC */ s8 field_0x9ac;
|
||||
/* 0x09AD */ s8 field_0x9ad;
|
||||
/* 0x09B0 */ cXyz field_0x9b0;
|
||||
/* 0x09BC */ s8 field_0x9bc;
|
||||
/* 0x09BC */ s8 ride_mode;
|
||||
/* 0x09BD */ s8 field_0x9bd;
|
||||
/* 0x09BE */ s8 field_0x9be;
|
||||
/* 0x09BE */ s8 boar_stand;
|
||||
/* 0x09BF */ u8 field_0x9bf;
|
||||
/* 0x09C0 */ f32 field_0x9c0;
|
||||
/* 0x09C4 */ f32 field_0x9c4;
|
||||
@@ -99,16 +99,16 @@ public:
|
||||
/* 0x09CC */ s16 field_0x9cc;
|
||||
/* 0x09CE */ s16 field_0x9ce;
|
||||
/* 0x09D0 */ s16 field_0x9d0;
|
||||
/* 0x09D4 */ cXyz field_0x9d4;
|
||||
/* 0x09D4 */ cXyz eye;
|
||||
/* 0x09E0 */ cXyz field_0x9e0; // unused, dbg offset 0xa18
|
||||
/* 0x09EC */ f32 field_0x9ec;
|
||||
/* 0x09EC */ f32 jump_z;
|
||||
/* 0x09F0 */ f32 field_0x9f0;
|
||||
/* 0x09F4 */ s16 field_0x9f4;
|
||||
/* 0x09F6 */ s16 field_0x9f6;
|
||||
/* 0x09F8 */ s8 field_0x9f8;
|
||||
/* 0x09F8 */ s8 damage_flag;
|
||||
/* 0x09FC */ cXyz field_0x9fc; // unused, dbg offset 0xa34
|
||||
/* 0x0A08 */ u8 field_0xa08[0x0A0C - 0x0A08];
|
||||
/* 0x0A0C */ csXyz field_0xa0c;
|
||||
/* 0x0A0C */ csXyz jump_angle;
|
||||
/* 0x0A12 */ csXyz field_0xa12;
|
||||
/* 0x0A18 */ csXyz field_0xa18;
|
||||
/* 0x0A1E */ s8 field_0xa1e;
|
||||
@@ -139,37 +139,37 @@ public:
|
||||
/* 0x0AF8 */ s16 field_0xaf8;
|
||||
/* 0x0AFA */ s8 field_0xafa;
|
||||
/* 0x0AFB */ s8 field_0xafb;
|
||||
/* 0x0AFC */ dPath* mPath;
|
||||
/* 0x0AFC */ dPath* path;
|
||||
/* 0x0B00 */ s8 field_0xb00;
|
||||
/* 0x0B01 */ s8 field_0xb01;
|
||||
/* 0x0B04 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x0B44 */ dBgS_ObjAcch mObjAcch;
|
||||
/* 0x0B01 */ s8 path_dir;
|
||||
/* 0x0B04 */ dBgS_AcchCir AcchCir;
|
||||
/* 0x0B44 */ dBgS_ObjAcch ObjAcch;
|
||||
/* 0x0D1C */ dCcD_Stts mStts;
|
||||
/* 0x0D58 */ dCcD_Sph field_0xd58[3];
|
||||
/* 0x1100 */ dCcD_Sph field_0x1100;
|
||||
/* 0x1238 */ dCcU_AtInfo mAtInfo;
|
||||
/* 0x125C */ u8 field_0x125c;
|
||||
/* 0x0D58 */ dCcD_Sph cc_sph[3];
|
||||
/* 0x1100 */ dCcD_Sph at_sph;
|
||||
/* 0x1238 */ dCcU_AtInfo AtInfo;
|
||||
/* 0x125C */ u8 hio_set;
|
||||
/* 0x125D */ s8 field_0x125d;
|
||||
/* 0x1260 */ u32 field_0x1260;
|
||||
/* 0x1264 */ u32 field_0x1264;
|
||||
/* 0x1268 */ u32 field_0x1268[3];
|
||||
/* 0x1274 */ u32 field_0x1274[2];
|
||||
/* 0x1268 */ u32 enemy_downWtrA[3];
|
||||
/* 0x1274 */ u32 fire_eff[2];
|
||||
/* 0x127C */ cXyz field_0x127c;
|
||||
/* 0x1288 */ cXyz field_0x1288;
|
||||
/* 0x1294 */ s8 field_0x1294;
|
||||
/* 0x1295 */ s8 field_0x1295;
|
||||
/* 0x1295 */ s8 one_hit_kill;
|
||||
/* 0x1296 */ s8 field_0x1296;
|
||||
/* 0x1297 */ s8 field_0x1297;
|
||||
/* 0x1298 */ s8 field_0x1298;
|
||||
/* 0x1299 */ u8 field_0x1299;
|
||||
/* 0x129A */ s8 mBossMode; // 1: Eldin Field, 2 Eldin Bridge, 3 Lake Hylia Bridge, 4 ???
|
||||
/* 0x129A */ s8 actor_set; // 1: Eldin Field, 2 Eldin Bridge, 3 Lake Hylia Bridge, 4 ???
|
||||
/* 0x129B */ u8 field_0x129b;
|
||||
/* 0x129C */ s8 field_0x129c;
|
||||
/* 0x12A0 */ int field_0x12a0;
|
||||
/* 0x12A4 */ s16 mDemoMode;
|
||||
/* 0x12A6 */ s16 field_0x12a6;
|
||||
/* 0x12A8 */ cXyz mDemoCamEye;
|
||||
/* 0x12B4 */ cXyz mDemoCamCenter;
|
||||
/* 0x12A0 */ int sw;
|
||||
/* 0x12A4 */ s16 demo_mode;
|
||||
/* 0x12A6 */ s16 demo_timer;
|
||||
/* 0x12A8 */ cXyz demo_cam_eye;
|
||||
/* 0x12B4 */ cXyz demo_cam_center;
|
||||
/* 0x12C0 */ cXyz field_0x12c0;
|
||||
/* 0x12CC */ cXyz field_0x12cc;
|
||||
/* 0x12D8 */ cXyz field_0x12d8;
|
||||
@@ -177,11 +177,11 @@ public:
|
||||
/* 0x12F0 */ cXyz field_0x12f0;
|
||||
/* 0x12FC */ u8 field_0x12fc[0x1300 - 0x12fc];
|
||||
/* 0x1300 */ f32 field_0x1300;
|
||||
/* 0x1304 */ u8 mBlureRate;
|
||||
/* 0x1308 */ f32 mDemoCamFovy;
|
||||
/* 0x1304 */ u8 blurRate;
|
||||
/* 0x1308 */ f32 demo_cam_zoom;
|
||||
/* 0x130C */ f32 field_0x130c;
|
||||
/* 0x1310 */ u8 field_0x1310[0x131c - 0x1310];
|
||||
/* 0x131C */ dMsgFlow_c mMsgFlow;
|
||||
/* 0x131C */ dMsgFlow_c MsgFlow;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(e_rd_class) == 0x1368);
|
||||
|
||||
@@ -15,21 +15,21 @@
|
||||
*/
|
||||
class e_warpappear_class : public fopAc_ac_c {
|
||||
public:
|
||||
/* 0x568 */ request_of_phase_process_class mPhase;
|
||||
/* 0x570 */ u8 field_0x570;
|
||||
/* 0x574 */ J3DModel* mpModel;
|
||||
/* 0x578 */ mDoExt_btkAnm* mpBtk;
|
||||
/* 0x57c */ mDoExt_brkAnm* mpBrks[2];
|
||||
/* 0x568 */ request_of_phase_process_class phase;
|
||||
/* 0x570 */ u8 arg0;
|
||||
/* 0x574 */ J3DModel* model;
|
||||
/* 0x578 */ mDoExt_btkAnm* btk;
|
||||
/* 0x57c */ mDoExt_brkAnm* anm_p[2];
|
||||
/* 0x584 */ int field_0x584;
|
||||
/* 0x588 */ u8 field_0x588[0x58c - 0x588];
|
||||
/* 0x58C */ u32 mParticle1;
|
||||
/* 0x590 */ u32 mParticle2;
|
||||
/* 0x594 */ s16 field_0x594;
|
||||
/* 0x596 */ s16 field_0x596;
|
||||
/* 0x58C */ u32 portal_app_b;
|
||||
/* 0x590 */ u32 portal_app_c;
|
||||
/* 0x594 */ s16 counter;
|
||||
/* 0x596 */ s16 action;
|
||||
/* 0x598 */ s16 field_0x598;
|
||||
/* 0x59A */ s16 field_0x59a[2];
|
||||
/* 0x59E */ s16 field_0x59e;
|
||||
/* 0x5A0 */ s16 field_0x5a0;
|
||||
/* 0x59A */ s16 timer[2];
|
||||
/* 0x59E */ s16 demo_mode;
|
||||
/* 0x5A0 */ s16 demo_timer;
|
||||
/* 0x5A4 */ cXyz field_0x5a4;
|
||||
/* 0x5B0 */ cXyz field_0x5b0;
|
||||
/* 0x5BC */ cXyz field_0x5bc;
|
||||
@@ -45,8 +45,8 @@ public:
|
||||
/* 0x5F4 */ f32 field_0x5f4;
|
||||
/* 0x5F8 */ f32 field_0x5f8;
|
||||
/* 0x5FC */ f32 field_0x5fc;
|
||||
/* 0x600 */ dMsgFlow_c mMsgFlow;
|
||||
/* 0x64C */ int field_0x64c;
|
||||
/* 0x600 */ dMsgFlow_c MsgFlow;
|
||||
/* 0x64C */ int target_info_count;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(e_warpappear_class) == 0x650);
|
||||
|
||||
+3
-187
@@ -3,194 +3,10 @@
|
||||
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
class dCcMassS_HitInf;
|
||||
class cCcD_Obj;
|
||||
|
||||
class dGrass_data_c {
|
||||
public:
|
||||
void WorkCo(fopAc_ac_c*, u32, int);
|
||||
void WorkAt_NoCutAnim(fopAc_ac_c*, u32, int, dCcMassS_HitInf*, cCcD_Obj*);
|
||||
void Direction_Set(fopAc_ac_c*, u32, int, dCcMassS_HitInf*, cCcD_Obj*, csXyz*);
|
||||
void WorkAt(fopAc_ac_c*, u32, int, dCcMassS_HitInf*, u16);
|
||||
void hitCheck(int, u16);
|
||||
~dGrass_data_c() {}
|
||||
dGrass_data_c() {
|
||||
m_state = 0;
|
||||
}
|
||||
|
||||
/* 0x00 */ u8 m_state;
|
||||
/* 0x01 */ u8 field_0x01;
|
||||
/* 0x02 */ s8 field_0x02;
|
||||
/* 0x03 */ u8 m_tableNo;
|
||||
/* 0x04 */ u8 m_itemBitNo;
|
||||
/* 0x05 */ u8 field_0x05;
|
||||
/* 0x06 */ u8 field_0x06[0x08 - 0x06];
|
||||
/* 0x08 */ s16 m_addCol;
|
||||
/* 0x0C */ cXyz m_pos;
|
||||
/* 0x18 */ Mtx m_modelMtx;
|
||||
/* 0x48 */ dGrass_data_c* mp_next;
|
||||
};
|
||||
|
||||
class dGrass_room_c {
|
||||
public:
|
||||
void newData(dGrass_data_c*);
|
||||
void deleteData();
|
||||
dGrass_room_c() {
|
||||
mp_data = NULL;
|
||||
}
|
||||
|
||||
dGrass_data_c* getData() { return mp_data; }
|
||||
|
||||
/* 0x0 */ dGrass_data_c* mp_data;
|
||||
};
|
||||
|
||||
class dGrass_anm_c {
|
||||
public:
|
||||
dGrass_anm_c() {
|
||||
m_state = 0;
|
||||
}
|
||||
|
||||
/* 0x00 */ u8 m_state;
|
||||
/* 0x02 */ s16 m_angY;
|
||||
/* 0x04 */ s16 m_angX;
|
||||
/* 0x08 */ Mtx m_animMtx;
|
||||
};
|
||||
|
||||
class dGrass_packet_c : public J3DPacket {
|
||||
public:
|
||||
dGrass_packet_c();
|
||||
void calc();
|
||||
void update();
|
||||
void setData(dGrass_data_c*, int, cXyz&, int, u8, u8, s16, u8);
|
||||
dGrass_data_c* newData(cXyz&, int, u8, u8, s16, u8);
|
||||
void deleteRoom(int);
|
||||
int newAnm();
|
||||
void setAnm(int, s16);
|
||||
|
||||
virtual void draw();
|
||||
virtual ~dGrass_packet_c();
|
||||
|
||||
typedef void (dGrass_packet_c::*deleteFunc)(int);
|
||||
static deleteFunc m_deleteRoom;
|
||||
|
||||
dGrass_anm_c* getAnm() { return m_anm; }
|
||||
dGrass_anm_c* getAnm(int i_no) { return &m_anm[i_no]; }
|
||||
|
||||
dGrass_data_c* getData() { return m_data; }
|
||||
|
||||
void deleteAnm(int i_idx) { m_anm[i_idx].m_state = 0; }
|
||||
|
||||
/* 0x00010 */ u16 m_dataNum;
|
||||
/* 0x00014 */ dGrass_data_c m_data[1500];
|
||||
/* 0x1BD64 */ dGrass_anm_c m_anm[112];
|
||||
/* 0x1D5E4 */ dGrass_room_c m_room[64];
|
||||
/* 0x1D6E4 */ Vec* mp_pos;
|
||||
/* 0x1D6E8 */ Vec* mp_normal;
|
||||
/* 0x1D6EC */ GXColor* mp_colors;
|
||||
/* 0x1D6F0 */ Vec* mp_texCoords;
|
||||
/* 0x1D6F4 */ u8* mp_kusa9q_DL;
|
||||
/* 0x1D6F8 */ u32 m_kusa9q_DL_size;
|
||||
/* 0x1D6FC */ u8* mp_kusa9q_14_DL;
|
||||
/* 0x1D700 */ u32 m_kusa9q_DL_14_size;
|
||||
/* 0x1D704 */ u8* mp_Mkusa_9q_DL;
|
||||
/* 0x1D708 */ u32 m_Mkusa_9q_DL_size;
|
||||
/* 0x1D70C */ u8* mp_Mkusa_9q_cDL;
|
||||
/* 0x1D710 */ u32 m_Mkusa_9q_cDL_size;
|
||||
/* 0x1D714 */ s16 field_0x1d714;
|
||||
}; // Size: 0x1D718
|
||||
|
||||
STATIC_ASSERT(sizeof(dGrass_packet_c) == 0x1D718);
|
||||
|
||||
class dFlower_data_c {
|
||||
public:
|
||||
void WorkCo(fopAc_ac_c*, u32, int);
|
||||
void deleteAnm();
|
||||
void WorkAt_NoCutAnim(fopAc_ac_c*, u32, int, dCcMassS_HitInf*, cCcD_Obj*);
|
||||
void WorkAt(fopAc_ac_c*, u32, int, dCcMassS_HitInf*);
|
||||
void hitCheck(fopAc_ac_c*, int);
|
||||
~dFlower_data_c();
|
||||
dFlower_data_c();
|
||||
|
||||
/* 0x00 */ u8 m_state;
|
||||
/* 0x01 */ s8 field_0x01;
|
||||
/* 0x02 */ s8 m_tableNo;
|
||||
/* 0x03 */ u8 field_0x03;
|
||||
/* 0x04 */ s16 field_0x04;
|
||||
/* 0x08 */ cXyz m_pos;
|
||||
/* 0x14 */ Mtx m_modelMtx;
|
||||
/* 0x44 */ dFlower_data_c* mp_next;
|
||||
};
|
||||
|
||||
class dFlower_room_c {
|
||||
public:
|
||||
void newData(dFlower_data_c*);
|
||||
void deleteData();
|
||||
dFlower_room_c();
|
||||
|
||||
dFlower_data_c* getData() { return mp_data; }
|
||||
|
||||
/* 0x0 */ dFlower_data_c* mp_data;
|
||||
};
|
||||
|
||||
class dFlower_anm_c {
|
||||
public:
|
||||
dFlower_anm_c();
|
||||
|
||||
/* 0x00 */ u8 m_state;
|
||||
/* 0x02 */ s16 m_angY;
|
||||
/* 0x04 */ s16 m_angX;
|
||||
/* 0x08 */ Mtx m_animMtx;
|
||||
};
|
||||
|
||||
class dFlower_packet_c : public J3DPacket {
|
||||
public:
|
||||
dFlower_packet_c();
|
||||
void calc();
|
||||
void update();
|
||||
void setData(dFlower_data_c*, int, s8, cXyz&, int, s8, s16);
|
||||
dFlower_data_c* newData(s8, cXyz&, int, s8, s16);
|
||||
void deleteRoom(int);
|
||||
int newAnm();
|
||||
void setAnm(int, s16);
|
||||
|
||||
virtual void draw();
|
||||
virtual ~dFlower_packet_c();
|
||||
|
||||
typedef void (dFlower_packet_c::*deleteFunc)(int);
|
||||
static deleteFunc m_deleteRoom;
|
||||
|
||||
dFlower_anm_c* getAnm(int i_idx) { return &m_anm[i_idx]; }
|
||||
dFlower_anm_c* getAnm() { return &m_anm[0]; }
|
||||
dFlower_data_c* getData() { return m_data; }
|
||||
|
||||
void deleteAnm(int i_idx) { m_anm[i_idx].m_state = 0; }
|
||||
|
||||
void setPlayerCutFlg(int i_flag) { m_playerCutFlg = i_flag != 0; }
|
||||
void setPlayerSwordAngY(s16 i_angY) { m_playerSwordAngY = i_angY; }
|
||||
void setPlayerSwordMoveAngY(s16 i_angY) { m_playerSwordMoveAngY = i_angY; }
|
||||
void setPlayerSwordTop(cXyz& i_pos) { m_playerSwordTop = i_pos; }
|
||||
cXyz& getPlayerSwordTop() { return m_playerSwordTop; }
|
||||
|
||||
/* 0x00010 */ u16 m_dataNum;
|
||||
/* 0x00014 */ dFlower_data_c m_data[1000];
|
||||
/* 0x11954 */ dFlower_anm_c m_anm[72];
|
||||
/* 0x12914 */ dFlower_room_c m_room[64];
|
||||
/* 0x12A14 */ u8 m_playerCutFlg;
|
||||
/* 0x12A16 */ s16 m_playerSwordAngY;
|
||||
/* 0x12A18 */ s16 m_playerSwordMoveAngY;
|
||||
/* 0x12A1C */ cXyz m_playerSwordTop;
|
||||
/* 0x12A28 */ Vec* mp_pos;
|
||||
/* 0x12A2C */ GXColor* mp_colors;
|
||||
/* 0x12A30 */ Vec* mp_texCoords;
|
||||
/* 0x12A34 */ u8* mp_mat2DL;
|
||||
/* 0x12A38 */ u32 m_mat2DL_size;
|
||||
/* 0x12A3C */ u8* mp_mat2Light4DL;
|
||||
/* 0x12A40 */ u32 m_mat2Light4DL_size;
|
||||
/* 0x12A44 */ u8* mp_Jhana01DL;
|
||||
/* 0x12A48 */ u32 m_Jhana01DL_size;
|
||||
/* 0x12A4C */ u8* mp_Jhana01_cDL;
|
||||
/* 0x12A50 */ u32 m_Jhana01_cDL_size;
|
||||
}; // Size: 0x12A54
|
||||
class dCcMassS_HitInf;
|
||||
class dFlower_packet_c;
|
||||
class dGrass_packet_c;
|
||||
|
||||
/**
|
||||
* @ingroup actors-unsorted
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "d/d_a_itembase_static.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "SSystem/SComponent/c_phase.h"
|
||||
|
||||
struct daItemBase_data {
|
||||
/* 0x00 */ f32 mGravity;
|
||||
|
||||
@@ -18,7 +18,7 @@ struct fs_weed_s {
|
||||
|
||||
struct fs_tsubo_s {
|
||||
/* 0x00 */ cXyz field_0x00;
|
||||
/* 0x0C */ u8 field_0x0c[0x14 - 0x0c];
|
||||
/* 0x0C */ csXyz field_0x0c; // unused
|
||||
/* 0x14 */ J3DModel* model;
|
||||
/* 0x18 */ u8 field_0x18[0x1C - 0x18];
|
||||
/* 0x1C */ f32 field_0x1c;
|
||||
@@ -29,7 +29,7 @@ struct fs_tsubo_s {
|
||||
|
||||
struct fs_rod_s {
|
||||
/* 0x00 */ cXyz field_0x00;
|
||||
/* 0x0C */ u8 field_0x0C[0x14 - 0x0C];
|
||||
/* 0x0C */ csXyz field_0x0C; // unused
|
||||
/* 0x14 */ J3DModel* model;
|
||||
/* 0x18 */ J3DModel* ringModel[6];
|
||||
/* 0x30 */ mDoExt_3DlineMat0_c line_mat;
|
||||
@@ -41,9 +41,7 @@ struct fs_rod_s {
|
||||
|
||||
struct fs_lure_s {
|
||||
/* 0x00 */ cXyz field_0x00;
|
||||
/* 0x0C */ s16 field_0x0c;
|
||||
/* 0x0E */ s16 field_0x0e;
|
||||
/* 0x10 */ s16 field_0x10;
|
||||
/* 0x0C */ csXyz field_0x0c;
|
||||
/* 0x14 */ J3DModel* model;
|
||||
/* 0x18 */ J3DModel* hookModel[2];
|
||||
/* 0x20 */ u8 field_0x20[0x24 - 0x20];
|
||||
@@ -113,6 +111,10 @@ public:
|
||||
/* 0x40B4 */ dBgS_ObjAcch ballAcch;
|
||||
/* 0x428C */ u8 field_0x428c;
|
||||
/* 0x428D */ u8 field_0x428d;
|
||||
#if PLATFORM_SHIELD
|
||||
u8 unk_dbg_padding[0x6];
|
||||
J3DModel* dbg_models[2];
|
||||
#endif
|
||||
/* 0x4290 */ fs_koro2_s mKoro2[100];
|
||||
/* 0x6B30 */ J3DModel* canoeModel;
|
||||
/* 0x6B34 */ s16 field_0x6b34;
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "d/d_msg_flow.h"
|
||||
#include "d/d_particle_copoly.h"
|
||||
#include "global.h"
|
||||
#include <cstring>
|
||||
|
||||
struct daNpc_GetParam1 { // name unknown
|
||||
/* 0x0 */ int fileIdx;
|
||||
@@ -169,7 +170,7 @@ public:
|
||||
int chkPassed1(cXyz, int);
|
||||
int chkPassed2(cXyz, cXyz*, int, int);
|
||||
#if DEBUG
|
||||
int drawDbgInfo(f32, int);
|
||||
void drawDbgInfo(f32, int);
|
||||
#endif
|
||||
|
||||
daNpcT_Path_c() {
|
||||
@@ -276,7 +277,7 @@ public:
|
||||
cXyz cStack_50 = *mAttnPosP - param_1;
|
||||
sVar3 += cM_atan2s(cStack_50.x, cStack_50.z);
|
||||
sVar3 -= param_2;
|
||||
sVar3 -= (s16)(field_0x150.y - param_2);
|
||||
ANGLE_SUB(sVar3, field_0x150.y - param_2);
|
||||
sVar3 += param_5;
|
||||
}
|
||||
if (param_3) {
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define D_A_NPC_BOU_H
|
||||
|
||||
#include "d/actor/d_a_npc.h"
|
||||
#include <cstring>
|
||||
|
||||
struct daNpc_Bou_HIOParam {
|
||||
/* 0x00 */ daNpcT_HIOParam common;
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "d/actor/d_a_npc.h"
|
||||
#include "d/actor/d_a_npc_cd2.h"
|
||||
#include "d/actor/d_a_tag_schedule.h"
|
||||
#include <cstring>
|
||||
|
||||
/**
|
||||
* @ingroup actors-npcs
|
||||
|
||||
@@ -26,7 +26,7 @@ public:
|
||||
/* 0x5BC */ s16 field_0x5bc;
|
||||
/* 0x5BE */ s16 field_0x5be;
|
||||
/* 0x5C0 */ dMsgFlow_c mMsgFlow;
|
||||
/* 0x60C */ u8 field_0x60c[0x618 - 0x60c];
|
||||
/* 0x60C */ cXyz field_0x60c; // unused
|
||||
/* 0x618 */ s16 field_0x618;
|
||||
/* 0x61C */ f32 field_0x61c;
|
||||
/* 0x620 */ s16 field_0x620;
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define D_A_NPC_KN_H
|
||||
|
||||
#include "d/actor/d_a_npc.h"
|
||||
#include <cstring>
|
||||
|
||||
struct daNpc_Kn_HIOParam {
|
||||
/* 0x00 */ daNpcT_HIOParam common;
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define D_A_NPC_KOLIN_H
|
||||
|
||||
#include "d/actor/d_a_npc.h"
|
||||
#include <cstring>
|
||||
|
||||
struct daNpc_Kolin_HIOParam {
|
||||
/* 0x00 */ daNpcT_HIOParam common;
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define D_A_NPC_THE_H
|
||||
|
||||
#include "d/actor/d_a_npc4.h"
|
||||
#include <cstring>
|
||||
|
||||
struct daNpcThe_HIOParam {
|
||||
/* 0x00 */ daNpcF_HIOParam common;
|
||||
|
||||
@@ -48,18 +48,4 @@ private:
|
||||
|
||||
STATIC_ASSERT(sizeof(daBsGate_c) == 0x5B8);
|
||||
|
||||
class daBsGate_HIO_c : public mDoHIO_entry_c {
|
||||
public:
|
||||
daBsGate_HIO_c();
|
||||
~daBsGate_HIO_c() {}
|
||||
|
||||
void genMessage(JORMContext*);
|
||||
|
||||
/* 0x4 */ f32 mOpenSpeed;
|
||||
/* 0x8 */ f32 mCloseSpeed;
|
||||
/* 0xC */ u8 mShockStrength;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daBsGate_HIO_c) == 0x10);
|
||||
|
||||
#endif /* D_A_OBJ_BSGATE_H */
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include "d/d_cc_d.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
class dPath;
|
||||
struct dPath;
|
||||
|
||||
/**
|
||||
* @ingroup actors-objects
|
||||
|
||||
@@ -15,11 +15,39 @@
|
||||
*
|
||||
*/
|
||||
|
||||
class daObj_ItaMato_HIO_c;
|
||||
struct daObj_ItaMato_HIOParam {
|
||||
/* 0x00 */ f32 attn_offset;
|
||||
/* 0x04 */ f32 gravity;
|
||||
/* 0x08 */ f32 scale;
|
||||
/* 0x0C */ f32 real_shadow_size;
|
||||
/* 0x10 */ f32 shake_pow;
|
||||
};
|
||||
|
||||
class daObj_ItaMato_Param_c {
|
||||
public:
|
||||
virtual ~daObj_ItaMato_Param_c() {}
|
||||
|
||||
static daObj_ItaMato_HIOParam const m;
|
||||
};
|
||||
|
||||
#if DEBUG
|
||||
#define OBJ_ITAMATO_HIO_CLASS daObj_ItaMato_HIO_c
|
||||
|
||||
class daObj_ItaMato_HIO_c : public mDoHIO_entry_c {
|
||||
public:
|
||||
daObj_ItaMato_HIO_c();
|
||||
void genMessage(JORMContext* ctx);
|
||||
void listenPropertyEvent(const JORPropertyEvent*);
|
||||
|
||||
/* 0x8 */ daObj_ItaMato_HIOParam m;
|
||||
};
|
||||
#else
|
||||
#define OBJ_ITAMATO_HIO_CLASS daObj_ItaMato_Param_c
|
||||
#endif
|
||||
|
||||
class daObj_ItaMato_c : public fopAc_ac_c {
|
||||
private:
|
||||
/* 0x568 */ daObj_ItaMato_HIO_c* mHIO;
|
||||
/* 0x568 */ OBJ_ITAMATO_HIO_CLASS* mHIO;
|
||||
/* 0x56C */ request_of_phase_process_class mPhase;
|
||||
/* 0x574 */ J3DModel* mpModels[2];
|
||||
/* 0x57C */ dBgS_ObjAcch mBgc;
|
||||
|
||||
@@ -93,23 +93,4 @@ private:
|
||||
|
||||
STATIC_ASSERT(sizeof(daObjKAT_c) == 0xa74);
|
||||
|
||||
class daObj_KatHIO_c : public JORReflexible {
|
||||
public:
|
||||
daObj_KatHIO_c();
|
||||
virtual ~daObj_KatHIO_c() {}
|
||||
|
||||
void genMessage(JORMContext* ctx) {
|
||||
// Golden Snail
|
||||
ctx->genLabel("黄金蟲(カタツムリ)", 0x80000001);
|
||||
// Model scale (male)
|
||||
ctx->genSlider("モデルスケール(オス)", &this->mScaleMale, 0.1f, 4.0f);
|
||||
// Model scale (female)
|
||||
ctx->genSlider("モデルスケール(メス)", &this->mScaleFemale, 0.1f, 4.0f);
|
||||
}
|
||||
|
||||
s8 field_0x4;
|
||||
f32 mScaleFemale;
|
||||
f32 mScaleMale;
|
||||
};
|
||||
|
||||
#endif /* D_A_OBJ_KATATSUMURI_H */
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
#include "d/d_cc_d.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "m_Do/m_Do_hostIO.h"
|
||||
#include "d/d_kankyo.h"
|
||||
|
||||
|
||||
/**
|
||||
@@ -26,8 +26,8 @@ public:
|
||||
int Draw();
|
||||
int Delete();
|
||||
|
||||
u8 getSwBit() { return fopAcM_GetParamBit(this, 0, 8); }
|
||||
u8 getType() { return fopAcM_GetParamBit(this, 8, 8); }
|
||||
int getSwBit() { return fopAcM_GetParamBit(this, 0, 8); }
|
||||
int getType() { return fopAcM_GetParamBit(this, 8, 8); }
|
||||
|
||||
private:
|
||||
/* 0x568 */ request_of_phase_process_class mPhaseReq;
|
||||
@@ -51,15 +51,4 @@ private:
|
||||
|
||||
STATIC_ASSERT(sizeof(daLv3Candle_c) == 0x754);
|
||||
|
||||
class daLv3Candle_HIO_c : public mDoHIO_entry_c {
|
||||
public:
|
||||
daLv3Candle_HIO_c();
|
||||
virtual ~daLv3Candle_HIO_c() {}
|
||||
|
||||
void genMessage(JORMContext*);
|
||||
|
||||
/* 0x00 vtable */
|
||||
/* 0x04 */ u8 field_0x04;
|
||||
};
|
||||
|
||||
#endif /* D_A_OBJ_LV3CANDLE_H */
|
||||
|
||||
@@ -40,10 +40,9 @@ public:
|
||||
virtual ~daLv3Water_c() {}
|
||||
virtual bool eventStart();
|
||||
|
||||
int getParam() { return fpcM_GetParam(this) >> 0xC & 0x0FFF; }
|
||||
int getParamSw() { return fpcM_GetParam(this) & 0xFF; }
|
||||
int getParam(int shift, int bit) { return fopAcM_GetParamBit(this, shift, bit); }
|
||||
int getParamEvent() { return shape_angle.x & 0xFF; }
|
||||
u8 getParamType() { return (shape_angle.x >> 8) & 0xFF; }
|
||||
int getParamType() { return (shape_angle.x & 0xFF00) >> 8; }
|
||||
u8 getType() { return mType; }
|
||||
|
||||
private:
|
||||
@@ -54,13 +53,13 @@ private:
|
||||
/* 0x5E0 */ mDoExt_btkAnm mBtk2;
|
||||
/* 0x5F8 */ u8 mMode;
|
||||
/* 0x5F9 */ u8 mType;
|
||||
/* 0x5FC */ f32 field_0x5fc;
|
||||
/* 0x600 */ u8 field_0x600;
|
||||
/* 0x601 */ u8 field_0x601;
|
||||
/* 0x602 */ u8 mSwitch1;
|
||||
/* 0x603 */ u8 mSwitch2;
|
||||
/* 0x604 */ u8 field_0x604;
|
||||
/* 0x605 */ u8 field_0x605;
|
||||
/* 0x5FC */ f32 mWaterLv; // Amount that the water's y coodinate should increase
|
||||
/* 0x600 */ u8 mCurrentWaterLvFrame; // Number of frames that the water level has been changing
|
||||
/* 0x601 */ u8 mWaterLvFrame; // Number of frames that should be taken for the water level to change
|
||||
/* 0x602 */ u8 mSwInitialState;
|
||||
/* 0x603 */ u8 mSwCurrentState;
|
||||
/* 0x604 */ u8 mLvControlWaitFrames;
|
||||
/* 0x605 */ u8 mSwStatePostEvent; // Only when true (i.e event initiated water raising instead of lowering) should anything be drawn
|
||||
/* 0x608 */ u32 mEmitterIDs[8];
|
||||
};
|
||||
|
||||
|
||||
@@ -32,21 +32,21 @@ public:
|
||||
private:
|
||||
/* 0x5B8 */ request_of_phase_process_class mPhase;
|
||||
/* 0x5C0 */ J3DModel* mpModel;
|
||||
/* 0x5C4 */ mDoExt_btkAnm mWaterSurfaceRefractionAnm;
|
||||
/* 0x5C4 */ mDoExt_btkAnm mRefractionAnm; // Applied to water surface
|
||||
/* 0x5DC */ u8 mMode;
|
||||
/* 0x5DD */ u8 mResourceIndex;
|
||||
/* 0x5E0 */ f32 mWaterLv;
|
||||
/* 0x5E4 */ u8 mCurrentWaterLvFrame;
|
||||
/* 0x5E5 */ u8 mWaterLvFrame;
|
||||
/* 0x5E6 */ u8 mFullRatio;
|
||||
/* 0x5E7 */ u8 mEastSwInitialStatus; // East SW is the lever in the east-most room on 2F, which can only be pulled after raising the water level in that room by pulling the lever in 4F
|
||||
/* 0x5E8 */ u8 mWestSwInitialStatus; // West SW is the lever in the west-most room on 2F, which can only be pulled after raising the water level in that room by pulling the lever in 4F
|
||||
/* 0x5E9 */ u8 mEastSwCurrentStatus;
|
||||
/* 0x5EA */ u8 mWestSwCurrentStatus;
|
||||
/* 0x5EB */ u8 mLevelControlWaitFrames;
|
||||
/* 0x5DD */ u8 mResIdx;
|
||||
/* 0x5E0 */ f32 mWaterLv; // Amount that the water's y coodinate should increase
|
||||
/* 0x5E4 */ u8 mCurrentWaterLvFrame; // Number of frames that the water level has been changing
|
||||
/* 0x5E5 */ u8 mWaterLvFrame; // Number of frames that should be taken for the water level to change
|
||||
/* 0x5E6 */ u8 mEvActivatorSwState;
|
||||
/* 0x5E7 */ u8 mEastSwInitialState; // East SW is the lever in the east-most room on 2F, which can only be pulled after raising the water level in that room by pulling the lever in 4F
|
||||
/* 0x5E8 */ u8 mWestSwInitialState; // West SW is the lever in the west-most room on 2F, which can only be pulled after raising the water level in that room by pulling the lever in 4F
|
||||
/* 0x5E9 */ u8 mEastSwCurrentState;
|
||||
/* 0x5EA */ u8 mWestSwCurrentState;
|
||||
/* 0x5EB */ u8 mLvControlWaitFrames;
|
||||
/* 0x5EC */ f32 mBaseYPos;
|
||||
/* 0x5F0 */ u32 mEastWaterParticles[4]; // If the central staircase isn't rotated to allow water from the east to flow down it, the water falls into the basin; these are the splash particles where the basin water and falling water meet
|
||||
/* 0x600 */ u32 mWestWaterParticles[4]; // If the central staircase isn't rotated to allow water from the west to flow down it, the water falls into the basin; these are the splash particles where the basin water and falling water meet
|
||||
/* 0x5F0 */ u32 mEastParticles[4]; // If the central staircase isn't rotated to allow water from the east to flow down it, the water falls into the basin; these are the splash particles where the basin water and falling water meet
|
||||
/* 0x600 */ u32 mWestParticles[4]; // If the central staircase isn't rotated to allow water from the west to flow down it, the water falls into the basin; these are the splash particles where the basin water and falling water meet
|
||||
|
||||
enum Mode_e {
|
||||
WAIT, LEVEL_CTRL
|
||||
|
||||
@@ -43,11 +43,11 @@ public:
|
||||
void setAnmSpeed(f32 speed) { mpBck->setPlaySpeed(speed); }
|
||||
|
||||
bool isSwitch() {
|
||||
return fopAcM_isSwitch(this, getSwitchNo()) ||
|
||||
/* dSv_event_flag_c::F_0361 - Arbiter's Grounds - Spun the spinning pillars */
|
||||
dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[361]) ||
|
||||
/* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */
|
||||
dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354]);
|
||||
return (fopAcM_isSwitch(this, getSwitchNo()) ||
|
||||
/* dSv_event_flag_c::F_0361 - Arbiter's Grounds - Spun the spinning pillars */
|
||||
dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[361]) ||
|
||||
/* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */
|
||||
dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354])) != false;
|
||||
}
|
||||
|
||||
inline void setAction(Mode_e i_action);
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
*/
|
||||
class daObjSCannonTen_c : public fopAc_ac_c, public request_of_phase_process_class {
|
||||
public:
|
||||
typedef void (daObjSCannonTen_c::*ExeProc)(void);
|
||||
|
||||
enum daSCannonTen_exeMode {
|
||||
MODE_WAIT,
|
||||
MODE_ORDER_EVT,
|
||||
@@ -55,8 +57,8 @@ public:
|
||||
void exeEmtLine();
|
||||
void delEmtAll();
|
||||
|
||||
static void (daObjSCannonTen_c::*s_exeProc[])();
|
||||
static void (daObjSCannonTen_c::*s_demoExeProc[][2])();
|
||||
static const ExeProc s_exeProc[];
|
||||
static const ExeProc s_demoExeProc[][2];
|
||||
|
||||
private:
|
||||
/* 0x574 */ J3DModel* mpModel;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#ifndef D_A_OBJ_SYROCK_H
|
||||
#define D_A_OBJ_SYROCK_H
|
||||
|
||||
#include "d/actor/d_a_obj_waterPillar.h"
|
||||
#include "d/d_bg_s_movebg_actor.h"
|
||||
#include "d/actor/d_a_obj_waterPillar.h"
|
||||
|
||||
/**
|
||||
* @ingroup actors-objects
|
||||
@@ -50,20 +50,20 @@ private:
|
||||
/* 0x5B8 */ request_of_phase_process_class mPhase;
|
||||
/* 0x5C0 */ J3DModel* mpModels[2];
|
||||
/* 0x5C8 */ u8 mMode;
|
||||
/* 0x5C9 */ u8 mDropAutomaticallySwitchNo;
|
||||
/* 0x5C9 */ u8 mAutoDropSwNo;
|
||||
/* 0x5CC */ dCcD_Stts mStts;
|
||||
/* 0x608 */ dCcD_Cyl mUnbrokenCylinderCollider; // Collider used to check for bomb/bomb arrow for breaking stalactite
|
||||
/* 0x608 */ dCcD_Cyl mUnbrokenCollider; // Collider used to check for bomb/bomb arrow for breaking stalactite
|
||||
/* 0x744 */ u8 mWaitFrames;
|
||||
/* 0x748 */ u32 mShakeOscillationAngleStep;
|
||||
/* 0x74C */ csXyz mShakeXZAngleOffset;
|
||||
/* 0x748 */ u32 mShakeOscAngStep;
|
||||
/* 0x74C */ csXyz mShakeAngOffset; // Y component is always 0
|
||||
/* 0x754 */ f32 mShakeAmplitude;
|
||||
/* 0x758 */ f32 mShakeXOscillationAngle;
|
||||
/* 0x75C */ f32 mShakeZOscillationAngle;
|
||||
/* 0x760 */ f32 mShakeDamping;
|
||||
/* 0x758 */ f32 mShakeXOscAngQuantum;
|
||||
/* 0x75C */ f32 mShakeZOscAngQuantum;
|
||||
/* 0x760 */ f32 mShakeDampingScale;
|
||||
/* 0x764 */ f32 mShakeMaxDecay;
|
||||
/* 0x768 */ f32 mShakeMinDecay;
|
||||
/* 0x76C */ cXyz mUnderwaterRotatedStalactiteOffset;
|
||||
/* 0x778 */ bool mInWaterPreviousFrame;
|
||||
/* 0x76C */ cXyz mUnderwaterOffset;
|
||||
/* 0x778 */ u8 mInWaterPrevFrame;
|
||||
/* 0x779 */ u8 field_0x779; // Redundant variable, thus left unnamed
|
||||
/* 0x77C */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x7BC */ dBgS_ObjAcch mAcch;
|
||||
@@ -77,31 +77,30 @@ private:
|
||||
}
|
||||
|
||||
// Switch to determine whether or not the stalactite has been broken
|
||||
u32 getSwBit1() {
|
||||
int getSwBit1() {
|
||||
return fopAcM_GetParamBit(this, 0, 8);
|
||||
}
|
||||
|
||||
// Switch to determine whether or not the stalactite should be broken automatically when player is in range
|
||||
u32 getSwBit2() {
|
||||
int getSwBit2() {
|
||||
return fopAcM_GetParamBit(this, 8, 8);
|
||||
}
|
||||
|
||||
// Event ID for Midna to stop and note the stalactite that fell by itself
|
||||
s32 getEvetID() {
|
||||
int getEvetID() {
|
||||
return fopAcM_GetParamBit(this, 16, 8);
|
||||
}
|
||||
|
||||
enum Mode_e {
|
||||
MODE_WAIT,
|
||||
MODE_DROP_INIT,
|
||||
MODE_WAIT,
|
||||
MODE_DROP_INIT,
|
||||
MODE_DROP,
|
||||
MODE_SINK,
|
||||
MODE_MOVE,
|
||||
MODE_SINK,
|
||||
MODE_MOVE,
|
||||
MODE_DROP_END
|
||||
};
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daSyRock_c) == 0x9a0);
|
||||
|
||||
|
||||
#endif /* D_A_OBJ_SYROCK_H */
|
||||
|
||||
@@ -34,14 +34,4 @@ private:
|
||||
|
||||
STATIC_ASSERT(sizeof(daTwGate_c) == 0x5fc);
|
||||
|
||||
class daTwGate_HIO_c : public fOpAcm_HIO_entry_c {
|
||||
public:
|
||||
daTwGate_HIO_c();
|
||||
~daTwGate_HIO_c() {}
|
||||
|
||||
void genMessage(JORMContext* ctx);
|
||||
|
||||
/* 0x4 */ f32 mRange;
|
||||
};
|
||||
|
||||
#endif /* D_A_OBJ_TWGATE_H */
|
||||
|
||||
@@ -1,11 +1,6 @@
|
||||
#ifndef D_A_OBJ_WATERPILLAR_H
|
||||
#define D_A_OBJ_WATERPILLAR_H
|
||||
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_event_lib.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
/**
|
||||
* @ingroup actors-objects
|
||||
* @class daWtPillar_c
|
||||
@@ -15,6 +10,13 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_event_lib.h"
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "SSystem/SComponent/c_phase.h"
|
||||
class daWtPillar_c : public fopAc_ac_c, public request_of_phase_process_class, public dEvLib_callback_c {
|
||||
public:
|
||||
daWtPillar_c() : dEvLib_callback_c(this) {}
|
||||
@@ -59,7 +61,7 @@ public:
|
||||
static dCcD_SrcCyl mCcDCyl;
|
||||
|
||||
void onRockFlag() {
|
||||
mIsCarryingStalactite = true;
|
||||
mCarryingStalactite = true;
|
||||
}
|
||||
|
||||
cXyz getPos() {
|
||||
@@ -67,18 +69,18 @@ public:
|
||||
}
|
||||
|
||||
u8 isRockYure() {
|
||||
return mStalactiteShouldStartShaking;
|
||||
return mStartStalactiteShake;
|
||||
}
|
||||
|
||||
void clearRockYure() {
|
||||
mStalactiteShouldStartShaking = false;
|
||||
mStartStalactiteShake = false;
|
||||
}
|
||||
|
||||
private:
|
||||
/* 0x584 */ request_of_phase_process_class mPhase;
|
||||
/* 0x58C */ J3DModel* mpModel;
|
||||
/* 0x590 */ mDoExt_btkAnm mVerticalTextureScrollAnimation;
|
||||
/* 0x5A8 */ mDoExt_bckAnm mModelRotationAnimation;
|
||||
/* 0x590 */ mDoExt_btkAnm mVTexScrollAnm;
|
||||
/* 0x5A8 */ mDoExt_bckAnm mModelRotAnm;
|
||||
/* 0x5C4 */ dBgS_ObjAcch mAcch;
|
||||
/* 0x79C */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x7DC */ dCcD_Stts mStts;
|
||||
@@ -86,34 +88,34 @@ private:
|
||||
/* 0x95C */ dCcD_Cyl mCylinderCollider;
|
||||
/* 0xA98 */ u8 pad0[0x30];
|
||||
/* 0xAC8 */ cXyz field_0xAC8; // unused.
|
||||
/* 0xAD4 */ cXyz mScale; // Modified but never read; unused?
|
||||
/* 0xAD4 */ cXyz mDbgDrawScale;
|
||||
/* 0xAE0 */ f32 mCurrentHeight;
|
||||
/* 0xAE4 */ cM3dGCpsS mCapsuleSource;
|
||||
/* 0xB00 */ u8 mAction;
|
||||
/* 0xB02 */ u16 mWaitFrameDelay;
|
||||
/* 0xB04 */ f32 mTargetMaxSpeed;
|
||||
/* 0xB02 */ u16 mWaitFrames;
|
||||
/* 0xB04 */ f32 mTargetSpeed;
|
||||
/* 0xB08 */ u8 mSwitchNo;
|
||||
/* 0xB09 */ u8 mType;
|
||||
/* 0xB0A */ u8 pad2[0x6];
|
||||
/* 0xB10 */ f32 mFirstTargetHeight;
|
||||
/* 0xB10 */ f32 mUpFirstTargetHeight;
|
||||
/* 0xB14 */ f32 mMaxHeight;
|
||||
/* 0xB18 */ f32 mTargetHeightStalactiteOffset;
|
||||
/* 0xB1C */ f32 mRelativeWaterHeight;
|
||||
/* 0xB20 */ u32 mEffectOscillationAngleStep;
|
||||
/* 0xB24 */ cXyz mEffectOscillationVerticalOffset;
|
||||
/* 0xB30 */ f32 mEffectOscillationAngle;
|
||||
/* 0xB34 */ f32 mEffectOscillationAmplitude;
|
||||
/* 0xB38 */ f32 mEffectOscillationDampingScale;
|
||||
/* 0xB3C */ f32 mEffectOscillationMaxDecay;
|
||||
/* 0xB40 */ f32 mEffectOscillationMinDecay;
|
||||
/* 0xB20 */ u32 mVOscAngleStep;
|
||||
/* 0xB24 */ cXyz mVOscVOffset;
|
||||
/* 0xB30 */ f32 mVOscAngleQuantum;
|
||||
/* 0xB34 */ f32 mVOscAmplitude;
|
||||
/* 0xB38 */ f32 mVOscDampingScale;
|
||||
/* 0xB3C */ f32 mVOscMaxDecay;
|
||||
/* 0xB40 */ f32 mVOscMinDecay;
|
||||
/* 0xB44 */ u8 field_0xB44; // Modified, but never read; unused?
|
||||
/* 0xB45 */ u8 mStartedRisingOrDoesNotRiseAndFall;
|
||||
/* 0xB46 */ u8 mPillarIsPreparingToRise;
|
||||
/* 0xB48 */ u32 mBottomAndTopParticleEmmitters[7];
|
||||
/* 0xB64 */ u32 mWaterSurfaceParticleEmitters[2];
|
||||
/* 0xB45 */ u8 mIsUpOrStatic;
|
||||
/* 0xB46 */ u8 mIsUpFirst;
|
||||
/* 0xB48 */ u32 mBotAndTopEmmitters[7];
|
||||
/* 0xB64 */ u32 mWaterSurfaceEmitters[2];
|
||||
/* 0xB6C */ cXyz mTopPos;
|
||||
/* 0xB78 */ s8 mStalactiteShouldStartShaking; // Modified by d_a_obj_syRock
|
||||
/* 0xB79 */ u8 mIsCarryingStalactite; // Modified by d_a_obj_syRock
|
||||
/* 0xB78 */ u8 mStartStalactiteShake; // Modified by d_a_obj_syRock
|
||||
/* 0xB79 */ u8 mCarryingStalactite; // Modified by d_a_obj_syRock
|
||||
|
||||
s32 getEventID() {
|
||||
return shape_angle.x & 0xFF;
|
||||
@@ -124,11 +126,11 @@ private:
|
||||
}
|
||||
|
||||
enum Action_e {
|
||||
ACTION_SW_WAIT,
|
||||
ACTION_WAIT,
|
||||
ACTION_SW_WAIT,
|
||||
ACTION_WAIT,
|
||||
ACTION_UP_FIRST, ACTION_UP_FIRST_WAIT,
|
||||
ACTION_UP, ACTION_UP_WAIT,
|
||||
ACTION_DOWN,
|
||||
ACTION_UP, ACTION_UP_WAIT,
|
||||
ACTION_DOWN,
|
||||
ACTION_ROCK_WAIT, ACTION_ROCK_ON,
|
||||
ACTION_END
|
||||
};
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
/**
|
||||
* @ingroup actors-objects
|
||||
* @class daObjWaterFall_c
|
||||
* @brief Waterfall With Collision Object
|
||||
* @brief Waterfall Collision
|
||||
*
|
||||
* @details Waterfalls that player cannot move through (e.g. those in Zora's Domain)
|
||||
* @details Collision added to waterfalls that player shouldn't move through (e.g. those in Zora's Domain). Doesn't actually draw the waterfall.
|
||||
*/
|
||||
class daObjWaterFall_c : public fopAc_ac_c {
|
||||
public:
|
||||
@@ -30,23 +30,23 @@ private:
|
||||
/* 0x574 */ dCcD_Stts mCylColliderStts;
|
||||
/* 0x5B0 */ dCcD_Tri mUnusedTriCollider[2];
|
||||
/* 0x868 */ dCcD_Cyl mCylCollider;
|
||||
/* 0x9A4 */ cXyz mCylColliderCenterOscillationTargets[2];
|
||||
/* 0x9BC */ cXyz mCylColliderCenter;
|
||||
/* 0x9C8 */ s8 mCylColliderCenterQuantizedOscillation;
|
||||
/* 0x9A4 */ cXyz mColOscPosTargets[2];
|
||||
/* 0x9BC */ cXyz mColCenter;
|
||||
/* 0x9C8 */ s8 mColOscDir;
|
||||
|
||||
enum Type_e {
|
||||
ALLOW_ARROWS_e
|
||||
};
|
||||
|
||||
BOOL checkFallOut() {
|
||||
return fopAcM_GetParamBit(this, 10, 4);
|
||||
return (BOOL) fopAcM_GetParamBit(this, 10, 4) == TRUE;
|
||||
}
|
||||
|
||||
Type_e getType() {
|
||||
return static_cast<Type_e>(fopAcM_GetParamBit(this, 8, 2));
|
||||
u8 getType() {
|
||||
return fopAcM_GetParamBit(this, 8, 2);
|
||||
}
|
||||
|
||||
u32 getSwbit() {
|
||||
u8 getSwbit() {
|
||||
return fopAcM_GetParamBit(this, 0, 8);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include "d/d_kankyo.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
class dPath;
|
||||
struct dPath;
|
||||
|
||||
/**
|
||||
* @ingroup actors-unsorted
|
||||
|
||||
@@ -7,6 +7,29 @@
|
||||
|
||||
struct ResTIMG;
|
||||
|
||||
class daPy_frameCtrl_c : public J3DFrameCtrl {
|
||||
public:
|
||||
virtual ~daPy_frameCtrl_c() {}
|
||||
daPy_frameCtrl_c() {}
|
||||
bool checkAnmEnd();
|
||||
void updateFrame();
|
||||
void setFrameCtrl(u8 i_attribute, s16 i_start, s16 i_end, f32 i_rate, f32 i_frame);
|
||||
|
||||
u16 getEndFlg() const { return mEndFlg; }
|
||||
u16 getNowSetFlg() const { return mNowSetFlg; }
|
||||
void onEndFlg() { mEndFlg = 1; }
|
||||
void onNowSetFlg() { mNowSetFlg = 1; }
|
||||
void offNowSetFlg() { mNowSetFlg = 0; }
|
||||
void offEndFlg() {
|
||||
mEndFlg = 0;
|
||||
mNowSetFlg = 0;
|
||||
}
|
||||
|
||||
private:
|
||||
/* 0x14 */ u16 mEndFlg;
|
||||
/* 0x16 */ u16 mNowSetFlg;
|
||||
};
|
||||
|
||||
class daPy_sightPacket_c : public dDlst_base_c {
|
||||
public:
|
||||
daPy_sightPacket_c() {}
|
||||
@@ -111,29 +134,6 @@ private:
|
||||
/* 0x4 */ fopAc_ac_c* mActor;
|
||||
}; // Size: 0x8
|
||||
|
||||
class daPy_frameCtrl_c : public J3DFrameCtrl {
|
||||
public:
|
||||
virtual ~daPy_frameCtrl_c() {}
|
||||
daPy_frameCtrl_c() {}
|
||||
bool checkAnmEnd();
|
||||
void updateFrame();
|
||||
void setFrameCtrl(u8 i_attribute, s16 i_start, s16 i_end, f32 i_rate, f32 i_frame);
|
||||
|
||||
u16 getEndFlg() const { return mEndFlg; }
|
||||
u16 getNowSetFlg() const { return mNowSetFlg; }
|
||||
void onEndFlg() { mEndFlg = 1; }
|
||||
void onNowSetFlg() { mNowSetFlg = 1; }
|
||||
void offNowSetFlg() { mNowSetFlg = 0; }
|
||||
void offEndFlg() {
|
||||
mEndFlg = 0;
|
||||
mNowSetFlg = 0;
|
||||
}
|
||||
|
||||
private:
|
||||
/* 0x14 */ u16 mEndFlg;
|
||||
/* 0x16 */ u16 mNowSetFlg;
|
||||
};
|
||||
|
||||
class Z2WolfHowlMgr;
|
||||
class daBoomerang_c;
|
||||
|
||||
|
||||
@@ -21,17 +21,18 @@ public:
|
||||
u8 check(fopAc_ac_c*);
|
||||
bool check(cXyz const&);
|
||||
void execute();
|
||||
void draw();
|
||||
~data_c() {}
|
||||
data_c() { reset(); }
|
||||
|
||||
void setNext(data_c* i_next) { mpNext = i_next; }
|
||||
data_c* getNext() { return mpNext; }
|
||||
u8 getType() { return mType; }
|
||||
bool isUsed() { return mRoomNo < 0; }
|
||||
bool isUsed() { return mRoomNo >= 0; }
|
||||
s8 getRoomNo() { return mRoomNo; }
|
||||
|
||||
/* 0x00 */ s8 mRoomNo;
|
||||
/* 0x01 */ bool field_0x1;
|
||||
/* 0x01 */ u8 field_0x1;
|
||||
/* 0x02 */ u8 field_0x2;
|
||||
/* 0x03 */ u8 field_0x3;
|
||||
/* 0x04 */ u8 mType;
|
||||
@@ -44,7 +45,7 @@ public:
|
||||
public:
|
||||
void add(daSus_c::data_c*);
|
||||
void reset();
|
||||
room_c() { init(); }
|
||||
room_c() { mpData = NULL; }
|
||||
void init() { mpData = NULL; }
|
||||
|
||||
/* 0x0 */ data_c* mpData;
|
||||
@@ -55,6 +56,7 @@ public:
|
||||
static void check(fopAc_ac_c*);
|
||||
static bool check(s8 i_roomNo, cXyz const& i_pos);
|
||||
static void execute();
|
||||
static void draw();
|
||||
int create();
|
||||
|
||||
static void reset(int roomNo) {
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
#ifndef D_FLOWER_H
|
||||
#define D_FLOWER_H
|
||||
|
||||
#include "JSystem/J3DGraphBase/J3DPacket.h"
|
||||
#include "SSystem/SComponent/c_xyz.h"
|
||||
|
||||
class cCcD_Obj;
|
||||
class dCcMassS_HitInf;
|
||||
class fopAc_ac_c;
|
||||
|
||||
class dFlower_data_c {
|
||||
public:
|
||||
void WorkCo(fopAc_ac_c*, u32, int);
|
||||
void deleteAnm();
|
||||
void WorkAt_NoCutAnim(fopAc_ac_c*, u32, int, dCcMassS_HitInf*, cCcD_Obj*);
|
||||
void WorkAt(fopAc_ac_c*, u32, int, dCcMassS_HitInf*);
|
||||
void hitCheck(fopAc_ac_c*, int);
|
||||
~dFlower_data_c();
|
||||
dFlower_data_c();
|
||||
|
||||
/* 0x00 */ u8 m_state;
|
||||
/* 0x01 */ s8 field_0x01;
|
||||
/* 0x02 */ s8 m_tableNo;
|
||||
/* 0x03 */ u8 field_0x03;
|
||||
/* 0x04 */ s16 field_0x04;
|
||||
/* 0x08 */ cXyz m_pos;
|
||||
/* 0x14 */ Mtx m_modelMtx;
|
||||
/* 0x44 */ dFlower_data_c* mp_next;
|
||||
};
|
||||
|
||||
class dFlower_room_c {
|
||||
public:
|
||||
void newData(dFlower_data_c*);
|
||||
void deleteData();
|
||||
dFlower_room_c();
|
||||
|
||||
dFlower_data_c* getData() { return mp_data; }
|
||||
|
||||
/* 0x0 */ dFlower_data_c* mp_data;
|
||||
};
|
||||
|
||||
class dFlower_anm_c {
|
||||
public:
|
||||
dFlower_anm_c();
|
||||
|
||||
/* 0x00 */ u8 m_state;
|
||||
/* 0x02 */ s16 m_angY;
|
||||
/* 0x04 */ s16 m_angX;
|
||||
/* 0x08 */ Mtx m_animMtx;
|
||||
};
|
||||
|
||||
class dFlower_packet_c : public J3DPacket {
|
||||
public:
|
||||
dFlower_packet_c();
|
||||
void calc();
|
||||
void update();
|
||||
void setData(dFlower_data_c*, int, s8, cXyz&, int, s8, s16);
|
||||
dFlower_data_c* newData(s8, cXyz&, int, s8, s16);
|
||||
void deleteRoom(int);
|
||||
int newAnm();
|
||||
void setAnm(int, s16);
|
||||
|
||||
virtual void draw();
|
||||
virtual ~dFlower_packet_c();
|
||||
|
||||
typedef void (dFlower_packet_c::*deleteFunc)(int);
|
||||
|
||||
static deleteFunc getDeleteRoom() {
|
||||
JUT_ASSERT(174, m_deleteRoom != NULL);
|
||||
return m_deleteRoom;
|
||||
}
|
||||
|
||||
static deleteFunc m_deleteRoom;
|
||||
|
||||
dFlower_anm_c* getAnm(int i_idx) { return &m_anm[i_idx]; }
|
||||
dFlower_anm_c* getAnm() { return &m_anm[0]; }
|
||||
dFlower_data_c* getData() { return m_data; }
|
||||
|
||||
void deleteAnm(int i_idx) { m_anm[i_idx].m_state = 0; }
|
||||
|
||||
void setPlayerCutFlg(int i_flag) { m_playerCutFlg = i_flag != 0; }
|
||||
void setPlayerSwordAngY(s16 i_angY) { m_playerSwordAngY = i_angY; }
|
||||
void setPlayerSwordMoveAngY(s16 i_angY) { m_playerSwordMoveAngY = i_angY; }
|
||||
void setPlayerSwordTop(cXyz& i_pos) { m_playerSwordTop = i_pos; }
|
||||
cXyz& getPlayerSwordTop() { return m_playerSwordTop; }
|
||||
|
||||
/* 0x00010 */ u16 m_dataNum;
|
||||
/* 0x00014 */ dFlower_data_c m_data[1000];
|
||||
/* 0x11954 */ dFlower_anm_c m_anm[72];
|
||||
/* 0x12914 */ dFlower_room_c m_room[64];
|
||||
/* 0x12A14 */ u8 m_playerCutFlg;
|
||||
/* 0x12A16 */ s16 m_playerSwordAngY;
|
||||
/* 0x12A18 */ s16 m_playerSwordMoveAngY;
|
||||
/* 0x12A1C */ cXyz m_playerSwordTop;
|
||||
/* 0x12A28 */ Vec* mp_pos;
|
||||
/* 0x12A2C */ GXColor* mp_colors;
|
||||
/* 0x12A30 */ Vec* mp_texCoords;
|
||||
/* 0x12A34 */ u8* mp_mat2DL;
|
||||
/* 0x12A38 */ u32 m_mat2DL_size;
|
||||
/* 0x12A3C */ u8* mp_mat2Light4DL;
|
||||
/* 0x12A40 */ u32 m_mat2Light4DL_size;
|
||||
/* 0x12A44 */ u8* mp_Jhana01DL;
|
||||
/* 0x12A48 */ u32 m_Jhana01DL_size;
|
||||
/* 0x12A4C */ u8* mp_Jhana01_cDL;
|
||||
/* 0x12A50 */ u32 m_Jhana01_cDL_size;
|
||||
}; // Size: 0x12A54
|
||||
|
||||
#endif /* D_FLOWER_H */
|
||||
@@ -0,0 +1,113 @@
|
||||
#ifndef D_GRASS_H
|
||||
#define D_GRASS_H
|
||||
|
||||
#include "JSystem/J3DGraphBase/J3DPacket.h"
|
||||
#include "SSystem/SComponent/c_xyz.h"
|
||||
|
||||
class cCcD_Obj;
|
||||
class csXyz;
|
||||
class dCcMassS_HitInf;
|
||||
class fopAc_ac_c;
|
||||
|
||||
class dGrass_data_c {
|
||||
public:
|
||||
void WorkCo(fopAc_ac_c*, u32, int);
|
||||
void WorkAt_NoCutAnim(fopAc_ac_c*, u32, int, dCcMassS_HitInf*, cCcD_Obj*);
|
||||
void Direction_Set(fopAc_ac_c*, u32, int, dCcMassS_HitInf*, cCcD_Obj*, csXyz*);
|
||||
void WorkAt(fopAc_ac_c*, u32, int, dCcMassS_HitInf*, u16);
|
||||
void hitCheck(int, u16);
|
||||
~dGrass_data_c() {}
|
||||
dGrass_data_c() {
|
||||
m_state = 0;
|
||||
}
|
||||
|
||||
/* 0x00 */ u8 m_state;
|
||||
/* 0x01 */ u8 field_0x01;
|
||||
/* 0x02 */ s8 field_0x02;
|
||||
/* 0x03 */ u8 m_tableNo;
|
||||
/* 0x04 */ u8 m_itemBitNo;
|
||||
/* 0x05 */ u8 field_0x05;
|
||||
/* 0x06 */ u8 field_0x06[0x08 - 0x06];
|
||||
/* 0x08 */ s16 m_addCol;
|
||||
/* 0x0C */ cXyz m_pos;
|
||||
/* 0x18 */ Mtx m_modelMtx;
|
||||
/* 0x48 */ dGrass_data_c* mp_next;
|
||||
};
|
||||
|
||||
class dGrass_room_c {
|
||||
public:
|
||||
void newData(dGrass_data_c*);
|
||||
void deleteData();
|
||||
dGrass_room_c() {
|
||||
mp_data = NULL;
|
||||
}
|
||||
|
||||
dGrass_data_c* getData() { return mp_data; }
|
||||
|
||||
/* 0x0 */ dGrass_data_c* mp_data;
|
||||
};
|
||||
|
||||
class dGrass_anm_c {
|
||||
public:
|
||||
dGrass_anm_c() {
|
||||
m_state = 0;
|
||||
}
|
||||
|
||||
/* 0x00 */ u8 m_state;
|
||||
/* 0x02 */ s16 m_angY;
|
||||
/* 0x04 */ s16 m_angX;
|
||||
/* 0x08 */ Mtx m_animMtx;
|
||||
};
|
||||
|
||||
class dGrass_packet_c : public J3DPacket {
|
||||
public:
|
||||
dGrass_packet_c();
|
||||
void calc();
|
||||
void update();
|
||||
void setData(dGrass_data_c*, int, cXyz&, int, u8, u8, s16, u8);
|
||||
dGrass_data_c* newData(cXyz&, int, u8, u8, s16, u8);
|
||||
void deleteRoom(int);
|
||||
int newAnm();
|
||||
void setAnm(int, s16);
|
||||
|
||||
virtual void draw();
|
||||
virtual ~dGrass_packet_c();
|
||||
|
||||
typedef void (dGrass_packet_c::*deleteFunc)(int);
|
||||
|
||||
static deleteFunc getDeleteRoom() {
|
||||
JUT_ASSERT(181, m_deleteRoom != NULL);
|
||||
return m_deleteRoom;
|
||||
}
|
||||
|
||||
static deleteFunc m_deleteRoom;
|
||||
|
||||
dGrass_anm_c* getAnm() { return m_anm; }
|
||||
dGrass_anm_c* getAnm(int i_no) { return &m_anm[i_no]; }
|
||||
|
||||
dGrass_data_c* getData() { return m_data; }
|
||||
|
||||
void deleteAnm(int i_idx) { m_anm[i_idx].m_state = 0; }
|
||||
|
||||
/* 0x00010 */ u16 m_dataNum;
|
||||
/* 0x00014 */ dGrass_data_c m_data[1500];
|
||||
/* 0x1BD64 */ dGrass_anm_c m_anm[112];
|
||||
/* 0x1D5E4 */ dGrass_room_c m_room[64];
|
||||
/* 0x1D6E4 */ Vec* mp_pos;
|
||||
/* 0x1D6E8 */ Vec* mp_normal;
|
||||
/* 0x1D6EC */ GXColor* mp_colors;
|
||||
/* 0x1D6F0 */ Vec* mp_texCoords;
|
||||
/* 0x1D6F4 */ u8* mp_kusa9q_DL;
|
||||
/* 0x1D6F8 */ u32 m_kusa9q_DL_size;
|
||||
/* 0x1D6FC */ u8* mp_kusa9q_14_DL;
|
||||
/* 0x1D700 */ u32 m_kusa9q_DL_14_size;
|
||||
/* 0x1D704 */ u8* mp_Mkusa_9q_DL;
|
||||
/* 0x1D708 */ u32 m_Mkusa_9q_DL_size;
|
||||
/* 0x1D70C */ u8* mp_Mkusa_9q_cDL;
|
||||
/* 0x1D710 */ u32 m_Mkusa_9q_cDL_size;
|
||||
/* 0x1D714 */ s16 field_0x1d714;
|
||||
}; // Size: 0x1D718
|
||||
|
||||
STATIC_ASSERT(sizeof(dGrass_packet_c) == 0x1D718);
|
||||
|
||||
#endif /* D_GRASS_H */
|
||||
Reference in New Issue
Block a user