mirror of
https://github.com/zeldaret/tww.git
synced 2026-05-24 15:20:53 -04:00
c1cf48eca3
- Match a few more functions - Offset comments
222 lines
6.3 KiB
C++
222 lines
6.3 KiB
C++
#ifndef D_A_BOMB_2_H
|
|
#define D_A_BOMB_2_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();
|
|
bool is_end() const;
|
|
void proc(const cXyz&);
|
|
|
|
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:
|
|
Act_c();
|
|
|
|
//d_a_bomb_static functions
|
|
void remove_fuse_effect();
|
|
void set_time(int);
|
|
int get_time() const;
|
|
bool chk_eat() const;
|
|
void set_eat();
|
|
void set_no_hit();
|
|
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();
|
|
void start_explode_interval();
|
|
void start_carry();
|
|
void start_proc_call();
|
|
void create_init();
|
|
int _create();
|
|
bool _delete();
|
|
void set_mtx();
|
|
void init_mtx();
|
|
void cc_set();
|
|
void camera_lockoff() const;
|
|
void posMoveF();
|
|
void bgCrrPos();
|
|
void bgCrrPos_lava();
|
|
void bgCrrPos_water();
|
|
bool chk_water_in() const;
|
|
bool chk_lava_in() const;
|
|
void setRoomInfo();
|
|
void bound(float);
|
|
void set_nut_exp_interval();
|
|
void anm_play();
|
|
void set_wind_vec();
|
|
void eff_explode();
|
|
void eff_explode_normal(const csXyz*);
|
|
void eff_explode_water();
|
|
void eff_fuse_init();
|
|
void eff_fuse_start();
|
|
void eff_fuse_move();
|
|
void eff_fuse_end();
|
|
void eff_water_splash();
|
|
void se_fall_water();
|
|
void se_explode();
|
|
void se_explode_water();
|
|
void se_ignition();
|
|
void set_sound_env(int, int);
|
|
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();
|
|
void off_carry();
|
|
void mode_wait_init();
|
|
void mode_wait();
|
|
void mode_carry_init();
|
|
void mode_carry();
|
|
void mode_explode_init();
|
|
void mode_explode();
|
|
void mode_sink_init();
|
|
void mode_sink();
|
|
void mode_proc_call();
|
|
void tensor_init();
|
|
void vib_init();
|
|
void vib_proc();
|
|
void set_vib_tensor();
|
|
void tensor_wait();
|
|
void tensor_wait_drop();
|
|
void tensor_wait_ground();
|
|
void tensor_carry();
|
|
void tensor_explode();
|
|
void tensor_sink();
|
|
void tensor_proc_call();
|
|
bool _execute();
|
|
bool is_draw();
|
|
void draw_nut();
|
|
void draw_shadow();
|
|
bool _draw();
|
|
|
|
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 */
|