daAlink bottle / sumou done (#1996)

* link_bottle done

* link_sumou done

* remove asm
This commit is contained in:
TakaRikka
2023-11-29 09:27:08 -08:00
committed by GitHub
parent 334a1111d5
commit a6d621e0c3
19 changed files with 1541 additions and 73 deletions
+11 -8
View File
@@ -2032,7 +2032,7 @@ public:
/* 800EA4CC */ int procGoronMove();
/* 800EA844 */ BOOL checkSumouVsActor();
/* 800EA8D0 */ void cancelSumouMode();
/* 800EA908 */ void sumouPunchTrigger();
/* 800EA908 */ BOOL sumouPunchTrigger();
/* 800EA92C */ void setSumouPunchStatus();
/* 800EA950 */ int procSumouReadyInit();
/* 800EAA28 */ int procSumouReady();
@@ -2040,7 +2040,7 @@ public:
/* 800EAD84 */ int procSumouMove();
/* 800EB208 */ int procSumouSideMoveInit();
/* 800EB2BC */ int procSumouSideMove();
/* 800EB624 */ int procSumouActionInit(int, int, int);
/* 800EB624 */ int procSumouActionInit(BOOL i_doTrigger, BOOL i_punchTrigger, int unused);
/* 800EBCE0 */ int procSumouAction();
/* 800EC0F8 */ int procSumouStaggerInit();
/* 800EC170 */ int procSumouStagger();
@@ -3206,7 +3206,7 @@ public:
daPy_actorKeep_c* getThrowBoomerangAcKeep() { return &mThrowBoomerangAcKeep; }
s32 getStartRoomNo() { return fopAcM_GetParam(this) & 0x3F; }
bool checkFisingRodLure() const { return mEquipItem == noentry73; }
bool doTrigger() const { return mItemTrigger & BTN_A; }
BOOL doTrigger() const { return mItemTrigger & BTN_A; }
bool swordTrigger() { return itemTriggerCheck(BTN_B); }
bool peepSubjectCancelTrigger() { return itemTriggerCheck(0x8); }
u32 getStartMode() { return (fopAcM_GetParam(this) >> 0xC) & 0x1F; }
@@ -3448,11 +3448,11 @@ private:
/* 0x00710 */ J3DModel* field_0x0710; // related to held item
/* 0x00714 */ J3DModel* field_0x0714; // related to held item
/* 0x00718 */ J3DAnmTextureSRTKey* field_0x0718;
/* 0x0071C */ J3DAnmBase* field_0x071c;
/* 0x00720 */ J3DAnmBase* field_0x0720;
/* 0x0071C */ J3DAnmTextureSRTKey* field_0x071c;
/* 0x00720 */ J3DAnmTextureSRTKey* field_0x0720;
/* 0x00724 */ J3DAnmTevRegKey* field_0x0724;
/* 0x00728 */ J3DAnmBase* field_0x0728;
/* 0x0072C */ J3DAnmBase* field_0x072c;
/* 0x0072C */ J3DAnmTexPattern* field_0x072c;
/* 0x00730 */ mDoExt_bckAnm mItemBck;
/* 0x0074C */ mDoExt_bckAnm mHookTipBck;
/* 0x00768 */ J3DModelData* mpHookKusariModelData;
@@ -3703,7 +3703,10 @@ private:
} /* 0x0300E */ mProcVar3;
/* 0x03014 */ s16 mFallVoiceInit;
/* 0x03016 */ u8 field_0x3016[2];
/* 0x03018 */ s16 field_0x3018;
union {
s16 field_0x3018;
s16 mBottleItemHealAmount;
} /* 0x03018 */ mItemVar0;
/* 0x0301A */ s16 mItemMode;
/* 0x0301C */ s16 field_0x301c;
/* 0x0301E */ s16 field_0x301e;
@@ -6020,7 +6023,7 @@ public:
/* 0x50 */ daAlinkHIO_anm_c mSwingDownAnm;
/* 0x64 */ daAlinkHIO_anm_c mSwingSideAnm;
/* 0x78 */ daAlinkHIO_anm_c mGetAnm;
/* 0x8C */ daAlinkHIO_anm_c field_0x8C;
/* 0x8C */ daAlinkHIO_anm_c mDrinkNastyAnm;
/* 0xA0 */ daAlinkHIO_anm_c mScoopAnm;
}; // Size: 0xB4
+20 -2
View File
@@ -370,6 +370,7 @@ public:
}
u8& getItemLifeCountType() { return mItemLifeCountType; }
u16 getItemNowLife() { return mItemNowLife; }
s16 getItemPachinkoNumCount() { return mItemPachinkoNumCount; }
void clearItemPachinkoNumCount() { mItemPachinkoNumCount = 0; }
u8 getNeedLightDropNum() { return mNeedLightDropNum; }
@@ -1780,6 +1781,14 @@ inline void dComIfGs_setTransformStatus(u8 i_status) {
g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setTransformStatus(i_status);
}
inline void dComIfGs_setEquipBottleItemIn(u8 i_curItem, u8 i_newItem) {
g_dComIfG_gameInfo.info.getPlayer().getItem().setEquipBottleItemIn(i_curItem, i_newItem);
}
inline void dComIfGs_setEquipBottleItemEmpty(u8 i_curItem) {
g_dComIfG_gameInfo.info.getPlayer().getItem().setEquipBottleItemEmpty(i_curItem);
}
void dComIfGp_setSelectItem(int index);
s32 dComIfGp_offHeapLockFlag(int flag);
void dComIfGp_createSubExpHeap2D();
@@ -1825,6 +1834,7 @@ static u8 dComIfGp_getRStatus();
static dAttCatch_c* dComIfGp_att_getCatghTarget();
static void dComIfGp_setBottleStatus(u8 param_0, u8 param_1);
bool dComIfGp_getMapTrans(int i_roomNo, f32* o_transX, f32* o_transY, s16* o_angle);
void dComIfGp_setSelectItemNum(int i_selItemIdx, s16 i_num);
inline void dComIfGp_itemDataInit() {
g_dComIfG_gameInfo.play.itemInit();
@@ -1862,6 +1872,10 @@ inline u8 dComIfGp_att_getCatchChgItem() {
return dComIfGp_getAttention().getCatchChgItem();
}
inline fopAc_ac_c* i_dComIfGp_att_getCatghTarget() {
return dComIfGp_getAttention().getCatghTarget();
}
inline int dComIfGp_att_ZHintRequest(fopAc_ac_c* param_1, int param_2) {
return dComIfGp_getAttention().ZHintRequest(param_1, param_2);
}
@@ -1874,8 +1888,8 @@ inline void dComIfGp_att_LookRequest(fopAc_ac_c* param_0, f32 i_horizontalDist,
inline void dComIfGp_att_CatchRequest(fopAc_ac_c* param_0, u8 param_1, f32 i_horizontalDist,
f32 i_upDist, f32 i_downDist, s16 i_angle, int param_5) {
dComIfGp_getAttention().getCatghTarget().request(param_0, param_1, i_horizontalDist, i_upDist,
i_downDist, i_angle, param_5);
dComIfGp_getAttention().CatchRequest(param_0, param_1, i_horizontalDist, i_upDist,
i_downDist, i_angle, param_5);
}
inline J2DGrafContext* dComIfGp_getCurrentGrafPort() {
@@ -2755,6 +2769,10 @@ inline u8 dComIfGp_getItemLifeCountType() {
return g_dComIfG_gameInfo.play.getItemLifeCountType();
}
inline u16 dComIfGp_getItemNowLife() {
return g_dComIfG_gameInfo.play.getItemNowLife();
}
inline int dComIfGp_getMessageCountNumber() {
return g_dComIfG_gameInfo.play.getMessageCountNumber();
}
+7 -1
View File
@@ -205,7 +205,7 @@ public:
/* 80182AD0 */ void keepLock(int);
/* 8014B010 */ static dist_entry& getDistTable(int);
dAttCatch_c& getCatghTarget() { return mCatghTarget; }
fopAc_ac_c* getCatghTarget() { return mCatghTarget.getCatghTarget(); }
u8 getCatchChgItem() { return mCatghTarget.getChangeItem(); }
BOOL chkFlag(u32 flag) { return (mFlags & flag) ? TRUE : FALSE; }
void setFlag(u32 flag) { mFlags |= flag; }
@@ -222,6 +222,12 @@ public:
mLookTarget.request(param_0, i_horizontalDist, i_upDist, i_downDist, i_angle, param_5);
}
void CatchRequest(fopAc_ac_c* param_0, u8 param_1, f32 i_horizontalDist, f32 i_upDist,
f32 i_downDist, s16 i_angle, int param_5) {
mCatghTarget.request(param_0, param_1, i_horizontalDist, i_upDist, i_downDist, i_angle,
param_5);
}
static dist_entry& i_getDistTable(int i_no) { return dist_table[i_no]; }
static type_tbl_entry loc_type_tbl[3];
+5
View File
@@ -157,6 +157,7 @@ public:
void setItemExplainWindowStatus(u8 i_value) { mItemExplainWindowStatus = i_value; }
void resetDirectUseItem() { mDirectUseItem = 0; }
u16 getFloatingFlowID() { return mFloatingFlowID; }
void onBlinkButton(int i_flag) { mBlinkButton |= i_flag; }
void setCollectCursorPosXY(u8 x, u8 y) {
mCollectCursorPosX = x;
mCollectCursorPosY = y;
@@ -609,6 +610,10 @@ inline void dMeter2Info_setCollectCursorPosXY(u8 x, u8 y) {
g_meter2_info.setCollectCursorPosXY(x, y);
}
inline void dMeter2Info_onBlinkButton(int i_flag) {
g_meter2_info.onBlinkButton(i_flag);
}
const char* dMeter2Info_getNumberTextureName(int pIndex);
void dMeter2Info_recieveLetter();
u8 dMeter2Info_getNewLetterNum();
@@ -1,6 +1,92 @@
#ifndef D_A_NPC_WRESTLER_H
#define D_A_NPC_WRESTLER_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
#include "d/a/d_a_npc.h"
class daNpcWrestler_c : public daNpcF_c {
public:
/* 80B2F28C */ daNpcWrestler_c();
/* 80B2F688 */ void Create();
/* 80B2F974 */ void CreateHeap();
/* 80B2FDB0 */ void Delete();
/* 80B2FDE4 */ void Execute();
/* 80B2FE1C */ void Draw();
/* 80B2FE84 */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 80B30150 */ void createHeapCallBack(fopAc_ac_c*);
/* 80B30170 */ void ctrlJointCallBack(J3DJoint*, int);
/* 80B301BC */ void checkStartUp();
/* 80B308B0 */ void reset();
/* 80B30AD8 */ void setAction(bool (daNpcWrestler_c::*)(void*));
/* 80B30BEC */ void checkArenaInfo();
/* 80B30CA4 */ void checkArenaSub(fopAc_ac_c*);
/* 80B30D48 */ void setOnToArena(f32);
/* 80B30F00 */ void wait(void*);
/* 80B316F4 */ void talk(void*);
/* 80B31EB0 */ void demo(void*);
/* 80B32058 */ void gotoArena(void*);
/* 80B32444 */ void gotoLiving(void*);
/* 80B32850 */ void sumouReady(void*);
/* 80B331CC */ void sumouWait(void*);
/* 80B339EC */ void checkOutOfArenaP();
/* 80B33B3C */ void setNextAction();
/* 80B34654 */ void sumouPunchHit(void*);
/* 80B34CD0 */ void sumouPunchChaseHit(void*);
/* 80B35364 */ void sumouPunchMiss(void*);
/* 80B35780 */ void checkOutOfArenaW();
/* 80B358F0 */ void getJointPos(int);
/* 80B35968 */ void sumouPunchDraw(void*);
/* 80B3606C */ void sumouTackleHit(void*);
/* 80B36908 */ void sumouTackleMiss(void*);
/* 80B36C8C */ void sumouTackleDraw(void*);
/* 80B37270 */ void sumouSideStep(void*);
/* 80B378F4 */ void sumouLostBalance(void*);
/* 80B37C30 */ void sumouPunchShock(void*);
/* 80B37FB8 */ void sumouPunchChaseShock(void*);
/* 80B38518 */ void sumouPunchStagger(void*);
/* 80B389A4 */ void sumouTackleShock(void*);
/* 80B38C90 */ void sumouTackleStagger(void*);
/* 80B39334 */ void sumouTackleStaggerRelease(void*);
/* 80B39554 */ void sumouTacklePush(void*);
/* 80B39C18 */ void sumouTackleRelease(void*);
/* 80B39F88 */ void demoSumouReady(void*);
/* 80B3AE24 */ void demoSumouWin(void*);
/* 80B3B4B4 */ void demoSumouLose(void*);
/* 80B3BC84 */ void demoSumouWin2(void*);
/* 80B3C278 */ void demoSumouLose2(void*);
/* 80B3CA2C */ void demoSumouUnilateralWin(void*);
/* 80B3D0C0 */ void demoTalkAfterLose(void*);
/* 80B3D584 */ void EvCut_grDSEntry(int);
/* 80B3DB50 */ void EvCut_grDSEntry2(int);
/* 80B3DCE8 */ void EvCut_grDSEntry3_4(int);
/* 80B3E0FC */ void EvCut_grDSEntry5(int);
/* 80B3E584 */ void EvCut_grDSLose(int);
/* 80B3EF10 */ void setWrestlerVoice();
/* 80B3FCE8 */ void playMotion();
/* 80B40B3C */ void lookat();
/* 80B2F4A0 */ virtual ~daNpcWrestler_c();
/* 80B3EAE4 */ virtual void setParam();
/* 80B3EB94 */ virtual BOOL main();
/* 80B404FC */ virtual BOOL ctrlBtk();
/* 80B4166C */ virtual void adjustShapeAngle();
/* 80B405E8 */ virtual void setAttnPos();
/* 80B3023C */ virtual bool setExpressionAnm(int, bool);
/* 80B30654 */ virtual bool setExpressionBtp(int);
/* 80B316C8 */ virtual void setExpression(int, f32);
/* 80B3074C */ virtual void setMotionAnm(int, f32);
/* 80B31680 */ virtual void setMotion(int, f32, int);
/* 80B40D1C */ virtual BOOL drawDbgInfo();
/* 80B40D24 */ virtual void drawOtherMdls();
int getWrestlerAction() { return mWrestlerAction; }
u8 getType() { return mSubtype & 0x7F; }
u8 getWrestlerType() { return getType(); }
static u8 mEvtSeqList[84];
/* 0xB48 */ u8 field_0xb48[0xE74 - 0xB48];
/* 0xE74 */ int mWrestlerAction;
};
#endif /* D_A_NPC_WRESTLER_H */