d_s_play OK, work on d_a_ykgr (#2035)

This commit is contained in:
hatal175
2024-01-18 01:19:10 +02:00
committed by GitHub
parent 772a04851c
commit f97fc769df
32 changed files with 580 additions and 1512 deletions
+1 -1
View File
@@ -43,7 +43,7 @@ public:
}; // Size: 0x4
/* 80031248 */ static int newData(s8, cXyz const&, cXyz const&, u8, u8, u8);
/* 800313BC */ void reset();
/* 800313BC */ static void reset();
/* 800314D4 */ static void check(fopAc_ac_c*);
/* 80031434 */ static bool check(s8 i_roomNo, cXyz const& i_pos);
/* 800315A4 */ static void execute();
+95
View File
@@ -2,5 +2,100 @@
#define D_A_YKGR_H
#include "dolphin/types.h"
#include "JSystem/JParticle/JPAParticle.h"
#include "JSystem/JKernel/JKRHeap.h"
#include "SSystem/SComponent/c_math.h"
#include "f_op/f_op_actor.h"
#include "f_op/f_op_camera_mng.h"
#include "f_op/f_op_actor_mng.h"
#include "d/d_path.h"
#include "d/kankyo/d_kankyo_rain.h"
#include "d/com/d_com_inf_game.h"
#include "d/particle/d_particle.h"
struct daYkgr_HIO_c {
/* 805A8D98 */ ~daYkgr_HIO_c();
u32 vtable;
u8 field_0x4[0x20 - 0x4];
f32 field_0x20;
f32 field_0x24;
};
struct dPa_YkgrPcallBack /*: public JPAParticleCallBack */ {
/* 805A8E3C */ ~dPa_YkgrPcallBack();
/* 805A848C */ void draw(JPABaseEmitter*, JPABaseParticle*);
/* 805A84D4 */ void setParam(f32);
u32 vtable;
/* 0x04 */ f32 field_0x4;
/* 0x08 */ f32 field_0x8;
/* 0x0C */ f32 field_0xc;
/* 0x10 */ f32 field_0x10;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 field_0x18;
/* 0x1C */ s8 field_0x1c;
};
extern "C" u8 m_flag__8daYkgr_c;
extern "C" u8 m_alpha_flag__8daYkgr_c;
extern "C" u8 m_alpha__8daYkgr_c;
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->mLookat.mEye, &iVar1->mLookat.mCenter, &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;
u8 field_0x568[0x570 - 0x568];
Mtx field_0x570;
u32 field_0x5a0;
f32 field_0x5a4;
f32 field_0x5a8;
};
#endif /* D_A_YKGR_H */