Merge pull request #234 from robojumper/d_lyt_game_over

d_lyt_game_over almost OK
This commit is contained in:
robojumper
2025-09-13 10:05:32 +02:00
committed by GitHub
17 changed files with 854 additions and 151 deletions
+7
View File
@@ -8,6 +8,13 @@
class dFader_c : public mFader_c {
public:
enum FadeType_e {
FADER_BLACK = 0,
FADER_GREY = 1,
FADER_LYT = 2,
FADER_SCREEN = 3,
};
dFader_c() : mpColorFader(nullptr), mpLytFader(nullptr), mpScreenFader(nullptr), field_0x14(0) {}
virtual ~dFader_c();
+9 -5
View File
@@ -3,10 +3,10 @@
#include "common.h"
#include "d/a/d_a_base.h"
#include "d/d_camera.h"
#include "d/d_dylink.h"
#include "d/d_fader.h"
#include "d/d_scene.h"
#include "d/d_camera.h"
#include "egg/gfx/eggScreen.h"
#include "f/f_profile_name.h"
#include "m/m2d.h"
@@ -130,6 +130,10 @@ public:
virtual void deleteReady() override;
void triggerExit(s32 room, u16 exitIndex, s32 forcedNight = 2, s32 forcedTrial = 2);
void triggerEntrance(
const char *stageName, u8 roomid, u8 layer, u8 entrance, int forcedNight = SpawnInfo::RETAIN_TOD, int forcedTrial = SpawnInfo::RETAIN_TRIAL, u8 transitionType = dFader_c::FADER_BLACK,
u16 transitionFadeFrames = 15, s8 field0x28 = -1
);
// void triggerEntrance(const char *stageName, u8 room, );
const LinkReloadInfo &getLinkReloadInfo() const;
@@ -152,7 +156,6 @@ public:
return sInstance;
}
bool setReloadTrigger(fProfile::PROFILE_NAME_e reloadTrigger);
void setRespawnInfo(const mVec3_c &linkPos, const mAng3_c &linkRot, bool unk);
void setSpawnInfo(u8 roomid, const mVec3_c &pos, mAng rot);
@@ -206,13 +209,14 @@ public:
return mScreen1.fn_801BBEC0();
}
static bool sCopyFileBToCurrentAfterRespawn;
static bool sDoSomethingWithFileAOnTransition;
static bool sPreventClearingSomeFlag;
protected:
static u32 sUpdateFrameCount;
static u8 sCurrentLayer;
static u8 sReloaderType;
static bool sCopyFileBToCurrentAfterRespawn;
static bool sDoSomethingWithFileAOnTransition;
static bool sPreventClearingSomeFlag;
static void someGfxThingCallback();
void somethingWithScreen();
+8
View File
@@ -15,6 +15,14 @@ public:
static dScTitle_c *sInstance;
static void setLbl_80575787(bool v) {
lbl_80575787 = v;
}
static u8 lbl_80575785;
static u8 lbl_80575786;
static u8 lbl_80575787;
static void loadTitleScreen(u32 params);
static void setSomethingSkbRelated();
+85 -4
View File
@@ -1,19 +1,100 @@
#ifndef D_LYT_GAME_OVER_H
#define D_LYT_GAME_OVER_H
#include "common.h"
#include "d/d_base.h"
#include "d/lyt/d2d.h"
#include "d/lyt/msg_window/d_lyt_msg_window_select_btn.h"
#include "s/s_State.hpp"
#include "sized_string.h"
class dLytGameOver_c : public dBase_c {
class dLytGameOver_c {
public:
dLytGameOver_c();
virtual ~dLytGameOver_c();
virtual ~dLytGameOver_c() {}
static dLytGameOver_c *GetInstance() {
bool build();
bool remove();
bool execute();
bool draw();
bool requestIn(const char *text, s32 p1, s32 p2);
bool requestOut(s32 outType);
s32 getSelectedOption() const {
return mSelectedOption;
}
bool isChangingState() const {
return mIsChangingState;
}
void setField_0x1338(bool v) {
field_0x1338 = v;
}
private:
STATE_FUNC_DECLARE(dLytGameOver_c, Init);
STATE_FUNC_DECLARE(dLytGameOver_c, In);
STATE_FUNC_DECLARE(dLytGameOver_c, Wait);
STATE_FUNC_DECLARE(dLytGameOver_c, Out);
void init();
void setAnm(int idx);
void stopAnm(int idx);
void applyText();
void setupButtons();
/* 0x0004 */ UI_STATE_MGR_DECLARE(dLytGameOver_c);
/* 0x0044 */ d2d::ResAccIf_c mResAcc1;
/* 0x03B0 */ d2d::ResAccIf_c mResAcc2;
/* 0x0720 */ d2d::LytBase_c mLyt;
/* 0x07B0 */ d2d::AnmGroup_c mAnm[5];
/* 0x08F0 */ d2d::SubPaneList mSubpaneList;
/* 0x08FC */ d2d::SubPaneListNode mSubpanes[1];
/* 0x090C */ dLytMsgWindowSelectBtn_c mSelectBtn;
/* 0x12E0 */ SizedString<0x40> mLabel;
/* 0x1320 */ s32 mVariant;
/* 0x1324 */ s32 mInType;
/* 0x1328 */ s32 mOutType;
/* 0x132C */ s32 mStep;
/* 0x1330 */ s32 mSelectedOption;
/* 0x1334 */ bool mIsVisible;
/* 0x1335 */ bool mIsChangingState;
/* 0x1336 */ bool mInRequest;
/* 0x1337 */ bool mOutRequest;
/* 0x1338 */ bool field_0x1338;
};
class dLytGameOverMgr_c : public dBase_c {
public:
dLytGameOverMgr_c();
virtual ~dLytGameOverMgr_c();
int create() override;
int doDelete() override;
int execute() override;
int draw() override;
static dLytGameOverMgr_c *GetInstance() {
return sInstance;
}
private:
static dLytGameOver_c *sInstance;
STATE_FUNC_DECLARE(dLytGameOverMgr_c, Init);
STATE_FUNC_DECLARE(dLytGameOverMgr_c, FadeOut);
STATE_FUNC_DECLARE(dLytGameOverMgr_c, Select);
void init();
static dLytGameOverMgr_c *sInstance;
/* 0x0068 */ UI_STATE_MGR_DECLARE(dLytGameOverMgr_c);
/* 0x00A4 */ dLytGameOver_c mMain;
/* 0x13E0 */ s32 mStep;
/* 0x13E4 */ s32 mTimer;
};
#endif
+5 -5
View File
@@ -174,16 +174,16 @@ public:
/* 8000BDD0 */ u16 getHitCountFromEnemy(u8 enemy);
/* 8000BE50 */ void setLoadRoomT1_FileB(s16 roomId);
/* 8000BE80 */ s16 getLoadRoomT1_FileB();
/* 8000BE80 */ u16 getLoadRoomT1_FileB();
/* 8000BE90 */ void setEntranceT1_FileB(u8 entrance);
/* 8000BEC0 */ u8 getEntranceT1_FileB();
/* 8000BED0 */ void setAreaT1_FileB(const char *name);
/* 8000BF80 */ char *getAreaT1_FileB();
/* 8000C080 */ void setNightT1_FileB(bool night);
/* 8000C0B0 */ bool getNightT1_FileB();
/* 8000C0B0 */ u8 getNightT1_FileB();
/* 8000C0C0 */ void setEntranceT1LoadFlag_FileB(u8 flag);
/* 8000C0F0 */ void setForcedLayerT1_FileB(u8 layer);
/* 8000C120 */ void getForcedLayerT1_FileB();
/* 8000C120 */ u8 getForcedLayerT1_FileB();
/* 8000C130 */ void setCurrentHealth_FileB(s16 health);
/* 8000C160 */ void setHeroname(const wchar_t *name);
@@ -208,7 +208,7 @@ public:
/* 8000CA00 */ bool getNightT1();
/* 8000CA50 */ void setNightT3(bool night);
/* 8000CA80 */ bool getNightT3();
/* 8000CA80 */ u8 getNightT3();
/* 8000CAD0 */ bool isNew_FileA();
@@ -358,8 +358,8 @@ public:
mSelectedFile = val;
}
private:
static FileManager *sInstance;
private:
};
#endif
+1
View File
@@ -24,6 +24,7 @@ public:
static void create();
static void destroy();
static void execute();
private:
MinigameManager() {}
virtual ~MinigameManager() {}
+1
View File
@@ -2,5 +2,6 @@
#define MISC_ACTOR_H
bool checkIsInSkykeepPuzzle();
void restoreSkykeepPuzzleFromGlobal();
#endif