mirror of
https://github.com/encounter/tp.git
synced 2026-07-11 06:18:46 -07:00
d_a_nbomb mostly done (#2162)
* first pass of nbomb * some nbomb doc * remove asm
This commit is contained in:
+4
-4
@@ -21,8 +21,8 @@ Total | 54.954197% | 2209528 | 4020672
|
||||
Section | Percentage | Decompiled (bytes) | Total (bytes)
|
||||
---|---|---|---
|
||||
main.dol | 54.954197% | 2209528 | 4020672
|
||||
RELs | 38.789690% | 4460940 | 11500324
|
||||
Total | 42.977062% | 6670468 | 15520996
|
||||
RELs | 38.794003% | 4461436 | 11500324
|
||||
Total | 42.980257% | 6670964 | 15520996
|
||||
|
||||
## RELs
|
||||
|
||||
@@ -217,7 +217,7 @@ d_a_midna | 22.953368% | 12404 | 54040
|
||||
d_a_mirror | 100.000000% | 9808 | 9808
|
||||
d_a_movie_player | 23.696790% | 8328 | 35144
|
||||
d_a_myna | 44.792592% | 14124 | 31532
|
||||
d_a_nbomb | 28.739233% | 8808 | 30648
|
||||
d_a_nbomb | 30.357609% | 9304 | 30648
|
||||
d_a_ni | 27.299309% | 8216 | 30096
|
||||
d_a_npc_aru | 34.812103% | 12932 | 37148
|
||||
d_a_npc_ash | 42.736140% | 13320 | 31168
|
||||
@@ -785,4 +785,4 @@ d_a_vrbox2 | 44.907111% | 2804 | 6244
|
||||
d_a_warp_bug | 100.000000% | 2024 | 2024
|
||||
d_a_ykgr | 44.400631% | 2252 | 5072
|
||||
f_pc_profile_lst | 100.000000% | 28156 | 28156
|
||||
Total | 38.789690% | 4460940 | 11500324
|
||||
Total | 38.794003% | 4461436 | 11500324
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
lbl_804C8294:
|
||||
/* 804C8294 38 80 00 00 */ li r4, 0
|
||||
/* 804C8298 80 A3 00 B0 */ lwz r5, 0xb0(r3)
|
||||
/* 804C829C 28 05 00 04 */ cmplwi r5, 4
|
||||
/* 804C82A0 41 82 00 2C */ beq lbl_804C82CC
|
||||
/* 804C82A4 80 03 0B 4C */ lwz r0, 0xb4c(r3)
|
||||
/* 804C82A8 70 00 0A 00 */ andi. r0, r0, 0xa00
|
||||
/* 804C82AC 40 82 00 20 */ bne lbl_804C82CC
|
||||
/* 804C82B0 88 03 0B 54 */ lbz r0, 0xb54(r3)
|
||||
/* 804C82B4 28 00 00 04 */ cmplwi r0, 4
|
||||
/* 804C82B8 41 82 00 18 */ beq lbl_804C82D0
|
||||
/* 804C82BC 28 00 00 05 */ cmplwi r0, 5
|
||||
/* 804C82C0 41 82 00 10 */ beq lbl_804C82D0
|
||||
/* 804C82C4 28 05 00 06 */ cmplwi r5, 6
|
||||
/* 804C82C8 40 82 00 08 */ bne lbl_804C82D0
|
||||
lbl_804C82CC:
|
||||
/* 804C82CC 38 80 00 01 */ li r4, 1
|
||||
lbl_804C82D0:
|
||||
/* 804C82D0 7C 83 23 78 */ mr r3, r4
|
||||
/* 804C82D4 4E 80 00 20 */ blr
|
||||
@@ -1,19 +0,0 @@
|
||||
lbl_804C6DCC:
|
||||
/* 804C6DCC 88 04 04 96 */ lbz r0, 0x496(r4)
|
||||
/* 804C6DD0 28 00 00 02 */ cmplwi r0, 2
|
||||
/* 804C6DD4 41 82 00 2C */ beq lbl_804C6E00
|
||||
/* 804C6DD8 80 A3 0B 4C */ lwz r5, 0xb4c(r3)
|
||||
/* 804C6DDC 54 A0 05 6B */ rlwinm. r0, r5, 0, 0x15, 0x15
|
||||
/* 804C6DE0 4D 82 00 20 */ beqlr
|
||||
/* 804C6DE4 54 A0 06 31 */ rlwinm. r0, r5, 0, 0x18, 0x18
|
||||
/* 804C6DE8 41 82 00 18 */ beq lbl_804C6E00
|
||||
/* 804C6DEC 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
||||
/* 804C6DF0 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
||||
/* 804C6DF4 80 05 5D B4 */ lwz r0, 0x5db4(r5)
|
||||
/* 804C6DF8 7C 04 00 40 */ cmplw r4, r0
|
||||
/* 804C6DFC 4D 82 00 20 */ beqlr
|
||||
lbl_804C6E00:
|
||||
/* 804C6E00 80 03 0B 4C */ lwz r0, 0xb4c(r3)
|
||||
/* 804C6E04 60 00 00 04 */ ori r0, r0, 4
|
||||
/* 804C6E08 90 03 0B 4C */ stw r0, 0xb4c(r3)
|
||||
/* 804C6E0C 4E 80 00 20 */ blr
|
||||
@@ -1,9 +0,0 @@
|
||||
lbl_804C7E94:
|
||||
/* 804C7E94 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 804C7E98 7C 08 02 A6 */ mflr r0
|
||||
/* 804C7E9C 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 804C7EA0 4B FF F4 85 */ bl create__9daNbomb_cFv
|
||||
/* 804C7EA4 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 804C7EA8 7C 08 03 A6 */ mtlr r0
|
||||
/* 804C7EAC 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 804C7EB0 4E 80 00 20 */ blr
|
||||
@@ -1,11 +0,0 @@
|
||||
lbl_804C826C:
|
||||
/* 804C826C 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 804C8270 7C 08 02 A6 */ mflr r0
|
||||
/* 804C8274 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 804C8278 38 80 FF FF */ li r4, -1
|
||||
/* 804C827C 4B FF FC 39 */ bl __dt__9daNbomb_cFv
|
||||
/* 804C8280 38 60 00 01 */ li r3, 1
|
||||
/* 804C8284 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 804C8288 7C 08 03 A6 */ mtlr r0
|
||||
/* 804C828C 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 804C8290 4E 80 00 20 */ blr
|
||||
@@ -1,9 +0,0 @@
|
||||
lbl_804CC200:
|
||||
/* 804CC200 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 804CC204 7C 08 02 A6 */ mflr r0
|
||||
/* 804CC208 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 804CC20C 4B FF FA 55 */ bl draw__9daNbomb_cFv
|
||||
/* 804CC210 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 804CC214 7C 08 03 A6 */ mtlr r0
|
||||
/* 804CC218 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 804CC21C 4E 80 00 20 */ blr
|
||||
@@ -1,9 +0,0 @@
|
||||
lbl_804CBC40:
|
||||
/* 804CBC40 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 804CBC44 7C 08 02 A6 */ mflr r0
|
||||
/* 804CBC48 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 804CBC4C 4B FF F2 9D */ bl execute__9daNbomb_cFv
|
||||
/* 804CBC50 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 804CBC54 7C 08 03 A6 */ mtlr r0
|
||||
/* 804CBC58 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 804CBC5C 4E 80 00 20 */ blr
|
||||
-10
@@ -1,10 +0,0 @@
|
||||
lbl_804C6E10:
|
||||
/* 804C6E10 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 804C6E14 7C 08 02 A6 */ mflr r0
|
||||
/* 804C6E18 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 804C6E1C 7C A4 2B 78 */ mr r4, r5
|
||||
/* 804C6E20 4B FF FF AD */ bl coHitCallback__9daNbomb_cFP10fopAc_ac_c
|
||||
/* 804C6E24 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 804C6E28 7C 08 03 A6 */ mtlr r0
|
||||
/* 804C6E2C 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 804C6E30 4E 80 00 20 */ blr
|
||||
@@ -1,9 +0,0 @@
|
||||
lbl_804C7304:
|
||||
/* 804C7304 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 804C7308 7C 08 02 A6 */ mflr r0
|
||||
/* 804C730C 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 804C7310 4B FF FE 05 */ bl createHeap__9daNbomb_cFv
|
||||
/* 804C7314 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 804C7318 7C 08 03 A6 */ mtlr r0
|
||||
/* 804C731C 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 804C7320 4E 80 00 20 */ blr
|
||||
@@ -1,24 +0,0 @@
|
||||
lbl_804C70C0:
|
||||
/* 804C70C0 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 804C70C4 7C 08 02 A6 */ mflr r0
|
||||
/* 804C70C8 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 804C70CC 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 804C70D0 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 804C70D4 88 03 04 96 */ lbz r0, 0x496(r3)
|
||||
/* 804C70D8 28 00 00 02 */ cmplwi r0, 2
|
||||
/* 804C70DC 40 82 00 20 */ bne lbl_804C70FC
|
||||
/* 804C70E0 7C 83 23 78 */ mr r3, r4
|
||||
/* 804C70E4 7F E4 FB 78 */ mr r4, r31
|
||||
/* 804C70E8 4B FF FE F1 */ bl searchEnemy__9daNbomb_cFP10fopAc_ac_c
|
||||
/* 804C70EC 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 804C70F0 41 82 00 0C */ beq lbl_804C70FC
|
||||
/* 804C70F4 7F E3 FB 78 */ mr r3, r31
|
||||
/* 804C70F8 48 00 00 08 */ b lbl_804C7100
|
||||
lbl_804C70FC:
|
||||
/* 804C70FC 38 60 00 00 */ li r3, 0
|
||||
lbl_804C7100:
|
||||
/* 804C7100 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 804C7104 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 804C7108 7C 08 03 A6 */ mtlr r0
|
||||
/* 804C710C 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 804C7110 4E 80 00 20 */ blr
|
||||
-10
@@ -1,10 +0,0 @@
|
||||
lbl_804C6FB4:
|
||||
/* 804C6FB4 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 804C6FB8 7C 08 02 A6 */ mflr r0
|
||||
/* 804C6FBC 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 804C6FC0 7C C4 33 78 */ mr r4, r6
|
||||
/* 804C6FC4 4B FF FE 71 */ bl tgHitCallback__9daNbomb_cFP12dCcD_GObjInf
|
||||
/* 804C6FC8 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 804C6FCC 7C 08 03 A6 */ mtlr r0
|
||||
/* 804C6FD0 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 804C6FD4 4E 80 00 20 */ blr
|
||||
@@ -1,10 +0,0 @@
|
||||
lbl_804C88CC:
|
||||
/* 804C88CC 80 03 0B 4C */ lwz r0, 0xb4c(r3)
|
||||
/* 804C88D0 54 00 05 AD */ rlwinm. r0, r0, 0, 0x16, 0x16
|
||||
/* 804C88D4 4C 82 00 20 */ bnelr
|
||||
/* 804C88D8 80 03 0B 4C */ lwz r0, 0xb4c(r3)
|
||||
/* 804C88DC 60 00 02 00 */ ori r0, r0, 0x200
|
||||
/* 804C88E0 90 03 0B 4C */ stw r0, 0xb4c(r3)
|
||||
/* 804C88E4 38 00 00 5A */ li r0, 0x5a
|
||||
/* 804C88E8 B0 03 0B 5E */ sth r0, 0xb5e(r3)
|
||||
/* 804C88EC 4E 80 00 20 */ blr
|
||||
+18
-3
@@ -2394,7 +2394,7 @@ public:
|
||||
/* 80107744 */ int procBoardCutTurn();
|
||||
/* 801083C8 */ void hookshotAtHitCallBack(dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
|
||||
/* 801086DC */ void resetHookshotMode();
|
||||
/* 8010871C */ bool setEnemyBombHookshot(fopAc_ac_c*);
|
||||
/* 8010871C */ BOOL setEnemyBombHookshot(fopAc_ac_c*);
|
||||
/* 80108784 */ bool checkLv7BossRoom();
|
||||
/* 801087B0 */ BOOL checkHookshotStickBG(cBgS_PolyInfo&);
|
||||
/* 80108828 */ void cancelHookshotCarry();
|
||||
@@ -3022,8 +3022,8 @@ public:
|
||||
virtual s32 getAtnActorID() const;
|
||||
virtual s32 getItemID() const;
|
||||
virtual s32 getGrabActorID() const;
|
||||
virtual bool exchangeGrabActor(fopAc_ac_c*);
|
||||
virtual bool setForceGrab(fopAc_ac_c*, int, int);
|
||||
virtual BOOL exchangeGrabActor(fopAc_ac_c*);
|
||||
virtual BOOL setForceGrab(fopAc_ac_c*, int, int);
|
||||
virtual void setForcePutPos(cXyz const&);
|
||||
virtual u32 checkPlayerNoDraw();
|
||||
virtual void voiceStart(u32);
|
||||
@@ -3302,6 +3302,7 @@ public:
|
||||
bool checkCopyRodRevive() const { return mProcID == PROC_COPY_ROD_REVIVE; }
|
||||
bool checkHorseGetOffMode() const { return mProcID == PROC_HORSE_GETOFF; }
|
||||
bool checkHorseRideOn() const { return mProcID == PROC_HORSE_RIDE; }
|
||||
bool checkGrabUp() const { return mProcID == PROC_GRAB_UP; }
|
||||
|
||||
BOOL checkRideOn() const { return mRideStatus != 0; }
|
||||
|
||||
@@ -3330,6 +3331,20 @@ public:
|
||||
mDamageColorTime = 32 - (mDamageTimer % 16);
|
||||
}
|
||||
|
||||
BOOL setEnemyBomb(fopAc_ac_c* i_actor) { return exchangeGrabActor(i_actor); }
|
||||
|
||||
void decrementBombCnt() {
|
||||
if (mActiveBombNum != 0) {
|
||||
mActiveBombNum--;
|
||||
}
|
||||
}
|
||||
|
||||
void decrementInsectBombCnt() {
|
||||
if (field_0x2fcf != 0) {
|
||||
field_0x2fcf--;
|
||||
}
|
||||
}
|
||||
|
||||
// Gets the cardinal direction of the Left Stick relative to player facing angle
|
||||
int getDirectionFromShapeAngle() const {
|
||||
return getDirectionFromAngle(field_0x2fe2 - shape_angle.y);
|
||||
|
||||
@@ -610,8 +610,8 @@ public:
|
||||
virtual s32 getAtnActorID() const { return -1; }
|
||||
virtual s32 getItemID() const;
|
||||
virtual s32 getGrabActorID() const; // weak
|
||||
virtual bool exchangeGrabActor(fopAc_ac_c*);
|
||||
virtual bool setForceGrab(fopAc_ac_c*, int, int);
|
||||
virtual BOOL exchangeGrabActor(fopAc_ac_c*);
|
||||
virtual BOOL setForceGrab(fopAc_ac_c*, int, int);
|
||||
virtual void setForcePutPos(cXyz const&);
|
||||
virtual u32 checkPlayerNoDraw();
|
||||
virtual bool checkRopeTag();
|
||||
|
||||
@@ -232,4 +232,13 @@ public:
|
||||
/* 806646F8 */ virtual ~dBgS_StatueAcch();
|
||||
};
|
||||
|
||||
class dBgS_BombAcch : public dBgS_Acch {
|
||||
public:
|
||||
dBgS_BombAcch() {
|
||||
SetBomb();
|
||||
}
|
||||
|
||||
virtual ~dBgS_BombAcch() {}
|
||||
};
|
||||
|
||||
#endif /* D_BG_D_BG_S_ACCH_H */
|
||||
|
||||
+37
-39
@@ -1,48 +1,42 @@
|
||||
#ifndef D_D_BOMB_H
|
||||
#define D_D_BOMB_H
|
||||
|
||||
#include "d/bg/d_bg_s_acch.h"
|
||||
#include "d/cc/d_cc_d.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/d_procname.h"
|
||||
|
||||
class daNbomb_c : public fopAc_ac_c {
|
||||
class dBomb_c : public fopAc_ac_c {
|
||||
public:
|
||||
enum daNbomb_FLG0 { WATER_BOMB = 16 };
|
||||
enum dBomb_PRM {
|
||||
PRM_NORMAL_BOMB_EXPLODE,
|
||||
PRM_BOMB_CARRY,
|
||||
PRM_BOMB_HOOKSHOT,
|
||||
PRM_BOMB_WAIT,
|
||||
PRM_FLOWER_BOMB,
|
||||
PRM_BOMB_BOOMERANG_MOVE,
|
||||
PRM_ENEMY_BOMB_BOOMERANG_MOVE,
|
||||
PRM_INSECT_BOMB_MOVE,
|
||||
PRM_NORMAL_BOMB_PLAYER,
|
||||
PRM_WATER_BOMB_PLAYER,
|
||||
PRM_INSECT_BOMB_PLAYER,
|
||||
PRM_ENEMY_BOMB,
|
||||
PRM_ENEMY_BOMB_BOOMERANG,
|
||||
PRM_ENEMY_BOMB_HOOKSHOT,
|
||||
PRM_ENEMY_WATER_BOMB,
|
||||
PRM_UNK_15,
|
||||
PRM_ENEMY_WATER_BOMB_HOOKSHOT,
|
||||
PRM_BOMB_CARGO_CARRY,
|
||||
PRM_WATER_BOMB_EXPLODE,
|
||||
};
|
||||
|
||||
u32 checkStateFlg0(daNbomb_FLG0 flag) const { return mStateFlg0 & flag; }
|
||||
u32 checkWaterBomb() const { return checkStateFlg0(WATER_BOMB); }
|
||||
|
||||
/* 0x568 */ u8 field_0x568[0x10];
|
||||
/* 0x578 */ dBgS_Acch mAcch;
|
||||
/* 0x750 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x790 */ dCcD_Stts mStts;
|
||||
/* 0x7CC */ dCcD_Sph mSph1;
|
||||
/* 0x904 */ dCcD_Sph mSph2;
|
||||
/* 0xA3C */ u8 field_0xa3c[0x64];
|
||||
/* 0xAA0 */ dBgS_BombLinChk mLinChk;
|
||||
/* 0xB10 */ cBgS_PolyInfo mPolyInfo;
|
||||
/* 0xB20 */ Z2SoundObjSimple mSoundObj;
|
||||
/* 0xB40 */ u8 field_0xb40[0xC];
|
||||
/* 0xB4C */ u32 mStateFlg0;
|
||||
/* 0xB50 */ u8 field_0xb50;
|
||||
/* 0xB51 */ u8 field_0xb51[0x3];
|
||||
/* 0xB54 */ u8 field_0xb54;
|
||||
/* 0xB55 */ u8 field_0xb55[0xB];
|
||||
/* 0xB60 */ LIGHT_INFLUENCE field_0xb60;
|
||||
/* 0xB80 */ WIND_INFLUENCE field_0xb80;
|
||||
};
|
||||
|
||||
class dBomb_c : public daNbomb_c {
|
||||
public:
|
||||
bool checkStateCarry();
|
||||
static bool checkFlowerBombWait(fopAc_ac_c*);
|
||||
bool checkWaterBomb(fopAc_ac_c*);
|
||||
bool checkInsectBombMove(fopAc_ac_c*);
|
||||
static bool checkWaterBomb(fopAc_ac_c*);
|
||||
static bool checkInsectBombMove(fopAc_ac_c*);
|
||||
|
||||
bool checkStateExplode() {
|
||||
return fopAcM_GetParam(this) == 0;
|
||||
}
|
||||
virtual BOOL checkExplodeNow();
|
||||
virtual void deleteBombAndEffect();
|
||||
virtual void setCargoBombExplode();
|
||||
|
||||
bool checkStateExplode() { return fopAcM_GetParam(this) == 0; }
|
||||
|
||||
static bool checkBombActor(fopAc_ac_c* i_actor) {
|
||||
return fopAcM_GetName(i_actor) == PROC_NBOMB;
|
||||
@@ -61,19 +55,23 @@ public:
|
||||
}
|
||||
|
||||
static fopAc_ac_c* createFlowerBomb(cXyz* i_pos, csXyz* i_angle, int param_2) {
|
||||
return (fopAc_ac_c*)fopAcM_fastCreate(PROC_NBOMB, 4, i_pos, param_2, i_angle, NULL, -1, NULL, NULL);
|
||||
return (fopAc_ac_c*)fopAcM_fastCreate(PROC_NBOMB, 4, i_pos, param_2, i_angle, NULL, -1,
|
||||
NULL, NULL);
|
||||
}
|
||||
|
||||
static fopAc_ac_c* createWaterBombExplode(cXyz* i_pos) {
|
||||
return (fopAc_ac_c*)fopAcM_fastCreate(PROC_NBOMB, 18, i_pos, -1, NULL, NULL, -1, NULL, NULL);
|
||||
return (fopAc_ac_c*)fopAcM_fastCreate(PROC_NBOMB, 18, i_pos, -1, NULL, NULL, -1, NULL,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static fopAc_ac_c* createEnemyWaterBomb(cXyz* i_pos, csXyz* i_angle, int i_roomNo) {
|
||||
return (fopAc_ac_c*)fopAcM_fastCreate(PROC_NBOMB, 14, i_pos, i_roomNo, i_angle, NULL, -1, NULL, NULL);
|
||||
return (fopAc_ac_c*)fopAcM_fastCreate(PROC_NBOMB, 14, i_pos, i_roomNo, i_angle, NULL, -1,
|
||||
NULL, NULL);
|
||||
}
|
||||
|
||||
static fopAc_ac_c* createEnemyWaterBombHookshot(cXyz* i_pos, csXyz* i_angle, int i_roomNo) {
|
||||
return (fopAc_ac_c*)fopAcM_fastCreate(PROC_NBOMB, 16, i_pos, i_roomNo, i_angle, NULL, -1, NULL, NULL);
|
||||
return (fopAc_ac_c*)fopAcM_fastCreate(PROC_NBOMB, 16, i_pos, i_roomNo, i_angle, NULL, -1,
|
||||
NULL, NULL);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -48,6 +48,8 @@ u8 dKy_shadow_mode_check(u8 mode);
|
||||
void dKy_shadow_mode_set(u8 mode);
|
||||
void dKy_shadow_mode_reset(u8 mode);
|
||||
void dKy_Itemgetcol_chg_on();
|
||||
void dKy_actor_addcol_amb_set(s16 r, s16 g, s16 b, f32 factor);
|
||||
void dKy_bg_addcol_amb_set(s16 r, s16 g, s16 b, f32 factor);
|
||||
|
||||
struct LIGHT_INFLUENCE {
|
||||
/* 0x00 */ cXyz mPosition;
|
||||
|
||||
@@ -345,6 +345,10 @@ inline MtxP mDoMtx_getIdentity() {
|
||||
return g_mDoMtx_identity;
|
||||
}
|
||||
|
||||
inline MtxP cMtx_getIdentity() {
|
||||
return mDoMtx_getIdentity();
|
||||
}
|
||||
|
||||
class mDoMtx_quatStack_c {
|
||||
public:
|
||||
mDoMtx_quatStack_c() {
|
||||
|
||||
@@ -1,5 +1,126 @@
|
||||
#ifndef D_A_NBOMB_H
|
||||
#define D_A_NBOMB_H
|
||||
|
||||
#include "d/d_bomb.h"
|
||||
#include "d/bg/d_bg_s_acch.h"
|
||||
#include "d/cc/d_cc_d.h"
|
||||
#include "d/a/d_a_player.h"
|
||||
|
||||
class daNbomb_c : public dBomb_c {
|
||||
public:
|
||||
enum daNbomb_FLG0 {
|
||||
FLG0_PLAYER_MAKE = 0x1,
|
||||
FLG0_BOMB_HIT = 0x4,
|
||||
FLG0_WATER_BOMB = 0x10,
|
||||
FLG0_UNDERWATER = 0x20,
|
||||
FLG0_UNK_40 = 0x40,
|
||||
FLG0_NO_HIT_PLAYER = 0x80,
|
||||
FLG0_CARGO_CARRY = 0x100,
|
||||
FLG0_FROZEN = 0x200,
|
||||
FLG0_INSECT_BOMB = 0x400,
|
||||
FLG0_UNK_800 = 0x800,
|
||||
FLG0_DELETE_BOMB = 0x1000,
|
||||
FLG0_UNK_2000 = 0x2000,
|
||||
FLG0_SET_HOOKSHOT_OFFSET = 0x4000,
|
||||
FLG0_UNK_8000 = 0x8000,
|
||||
FLG0_UNK_10000 = 0x10000,
|
||||
FLG0_UNK_20000 = 0x20000,
|
||||
};
|
||||
|
||||
enum daNbomb_TYPE {
|
||||
TYPE_NORMAL_PLAYER,
|
||||
TYPE_WATER_PLAYER,
|
||||
TYPE_INSECT_PLAYER,
|
||||
TYPE_FLOWER,
|
||||
TYPE_INSECT_ENEMY,
|
||||
TYPE_WATER_ENEMY,
|
||||
};
|
||||
|
||||
/* 804C6DCC */ void coHitCallback(fopAc_ac_c*);
|
||||
/* 804C6E34 */ void tgHitCallback(dCcD_GObjInf*);
|
||||
/* 804C6FD8 */ int searchEnemy(fopAc_ac_c*);
|
||||
/* 804C7114 */ int createHeap();
|
||||
/* 804C7324 */ int create();
|
||||
/* 804C7B44 */ daNbomb_c();
|
||||
/* 804C7EB4 */ ~daNbomb_c();
|
||||
/* 804C8294 */ bool checkTimerStop();
|
||||
/* 804C82D8 */ BOOL checkExplode();
|
||||
/* 804C8430 */ void setRoomInfo();
|
||||
/* 804C84D8 */ void setSmokePos();
|
||||
/* 804C8588 */ void setEffect();
|
||||
/* 804C87F0 */ void setHookshotOffset();
|
||||
/* 804C88CC */ void setFreeze();
|
||||
/* 804C88F0 */ BOOL checkWaterIn();
|
||||
/* 804C8928 */ BOOL insectLineCheck();
|
||||
/* 804C8A88 */ void setHitPolygon(int);
|
||||
/* 804C8CF8 */ BOOL procExplodeInit();
|
||||
/* 804C9118 */ BOOL procExplode();
|
||||
/* 804C93E0 */ BOOL procCarryInit();
|
||||
/* 804C955C */ BOOL procCarry();
|
||||
/* 804C9930 */ BOOL procWaitInit();
|
||||
/* 804C9984 */ BOOL procWait();
|
||||
/* 804CA268 */ BOOL procFlowerWaitInit();
|
||||
/* 804CA2EC */ BOOL procFlowerWait();
|
||||
/* 804CA3B8 */ BOOL procBoomerangMoveInit(dCcD_GObjInf*);
|
||||
/* 804CA4E0 */ BOOL procBoomerangMove();
|
||||
/* 804CA688 */ BOOL procInsectMoveInit();
|
||||
/* 804CA780 */ BOOL procInsectMove();
|
||||
/* 804CAEE8 */ int execute();
|
||||
/* 804CBC60 */ int draw();
|
||||
|
||||
virtual BOOL checkExplodeNow();
|
||||
virtual void deleteBombAndEffect();
|
||||
virtual void setCargoBombExplode();
|
||||
|
||||
void onStateFlg0(daNbomb_FLG0 i_flag) { mStateFlg0 |= i_flag; }
|
||||
void offStateFlg0(daNbomb_FLG0 i_flag) { mStateFlg0 &= ~i_flag; }
|
||||
u32 checkStateFlg0(daNbomb_FLG0 i_flag) const { return mStateFlg0 & i_flag; }
|
||||
|
||||
u32 checkWaterBomb() const { return checkStateFlg0(FLG0_WATER_BOMB); }
|
||||
|
||||
static const char* m_arcNameList[6];
|
||||
|
||||
/* 0x56C */ request_of_phase_process_class mPhase;
|
||||
/* 0x574 */ J3DModel* mpModel;
|
||||
/* 0x578 */ dBgS_BombAcch mAcch;
|
||||
/* 0x750 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x790 */ dCcD_Stts mCcStts;
|
||||
/* 0x7CC */ dCcD_Sph mCcSph;
|
||||
/* 0x904 */ dCcD_Sph mSph2;
|
||||
/* 0xA3C */ mDoExt_bckAnm* mpBck;
|
||||
/* 0xA40 */ Mtx field_0xa40;
|
||||
/* 0xA70 */ Mtx field_0xa70;
|
||||
/* 0xAA0 */ dBgS_BombLinChk mLineChk;
|
||||
/* 0xB10 */ cBgS_PolyInfo mInsectHitPolyInfo;
|
||||
/* 0xB20 */ Z2SoundObjSimple mSound;
|
||||
/* 0xB40 */ daPy_boomerangMove_c mBoomerangMove;
|
||||
/* 0xB4C */ u32 mStateFlg0;
|
||||
/* 0xB50 */ u8 mExplodeMode;
|
||||
/* 0xB51 */ u8 field_0xb51;
|
||||
/* 0xB52 */ u8 mNoHitPlayerTimer;
|
||||
/* 0xB53 */ s8 mSoundReverb;
|
||||
/* 0xB54 */ u8 mType;
|
||||
/* 0xB55 */ u8 field_0xB55[0xB58 - 0xB55];
|
||||
/* 0xB58 */ s16 mExTime;
|
||||
/* 0xB5A */ s16 field_0xb5a;
|
||||
/* 0xB5C */ s16 field_0xb5c;
|
||||
/* 0xB5E */ s16 mFreezeTimer;
|
||||
/* 0xB60 */ LIGHT_INFLUENCE mLightInfluence;
|
||||
/* 0xB80 */ WIND_INFLUENCE mWindInfluence;
|
||||
/* 0xBAC */ f32 mExplosionStrength;
|
||||
/* 0xBB0 */ f32 field_0xbb0;
|
||||
/* 0xBB4 */ u32 mPolySound;
|
||||
/* 0xBB8 */ u32 mEffectEmitterIDs[5];
|
||||
/* 0xBCC */ cXyz mEffectPosition;
|
||||
/* 0xBD8 */ cXyz mEffectLastPosition;
|
||||
/* 0xBE4 */ cXyz field_0xbe4;
|
||||
/* 0xBF0 */ cXyz field_0xbf0;
|
||||
/* 0xBFC */ cXyz field_0xbfc;
|
||||
/* 0xC08 */ cXyz field_0xc08;
|
||||
/* 0xC14 */ cXyz field_0xc14;
|
||||
/* 0xC20 */ cXyz field_0xc20;
|
||||
/* 0xC2C */ cXyz field_0xc2c;
|
||||
/* 0xC38 */ BOOL (daNbomb_c::*mProcFunc)();
|
||||
};
|
||||
|
||||
#endif /* D_A_NBOMB_H */
|
||||
|
||||
+1751
-449
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user