2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-09 02:27:43 +00:00

Work on CWorldTransManager

This commit is contained in:
Jack Andersen
2016-08-15 10:58:07 -10:00
parent eb7ce0b84b
commit 0dacc2233c
19 changed files with 264 additions and 108 deletions

View File

@@ -3,15 +3,42 @@
#include "RetroTypes.hpp"
#include "CRandom16.hpp"
#include "Character/CModelData.hpp"
#include "GuiSys/CGuiTextSupport.hpp"
namespace urde
{
class CSimplePool;
class CStringTable;
class CWorldTransManager
{
public:
enum class ETransType
{
Blank,
LiftScene,
Text
};
struct CWorldTransModelData
{
CModelData x1c_;
CModelData x68_;
CModelData xb4_;
CModelData x100_;
CToken x14c_;
CToken x158_;
CToken x164_;
std::vector<u32> x1a0_;
std::unique_ptr<u8> x1b0_;
};
private:
float x0_ = 0.f;
u32 x4_ = 0;
u32 x8_ = 0;
std::unique_ptr<CWorldTransModelData> x4_modelData;
std::unique_ptr<CGuiTextSupport> x8_textData;
TLockedToken<CStringTable> xc_strTable;
u8 x14_ = 0;
float x18_;
CRandom16 x20_ = CRandom16(99);
@@ -19,8 +46,9 @@ class CWorldTransManager
u32 x28_ = 0;
u8 x2c_ = 127;
u8 x2d_ = 64;
u32 x30_ = 0;
ETransType x30_type = ETransType::Blank;
float x38_ = 0.f;
bool x40_;
union
{
struct
@@ -48,11 +76,11 @@ public:
void sub_80209280() const {}
void Draw() const
{
if (x30_ == 0)
if (x30_type == ETransType::Blank)
DrawDisabled();
else if (x30_ == 1)
else if (x30_type == ETransType::LiftScene)
DrawEnabled();
else if (x30_ == 2)
else if (x30_type == ETransType::Text)
sub_80209280();
}
@@ -61,9 +89,11 @@ public:
x0_ = 0.f;
x18_ = 0.f;
x44_24_ = false;
x44_24_ = true;
x44_28_ = true;
}
void StartTextTransition(ResId fontId, ResId stringId, bool, bool, float, float, float);
void EndTransition() {}
void PleaseStopSoon() {}
bool IsTransitionEnabled() const { return false; }