mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-06 13:11:05 -04:00
+1
-1
@@ -348,7 +348,7 @@ config.libs = [
|
||||
Object(NonMatching, "d/d_a_obj_tribox_static.cpp"),
|
||||
Object(NonMatching, "d/d_a_ship_static.cpp"),
|
||||
Object(NonMatching, "d/d_a_boko_static.cpp"),
|
||||
Object(NonMatching, "d/d_a_bomb_static.cpp"),
|
||||
Object(Matching, "d/d_a_bomb_static.cpp"),
|
||||
Object(NonMatching, "d/d_a_branch_static.cpp"),
|
||||
Object(NonMatching, "d/d_a_mgameboard_static.cpp"),
|
||||
Object(NonMatching, "d/d_a_itembase_static.cpp"),
|
||||
|
||||
@@ -63,7 +63,7 @@ public:
|
||||
void calc();
|
||||
void calcCreatePtcls();
|
||||
void createChildren(JPABaseParticle*);
|
||||
void createParticle();
|
||||
JPABaseParticle* createParticle();
|
||||
void calcParticle();
|
||||
void calcChild();
|
||||
void calcKey();
|
||||
|
||||
@@ -18,7 +18,8 @@ public:
|
||||
|
||||
f32 GetNowY() const { return mNowY; }
|
||||
void SetNowY(f32 y) { mNowY = y; }
|
||||
const cXyz& GetPointP() { return m_pos; }
|
||||
cXyz* GetPointP() { return &m_pos; }
|
||||
void SetPos(cXyz* pos) { m_pos.set(*pos); }
|
||||
u32 GetWallPrecheck() const { return mWallPrecheck; }
|
||||
void OffWall() { mFlags &= ~2; }
|
||||
|
||||
|
||||
@@ -30,8 +30,8 @@ public:
|
||||
|
||||
virtual ~cBgS_PolyInfo() {}
|
||||
|
||||
u16 GetPolyIndex() const { return mPolyIndex; }
|
||||
u16 GetBgIndex() const { return mBgIndex; }
|
||||
s32 GetPolyIndex() const { return mPolyIndex; }
|
||||
s32 GetBgIndex() const { return mBgIndex; }
|
||||
bool ChkSetInfo() const {
|
||||
if (mPolyIndex == 0xFFFF || mBgIndex == 0x100) {
|
||||
return false;
|
||||
|
||||
@@ -21,6 +21,7 @@ void cLib_addCalcPos2(cXyz* o_value, cXyz const& target, f32 scale, f32 maxStep)
|
||||
void cLib_addCalcPosXZ2(cXyz* o_value, cXyz const& target, f32 scale, f32 maxStep);
|
||||
s16 cLib_addCalcAngleS(s16* o_value, s16 target, s16 scale, s16 maxStep, s16 minStep);
|
||||
void cLib_addCalcAngleS2(s16* o_value, s16 target, s16 scale, s16 maxStep);
|
||||
s32 cLib_addCalcAngleL(s32* pValue, s32 target, s32 scale, s32 maxStep, s32 minStep);
|
||||
|
||||
int cLib_chaseUC(u8* o_value, u8 target, u8 step);
|
||||
int cLib_chaseS(s16* o_value, s16 target, s16 step);
|
||||
@@ -36,18 +37,18 @@ void cLib_offsetPos(cXyz* pDest, cXyz* pSrc, s16 angle, cXyz* vec);
|
||||
s32 cLib_distanceAngleS(s16 x, s16 y);
|
||||
|
||||
template <typename T>
|
||||
inline void cLib_offBit(T& value, u8 bit) {
|
||||
inline void cLib_offBit(T& value, T bit) {
|
||||
value &= ~bit;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline void cLib_onBit(T& value, u8 bit) {
|
||||
inline void cLib_onBit(T& value, T bit) {
|
||||
value |= bit;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline T cLib_checkBit(T& value, u8 bit) {
|
||||
return value & bit;
|
||||
inline T cLib_checkBit(T value, T bit) {
|
||||
return static_cast<T>(value & bit);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
|
||||
+175
-64
@@ -1,75 +1,85 @@
|
||||
#ifndef D_A_BOMB_H
|
||||
#define D_A_BOMB_H
|
||||
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/d_a_obj.h"
|
||||
#include "d/d_particle.h"
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
|
||||
|
||||
|
||||
class daBomb_fuseSmokeEcallBack : public dPa_levelEcallBack {
|
||||
public:
|
||||
void executeAfter(JPABaseEmitter*);
|
||||
daBomb_fuseSmokeEcallBack() {}
|
||||
~daBomb_fuseSmokeEcallBack();
|
||||
|
||||
void init(JPABaseEmitter*);
|
||||
void execute(JPABaseEmitter*);
|
||||
void executeAfter(JPABaseEmitter*);
|
||||
void draw(JPABaseEmitter*);
|
||||
void setup(JPABaseEmitter*, const cXyz*, const csXyz*, signed char);
|
||||
};
|
||||
|
||||
void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
|
||||
|
||||
/* 0x04 */ s16 field_0x04;
|
||||
/* 0x08 */ const cXyz* mpPos;
|
||||
/* 0x0C */ cXyz* field_0x0C;
|
||||
/* 0x10 */ cXyz* field_0x10;
|
||||
/* 0x14 */ JPABaseEmitter* mpEmitter;
|
||||
}; // Size 0x18
|
||||
|
||||
class daBomb_fuseSparksEcallBack : public dPa_levelEcallBack {
|
||||
public:
|
||||
daBomb_fuseSparksEcallBack() {}
|
||||
~daBomb_fuseSparksEcallBack();
|
||||
|
||||
void init(JPABaseEmitter*);
|
||||
void execute(JPABaseEmitter*);
|
||||
void executeAfter(JPABaseEmitter*);
|
||||
void draw(JPABaseEmitter*);
|
||||
void setup(JPABaseEmitter*, const cXyz*, const csXyz*, signed char);
|
||||
};
|
||||
|
||||
void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
|
||||
|
||||
/* 0x04 */ const cXyz* mpPos;
|
||||
/* 0x08 */ JPABaseEmitter* mpEmitter;
|
||||
}; // Size 0x0C
|
||||
|
||||
class dBgS_BombAcch : public dBgS_Acch {
|
||||
public:
|
||||
dBgS_BombAcch() { mbBombThrough = true; }
|
||||
}; // Size 0x1C4
|
||||
|
||||
|
||||
class daBomb_c : public fopAc_ac_c {
|
||||
public:
|
||||
enum State_e {
|
||||
|
||||
};
|
||||
|
||||
s16 getBombRestTime();
|
||||
s16 getBombCheck_Flag();
|
||||
void setBombCheck_Flag();
|
||||
void setBombFire_ON();
|
||||
void setBombNoHit();
|
||||
void setBombOffCoSet();
|
||||
void setBombOnCoSet();
|
||||
void setBombNoEff();
|
||||
void setBombRestTime(short);
|
||||
void setNoGravityTime(short);
|
||||
void prm_make(State_e, bool, bool);
|
||||
void chk_state(State_e) const;
|
||||
void change_state(State_e);
|
||||
void prm_get_state() const;
|
||||
void get_explode_instant() const;
|
||||
void prm_get_cheapEff() const;
|
||||
void prm_get_angXZero() const;
|
||||
void prm_get_version() const;
|
||||
void _prm_chk_version() const;
|
||||
|
||||
daBomb_c();
|
||||
|
||||
void draw_norm();
|
||||
void draw_nut();
|
||||
void draw();
|
||||
void checkExplodeCc_norm();
|
||||
void checkExplodeCc_nut();
|
||||
void checkExplodeCc_cannon();
|
||||
void checkExplodeCc();
|
||||
void checkExplodeTimer();
|
||||
void checkExplode();
|
||||
void checkExplodeBg_norm();
|
||||
void checkExplodeBg_nut();
|
||||
void checkExplodeBg_cannon();
|
||||
void checkExplodeBg();
|
||||
BOOL draw();
|
||||
bool checkExplodeCc_norm();
|
||||
bool checkExplodeCc_nut();
|
||||
bool checkExplodeCc_cannon();
|
||||
bool checkExplodeCc();
|
||||
bool checkExplodeTimer();
|
||||
bool checkExplode();
|
||||
bool checkExplodeBg_norm();
|
||||
bool checkExplodeBg_nut();
|
||||
bool checkExplodeBg_cannon();
|
||||
bool checkExplodeBg();
|
||||
void water_tention();
|
||||
void posMoveF();
|
||||
void bgCrrPos();
|
||||
void bgCrrPos_lava();
|
||||
void bgCrrPos_water();
|
||||
void chk_water_land();
|
||||
void chk_water_in();
|
||||
void chk_water_sink();
|
||||
void chk_lava_hit();
|
||||
void chk_dead_zone();
|
||||
void bound(float);
|
||||
bool chk_water_land();
|
||||
bool chk_water_in();
|
||||
bool chk_water_sink();
|
||||
bool chk_lava_hit();
|
||||
bool chk_dead_zone();
|
||||
void bound(f32);
|
||||
void set_real_shadow_flag();
|
||||
void setRoomInfo();
|
||||
void makeFireEffect(cXyz&, csXyz&);
|
||||
@@ -78,16 +88,16 @@ public:
|
||||
void eff_explode_normal(const csXyz*);
|
||||
void eff_explode_cheap(const csXyz*);
|
||||
void eff_explode();
|
||||
void procExplode_init();
|
||||
void procExplode();
|
||||
void procCarry_init();
|
||||
void procCarry();
|
||||
void procWait_init();
|
||||
void procWait();
|
||||
void waitState_cannon();
|
||||
int procExplode_init();
|
||||
bool procExplode();
|
||||
bool procCarry_init();
|
||||
bool procCarry();
|
||||
bool procWait_init();
|
||||
bool procWait();
|
||||
bool waitState_cannon();
|
||||
void waitState_bomtyu();
|
||||
void procSink();
|
||||
void execute();
|
||||
bool procSink();
|
||||
BOOL execute();
|
||||
void set_wind_vec();
|
||||
void anm_play_nut();
|
||||
void set_mtx();
|
||||
@@ -95,16 +105,117 @@ public:
|
||||
void se_cannon_fly_set();
|
||||
void se_cannon_fly_stop();
|
||||
void eff_water_splash();
|
||||
void bombDelete();
|
||||
void createHeap();
|
||||
void create();
|
||||
daBomb_c();
|
||||
bool bombDelete();
|
||||
bool createHeap();
|
||||
int create();
|
||||
void create_init();
|
||||
};
|
||||
|
||||
class dBgS_BombAcch : public dBgS_Acch {
|
||||
public:
|
||||
enum State_e {
|
||||
STATE_0 = 0,
|
||||
STATE_1 = 1,
|
||||
STATE_2 = 2,
|
||||
STATE_3 = 3,
|
||||
STATE_4 = 4,
|
||||
STATE_5 = 5,
|
||||
STATE_6 = 6,
|
||||
STATE_7 = 7,
|
||||
STATE_8 = 8
|
||||
};
|
||||
|
||||
enum Prm_e {
|
||||
PRM_STATE_W = 8,
|
||||
PRM_STATE_S = 0x00,
|
||||
|
||||
PRM_CHEAP_EFF_W = 1,
|
||||
PRM_CHEAP_EFF_S = 0x10,
|
||||
|
||||
PRM_ANGXZERO_W = 1,
|
||||
PRM_ANGXZERO_S = 0x11,
|
||||
|
||||
};
|
||||
PRM_VERSION_W = 1,
|
||||
PRM_VERSION_S = 0x1F,
|
||||
};
|
||||
|
||||
s16 getBombRestTime();
|
||||
s16 getBombCheck_Flag();
|
||||
void setBombCheck_Flag();
|
||||
void setBombFire_ON();
|
||||
void setBombNoHit();
|
||||
void setBombOffCoSet();
|
||||
void setBombOnCoSet();
|
||||
void setBombNoEff();
|
||||
void setBombRestTime(s16 time);
|
||||
void setNoGravityTime(s16 time);
|
||||
static int prm_make(daBomb_c::State_e, bool, bool);
|
||||
bool chk_state(daBomb_c::State_e) const;
|
||||
void change_state(daBomb_c::State_e);
|
||||
int prm_get_state() const;
|
||||
bool get_explode_instant() const;
|
||||
bool prm_get_cheapEff() const;
|
||||
bool prm_get_angXZero() const;
|
||||
int prm_get_version() const;
|
||||
void _prm_chk_version() const;
|
||||
|
||||
private:
|
||||
typedef bool(daBomb_c::*procFunc)();
|
||||
|
||||
/* 0x290 */ procFunc mFunc;
|
||||
/* 0x29C */ request_of_phase_process_class mPhs;
|
||||
/* 0x2A4 */ J3DModel* mpModel;
|
||||
/* 0x2A8 */ mDoExt_bckAnm mBck0;
|
||||
/* 0x2B8 */ mDoExt_bckAnm mBck1;
|
||||
/* 0x2C8 */ mDoExt_brkAnm mBrk0;
|
||||
/* 0x2E0 */ mDoExt_brkAnm mBrk1;
|
||||
/* 0x2F8 */ s32 mType;
|
||||
/* 0x2FC */ dBgS_BombAcch mAcch;
|
||||
/* 0x4C0 */ dBgS_AcchCir mCir;
|
||||
/* 0x500 */ dBgS_ObjGndChk_Yogan mGndChk;
|
||||
/* 0x554 */ cXyz field_0x554;
|
||||
/* 0x560 */ bool field_0x560;
|
||||
/* 0x561 */ bool mbWaterIn;
|
||||
/* 0x562 */ u8 field_0x562;
|
||||
/* 0x564 */ dCcD_Stts mStts;
|
||||
/* 0x5A0 */ dCcD_Sph mSph;
|
||||
/* 0x6CC */ daBomb_fuseSmokeEcallBack mSmoke;
|
||||
/* 0x6E4 */ daBomb_fuseSparksEcallBack mSparks;
|
||||
/* 0x6F0 */ u8 field_0x6F0;
|
||||
/* 0x6F1 */ u8 field_0x6F1;
|
||||
/* 0x6F2 */ u8 field_0x6F2;
|
||||
/* 0x6F3 */ u8 field_0x6F3;
|
||||
/* 0x6F4 */ u8 field_0x6F4;
|
||||
/* 0x6F5 */ u8 field_0x6F5;
|
||||
/* 0x6F6 */ u8 field_0x6F6;
|
||||
/* 0x6F7 */ u8 field_0x6F7;
|
||||
/* 0x6F8 */ s32 mInitialState;
|
||||
/* 0x6FC */ s16 mRestTime;
|
||||
/* 0x6FE */ s16 field_0x6FE;
|
||||
/* 0x700 */ s16 mNoGravityTime;
|
||||
/* 0x702 */ s16 field_0x702;
|
||||
/* 0x704 */ cXyz mFusePos; //should figure out what this 3 cXyz thing really is
|
||||
/* 0x710 */ cXyz mFusePos2; //seems like several particle structures use it and a couple construct it as a TVec3<f32> array
|
||||
/* 0x71C */ cXyz mFusePos3; //others have no special construction, and it gets passed to functions that take cXyz sometimes
|
||||
/* 0x728 */ LIGHT_INFLUENCE mPntLight;
|
||||
/* 0x748 */ WIND_INFLUENCE mPntWind;
|
||||
/* 0x774 */ u8 field_0x774;
|
||||
/* 0x778 */ f32 field_0x778;
|
||||
/* 0x77C */ u8 field_0x77C;
|
||||
/* 0x77D */ u8 field_0x77D;
|
||||
/* 0x77E */ u8 field_0x77E;
|
||||
/* 0x77F */ u8 field_0x77F;
|
||||
/* 0x780 */ u8 field_0x780;
|
||||
/* 0x781 */ u8 field_0x781;
|
||||
/* 0x782 */ u8 field_0x782;
|
||||
/* 0x784 */ int field_0x784;
|
||||
/* 0x788 */ cXyz mWindVec;
|
||||
/* 0x794 */ u8 field_0x794[0x7C4 - 0x794];
|
||||
/* 0x7C4 */ int mMassCounter;
|
||||
/* 0x7C8 */ int field_0x7C8;
|
||||
|
||||
struct AttrType {
|
||||
const char* resName;
|
||||
u32 heapSize;
|
||||
};
|
||||
static const AttrType m_attrType[];
|
||||
}; // Size 0x7CC
|
||||
|
||||
#endif /* D_A_BOMB_H */
|
||||
|
||||
+146
-60
@@ -1,57 +1,87 @@
|
||||
#ifndef D_A_BOMB2_H
|
||||
#define D_A_BOMB2_H
|
||||
#ifndef D_A_BOMB_2_H
|
||||
#define D_A_BOMB_2_H
|
||||
|
||||
#include "JSystem/JParticle/JPAEmitter.h"
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/d_a_obj.h"
|
||||
#include "d/d_particle.h"
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/actor/d_a_bomb.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
|
||||
namespace daBomb2 {
|
||||
class FuseSmokeCB_c : public dPa_levelEcallBack {
|
||||
public:
|
||||
FuseSmokeCB_c() {}
|
||||
virtual ~FuseSmokeCB_c();
|
||||
|
||||
|
||||
void setOldPosP(const cXyz*, const cXyz*);
|
||||
void deleteCallBack();
|
||||
|
||||
//void init(JPABaseEmitter*);
|
||||
void execute(JPABaseEmitter*);
|
||||
void executeAfter(JPABaseEmitter*);
|
||||
void draw(JPABaseEmitter*);
|
||||
|
||||
void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
|
||||
|
||||
/* 0x04 */ s16 field_0x04;
|
||||
/* 0x08 */ const cXyz* mpPos;
|
||||
/* 0x0C */ const cXyz* field_0x0C;
|
||||
/* 0x10 */ const cXyz* field_0x10;
|
||||
/* 0x14 */ JPABaseEmitter* mpEmitter;
|
||||
}; // Size 0x18
|
||||
|
||||
class FuseSparksCB_c : public dPa_levelEcallBack {
|
||||
public:
|
||||
FuseSparksCB_c() {}
|
||||
virtual ~FuseSparksCB_c();
|
||||
|
||||
void deleteCallBack();
|
||||
|
||||
//void init(JPABaseEmitter*);
|
||||
void execute(JPABaseEmitter*);
|
||||
//void executeAfter(JPABaseEmitter*);
|
||||
void draw(JPABaseEmitter*);
|
||||
|
||||
void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
|
||||
|
||||
/* 0x04 */ const cXyz* mpPos;
|
||||
/* 0x08 */ JPABaseEmitter* mpEmitter;
|
||||
}; // Size 0x0C
|
||||
|
||||
class Env_c {
|
||||
public:
|
||||
void set(const cXyz&);
|
||||
void clean();
|
||||
void is_end() const;
|
||||
bool is_end() const;
|
||||
void proc(const cXyz&);
|
||||
};
|
||||
|
||||
class FuseSmokeCB_c {
|
||||
|
||||
private:
|
||||
/* 0x00 */ LIGHT_INFLUENCE mPntLight;
|
||||
/* 0x20 */ WIND_INFLUENCE mPntWind;
|
||||
/* 0x4C */ u8 field_0x4C;
|
||||
/* 0x50 */ f32 field_0x50;
|
||||
}; // Size 0x54
|
||||
|
||||
class Act_c : public fopAc_ac_c {
|
||||
public:
|
||||
~FuseSmokeCB_c();
|
||||
|
||||
void setOldPosP(const cXyz*, const cXyz*);
|
||||
void deleteCallBack();
|
||||
void execute(JPABaseEmitter*);
|
||||
void executeAfter(JPABaseEmitter*);
|
||||
void draw(JPABaseEmitter*);
|
||||
void setup(JPABaseEmitter*, const cXyz*, const csXyz*, signed char);
|
||||
};
|
||||
|
||||
class FuseSparksCB_c {
|
||||
public:
|
||||
~FuseSparksCB_c();
|
||||
|
||||
void deleteCallBack();
|
||||
void execute(JPABaseEmitter*);
|
||||
void draw(JPABaseEmitter*);
|
||||
void setup(JPABaseEmitter*, const cXyz*, const csXyz*, signed char);
|
||||
};
|
||||
|
||||
class Act_c : public fopAc_ac_c {
|
||||
public:
|
||||
enum Prm_e {
|
||||
|
||||
};
|
||||
Act_c();
|
||||
|
||||
//d_a_bomb_static functions
|
||||
void remove_fuse_effect();
|
||||
void set_time(int);
|
||||
s32 get_time() const;
|
||||
int get_time() const;
|
||||
bool chk_eat() const;
|
||||
void set_eat();
|
||||
void set_no_hit();
|
||||
void chk_explode();
|
||||
|
||||
void solidHeapCB(fopAc_ac_c*);
|
||||
void create_heap_nut();
|
||||
void create_heap();
|
||||
bool chk_explode();
|
||||
|
||||
static int solidHeapCB(fopAc_ac_c*);
|
||||
bool create_heap_nut();
|
||||
bool create_heap();
|
||||
void crr_init();
|
||||
void cc_init();
|
||||
void start_explode_instant();
|
||||
@@ -59,9 +89,8 @@ namespace daBomb2 {
|
||||
void start_carry();
|
||||
void start_proc_call();
|
||||
void create_init();
|
||||
void _create();
|
||||
Act_c();
|
||||
void _delete();
|
||||
int _create();
|
||||
bool _delete();
|
||||
void set_mtx();
|
||||
void init_mtx();
|
||||
void cc_set();
|
||||
@@ -70,8 +99,8 @@ namespace daBomb2 {
|
||||
void bgCrrPos();
|
||||
void bgCrrPos_lava();
|
||||
void bgCrrPos_water();
|
||||
void chk_water_in() const;
|
||||
void chk_lava_in() const;
|
||||
bool chk_water_in() const;
|
||||
bool chk_lava_in() const;
|
||||
void setRoomInfo();
|
||||
void bound(float);
|
||||
void set_nut_exp_interval();
|
||||
@@ -90,16 +119,16 @@ namespace daBomb2 {
|
||||
void se_explode_water();
|
||||
void se_ignition();
|
||||
void set_sound_env(int, int);
|
||||
void chk_exp_cc_nut();
|
||||
void chk_exp_cc();
|
||||
void chk_exp_bg_nut();
|
||||
void chk_exp_bg();
|
||||
void chk_exp_timer();
|
||||
void chk_sink_bg_nut();
|
||||
void chk_sink_bg();
|
||||
void chk_exp_pre();
|
||||
void chk_exp_post();
|
||||
void chk_sink_post();
|
||||
bool chk_exp_cc_nut();
|
||||
bool chk_exp_cc();
|
||||
bool chk_exp_bg_nut();
|
||||
bool chk_exp_bg();
|
||||
bool chk_exp_timer();
|
||||
bool chk_sink_bg_nut();
|
||||
bool chk_sink_bg();
|
||||
bool chk_exp_pre();
|
||||
bool chk_exp_post();
|
||||
bool chk_sink_post();
|
||||
void set_real_shadow_flag();
|
||||
void carry_fuse_start();
|
||||
void on_carry();
|
||||
@@ -124,12 +153,69 @@ namespace daBomb2 {
|
||||
void tensor_explode();
|
||||
void tensor_sink();
|
||||
void tensor_proc_call();
|
||||
void _execute();
|
||||
void is_draw();
|
||||
bool _execute();
|
||||
bool is_draw();
|
||||
void draw_nut();
|
||||
void draw_shadow();
|
||||
void _draw();
|
||||
};
|
||||
};
|
||||
bool _draw();
|
||||
|
||||
#endif /* D_A_BOMB2_H */
|
||||
enum Prm_e {
|
||||
PRM_1_W = 1,
|
||||
PRM_1_S = 0x08,
|
||||
|
||||
PRM_2_W = 2,
|
||||
PRM_2_S = 0x00,
|
||||
};
|
||||
|
||||
private:
|
||||
//some of these might need updating since i initially copied them from daBomb_c
|
||||
/* 0x290 */ request_of_phase_process_class mPhs;
|
||||
/* 0x298 */ J3DModel* mpModel;
|
||||
/* 0x29C */ mDoExt_bckAnm mBck0;
|
||||
/* 0x2AC */ mDoExt_brkAnm mBrk0;
|
||||
/* 0x2C4 */ dBgS_BombAcch mAcch;
|
||||
/* 0x488 */ dBgS_AcchCir mCir;
|
||||
/* 0x4C8 */ dBgS_ObjGndChk_Yogan mGndChk;
|
||||
/* 0x51C */ f32 field_0x51C;
|
||||
/* 0x520 */ f32 field_0x520;
|
||||
/* 0x524 */ bool field_0x524;
|
||||
/* 0x525 */ bool mbWaterIn;
|
||||
/* 0x526 */ u8 field_0x526;
|
||||
/* 0x528 */ f32 field_0x528;
|
||||
/* 0x52C */ dCcD_Stts mStts;
|
||||
/* 0x568 */ dCcD_Sph mSph;
|
||||
/* 0x694 */ int field_0x694;
|
||||
/* 0x698 */ int field_0x698;
|
||||
|
||||
/* 0x69C */ FuseSmokeCB_c mSmoke;
|
||||
/* 0x6B4 */ FuseSparksCB_c mSparks;
|
||||
/* 0x6C0 */ cXyz field_0x6C0;
|
||||
/* 0x6CC */ cXyz field_0x6CC;
|
||||
/* 0x6D8 */ cXyz field_0x6D8;
|
||||
/* 0x6E4 */ Env_c mEnv;
|
||||
/* 0x738 */ int field_0x738;
|
||||
/* 0x73C */ int field_0x73C;
|
||||
/* 0x740 */ u8 field_0x740;
|
||||
/* 0x741 */ u8 field_0x741;
|
||||
/* 0x742 */ u8 field_0x742;
|
||||
/* 0x743 */ u8 field_0x743;
|
||||
/* 0x744 */ bool field_0x744;
|
||||
/* 0x745 */ bool field_0x745;
|
||||
/* 0x748 */ cXyz field_0x748;
|
||||
/* 0x754 */ Mtx field_0x754;
|
||||
/* 0x784 */ f32 field_0x784;
|
||||
/* 0x788 */ f32 field_0x788;
|
||||
/* 0x78C */ f32 field_0x78C;
|
||||
/* 0x790 */ f32 field_0x790;
|
||||
/* 0x794 */ f32 field_0x794;
|
||||
/* 0x798 */ f32 field_0x798;
|
||||
/* 0x79C */ f32 field_0x79C;
|
||||
/* 0x7A0 */ f32 field_0x7A0;
|
||||
/* 0x7A4 */ f32 field_0x7A4;
|
||||
/* 0x7A8 */ s32 field_0x7A8;
|
||||
|
||||
static dCcD_SrcSph M_sph_src;
|
||||
}; // Size 0x7AC
|
||||
}
|
||||
|
||||
#endif /* D_A_BOMB_2_H */
|
||||
|
||||
+1
-1
@@ -94,7 +94,7 @@ public:
|
||||
bool ChkMoveBG_NoDABg(cBgS_PolyInfo&);
|
||||
int GetPolyId0(int, int, int, u32, u32);
|
||||
int GetPolyCamId(int, int);
|
||||
int GetMtrlSndId(cBgS_PolyInfo&);
|
||||
u32 GetMtrlSndId(cBgS_PolyInfo&);
|
||||
int GetExitId(cBgS_PolyInfo&);
|
||||
int GetPolyColor(cBgS_PolyInfo&);
|
||||
int GetGrpRoomInfId(cBgS_PolyInfo&);
|
||||
|
||||
@@ -40,6 +40,7 @@ public:
|
||||
|
||||
f32 GetWallH() { return m_wall_h; }
|
||||
f32 GetWallR() { return m_wall_r; }
|
||||
s16 GetWallAngleY() { return m_wall_angle_y; }
|
||||
void SetWallH(f32 h) { m_wall_h = h; }
|
||||
void ClrWallHDirect() { m_flags &= ~WALL_H_DIRECT; }
|
||||
bool ChkWallHit() { return m_flags & WALL_HIT; }
|
||||
|
||||
@@ -26,7 +26,17 @@ public:
|
||||
dBgS_ObjGndChk() { SetObj(); }
|
||||
|
||||
virtual ~dBgS_ObjGndChk() {}
|
||||
};
|
||||
}; // Size: 0x54
|
||||
|
||||
class dBgS_ObjGndChk_Yogan : public dBgS_ObjGndChk {
|
||||
public:
|
||||
/* 806bf6a4 */ dBgS_ObjGndChk_Yogan() {
|
||||
OffNormalGrp();
|
||||
OnYoganGrp();
|
||||
}
|
||||
|
||||
/* 806bf53c */ virtual ~dBgS_ObjGndChk_Yogan();
|
||||
}; // Size: 0x54
|
||||
|
||||
class dBgS_ObjGndChk_Wtr : public dBgS_ObjGndChk {
|
||||
public:
|
||||
|
||||
@@ -1612,6 +1612,16 @@ inline JPABaseEmitter* dComIfGp_particle_setToon(u16 particleID, const cXyz* pos
|
||||
pPrmColor, pEnvColor, pScale2D);
|
||||
}
|
||||
|
||||
inline JPABaseEmitter* dComIfGp_particle_setToonP1(u16 particleID, const cXyz* pos,
|
||||
const csXyz* angle, const cXyz* scale, u8 alpha,
|
||||
dPa_levelEcallBack* pCallBack, s8 setupInfo,
|
||||
const GXColor* pPrmColor, const GXColor* pEnvColor,
|
||||
const cXyz* pScale2D) {
|
||||
dPa_control_c* pParticle = g_dComIfG_gameInfo.play.getParticle();
|
||||
return pParticle->setToonP1(particleID, pos, angle, scale, alpha, pCallBack, setupInfo,
|
||||
pPrmColor, pEnvColor, pScale2D);
|
||||
}
|
||||
|
||||
inline JPABaseEmitter* dComIfGp_particle_setProjection(u16 particleID, const cXyz* pos, const csXyz* angle,
|
||||
const cXyz* scale, u8 alpha,
|
||||
dPa_levelEcallBack* pCallBack, s8 setupInfo,
|
||||
|
||||
@@ -393,6 +393,9 @@ void dKy_set_nexttime(f32);
|
||||
void dKy_Sound_set(cXyz i_pos, int param_1, unsigned int i_actorID, int param_3);
|
||||
void dKy_itudemo_se();
|
||||
void dKy_actor_addcol_set(s16, s16, s16, f32);
|
||||
void dKy_actor_addcol_amb_set(s16, s16, s16, f32);
|
||||
void dKy_bg_addcol_amb_set(s16, s16, s16, f32);
|
||||
void dKy_bg_addcol_dif_set(s16, s16, s16, f32);
|
||||
void dKy_plight_set(LIGHT_INFLUENCE*);
|
||||
void dKy_efplight_set(LIGHT_INFLUENCE* param_0);
|
||||
void dKy_plight_cut(LIGHT_INFLUENCE* param_0);
|
||||
|
||||
@@ -354,7 +354,7 @@ public:
|
||||
void draw(JPADrawInfo*, u8);
|
||||
JPABaseEmitter* set(u8, u16, cXyz const*, csXyz const*, cXyz const*, u8, dPa_levelEcallBack*,
|
||||
s8, GXColor const*, GXColor const*, cXyz const*);
|
||||
void setBombSmoke(u16, cXyz const*, csXyz const*, cXyz const*, u8);
|
||||
JPABaseEmitter* setBombSmoke(u16, cXyz const*, csXyz const*, cXyz const*, u8);
|
||||
void setSimpleLand(int, cXyz const*, csXyz const*, f32, f32, f32, dKy_tevstr_c*, int*, int);
|
||||
void setSimpleLand(cBgS_PolyInfo&, cXyz const*, csXyz const*, f32, f32, f32, dKy_tevstr_c*,
|
||||
int*, int);
|
||||
@@ -382,6 +382,12 @@ public:
|
||||
const cXyz* pScale2D) {
|
||||
return set(2, particleID, pos, angle, scale, alpha, pCallBack, setupInfo, pPrmColor, pEnvColor, pScale2D);
|
||||
}
|
||||
JPABaseEmitter* setToonP1(u16 particleID, const cXyz* pos, const csXyz* angle,
|
||||
const cXyz* scale, u8 alpha, dPa_levelEcallBack* pCallBack,
|
||||
s8 setupInfo, const GXColor* pPrmColor, const GXColor* pEnvColor,
|
||||
const cXyz* pScale2D) {
|
||||
return set(3, particleID, pos, angle, scale, alpha, pCallBack, setupInfo, pPrmColor, pEnvColor, pScale2D);
|
||||
}
|
||||
JPABaseEmitter* setProjection(u16 particleID, const cXyz* pos, const csXyz* angle,
|
||||
const cXyz* scale, u8 alpha, dPa_levelEcallBack* pCallBack,
|
||||
s8 setupInfo, const GXColor* pPrmColor, const GXColor* pEnvColor,
|
||||
|
||||
+2
-1
@@ -286,6 +286,7 @@ struct FuncTable;
|
||||
class dStage_dt_c {
|
||||
public:
|
||||
dStage_dt_c() {}
|
||||
~dStage_dt_c() {}
|
||||
|
||||
/* vt[ 2] */ virtual void init() = 0;
|
||||
/* vt[ 3] */ virtual int getRoomNo() const = 0;
|
||||
@@ -831,7 +832,7 @@ public:
|
||||
|
||||
static void setBgW(int param_0, dBgW_base* i_bgw) { mStatus[param_0].mpBgW = i_bgw; }
|
||||
|
||||
BOOL checkStatusFlag(int i_roomNo, u8 flag) const {
|
||||
bool checkStatusFlag(int i_roomNo, u8 flag) const {
|
||||
return cLib_checkBit(mStatus[i_roomNo].mFlags, flag);
|
||||
}
|
||||
|
||||
|
||||
@@ -223,6 +223,10 @@ inline void fopAcM_SetModel(fopAc_ac_c* actor, J3DModel* model) {
|
||||
actor->model = model;
|
||||
}
|
||||
|
||||
inline J3DModel* fopAcM_GetModel(fopAc_ac_c* actor) {
|
||||
return actor->model;
|
||||
}
|
||||
|
||||
inline fopAcM_prm_class* fopAcM_GetAppend(void* actor) {
|
||||
return (fopAcM_prm_class*)fpcM_GetAppend(actor);
|
||||
}
|
||||
|
||||
@@ -5,6 +5,13 @@
|
||||
#include "SSystem/SComponent/c_sxyz.h"
|
||||
#include "SSystem/SComponent/c_phase.h"
|
||||
|
||||
class dCamera_c {
|
||||
u8 m_[0x800];
|
||||
|
||||
public:
|
||||
void ForceLockOff(unsigned int pcId);
|
||||
};
|
||||
|
||||
class camera_process_class : public view_class {
|
||||
public:
|
||||
/* 0x210 */ create_tag_class mDwTg;
|
||||
@@ -21,8 +28,8 @@ public:
|
||||
class camera_class : public camera_process_class {
|
||||
public:
|
||||
/* 0x23C */ int field_0x23c;
|
||||
/* 0x240 */ request_of_phase_process_class mPhaseReq;
|
||||
// /* 0x248 */ dCamera_c mCamera;
|
||||
/* 0x240 */ int field_0x244;
|
||||
/* 0x244 */ dCamera_c mCamera;
|
||||
};
|
||||
|
||||
struct camera_process_profile_definition {
|
||||
|
||||
@@ -3,34 +3,7 @@
|
||||
|
||||
#include "SSystem/SComponent/c_phase.h"
|
||||
#include "SSystem/SComponent/c_sxyz.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_view.h"
|
||||
|
||||
struct dCamera_c {
|
||||
u8 m_[0x800];
|
||||
};
|
||||
|
||||
typedef struct leafdraw_method_class leafdraw_method_class;
|
||||
|
||||
class camera_process_class : public view_class {
|
||||
public:
|
||||
/* 0x210 */ create_tag_class mCreateTag;
|
||||
/* 0x224 */ leafdraw_method_class* mpMtd;
|
||||
/* 0x228 */ u8 field_0x228[4];
|
||||
/* 0x22C */ s8 mPrm1;
|
||||
/* 0x22D */ s8 mPrm2;
|
||||
/* 0x22E */ s8 mPrm3;
|
||||
/* 0x22F */ s8 field_0x22f;
|
||||
/* 0x230 */ csXyz mAngle;
|
||||
/* 0x238 */ int field_0x238;
|
||||
};
|
||||
|
||||
class camera_class : public camera_process_class {
|
||||
public:
|
||||
/* 0x23C */ int field_0x23c;
|
||||
/* 0x240 */ request_of_phase_process_class mPhaseReq;
|
||||
/* 0x248 */ dCamera_c mCamera;
|
||||
};
|
||||
#include "f_op/f_op_camera.h"
|
||||
|
||||
/* void fopCamM_SetNear(camera_class* cam, f32 near) {
|
||||
cam->mNear = near;
|
||||
|
||||
@@ -16,7 +16,7 @@ void fopKyM_Delete(void* param_1);
|
||||
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);
|
||||
int fopKyM_createWpillar(cXyz const* i_pos, f32 scale, int i_param);
|
||||
int fopKyM_createWpillar(cXyz const* i_pos, f32 scaleXZ, f32 scaleY, int i_param);
|
||||
|
||||
inline void* fopKyM_GetAppend(void* param_0) {
|
||||
return fpcM_GetAppend(param_0);
|
||||
|
||||
@@ -70,6 +70,10 @@ inline void mDoAud_seStart(u32 i_sfxID, Vec* i_sePos, u32 param_2, s8 i_reverb)
|
||||
mDoAud_zelAudio_c::getInterface()->seStart(i_sfxID, i_sePos, param_2, i_reverb, 1.0f, 1.0f, -1.0f, -1.0f, 0);
|
||||
}
|
||||
|
||||
inline void mDoAud_seStopActor(Vec* param_1, u32 param_2) {
|
||||
mDoAud_zelAudio_c::getInterface()->seStopActor(param_1, param_2);
|
||||
}
|
||||
|
||||
inline void mDoAud_seDeleteObject(Vec* i_sePos) {
|
||||
mDoAud_zelAudio_c::getInterface()->seDeleteObject(i_sePos);
|
||||
}
|
||||
|
||||
@@ -16,15 +16,15 @@ struct mDoLib_clipper {
|
||||
mClipper.calcViewFrustum();
|
||||
}
|
||||
|
||||
static u32 clip(const Mtx m, const Vec* max, const Vec* min) {
|
||||
static s32 clip(const Mtx m, const Vec* max, const Vec* min) {
|
||||
return mClipper.clip(m, (Vec*)max, (Vec*)min);
|
||||
}
|
||||
|
||||
static u32 clip(const Mtx m, Vec center, f32 radius) {
|
||||
static s32 clip(const Mtx m, Vec center, f32 radius) {
|
||||
return mClipper.clip(m, center, radius);
|
||||
}
|
||||
|
||||
static u32 clip(J3DModel*);
|
||||
static s32 clip(J3DModel*);
|
||||
|
||||
static f32 getFar() { return mSystemFar; }
|
||||
static f32 getFovyRate() { return mFovyRate; }
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include "d/d_kankyo_wether.h"
|
||||
#include "d/actor/d_a_agb.h"
|
||||
#include "d/actor/d_a_player_link.h"
|
||||
#include "d/actor/d_a_bomb.h"
|
||||
#include "m_Do/m_Do_gba_com.h"
|
||||
|
||||
// need to figure out what's putting this data in front of a bunch of rels with the compiler-generated symbol names
|
||||
@@ -1069,12 +1070,6 @@ BOOL daAgbsw0_c::ExeSubMW() {
|
||||
return true;
|
||||
}
|
||||
|
||||
class daBomb_c {
|
||||
public:
|
||||
enum State_e { EIGHT = 8, };
|
||||
bool chk_state(State_e) const;
|
||||
};
|
||||
|
||||
BOOL daAgbsw0_c::ExeSubT() {
|
||||
u8 sw = getSw0();
|
||||
|
||||
@@ -1100,7 +1095,7 @@ BOOL daAgbsw0_c::ExeSubT() {
|
||||
else {
|
||||
if(g_mDoGaC_gbaCom.mDoGaC_GbaLink()) {
|
||||
if(g_mDoGaC_gbaCom.mDoGaC_SendStatusCheck(0xF)) {
|
||||
if(mCyl.ChkTgHit() && mCyl.GetTgHitAc() && fopAcM_GetName(mCyl.GetTgHitAc()) == PROC_BOMB && ((daBomb_c*)mCyl.GetTgHitAc())->chk_state(daBomb_c::EIGHT)) {
|
||||
if(mCyl.ChkTgHit() && mCyl.GetTgHitAc() && fopAcM_GetName(mCyl.GetTgHitAc()) == PROC_BOMB && ((daBomb_c*)mCyl.GetTgHitAc())->chk_state(daBomb_c::STATE_8)) {
|
||||
mSE = BigLittleChange(0x12);
|
||||
g_mDoGaC_gbaCom.mDoGaC_SendDataSet((u32*)&mSE, 4, 0xF, 0);
|
||||
fopAcM_onSwitch(this, sw);
|
||||
|
||||
+1138
-166
File diff suppressed because it is too large
Load Diff
+1073
-497
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,43 @@
|
||||
// Not sure what originally went in here but createHeap needs it for assert filenames
|
||||
|
||||
bool daBomb_c::createHeap() {
|
||||
bool ret;
|
||||
if(mType == 1) {
|
||||
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(m_attrType[mType].resName, 0xC);
|
||||
JUT_ASSERT(0x9A5, modelData != 0);
|
||||
mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000022);
|
||||
|
||||
J3DAnmTransform* bck0_data = (J3DAnmTransform*)dComIfG_getObjectRes(m_attrType[mType].resName, 0x8);
|
||||
JUT_ASSERT(0x9AE, bck0_data != 0);
|
||||
int temp = mBck0.init(modelData, bck0_data, true, 0, 1.0f, 0, -1, false);
|
||||
|
||||
J3DAnmTransform* bck1_data = (J3DAnmTransform*)dComIfG_getObjectRes(m_attrType[mType].resName, 0x7);
|
||||
JUT_ASSERT(0x9B4, bck1_data != 0);
|
||||
int temp2 = mBck1.init(modelData, bck1_data, true, 0, 1.0f, 0, -1, false);
|
||||
|
||||
J3DAnmTevRegKey* brk0_data = (J3DAnmTevRegKey*)dComIfG_getObjectRes(m_attrType[mType].resName, 0x11);
|
||||
JUT_ASSERT(0x9BB, brk0_data != 0);
|
||||
int temp3 = mBrk0.init(modelData, brk0_data, true, 0, 1.0f, 0, -1, false, 0);
|
||||
|
||||
J3DAnmTevRegKey* brk1_data = (J3DAnmTevRegKey*)dComIfG_getObjectRes(m_attrType[mType].resName, 0x10);
|
||||
JUT_ASSERT(0x9C1, brk1_data != 0);
|
||||
int temp4 = mBrk1.init(modelData, brk1_data, true, 0, 1.0f, 0, -1, false, 0);
|
||||
|
||||
return mpModel && temp && temp2 && temp3 && temp4;
|
||||
}
|
||||
else {
|
||||
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(m_attrType[mType].resName, 0x3C);
|
||||
JUT_ASSERT(0x9CE, modelData != 0);
|
||||
mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000002);
|
||||
|
||||
if(!mpModel) {
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
J3DAnmTransform* bck0_data = (J3DAnmTransform*)dComIfG_getObjectRes(m_attrType[mType].resName, 0xB);
|
||||
int temp = mBck0.init(modelData, bck0_data, false, 2, 1.0f, 0, -1, false);
|
||||
|
||||
return temp != 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
+92
-66
@@ -5,134 +5,160 @@
|
||||
|
||||
#include "d/actor/d_a_bomb.h"
|
||||
#include "d/actor/d_a_bomb2.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
|
||||
#define L_daBomb_Version 1
|
||||
|
||||
/* 80067FA0-80067FD0 .text getBombRestTime__8daBomb_cFv */
|
||||
s16 daBomb_c::getBombRestTime() {
|
||||
/* Nonmatching */
|
||||
_prm_chk_version();
|
||||
|
||||
return mRestTime;
|
||||
}
|
||||
|
||||
/* 80067FD0-80068000 .text getBombCheck_Flag__8daBomb_cFv */
|
||||
s16 daBomb_c::getBombCheck_Flag() {
|
||||
/* Nonmatching */
|
||||
_prm_chk_version();
|
||||
|
||||
return field_0x6F1;
|
||||
}
|
||||
|
||||
/* 80068000-80068034 .text setBombCheck_Flag__8daBomb_cFv */
|
||||
void daBomb_c::setBombCheck_Flag() {
|
||||
/* Nonmatching */
|
||||
_prm_chk_version();
|
||||
|
||||
field_0x6F1 = true;
|
||||
}
|
||||
|
||||
/* 80068034-80068068 .text setBombFire_ON__8daBomb_cFv */
|
||||
void daBomb_c::setBombFire_ON() {
|
||||
/* Nonmatching */
|
||||
_prm_chk_version();
|
||||
|
||||
field_0x6F2 = true;
|
||||
}
|
||||
|
||||
/* 80068068-800680CC .text setBombNoHit__8daBomb_cFv */
|
||||
void daBomb_c::setBombNoHit() {
|
||||
/* Nonmatching */
|
||||
_prm_chk_version();
|
||||
|
||||
mSph.GetObjTg().OffSPrmBit(cCcD_ObjCommonBase::CO_SPRM_SET);
|
||||
mSph.GetObjCo().OffSPrmBit(cCcD_ObjCommonBase::CO_SPRM_SET);
|
||||
mSph.GetObjAt().OffSPrmBit(cCcD_ObjCommonBase::CO_SPRM_SET);
|
||||
mSph.GetObjAt().OffSPrmBit(cCcD_ObjCommonBase::CO_SPRM_SET);
|
||||
|
||||
field_0x6F3 = true;
|
||||
}
|
||||
|
||||
/* 800680CC-80068104 .text setBombOffCoSet__8daBomb_cFv */
|
||||
void daBomb_c::setBombOffCoSet() {
|
||||
/* Nonmatching */
|
||||
_prm_chk_version();
|
||||
|
||||
mSph.GetObjCo().OffSPrmBit(cCcD_ObjCommonBase::CO_SPRM_SET);
|
||||
}
|
||||
|
||||
/* 80068104-8006813C .text setBombOnCoSet__8daBomb_cFv */
|
||||
void daBomb_c::setBombOnCoSet() {
|
||||
/* Nonmatching */
|
||||
_prm_chk_version();
|
||||
|
||||
mSph.GetObjCo().OnSPrmBit(cCcD_ObjCommonBase::CO_SPRM_SET);
|
||||
}
|
||||
|
||||
/* 8006813C-800681CC .text setBombNoEff__8daBomb_cFv */
|
||||
void daBomb_c::setBombNoEff() {
|
||||
/* Nonmatching */
|
||||
_prm_chk_version();
|
||||
|
||||
if(mSmoke.mpEmitter) {
|
||||
mSmoke.mpEmitter->mpEmitterCallBack = 0;
|
||||
mSmoke.mpEmitter->becomeInvalidEmitter();
|
||||
}
|
||||
mSmoke.mpEmitter = 0;
|
||||
|
||||
if(mSparks.mpEmitter) {
|
||||
mSparks.mpEmitter->mpEmitterCallBack = 0;
|
||||
mSparks.mpEmitter->becomeInvalidEmitter();
|
||||
}
|
||||
mSparks.mpEmitter = 0;
|
||||
}
|
||||
|
||||
/* 800681CC-80068208 .text setBombRestTime__8daBomb_cFs */
|
||||
void daBomb_c::setBombRestTime(short) {
|
||||
/* Nonmatching */
|
||||
void daBomb_c::setBombRestTime(s16 time) {
|
||||
_prm_chk_version();
|
||||
|
||||
mRestTime = time;
|
||||
}
|
||||
|
||||
/* 80068208-80068244 .text setNoGravityTime__8daBomb_cFs */
|
||||
void daBomb_c::setNoGravityTime(short) {
|
||||
/* Nonmatching */
|
||||
void daBomb_c::setNoGravityTime(s16 time) {
|
||||
_prm_chk_version();
|
||||
|
||||
mNoGravityTime = time;
|
||||
}
|
||||
|
||||
/* 80068244-80068274 .text prm_make__8daBomb_cFQ28daBomb_c7State_ebb */
|
||||
void daBomb_c::prm_make(daBomb_c::State_e, bool, bool) {
|
||||
/* Nonmatching */
|
||||
int daBomb_c::prm_make(daBomb_c::State_e state, bool param_1, bool param_2) {
|
||||
return (((param_2 ? 1 : 0) << 17) | (state | ((param_1 ? 1 : 0) << 16))) | 0x80000000;
|
||||
}
|
||||
|
||||
/* 80068274-800682C0 .text chk_state__8daBomb_cCFQ28daBomb_c7State_e */
|
||||
void daBomb_c::chk_state(daBomb_c::State_e) const {
|
||||
/* Nonmatching */
|
||||
bool daBomb_c::chk_state(daBomb_c::State_e state) const {
|
||||
_prm_chk_version();
|
||||
|
||||
return state == prm_get_state();
|
||||
}
|
||||
|
||||
/* 800682C0-800682F0 .text change_state__8daBomb_cFQ28daBomb_c7State_e */
|
||||
void daBomb_c::change_state(daBomb_c::State_e) {
|
||||
/* Nonmatching */
|
||||
void daBomb_c::change_state(daBomb_c::State_e new_state) {
|
||||
mBase.mParameters = (mBase.mParameters & ~(((1 << PRM_STATE_W) - 1) << PRM_STATE_S)) | (new_state << PRM_STATE_S); // & 0xFF000000
|
||||
|
||||
_prm_chk_version();
|
||||
}
|
||||
|
||||
/* 800682F0-8006832C .text prm_get_state__8daBomb_cCFv */
|
||||
void daBomb_c::prm_get_state() const {
|
||||
/* Nonmatching */
|
||||
int daBomb_c::prm_get_state() const {
|
||||
_prm_chk_version();
|
||||
|
||||
return daObj::PrmAbstract(this, PRM_STATE_W, PRM_STATE_S);
|
||||
}
|
||||
|
||||
/* 8006832C-80068340 .text get_explode_instant__8daBomb_cCFv */
|
||||
void daBomb_c::get_explode_instant() const {
|
||||
/* Nonmatching */
|
||||
bool daBomb_c::get_explode_instant() const {
|
||||
return field_0x784 == true;
|
||||
}
|
||||
|
||||
/* 80068340-80068388 .text prm_get_cheapEff__8daBomb_cCFv */
|
||||
void daBomb_c::prm_get_cheapEff() const {
|
||||
/* Nonmatching */
|
||||
bool daBomb_c::prm_get_cheapEff() const {
|
||||
_prm_chk_version();
|
||||
|
||||
return daObj::PrmAbstract(this, PRM_CHEAP_EFF_W, PRM_CHEAP_EFF_S);
|
||||
}
|
||||
|
||||
/* 80068388-800683D0 .text prm_get_angXZero__8daBomb_cCFv */
|
||||
void daBomb_c::prm_get_angXZero() const {
|
||||
/* Nonmatching */
|
||||
bool daBomb_c::prm_get_angXZero() const {
|
||||
_prm_chk_version();
|
||||
|
||||
return daObj::PrmAbstract(this, PRM_ANGXZERO_W, PRM_ANGXZERO_S);
|
||||
}
|
||||
|
||||
/* 800683D0-800683F8 .text prm_get_version__8daBomb_cCFv */
|
||||
void daBomb_c::prm_get_version() const {
|
||||
/* Nonmatching */
|
||||
int daBomb_c::prm_get_version() const {
|
||||
return daObj::PrmAbstract(this, PRM_VERSION_W, PRM_VERSION_S);
|
||||
}
|
||||
|
||||
/* 800683F8-80068450 .text _prm_chk_version__8daBomb_cCFv */
|
||||
void daBomb_c::_prm_chk_version() const {
|
||||
/* Nonmatching */
|
||||
int ver = prm_get_version();
|
||||
JUT_ASSERT(0xCE, ver == L_daBomb_Version);
|
||||
}
|
||||
|
||||
/* 80068450-80068488 .text remove_fuse_effect__Q27daBomb25Act_cFv */
|
||||
void daBomb2::Act_c::remove_fuse_effect() {
|
||||
/* Nonmatching */
|
||||
mSmoke.deleteCallBack();
|
||||
mSparks.deleteCallBack();
|
||||
}
|
||||
|
||||
/* 80068488-80068490 .text set_time__Q27daBomb25Act_cFi */
|
||||
void daBomb2::Act_c::set_time(int) {
|
||||
/* Nonmatching */
|
||||
void daBomb2::Act_c::set_time(int time) {
|
||||
field_0x738 = time;
|
||||
}
|
||||
|
||||
/* 80068490-80068498 .text get_time__Q27daBomb25Act_cCFv */
|
||||
s32 daBomb2::Act_c::get_time() const {
|
||||
/* Nonmatching */
|
||||
int daBomb2::Act_c::get_time() const {
|
||||
return field_0x738;
|
||||
}
|
||||
|
||||
/* 80068498-800684A0 .text chk_eat__Q27daBomb25Act_cCFv */
|
||||
bool daBomb2::Act_c::chk_eat() const {
|
||||
/* Nonmatching */
|
||||
return field_0x745;
|
||||
}
|
||||
|
||||
/* 800684A0-800684AC .text set_eat__Q27daBomb25Act_cFv */
|
||||
void daBomb2::Act_c::set_eat() {
|
||||
/* Nonmatching */
|
||||
field_0x745 = true;
|
||||
}
|
||||
|
||||
/* 800684AC-800684E0 .text set_no_hit__Q27daBomb25Act_cFv */
|
||||
void daBomb2::Act_c::set_no_hit() {
|
||||
/* Nonmatching */
|
||||
mSph.GetObjTg().OffSPrmBit(cCcD_ObjCommonBase::CO_SPRM_SET);
|
||||
mSph.GetObjCo().OffSPrmBit(cCcD_ObjCommonBase::CO_SPRM_SET);
|
||||
mSph.GetObjAt().OffSPrmBit(cCcD_ObjCommonBase::CO_SPRM_SET);
|
||||
mSph.GetObjAt().OffSPrmBit(cCcD_ObjCommonBase::CO_SPRM_SET);
|
||||
}
|
||||
|
||||
/* 800684E0-800684F4 .text chk_explode__Q27daBomb25Act_cFv */
|
||||
void daBomb2::Act_c::chk_explode() {
|
||||
/* Nonmatching */
|
||||
bool daBomb2::Act_c::chk_explode() {
|
||||
return field_0x694 == 2;
|
||||
}
|
||||
|
||||
@@ -257,7 +257,7 @@ JPABaseEmitter* dPa_control_c::set(unsigned char, unsigned short, const cXyz*, c
|
||||
}
|
||||
|
||||
/* 8007D378-8007D414 .text setBombSmoke__13dPa_control_cFUsPC4cXyzPC5csXyzPC4cXyzUc */
|
||||
void dPa_control_c::setBombSmoke(unsigned short, const cXyz*, const csXyz*, const cXyz*, unsigned char) {
|
||||
JPABaseEmitter* dPa_control_c::setBombSmoke(unsigned short, const cXyz*, const csXyz*, const cXyz*, unsigned char) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user