mirror of https://github.com/zeldaret/tp.git
Compare commits
3 Commits
a8f1770800
...
1219e67981
Author | SHA1 | Date |
---|---|---|
![]() |
1219e67981 | |
![]() |
c5584cc6c0 | |
![]() |
b18bca78fb |
|
@ -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"),
|
||||
|
@ -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"),
|
||||
|
|
|
@ -1,26 +1,196 @@
|
|||
#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 {
|
||||
public:
|
||||
/* 80705004 */ e_kr_class();
|
||||
private:
|
||||
/* 0x5ac */ u8 field_0x5ac[0xf08 - 0x5ac];
|
||||
|
||||
/* 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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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(0x221, 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
Loading…
Reference in New Issue