GuiSys Progress

This commit is contained in:
2025-05-09 12:14:41 -07:00
parent 8f91d0820c
commit 61e72d0d90
4 changed files with 28 additions and 22 deletions

View File

@@ -254,6 +254,7 @@ cflags_retro = [
"-inline deferred,noauto", "-inline deferred,noauto",
"-common on", "-common on",
"-i extern/musyx/include", "-i extern/musyx/include",
#"-sym on",
"-DMUSY_TARGET=MUSY_TARGET_DOLPHIN", "-DMUSY_TARGET=MUSY_TARGET_DOLPHIN",
] ]
@@ -446,7 +447,7 @@ config.libs = [
Object(NonMatching, "MetroidPrime/Enemies/CPatterned.cpp"), Object(NonMatching, "MetroidPrime/Enemies/CPatterned.cpp"),
Object(NonMatching, "MetroidPrime/ScriptObjects/CScriptDoor.cpp"), Object(NonMatching, "MetroidPrime/ScriptObjects/CScriptDoor.cpp"),
Object(NonMatching, "MetroidPrime/Enemies/CStateMachine.cpp"), Object(NonMatching, "MetroidPrime/Enemies/CStateMachine.cpp"),
Object(MatchingFor("GM8E01_00", "GM8E01_01"), "MetroidPrime/CMapArea.cpp"), Object(Equivalent, "MetroidPrime/CMapArea.cpp"),
Object(NonMatching, "MetroidPrime/Cameras/CBallCamera.cpp"), Object(NonMatching, "MetroidPrime/Cameras/CBallCamera.cpp"),
Object(NonMatching, "MetroidPrime/ScriptObjects/CScriptEffect.cpp"), Object(NonMatching, "MetroidPrime/ScriptObjects/CScriptEffect.cpp"),
Object(NonMatching, "MetroidPrime/Weapons/CBomb.cpp"), Object(NonMatching, "MetroidPrime/Weapons/CBomb.cpp"),

View File

@@ -44,6 +44,8 @@ public:
CGuiObject* ChildObject(); CGuiObject* ChildObject();
const CGuiObject* GetNextSibling() const; const CGuiObject* GetNextSibling() const;
CGuiObject* NextSibling(); CGuiObject* NextSibling();
private: private:
CTransform4f x4_localXF; CTransform4f x4_localXF;
CTransform4f x34_worldXF; CTransform4f x34_worldXF;

View File

@@ -44,16 +44,16 @@ public:
CGuiWidget(const CGuiWidgetParms& parms); CGuiWidget(const CGuiWidgetParms& parms);
~CGuiWidget(); ~CGuiWidget();
void Update(float dt); void Update(float dt) override;
void Draw(const CGuiWidgetDrawParms& drawParms) const; void Draw(const CGuiWidgetDrawParms& drawParms) const override;
void Initialize(); void Initialize() override {}
virtual void ProcessUserInput(const CFinalInput& input); virtual void ProcessUserInput(const CFinalInput& input);
virtual void Touch() const; virtual void Touch() const {}
virtual bool GetIsVisible() const; virtual bool GetIsVisible() const;
virtual bool GetIsActive() const; virtual bool GetIsActive() const;
virtual FourCC GetWidgetTypeID() const { return 'BWIG'; } virtual FourCC GetWidgetTypeID() const { return 'BWIG'; }
virtual bool AddWorkerWidget(CGuiWidget* worker); virtual bool AddWorkerWidget(CGuiWidget* worker);
virtual bool GetIsFinishedLoadingWidgetSpecific() const; virtual bool GetIsFinishedLoadingWidgetSpecific() const { return true; };
virtual void OnVisible(); virtual void OnVisible();
virtual void OnActivate(); virtual void OnActivate();
short GetWorkerId() const { return xb4_workerId; } short GetWorkerId() const { return xb4_workerId; }
@@ -69,6 +69,7 @@ public:
CGuiFrame* GetFrame() { return xb0_frame; } CGuiFrame* GetFrame() { return xb0_frame; }
static const short InvalidWidgetId() { return gkInvalidWidgetId; } static const short InvalidWidgetId() { return gkInvalidWidgetId; }
private: private:
static const short gkInvalidWidgetId; static const short gkInvalidWidgetId;
short x70_selfId; short x70_selfId;

View File

@@ -59,10 +59,11 @@ void CAuiMeter::UpdateMeterWorkers() {
int etankCap; int etankCap;
int etankFill; int etankFill;
int workerCount = xd4_workers.size(); int workerCount = xd4_workers.size();
if (xc4_noRoundUp) if (xc4_noRoundUp) {
etankCap = scale * xcc_capacity; etankCap = scale * xcc_capacity;
else } else {
etankCap = 0.5f + (scale * xcc_capacity); etankCap = 0.5f + (scale * xcc_capacity);
}
if (xc4_noRoundUp) if (xc4_noRoundUp)
etankFill = scale * xd0_value; etankFill = scale * xd0_value;
@@ -74,24 +75,25 @@ void CAuiMeter::UpdateMeterWorkers() {
if (!worker) if (!worker)
continue; continue;
CGuiWidget* fullTank = worker->GetWorkerWidget(0); CGuiWidget* tanks[2];
CGuiWidget* emptyTank = worker->GetWorkerWidget(1); tanks[0] = worker->GetWorkerWidget(0);
tanks[1] = worker->GetWorkerWidget(1);
if (i < etankFill) { if (i < etankFill) {
if (fullTank) if (tanks[0])
fullTank->SetIsVisible(true); tanks[0]->SetIsVisible(true);
if (emptyTank) if (tanks[1])
emptyTank->SetIsVisible(false); tanks[1]->SetIsVisible(false);
} else if (i < etankCap) { } else if (i < etankCap) {
if (fullTank) if (tanks[0])
fullTank->SetIsVisible(false); tanks[0]->SetIsVisible(false);
if (emptyTank) if (tanks[1])
emptyTank->SetIsVisible(true); tanks[1]->SetIsVisible(true);
} else { } else {
if (fullTank) if (tanks[0])
fullTank->SetIsVisible(false); tanks[0]->SetIsVisible(false);
if (emptyTank) if (tanks[1])
emptyTank->SetIsVisible(false); tanks[1]->SetIsVisible(false);
} }
} }
} }