feat(gameui): add CGWorldFrame class skeleton

This commit is contained in:
VDm 2025-03-30 00:15:17 +04:00
parent 88e21b4a22
commit 41f4992ebe
8 changed files with 90 additions and 4 deletions

View file

@ -4,6 +4,7 @@
#include <storm/Log.hpp>
#include "client/Client.hpp"
#include "gameui/CGWorldFrame.hpp"
#include "gx/Coordinate.hpp"
#include "gx/Device.hpp"
#include "ui/FrameScript.hpp"
@ -175,7 +176,7 @@ void CGGameUI::Initialize() {
}
void CGGameUI::RegisterFrameFactories() {
//FrameXML_RegisterFactory("WorldFrame", (int)CGWorldFrame::Create, 1);
FrameXML_RegisterFactory("WorldFrame", CGWorldFrame::Create, 1);
//FrameXML_RegisterFactory("GameTooltip", (int)CGTooltip::Create, 0);
//FrameXML_RegisterFactory("Cooldown", (int)sub_51A380, 0);
//FrameXML_RegisterFactory("Minimap", (int)CGMinimapFrame::Create, 0);

View file

@ -0,0 +1,51 @@
#include "gameui/CGWorldFrame.hpp"
#include "gx/Transform.hpp"
#include <storm/Memory.hpp>
#include <tempest/Matrix.hpp>
CGWorldFrame* CGWorldFrame::s_currentWorldFrame = nullptr;
CGWorldFrame::CGWorldFrame(CSimpleFrame* parent) : CSimpleFrame(parent) {
// TODO
s_currentWorldFrame = this;
}
void CGWorldFrame::OnFrameRender(CRenderBatch* batch, uint32_t layer) {
CSimpleFrame::OnFrameRender(batch, layer);
if (!layer) {
batch->QueueCallback(&CGWorldFrame::RenderWorld, this);
}
}
CSimpleFrame* CGWorldFrame::Create(CSimpleFrame* parent) {
// TODO: Data = CDataAllocator__GetData(0, ".?AVCGWorldFrame@@", -2);
auto m = SMemAlloc(sizeof(CGWorldFrame), __FILE__, __LINE__, 0);
return m ? (new (m) CGWorldFrame(parent)) : nullptr;
}
void CGWorldFrame::RenderWorld(void* param) {
C44Matrix saved_proj;
GxXformProjection(saved_proj);
C44Matrix saved_view;
GxXformView(saved_view);
CGWorldFrame::OnWorldUpdate();
CGWorldFrame::OnWorldRender();
//PlayerNameRenderWorldText();
GxXformSetProjection(saved_proj);
GxXformSetView(saved_view);
}
void CGWorldFrame::OnWorldUpdate() {
}
void CGWorldFrame::OnWorldRender() {
}

View file

@ -0,0 +1,22 @@
#ifndef GAME_UI_CGWORLDFRAME_HPP
#define GAME_UI_CGWORLDFRAME_HPP
#include "ui/CSimpleFrame.hpp"
#include "ui/CSimpleTop.hpp"
class CGWorldFrame : public CSimpleFrame {
public:
CGWorldFrame(CSimpleFrame* parent);
virtual void OnFrameRender(CRenderBatch* batch, uint32_t layer);
static CSimpleFrame* Create(CSimpleFrame* parent);
static void RenderWorld(void* param);
static void OnWorldUpdate();
static void OnWorldRender();
public:
static CGWorldFrame* s_currentWorldFrame;
};
#endif // GAME_UI_CGWORLDFRAME_HPP