mirror of https://github.com/zeldaret/tp.git
parent
aae19575bf
commit
53d9f65e0d
|
@ -1709,7 +1709,7 @@ config.libs = [
|
|||
ActorRel(MatchingFor("GZ2E01"), "d_a_e_sg"),
|
||||
ActorRel(NonMatching, "d_a_e_sh"),
|
||||
ActorRel(NonMatching, "d_a_e_sm"),
|
||||
ActorRel(NonMatching, "d_a_e_sm2"),
|
||||
ActorRel(Equivalent, "d_a_e_sm2"), # weak func order
|
||||
ActorRel(NonMatching, "d_a_e_st"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_e_st_line"),
|
||||
ActorRel(NonMatching, "d_a_e_sw"),
|
||||
|
|
|
@ -7,6 +7,28 @@
|
|||
#include "d/d_cc_d.h"
|
||||
#include "d/d_cc_uty.h"
|
||||
|
||||
enum daE_SM2_TYPE {
|
||||
TYPE_GREEN,
|
||||
TYPE_RED,
|
||||
TYPE_BLUE,
|
||||
TYPE_YELLOW,
|
||||
TYPE_PURPLE,
|
||||
TYPE_RARE,
|
||||
TYPE_BLACK,
|
||||
TYPE_RANDOM,
|
||||
};
|
||||
|
||||
enum daE_SM2_ACTION {
|
||||
ACTION_NORMAL_MOVE,
|
||||
ACTION_ATTACK,
|
||||
ACTION_COMBINE,
|
||||
|
||||
ACTION_ROOF = 10,
|
||||
ACTION_WATER,
|
||||
|
||||
ACTION_FAIL = 20,
|
||||
};
|
||||
|
||||
/**
|
||||
* @ingroup actors-enemies
|
||||
* @class e_sm2_class
|
||||
|
@ -15,90 +37,91 @@
|
|||
* @details
|
||||
*
|
||||
*/
|
||||
class e_sm2_class : public fopEn_enemy_c {
|
||||
class e_sm2_class {
|
||||
public:
|
||||
bool checkYellow() { return field_0x5b7 == 3; }
|
||||
bool checkYellow() { return type == TYPE_YELLOW; }
|
||||
|
||||
private:
|
||||
/* 0x5AC */ request_of_phase_process_class mPhase;
|
||||
/* 0x000 */ fopEn_enemy_c enemy;
|
||||
/* 0x5AC */ request_of_phase_process_class phase;
|
||||
/* 0x5B4 */ u8 field_0x5b4;
|
||||
/* 0x5B5 */ u8 field_0x5B5[0x5B7 - 0x5B5];
|
||||
/* 0x5B7 */ u8 field_0x5b7;
|
||||
/* 0x5B5 */ u8 field_0x5b5;
|
||||
/* 0x5B6 */ u8 field_0x5b6;
|
||||
/* 0x5B7 */ u8 type;
|
||||
/* 0x5B8 */ int field_0x5b8;
|
||||
/* 0x5BC */ mDoExt_McaMorfSO* mpMorf;
|
||||
/* 0x5C0 */ mDoExt_invisibleModel field_0x5c0;
|
||||
/* 0x5C8 */ mDoExt_btkAnm* field_0x5c8;
|
||||
/* 0x5CC */ mDoExt_McaMorfSO* field_0x5cc;
|
||||
/* 0x5D0 */ mDoExt_invisibleModel field_0x5d0;
|
||||
/* 0x5D8 */ u8 field_0x5d8;
|
||||
/* 0x5D9 */ u8 field_0x5D9[0x5DC - 0x5D9];
|
||||
/* 0x5DC */ Z2CreatureEnemy mSound;
|
||||
/* 0x680 */ s16 field_0x680;
|
||||
/* 0x682 */ s16 mAction;
|
||||
/* 0x684 */ s16 mMode;
|
||||
/* 0x686 */ s16 field_0x686;
|
||||
/* 0x688 */ s16 field_0x688;
|
||||
/* 0x68A */ u8 field_0x68A[0x68C - 0x68A];
|
||||
/* 0x68C */ s16 field_0x68c;
|
||||
/* 0x68E */ s16 field_0x68e;
|
||||
/* 0x690 */ s16 mAngleToPlayer;
|
||||
/* 0x692 */ u8 field_0x692[0x694 - 0x692];
|
||||
/* 0x694 */ f32 mDistToPlayer;
|
||||
/* 0x5BC */ mDoExt_McaMorfSO* modelMorf;
|
||||
/* 0x5C0 */ mDoExt_invisibleModel invisModel;
|
||||
/* 0x5C8 */ mDoExt_btkAnm* pbtk;
|
||||
/* 0x5CC */ mDoExt_McaMorfSO* pieceModelMorf;
|
||||
/* 0x5D0 */ mDoExt_invisibleModel pieceInvisModel;
|
||||
/* 0x5D8 */ s8 isPiece;
|
||||
/* 0x5DC */ Z2CreatureEnemy sound;
|
||||
/* 0x680 */ s16 counter;
|
||||
/* 0x682 */ s16 action;
|
||||
/* 0x684 */ s16 mode;
|
||||
/* 0x686 */ s16 timers[3];
|
||||
/* 0x68C */ s16 invulernabilityTimer;
|
||||
/* 0x68E */ s16 combine_off_timer;
|
||||
/* 0x690 */ s16 angle_to_pl;
|
||||
/* 0x694 */ f32 dist_to_pl;
|
||||
/* 0x698 */ u8 field_0x698[0x6A4 - 0x698];
|
||||
/* 0x6A4 */ s16 field_0x6a4;
|
||||
/* 0x6A6 */ s16 field_0x6a6;
|
||||
/* 0x6A8 */ u8 field_0x6a8;
|
||||
/* 0x6A8 */ s8 field_0x6a8;
|
||||
/* 0x6A9 */ u8 field_0x6a9;
|
||||
/* 0x6AA */ u8 field_0x6aa;
|
||||
/* 0x6AB */ u8 field_0x6AB[0x6AC - 0x6AB];
|
||||
/* 0x6AC */ f32 field_0x6ac;
|
||||
/* 0x6B0 */ f32 field_0x6b0;
|
||||
/* 0x6B4 */ u32 field_0x6b4;
|
||||
/* 0x6B8 */ f32 field_0x6b8;
|
||||
/* 0x6BC */ f32 field_0x6bc;
|
||||
/* 0x6C0 */ f32 field_0x6c0;
|
||||
/* 0x6C4 */ f32 field_0x6c4;
|
||||
/* 0x6C8 */ f32 field_0x6c8;
|
||||
/* 0x6CC */ u8 field_0x6CC[0x6E8 - 0x6CC];
|
||||
/* 0x6E8 */ f32 field_0x6e8;
|
||||
/* 0x6EC */ u8 field_0x6EC[0x708 - 0x6EC];
|
||||
/* 0x6B4 */ u32 shadowId;
|
||||
/* 0x6B8 */ f32 color_R;
|
||||
/* 0x6BC */ f32 color_G;
|
||||
/* 0x6C0 */ f32 color_B;
|
||||
/* 0x6C4 */ f32 color_alpha;
|
||||
/* 0x6C8 */ f32 field_0x6c8[8];
|
||||
/* 0x6E8 */ f32 field_0x6e8[8];
|
||||
/* 0x708 */ cXyz field_0x708[8];
|
||||
/* 0x768 */ csXyz field_0x768[8];
|
||||
/* 0x798 */ cXyz field_0x798[8];
|
||||
/* 0x798 */ cXyz jnt_pos[8];
|
||||
/* 0x7F8 */ csXyz field_0x7f8[8];
|
||||
/* 0x828 */ s16 field_0x828;
|
||||
/* 0x82A */ u8 field_0x82A[0x82C - 0x82A];
|
||||
/* 0x82C */ f32 field_0x82c;
|
||||
/* 0x830 */ f32 field_0x830;
|
||||
/* 0x834 */ f32 mSize;
|
||||
/* 0x834 */ f32 size;
|
||||
/* 0x838 */ f32 field_0x838;
|
||||
/* 0x83C */ u8 field_0x83c;
|
||||
/* 0x83D */ u8 field_0x83d;
|
||||
/* 0x83C */ u8 sizetype;
|
||||
/* 0x83D */ u8 is_roof;
|
||||
/* 0x83E */ u8 field_0x83e;
|
||||
/* 0x83F */ u8 field_0x83f;
|
||||
/* 0x83F */ s8 field_0x83f;
|
||||
/* 0x840 */ cXyz field_0x840;
|
||||
/* 0x84C */ csXyz field_0x84c;
|
||||
/* 0x852 */ u8 field_0x852[0x854 - 0x852];
|
||||
/* 0x854 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x894 */ dBgS_ObjAcch mAcch;
|
||||
/* 0xA6C */ dCcD_Stts mColliderStatus;
|
||||
/* 0xAA8 */ dCcD_Sph field_0xaa8[4];
|
||||
/* 0xF88 */ u8 field_0xf88;
|
||||
/* 0xF89 */ u8 field_0xF89[0xF8C - 0xF89];
|
||||
/* 0xF8C */ dCcU_AtInfo mAtInfo;
|
||||
/* 0xFB0 */ u8 field_0xFB0[0xFD0 - 0xFB0];
|
||||
/* 0xFD0 */ int field_0xfd0;
|
||||
/* 0xFD4 */ u8 field_0xfd4;
|
||||
/* 0xFD5 */ u8 field_0xFD5[0xFD8 - 0xFD5];
|
||||
/* 0x854 */ dBgS_AcchCir acchcir;
|
||||
/* 0x894 */ dBgS_ObjAcch acch;
|
||||
/* 0xA6C */ dCcD_Stts ccStts;
|
||||
/* 0xAA8 */ dCcD_Sph ccSph[4];
|
||||
/* 0xF88 */ s8 field_0xf88;
|
||||
/* 0xF8C */ dCcU_AtInfo atInfo;
|
||||
/* 0xFB0 */ u32 field_0xfb0[4][2];
|
||||
/* 0xFD0 */ fpc_ProcID combine_actor_pid;
|
||||
/* 0xFD4 */ s8 field_0xfd4;
|
||||
/* 0xFD8 */ u32 field_0xfd8;
|
||||
/* 0xFDC */ u8 field_0xfdc[0xFF0 - 0xFDC];
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(e_sm2_class) == 0xff0);
|
||||
|
||||
class daE_SM2_HIO_c {
|
||||
class daE_SM2_HIO_c : public fOpAcm_HIO_entry_c {
|
||||
public:
|
||||
/* 80798B4C */ daE_SM2_HIO_c();
|
||||
/* 8079CE94 */ ~daE_SM2_HIO_c();
|
||||
/* 8079CE94 */ virtual ~daE_SM2_HIO_c() {}
|
||||
|
||||
void genMessage(JORMContext*);
|
||||
|
||||
/* 0x04 */ s16 unk_0x4;
|
||||
/* 0x06 */ u8 merge_OFF;
|
||||
/* 0x07 */ u8 unk_0x7;
|
||||
/* 0x08 */ u8 color_debug_ON;
|
||||
/* 0x0A */ s16 color_debug_R;
|
||||
/* 0x0C */ s16 color_debug_G;
|
||||
/* 0x0E */ s16 color_debug_B;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -379,9 +379,8 @@ int daAlink_c::procKandelaarSwingInit() {
|
|||
BOOL is_sm2 = name == PROC_E_SM2;
|
||||
|
||||
if (name == PROC_OBJ_OILTUBO ||
|
||||
(name == PROC_TAG_SSDRINK &&
|
||||
static_cast<daTag_SSDrink_c*>(catch_target_p)->checkShopOil()) ||
|
||||
(is_sm2 && static_cast<e_sm2_class*>(catch_target_p)->checkYellow()))
|
||||
(name == PROC_TAG_SSDRINK && ((daTag_SSDrink_c*)catch_target_p)->checkShopOil()) ||
|
||||
(is_sm2 && ((e_sm2_class*)catch_target_p)->checkYellow()))
|
||||
{
|
||||
return procBottleSwingInit(catch_target_p, is_sm2);
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue