mirror of
https://github.com/zeldaret/tp
synced 2026-05-22 22:44:28 -04:00
E wb documentation + e_rd cleanup (#3125)
* e_rd cleanup * first pass * fix ? * rename * more rename * fix other platform * fix typo * more documentation * more work * fix build * fix * more doc * camera work * more work * cleanup * more work * clean up + fix build * fix build * more work * change mSpeedRate name * change description * more work * fire eff work * fix build * fix match * debug fix ? * update description * rename field
This commit is contained in:
+50
-48
@@ -8,14 +8,16 @@
|
||||
#include "d/d_path.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
|
||||
/**
|
||||
* @ingroup actors-enemies
|
||||
* @class e_rd_class
|
||||
* @brief Bulblin
|
||||
*
|
||||
* @details
|
||||
*
|
||||
* @brief Rider (Bulblin / King Bulblin on Boar)
|
||||
*
|
||||
* @details Bulblin enemy that rides a Bullbo (wild boar). Handles mounting,
|
||||
* riding, combat, and dismounting behavior, as well as on-foot actions when
|
||||
* not riding. Bulblins appear as regular riders,
|
||||
* while King Bulblin serves as the boss variant of the boar rider.
|
||||
*
|
||||
*/
|
||||
class e_rd_class {
|
||||
public:
|
||||
@@ -28,11 +30,11 @@ public:
|
||||
/* 0x05B7 */ u8 arg1;
|
||||
/* 0x05B8 */ u8 arg2;
|
||||
/* 0x05B9 */ u8 field_0x5b9;
|
||||
/* 0x05BA */ u8 field_0x5ba;
|
||||
/* 0x05BA */ u8 scene_no;
|
||||
/* 0x05BB */ u8 field_0x5bb;
|
||||
/* 0x05BC */ u8 weapon_type;
|
||||
/* 0x05BD */ s8 field_0x5bd;
|
||||
/* 0x05C0 */ cXyz field_0x5c0;
|
||||
/* 0x05BD */ s8 armament_flag;
|
||||
/* 0x05C0 */ cXyz find_pos;
|
||||
/* 0x05CC */ s16 target_ya;
|
||||
/* 0x05D0 */ mDoExt_McaMorfSO* anm_p;
|
||||
/* 0x05D4 */ Z2CreatureEnemy sound;
|
||||
@@ -40,29 +42,29 @@ public:
|
||||
/* 0x067C */ int anm;
|
||||
/* 0x0680 */ int field_0x680;
|
||||
/* 0x0684 */ dJntCol_c mJntCol;
|
||||
/* 0x0694 */ J3DModel* arrow;
|
||||
/* 0x0694 */ J3DModel* arrow_model;
|
||||
/* 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;
|
||||
/* 0x069C */ mDoExt_McaMorf* horn_anm;
|
||||
/* 0x06A0 */ s8 horn_mode;
|
||||
/* 0x06A4 */ cXyz horn_pos;
|
||||
/* 0x06B0 */ cXyz horn_spd;
|
||||
/* 0x06BC */ csXyz horn_rot;
|
||||
/* 0x06C2 */ s8 run_flag;
|
||||
/* 0x06C3 */ u8 field_0x6c3;
|
||||
/* 0x06C4 */ J3DModel* eye_model[2];
|
||||
/* 0x06CC */ f32 field_0x6cc;
|
||||
/* 0x06D0 */ f32 field_0x6d0;
|
||||
/* 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];
|
||||
/* 0x070C */ s8 part_break[14];
|
||||
/* 0x071C */ cXyz part_pos[14];
|
||||
/* 0x07C4 */ cXyz part_spd[14];
|
||||
/* 0x086C */ csXyz part_angle[14];
|
||||
/* 0x08C0 */ u32 armor_break_eff[14][3];
|
||||
/* 0x0968 */ s8 field_0x968;
|
||||
/* 0x096C */ f32 field_0x96c;
|
||||
/* 0x0970 */ s16 counter;
|
||||
/* 0x0972 */ s16 action;
|
||||
/* 0x0974 */ s16 prev_action;
|
||||
/* 0x0974 */ s16 old_action;
|
||||
/* 0x0978 */ f32 dis;
|
||||
/* 0x097C */ s16 angleY;
|
||||
/* 0x0980 */ f32 attack_range;
|
||||
@@ -76,7 +78,7 @@ public:
|
||||
/* 0x099E */ s16 attack_timer;
|
||||
/* 0x09A0 */ s8 field_0x9a0;
|
||||
/* 0x09A1 */ s8 look_timer;
|
||||
/* 0x09A2 */ s8 field_0x9a2;
|
||||
/* 0x09A2 */ s8 arrow_draw;
|
||||
/* 0x09A3 */ s8 arrow_flag;
|
||||
/* 0x09A4 */ s8 field_0x9a4;
|
||||
/* 0x09A5 */ u8 field_0x9a5;
|
||||
@@ -86,19 +88,19 @@ public:
|
||||
/* 0x09AB */ s8 field_0x9ab;
|
||||
/* 0x09AC */ s8 field_0x9ac;
|
||||
/* 0x09AD */ s8 field_0x9ad;
|
||||
/* 0x09B0 */ cXyz field_0x9b0;
|
||||
/* 0x09B0 */ cXyz center_body;
|
||||
/* 0x09BC */ s8 ride_mode;
|
||||
/* 0x09BD */ s8 field_0x9bd;
|
||||
/* 0x09BE */ s8 boar_stand;
|
||||
/* 0x09BF */ u8 field_0x9bf;
|
||||
/* 0x09C0 */ f32 field_0x9c0;
|
||||
/* 0x09C4 */ f32 field_0x9c4;
|
||||
/* 0x09C8 */ s8 field_0x9c8;
|
||||
/* 0x09C0 */ f32 mount_jump_y;
|
||||
/* 0x09C4 */ f32 mount_jump_speed;
|
||||
/* 0x09C8 */ s8 aim_type;
|
||||
/* 0x09C9 */ u8 field_0x9c9;
|
||||
/* 0x09CA */ s16 field_0x9ca;
|
||||
/* 0x09CC */ s16 field_0x9cc;
|
||||
/* 0x09CE */ s16 field_0x9ce;
|
||||
/* 0x09D0 */ s16 field_0x9d0;
|
||||
/* 0x09CA */ s16 aim_angle_y;
|
||||
/* 0x09CC */ s16 aim_angle_x;
|
||||
/* 0x09CE */ s16 head_angle_y;
|
||||
/* 0x09D0 */ s16 head_shake;
|
||||
/* 0x09D4 */ cXyz eye;
|
||||
/* 0x09E0 */ cXyz field_0x9e0; // unused, dbg offset 0xa18
|
||||
/* 0x09EC */ f32 jump_z;
|
||||
@@ -111,7 +113,7 @@ public:
|
||||
/* 0x0A0C */ csXyz jump_angle;
|
||||
/* 0x0A12 */ csXyz field_0xa12;
|
||||
/* 0x0A18 */ csXyz field_0xa18;
|
||||
/* 0x0A1E */ s8 field_0xa1e;
|
||||
/* 0x0A1E */ s8 jump_timer;
|
||||
/* 0x0A1F */ s8 field_0xa1f;
|
||||
/* 0x0A20 */ u32 field_0xa20;
|
||||
/* 0x0A24 */ f32 field_0xa24;
|
||||
@@ -139,47 +141,47 @@ public:
|
||||
/* 0x0AF8 */ s16 field_0xaf8;
|
||||
/* 0x0AFA */ s8 field_0xafa;
|
||||
/* 0x0AFB */ s8 field_0xafb;
|
||||
/* 0x0AFC */ dPath* path;
|
||||
/* 0x0B00 */ s8 field_0xb00;
|
||||
/* 0x0B01 */ s8 path_dir;
|
||||
/* 0x0AFC */ dPath* ppd;
|
||||
/* 0x0B00 */ s8 jyunkai_no; /* 巡回ポイントNo (Patrol point index) */
|
||||
/* 0x0B01 */ s8 dir;
|
||||
/* 0x0B04 */ dBgS_AcchCir AcchCir;
|
||||
/* 0x0B44 */ dBgS_ObjAcch ObjAcch;
|
||||
/* 0x0D1C */ dCcD_Stts mStts;
|
||||
/* 0x0B44 */ dBgS_ObjAcch Bgc;
|
||||
/* 0x0D1C */ dCcD_Stts Stts;
|
||||
/* 0x0D58 */ dCcD_Sph cc_sph[3];
|
||||
/* 0x1100 */ dCcD_Sph at_sph;
|
||||
/* 0x1238 */ dCcU_AtInfo AtInfo;
|
||||
/* 0x1238 */ dCcU_AtInfo at_info;
|
||||
/* 0x125C */ u8 hio_set;
|
||||
/* 0x125D */ s8 field_0x125d;
|
||||
/* 0x1260 */ u32 field_0x1260;
|
||||
/* 0x1264 */ u32 field_0x1264;
|
||||
/* 0x1268 */ u32 enemy_downWtrA[3];
|
||||
/* 0x1274 */ u32 fire_eff[2];
|
||||
/* 0x127C */ cXyz field_0x127c;
|
||||
/* 0x1288 */ cXyz field_0x1288;
|
||||
/* 0x1268 */ u32 w_eff_id[3];
|
||||
/* 0x1274 */ u32 fire_eff_id[2];
|
||||
/* 0x127C */ cXyz fire_pos;
|
||||
/* 0x1288 */ cXyz fire_eff;
|
||||
/* 0x1294 */ s8 field_0x1294;
|
||||
/* 0x1295 */ s8 one_hit_kill;
|
||||
/* 0x1296 */ s8 field_0x1296;
|
||||
/* 0x1297 */ s8 field_0x1297;
|
||||
/* 0x1298 */ s8 field_0x1298;
|
||||
/* 0x1299 */ u8 field_0x1299;
|
||||
/* 0x129A */ s8 actor_set; // 1: Eldin Field, 2 Eldin Bridge, 3 Lake Hylia Bridge, 4 ???
|
||||
/* 0x129A */ s8 actor_set;
|
||||
/* 0x129B */ u8 field_0x129b;
|
||||
/* 0x129C */ s8 field_0x129c;
|
||||
/* 0x129C */ s8 horn_timer;
|
||||
/* 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;
|
||||
/* 0x12E4 */ cXyz field_0x12e4;
|
||||
/* 0x12B4 */ cXyz demo_cam_ctr;
|
||||
/* 0x12C0 */ cXyz demo_cam_way;
|
||||
/* 0x12CC */ cXyz demo_cam_target;
|
||||
/* 0x12D8 */ cXyz demo_cam_eye_spd;
|
||||
/* 0x12E4 */ cXyz demo_cam_way_spd;
|
||||
/* 0x12F0 */ cXyz field_0x12f0;
|
||||
/* 0x12FC */ u8 field_0x12fc[0x1300 - 0x12fc];
|
||||
/* 0x1300 */ f32 field_0x1300;
|
||||
/* 0x1300 */ f32 demo_cam_eye_z;
|
||||
/* 0x1304 */ u8 blurRate;
|
||||
/* 0x1308 */ f32 demo_cam_zoom;
|
||||
/* 0x130C */ f32 field_0x130c;
|
||||
/* 0x130C */ f32 demo_cam_morf;
|
||||
/* 0x1310 */ u8 field_0x1310[0x131c - 0x1310];
|
||||
/* 0x131C */ dMsgFlow_c MsgFlow;
|
||||
};
|
||||
|
||||
+90
-90
@@ -57,7 +57,7 @@ enum daE_WB_ACT {
|
||||
};
|
||||
|
||||
struct himo_s {
|
||||
/* 0x0 */ cXyz field_0x0[16];
|
||||
/* 0x0 */ cXyz node[16];
|
||||
};
|
||||
|
||||
|
||||
@@ -79,61 +79,61 @@ public:
|
||||
BOOL checkNormalRideMode() const;
|
||||
void setRunRideMode();
|
||||
|
||||
MtxP getRideMtx() { return mpModelMorf->getModel()->getAnmMtx(15); }
|
||||
f32 nowAnimeFrame() const { return mpModelMorf->getFrame(); }
|
||||
s16 getWaitRollAngle() const { return mWaitRollAngle; }
|
||||
BOOL checkGetOff() const { return mEnemy.speedF < 3.0f; }
|
||||
f32 rideSpeedRate() const { return mEnemy.speedF / mSpeedRate; }
|
||||
f32 getAnimeFrameRate() { return mpModelMorf->getFrame() / mpModelMorf->getEndFrame(); }
|
||||
BOOL checkAnmLoopFrame() { return mpModelMorf->checkFrame(0.0f); }
|
||||
MtxP getRideMtx() { return anm_p->getModel()->getAnmMtx(15); }
|
||||
f32 nowAnimeFrame() const { return anm_p->getFrame(); }
|
||||
s16 getWaitRollAngle() const { return wait_roll_angle; }
|
||||
BOOL checkGetOff() const { return enemy.speedF < 3.0f; }
|
||||
f32 rideSpeedRate() const { return enemy.speedF / ride_speed_max; }
|
||||
f32 getAnimeFrameRate() { return anm_p->getFrame() / anm_p->getEndFrame(); }
|
||||
BOOL checkAnmLoopFrame() { return anm_p->checkFrame(0.0f); }
|
||||
|
||||
J3DModel* getModel() {
|
||||
if (mpModelMorf != NULL) {
|
||||
return mpModelMorf->getModel();
|
||||
if (anm_p != NULL) {
|
||||
return anm_p->getModel();
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
public:
|
||||
/* 0x0000 */ fopEn_enemy_c mEnemy; ///< @brief Base enemy class instance.
|
||||
/* 0x05AC */ request_of_phase_process_class mPhase; ///< @brief Phase process request handler.
|
||||
/* 0x05B4 */ s16 mActionMode; ///< @brief Current sub-action mode within the run action.
|
||||
/* 0x05B8 */ char* mResName; ///< @brief Resource name for loading models/animations.
|
||||
/* 0x05BC */ u8 mParam; ///< @brief Creation parameter 1.
|
||||
/* 0x05BD */ u8 mParam2; ///< @brief Creation parameter 2.
|
||||
/* 0x0000 */ fopEn_enemy_c enemy; ///< @brief Base enemy class instance.
|
||||
/* 0x05AC */ request_of_phase_process_class phase; ///< @brief Phase process request handler.
|
||||
/* 0x05B4 */ s16 ride_mode; ///< @brief Current sub-action mode within the run action.
|
||||
/* 0x05B8 */ char* resName; ///< @brief Resource name for loading models/animations.
|
||||
/* 0x05BC */ u8 arg0; ///< @brief Creation parameter 1.
|
||||
/* 0x05BD */ u8 arg1; ///< @brief Creation parameter 2.
|
||||
/* 0x05BE */ u8 field_0x5be;
|
||||
/* 0x05BF */ bool field_0x5bf;
|
||||
/* 0x05BF */ bool no_draw;
|
||||
/* 0x05C0 */ u8 field_0x5c0;
|
||||
/* 0x05C4 */ cXyz field_0x5c4;
|
||||
/* 0x05C4 */ cXyz eye;
|
||||
/* 0x05D0 */ cXyz field_0x5d0;
|
||||
/* 0x05DC */ s16 mTargetFacingAngle; ///< @brief Target facing angle for turning towards path point.
|
||||
/* 0x05DC */ s16 target_ya; ///< @brief Target facing angle for turning towards path point.
|
||||
/* 0x05DE */ s16 field_0x5de;
|
||||
/* 0x05E0 */ mDoExt_McaMorfSO* mpModelMorf; ///< @brief Pointer to model morph animator.
|
||||
/* 0x05E4 */ f32 mPlaySpeed; ///< @brief Animation playback speed.
|
||||
/* 0x05E8 */ int mAnmID; ///< @brief Current animation ID.
|
||||
/* 0x05EC */ Z2CreatureRide mZ2Ride; ///< @brief Z2 sound creature for ride effects.
|
||||
/* 0x05E0 */ mDoExt_McaMorfSO* anm_p; ///< @brief Pointer to model morph animator.
|
||||
/* 0x05E4 */ f32 anm_spd; ///< @brief Animation playback speed.
|
||||
/* 0x05E8 */ int anmID; ///< @brief Current animation ID.
|
||||
/* 0x05EC */ Z2CreatureRide sound; ///< @brief Z2 sound creature for ride effects.
|
||||
/* 0x0688 */ int field_0x688;
|
||||
/* 0x068C */ s8 mPathInitialized; ///< @brief Flag indicating if path has been initialized.
|
||||
/* 0x068E */ s16 field_0x68e;
|
||||
/* 0x0690 */ s16 mActionID; ///< @brief High-level action ID.
|
||||
/* 0x0692 */ s16 field_0x692;
|
||||
/* 0x0694 */ int mShadowKey; ///< @brief Shadow drawing key.
|
||||
/* 0x0698 */ s16 field_0x698[4];
|
||||
/* 0x06A0 */ s16 field_0x6a0;
|
||||
/* 0x068C */ s8 path_set; ///< @brief Flag indicating if path has been initialized.
|
||||
/* 0x068E */ s16 counter;
|
||||
/* 0x0690 */ s16 action; ///< @brief High-level action ID.
|
||||
/* 0x0692 */ s16 old_action;
|
||||
/* 0x0694 */ int shadow_key; ///< @brief Shadow drawing key.
|
||||
/* 0x0698 */ s16 timer[4];
|
||||
/* 0x06A0 */ s16 wait_timer;
|
||||
/* 0x06A2 */ u8 field_0x6a2[0x6ae - 0x6a2];
|
||||
/* 0x06AE */ csXyz field_0x6ae;
|
||||
/* 0x06B4 */ csXyz field_0x6b4;
|
||||
/* 0x06BA */ s16 field_0x6ba;
|
||||
/* 0x06AE */ csXyz rotation;
|
||||
/* 0x06B4 */ csXyz rotation_spd;
|
||||
/* 0x06BA */ s16 damage_timer;
|
||||
/* 0x06BC */ u8 field_0x6bc;
|
||||
/* 0x06BD */ s8 mPursuitFlag; ///< @brief Flag indicating pursuit mode.
|
||||
/* 0x06BE */ u16 mStatusFlags; ///< @brief Bitfield for various status flags.
|
||||
/* 0x06BD */ s8 pursuit_flg; ///< @brief Flag indicating pursuit mode.
|
||||
/* 0x06BE */ u16 status_flag; ///< @brief Bitfield for various status flags.
|
||||
/* 0x06C0 */ s8 field_0x6c0;
|
||||
/* 0x06C4 */ f32 field_0x6c4;
|
||||
/* 0x06C8 */ int mCurrentPathIndex; ///< @brief Current index in the path points array.
|
||||
/* 0x06CC */ int mPathDirection; ///< @brief Direction to iterate path points (+1 or -1).
|
||||
/* 0x06D0 */ s16 field_0x6d0;
|
||||
/* 0x06D2 */ s16 mTurnStep; ///< @brief Step value for turning angle adjustment.
|
||||
/* 0x06C4 */ f32 x_check;
|
||||
/* 0x06C8 */ int path_ten; ///< @brief Current index in the path points array.
|
||||
/* 0x06CC */ int dir; ///< @brief Direction to iterate path points (+1 or -1).
|
||||
/* 0x06D0 */ s16 range;
|
||||
/* 0x06D2 */ s16 turn_step; ///< @brief Step value for turning angle adjustment.
|
||||
/* 0x06D4 */ s16 field_0x6d4;
|
||||
/* 0x06D6 */ s16 field_0x6d6;
|
||||
/* 0x06D8 */ s16 field_0x6d8;
|
||||
@@ -142,24 +142,24 @@ public:
|
||||
/* 0x06DE */ csXyz field_0x6de;
|
||||
/* 0x06E4 */ s8 field_0x6e4;
|
||||
/* 0x06E5 */ u8 field_0x6e5[0x6ec - 0x6e5];
|
||||
/* 0x06EC */ csXyz field_0x6ec[0x1d];
|
||||
/* 0x079A */ s16 mBodyTiltAngle; ///< @brief Body tilt angle based on turning.
|
||||
/* 0x079C */ u8 field_0x79c;
|
||||
/* 0x079D */ s8 field_0x79d;
|
||||
/* 0x079E */ s8 mLapCount; ///< @brief Lap or progress count affecting path generation.
|
||||
/* 0x079F */ s8 mPathAdjustCounter; ///< @brief Counter for periodic path adjustment.
|
||||
/* 0x07A0 */ s16 field_0x7a0;
|
||||
/* 0x07A2 */ s8 field_0x7a2;
|
||||
/* 0x06EC */ csXyz field_0x6ec[29];
|
||||
/* 0x079A */ s16 body_angle; ///< @brief Body tilt angle based on turning.
|
||||
/* 0x079C */ u8 start_timer;
|
||||
/* 0x079D */ s8 leader;
|
||||
/* 0x079E */ s8 lap_num; ///< @brief Lap or progress count affecting path generation.
|
||||
/* 0x079F */ s8 path_adjust_count; ///< @brief Counter for periodic path adjustment.
|
||||
/* 0x07A0 */ s16 dodge_angle;
|
||||
/* 0x07A2 */ s8 kiba;
|
||||
/* 0x07A4 */ s16 field_0x7a4;
|
||||
/* 0x07A6 */ s8 field_0x7a6;
|
||||
/* 0x07A7 */ s8 field_0x7a7;
|
||||
/* 0x07A8 */ f32 field_0x7a8;
|
||||
/* 0x07AC */ dBgS_AcchCir field_0x7ac;
|
||||
/* 0x07EC */ dBgS_ObjAcch mAcch;
|
||||
/* 0x09C4 */ dCcD_Stts mStts;
|
||||
/* 0x0A00 */ dCcD_Sph field_0xa00[7];
|
||||
/* 0x1288 */ dCcD_Sph field_0x1288;
|
||||
/* 0x13C0 */ dCcU_AtInfo field_0x13c0;
|
||||
/* 0x07A8 */ f32 pass;
|
||||
/* 0x07AC */ dBgS_AcchCir AcchCir;
|
||||
/* 0x07EC */ dBgS_ObjAcch Bgc;
|
||||
/* 0x09C4 */ dCcD_Stts Stts;
|
||||
/* 0x0A00 */ dCcD_Sph cc_sph[7];
|
||||
/* 0x1288 */ dCcD_Sph at_sph;
|
||||
/* 0x13C0 */ dCcU_AtInfo at_info;
|
||||
/* 0x13E4 */ u8 field_0x13e4;
|
||||
/* 0x13E8 */ u32 field_0x13e8[2];
|
||||
/* 0x13F0 */ u32 field_0x13f0;
|
||||
@@ -173,53 +173,53 @@ public:
|
||||
/* 0x1414 */ u32 field_0x1414;
|
||||
/* 0x1418 */ u32 field_0x1418;
|
||||
/* 0x141C */ u32 field_0x141c;
|
||||
/* 0x1420 */ u32 field_0x1420[3];
|
||||
/* 0x142C */ u8 mMovementType; ///< @brief Type of movement (1 for normal, 2 for faster).
|
||||
/* 0x142D */ u8 mCollisionFlags; ///< @brief Flags for collision states.
|
||||
/* 0x142E */ u8 mLandingFlag; ///< @brief Flag for landing after jump.
|
||||
/* 0x142F */ s8 mSpeedCapTimer; ///< @brief Timer to cap speed at 30.
|
||||
/* 0x1430 */ s8 field_0x1430;
|
||||
/* 0x1432 */ s16 field_0x1432;
|
||||
/* 0x1434 */ fpc_ProcID field_0x1434; // Rider actor ID? ///< @brief Process ID of rider actor.
|
||||
/* 0x1438 */ cXyz field_0x1438[2];
|
||||
/* 0x1450 */ himo_s field_0x1450[2];
|
||||
/* 0x15D0 */ mDoExt_3DlineMat1_c field_0x15d0[2];
|
||||
/* 0x1648 */ mDoExt_3DlineMat1_c field_0x1648;
|
||||
/* 0x1684 */ f32 mAnimDuration; ///< @brief Duration or timer for animation.
|
||||
/* 0x1420 */ u32 w_eff_id[3];
|
||||
/* 0x142C */ u8 movement_type; ///< @brief Type of movement (1 for normal, 2 for faster).
|
||||
/* 0x142D */ u8 collision_flg; ///< @brief Flags for collision states.
|
||||
/* 0x142E */ u8 landing_flag; ///< @brief Flag for landing after jump.
|
||||
/* 0x142F */ s8 gake_flg;
|
||||
/* 0x1430 */ s8 demo_stop;
|
||||
/* 0x1432 */ s16 dash_timer;
|
||||
/* 0x1434 */ fpc_ProcID rd_id; // Rider actor ID? ///< @brief Process ID of rider actor.
|
||||
/* 0x1438 */ cXyz rein_hand_pos[2];
|
||||
/* 0x1450 */ himo_s himo[2];
|
||||
/* 0x15D0 */ mDoExt_3DlineMat1_c himo_mat[2];
|
||||
/* 0x1648 */ mDoExt_3DlineMat1_c himo_tex;
|
||||
/* 0x1684 */ f32 anm_time; ///< @brief Duration or timer for animation.
|
||||
/* 0x1688 */ s16 field_0x1688;
|
||||
/* 0x168A */ s16 field_0x168a;
|
||||
/* 0x168C */ f32 field_0x168c;
|
||||
/* 0x1690 */ f32 field_0x1690;
|
||||
/* 0x168C */ f32 rein_spd;
|
||||
/* 0x1690 */ f32 acceleration;
|
||||
/* 0x1694 */ u8 field_0x1694[0x169e - 0x1694];
|
||||
/* 0x169E */ s16 field_0x169e;
|
||||
/* 0x16A0 */ s16 field_0x16a0;
|
||||
/* 0x16A4 */ cXyz field_0x16a4;
|
||||
/* 0x16B0 */ cXyz field_0x16b0;
|
||||
/* 0x16BC */ cXyz field_0x16bc;
|
||||
/* 0x16C8 */ cXyz field_0x16c8;
|
||||
/* 0x16D4 */ cXyz field_0x16d4;
|
||||
/* 0x16E0 */ cXyz field_0x16e0;
|
||||
/* 0x16EC */ cXyz field_0x16ec;
|
||||
/* 0x16F8 */ cXyz field_0x16f8;
|
||||
/* 0x1704 */ s16 field_0x1704;
|
||||
/* 0x1708 */ f32 field_0x1708;
|
||||
/* 0x170C */ f32 field_0x170c;
|
||||
/* 0x1710 */ f32 field_0x1710;
|
||||
/* 0x1714 */ f32 field_0x1714;
|
||||
/* 0x169E */ s16 demo_mode;
|
||||
/* 0x16A0 */ s16 demo_timer;
|
||||
/* 0x16A4 */ cXyz demo_cam_eye;
|
||||
/* 0x16B0 */ cXyz demo_cam_eye_mae;
|
||||
/* 0x16BC */ cXyz demo_cam_ctr;
|
||||
/* 0x16C8 */ cXyz demo_cam_ctr_mae;
|
||||
/* 0x16D4 */ cXyz demo_cam_target;
|
||||
/* 0x16E0 */ cXyz demo_cam_way;
|
||||
/* 0x16EC */ cXyz demo_cam_eye_spd;
|
||||
/* 0x16F8 */ cXyz demo_cam_way_spd;
|
||||
/* 0x1704 */ s16 demo_cam_ya;
|
||||
/* 0x1708 */ f32 demo_cam_eye_z;
|
||||
/* 0x170C */ f32 demo_cam_eye_x;
|
||||
/* 0x1710 */ f32 demo_cam_morf;
|
||||
/* 0x1714 */ f32 demo_cam_zoom;
|
||||
/* 0x1718 */ f32 field_0x1718;
|
||||
/* 0x171C */ f32 field_0x171c;
|
||||
/* 0x1720 */ s8 field_0x1720;
|
||||
/* 0x1721 */ s8 field_0x1721;
|
||||
/* 0x1722 */ s8 field_0x1722;
|
||||
/* 0x1722 */ s8 saku_burn;
|
||||
/* 0x1723 */ u8 field_0x1723[0x17c4 - 0x1723];
|
||||
/* 0x17C4 */ u32 field_0x17c4;
|
||||
/* 0x17C4 */ u32 anm_se_eff;
|
||||
/* 0x17C8 */ u8 field_0x17c8[0x17D0 - 0x17C8];
|
||||
/* 0x17D0 */ u32 field_0x17d0[4];
|
||||
/* 0x17D0 */ u32 w_eff_id2[4];
|
||||
/* 0x17E0 */ u8 field_0x17e0;
|
||||
/* 0x17E1 */ u8 field_0x17e1;
|
||||
/* 0x17E2 */ s16 mWaitRollAngle; ///< @brief Roll angle during wait state.
|
||||
/* 0x17E2 */ s16 wait_roll_angle; ///< @brief Roll angle during wait state.
|
||||
/* 0x17E4 */ u8 field_0x17e4[0x17e8 - 0x17e4];
|
||||
/* 0x17E8 */ f32 mSpeedRate; ///< @brief Speed rate for riding calculations.
|
||||
/* 0x17E8 */ f32 ride_speed_max; ///< @brief Speed rate for riding calculations.
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(e_wb_class) == 0x17EC);
|
||||
|
||||
@@ -480,7 +480,7 @@ int daAlink_c::setSyncBoarPos() {
|
||||
|
||||
int daAlink_c::setSyncBoarRunPos() {
|
||||
e_wb_class* boar = (e_wb_class*)mRideAcKeep.getActor();
|
||||
fopAc_ac_c* boar_actor = &boar->mEnemy;
|
||||
fopAc_ac_c* boar_actor = &boar->enemy;
|
||||
|
||||
if (boar == NULL || boar->checkDownDamage()) {
|
||||
boarForceGetOff();
|
||||
|
||||
+748
-725
File diff suppressed because it is too large
Load Diff
@@ -531,7 +531,7 @@ static void e_rdb_end(e_rdb_class* i_this) {
|
||||
anm_init(i_this, e_rdb_class::BCK_RB_ED_DEMO_DOWN, 2.0f, 0, 1.0f);
|
||||
i_this->mMode = 1;
|
||||
if (actor != NULL) {
|
||||
actor->field_0x169e = 60;
|
||||
actor->demo_mode = 60;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -580,12 +580,12 @@ static void e_rdb_end(e_rdb_class* i_this) {
|
||||
break;
|
||||
|
||||
case 10:
|
||||
if ((((actor->mActionID == 102 && actor->mEnemy.speedF > 40.0f) &&
|
||||
if ((((actor->action == 102 && actor->enemy.speedF > 40.0f) &&
|
||||
player->current.pos.x > 1470.0f && player->current.pos.x < 2130.0f)) &&
|
||||
((player->current.pos.z < 200.0f) &&
|
||||
(player->shape_angle.y > 0x7000 || player->shape_angle.y < -0x7000)))
|
||||
{
|
||||
actor->field_0x169e = 80;
|
||||
actor->demo_mode = 80;
|
||||
i_this->mMode = 11;
|
||||
}
|
||||
// [[fallthrough]]
|
||||
|
||||
+2928
-2921
File diff suppressed because it is too large
Load Diff
@@ -918,7 +918,7 @@ BOOL daNpcTheB_c::doEvent() {
|
||||
rv = TRUE;
|
||||
} else {
|
||||
wb_p = (e_wb_class*)fopAcM_SearchByName(fpcNm_E_WB_e);
|
||||
if (wb_p->field_0x169e == 0x60 && wb_p->field_0x16a0 == 1) {
|
||||
if (wb_p->demo_mode == 0x60 && wb_p->demo_timer == 1) {
|
||||
mPersonalCombatAfterFlag = 1;
|
||||
EvCut_PersonalCombatAfter();
|
||||
rv = TRUE;
|
||||
|
||||
@@ -172,10 +172,10 @@ static void* s_obj_sub(void* i_actor, void* i_data) {
|
||||
void daObjCRVFENCE_c::NormalAction() {
|
||||
if (!field_0x5f4) {
|
||||
e_wb_class* wb_p = (e_wb_class*)fpcM_Search(s_obj_sub, this);
|
||||
if (wb_p != NULL && wb_p->mActionID == ACT_PL_RIDE2) {
|
||||
if (wb_p != NULL && wb_p->action == ACT_PL_RIDE2) {
|
||||
fopAcM_OffStatus(this, fopAcStts_CULL_e);
|
||||
fopAcM_seStartCurrent(this, Z2SE_OBJ_SAKU_BREAK, 0);
|
||||
cXyz sp5c(fopAcM_GetPosition(&wb_p->mEnemy));
|
||||
cXyz sp5c(fopAcM_GetPosition(&wb_p->enemy));
|
||||
Mtx mtx;
|
||||
mDoMtx_inverse(field_0x65c->getBaseTRMtx(), mtx);
|
||||
mDoMtx_stack_c::copy(mtx);
|
||||
|
||||
@@ -97,7 +97,7 @@ void daObjCRVLH_DW_c::Obj_Hit() {
|
||||
if (mCyl.ChkCoHit() != 0) {
|
||||
fopAc_ac_c* actor = mCyl.GetCoHitObj()->GetAc();
|
||||
if (fopAcM_GetName(dCc_GetAc(actor)) == fpcNm_E_WB_e &&
|
||||
((e_wb_class*)actor)->mActionID == ACT_PL_RIDE2)
|
||||
((e_wb_class*)actor)->action == ACT_PL_RIDE2)
|
||||
{
|
||||
Break();
|
||||
}
|
||||
|
||||
+20
-20
@@ -5,48 +5,48 @@
|
||||
#include "d/actor/d_a_tag_hstop.h"
|
||||
|
||||
BOOL e_wb_class::checkWait() {
|
||||
return mActionMode == 0x2A;
|
||||
return ride_mode == 0x2A;
|
||||
}
|
||||
|
||||
void e_wb_class::setPlayerRideNow() {
|
||||
mActionID = ACT_PL_RIDE_NOW;
|
||||
mActionMode = 0;
|
||||
mStatusFlags |= u16(3);
|
||||
action = ACT_PL_RIDE_NOW;
|
||||
ride_mode = 0;
|
||||
status_flag |= u16(3);
|
||||
}
|
||||
|
||||
void e_wb_class::setPlayerRide() {
|
||||
mActionID = ACT_PL_RIDE;
|
||||
mActionMode = 0;
|
||||
mStatusFlags |= u16(3);
|
||||
action = ACT_PL_RIDE;
|
||||
ride_mode = 0;
|
||||
status_flag |= u16(3);
|
||||
|
||||
mZ2Ride.setLinkRiding(true);
|
||||
sound.setLinkRiding(true);
|
||||
}
|
||||
|
||||
void e_wb_class::getOff() {
|
||||
if (!checkDownDamage() || mActionID == ACT_PL_RIDE_NOW) {
|
||||
mActionID = 0;
|
||||
if (!checkDownDamage() || action == ACT_PL_RIDE_NOW) {
|
||||
action = 0;
|
||||
} else {
|
||||
field_0x692 = 0;
|
||||
old_action = 0;
|
||||
}
|
||||
|
||||
mActionMode = 0;
|
||||
mStatusFlags &= u16(~3);
|
||||
mZ2Ride.setLinkRiding(false);
|
||||
ride_mode = 0;
|
||||
status_flag &= u16(~3);
|
||||
sound.setLinkRiding(false);
|
||||
}
|
||||
|
||||
BOOL e_wb_class::checkDownDamage() {
|
||||
return mActionID != ACT_PL_RIDE && mActionID != 0x66 && mActionID != ACT_S_DAMAGE;
|
||||
return action != ACT_PL_RIDE && action != ACT_PL_RIDE2 && action != ACT_S_DAMAGE;
|
||||
}
|
||||
|
||||
BOOL e_wb_class::checkNormalRideMode() const {
|
||||
return mActionID != 0x66 || mActionMode < 1;
|
||||
return action != ACT_PL_RIDE2 || ride_mode < 1;
|
||||
}
|
||||
|
||||
void e_wb_class::setRunRideMode() {
|
||||
if (mActionID == ACT_PL_RIDE) {
|
||||
mActionMode = 0;
|
||||
mActionID = ACT_S_DAMAGE;
|
||||
field_0x692 = 0x65;
|
||||
if (action == ACT_PL_RIDE) {
|
||||
ride_mode = 0;
|
||||
action = ACT_S_DAMAGE;
|
||||
old_action = ACT_PL_RIDE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user