work on link bow, kandelaar, and whistle (#2004)

This commit is contained in:
TakaRikka
2023-12-15 06:04:05 -08:00
committed by GitHub
parent 8293fb7c22
commit 6e58e660d5
21 changed files with 1038 additions and 193 deletions
+9 -7
View File
@@ -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
+1
View File
@@ -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,
+9
View File
@@ -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);
}
+5
View File
@@ -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;
+1
View File
@@ -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; }
+15 -14
View File
@@ -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[];