mirror of
https://github.com/zeldaret/tww.git
synced 2026-05-23 06:54:16 -04:00
101 lines
2.7 KiB
C++
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 */
|