Files
2025-08-20 18:51:42 -04:00

101 lines
2.7 KiB
C++

#ifndef D_GAMEOVER_H
#define D_GAMEOVER_H
#include "d/d_com_inf_game.h"
#include "d/d_menu_save.h"
#include "f_op/f_op_msg_mng.h"
#include "JSystem/JKernel/JKRExpHeap.h"
#include "JSystem/J2DGraph/J2DScreen.h"
#include "SSystem/SComponent/c_phase.h"
class dDlst_Gameover_CAPTURE_c : public dDlst_base_c {
public:
virtual ~dDlst_Gameover_CAPTURE_c() {}
virtual void draw();
};
class dDlst_GameOverScrnDraw_c : public dDlst_base_c {
public:
dDlst_GameOverScrnDraw_c() {
field_0x338 = 0;
field_0x33c = 0;
field_0x330 = 0;
field_0x334 = 0;
field_0x32c = 8;
mAlpha = 0.0f;
}
f32 acc(s16 param_0, s16 param_1, s16 param_2) {
return ((f32)(param_1 - param_2) * (f32)(param_1 - param_2)) / ((f32)(param_0 - param_2) * (f32)(param_0 - param_2));
}
void deleteScreen() { delete scrn; }
void setAlpha(f32 alpha) { mAlpha = alpha; }
void stopEmitter0() {
if (mpEmitter0 != NULL)
mpEmitter0->becomeInvalidEmitter();
}
void stopEmitter1() {
if (mpEmitter1 != NULL)
mpEmitter1->becomeInvalidEmitter();
}
virtual ~dDlst_GameOverScrnDraw_c() {}
void setScreen(const char*, JKRArchive*);
void valueInit();
BOOL animeOpen();
BOOL animeClose();
void setEmitter0(cXyz);
void setEmitter1(cXyz);
BOOL anime1(int);
BOOL anime2(int);
void setRotate(fopMsgM_pane_class*, f32);
virtual void draw();
private:
/* 0x004 */ J2DScreen* scrn;
/* 0x008 */ fopMsgM_pane_class letter[8];
#if VERSION > VERSION_JPN
/* 0x1C8 */ u8 field_0x1c8[0x318 - 0x1c8];
#endif
/* Offsets below are for USA/PAL */
/* 0x318 */ fopMsgM_pane_alpha_class blak;
/* 0x320 */ JPABaseEmitter* mpEmitter0;
/* 0x324 */ JPABaseEmitter* mpEmitter1;
/* 0x328 */ f32 mAlpha;
/* 0x32C */ s32 field_0x32c;
/* 0x330 */ s32 field_0x330;
/* 0x334 */ u32 field_0x334;
/* 0x338 */ u32 field_0x338;
/* 0x33C */ u16 field_0x33c;
/* 0x33E */ s16 mRotate[8];
/* 0x34E */ u8 field_0x34e[0x410 - 0x34E];
};
class dGameover_c : public msg_class {
public:
void animeStart() { mAnimeStart = true; }
void setBackAlpha(f32 alpha) { dgo_scrn_c->setAlpha(alpha); }
cPhs_State _create();
BOOL _execute();
BOOL _draw();
BOOL _delete();
BOOL deleteCheck();
private:
/* 0x0FC */ dMenu_save_c* dMs_c;
/* 0x100 */ dDlst_GameOverScrnDraw_c* dgo_scrn_c;
/* 0x104 */ dDlst_Gameover_CAPTURE_c* dgo_capture_c;
/* 0x108 */ request_of_phase_process_class mPhs;
/* 0x110 */ JKRExpHeap* mpHeap;
/* 0x114 */ s16 field_0x114;
/* 0x116 */ s16 field_0x116;
/* 0x118 */ u8 mState;
/* 0x119 */ bool mAnimeStart;
/* 0x11C */ u8 field_0x11c;
};
#endif /* D_GAMEOVER_H */