mirror of https://github.com/zeldaret/tp.git
Compare commits
9 Commits
64674d065a
...
3351ee3c5e
Author | SHA1 | Date |
---|---|---|
![]() |
3351ee3c5e | |
![]() |
aeed67dcf5 | |
![]() |
351c8de752 | |
![]() |
7d6c8ef3e5 | |
![]() |
c5584cc6c0 | |
![]() |
295cc46d34 | |
![]() |
7d4ec88f56 | |
![]() |
ea1c649eb1 | |
![]() |
d528862dd0 |
|
@ -45,4 +45,5 @@
|
|||
"--function-arg-placeholders=0",
|
||||
"-header-insertion=never",
|
||||
],
|
||||
"clangd.detectExtensionConflicts": true,
|
||||
}
|
||||
|
|
|
@ -91,6 +91,6 @@ __vt__12dBgS_ObjAcch = .data:0x00000134; // type:object size:0x24 scope:global
|
|||
__vt__12J3DFrameCtrl = .data:0x00000158; // type:object size:0xC scope:global
|
||||
__vt__10daFr_HIO_c = .data:0x00000164; // type:object size:0xC scope:global
|
||||
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
|
||||
lbl_72_bss_8 = .bss:0x00000008; // type:object size:0x1 data:byte
|
||||
l_initHIO = .bss:0x00000008; // type:object size:0x1 data:byte
|
||||
@3644 = .bss:0x0000000C; // type:object size:0xC scope:local
|
||||
l_HIO = .bss:0x00000018; // type:object size:0x2C scope:global data:byte
|
||||
|
|
|
@ -27,4 +27,4 @@ lbl_22_data_10 = .data:0x00000010; // type:object size:0x10
|
|||
mode_proc$3725 = .data:0x00000038; // type:object size:0x18 scope:local
|
||||
Mthd_Table__Q210daObjTimer27@unnamed@d_a_obj_timer_cpp@ = .data:0x00000050; // type:object size:0x20 scope:global
|
||||
g_profile_Obj_Timer = .data:0x00000070; // type:object size:0x30 scope:global
|
||||
lbl_22_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte
|
||||
init$1527 = .bss:0x00000000; // type:object size:0x1 data:byte
|
||||
|
|
|
@ -67,6 +67,6 @@ lbl_73_data_134 = .data:0x00000134; // type:object size:0xC
|
|||
@92624 = .data:0x00000140; // type:object size:0xC scope:local
|
||||
__RTTI__10daFr_HIO_c = .data:0x0000014C; // type:object size:0x8 scope:global
|
||||
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
|
||||
lbl_73_bss_8 = .bss:0x00000008; // type:object size:0x1 data:byte
|
||||
l_initHIO = .bss:0x00000008; // type:object size:0x1 data:byte
|
||||
@92050 = .bss:0x0000000C; // type:object size:0xC scope:local
|
||||
l_HIO = .bss:0x00000018; // type:object size:0x2C scope:global data:byte
|
||||
|
|
|
@ -125,5 +125,5 @@ lbl_70_data_2F8 = .data:0x000002F8; // type:object size:0x24
|
|||
@117848 = .data:0x000004E0; // type:object size:0xC scope:local
|
||||
@117849 = .data:0x00000504; // type:object size:0x11 scope:local data:string
|
||||
@117850 = .data:0x0000052C; // type:object size:0xD scope:local data:string
|
||||
lbl_70_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte
|
||||
l_initHIO = .bss:0x00000000; // type:object size:0x1 data:byte
|
||||
l_HIO = .bss:0x00000004; // type:object size:0x2C scope:global data:byte
|
||||
|
|
14
configure.py
14
configure.py
|
@ -1499,7 +1499,7 @@ config.libs = [
|
|||
ActorRel(NonMatching, "d_a_obj_ito"),
|
||||
ActorRel(NonMatching, "d_a_obj_movebox"),
|
||||
ActorRel(NonMatching, "d_a_obj_swpush"),
|
||||
ActorRel(NonMatching, "d_a_obj_timer"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_timer"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_path_line"),
|
||||
ActorRel(NonMatching, "d_a_scene_exit"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_set_bgobj"),
|
||||
|
@ -1655,8 +1655,8 @@ config.libs = [
|
|||
ActorRel(NonMatching, "d_a_e_bi"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_e_bi_leaf"),
|
||||
ActorRel(NonMatching, "d_a_e_bs"),
|
||||
ActorRel(NonMatching, "d_a_e_bu"),
|
||||
ActorRel(NonMatching, "d_a_e_bug"),
|
||||
ActorRel(Equivalent, "d_a_e_bu"),
|
||||
ActorRel(Equivalent, "d_a_e_bug"), # weak func order
|
||||
ActorRel(Equivalent, "d_a_e_cr"), # weak func order
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_e_cr_egg"),
|
||||
ActorRel(NonMatching, "d_a_e_db"),
|
||||
|
@ -1683,7 +1683,7 @@ config.libs = [
|
|||
ActorRel(MatchingFor("GZ2E01"), "d_a_e_is"),
|
||||
ActorRel(Equivalent, "d_a_e_kg"),
|
||||
ActorRel(Equivalent, "d_a_e_kk"), # weak func order
|
||||
ActorRel(NonMatching, "d_a_e_kr"),
|
||||
ActorRel(Equivalent, "d_a_e_kr"), # weak func order
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_e_mb"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_e_md"),
|
||||
ActorRel(Equivalent, "d_a_e_mf"),
|
||||
|
@ -1921,7 +1921,7 @@ config.libs = [
|
|||
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_enemy_create"),
|
||||
ActorRel(NonMatching, "d_a_obj_fallobj"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_fan"),
|
||||
ActorRel(NonMatching, "d_a_obj_fchain"),
|
||||
ActorRel(Equivalent, "d_a_obj_fchain"), # weak func order
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_fireWood"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_fireWood2"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_firepillar"),
|
||||
|
@ -2073,7 +2073,7 @@ config.libs = [
|
|||
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_pillar"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_pleaf"),
|
||||
ActorRel(NonMatching, "d_a_obj_poCandle"),
|
||||
ActorRel(NonMatching, "d_a_obj_poFire"),
|
||||
ActorRel(Equivalent, "d_a_obj_poFire"),
|
||||
ActorRel(NonMatching, "d_a_obj_poTbox"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_prop"),
|
||||
ActorRel(NonMatching, "d_a_obj_pumpkin"),
|
||||
|
@ -2229,7 +2229,7 @@ config.libs = [
|
|||
ActorRel(MatchingFor("GZ2E01"), "d_a_tag_wara_howl"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_tag_watchge"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_tag_waterfall"),
|
||||
ActorRel(NonMatching, "d_a_tag_wljump"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_tag_wljump"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_tag_yami", extra_cflags=['-pragma "nosyminline off"']),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_talk"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_tboxSw"),
|
||||
|
|
|
@ -1,6 +1,11 @@
|
|||
#ifndef D_A_E_BU_H
|
||||
#define D_A_E_BU_H
|
||||
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/d_path.h"
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_cc_uty.h"
|
||||
|
||||
/**
|
||||
* @ingroup actors-enemies
|
||||
|
@ -10,16 +15,69 @@
|
|||
* @details
|
||||
*
|
||||
*/
|
||||
class e_bu_class : public fopEn_enemy_c {
|
||||
private:
|
||||
/* 0x5ac */ u8 field_0x5ac[0xaa4 - 0x5ac];
|
||||
class e_bu_class {
|
||||
public:
|
||||
/* 0x000 */ fopEn_enemy_c enemy;
|
||||
/* 0x5AC */ request_of_phase_process_class phase;
|
||||
/* 0x5B4 */ u8 prm0;
|
||||
/* 0x5B5 */ u8 prm1;
|
||||
/* 0x5B6 */ u8 type;
|
||||
/* 0x5B7 */ u8 pathNo;
|
||||
/* 0x5B8 */ s8 field_0x5b8;
|
||||
/* 0x5B9 */ s8 now_path_pntNo;
|
||||
/* 0x5BA */ s8 path_step;
|
||||
/* 0x5BC */ dPath* ppd;
|
||||
/* 0x5C0 */ mDoExt_McaMorfSO* modelMorf;
|
||||
/* 0x5C4 */ Z2CreatureEnemy sound;
|
||||
/* 0x668 */ int anm;
|
||||
/* 0x66C */ int anm_frame;
|
||||
/* 0x670 */ s16 lifetime;
|
||||
/* 0x672 */ s16 action;
|
||||
/* 0x674 */ s16 mode;
|
||||
/* 0x678 */ cXyz move_pos;
|
||||
/* 0x684 */ s16 angle_to_player;
|
||||
/* 0x688 */ f32 dist_to_player;
|
||||
/* 0x68C */ f32 pl_search_range;
|
||||
/* 0x690 */ f32 field_0x690;
|
||||
/* 0x694 */ f32 field_0x694;
|
||||
/* 0x698 */ f32 hit_speed;
|
||||
/* 0x69C */ s16 hit_rot;
|
||||
/* 0x69E */ csXyz field_0x69e;
|
||||
/* 0x6A4 */ s8 is_dead;
|
||||
/* 0x6A8 */ f32 field_0x6a8;
|
||||
/* 0x6AC */ s16 timers[4];
|
||||
/* 0x6B4 */ s16 invulnerabilityTimer;
|
||||
/* 0x6B6 */ s16 head_rot_y;
|
||||
/* 0x6B8 */ s16 field_0x6b8;
|
||||
/* 0x6BA */ s16 head_rot_x;
|
||||
/* 0x6BC */ s16 field_0x6bc;
|
||||
/* 0x6BE */ s16 jaw_rot;
|
||||
/* 0x6C0 */ cXyz field_0x6c0;
|
||||
/* 0x6CC */ dBgS_AcchCir acchcir;
|
||||
/* 0x70C */ dBgS_ObjAcch acch;
|
||||
/* 0x8E4 */ dCcD_Stts ccStts;
|
||||
/* 0x920 */ dCcD_Sph ccSph;
|
||||
/* 0xA58 */ dCcU_AtInfo atInfo;
|
||||
/* 0xA7C */ u32 field_0xa7c;
|
||||
/* 0xA80 */ u32 field_0xa80;
|
||||
/* 0xA84 */ u32 mtrl_emitter_id[4];
|
||||
/* 0xA94 */ u8 field_0xA94[0xAA0 - 0xA94];
|
||||
/* 0xAA0 */ u8 HIOInit;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(e_bu_class) == 0xaa4);
|
||||
|
||||
class daE_BU_HIO_c {
|
||||
public:
|
||||
/* 806911AC */ daE_BU_HIO_c();
|
||||
/* 806941D4 */ ~daE_BU_HIO_c();
|
||||
/* 806941D4 */ virtual ~daE_BU_HIO_c() {}
|
||||
|
||||
/* 0x04 */ s8 id;
|
||||
/* 0x08 */ f32 base_size;
|
||||
/* 0x0C */ f32 fly_speed;
|
||||
/* 0x10 */ f32 attack_range;
|
||||
/* 0x14 */ f32 attack_speed;
|
||||
/* 0x18 */ f32 dash_speed;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -11,22 +11,63 @@
|
|||
* @details
|
||||
*
|
||||
*/
|
||||
class e_bug_class : public fopEn_enemy_c {
|
||||
private:
|
||||
/* 0x5ac */ u8 field_0x5ac[0x7db0 - 0x5ac];
|
||||
|
||||
struct bug_s {
|
||||
/* 0x00 */ J3DModel* field_0x0;
|
||||
/* 0x04 */ J3DModel* field_0x4;
|
||||
/* 0x08 */ int field_0x8;
|
||||
/* 0x0C */ cXyz field_0xc;
|
||||
/* 0x18 */ cXyz field_0x18;
|
||||
/* 0x24 */ f32 field_0x24;
|
||||
/* 0x28 */ f32 field_0x28;
|
||||
/* 0x2C */ f32 field_0x2c;
|
||||
/* 0x30 */ cXyz field_0x30;
|
||||
/* 0x3C */ csXyz field_0x3c;
|
||||
/* 0x42 */ s16 field_0x42;
|
||||
/* 0x44 */ s16 field_0x44;
|
||||
/* 0x46 */ s16 field_0x46;
|
||||
/* 0x48 */ s16 field_0x48;
|
||||
/* 0x4A */ s16 field_0x4a;
|
||||
/* 0x4C */ s16 field_0x4c;
|
||||
/* 0x4E */ s16 field_0x4e;
|
||||
/* 0x50 */ s8 field_0x50;
|
||||
/* 0x51 */ s8 field_0x51;
|
||||
/* 0x52 */ s8 field_0x52;
|
||||
/* 0x53 */ u8 field_0x53;
|
||||
/* 0x54 */ u8 field_0x54[3];
|
||||
/* 0x58 */ Z2SoundObjSimple mSound;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(bug_s) == 0x78);
|
||||
class e_bug_class {
|
||||
public:
|
||||
/* 0x0000 */ fopAc_ac_c actor;
|
||||
/* 0x0568 */ request_of_phase_process_class mPhase;
|
||||
/* 0x0570 */ u8 field_0x570;
|
||||
/* 0x0574 */ int bitSw;
|
||||
/* 0x0578 */ u32 field_0x578;
|
||||
/* 0x057C */ f32 field_0x57c;
|
||||
/* 0x0580 */ s16 field_0x580;
|
||||
/* 0x0582 */ u8 field_0x582[0x588 - 0x582];
|
||||
/* 0x0588 */ bug_s Bug_s[256];
|
||||
/* 0x7D88 */ int bug_num;
|
||||
/* 0x7D8C */ Z2SoundObjBeeGroup mSound;
|
||||
/* 0x7DAC */ u8 field_0x7dac;
|
||||
/* 0x7DAD */ u8 field_0x7dad;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(e_bug_class) == 0x7db0);
|
||||
|
||||
class daE_Bug_HIO_c {
|
||||
class daE_Bug_HIO_c: public JORReflexible {
|
||||
public:
|
||||
/* 80694B8C */ daE_Bug_HIO_c();
|
||||
/* 80697BEC */ ~daE_Bug_HIO_c();
|
||||
};
|
||||
/* 80697BEC */ virtual ~daE_Bug_HIO_c() {}
|
||||
|
||||
struct bug_s {
|
||||
/* 80697B4C */ ~bug_s();
|
||||
/* 80697BB8 */ bug_s();
|
||||
};
|
||||
void genMessage(JORMContext*);
|
||||
|
||||
/* 0x4 */ s8 field_0x4;
|
||||
/* 0x8 */ f32 field_0x8;
|
||||
/* 0xC */ f32 field_0xc;
|
||||
};
|
||||
|
||||
#endif /* D_A_E_BUG_H */
|
||||
|
|
|
@ -1,26 +1,197 @@
|
|||
#ifndef D_A_E_KR_H
|
||||
#define D_A_E_KR_H
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_cc_uty.h"
|
||||
#include "d/d_path.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
/**
|
||||
* @ingroup actors-enemies
|
||||
* @class e_kr_class
|
||||
* @brief Kargorok
|
||||
*
|
||||
* @details
|
||||
*
|
||||
*
|
||||
* @details
|
||||
*
|
||||
*/
|
||||
class e_kr_class : public fopEn_enemy_c {
|
||||
class e_kr_class {
|
||||
public:
|
||||
/* 80705004 */ e_kr_class();
|
||||
private:
|
||||
/* 0x5ac */ u8 field_0x5ac[0xf08 - 0x5ac];
|
||||
|
||||
/* 0x000 */ fopEn_enemy_c enemy;
|
||||
/* 0x5AC */ request_of_phase_process_class mPhase;
|
||||
/* 0x5B4 */ mDoExt_McaMorfSO* mpMorf;
|
||||
/* 0x5B8 */ s32 field_0x5b8;
|
||||
/* 0x5BC */ s32 field_0x5bc;
|
||||
/* 0x5C0 */ Z2CreatureEnemy mSound;
|
||||
/* 0x664 */ u8 field_0x664;
|
||||
/* 0x665 */ u8 field_0x665;
|
||||
/* 0x666 */ u8 field_0x666;
|
||||
/* 0x666 */ u8 field_0x667;
|
||||
/* 0x668 */ s16 mCurAction;
|
||||
/* 0x66A */ u8 field_0x66a;
|
||||
/* 0x66B */ u8 field_0x66b;
|
||||
/* 0x66C */ fpc_ProcID mBombId;
|
||||
/* 0x670 */ s8 field_0x670;
|
||||
/* 0x672 */ s16 field_0x672;
|
||||
/* 0x674 */ u8 field_0x674;
|
||||
/* 0x678 */ cXyz field_0x678;
|
||||
/* 0x684 */ f32 field_0x684;
|
||||
/* 0x688 */ f32 field_0x688;
|
||||
/* 0x68C */ f32 field_0x68c;
|
||||
/* 0x690 */ f32 field_0x690;
|
||||
/* 0x694 */ f32 field_0x694;
|
||||
/* 0x698 */ u8 field_0x698[0x69c - 0x698];
|
||||
/* 0x69C */ s16 field_0x69c[6];
|
||||
/* 0x6A8 */ s16 field_0x6a8;
|
||||
/* 0x6AA */ s16 field_0x6aa;
|
||||
/* 0x6AC */ u8 field_0x6ac[0x6b4 - 0x6ac];
|
||||
/* 0x6B4 */ f32 field_0x6b4;
|
||||
/* 0x6B8 */ f32 field_0x6b8;
|
||||
/* 0x6BC */ s16 field_0x6bc;
|
||||
/* 0x6BE */ u8 field_0x6be[0x6c0 - 0x6be];
|
||||
/* 0x6C0 */ s16 field_0x6c0;
|
||||
/* 0x6C2 */ s16 field_0x6c2;
|
||||
/* 0x6C4 */ f32 field_0x6c4;
|
||||
/* 0x6C8 */ s16 field_0x6c8;
|
||||
/* 0x6CA */ s16 field_0x6ca;
|
||||
/* 0x6CC */ s16 field_0x6cc;
|
||||
/* 0x6D0 */ f32 field_0x6d0;
|
||||
/* 0x6D4 */ s16 field_0x6d4;
|
||||
/* 0x6D6 */ s16 field_0x6d6;
|
||||
/* 0x6D8 */ s16 field_0x6d8;
|
||||
/* 0x6DA */ u8 field_0x6da[0x6de - 0x6da];
|
||||
/* 0x6DE */ s16 field_0x6de;
|
||||
/* 0x6E0 */ u8 field_0x6e0[0x6e1 - 0x6e0];
|
||||
/* 0x6E1 */ s8 field_0x6e1;
|
||||
/* 0x6E2 */ s8 field_0x6e2;
|
||||
/* 0x6E3 */ s8 field_0x6e3;
|
||||
/* 0x6E4 */ dPath* field_0x6e4;
|
||||
/* 0x6E8 */ u8 field_0x6e8[0x6ea - 0x6e8];
|
||||
/* 0x6EC */ csXyz field_0x6ea;
|
||||
/* 0x6F2 */ csXyz field_0x6f0;
|
||||
/* 0x6EA */ s16 field_0x6f6;
|
||||
/* 0x6F8 */ cXyz field_0x6f8;
|
||||
/* 0x704 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x744 */ dBgS_ObjAcch mAcch;
|
||||
/* 0x91C */ bool field_0x91c;
|
||||
/* 0x920 */ f32 field_0x920;
|
||||
/* 0x924 */ dCcD_Stts mStts;
|
||||
/* 0x960 */ dCcD_Sph mSphere1;
|
||||
/* 0xA98 */ dCcD_Sph mSphere2;
|
||||
/* 0xBD0 */ dCcD_Sph mSphere3;
|
||||
/* 0xD08 */ dCcD_Sph mSphere4;
|
||||
/* 0xE40 */ dCcU_AtInfo mAtInfo;
|
||||
/* 0xE64 */ cXyz field_0xe64[2];
|
||||
/* 0xE7C */ s16 field_0xe7c;
|
||||
/* 0xE7E */ s16 field_0xe7e;
|
||||
/* 0xE80 */ s16 field_0xe80;
|
||||
/* 0xE82 */ s16 field_0xe82;
|
||||
/* 0xE84 */ s16 field_0xe84;
|
||||
/* 0xE88 */ JAISoundID field_0xe88;
|
||||
/* 0xE8C */ u8 field_0xe8c;
|
||||
/* 0xE8E */ s16 field_0xe8e[11];
|
||||
/* 0xEA4 */ u8 field_0xea4[0xea8 - 0xea4];
|
||||
/* 0xEA8 */ f32 field_0xea8;
|
||||
/* 0xEAC */ s16 field_0xeac;
|
||||
/* 0xEAE */ s16 field_0xeae;
|
||||
/* 0xEB0 */ s16 field_0xeb0;
|
||||
/* 0xEB2 */ s16 field_0xeb2;
|
||||
/* 0xEB4 */ s16 field_0xeb4;
|
||||
/* 0xEB6 */ s16 field_0xeb6;
|
||||
/* 0xEB8 */ f32 field_0xeb8;
|
||||
/* 0xEBC */ s16 field_0xebc;
|
||||
/* 0xEBE */ s16 field_0xebe;
|
||||
/* 0xEC0 */ s8 field_0xec0;
|
||||
/* 0xEC4 */ u32 field_0xec4[5];
|
||||
/* 0xED8 */ u32 field_0xed8[5];
|
||||
/* 0xEDC */ u8 field_0xedc[0xef8 - 0xeec];
|
||||
/* 0xEF8 */ f32 field_0xef8;
|
||||
/* 0xEFC */ s8 field_0xefc;
|
||||
/* 0xF00 */ s32 field_0xf00;
|
||||
/* 0xF04 */ s32 field_0xf04;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(e_kr_class) == 0xf08);
|
||||
|
||||
class e_krHIO_c {
|
||||
/* 80705574 */ ~e_krHIO_c();
|
||||
class e_krHIO_c : public fOpAcm_HIO_entry_c {
|
||||
public:
|
||||
e_krHIO_c() {
|
||||
field_0x4 = 0;
|
||||
field_0x5 = 0;
|
||||
field_0x8 = 20.0f;
|
||||
field_0xc = 2500.0f;
|
||||
field_0x14 = 1.0f;
|
||||
field_0x18 = 2000;
|
||||
field_0x1a = 2500;
|
||||
field_0x1c = 2000;
|
||||
field_0x1e = 2500;
|
||||
field_0x20 = 0.35f;
|
||||
field_0x24 = 0.5f;
|
||||
field_0x28 = 1.0f;
|
||||
field_0x2c = 1.0f;
|
||||
field_0x30 = 1.0f;
|
||||
field_0x38 = 1.0f;
|
||||
field_0x3c = 1.0f;
|
||||
field_0x40 = 30;
|
||||
field_0x44 = 1.0f;
|
||||
field_0x48 = 1.0f;
|
||||
field_0x4c = 1.5f;
|
||||
field_0x50 = 1100;
|
||||
field_0x54 = 3.5f;
|
||||
field_0x34 = 60;
|
||||
field_0x58 = 60.0f;
|
||||
field_0x5c = 40.0f;
|
||||
field_0x60 = 1;
|
||||
field_0x64 = 8000.0f;
|
||||
field_0x70 = 3000.0f;
|
||||
field_0x6c = 20000;
|
||||
field_0x68 = 1500.0f;
|
||||
field_0x74 = 2000.0f;
|
||||
field_0x6e = 20000;
|
||||
field_0x78 = -40.0f;
|
||||
}
|
||||
/* 80705574 */ virtual ~e_krHIO_c() {}
|
||||
void genMessage(JORMContext*);
|
||||
|
||||
/* 0x04 */ u8 field_0x4;
|
||||
/* 0x05 */ u8 field_0x5;
|
||||
/* 0x06 */ u8 field_0x6;
|
||||
/* 0x08 */ f32 field_0x8;
|
||||
/* 0x0C */ f32 field_0xc;
|
||||
/* 0x10 */ u8 field_0x10[0x14 - 0x10];
|
||||
/* 0x14 */ f32 field_0x14;
|
||||
/* 0x18 */ s16 field_0x18;
|
||||
/* 0x1A */ s16 field_0x1a;
|
||||
/* 0x1C */ s16 field_0x1c;
|
||||
/* 0x1E */ s16 field_0x1e;
|
||||
/* 0x20 */ f32 field_0x20;
|
||||
/* 0x24 */ f32 field_0x24;
|
||||
/* 0x28 */ f32 field_0x28;
|
||||
/* 0x2C */ f32 field_0x2c;
|
||||
/* 0x30 */ f32 field_0x30;
|
||||
/* 0x34 */ s16 field_0x34;
|
||||
/* 0x38 */ f32 field_0x38;
|
||||
/* 0x3C */ f32 field_0x3c;
|
||||
/* 0x40 */ s16 field_0x40;
|
||||
/* 0x44 */ f32 field_0x44;
|
||||
/* 0x48 */ f32 field_0x48;
|
||||
/* 0x4C */ f32 field_0x4c;
|
||||
/* 0x50 */ s16 field_0x50;
|
||||
/* 0x54 */ f32 field_0x54;
|
||||
/* 0x58 */ f32 field_0x58;
|
||||
/* 0x5C */ f32 field_0x5c;
|
||||
/* 0x60 */ s16 field_0x60;
|
||||
/* 0x64 */ f32 field_0x64;
|
||||
/* 0x68 */ f32 field_0x68;
|
||||
/* 0x6C */ s16 field_0x6c;
|
||||
/* 0x6E */ s16 field_0x6e;
|
||||
/* 0x70 */ f32 field_0x70;
|
||||
/* 0x74 */ f32 field_0x74;
|
||||
/* 0x78 */ f32 field_0x78;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(e_krHIO_c) == 0x7c);
|
||||
|
||||
|
||||
#endif /* D_A_E_KR_H */
|
||||
|
|
|
@ -1,29 +1,36 @@
|
|||
#ifndef D_A_E_ZH_H
|
||||
#define D_A_E_ZH_H
|
||||
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_cc_uty.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
/**
|
||||
* @ingroup actors-enemies
|
||||
* @class daE_ZH_c
|
||||
* @brief Zant Head
|
||||
* @brief Ball Master
|
||||
*
|
||||
* @details
|
||||
*
|
||||
*/
|
||||
|
||||
class daObjCarry_c;
|
||||
|
||||
class daE_ZH_c : public fopEn_enemy_c {
|
||||
/* 8082907C */ void draw();
|
||||
public:
|
||||
/* 8082907C */ int draw();
|
||||
/* 808293A8 */ void setBck(int, u8, f32, f32);
|
||||
/* 80829454 */ void setActionMode(int, int);
|
||||
/* 80829570 */ void startDemoCheck();
|
||||
/* 80829570 */ bool startDemoCheck();
|
||||
/* 80829658 */ void mBallBGCheck();
|
||||
/* 808298BC */ void mGateOpen();
|
||||
/* 808299F8 */ void mColorSet(bool, f32, f32);
|
||||
/* 80829AD8 */ void mReturnLineMove();
|
||||
/* 80829E44 */ void mBallBgLineCheck();
|
||||
/* 8082A01C */ void mSearchMove(u8);
|
||||
/* 808299F8 */ bool mColorSet(bool, f32, f32);
|
||||
/* 80829AD8 */ bool mReturnLineMove();
|
||||
/* 80829E44 */ bool mBallBgLineCheck();
|
||||
/* 8082A01C */ bool mSearchMove(u8);
|
||||
/* 8082A390 */ void mStartParticleSet();
|
||||
/* 8082A4C8 */ void mCutTypeCheck();
|
||||
/* 8082A4C8 */ bool mCutTypeCheck();
|
||||
/* 8082A534 */ void damage_check();
|
||||
/* 8082A88C */ void executeStartDemo();
|
||||
/* 8082ABDC */ void executeWait();
|
||||
|
@ -42,22 +49,83 @@ class daE_ZH_c : public fopEn_enemy_c {
|
|||
/* 8082DB84 */ void action();
|
||||
/* 8082DE18 */ void mtx_set();
|
||||
/* 8082DF44 */ void cc_set();
|
||||
/* 8082E2FC */ void execute();
|
||||
/* 8082E3E8 */ void _delete();
|
||||
/* 8082E4E4 */ void CreateHeap();
|
||||
/* 8082E730 */ void create();
|
||||
/* 8082ECEC */ daE_ZH_c();
|
||||
|
||||
private:
|
||||
/* 0x5ac */ u8 field_0x5ac[0xe08 - 0x5ac];
|
||||
/* 8082E2FC */ int execute();
|
||||
/* 8082E3E8 */ int _delete();
|
||||
/* 8082E4E4 */ int CreateHeap();
|
||||
/* 8082E730 */ cPhs__Step create();
|
||||
/* 8082ECEC */ daE_ZH_c() {}
|
||||
|
||||
/* 0x5AC */ request_of_phase_process_class mPhase;
|
||||
/* 0x5B4 */ mDoExt_McaMorfSO* mpModelMorf;
|
||||
/* 0x5B8 */ J3DModel* mEntranceModel;
|
||||
/* 0x5BC */ mDoExt_btkAnm* mpBtkAnm;
|
||||
/* 0x5C0 */ Z2CreatureEnemy mSound;
|
||||
/* 0x664 */ daObjCarry_c* mS_Ball;
|
||||
/* 0x668 */ cXyz field_0x668;
|
||||
/* 0x674 */ u8 field_0x674[0x680 - 0x674];
|
||||
/* 0x680 */ cXyz field_0x680;
|
||||
/* 0x68C */ cXyz field_0x68c;
|
||||
/* 0x698 */ cXyz mRetrunStartLine;
|
||||
/* 0x6A4 */ cXyz mRetrunEndLine;
|
||||
/* 0x6B0 */ cXyz mBallHosei;
|
||||
/* 0x6BC */ cXyz field_0x6bc;
|
||||
/* 0x6C8 */ cXyz field_0x6c8[3];
|
||||
/* 0x6EC */ int field_0x6ec[3];
|
||||
/* 0x6F8 */ cXyz field_0x6f8[8];
|
||||
/* 0x758 */ u8 field_0x758[8];
|
||||
/* 0x760 */ f32 field_0x760;
|
||||
/* 0x764 */ f32 field_0x764[3];
|
||||
/* 0x770 */ f32 pmRoofPos;
|
||||
/* 0x774 */ f32 field_0x774;
|
||||
/* 0x778 */ f32 field_0x778;
|
||||
/* 0x77C */ f32 field_0x77c;
|
||||
/* 0x780 */ int mActionMode;
|
||||
/* 0x784 */ int mMoveMode;
|
||||
/* 0x788 */ u32 mShadowKey;
|
||||
/* 0x78C */ int field_0x78c;
|
||||
/* 0x790 */ int mAnm;
|
||||
/* 0x794 */ int field_0x794[3];
|
||||
/* 0x7A0 */ int field_0x7a0;
|
||||
/* 0x7A4 */ int field_0x7a4;
|
||||
/* 0x7A8 */ u8 field_0x7a8;
|
||||
/* 0x7A9 */ u8 bitSw;
|
||||
/* 0x7AA */ u8 bitSwEnd;
|
||||
/* 0x7AB */ u8 arg0;
|
||||
/* 0x7AC */ u8 field_0x7ac;
|
||||
/* 0x7AD */ u8 field_0x7ad;
|
||||
/* 0x7AE */ u8 field_0x7ae;
|
||||
/* 0x7AF */ u8 field_0x7af;
|
||||
/* 0x7B0 */ s16 mRollAngle;
|
||||
/* 0x7B2 */ s16 field_0x7b2;
|
||||
/* 0x7B4 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x7F4 */ dBgS_ObjAcch mBgc;
|
||||
/* 0x9CC */ dCcD_Stts mStts;
|
||||
/* 0xA08 */ dCcD_Sph field_0xa08;
|
||||
/* 0xB40 */ dCcD_Cyl field_0xb40;
|
||||
/* 0xC7C */ dCcD_Cyl field_0xc7c;
|
||||
/* 0xDB8 */ dCcU_AtInfo mAtInfo;
|
||||
/* 0xDDC */ u32 field_0xddc[3];
|
||||
/* 0xDE8 */ u32 field_0xde8;
|
||||
/* 0xDEC */ cXyz mDemoCamEye;
|
||||
/* 0xDF8 */ cXyz mDemoCamCenter;
|
||||
/* 0xE04 */ u8 field_0xe04;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daE_ZH_c) == 0xe08);
|
||||
|
||||
class daE_ZH_HIO_c {
|
||||
class daE_ZH_HIO_c: public JORReflexible {
|
||||
public:
|
||||
/* 8082902C */ daE_ZH_HIO_c();
|
||||
/* 8082F160 */ ~daE_ZH_HIO_c();
|
||||
/* 8082F160 */ virtual ~daE_ZH_HIO_c() {}
|
||||
|
||||
// ボールマスター (Ball Master)
|
||||
/* 0x04 */ s8 field_0x4;
|
||||
/* 0x08 */ f32 model_size; // モデルサイズ (Model Size)
|
||||
/* 0x0C */ f32 ascent_rate; // 上昇速度(落下後)(Rate of ascent (after falling))
|
||||
/* 0x10 */ f32 wandering_area; // うろうろ範囲 (Wandering Area)
|
||||
/* 0x14 */ s16 wait_time; // 玉取られ後移動開始待ち時間 (Waiting time after the stone is taken and movement begins)
|
||||
/* 0x16 */ s16 piyori_time; // ピヨリ時間 (Piyori Time)
|
||||
/* 0x18 */ u8 dungeon_bit_check; // ダンジョンビットチェックON/OFF (Dungeon Bit Check ON/OFF)
|
||||
};
|
||||
|
||||
|
||||
#endif /* D_A_E_ZH_H */
|
||||
|
|
|
@ -16,12 +16,11 @@
|
|||
* @details
|
||||
*
|
||||
*/
|
||||
class fr_class : public fopAc_ac_c {
|
||||
class fr_class : public fopEn_enemy_c {
|
||||
public:
|
||||
/* 0x568 */ u8 field_0x568[0x5ac - 0x568];
|
||||
/* 0x5AC */ request_of_phase_process_class mPhase;
|
||||
/* 0x5B4 */ u8 field_0x5b4;
|
||||
/* 0x5B5 */ u8 field_0x5b5[0x5c4 - 0x5b5];
|
||||
/* 0x5B5 */ cXyz field_0x5b8;
|
||||
/* 0x5C4 */ mDoExt_McaMorf* mMorf;
|
||||
/* 0x5C8 */ mDoExt_btkAnm* mBtkAnm;
|
||||
/* 0x5CC */ u8 field_0x5cc;
|
||||
|
@ -77,6 +76,7 @@ public:
|
|||
/* 0x20 */ f32 field_0x20;
|
||||
/* 0x24 */ f32 field_0x24;
|
||||
/* 0x28 */ f32 field_0x28;
|
||||
/* 0x2C */ f32 field_0x2c;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -76,7 +76,7 @@ public:
|
|||
/* 804CAEE8 */ int execute();
|
||||
/* 804CBC60 */ int draw();
|
||||
|
||||
virtual BOOL checkExplodeNow() { return field_0xb51 != 0; }
|
||||
virtual u8 checkExplodeNow() { return field_0xb51 != 0; }
|
||||
virtual void deleteBombAndEffect() {
|
||||
fopAcM_delete(this);
|
||||
onStateFlg0(FLG0_UNK_40);
|
||||
|
|
|
@ -277,6 +277,10 @@ public:
|
|||
void offDraw() { mDraw = 1; }
|
||||
void onDraw() { mDraw = 0; }
|
||||
bool isDraw() { return mDraw == false; }
|
||||
void onCarryHookOK() { mCarryHookOK = 1; }
|
||||
void offCarryHookOK() { mCarryHookOK = 0; }
|
||||
BOOL checkRecover() { return mRecover; }
|
||||
void reset() { mReset = 1; }
|
||||
|
||||
void setPower(fopAc_ac_c* cannon_actor, f32 my_0xde0, f32 my_0xde4, s16 my_0xde8) {
|
||||
mpCannonActor = cannon_actor;
|
||||
|
|
|
@ -33,10 +33,18 @@ public:
|
|||
/* 80CB242C */ void Delete();
|
||||
/* 80CB2610 */ ~daPoCandle_c();
|
||||
|
||||
/* 80CB3E3C */ void getFirePos(); // implemented in d_a_obj_poFire.cpp
|
||||
/* 80CB3E3C */ cXyz getFirePos(); // implemented in d_a_obj_poFire.cpp
|
||||
u8 getIDNum() {return mIDNum;}
|
||||
void setFireFlag(u8 flag) { field_0x5D2 = flag; }
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0x614 - 0x568];
|
||||
/* 0x568 */ u8 field_0x568[0x5C4 - 0x568];
|
||||
/* 0x5C4 */ cXyz mFirePos;
|
||||
/* 0x5D0 */ u8 field_0x5D0[0x5D2 - 0x5D0];
|
||||
/* 0x5D2 */ u8 field_0x5D2;
|
||||
/* 0x5D3 */ u8 field_0x5D3[0x5D5 - 0x5D3];
|
||||
/* 0x5D5 */ u8 mIDNum;
|
||||
/* 0x5DB */ u8 field_0x5DB[0x614 - 0x5D6];
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daPoCandle_c) == 0x614);
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
#ifndef D_A_OBJ_POFIRE_H
|
||||
#define D_A_OBJ_POFIRE_H
|
||||
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/actor/d_a_obj_poCandle.h"
|
||||
#include "d/actor/d_a_player.h"
|
||||
#include "d/actor/d_a_tag_poFire.h"
|
||||
#include "d/d_event_lib.h"
|
||||
|
||||
|
||||
/**
|
||||
* @ingroup actors-objects
|
||||
|
@ -12,15 +15,32 @@
|
|||
* @details
|
||||
*
|
||||
*/
|
||||
class daPoFire_c : public fopAc_ac_c {
|
||||
class daPoFire_c : public fopAc_ac_c,
|
||||
public request_of_phase_process_class,
|
||||
public dEvLib_callback_c {
|
||||
public:
|
||||
typedef void (daPoFire_c::*modeProc)();
|
||||
daPoFire_c() : dEvLib_callback_c(this) {}
|
||||
|
||||
enum Mode {
|
||||
MODE_INIT_MOVE = 0,
|
||||
MODE_WAIT = 1,
|
||||
MODE_WAIT_SET_EFFECT = 2,
|
||||
MODE_MOVE_OUT = 3,
|
||||
MODE_MOVE = 4,
|
||||
MODE_NO_MOVE = 5,
|
||||
MODE_MOVE_WAIT = 6,
|
||||
MODE_ON_FIRE = 7,
|
||||
MODE_FIRE_END = 8,
|
||||
};
|
||||
|
||||
/* 80CB2A0C */ void setBaseMtx();
|
||||
/* 80CB2A74 */ void create();
|
||||
/* 80CB2BB8 */ void Execute();
|
||||
/* 80CB2A74 */ int create();
|
||||
/* 80CB2BB8 */ int Execute();
|
||||
/* 80CB2BFC */ void procMain();
|
||||
/* 80CB2D84 */ void setFire();
|
||||
/* 80CB2F68 */ void searchCandle(void*, void*);
|
||||
/* 80CB2FD4 */ void searchFireTag(void*, void*);
|
||||
/* 80CB2F68 */ static void* searchCandle(void*, void*);
|
||||
/* 80CB2FD4 */ static void* searchFireTag(void*, void*);
|
||||
/* 80CB3024 */ void init_modeInitMove();
|
||||
/* 80CB30FC */ void modeInitMove();
|
||||
/* 80CB31FC */ void modeWait();
|
||||
|
@ -37,26 +57,67 @@ public:
|
|||
/* 80CB39E0 */ void modeOnFire();
|
||||
/* 80CB3ADC */ void init_modeFireEnd();
|
||||
/* 80CB3AE8 */ void modeFireEnd();
|
||||
/* 80CB3B70 */ void eventStart();
|
||||
/* 80CB3BE0 */ void eventRun();
|
||||
/* 80CB3C64 */ bool eventEnd();
|
||||
/* 80CB3C6C */ bool Draw();
|
||||
/* 80CB3C74 */ void Delete();
|
||||
/* 80CB3E58 */ ~daPoFire_c();
|
||||
/* 80CB3C6C */ int Draw();
|
||||
/* 80CB3C74 */ int Delete();
|
||||
|
||||
/* 80CB3E58 */ virtual ~daPoFire_c() {}
|
||||
/* 80CB3B70 */ virtual bool eventStart();
|
||||
/* 80CB3BE0 */ virtual bool eventRun();
|
||||
/* 80CB3C64 */ virtual bool eventEnd();
|
||||
|
||||
u8 getMoveEnd() { return mMoveEnd; }
|
||||
u32 getID() { return fopAcM_GetParamBit(this, 0, 8); }
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0x594 - 0x568];
|
||||
/* 0x584 */ request_of_phase_process_class mPhase;
|
||||
/* 0x58C */ int mStaffID;
|
||||
/* 0x590 */ s16 unk590;
|
||||
/* 0x592 */ u8 mMode;
|
||||
/* 0x593 */ u8 mActorID; // Identifies each of the 4 Poe flames
|
||||
/* 0x594 */ bool mMoveEnd;
|
||||
/* 0x595 */ u8 field_0x595[0x618 - 0x595];
|
||||
/* 0x598 */ u32 mParticleKeys[2];
|
||||
/* 0x5A0 */ cXyz unk5A0;
|
||||
/* 0x5AC */ cXyz unk5AC;
|
||||
/* 0x5B4 */ cXyz unk5B4;
|
||||
/* 0x5C4 */ u8 unk5C4;
|
||||
/* 0x5C5 */ u8 mWaitTimer;
|
||||
/* 0x5C8 */ daPoCandle_c* mpPoCandle;
|
||||
/* 0x5CC */ daTagPoFire_c* mpTagPoFire;
|
||||
/* 0x5D0 */ f32 mGroundY;
|
||||
/* 0x5D4 */ f32 unk5D4;
|
||||
/* 0x5D8 */ f32 unk5D8;
|
||||
/* 0x5DC */ u8 pad5DC[0xC]; // Padding
|
||||
/* 0x5E8 */ f32 unk5E8;
|
||||
/* 0x5EC */ f32 unk5EC;
|
||||
/* 0x5F0 */ f32 unk5F0;
|
||||
/* 0x5F4 */ f32 unk5F4;
|
||||
/* 0x5F8 */ cXyz unk5F8;
|
||||
/* 0x604 */ s32 unk604;
|
||||
/* 0x608 */ f32 unk608;
|
||||
/* 0x610 */ cXyz unk610;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daPoFire_c) == 0x618);
|
||||
|
||||
class daPoFire_HIO_c {
|
||||
class daPoFire_HIO_c : public mDoHIO_entry_c {
|
||||
public:
|
||||
/* 80CB294C */ daPoFire_HIO_c();
|
||||
/* 80CB3D24 */ ~daPoFire_HIO_c();
|
||||
/* 80CB3D24 */ virtual ~daPoFire_HIO_c() {}
|
||||
|
||||
void genMessage(JORMContext*);
|
||||
|
||||
/* 0x06 */ s8 unk6;
|
||||
/* 0x08 */ f32 mWaitPeriod; // Wait oscillation period
|
||||
/* 0x0C */ f32 mWaitVertRange; // Wait oscillation amplitude, vertical range
|
||||
/* 0x10 */ f32 mWaitVertSpeed; // Wait oscillation speed, vertical speed
|
||||
/* 0x14 */ f32 mMovePeriod1; // Move period
|
||||
/* 0x18 */ f32 mMoveSwingSpeed1; // Move oscillation speed
|
||||
/* 0x1C */ f32 mMoveSpeed; // Move speed
|
||||
/* 0x20 */ f32 mMovePeriod2; // Move period ??
|
||||
/* 0x24 */ f32 mMoveSwingSpeed2; // Move oscillation speed
|
||||
/* 0x28 */ f32 mMoveSwingRange; // Move oscillation range
|
||||
/* 0x2C */ f32 mPickupRange; // Horizontal dist ?
|
||||
/* 0x30 */ u8 mFireWaitTime; // Fire wait
|
||||
};
|
||||
|
||||
#endif /* D_A_OBJ_POFIRE_H */
|
||||
|
|
|
@ -6,9 +6,6 @@
|
|||
|
||||
struct tg_ss {
|
||||
public:
|
||||
/* 80D083C0 */ ~tg_ss() {}
|
||||
/* 80D08494 */ tg_ss() {}
|
||||
|
||||
/* 0x000 */ J3DModel* mModel;
|
||||
/* 0x004 */ cXyz mPos;
|
||||
/* 0x010 */ cXyz mScale;
|
||||
|
|
|
@ -32,7 +32,7 @@ class Act_c : public fopAc_ac_c {
|
|||
/* 80485284 */ void mode_wait();
|
||||
/* 804852E0 */ void mode_count_init();
|
||||
/* 80485324 */ void mode_count();
|
||||
/* 804854BC */ int _execute();
|
||||
/* 804854BC */ bool _execute();
|
||||
|
||||
int prm_get_swSave() {
|
||||
return daObj::PrmAbstract(this,PRM_8, PRM_16);
|
||||
|
|
|
@ -5,9 +5,6 @@
|
|||
|
||||
struct yuka_s {
|
||||
public:
|
||||
/* 80D154F4 */ ~yuka_s() {}
|
||||
/* 80D15530 */ yuka_s() {}
|
||||
|
||||
/* 0x00 */ J3DModel* mModel1;
|
||||
/* 0x04 */ J3DModel* mModel2;
|
||||
/* 0x08 */ cXyz mPos;
|
||||
|
|
|
@ -1214,6 +1214,12 @@ public:
|
|||
BOOL checkSumouPunchStagger() const { return mSpecialMode == 0x1F; }
|
||||
BOOL checkSumouTackleStagger() const { return mSpecialMode == 0x20; }
|
||||
BOOL checkSumouGraspRelease() const { return mSpecialMode == 0x23; }
|
||||
|
||||
void onHeavyState() { onNoResetFlg0(FLG0_UNK_40000000); }
|
||||
void onHeavyStateMidnaPanic() {
|
||||
onHeavyState();
|
||||
onEndResetFlg1(ERFLG1_UNK_40000);
|
||||
}
|
||||
};
|
||||
|
||||
int daPy_addCalcShort(s16* param_0, s16 param_1, s16 param_2, s16 param_3, s16 param_4);
|
||||
|
|
|
@ -12,6 +12,8 @@ public:
|
|||
/* 80D5DC20 */ int Draw();
|
||||
/* 80D5DC28 */ int Delete();
|
||||
|
||||
void setFireFlag(u8 flag) { field_0x569 = flag; }
|
||||
|
||||
/* 0x568 */ u8 field_0x568;
|
||||
/* 0x569 */ u8 field_0x569;
|
||||
/* 0x56A */ u16 field_0x56a;
|
||||
|
|
|
@ -32,7 +32,7 @@ public:
|
|||
static bool checkWaterBomb(fopAc_ac_c*);
|
||||
static bool checkInsectBombMove(fopAc_ac_c*);
|
||||
|
||||
virtual BOOL checkExplodeNow() { return FALSE; }
|
||||
virtual u8 checkExplodeNow() { return false; }
|
||||
virtual void deleteBombAndEffect() {}
|
||||
virtual void setCargoBombExplode() {}
|
||||
|
||||
|
@ -83,6 +83,11 @@ public:
|
|||
return (fopAc_ac_c*)fopAcM_fastCreate(PROC_NBOMB, 16, i_pos, i_roomNo, i_angle, NULL, -1,
|
||||
NULL, NULL);
|
||||
}
|
||||
|
||||
static fopAc_ac_c* createBombCargoCarry(cXyz* i_pos, csXyz* i_angle, int i_roomNo) {
|
||||
return (fopAc_ac_c*)fopAcM_fastCreate(PROC_NBOMB, 0x11, i_pos, i_roomNo, i_angle, NULL, -1,
|
||||
NULL, NULL);
|
||||
}
|
||||
};
|
||||
|
||||
#endif /* D_D_BOMB_H */
|
||||
|
|
|
@ -263,7 +263,7 @@ public:
|
|||
bool checkHeadLockFlg() const { return mFlags & 0x80; }
|
||||
bool checkWolfBiteDamage() const { return mFlags & 0x40; }
|
||||
bool checkWolfDownPullFlg() const { return mFlags & 0x10; }
|
||||
bool checkDownFlg() const { return mFlags & 0x1; }
|
||||
bool checkDownFlg() { return mFlags & 0x1; }
|
||||
bool checkCutDownHitFlg() const { return mFlags & 0x2; }
|
||||
bool checkWolfDownStartFlg() const { return mFlags & 0x4; }
|
||||
bool checkDeadFlg() const { return mFlags & 0x8; }
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -4,13 +4,15 @@
|
|||
*/
|
||||
|
||||
#include "d/actor/d_a_fr.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "f_op/f_op_kankyo_mng.h"
|
||||
#include "d/actor/d_a_player.h"
|
||||
#include "SSystem/SComponent/c_lib.h"
|
||||
#include "c/c_damagereaction.h"
|
||||
#include "d/actor/d_a_mg_fish.h"
|
||||
#include "d/actor/d_a_obj_lp.h"
|
||||
#include "d/actor/d_a_player.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_s_play.h"
|
||||
#include "dol2asm.h"
|
||||
#include "f_op/f_op_kankyo_mng.h"
|
||||
|
||||
/* 805198EC-8051994C 0000EC 0060+00 1/1 0/0 0/0 .text __ct__10daFr_HIO_cFv */
|
||||
daFr_HIO_c::daFr_HIO_c() {
|
||||
|
@ -34,18 +36,20 @@ static void anm_init(fr_class* i_this, int i_index, f32 i_morf, u8 i_mode, f32 i
|
|||
|
||||
/* 805199F4-80519AB8 0001F4 00C4+00 1/0 0/0 0/0 .text daFr_Draw__FP8fr_class */
|
||||
static int daFr_Draw(fr_class* i_this) {
|
||||
fopAc_ac_c* actor = i_this;
|
||||
|
||||
J3DModel* model = i_this->mMorf->getModel();
|
||||
|
||||
g_env_light.settingTevStruct(0, &i_this->current.pos, &i_this->tevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(model, &i_this->tevStr);
|
||||
g_env_light.settingTevStruct(0, &actor->current.pos, &actor->tevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(model, &actor->tevStr);
|
||||
|
||||
J3DModelData* modelData = model->getModelData();
|
||||
i_this->mBtkAnm->entry(modelData);
|
||||
i_this->mBtkAnm->entry(model->getModelData());
|
||||
i_this->mMorf->entryDL();
|
||||
|
||||
if (!i_this->field_0x5ec) {
|
||||
dComIfGd_setSimpleShadow(&i_this->current.pos, i_this->mAcch.m_ground_h, i_this->scale.x * 10.0f,
|
||||
i_this->mAcch.m_gnd, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex());
|
||||
dComIfGd_setSimpleShadow(&actor->current.pos, i_this->mAcch.GetGroundH(),
|
||||
(10.0f + TREG_F(8)) * actor->scale.x, i_this->mAcch.m_gnd, 0, 1.0f,
|
||||
dDlst_shadowControl_c::getSimpleTex());
|
||||
}
|
||||
|
||||
return 1;
|
||||
|
@ -53,14 +57,17 @@ static int daFr_Draw(fr_class* i_this) {
|
|||
|
||||
/* 80519AB8-80519B14 0002B8 005C+00 1/1 0/0 0/0 .text sibuki_set__FP8fr_class */
|
||||
static void sibuki_set(fr_class* i_this) {
|
||||
cXyz sp18 = i_this->current.pos;
|
||||
fopAc_ac_c* actor = i_this;
|
||||
|
||||
cXyz sp18 = actor->current.pos;
|
||||
sp18.y = i_this->field_0x5f0;
|
||||
fopKyM_createWpillar(&sp18, i_this->scale.x * 0.3f, 0);
|
||||
fopKyM_createWpillar(&sp18, actor->scale.x * 0.3f, 0);
|
||||
}
|
||||
|
||||
/* 80519B14-80519B60 000314 004C+00 1/1 0/0 0/0 .text s_wd_sub__FPvPv */
|
||||
static void* s_wd_sub(void* param_1, void* param_2) {
|
||||
if (fopAc_IsActor(param_1) && fopAcM_GetName(param_1) == PROC_OBJ_LP) {
|
||||
(void)param_2;
|
||||
if (fopAcM_IsActor(param_1) && fopAcM_GetName(param_1) == PROC_OBJ_LP) {
|
||||
return param_1;
|
||||
}
|
||||
|
||||
|
@ -69,12 +76,15 @@ static void* s_wd_sub(void* param_1, void* param_2) {
|
|||
|
||||
/* 80519B60-80519D28 000360 01C8+00 1/1 0/0 0/0 .text wd_check__FP8fr_class */
|
||||
static wd_ss* wd_check(fr_class* i_this) {
|
||||
fopAc_ac_c* actor = i_this;
|
||||
|
||||
obj_lp_class* mLilyPad = (obj_lp_class*)fpcM_Search(s_wd_sub, i_this);
|
||||
if (mLilyPad) {
|
||||
wd_ss* mWdSs = mLilyPad->mWdSs;
|
||||
cXyz unkXyz1;
|
||||
for (int i = 0; i < mLilyPad->field_0xad98; i++, mWdSs++) {
|
||||
cXyz sp48 = mWdSs->field_0x10 - i_this->current.pos;
|
||||
if (sp48.abs() < mWdSs->field_0x3c * 22.0f) {
|
||||
unkXyz1 = mWdSs->field_0x10 - actor->current.pos;
|
||||
if (unkXyz1.abs() < mWdSs->field_0x3c * (22.0f + KREG_F(11))) {
|
||||
return mWdSs;
|
||||
}
|
||||
}
|
||||
|
@ -84,34 +94,35 @@ static wd_ss* wd_check(fr_class* i_this) {
|
|||
}
|
||||
|
||||
/* 80519D28-80519E24 000528 00FC+00 4/4 0/0 0/0 .text way_bg_check__FP8fr_class */
|
||||
static bool way_bg_check(fr_class* i_this) {
|
||||
static BOOL way_bg_check(fr_class* i_this) {
|
||||
// NONMATCHING
|
||||
cXyz sp24;
|
||||
cXyz sp18;
|
||||
cXyz sp0c;
|
||||
|
||||
cXyz sp90 = i_this->current.pos;
|
||||
sp90.y += 20.0f;
|
||||
sp24 = i_this->current.pos;
|
||||
sp24.y += 20.0f;
|
||||
|
||||
cMtx_YrotS(*calc_mtx, i_this->shape_angle.y);
|
||||
|
||||
cXyz sp9c;
|
||||
cXyz spa8(0.0f, 0.0f, 50.0f);
|
||||
MtxPosition(&spa8, &sp9c);
|
||||
sp9c += sp90;
|
||||
sp0c.x = 0.0f;
|
||||
sp0c.y = 0.0f;
|
||||
sp0c.z = 50.0f;
|
||||
MtxPosition(&sp0c, &sp18);
|
||||
sp18 += sp24;
|
||||
|
||||
dBgS_LinChk dStack_84;
|
||||
dStack_84.Set(&sp90, &sp90, i_this);
|
||||
dStack_84.Set(&sp24, &sp18, i_this);
|
||||
|
||||
if (dComIfG_Bgsp().LineCross(&dStack_84)) {
|
||||
return true;
|
||||
return TRUE;
|
||||
} else {
|
||||
return false;
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
/* 8051BC10-8051BC14 000008 0004+00 2/2 0/0 0/0 .bss None */
|
||||
static u8 data_8051BC10[4];
|
||||
|
||||
/* 8051BC14-8051BC20 00000C 000C+00 1/1 0/0 0/0 .bss @3644 */
|
||||
static u8 lit_3644[12];
|
||||
static bool l_initHIO;
|
||||
|
||||
/* 8051BC20-8051BC4C 000018 002C+00 9/9 0/0 0/0 .bss l_HIO */
|
||||
static daFr_HIO_c l_HIO;
|
||||
|
@ -119,16 +130,20 @@ static daFr_HIO_c l_HIO;
|
|||
/* 80519E24-8051A0D8 000624 02B4+00 1/2 0/0 0/0 .text fr_normal__FP8fr_class */
|
||||
static void fr_normal(fr_class* i_this) {
|
||||
// NONMATCHING
|
||||
switch (i_this->field_0x5d2) {
|
||||
fopAc_ac_c* actor = i_this;
|
||||
fopAc_ac_c* player = dComIfGp_getPlayer(0);
|
||||
|
||||
cXyz sp18;
|
||||
cXyz sp0c;
|
||||
switch (i_this->field_0x5d4) {
|
||||
case 0:
|
||||
i_this->field_0x5d4 = 1;
|
||||
i_this->field_0x5d4 += (s16)1;
|
||||
anm_init(i_this, 11, 5.0f, 2, cM_rndF(0.3f) + 0.8f);
|
||||
i_this->field_0x5dc[0] = cM_rndF(50.0f) + 20.0f;
|
||||
i_this->speedF = 0.0f;
|
||||
break;
|
||||
case 1:
|
||||
if (!i_this->field_0x5dc[0]) {
|
||||
if (i_this->mMorf->getFrame() == 14) {
|
||||
if ((int)i_this->mMorf->getFrame() == 14) {
|
||||
i_this->field_0x5d4++;
|
||||
anm_init(i_this, 7, 5.0f, 0, 2.0f);
|
||||
}
|
||||
|
@ -141,13 +156,12 @@ static void fr_normal(fr_class* i_this) {
|
|||
i_this->speed.y = l_HIO.field_0xc + cM_rndFX(l_HIO.field_0xc * 0.5f);
|
||||
|
||||
if (way_bg_check(i_this)) {
|
||||
i_this->field_0x5e8 = l_HIO.field_0x14;
|
||||
i_this->current.angle.y += 0x8000;
|
||||
} else {
|
||||
i_this->current.angle.y += -0x8000;
|
||||
cLib_addCalcAngleS2(&i_this->current.angle.y,
|
||||
cM_atan2s((i_this->home.pos.x + cM_rndFX(i_this->field_0x5e8)) - i_this->current.pos.x,
|
||||
(i_this->home.pos.z + cM_rndFX(i_this->field_0x5e8) - i_this->current.pos.z)),
|
||||
1, 0x2000);
|
||||
i_this->field_0x5e8 = l_HIO.field_0x14;
|
||||
f32 x = i_this->home.pos.x + cM_rndFX(i_this->field_0x5e8) - i_this->current.pos.x;
|
||||
f32 z = i_this->home.pos.z + cM_rndFX(i_this->field_0x5e8) - i_this->current.pos.z;
|
||||
cLib_addCalcAngleS2(&i_this->current.angle.y, cM_atan2s(x, z), 1, 0x2000 + TREG_S(2));
|
||||
}
|
||||
|
||||
i_this->field_0x5d4++;
|
||||
|
@ -169,10 +183,14 @@ static void fr_normal(fr_class* i_this) {
|
|||
|
||||
/* 8051A0D8-8051A318 0008D8 0240+00 1/2 0/0 0/0 .text fr_away__FP8fr_class */
|
||||
static void fr_away(fr_class* i_this) {
|
||||
// NONMATCHING
|
||||
fopAc_ac_c* actor = i_this;
|
||||
fopAc_ac_c* player = dComIfGp_getPlayer(0);
|
||||
|
||||
cXyz sp14;
|
||||
cXyz sp08;
|
||||
switch (i_this->field_0x5d4) {
|
||||
case 0:
|
||||
i_this->field_0x5d4 = 1;
|
||||
i_this->field_0x5d4 += (s16)1;
|
||||
i_this->speedF = 0.0f;
|
||||
anm_init(i_this, 7, 3.0f, 0, 4.0f);
|
||||
break;
|
||||
|
@ -183,11 +201,11 @@ static void fr_away(fr_class* i_this) {
|
|||
i_this->speed.y = l_HIO.field_0x20 + cM_rndFX(l_HIO.field_0x20 * 0.5f);
|
||||
|
||||
if (way_bg_check(i_this)) {
|
||||
i_this->current.angle.y += -0x8000;
|
||||
i_this->current.angle.y += 0x8000;
|
||||
} else {
|
||||
cLib_addCalcAngleS2(&i_this->current.angle.y,
|
||||
fopAcM_searchPlayerAngleY(i_this) + cM_rndFX(8000.0f) + -0x8000, 1,
|
||||
0x2000);
|
||||
fopAcM_searchPlayerAngleY(i_this) + 0x8000 + (s16)cM_rndFX(8000.0f), 1,
|
||||
0x2000 + TREG_S(2));
|
||||
}
|
||||
|
||||
i_this->field_0x5d4++;
|
||||
|
@ -203,7 +221,7 @@ static void fr_away(fr_class* i_this) {
|
|||
case 3:
|
||||
if (i_this->mMorf->isStop()) {
|
||||
i_this->field_0x5d4 = 0;
|
||||
if ((l_HIO.field_0x18 + 200.0f) < i_this->field_0x5d8) {
|
||||
if (i_this->field_0x5d8 > (l_HIO.field_0x18 + 200.0f)) {
|
||||
i_this->field_0x5d2 = 0;
|
||||
}
|
||||
}
|
||||
|
@ -212,40 +230,42 @@ static void fr_away(fr_class* i_this) {
|
|||
|
||||
/* 8051A318-8051A558 000B18 0240+00 1/1 0/0 0/0 .text fr_s_normal__FP8fr_class */
|
||||
static void fr_s_normal(fr_class* i_this) {
|
||||
// NONMATCHING
|
||||
fopAc_ac_c* actor = i_this;
|
||||
fopAc_ac_c* player = dComIfGp_getPlayer(0);
|
||||
|
||||
cXyz sp18;
|
||||
cXyz sp0c;
|
||||
switch (i_this->field_0x5d4) {
|
||||
case 0:
|
||||
i_this->field_0x5d4++;
|
||||
anm_init(i_this, 10, 5.0f, 2, cM_rndF(0.3f) + 1.5f);
|
||||
i_this->field_0x5cc = 0;
|
||||
i_this->field_0x5dc[0] = cM_rndF(100.0f) + 50.0f;
|
||||
if (l_HIO.field_0x24 < i_this->speedF) {
|
||||
if (i_this->speedF > l_HIO.field_0x24) {
|
||||
i_this->speedF = l_HIO.field_0x24;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (i_this->mMorf->getFrame() > 9) {
|
||||
if (i_this->mMorf->getFrame() < 0x1a) {
|
||||
if ((int)i_this->mMorf->getFrame() >= 10) {
|
||||
if ((int)i_this->mMorf->getFrame() <= 25) {
|
||||
cLib_addCalc2(&i_this->speedF, l_HIO.field_0x24, 1.0f, l_HIO.field_0x24 * 0.2f);
|
||||
if (i_this->mMorf->getFrame() > 9) {
|
||||
if (i_this->mMorf->getFrame() < 16 && i_this->field_0x5cc == 0) {
|
||||
if ((int)i_this->mMorf->getFrame() >= 10) {
|
||||
if ((int)i_this->mMorf->getFrame() <= 15 && (s8)i_this->field_0x5cc == 0) {
|
||||
if (way_bg_check(i_this)) {
|
||||
i_this->current.angle.y += -0x8000;
|
||||
i_this->current.angle.y += 0x8000;
|
||||
} else {
|
||||
i_this->field_0x5e8 = l_HIO.field_0x14;
|
||||
|
||||
cXyz sp28;
|
||||
sp28.x = i_this->home.pos.x + cM_rndFX(i_this->field_0x5e8) - i_this->current.pos.x;
|
||||
sp28.z = i_this->home.pos.z + cM_rndFX(i_this->field_0x5e8) - i_this->current.pos.z;
|
||||
s16 sVar2 = cM_atan2s(sp28.x, sp28.z);
|
||||
cLib_addCalcAngleS2(&i_this->current.angle.y, sVar2, 1, 0x2000);
|
||||
sp0c.x = i_this->home.pos.x + cM_rndFX(i_this->field_0x5e8) - i_this->current.pos.x;
|
||||
sp0c.z = i_this->home.pos.z + cM_rndFX(i_this->field_0x5e8) - i_this->current.pos.z;
|
||||
cLib_addCalcAngleS2(&i_this->current.angle.y, cM_atan2s(sp0c.x, sp0c.z), 1, 0x2000 + TREG_S(2));
|
||||
}
|
||||
|
||||
i_this->field_0x5cc = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (i_this->mMorf->getFrame() < 20) {
|
||||
if ((int)i_this->mMorf->getFrame() < 20) {
|
||||
return;
|
||||
}
|
||||
i_this->field_0x5cc = 0;
|
||||
|
@ -263,7 +283,11 @@ static void fr_s_normal(fr_class* i_this) {
|
|||
|
||||
/* 8051A558-8051A620 000D58 00C8+00 1/1 0/0 0/0 .text fr_s_wait__FP8fr_class */
|
||||
static void fr_s_wait(fr_class* i_this) {
|
||||
// NONMATCHING
|
||||
fopAc_ac_c* actor = i_this;
|
||||
fopAc_ac_c* player = dComIfGp_getPlayer(0);
|
||||
|
||||
cXyz sp14;
|
||||
cXyz sp08;
|
||||
switch (i_this->field_0x5d4) {
|
||||
case 0:
|
||||
i_this->field_0x5d4++;
|
||||
|
@ -283,6 +307,11 @@ static void fr_s_wait(fr_class* i_this) {
|
|||
/* 8051A620-8051A820 000E20 0200+00 1/1 0/0 0/0 .text fr_s_away__FP8fr_class */
|
||||
static void fr_s_away(fr_class* i_this) {
|
||||
// NONMATCHING
|
||||
fopAc_ac_c* actor = i_this;
|
||||
fopAc_ac_c* player = dComIfGp_getPlayer(0);
|
||||
|
||||
cXyz sp14;
|
||||
cXyz sp08;
|
||||
switch (i_this->field_0x5d4) {
|
||||
case 0:
|
||||
i_this->field_0x5d4++;
|
||||
|
@ -290,20 +319,20 @@ static void fr_s_away(fr_class* i_this) {
|
|||
i_this->field_0x5cc = 0;
|
||||
break;
|
||||
case 1:
|
||||
if (i_this->mMorf->getFrame() > 9) {
|
||||
if (i_this->mMorf->getFrame() > 0x1a) {
|
||||
if ((int)i_this->mMorf->getFrame() >= 10) {
|
||||
if ((int)i_this->mMorf->getFrame() >= 25) {
|
||||
cLib_addCalc2(&i_this->speedF, l_HIO.field_0x28, 1.0f, l_HIO.field_0x28 * 0.2f);
|
||||
if (i_this->mMorf->getFrame() > 9) {
|
||||
if (i_this->mMorf->getFrame() < 16 && i_this->field_0x5cc == 0) {
|
||||
if ((int)i_this->mMorf->getFrame() >= 10) {
|
||||
if ((int)i_this->mMorf->getFrame() <= 15 && (s8)i_this->field_0x5cc == 0) {
|
||||
if (way_bg_check(i_this)) {
|
||||
i_this->current.angle.y += -0x8000;
|
||||
i_this->current.angle.y += 0x8000;
|
||||
} else {
|
||||
cLib_addCalcAngleS2(&i_this->current.angle.y,
|
||||
(fopAcM_searchPlayerAngleY(i_this) + cM_rndFX(8000.0f)) + -0x8000,
|
||||
1, 0x2000);
|
||||
(s16)(fopAcM_searchPlayerAngleY(i_this) + (s16)cM_rndFX(8000.0f)) + 0x8000,
|
||||
1, 0x2000 + TREG_S(2));
|
||||
}
|
||||
|
||||
if (l_HIO.field_0x18 + 200.0f < i_this->field_0x5d8) {
|
||||
if (i_this->field_0x5d8 > l_HIO.field_0x18 + 200.0f) {
|
||||
i_this->field_0x5d2 = 20;
|
||||
i_this->field_0x5d4 = 0;
|
||||
}
|
||||
|
@ -312,7 +341,7 @@ static void fr_s_away(fr_class* i_this) {
|
|||
}
|
||||
}
|
||||
|
||||
if (i_this->mMorf->getFrame() < 20) {
|
||||
if ((int)i_this->mMorf->getFrame() < 20) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -327,29 +356,34 @@ static void fr_s_away(fr_class* i_this) {
|
|||
|
||||
/* 8051A820-8051A904 001020 00E4+00 1/1 0/0 0/0 .text fr_eat__FP8fr_class */
|
||||
static void fr_eat(fr_class* i_this) {
|
||||
// NONMATCHING
|
||||
fopAc_ac_c* this_actor = i_this;
|
||||
fopAc_ac_c* player = dComIfGp_getPlayer(0);
|
||||
|
||||
cXyz sp14;
|
||||
cXyz sp08;
|
||||
fopAc_ac_c* actor = fopAcM_SearchByID(i_this->field_0x5f8);
|
||||
if (!actor) {
|
||||
fopAcM_delete(i_this);
|
||||
} else {
|
||||
switch (i_this->field_0x5d4) {
|
||||
case 0:
|
||||
i_this->field_0x5d4++;
|
||||
anm_init(i_this, 10, 20.0f, 2, 0.0f);
|
||||
i_this->field_0x5dc[0] = 20;
|
||||
case 1:
|
||||
i_this->mMorf->setFrame(0.0f);
|
||||
case 0:
|
||||
i_this->field_0x5d4++;
|
||||
anm_init(i_this, 10, 20.0f, 2, 0.0f);
|
||||
i_this->field_0x5dc[0] = 20;
|
||||
case 1:
|
||||
i_this->mMorf->setFrame(0.0f);
|
||||
// not sure if this cast is right
|
||||
i_this->current.pos = ((mg_fish_class*)actor)->field_0x638;
|
||||
|
||||
if (i_this->field_0x5dc[0] == 0) {
|
||||
fopAcM_delete(i_this);
|
||||
}
|
||||
if (i_this->field_0x5dc[0] == 0) {
|
||||
fopAcM_delete(i_this);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 8051A904-8051AA9C 001104 0198+00 2/2 0/0 0/0 .text swim_on__FP8fr_class */
|
||||
static void swim_on(fr_class* i_this) {
|
||||
// NONMATCHING
|
||||
if (i_this->field_0x5ec == 0) {
|
||||
i_this->field_0x5d2 = 0;
|
||||
i_this->field_0x5d4 = 0;
|
||||
|
@ -358,21 +392,20 @@ static void swim_on(fr_class* i_this) {
|
|||
i_this->gravity = 0.0f;
|
||||
i_this->speed.y = 0.0f;
|
||||
|
||||
f32 fVar3 = 0.5f * cM_ssin(i_this->field_0x5d0 * 0x5dc) - i_this->scale.x * 10.0f * 1.33f;
|
||||
f32 fVar3 = (0.5f + BREG_F(6)) * cM_ssin(i_this->field_0x5d0 * (1500 + BREG_S(5))) - i_this->scale.x * 10.0f * 1.33f;
|
||||
|
||||
s16 sVar2;
|
||||
if (i_this->field_0x5d2 == 0x1e) {
|
||||
sVar2 = -(5000 + 700 * cM_ssin(i_this->field_0x5d0 * 700));
|
||||
fVar3 -= 3.0f * i_this->scale.x * 1.33f;
|
||||
sVar2 = (cM_ssin(i_this->field_0x5d0 * (700 + BREG_S(3))) * (700 + BREG_S(4)) + -(5000 + BREG_S(7)));
|
||||
fVar3 -= (3.0f + BREG_F(4)) * i_this->scale.x * 1.33f;
|
||||
} else {
|
||||
sVar2 = 0;
|
||||
}
|
||||
|
||||
cLib_addCalc2(&i_this->field_0x5f4, fVar3, 0.1f, 1.0f);
|
||||
cLib_addCalcAngleS2(&i_this->shape_angle.x, sVar2, 16, 0x100);
|
||||
fVar3 = cM_ssin(i_this->field_0x5d0 * 600);
|
||||
|
||||
i_this->shape_angle.z = 500 * fVar3;
|
||||
i_this->shape_angle.z = cM_ssin(i_this->field_0x5d0 * (600 + BREG_S(1))) * (500 + BREG_S(2));
|
||||
|
||||
if (((i_this->field_0x994 == -1 || !daPy_py_c::checkNowWolf()) &&
|
||||
i_this->field_0x5d2 != 0x28) && i_this->field_0x5d8 < l_HIO.field_0x18) {
|
||||
|
@ -384,14 +417,15 @@ static void swim_on(fr_class* i_this) {
|
|||
|
||||
/* 8051AA9C-8051AC2C 00129C 0190+00 1/1 0/0 0/0 .text swim_off__FP8fr_class */
|
||||
static void swim_off(fr_class* i_this) {
|
||||
// NONMATCHING
|
||||
fopAc_ac_c* this_actor = i_this;
|
||||
|
||||
cLib_addCalc0(&i_this->field_0x5f4, 0.1f, 1.0f);
|
||||
i_this->shape_angle.z = 0;
|
||||
|
||||
if (i_this->mAcch.ChkGroundHit() || i_this->field_0x5ce != 0) {
|
||||
i_this->shape_angle.x = 0;
|
||||
} else {
|
||||
i_this->shape_angle.x = i_this->speed.y * -500.0f;
|
||||
i_this->shape_angle.x = i_this->speed.y * (-500.0f + TREG_F(9));
|
||||
if (i_this->shape_angle.x > 0x1000) {
|
||||
i_this->shape_angle.x = 0x1000;
|
||||
} else if (i_this->shape_angle.x < -0x2000) {
|
||||
|
@ -414,11 +448,11 @@ static void swim_off(fr_class* i_this) {
|
|||
|
||||
/* 8051AC2C-8051AD04 00142C 00D8+00 1/1 0/0 0/0 .text fr_message__FP8fr_class */
|
||||
static void fr_message(fr_class* i_this) {
|
||||
// NONMATCHING
|
||||
s16 sVar1 = i_this->field_0x5d4;
|
||||
fopAc_ac_c* this_actor = i_this;
|
||||
|
||||
switch (i_this->field_0x5d4) {
|
||||
case 0:
|
||||
anm_init(i_this, 11, 400.0f, 2, cM_rndF(0.3f) + 0.8f);
|
||||
anm_init(i_this, 11, 5.0f, 2, cM_rndF(0.3f) + 0.8f);
|
||||
i_this->field_0x5d4++;
|
||||
case 1:
|
||||
default:
|
||||
|
@ -435,40 +469,46 @@ static void fr_message(fr_class* i_this) {
|
|||
/* 8051AD04-8051B04C 001504 0348+00 2/1 0/0 0/0 .text action__FP8fr_class */
|
||||
static void action(fr_class* i_this) {
|
||||
// NONMATCHING
|
||||
fopAc_ac_c* this_actor = i_this;
|
||||
|
||||
cXyz sp30;
|
||||
cXyz sp24;
|
||||
|
||||
char cVar4 = 0;
|
||||
i_this->gravity = l_HIO.field_0x10;
|
||||
i_this->field_0x991 = 0;
|
||||
switch (i_this->field_0x5d2) {
|
||||
case 0:
|
||||
fr_normal(i_this);
|
||||
i_this->field_0x991 = 1;
|
||||
break;
|
||||
case 5:
|
||||
fr_away(i_this);
|
||||
i_this->field_0x991 = 1;
|
||||
break;
|
||||
case 10:
|
||||
fr_message(i_this);
|
||||
i_this->field_0x991 = 2;
|
||||
break;
|
||||
case 15:
|
||||
cVar4 = -1;
|
||||
break;
|
||||
case 20:
|
||||
fr_s_normal(i_this);
|
||||
cVar4 = 1;
|
||||
break;
|
||||
case 30:
|
||||
fr_s_wait(i_this);
|
||||
cVar4 = 1;
|
||||
break;
|
||||
case 40:
|
||||
fr_s_away(i_this);
|
||||
cVar4 = 1;
|
||||
break;
|
||||
case 50:
|
||||
fr_eat(i_this);
|
||||
cVar4 = -2;
|
||||
case 0:
|
||||
fr_normal(i_this);
|
||||
i_this->field_0x991 = 1;
|
||||
break;
|
||||
case 5:
|
||||
fr_away(i_this);
|
||||
i_this->field_0x991 = 1;
|
||||
break;
|
||||
case 10:
|
||||
fr_message(i_this);
|
||||
i_this->field_0x991 = 2;
|
||||
break;
|
||||
case 20:
|
||||
fr_s_normal(i_this);
|
||||
cVar4 = 1;
|
||||
break;
|
||||
case 30:
|
||||
fr_s_wait(i_this);
|
||||
cVar4 = 1;
|
||||
break;
|
||||
case 40:
|
||||
fr_s_away(i_this);
|
||||
cVar4 = 1;
|
||||
break;
|
||||
case 50:
|
||||
fr_eat(i_this);
|
||||
cVar4 = -2;
|
||||
break;
|
||||
case 15:
|
||||
cVar4 = -1;
|
||||
break;
|
||||
}
|
||||
|
||||
if (((i_this->field_0x991 == 1 && i_this->field_0x994 != -1) && daPy_py_c::checkNowWolf()) && i_this->field_0x5d8 < 300.0f) {
|
||||
|
@ -479,11 +519,12 @@ static void action(fr_class* i_this) {
|
|||
if (cVar4 != -2) {
|
||||
cLib_addCalcAngleS2(&i_this->shape_angle.y, i_this->current.angle.y, 2, 0x4000);
|
||||
cMtx_YrotS(*calc_mtx, i_this->current.angle.y);
|
||||
cXyz sp90;
|
||||
cXyz sp84(0.0f, 0.0f, i_this->speedF);
|
||||
MtxPosition(&sp84, &sp90);
|
||||
i_this->speed.x = sp90.x;
|
||||
i_this->speed.z = sp90.z;
|
||||
sp24.x = 0.0f;
|
||||
sp24.y = 0.0f;
|
||||
sp24.z = i_this->speedF;
|
||||
MtxPosition(&sp24, &sp30);
|
||||
i_this->speed.x = sp30.x;
|
||||
i_this->speed.z = sp30.z;
|
||||
i_this->speed.y += i_this->gravity;
|
||||
|
||||
i_this->current.pos += (i_this->speed * i_this->scale.x) * 1.33f;
|
||||
|
@ -492,8 +533,8 @@ static void action(fr_class* i_this) {
|
|||
i_this->speed.y = -80.0f;
|
||||
}
|
||||
|
||||
sp84 = i_this->current.pos;
|
||||
sp84.y += 200.0f;
|
||||
sp24 = i_this->current.pos;
|
||||
sp24.y += 200.0f;
|
||||
f32 fVar6 = i_this->mAcch.GetGroundH();
|
||||
dBgS_ObjGndChk_Spl(cStack_78);
|
||||
i_this->field_0x5ec = 0;
|
||||
|
@ -502,12 +543,11 @@ static void action(fr_class* i_this) {
|
|||
if (wd_check(i_this)) {
|
||||
bVar2 = true;
|
||||
} else {
|
||||
cStack_78.SetPos(&sp84);
|
||||
f32 fVar5 = dComIfG_Bgsp().GroundCross(&cStack_78);
|
||||
i_this->field_0x5f0 = fVar5;
|
||||
cStack_78.SetPos(&sp24);
|
||||
i_this->field_0x5f0 = dComIfG_Bgsp().GroundCross(&cStack_78);
|
||||
|
||||
if (fVar6 < fVar5 && i_this->current.pos.y <= fVar5) {
|
||||
i_this->current.pos.y = i_this->field_0x5f0;
|
||||
if (fVar6 < i_this->field_0x5f0 && i_this->current.pos.y <= i_this->field_0x5f0 + YREG_F(0)) {
|
||||
i_this->current.pos.y = i_this->field_0x5f0 + YREG_F(0);
|
||||
i_this->field_0x5ec = 1;
|
||||
}
|
||||
}
|
||||
|
@ -521,8 +561,8 @@ static void action(fr_class* i_this) {
|
|||
|
||||
i_this->mAcch.CrrPos(dComIfG_Bgsp());
|
||||
i_this->field_0x5ce = 0;
|
||||
if ((bVar2 && i_this->speed.y <= 0.0f) && i_this->current.pos.y <= i_this->field_0x5f0 + i_this->scale.x * 5.0f) {
|
||||
i_this->current.pos.y = i_this->field_0x5f0 + i_this->scale.x * 5.0f;
|
||||
if ((bVar2 && i_this->speed.y <= 0.0f) && i_this->current.pos.y <= i_this->field_0x5f0 + i_this->scale.x * (5.0f + YREG_F(11))) {
|
||||
i_this->current.pos.y = i_this->field_0x5f0 + i_this->scale.x * (5.0f + YREG_F(11));
|
||||
i_this->speed.y = 0.0f;
|
||||
i_this->field_0x5ce = 1;
|
||||
}
|
||||
|
@ -531,7 +571,6 @@ static void action(fr_class* i_this) {
|
|||
|
||||
/* 8051B04C-8051B170 00184C 0124+00 1/1 0/0 0/0 .text message__FP8fr_class */
|
||||
static int message(fr_class* i_this) {
|
||||
// NONMATCHING
|
||||
if (i_this->field_0x992) {
|
||||
i_this->field_0x5e4 = 10;
|
||||
if (i_this->mMsgFlow.doFlow(i_this, NULL, 0)) {
|
||||
|
@ -553,20 +592,23 @@ static int message(fr_class* i_this) {
|
|||
i_this->eventInfo.onCondition(1);
|
||||
} else {
|
||||
fopAcM_OffStatus(i_this, 0);
|
||||
cLib_offBit<u32>(i_this->attention_info.flags, 1);
|
||||
#if DEBUG
|
||||
cLib_offBit<u32>(i_this->attention_info.flags, 0x42);
|
||||
#else
|
||||
cLib_offBit<u32>(i_this->attention_info.flags, 0xa);
|
||||
#endif
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
/* 8051B170-8051B354 001970 01E4+00 2/1 0/0 0/0 .text daFr_Execute__FP8fr_class */
|
||||
static int daFr_Execute(fr_class* i_this) {
|
||||
// NONMATCHING
|
||||
if (cDmrNowMidnaTalk()) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
cXyz sp18(0.0f, 0.0f, 0.0f);
|
||||
i_this->field_0x5d8 = fopAcM_searchPlayerDistance(i_this);
|
||||
i_this->field_0x5d0++;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
|
@ -582,8 +624,8 @@ static int daFr_Execute(fr_class* i_this) {
|
|||
action(i_this);
|
||||
|
||||
mDoMtx_stack_c::transS(i_this->current.pos.x, i_this->current.pos.y + i_this->field_0x5f4, i_this->current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(i_this->shape_angle.y);
|
||||
mDoMtx_stack_c::XrotM(i_this->shape_angle.x);
|
||||
mDoMtx_stack_c::YrotM((s16)i_this->shape_angle.y);
|
||||
mDoMtx_stack_c::XrotM((s16)i_this->shape_angle.x);
|
||||
mDoMtx_stack_c::ZrotM(i_this->shape_angle.z);
|
||||
mDoMtx_stack_c::scaleM(i_this->scale.x, i_this->scale.x, i_this->scale.x);
|
||||
|
||||
|
@ -609,11 +651,15 @@ static int daFr_IsDelete(fr_class* i_this) {
|
|||
|
||||
/* 8051B35C-8051B3B0 001B5C 0054+00 1/0 0/0 0/0 .text daFr_Delete__FP8fr_class */
|
||||
static int daFr_Delete(fr_class* i_this) {
|
||||
fpc_ProcID id = fopAcM_GetID(i_this);
|
||||
|
||||
dComIfG_resDelete(&i_this->mPhase, "Fr");
|
||||
if (i_this->field_0x9e4) {
|
||||
data_8051BC10[0] = 0;
|
||||
l_initHIO = false;
|
||||
}
|
||||
|
||||
mDoHIO_DELETE_CHILD(l_HIO.field_0x4);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -666,9 +712,9 @@ static int daFr_Create(fopAc_ac_c* a_this) {
|
|||
|
||||
OS_REPORT("//////////////FR SET 2 !!\n");
|
||||
|
||||
if (data_8051BC10[0] == 0) {
|
||||
if (!l_initHIO) {
|
||||
i_this->field_0x9e4 = 1;
|
||||
data_8051BC10[0] = 1;
|
||||
l_initHIO = true;
|
||||
l_HIO.field_0x4 = -1;
|
||||
}
|
||||
|
||||
|
@ -698,21 +744,6 @@ static int daFr_Create(fopAc_ac_c* a_this) {
|
|||
return phase_state;
|
||||
}
|
||||
|
||||
// /* 8051B920-8051B968 002120 0048+00 2/1 0/0 0/0 .text __dt__10daFr_HIO_cFv */
|
||||
// daFr_HIO_c::~daFr_HIO_c() {
|
||||
// // NONMATCHING
|
||||
// }
|
||||
|
||||
/* 8051B968-8051B9A4 002168 003C+00 0/0 1/0 0/0 .text __sinit_d_a_fr_cpp */
|
||||
void __sinit_d_a_fr_cpp() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
REGISTER_CTORS(0x8051B968, __sinit_d_a_fr_cpp);
|
||||
#pragma pop
|
||||
|
||||
/* 8051BB60-8051BB80 -00001 0020+00 1/0 0/0 0/0 .data l_daFr_Method */
|
||||
static actor_method_class l_daFr_Method = {
|
||||
(process_method_func)daFr_Create,
|
||||
|
|
|
@ -1260,11 +1260,11 @@ void daKago_c::executeStagger() {
|
|||
mDoMtx_stack_c::multVecZero(&field_0x674);
|
||||
|
||||
if (field_0x6e7 == 0) {
|
||||
mSound.startCreatureSound(0x70236, 0, -1);
|
||||
mSound.startCreatureVoice(0x7048f, -1);
|
||||
mSound.startCreatureSound(Z2SE_EN_YC_CRASH, 0, -1);
|
||||
mSound.startCreatureVoice(Z2SE_EN_YC_V_HANGED, -1);
|
||||
} else {
|
||||
mSound.startCreatureSound(0x70499, 0, -1);
|
||||
mSound.startCreatureVoice(0x7049a, -1);
|
||||
mSound.startCreatureSound(Z2SE_EN_KC_CRASH, 0, -1);
|
||||
mSound.startCreatureVoice(Z2SE_EN_KC_V_CRASH, -1);
|
||||
}
|
||||
|
||||
setBck(7, 0, 10.0f, 1.0f);
|
||||
|
@ -1309,7 +1309,7 @@ void daKago_c::executeStagger() {
|
|||
}
|
||||
}
|
||||
|
||||
mSound.startCreatureSound(0x704b3, 0, -1);
|
||||
mSound.startCreatureSound(Z2SE_EN_YC_HIT_SIDE, 0, -1);
|
||||
dComIfGp_getVibration().StartQuake(1, 0x1f, cXyz(0.0f, 1.0f, 0.0f));
|
||||
|
||||
field_0x744 = 5;
|
||||
|
@ -1324,11 +1324,11 @@ void daKago_c::executeStagger() {
|
|||
mDoMtx_stack_c::multVecZero(&field_0x674);
|
||||
|
||||
if (field_0x6e7 == 0) {
|
||||
mSound.startCreatureSound(0x70236, 0, -1);
|
||||
mSound.startCreatureVoice(0x7048f, -1);
|
||||
mSound.startCreatureSound(Z2SE_EN_YC_CRASH, 0, -1);
|
||||
mSound.startCreatureVoice(Z2SE_EN_YC_V_HANGED, -1);
|
||||
} else {
|
||||
mSound.startCreatureSound(0x70499, 0, -1);
|
||||
mSound.startCreatureVoice(0x7049a, -1);
|
||||
mSound.startCreatureSound(Z2SE_EN_KC_CRASH, 0, -1);
|
||||
mSound.startCreatureVoice(Z2SE_EN_KC_V_CRASH, -1);
|
||||
}
|
||||
|
||||
setBck(7, 0, 10.0f, 1.0f);
|
||||
|
@ -1581,9 +1581,9 @@ void daKago_c::executeAttack() {
|
|||
cLib_chaseF(&field_0x6f8, 30.0f, l_HIO.mDashTimeMultiplier * 3.0f);
|
||||
if (mpMorf->checkFrame(9.0f)) {
|
||||
if (field_0x6e7 == 0) {
|
||||
mSound.startCreatureSound(0x70492, 0, -1);
|
||||
mSound.startCreatureSound(Z2SE_EN_YC_DASH, 0, -1);
|
||||
} else {
|
||||
mSound.startCreatureSound(0x7049b, 0, -1);
|
||||
mSound.startCreatureSound(Z2SE_EN_KC_DASH, 0, -1);
|
||||
}
|
||||
}
|
||||
if (mpMorf->checkFrame(12.0f)) {
|
||||
|
@ -1910,9 +1910,9 @@ bool daKago_c::executePerchDemo() {
|
|||
} else {
|
||||
if (field_0x754 == 0) {
|
||||
if (field_0x6e7 == 1) {
|
||||
mSound.startCreatureVoice(0x705b9, -1);
|
||||
mSound.startCreatureVoice(Z2SE_EN_KC_V_NAKU, -1);
|
||||
} else {
|
||||
mSound.startCreatureVoice(0x705b8, -1);
|
||||
mSound.startCreatureVoice(Z2SE_EN_YC_V_NAKU, -1);
|
||||
}
|
||||
field_0x754 = 1;
|
||||
}
|
||||
|
@ -1974,9 +1974,9 @@ bool daKago_c::executePerchDemo() {
|
|||
shape_angle.x = current.angle.x;
|
||||
if (field_0x728 == 1) {
|
||||
if (field_0x6e7 == 1) {
|
||||
mSound.startCreatureVoice(0x705b9, -1);
|
||||
mSound.startCreatureVoice(Z2SE_EN_KC_V_NAKU, -1);
|
||||
} else {
|
||||
mSound.startCreatureVoice(0x705b8, -1);
|
||||
mSound.startCreatureVoice(Z2SE_EN_YC_V_NAKU, -1);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@ -2171,9 +2171,9 @@ bool daKago_c::PerchDemoAwayForward() {
|
|||
|
||||
if (field_0x728 == 0x14 && field_0x744 == 0) {
|
||||
if (field_0x6e7 == 1) {
|
||||
mSound.startCreatureVoice(0x705b9, -1);
|
||||
mSound.startCreatureVoice(Z2SE_EN_KC_V_NAKU, -1);
|
||||
} else {
|
||||
mSound.startCreatureVoice(0x705b8, -1);
|
||||
mSound.startCreatureVoice(Z2SE_EN_YC_V_NAKU, -1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2573,9 +2573,9 @@ bool daKago_c::executeFirstDemo() {
|
|||
|
||||
if (field_0x728 == 0x14) {
|
||||
if (field_0x6e7 == 1) {
|
||||
mSound.startCreatureVoice(0x705b9, -1);
|
||||
mSound.startCreatureVoice(Z2SE_EN_KC_V_NAKU, -1);
|
||||
} else {
|
||||
mSound.startCreatureVoice(0x705b8, -1);
|
||||
mSound.startCreatureVoice(Z2SE_EN_YC_V_NAKU, -1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2766,9 +2766,9 @@ bool daKago_c::executeFirstDemo() {
|
|||
|
||||
if (unkFlag1 != 0) {
|
||||
if (field_0x6e7 == 1) {
|
||||
mSound.startCreatureVoice(0x705b9, -1);
|
||||
mSound.startCreatureVoice(Z2SE_EN_KC_V_NAKU, -1);
|
||||
} else {
|
||||
mSound.startCreatureVoice(0x705b8, -1);
|
||||
mSound.startCreatureVoice(Z2SE_EN_YC_V_NAKU, -1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2857,9 +2857,9 @@ void daKago_c::executeLandingLakeHairia() {
|
|||
case 2:
|
||||
if (field_0x728 == 0x8c) {
|
||||
if (field_0x6e7 == 0x01) {
|
||||
mSound.startCreatureVoice(0x705b9, -1);
|
||||
mSound.startCreatureVoice(Z2SE_EN_KC_V_NAKU, -1);
|
||||
} else {
|
||||
mSound.startCreatureVoice(0x705b8, -1);
|
||||
mSound.startCreatureVoice(Z2SE_EN_YC_V_NAKU, -1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2965,9 +2965,9 @@ void daKago_c::executeLandingLakeHairia() {
|
|||
|
||||
if (field_0x728 == 90) {
|
||||
if (field_0x6e7 == 0x01) {
|
||||
mSound.startCreatureVoice(0x705b9, -1);
|
||||
mSound.startCreatureVoice(Z2SE_EN_KC_V_NAKU, -1);
|
||||
} else {
|
||||
mSound.startCreatureVoice(0x705b8, -1);
|
||||
mSound.startCreatureVoice(Z2SE_EN_YC_V_NAKU, -1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3035,9 +3035,9 @@ void daKago_c::executeLandingBoartHouse() {
|
|||
case 1: {
|
||||
if (field_0x728 == 0x46) {
|
||||
if (field_0x6e7 == 0x01) {
|
||||
mSound.startCreatureVoice(0x705b9, -1);
|
||||
mSound.startCreatureVoice(Z2SE_EN_KC_V_NAKU, -1);
|
||||
} else {
|
||||
mSound.startCreatureVoice(0x705b8, -1);
|
||||
mSound.startCreatureVoice(Z2SE_EN_YC_V_NAKU, -1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3100,9 +3100,9 @@ void daKago_c::executeLandingBoartHouse() {
|
|||
|
||||
if (field_0x728 == 0x50) {
|
||||
if (field_0x6e7 == 0x01) {
|
||||
mSound.startCreatureVoice(0x705b9, -1);
|
||||
mSound.startCreatureVoice(Z2SE_EN_KC_V_NAKU, -1);
|
||||
} else {
|
||||
mSound.startCreatureVoice(0x705b8, -1);
|
||||
mSound.startCreatureVoice(Z2SE_EN_YC_V_NAKU, -1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3199,9 +3199,9 @@ void daKago_c::moveDemoFly() {
|
|||
cLib_chaseF(&field_0x6f8, 30.0f, l_HIO.mDashTimeMultiplier * 3.0f);
|
||||
if (mpMorf->checkFrame(9.0f)) {
|
||||
if (field_0x6e7 == 0) {
|
||||
mSound.startCreatureSound(0x70492, 0, -1);
|
||||
mSound.startCreatureSound(Z2SE_EN_YC_DASH, 0, -1);
|
||||
} else {
|
||||
mSound.startCreatureSound(0x7049b, 0, -1);
|
||||
mSound.startCreatureSound(Z2SE_EN_KC_DASH, 0, -1);
|
||||
}
|
||||
}
|
||||
if (mpMorf->checkFrame(12.0f)) {
|
||||
|
@ -3448,9 +3448,9 @@ void daKago_c::setSibukiEffect() {
|
|||
}
|
||||
|
||||
if (field_0x6e7 == 0) {
|
||||
mSound.startCreatureSoundLevel(0x70496, 0, -1);
|
||||
mSound.startCreatureSoundLevel(Z2SE_EN_YC_SPLASH, 0, -1);
|
||||
} else {
|
||||
mSound.startCreatureSoundLevel(0x7049c, 0, -1);
|
||||
mSound.startCreatureSoundLevel(Z2SE_EN_KC_SPLASH, 0, -1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3477,9 +3477,9 @@ void daKago_c::setWaterFallEffect() {
|
|||
0, 0xff, 0, 0xffffffff, 0, 0, 0);
|
||||
}
|
||||
if (field_0x6e7 == 0) {
|
||||
mSound.startCreatureSoundLevel(0x70496, 0, -1);
|
||||
mSound.startCreatureSoundLevel(Z2SE_EN_YC_SPLASH, 0, -1);
|
||||
} else {
|
||||
mSound.startCreatureSoundLevel(0x7049c, 0, -1);
|
||||
mSound.startCreatureSoundLevel(Z2SE_EN_KC_SPLASH, 0, -1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3531,17 +3531,17 @@ void daKago_c::setFlySound() {
|
|||
}
|
||||
} else if (checkBck(12) || checkBck(13)) {
|
||||
if (field_0x6e7 == 0) {
|
||||
mSound.startCreatureSoundLevel(0x70235, 0, -1);
|
||||
mSound.startCreatureSoundLevel(Z2SE_EN_YC_GLIDE, 0, -1);
|
||||
} else {
|
||||
mSound.startCreatureSoundLevel(0x70498, 0, -1);
|
||||
mSound.startCreatureSoundLevel(Z2SE_EN_KC_GLIDE, 0, -1);
|
||||
}
|
||||
}
|
||||
|
||||
if (unkFlag1) {
|
||||
if (field_0x6e7 == 0) {
|
||||
mSound.startCreatureSound(0x70234, 0, -1);
|
||||
mSound.startCreatureSound(Z2SE_EN_YC_WING, 0, -1);
|
||||
} else {
|
||||
mSound.startCreatureSound(0x70497, 0, -1);
|
||||
mSound.startCreatureSound(Z2SE_EN_KC_WING, 0, -1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -140,123 +140,114 @@ int daObjFchain_c::execute() {
|
|||
} else {
|
||||
field_0x588 = 0;
|
||||
}
|
||||
cXyz* local_148 = ¤t.pos;
|
||||
cXyz local_54;
|
||||
cXyz cStack_60;
|
||||
cXyz* sp_38 = ¤t.pos;
|
||||
cXyz sp_12c;
|
||||
cXyz sp_120;
|
||||
if (field_0x586 != 0) {
|
||||
field_0x586--;
|
||||
}
|
||||
cXyz* pcVar12 = field_0x694;
|
||||
cXyz* local_150 = field_0x79c;
|
||||
int i;
|
||||
cXyz* var_r28 = field_0x694;
|
||||
cXyz* sp_30 = field_0x79c;
|
||||
u32 isWolf = daPy_py_c::checkNowWolf();
|
||||
daPy_py_c* player = daPy_getLinkPlayerActorClass();
|
||||
for (int i = 0; i < 22; i++) {
|
||||
local_54 = (*pcVar12 - *local_148) + *local_150;
|
||||
local_54.y += -1.5f;
|
||||
for (i = 0; i < 22; i++, var_r28++, sp_30++) {
|
||||
sp_12c = (*var_r28 - *sp_38) + *sp_30;
|
||||
sp_12c.y += -1.5f;
|
||||
if (dComIfGs_isEventBit(0x510)) {
|
||||
if (isWolf) {
|
||||
checkPlayerFoot(pcVar12, player->getLeftHandPosP(), &local_54);
|
||||
checkPlayerFoot(pcVar12, player->getRightHandPosP(), &local_54);
|
||||
checkPlayerFoot(var_r28, player->getLeftHandPosP(), &sp_12c);
|
||||
checkPlayerFoot(var_r28, player->getRightHandPosP(), &sp_12c);
|
||||
}
|
||||
checkPlayerFoot(pcVar12, player->getLeftFootPosP(), &local_54);
|
||||
checkPlayerFoot(pcVar12, player->getRightFootPosP(), &local_54);
|
||||
checkPlayerFoot(var_r28, player->getLeftFootPosP(), &sp_12c);
|
||||
checkPlayerFoot(var_r28, player->getRightFootPosP(), &sp_12c);
|
||||
}
|
||||
cStack_60 = local_54;
|
||||
local_54.normalizeZP();
|
||||
*pcVar12 = *local_148 + (local_54 * 9.0f);
|
||||
if (pcVar12->y < current.pos.y) {
|
||||
setGroundVec(&cStack_60, current.pos.y - pcVar12->y);
|
||||
*pcVar12 = *local_148 + (cStack_60 * 9.0f);
|
||||
sp_120 = sp_12c;
|
||||
sp_12c.normalizeZP();
|
||||
*var_r28 = *sp_38 + (sp_12c * 9.0f);
|
||||
if (var_r28->y < current.pos.y) {
|
||||
setGroundVec(&sp_120, current.pos.y - var_r28->y);
|
||||
*var_r28 = *sp_38 + (sp_120 * 9.0f);
|
||||
}
|
||||
local_150++;
|
||||
local_148 = pcVar12;
|
||||
pcVar12++;
|
||||
sp_38 = var_r28;
|
||||
}
|
||||
if (isWolf && !dComIfGs_isEventBit(0x510)) {
|
||||
mDoMtx_multVec(
|
||||
player->getModelJointMtx(17), &wolfChainBaseOffset,
|
||||
&field_0x694[21]);
|
||||
cXyz diff = (field_0x694[21] - current.pos);
|
||||
f32 dVar13 = diff.abs();
|
||||
sp_12c = (field_0x694[21] - current.pos);
|
||||
f32 dVar13 = sp_12c.abs();
|
||||
if (dVar13 > 198.0f) {
|
||||
s16 sVar10 = cM_atan2s(-local_54.x, -local_54.z);
|
||||
player->setOutPower(dVar13 - 198.0f, sVar10, 0);
|
||||
player->setOutPower(dVar13 - 198.0f, cM_atan2s(-sp_12c.x, -sp_12c.z), 0);
|
||||
player->onWolfFchainPull();
|
||||
cXyz* pcVar8 = field_0x694;
|
||||
local_148 = ¤t.pos;
|
||||
local_54 *= 9.0f / dVar13;
|
||||
for (int i = 0; pcVar12 = pcVar8, i < 22; i++) {
|
||||
*pcVar8 = *local_148 + local_54;
|
||||
local_148 = pcVar8;
|
||||
pcVar8++;
|
||||
var_r28 = field_0x694;
|
||||
sp_38 = ¤t.pos;
|
||||
sp_12c *= 9.0f / dVar13;
|
||||
for (i = 0; i < 22; i++, var_r28++) {
|
||||
*var_r28 = *sp_38 + sp_12c;
|
||||
sp_38 = var_r28;
|
||||
}
|
||||
field_0x584 = 0;
|
||||
} else {
|
||||
cXyz* pcVar8 = &field_0x694[20];
|
||||
local_150 = &field_0x79c[20];
|
||||
local_148 = pcVar8 + 1;
|
||||
for (int i = 20; i >= 0; i--) {
|
||||
local_54 = (*pcVar8 - *local_148) + *local_150;
|
||||
local_54.y += -1.5f;
|
||||
cStack_60 = local_54;
|
||||
local_54.normalizeZP();
|
||||
*pcVar8 = *local_148 + (local_54 * 9.0f);
|
||||
if (pcVar8->y < current.pos.y) {
|
||||
setGroundVec(&cStack_60, current.pos.y - pcVar8->y);
|
||||
*pcVar8 = *local_148 + (cStack_60 * 9.0f);
|
||||
var_r28 = &field_0x694[20];
|
||||
sp_30 = &field_0x79c[20];
|
||||
sp_38 = var_r28 + 1;
|
||||
for (i = 20; i >= 0; i--, var_r28--, sp_30--) {
|
||||
sp_12c = (*var_r28 - *sp_38) + *sp_30;
|
||||
sp_12c.y += -1.5f;
|
||||
sp_120 = sp_12c;
|
||||
sp_12c.normalizeZP();
|
||||
*var_r28 = *sp_38 + (sp_12c * 9.0f);
|
||||
if (var_r28->y < current.pos.y) {
|
||||
setGroundVec(&sp_120, current.pos.y - var_r28->y);
|
||||
*var_r28 = *sp_38 + (sp_120 * 9.0f);
|
||||
}
|
||||
local_150--;
|
||||
local_148 = pcVar8;
|
||||
pcVar8--;
|
||||
sp_38 = var_r28;
|
||||
}
|
||||
}
|
||||
}
|
||||
local_148 = ¤t.pos;
|
||||
local_150 = field_0x694;
|
||||
cXyz* pcVar8 = field_0x79c;
|
||||
csXyz* local_15c = field_0x8a4;
|
||||
cXyz* local_160 = field_0x58c;
|
||||
s16 local_178 = 0;
|
||||
for (int i = 0; i < 22; i++) {
|
||||
*local_150 = (*pcVar8 - *local_160) * 0.3f;
|
||||
*local_160 = *pcVar8;
|
||||
local_54 = *local_148 - *pcVar8;
|
||||
local_15c->x = local_54.atan2sY_XZ();
|
||||
if (!(local_54.absXZ() < 3.5f)) {
|
||||
local_15c->y = local_54.atan2sX_Z();
|
||||
sp_38 = ¤t.pos;
|
||||
var_r28 = field_0x694;
|
||||
sp_30 = field_0x79c;
|
||||
csXyz* sp_24 = field_0x8a4;
|
||||
cXyz* sp_20 = field_0x58c;
|
||||
s16 sp_08 = 0;
|
||||
for (i = 0; i < 22; i++, var_r28++, sp_30++, sp_24++, sp_20++) {
|
||||
*sp_30 = (*var_r28 - *sp_20) * 0.3f;
|
||||
*sp_20 = *var_r28;
|
||||
sp_12c = *sp_38 - *var_r28;
|
||||
sp_24->x = sp_12c.atan2sY_XZ();
|
||||
if (!(sp_12c.absXZ() < 3.5f)) {
|
||||
sp_24->y = sp_12c.atan2sX_Z();
|
||||
}
|
||||
if (local_150->abs2() > 3.0f && field_0x586 == 0) {
|
||||
if (sp_30->abs2() > 3.0f && field_0x586 == 0) {
|
||||
f32 fVar1;
|
||||
if (cM_rnd() < 0.5f) {
|
||||
fVar1 = 1.0f;
|
||||
} else {
|
||||
fVar1 = -1.0f;
|
||||
}
|
||||
local_15c->z = local_178 + 0x4000 +
|
||||
sp_24->z = sp_08 + 0x4000 +
|
||||
(fVar1 * (cM_rndF(4096.0f) + 1536.0f));
|
||||
if (pcVar8->y <= current.pos.y + 2.0f) {
|
||||
if ((local_15c->z >= 0 && local_15c->z < 0x4000) ||
|
||||
(local_15c->z > -0x7fff && local_15c->z < -0x4000))
|
||||
if (var_r28->y <= current.pos.y + 2.0f) {
|
||||
if ((sp_24->z >= 0 && sp_24->z < 0x4000) ||
|
||||
(sp_24->z > -0x7fff && sp_24->z < -0x4000))
|
||||
{
|
||||
local_15c->z = cM_rndFX(2048.0f) + 4096.0f;
|
||||
sp_24->z = cM_rndFX(2048.0f) + 4096.0f;
|
||||
} else {
|
||||
local_15c->z = cM_rndFX(2048.0f) + -4096.0f;
|
||||
sp_24->z = cM_rndFX(2048.0f) + -4096.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
local_178 = local_15c->z;
|
||||
local_150++;
|
||||
local_15c++;
|
||||
local_160++;
|
||||
local_148 = pcVar8;
|
||||
pcVar8++;
|
||||
sp_08 = sp_24->z;
|
||||
sp_38 = var_r28;
|
||||
}
|
||||
if (field_0x584 == 0) {
|
||||
field_0x584 = 1;
|
||||
local_150 = field_0x79c;
|
||||
sp_30 = field_0x79c;
|
||||
for (int i = 0; i < 22; i++) {
|
||||
*local_150 = cXyz::Zero;
|
||||
local_150++;
|
||||
*sp_30 = cXyz::Zero;
|
||||
sp_30++;
|
||||
}
|
||||
field_0x586 = 5;
|
||||
}
|
||||
|
|
|
@ -194,7 +194,7 @@ int daObjL6Bm_c::CreateHeap() {
|
|||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, BTK_EF_BIMOBEAM_OFF);
|
||||
pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, BTK_EF_BIMOBEAM_0FF);
|
||||
JUT_ASSERT(660, pbtk != 0);
|
||||
#endif
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -89,7 +89,7 @@ void daObjTimer::Act_c::mode_count() {
|
|||
}
|
||||
|
||||
/* 804854BC-804855A4 00039C 00E8+00 1/1 0/0 0/0 .text _execute__Q210daObjTimer5Act_cFv */
|
||||
int daObjTimer::Act_c::_execute() {
|
||||
bool daObjTimer::Act_c::_execute() {
|
||||
static daObjTimer::Act_c::modeProc const mode_proc[2] = {
|
||||
&daObjTimer::Act_c::mode_wait,
|
||||
&daObjTimer::Act_c::mode_count,
|
||||
|
@ -97,10 +97,10 @@ int daObjTimer::Act_c::_execute() {
|
|||
|
||||
if (fopAcM_isSwitch(this, prm_get_sw2Save())) {
|
||||
fopAcM_delete(this);
|
||||
return 1;
|
||||
return true;
|
||||
} else {
|
||||
(this->*mode_proc[field_0x568])();
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -136,8 +136,8 @@ namespace {
|
|||
(process_method_func)Mthd_Create,
|
||||
(process_method_func)Mthd_Delete,
|
||||
(process_method_func)Mthd_Execute,
|
||||
(process_method_func)Mthd_Draw,
|
||||
(process_method_func)Mthd_IsDelete,
|
||||
(process_method_func)Mthd_Draw,
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -83,7 +83,7 @@ int daTagWljump_c::execute() {
|
|||
if (!midna->checkShadowModeTalkWait()) {
|
||||
if (shape_angle.x != 0 && (field_0x571 == 0xff || !fopAcM_isSwitch(this, field_0x571))) {
|
||||
if (field_0x56f == 0) {
|
||||
mMsgFlow.init(this, shape_angle.x & 0xFFFF, 0, NULL);
|
||||
mMsgFlow.init(this, (u16)shape_angle.x, 0, NULL);
|
||||
field_0x56f = 1;
|
||||
mDoAud_seStart(Z2SE_NAVI_TALK_START, NULL, 0, 0);
|
||||
} else {
|
||||
|
@ -207,7 +207,11 @@ int daTagWljump_c::execute() {
|
|||
field_0x570 = field_0x568;
|
||||
field_0x568 = -1;
|
||||
} else {
|
||||
#if DEBUG
|
||||
attention_info.flags |= 0x801;
|
||||
#else
|
||||
attention_info.flags |= 0x81;
|
||||
#endif
|
||||
}
|
||||
} else {
|
||||
field_0x572 = 0;
|
||||
|
|
Loading…
Reference in New Issue