mirror of
https://github.com/zeldaret/tp
synced 2026-06-01 09:47:52 -04:00
4dc0cd9d09
* Fix missing arg to JUT_ASSERT * Fix some MWCC version diff errors * Compile m_Do_ext, d_demo, actor_mng * Add VSCode task to quickly switch between versions * Unlink magLift for debug * Update the hash of the debug dol The old cbea5fa... hash here was for the dol generated by the alf2dol.py script, which produces incorrect alignment. The dol with the new hash can be obtained by using `dtk elf2dol` to convert the debug .alf file to a dol. The DOL now builds OK. * Fix all debug REL dtor splits All RELs now also build OK, meaning `ninja build/ShieldD/ok` now succeeds. * Add genMessage declarations to all HIO subclasses * Fixing more compilation errors * m_Do_mtx 100% on debug Cannot be linked due to weak function name mangling? * Improve various matches * Fix all remaining compilation errors * Fix new compilation errors from main * Fix retail regression * Link f_pc_profile_lst
106 lines
2.6 KiB
C++
106 lines
2.6 KiB
C++
#ifndef D_A_YKGR_H
|
|
#define D_A_YKGR_H
|
|
|
|
#include "SSystem/SComponent/c_math.h"
|
|
#include "f_op/f_op_actor_mng.h"
|
|
#include "d/d_path.h"
|
|
#include "d/d_kankyo_rain.h"
|
|
#include "d/d_com_inf_game.h"
|
|
#include "d/d_particle.h"
|
|
|
|
struct daYkgr_HIO_c : public mDoHIO_entry_c {
|
|
daYkgr_HIO_c();
|
|
/* 805A8D98 */ virtual ~daYkgr_HIO_c();
|
|
|
|
void genMessage(JORMContext*);
|
|
|
|
/* 0x04 */ u8 field_0x4;
|
|
/* 0x08 */ s32 field_0x8;
|
|
/* 0x0C */ s32 field_0xc;
|
|
/* 0x10 */ f32 field_0x10;
|
|
/* 0x14 */ f32 field_0x14;
|
|
/* 0x18 */ f32 field_0x18;
|
|
/* 0x1C */ f32 field_0x1c;
|
|
/* 0x20 */ f32 field_0x20;
|
|
/* 0x24 */ f32 field_0x24;
|
|
};
|
|
|
|
struct dPa_YkgrPcallBack : public JPAParticleCallBack {
|
|
dPa_YkgrPcallBack();
|
|
/* 805A8E3C */ ~dPa_YkgrPcallBack() {}
|
|
/* 805A848C */ void draw(JPABaseEmitter*, JPABaseParticle*);
|
|
/* 805A84D4 */ void setParam(f32);
|
|
|
|
/* 0x04 */ f32 field_0x4[2][3];
|
|
/* 0x1C */ s8 field_0x1c;
|
|
};
|
|
|
|
/**
|
|
* @ingroup actors-unsorted
|
|
* @class daYkgr_c
|
|
* @brief Floor Gravity On/Off
|
|
*
|
|
* @details
|
|
*
|
|
*/
|
|
class daYkgr_c : public fopAc_ac_c {
|
|
public:
|
|
static void init() {
|
|
m_emitter = 0;
|
|
m_flag = false;
|
|
m_alpha_flag = true;
|
|
m_alpha = 255;
|
|
}
|
|
|
|
f32 getPosRate();
|
|
static void setAlpha(u8 alpha) {
|
|
m_alpha = alpha;
|
|
}
|
|
static void start() {
|
|
if (m_emitter != NULL) {
|
|
m_alpha_flag = true;
|
|
}
|
|
}
|
|
static void stop() {
|
|
if (m_emitter != NULL) {
|
|
m_alpha_flag = false;
|
|
}
|
|
}
|
|
|
|
void set_mtx() {
|
|
camera_class* iVar1 = dComIfGp_getCamera(0);
|
|
cXyz local_28;
|
|
current.pos = *fopCamM_GetEye_p(iVar1);
|
|
dKyr_get_vectle_calc(&iVar1->lookat.eye, &iVar1->lookat.center, &local_28);
|
|
current.angle.y = cM_atan2s(local_28.x, local_28.z);
|
|
current.angle.x = -cM_atan2s(
|
|
local_28.y, JMAFastSqrt((local_28.x * local_28.x + local_28.z * local_28.z)));
|
|
mDoMtx_stack_c::transS(current.pos.x, current.pos.y,
|
|
current.pos.z);
|
|
mDoMtx_stack_c::YrotM(current.angle.y);
|
|
mDoMtx_stack_c::XrotM(current.angle.x);
|
|
MTXCopy(mDoMtx_stack_c::get(), field_0x570);
|
|
}
|
|
|
|
int _create();
|
|
int _execute();
|
|
int _draw();
|
|
|
|
static JPABaseEmitter* m_emitter;
|
|
static bool m_flag;
|
|
static bool m_alpha_flag;
|
|
static u8 m_alpha;
|
|
static f32 m_aim_rate;
|
|
static dPath* m_path;
|
|
|
|
/* 0x568 */ u8 field_0x568[0x570 - 0x568];
|
|
/* 0x570 */ Mtx field_0x570;
|
|
/* 0x5A0 */ u32 field_0x5a0;
|
|
/* 0x5A4 */ f32 field_0x5a4;
|
|
/* 0x5A8 */ f32 field_0x5a8;
|
|
};
|
|
|
|
STATIC_ASSERT(sizeof(daYkgr_c) == 0x5AC);
|
|
|
|
#endif /* D_A_YKGR_H */
|