mirror of
https://github.com/zeldaret/tp
synced 2026-06-27 10:43:03 -04:00
work on link bow, kandelaar, and whistle (#2004)
This commit is contained in:
@@ -79,6 +79,7 @@ public:
|
||||
u8 getMoveSpeed() const { return mMoveSpeed; }
|
||||
bool isRiding() const { return mRiding; }
|
||||
void i_setLinkState(u8 i_state) { mLinkState = i_state; }
|
||||
Z2SoundObjSimple& getKantera() { return mKantera; }
|
||||
|
||||
static Z2CreatureLink* mLinkPtr;
|
||||
|
||||
|
||||
@@ -653,6 +653,7 @@ public:
|
||||
FTANM_UNK_3 = 3,
|
||||
FTANM_UNK_4 = 4,
|
||||
FTANM_UNK_8 = 8,
|
||||
FTANM_UNK_9 = 9,
|
||||
FTANM_UNK_13 = 0x13,
|
||||
FTANM_UNK_14 = 0x14,
|
||||
FTANM_UNK_27 = 0x27,
|
||||
@@ -1420,7 +1421,7 @@ public:
|
||||
/* 800B26AC */ BOOL midnaTalkTrigger() const;
|
||||
/* 800B26B8 */ BOOL swordSwingTrigger();
|
||||
/* 800B26DC */ void setItemActionButtonStatus(u8);
|
||||
/* 800B26FC */ void itemActionTrigger();
|
||||
/* 800B26FC */ BOOL itemActionTrigger();
|
||||
/* 800B271C */ void setStickData();
|
||||
/* 800B2EA4 */ void setAtnList();
|
||||
/* 800B3220 */ void setRStatus(u8);
|
||||
@@ -1852,7 +1853,7 @@ public:
|
||||
/* 800DEE1C */ BOOL cancelBowMove();
|
||||
/* 800DEEDC */ void setBowReadyAnime();
|
||||
/* 800DEFB8 */ void setBowReloadAnime();
|
||||
/* 800DF0BC */ void checkUpperItemActionBow();
|
||||
/* 800DF0BC */ BOOL checkUpperItemActionBow();
|
||||
/* 800DF798 */ void checkUpperItemActionBowFly();
|
||||
/* 800DF814 */ int checkNextActionBow();
|
||||
/* 800DFAE8 */ void setBowModel();
|
||||
@@ -2496,7 +2497,7 @@ public:
|
||||
/* 80110E84 */ void setKandelaarModel();
|
||||
/* 80110F88 */ void resetOilBottleModel();
|
||||
/* 80110FE0 */ void commonKandelaarPourInit();
|
||||
/* 801110B8 */ void commonKandelaarPour(int);
|
||||
/* 801110B8 */ int commonKandelaarPour(int);
|
||||
/* 8011130C */ void initKandelaarSwing();
|
||||
/* 80111440 */ int procKandelaarSwingInit();
|
||||
/* 801115CC */ int procKandelaarSwing();
|
||||
@@ -3208,6 +3209,8 @@ public:
|
||||
bool checkFisingRodLure() const { return mEquipItem == noentry73; }
|
||||
BOOL doTrigger() const { return mItemTrigger & BTN_A; }
|
||||
bool swordTrigger() { return itemTriggerCheck(BTN_B); }
|
||||
BOOL grassCancelTrigger() { return itemTriggerCheck(BTN_B); }
|
||||
BOOL arrowChangeTrigger() { return itemActionTrigger(); }
|
||||
bool peepSubjectCancelTrigger() { return itemTriggerCheck(0x8); }
|
||||
u32 getStartMode() { return (fopAcM_GetParam(this) >> 0xC) & 0x1F; }
|
||||
inline bool checkInputOnR() const;
|
||||
@@ -3575,8 +3578,7 @@ private:
|
||||
/* 0x02D80 */ int field_0x2d80;
|
||||
/* 0x02D84 */ Z2WolfHowlMgr mZ2WolfHowlMgr;
|
||||
/* 0x02E44 */ dJntCol_c field_0x2e44;
|
||||
/* 0x02E54 */ dPaPo_c field_0x2e54;
|
||||
/* 0x02E8C */ u8 field_0x2e8c[0x90];
|
||||
/* 0x02E54 */ dPaPoF_c field_0x2e54;
|
||||
/* 0x02F1C */ dPaPo_c* field_0x2f1c;
|
||||
/* 0x02F20 */ dPa_hermiteEcallBack_c field_0x2f20;
|
||||
/* 0x02F38 */ dPa_hermiteEcallBack_c field_0x2f38;
|
||||
@@ -6004,8 +6006,8 @@ public:
|
||||
/* 0x42 */ s16 mColorReg2R;
|
||||
/* 0x44 */ s16 mColorReg2G;
|
||||
/* 0x46 */ s16 mColorReg2B;
|
||||
/* 0x48 */ u16 mNormalOilLoss;
|
||||
/* 0x4A */ u16 mShakeOilLoss;
|
||||
/* 0x48 */ s16 mNormalOilLoss;
|
||||
/* 0x4A */ s16 mShakeOilLoss;
|
||||
/* 0x4C */ f32 mFlameTrackRate;
|
||||
}; // Size: 0x50
|
||||
|
||||
|
||||
@@ -397,6 +397,7 @@ public:
|
||||
|
||||
enum daPy_RFLG0 {
|
||||
RFLG0_UNK_40000000 = 0x40000000,
|
||||
RFLG0_UNK_20000000 = 0x20000000,
|
||||
RFLG0_UNK_8000000 = 0x8000000,
|
||||
RFLG0_UNK_4000000 = 0x4000000,
|
||||
RFLG0_UNK_20000 = 0x20000,
|
||||
|
||||
@@ -371,6 +371,7 @@ public:
|
||||
|
||||
u8& getItemLifeCountType() { return mItemLifeCountType; }
|
||||
u16 getItemNowLife() { return mItemNowLife; }
|
||||
s32 getItemNowOil() { return mItemNowOil; }
|
||||
s16 getItemPachinkoNumCount() { return mItemPachinkoNumCount; }
|
||||
void clearItemPachinkoNumCount() { mItemPachinkoNumCount = 0; }
|
||||
u8 getNeedLightDropNum() { return mNeedLightDropNum; }
|
||||
@@ -2773,6 +2774,10 @@ inline u16 dComIfGp_getItemNowLife() {
|
||||
return g_dComIfG_gameInfo.play.getItemNowLife();
|
||||
}
|
||||
|
||||
inline s32 dComIfGp_getItemNowOil() {
|
||||
return g_dComIfG_gameInfo.play.getItemNowOil();
|
||||
}
|
||||
|
||||
inline int dComIfGp_getMessageCountNumber() {
|
||||
return g_dComIfG_gameInfo.play.getMessageCountNumber();
|
||||
}
|
||||
@@ -3030,6 +3035,10 @@ inline void dComIfGp_event_onEventFlag(u16 i_flag) {
|
||||
g_dComIfG_gameInfo.play.getEvent().onEventFlag(i_flag);
|
||||
}
|
||||
|
||||
inline void dComIfGp_event_onHindFlag(u16 i_flag) {
|
||||
g_dComIfG_gameInfo.play.getEvent().onHindFlag(i_flag);
|
||||
}
|
||||
|
||||
inline void dComIfGp_evmng_cutEnd(int param_0) {
|
||||
dComIfGp_getPEvtManager()->cutEnd(param_0);
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "f_op/f_op_kankyo_mng.h"
|
||||
#include "d/kankyo/d_kankyo.h"
|
||||
#include "d/d_procname.h"
|
||||
|
||||
class dkWmark_c : public kankyo_class {
|
||||
public:
|
||||
@@ -15,6 +16,10 @@ public:
|
||||
|
||||
static int m_nowID;
|
||||
|
||||
static void setFootMark(cXyz* i_pos, s16 param_1, int param_2) {
|
||||
fopKyM_create(PROC_WMARK, param_2 | (param_1 << 0x10), i_pos, NULL, NULL);
|
||||
}
|
||||
|
||||
/* 0x0F8 */ JKRSolidHeap* mpHeap;
|
||||
/* 0x0FC */ J3DModel* mpModel;
|
||||
/* 0x100 */ dKy_tevstr_c mTevstr;
|
||||
|
||||
@@ -149,6 +149,7 @@ public:
|
||||
void onEventFlag(u16 flag) { mEventFlag |= flag; }
|
||||
void offEventFlag(u16 flag) { mEventFlag &= ~flag; }
|
||||
u8 getMode() const { return mMode; }
|
||||
void onHindFlag(u16 flag) { mHindFlag |= flag; }
|
||||
u16 checkHind(u16 flag) { return flag & mHindFlag; }
|
||||
u8 checkCompulsory() { return mCompulsory; }
|
||||
u8 getMapToolId() { return mMapToolId; }
|
||||
|
||||
@@ -16,15 +16,13 @@ public:
|
||||
/* 80050E7C */ void setEffect(u32*, int, dKy_tevstr_c const*, cXyz const*, u32, u32,
|
||||
cXyz const*, csXyz const*, s8, u8*, u8*);
|
||||
/* 80051008 */ int setEffectCenter(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*,
|
||||
csXyz const*, cXyz const*, s8, f32, f32);
|
||||
csXyz const*, cXyz const*, s8, f32, f32);
|
||||
/* 8005113C */ void clearID(u32*, u8*);
|
||||
|
||||
void clearCenterID() { clearID(field_0x8[0], &field_0x36); }
|
||||
void changeWaterOffset(f32 i_offset) { mWaterOffset = i_offset; }
|
||||
void changeRippleOffset(f32 i_offset) { mRippleOffset = i_offset; }
|
||||
u8 getCenterEffType(int i_idx) const {
|
||||
return mCenterEffType[i_idx];
|
||||
}
|
||||
u8 getCenterEffType(int i_idx) const { return mCenterEffType[i_idx]; }
|
||||
JPABaseEmitter* getCenterEmitter(int param_0, int param_1) {
|
||||
return dComIfGp_particle_getEmitter(field_0x8[param_0][param_1]);
|
||||
}
|
||||
@@ -42,8 +40,8 @@ public:
|
||||
class dPaPoT_c : public dPaPo_c {
|
||||
public:
|
||||
/* 8005115C */ int setEffectTwo(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*,
|
||||
cXyz const*, cXyz const*, csXyz const*, cXyz const*, s8, f32,
|
||||
f32);
|
||||
cXyz const*, cXyz const*, csXyz const*, cXyz const*, s8, f32,
|
||||
f32);
|
||||
/* 80051294 */ void clearTwoAllID();
|
||||
|
||||
void clearLeftID() { clearID(mLeftEmitter[0], &field_0x7c); }
|
||||
@@ -74,18 +72,14 @@ public:
|
||||
class dPaPoF_c : public dPaPoT_c {
|
||||
public:
|
||||
/* 800512E8 */ int setEffectFour(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*,
|
||||
cXyz const*, cXyz const*, cXyz const*, cXyz const*,
|
||||
csXyz const*, cXyz const*, s8, f32, f32);
|
||||
cXyz const*, cXyz const*, cXyz const*, cXyz const*,
|
||||
csXyz const*, cXyz const*, s8, f32, f32);
|
||||
/* 80051424 */ void clearFourAllID();
|
||||
|
||||
void clearBLeftID() { clearID(mBackLeftEmitter[0], &field_0xc4); }
|
||||
void clearBRightID() { clearID(mBackRightEmitter[0], &field_0xc5); }
|
||||
u8 getBackRightEffType(int i_idx) const {
|
||||
return mBackRightEffType[i_idx];
|
||||
}
|
||||
u8 getBackLeftEffType(int i_idx) const {
|
||||
return mBackLeftEffType[i_idx];
|
||||
}
|
||||
u8 getBackRightEffType(int i_idx) const { return mBackRightEffType[i_idx]; }
|
||||
u8 getBackLeftEffType(int i_idx) const { return mBackLeftEffType[i_idx]; }
|
||||
JPABaseEmitter* getBackRightEmitter(int param_0, int param_1) {
|
||||
return dComIfGp_particle_getEmitter(mBackRightEmitter[param_0][param_1]);
|
||||
}
|
||||
@@ -96,6 +90,13 @@ public:
|
||||
typedef u8 (dPaPoF_c::*effTypeFunc)(int) const;
|
||||
typedef JPABaseEmitter* (dPaPoF_c::*emitterFunc)(int, int);
|
||||
|
||||
u8 getTypeFour(int param_0, int param_1) const {
|
||||
return (this->*m_typeFourData[param_0])(param_1);
|
||||
}
|
||||
JPABaseEmitter* getEmitterFour(int param_0, int param_1, int param_2) {
|
||||
return (this->*m_emitterFourData[param_0])(param_1, param_2);
|
||||
}
|
||||
|
||||
static effTypeFunc m_typeFourData[];
|
||||
static emitterFunc m_emitterFourData[];
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
#define F_F_OP_KANKYO_MNG_H_
|
||||
|
||||
#include "SSystem/SComponent/c_xyz.h"
|
||||
#include "f_pc/f_pc_manager.h"
|
||||
#include "f_op/f_op_kankyo.h"
|
||||
#include "f_pc/f_pc_manager.h"
|
||||
|
||||
struct fopKyM_prm_class {
|
||||
/* 0x00 */ cXyz mPos;
|
||||
@@ -16,6 +16,8 @@ typedef int (*fopKyM_CreateFunc)(void*);
|
||||
static fopKyM_prm_class* fopKyM_CreateAppend(void);
|
||||
static fopKyM_prm_class* createAppend(int param_1, cXyz* param_2, cXyz* param_3);
|
||||
void fopKyM_Delete(void* param_1);
|
||||
int fopKyM_create(s16 i_procName, int i_param, cXyz* i_pos, cXyz* i_scale,
|
||||
fopKyM_CreateFunc i_createFunc);
|
||||
static int fopKyM_Create(s16 param_1, fopKyM_CreateFunc param_2, void* param_3);
|
||||
base_process_class* fopKyM_fastCreate(s16 param_0, int param_1, cXyz* param_2, cXyz* param_3,
|
||||
fopKyM_CreateFunc);
|
||||
|
||||
@@ -46,11 +46,26 @@ public:
|
||||
void setBombArrowExplode() { field_0x950 = 0; }
|
||||
bool checkBombArrow() const { return mIsBombArrow == true; }
|
||||
|
||||
static fopAc_ac_c* makeArrow(fopAc_ac_c* i_player, u16 param_1) {
|
||||
void setShoot() { fopAcM_SetParam(this, 1); }
|
||||
void setChargeShoot() { fopAcM_SetParam(this, 2); }
|
||||
|
||||
static fopAc_ac_c* makeArrow(fopAc_ac_c* i_actor, u16 param_1) {
|
||||
return (fopAc_ac_c*)fopAcM_fastCreate(PROC_ARROW,
|
||||
param_1 << 8,
|
||||
&i_player->current.pos,
|
||||
fopAcM_GetRoomNo(i_player),
|
||||
&i_actor->current.pos,
|
||||
fopAcM_GetRoomNo(i_actor),
|
||||
NULL,
|
||||
NULL,
|
||||
-1,
|
||||
NULL,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static fopAc_ac_c* makeSlingStone(fopAc_ac_c* i_actor, cXyz* i_pos) {
|
||||
return (fopAc_ac_c*)fopAcM_fastCreate(PROC_ARROW,
|
||||
0x401,
|
||||
i_pos,
|
||||
fopAcM_GetRoomNo(i_actor),
|
||||
NULL,
|
||||
NULL,
|
||||
-1,
|
||||
|
||||
@@ -1,6 +1,85 @@
|
||||
#ifndef D_A_E_SM2_H
|
||||
#define D_A_E_SM2_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/bg/d_bg_s_acch.h"
|
||||
#include "d/cc/d_cc_d.h"
|
||||
|
||||
class e_sm2_class : public fopEn_enemy_c {
|
||||
public:
|
||||
bool checkYellow() { return field_0x5b7 == 3; }
|
||||
|
||||
/* 0x5AC */ request_of_phase_process_class mPhase;
|
||||
/* 0x5B4 */ u8 field_0x5b4;
|
||||
/* 0x5B5 */ u8 field_0x5B5[0x5B7 - 0x5B5];
|
||||
/* 0x5B7 */ u8 field_0x5b7;
|
||||
/* 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;
|
||||
/* 0x698 */ u8 field_0x698[0x6A4 - 0x698];
|
||||
/* 0x6A4 */ s16 field_0x6a4;
|
||||
/* 0x6A6 */ s16 field_0x6a6;
|
||||
/* 0x6A8 */ u8 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];
|
||||
/* 0x708 */ cXyz field_0x708[8];
|
||||
/* 0x768 */ csXyz field_0x768[8];
|
||||
/* 0x798 */ cXyz field_0x798[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;
|
||||
/* 0x838 */ f32 field_0x838;
|
||||
/* 0x83C */ u8 field_0x83c;
|
||||
/* 0x83D */ u8 field_0x83d;
|
||||
/* 0x83E */ u8 field_0x83e;
|
||||
/* 0x83F */ u8 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];
|
||||
/* 0xFD8 */ u32 field_0xfd8;
|
||||
};
|
||||
|
||||
#endif /* D_A_E_SM2_H */
|
||||
|
||||
@@ -63,6 +63,7 @@ public:
|
||||
|
||||
void setBump() { mFlags |= 4; }
|
||||
void setEventWolf() { mFlags |= 0x80; }
|
||||
void setEvent() { mFlags |= 0x8; }
|
||||
|
||||
void setHawkPath(u8 i_pathNo) {
|
||||
if (i_pathNo != 0xFF) {
|
||||
|
||||
@@ -15,14 +15,14 @@ public:
|
||||
/* 80D61044 */ u8 getSwitchBit1();
|
||||
/* 80D61050 */ u8 getSwitchBit2();
|
||||
/* 80D6105C */ void initialize();
|
||||
|
||||
/* 80D61168 */ virtual ~daTag_ShopItem_c();
|
||||
s32 getProcessID() { return field_0x56c; }
|
||||
|
||||
/* 0x56C */ s32 field_0x56c;
|
||||
/* 0x570 */ s16 field_0x570;
|
||||
u32 getProcessID() { return mProcessID; }
|
||||
|
||||
/* 0x56C */ u32 mProcessID;
|
||||
/* 0x570 */ s16 mCreateTimer;
|
||||
/* 0x572 */ u8 field_0x572;
|
||||
/* 0x573 */ u8 field_0x573;
|
||||
|
||||
}; // Size: 0x574
|
||||
|
||||
#endif /* D_A_TAG_SHOP_ITEM_H */
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
#include "d/a/d_a_obj_ss_base.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/msg/d_msg_flow.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
class daTag_SSDrink_c;
|
||||
@@ -32,6 +31,7 @@ public:
|
||||
/* 80D63724 */ ~daTag_SSDrink_c();
|
||||
|
||||
s32 fopAcM_seenPlayerAngleY() { return fopAcM_seenActorAngleY(this, dComIfGp_getPlayer(0)); }
|
||||
bool checkShopOil() const { return field_0x5D2 == 4; }
|
||||
|
||||
/* 0x578 */ dMsgFlow_c field_0x578;
|
||||
/* 0x5C4 */ ProcessFunc mProcessFunc;
|
||||
|
||||
Reference in New Issue
Block a user