feat(gameui): add skeletons of Game UI classes

This commit is contained in:
VDm 2025-08-05 20:09:13 +04:00
parent 0a0c327c46
commit 8c442f5a82
26 changed files with 700 additions and 9 deletions

View File

@ -0,0 +1,29 @@
#include "gameui/CGCharacterModelBase.hpp"
#include "gameui/CGCharacterModelBaseScript.hpp"
#include <bc/Memory.hpp>
int32_t CGCharacterModelBase::s_metatable;
CSimpleFrame* CGCharacterModelBase::Create(CSimpleFrame* parent) {
// TODO: Data = CDataAllocator__GetData(0, ".?AVCGCharacterModelBase@@", -2);
return NEW(CGCharacterModelBase, parent);
}
void CGCharacterModelBase::CreateScriptMetaTable() {
lua_State* L = FrameScript_GetContext();
int32_t ref = FrameScript_Object::CreateScriptMetaTable(L, &CGCharacterModelBase::RegisterScriptMethods);
CGCharacterModelBase::s_metatable = ref;
}
void CGCharacterModelBase::RegisterScriptMethods(lua_State* L) {
CSimpleFrame::RegisterScriptMethods(L);
FrameScript_Object::FillScriptMethodTable(L, CGCharacterModelBaseMethods, NUM_CGCHARACTER_MODEL_BASE_SCRIPT_METHODS);
}
int32_t CGCharacterModelBase::GetScriptMetaTable() {
return CGCharacterModelBase::s_metatable;
}
CGCharacterModelBase::CGCharacterModelBase(CSimpleFrame* parent)
: CSimpleFrame(parent) {
}

View File

@ -0,0 +1,24 @@
#ifndef GAME_UI_CGCHARACTER_MODEL_BASE_HPP
#define GAME_UI_CGCHARACTER_MODEL_BASE_HPP
#include "ui/CSimpleFrame.hpp"
#include "ui/CSimpleTop.hpp"
class CGCharacterModelBase : public CSimpleFrame {
public:
// Static variables
static int32_t s_metatable;
// Static functions
static CSimpleFrame* Create(CSimpleFrame* parent);
static void CreateScriptMetaTable();
static void RegisterScriptMethods(lua_State* L);
// Virtual member functions
virtual int32_t GetScriptMetaTable();
// Member functions
CGCharacterModelBase(CSimpleFrame* parent);
};
#endif // GAME_UI_CGCHARACTER_MODEL_BASE_HPP

View File

@ -0,0 +1,27 @@
#include "gameui/CGCharacterModelBaseScript.hpp"
#include "util/Lua.hpp"
#include "util/Unimplemented.hpp"
static int32_t Script_SetUnit(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_SetCreature(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_RefreshUnit(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_SetRotation(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
FrameScript_Method CGCharacterModelBaseMethods[NUM_CGCHARACTER_MODEL_BASE_SCRIPT_METHODS] = {
{ "SetUnit", &Script_SetUnit },
{ "SetCreature", &Script_SetCreature },
{ "RefreshUnit", &Script_RefreshUnit },
{ "SetRotation", &Script_SetRotation }
};

View File

@ -0,0 +1,10 @@
#ifndef GAME_UI_CGCHARACTER_MODEL_BASE_SCRIPT_HPP
#define GAME_UI_CGCHARACTER_MODEL_BASE_SCRIPT_HPP
#include "ui/FrameScript.hpp"
#define NUM_CGCHARACTER_MODEL_BASE_SCRIPT_METHODS 4
extern FrameScript_Method CGCharacterModelBaseMethods[NUM_CGCHARACTER_MODEL_BASE_SCRIPT_METHODS];
#endif

29
src/gameui/CGCooldown.cpp Normal file
View File

@ -0,0 +1,29 @@
#include "gameui/CGCooldown.hpp"
#include "gameui/CGCooldownScript.hpp"
#include <bc/Memory.hpp>
int32_t CGCooldown::s_metatable;
CSimpleFrame* CGCooldown::Create(CSimpleFrame* parent) {
// TODO: Data = CDataAllocator__GetData(0, ".?AVCGCooldown@@", -2);
return NEW(CGCooldown, parent);
}
void CGCooldown::CreateScriptMetaTable() {
lua_State* L = FrameScript_GetContext();
int32_t ref = FrameScript_Object::CreateScriptMetaTable(L, &CGCooldown::RegisterScriptMethods);
CGCooldown::s_metatable = ref;
}
void CGCooldown::RegisterScriptMethods(lua_State* L) {
CSimpleFrame::RegisterScriptMethods(L);
FrameScript_Object::FillScriptMethodTable(L, CGCooldownMethods, NUM_CGCOOLDOWN_SCRIPT_METHODS);
}
int32_t CGCooldown::GetScriptMetaTable() {
return CGCooldown::s_metatable;
}
CGCooldown::CGCooldown(CSimpleFrame* parent)
: CSimpleFrame(parent) {
}

24
src/gameui/CGCooldown.hpp Normal file
View File

@ -0,0 +1,24 @@
#ifndef GAME_UI_CGCOOLDOWN_HPP
#define GAME_UI_CGCOOLDOWN_HPP
#include "ui/CSimpleFrame.hpp"
#include "ui/CSimpleTop.hpp"
class CGCooldown : public CSimpleFrame {
public:
// Static variables
static int32_t s_metatable;
// Static functions
static CSimpleFrame* Create(CSimpleFrame* parent);
static void CreateScriptMetaTable();
static void RegisterScriptMethods(lua_State* L);
// Virtual member functions
virtual int32_t GetScriptMetaTable();
// Member functions
CGCooldown(CSimpleFrame* parent);
};
#endif // GAME_UI_CGCOOLDOWN_HPP

View File

@ -0,0 +1,32 @@
#include "gameui/CGCooldownScript.hpp"
#include "util/Lua.hpp"
#include "util/Unimplemented.hpp"
static int32_t Script_SetCooldown(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_SetReverse(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_GetReverse(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_SetDrawEdge(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_GetDrawEdge(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
FrameScript_Method CGCooldownMethods[NUM_CGCOOLDOWN_SCRIPT_METHODS] = {
{ "SetCooldown", &Script_SetCooldown },
{ "SetReverse", &Script_SetReverse },
{ "GetReverse", &Script_GetReverse },
{ "SetDrawEdge", &Script_SetDrawEdge },
{ "GetDrawEdge", &Script_GetDrawEdge }
};

View File

@ -0,0 +1,10 @@
#ifndef GAME_UI_CGCOOLDOWN_SCRIPT_HPP
#define GAME_UI_CGCOOLDOWN_SCRIPT_HPP
#include "ui/FrameScript.hpp"
#define NUM_CGCOOLDOWN_SCRIPT_METHODS 5
extern FrameScript_Method CGCooldownMethods[NUM_CGCOOLDOWN_SCRIPT_METHODS];
#endif

View File

@ -0,0 +1,29 @@
#include "gameui/CGDressUpModelFrame.hpp"
#include "gameui/CGDressUpModelFrameScript.hpp"
#include <bc/Memory.hpp>
int32_t CGDressUpModelFrame::s_metatable;
CSimpleFrame* CGDressUpModelFrame::Create(CSimpleFrame* parent) {
// TODO: Data = CDataAllocator__GetData(0, ".?AVCGDressUpModelFrame@@", -2);
return NEW(CGDressUpModelFrame, parent);
}
void CGDressUpModelFrame::CreateScriptMetaTable() {
lua_State* L = FrameScript_GetContext();
int32_t ref = FrameScript_Object::CreateScriptMetaTable(L, &CGDressUpModelFrame::RegisterScriptMethods);
CGDressUpModelFrame::s_metatable = ref;
}
void CGDressUpModelFrame::RegisterScriptMethods(lua_State* L) {
CSimpleFrame::RegisterScriptMethods(L);
FrameScript_Object::FillScriptMethodTable(L, CGDressUpModelFrameMethods, NUM_CGDRESS_UP_MODEL_FRAME_SCRIPT_METHODS);
}
int32_t CGDressUpModelFrame::GetScriptMetaTable() {
return CGDressUpModelFrame::s_metatable;
}
CGDressUpModelFrame::CGDressUpModelFrame(CSimpleFrame* parent)
: CSimpleFrame(parent) {
}

View File

@ -0,0 +1,24 @@
#ifndef GAME_UI_CGDRESS_UP_MODEL_FRAME_HPP
#define GAME_UI_CGDRESS_UP_MODEL_FRAME_HPP
#include "ui/CSimpleFrame.hpp"
#include "ui/CSimpleTop.hpp"
class CGDressUpModelFrame : public CSimpleFrame {
public:
// Static variables
static int32_t s_metatable;
// Static functions
static CSimpleFrame* Create(CSimpleFrame* parent);
static void CreateScriptMetaTable();
static void RegisterScriptMethods(lua_State* L);
// Virtual member functions
virtual int32_t GetScriptMetaTable();
// Member functions
CGDressUpModelFrame(CSimpleFrame* parent);
};
#endif // GAME_UI_CGDRESS_UP_MODEL_FRAME_HPP

View File

@ -0,0 +1,22 @@
#include "gameui/CGDressUpModelFrameScript.hpp"
#include "util/Lua.hpp"
#include "util/Unimplemented.hpp"
static int32_t Script_Undress(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_Dress(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_TryOn(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
FrameScript_Method CGDressUpModelFrameMethods[NUM_CGDRESS_UP_MODEL_FRAME_SCRIPT_METHODS] = {
{ "Undress", &Script_Undress },
{ "Dress", &Script_Dress },
{ "TryOn", &Script_TryOn }
};

View File

@ -0,0 +1,10 @@
#ifndef GAME_UI_CGDRESS_UP_MODEL_FRAME_SCRIPT_HPP
#define GAME_UI_CGDRESS_UP_MODEL_FRAME_SCRIPT_HPP
#include "ui/FrameScript.hpp"
#define NUM_CGDRESS_UP_MODEL_FRAME_SCRIPT_METHODS 3
extern FrameScript_Method CGDressUpModelFrameMethods[NUM_CGDRESS_UP_MODEL_FRAME_SCRIPT_METHODS];
#endif

View File

@ -4,9 +4,15 @@
#include <storm/Log.hpp>
#include "client/Client.hpp"
#include "gameui/GameScriptFunctions.hpp"
#include "gameui/CGWorldFrame.hpp"
#include "gameui/CGTooltip.hpp"
#include "gameui/GameScriptFunctions.hpp"
#include "gameui/CGCooldown.hpp"
#include "gameui/CGMinimapFrame.hpp"
#include "gameui/CGCharacterModelBase.hpp"
#include "gameui/CGDressUpModelFrame.hpp"
#include "gameui/CGTabardModelFrame.hpp"
#include "gameui/CGQuestPOIFrame.hpp"
#include "gx/Coordinate.hpp"
#include "gx/Device.hpp"
#include "ui/FrameScript.hpp"
@ -181,12 +187,12 @@ void CGGameUI::Initialize() {
void CGGameUI::RegisterFrameFactories() {
FrameXML_RegisterFactory("WorldFrame", CGWorldFrame::Create, 1);
FrameXML_RegisterFactory("GameTooltip", CGTooltip::Create, 0);
//FrameXML_RegisterFactory("Cooldown", (int)sub_51A380, 0);
//FrameXML_RegisterFactory("Minimap", (int)CGMinimapFrame::Create, 0);
//FrameXML_RegisterFactory("PlayerModel", (int)CGCharacterModelBase::Create, 0);
//FrameXML_RegisterFactory("DressUpModel", (int)sub_514300, 0);
//FrameXML_RegisterFactory("TabardModel", (int)CGTabardModelFrame::Create, 0);
//FrameXML_RegisterFactory("QuestPOIFrame", (int)sub_514260, 0);
FrameXML_RegisterFactory("Cooldown", CGCooldown::Create, 0);
FrameXML_RegisterFactory("Minimap", CGMinimapFrame::Create, 0);
FrameXML_RegisterFactory("PlayerModel", CGCharacterModelBase::Create, 0);
FrameXML_RegisterFactory("DressUpModel", CGDressUpModelFrame::Create, 0);
FrameXML_RegisterFactory("TabardModel", CGTabardModelFrame::Create, 0);
FrameXML_RegisterFactory("QuestPOIFrame", CGQuestPOIFrame::Create, 0);
}
void CGGameUI::Reload() {

View File

@ -0,0 +1,29 @@
#include "gameui/CGMinimapFrame.hpp"
#include "gameui/CGMinimapFrameScript.hpp"
#include <bc/Memory.hpp>
int32_t CGMinimapFrame::s_metatable;
CSimpleFrame* CGMinimapFrame::Create(CSimpleFrame* parent) {
// TODO: Data = CDataAllocator__GetData(0, ".?AVCGMinimapFrame@@", -2);
return NEW(CGMinimapFrame, parent);
}
void CGMinimapFrame::CreateScriptMetaTable() {
lua_State* L = FrameScript_GetContext();
int32_t ref = FrameScript_Object::CreateScriptMetaTable(L, &CGMinimapFrame::RegisterScriptMethods);
CGMinimapFrame::s_metatable = ref;
}
void CGMinimapFrame::RegisterScriptMethods(lua_State* L) {
CSimpleFrame::RegisterScriptMethods(L);
FrameScript_Object::FillScriptMethodTable(L, CGMinimapFrameMethods, NUM_CGMINIMAP_FRAME_SCRIPT_METHODS);
}
int32_t CGMinimapFrame::GetScriptMetaTable() {
return CGMinimapFrame::s_metatable;
}
CGMinimapFrame::CGMinimapFrame(CSimpleFrame* parent)
: CSimpleFrame(parent) {
}

View File

@ -0,0 +1,24 @@
#ifndef GAME_UI_CGMINIMAP_FRAME_HPP
#define GAME_UI_CGMINIMAP_FRAME_HPP
#include "ui/CSimpleFrame.hpp"
#include "ui/CSimpleTop.hpp"
class CGMinimapFrame : public CSimpleFrame {
public:
// Static variables
static int32_t s_metatable;
// Static functions
static CSimpleFrame* Create(CSimpleFrame* parent);
static void CreateScriptMetaTable();
static void RegisterScriptMethods(lua_State* L);
// Virtual member functions
virtual int32_t GetScriptMetaTable();
// Member functions
CGMinimapFrame(CSimpleFrame* parent);
};
#endif // GAME_UI_CGMINIMAP_FRAME_HPP

View File

@ -0,0 +1,82 @@
#include "gameui/CGMinimapFrameScript.hpp"
#include "util/Lua.hpp"
#include "util/Unimplemented.hpp"
static int32_t Script_SetMaskTexture(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_SetIconTexture(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_SetBlipTexture(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_SetClassBlipTexture(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_SetPOIArrowTexture(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_SetStaticPOIArrowTexture(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_SetCorpsePOIArrowTexture(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_SetPlayerTexture(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_SetPlayerTextureHeight(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_SetPlayerTextureWidth(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_GetZoomLevels(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_GetZoom(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_SetZoom(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_PingLocation(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_GetPingPosition(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
FrameScript_Method CGMinimapFrameMethods[NUM_CGMINIMAP_FRAME_SCRIPT_METHODS] = {
{ "SetMaskTexture", &Script_SetMaskTexture },
{ "SetIconTexture", &Script_SetIconTexture },
{ "SetBlipTexture", &Script_SetBlipTexture },
{ "SetClassBlipTexture", &Script_SetClassBlipTexture },
{ "SetPOIArrowTexture", &Script_SetPOIArrowTexture },
{ "SetStaticPOIArrowTexture", &Script_SetStaticPOIArrowTexture },
{ "SetCorpsePOIArrowTexture", &Script_SetCorpsePOIArrowTexture },
{ "SetPlayerTexture", &Script_SetPlayerTexture },
{ "SetPlayerTextureHeight", &Script_SetPlayerTextureHeight },
{ "SetPlayerTextureWidth", &Script_SetPlayerTextureWidth },
{ "GetZoomLevels", &Script_GetZoomLevels },
{ "GetZoom", &Script_GetZoom },
{ "SetZoom", &Script_SetZoom },
{ "PingLocation", &Script_PingLocation },
{ "GetPingPosition", &Script_GetPingPosition }
};

View File

@ -0,0 +1,10 @@
#ifndef GAME_UI_CGMINIMAP_FRAME_SCRIPT_HPP
#define GAME_UI_CGMINIMAP_FRAME_SCRIPT_HPP
#include "ui/FrameScript.hpp"
#define NUM_CGMINIMAP_FRAME_SCRIPT_METHODS 15
extern FrameScript_Method CGMinimapFrameMethods[NUM_CGMINIMAP_FRAME_SCRIPT_METHODS];
#endif

View File

@ -0,0 +1,29 @@
#include "gameui/CGQuestPOIFrame.hpp"
#include "gameui/CGQuestPOIFrameScript.hpp"
#include <bc/Memory.hpp>
int32_t CGQuestPOIFrame::s_metatable;
CSimpleFrame* CGQuestPOIFrame::Create(CSimpleFrame* parent) {
// TODO: Data = CDataAllocator__GetData(0, ".?AVCGQuestPOIFrame@@", -2);
return NEW(CGQuestPOIFrame, parent);
}
void CGQuestPOIFrame::CreateScriptMetaTable() {
lua_State* L = FrameScript_GetContext();
int32_t ref = FrameScript_Object::CreateScriptMetaTable(L, &CGQuestPOIFrame::RegisterScriptMethods);
CGQuestPOIFrame::s_metatable = ref;
}
void CGQuestPOIFrame::RegisterScriptMethods(lua_State* L) {
CSimpleFrame::RegisterScriptMethods(L);
FrameScript_Object::FillScriptMethodTable(L, CGQuestPOIFrameMethods, NUM_CGQUEST_POI_FRAME_SCRIPT_METHODS);
}
int32_t CGQuestPOIFrame::GetScriptMetaTable() {
return CGQuestPOIFrame::s_metatable;
}
CGQuestPOIFrame::CGQuestPOIFrame(CSimpleFrame* parent)
: CSimpleFrame(parent) {
}

View File

@ -0,0 +1,24 @@
#ifndef GAME_UI_CGQUEST_POI_FRAME_HPP
#define GAME_UI_CGQUEST_POI_FRAME_HPP
#include "ui/CSimpleFrame.hpp"
#include "ui/CSimpleTop.hpp"
class CGQuestPOIFrame : public CSimpleFrame {
public:
// Static variables
static int32_t s_metatable;
// Static functions
static CSimpleFrame* Create(CSimpleFrame* parent);
static void CreateScriptMetaTable();
static void RegisterScriptMethods(lua_State* L);
// Virtual member functions
virtual int32_t GetScriptMetaTable();
// Member functions
CGQuestPOIFrame(CSimpleFrame* parent);
};
#endif // GAME_UI_CGQUEST_POI_FRAME_HPP

View File

@ -0,0 +1,77 @@
#include "gameui/CGQuestPOIFrameScript.hpp"
#include "util/Lua.hpp"
#include "util/Unimplemented.hpp"
static int32_t Script_SetFillTexture(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_SetFillAlpha(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_SetBorderTexture(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_SetBorderAlpha(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_SetBorderScalar(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_DrawQuestBlob(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_EnableSmoothing(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_EnableMerging(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_SetMergeThreshold(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_SetNumSplinePoints(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_UpdateQuestPOI(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_UpdateMouseOverTooltip(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_GetTooltipIndex(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_GetNumTooltips(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
FrameScript_Method CGQuestPOIFrameMethods[NUM_CGQUEST_POI_FRAME_SCRIPT_METHODS] = {
{ "SetFillTexture", &Script_SetFillTexture },
{ "SetFillAlpha", &Script_SetFillAlpha },
{ "SetBorderTexture", &Script_SetBorderTexture },
{ "SetBorderAlpha", &Script_SetBorderAlpha },
{ "SetBorderScalar", &Script_SetBorderScalar },
{ "DrawQuestBlob", &Script_DrawQuestBlob },
{ "EnableSmoothing", &Script_EnableSmoothing },
{ "EnableMerging", &Script_EnableMerging },
{ "SetMergeThreshold", &Script_SetMergeThreshold },
{ "SetNumSplinePoints", &Script_SetNumSplinePoints },
{ "UpdateQuestPOI", &Script_UpdateQuestPOI },
{ "UpdateMouseOverTooltip", &Script_UpdateMouseOverTooltip },
{ "GetTooltipIndex", &Script_GetTooltipIndex },
{ "GetNumTooltips", &Script_GetNumTooltips }
};

View File

@ -0,0 +1,10 @@
#ifndef GAME_UI_CGQUEST_POI_FRAME_SCRIPT_HPP
#define GAME_UI_CGQUEST_POI_FRAME_SCRIPT_HPP
#include "ui/FrameScript.hpp"
#define NUM_CGQUEST_POI_FRAME_SCRIPT_METHODS 14
extern FrameScript_Method CGQuestPOIFrameMethods[NUM_CGQUEST_POI_FRAME_SCRIPT_METHODS];
#endif

View File

@ -0,0 +1,29 @@
#include "gameui/CGTabardModelFrame.hpp"
#include "gameui/CGTabardModelFrameScript.hpp"
#include <bc/Memory.hpp>
int32_t CGTabardModelFrame::s_metatable;
CSimpleFrame* CGTabardModelFrame::Create(CSimpleFrame* parent) {
// TODO: Data = CDataAllocator__GetData(0, ".?AVCGTabardModelFrame@@", -2);
return NEW(CGTabardModelFrame, parent);
}
void CGTabardModelFrame::CreateScriptMetaTable() {
lua_State* L = FrameScript_GetContext();
int32_t ref = FrameScript_Object::CreateScriptMetaTable(L, &CGTabardModelFrame::RegisterScriptMethods);
CGTabardModelFrame::s_metatable = ref;
}
void CGTabardModelFrame::RegisterScriptMethods(lua_State* L) {
CSimpleFrame::RegisterScriptMethods(L);
FrameScript_Object::FillScriptMethodTable(L, CGTabardModelFrameMethods, NUM_CGTABARD_MODEL_FRAME_SCRIPT_METHODS);
}
int32_t CGTabardModelFrame::GetScriptMetaTable() {
return CGTabardModelFrame::s_metatable;
}
CGTabardModelFrame::CGTabardModelFrame(CSimpleFrame* parent)
: CSimpleFrame(parent) {
}

View File

@ -0,0 +1,24 @@
#ifndef GAME_UI_CGTABARD_MODEL_FRAME_HPP
#define GAME_UI_CGTABARD_MODEL_FRAME_HPP
#include "ui/CSimpleFrame.hpp"
#include "ui/CSimpleTop.hpp"
class CGTabardModelFrame : public CSimpleFrame {
public:
// Static variables
static int32_t s_metatable;
// Static functions
static CSimpleFrame* Create(CSimpleFrame* parent);
static void CreateScriptMetaTable();
static void RegisterScriptMethods(lua_State* L);
// Virtual member functions
virtual int32_t GetScriptMetaTable();
// Member functions
CGTabardModelFrame(CSimpleFrame* parent);
};
#endif // GAME_UI_CGTABARD_MODEL_FRAME_HPP

View File

@ -0,0 +1,57 @@
#include "gameui/CGTabardModelFrameScript.hpp"
#include "util/Lua.hpp"
#include "util/Unimplemented.hpp"
static int32_t Script_InitializeTabardColors(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_Save(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_CycleVariation(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_GetUpperBackgroundFileName(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_GetLowerBackgroundFileName(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_GetUpperEmblemFileName(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_GetLowerEmblemFileName(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_GetUpperEmblemTexture(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_GetLowerEmblemTexture(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
static int32_t Script_CanSaveTabardNow(lua_State* L) {
WHOA_UNIMPLEMENTED(0);
}
FrameScript_Method CGTabardModelFrameMethods[NUM_CGTABARD_MODEL_FRAME_SCRIPT_METHODS] = {
{ "InitializeTabardColors", &Script_InitializeTabardColors },
{ "Save", &Script_Save },
{ "CycleVariation", &Script_CycleVariation },
{ "GetUpperBackgroundFileName", &Script_GetUpperBackgroundFileName },
{ "GetLowerBackgroundFileName", &Script_GetLowerBackgroundFileName },
{ "GetUpperEmblemFileName", &Script_GetUpperEmblemFileName },
{ "GetLowerEmblemFileName", &Script_GetLowerEmblemFileName },
{ "GetUpperEmblemTexture", &Script_GetUpperEmblemTexture },
{ "GetLowerEmblemTexture", &Script_GetLowerEmblemTexture },
{ "CanSaveTabardNow", &Script_CanSaveTabardNow }
};

View File

@ -0,0 +1,10 @@
#ifndef GAME_UI_CGTABARD_MODEL_FRAME_SCRIPT_HPP
#define GAME_UI_CGTABARD_MODEL_FRAME_SCRIPT_HPP
#include "ui/FrameScript.hpp"
#define NUM_CGTABARD_MODEL_FRAME_SCRIPT_METHODS 10
extern FrameScript_Method CGTabardModelFrameMethods[NUM_CGTABARD_MODEL_FRAME_SCRIPT_METHODS];
#endif

View File

@ -1,6 +1,12 @@
#include "gameui/GameScriptFunctions.hpp"
#include "gameui/CGGameUI.hpp"
#include "gameui/CGTooltip.hpp"
#include "gameui/CGCooldown.hpp"
#include "gameui/CGMinimapFrame.hpp"
#include "gameui/CGCharacterModelBase.hpp"
#include "gameui/CGDressUpModelFrame.hpp"
#include "gameui/CGTabardModelFrame.hpp"
#include "gameui/CGQuestPOIFrame.hpp"
#include "ui/FrameXML.hpp"
#include "ui/FrameScript.hpp"
#include "util/Lua.hpp"
@ -1609,8 +1615,12 @@ FrameScript_Method GameScript::s_ScriptFunctions_Game[NUM_SCRIPT_FUNCTIONS_GAME]
void LoadScriptFunctions() {
RegisterSimpleFrameScriptMethods();
CGTooltip::CreateScriptMetaTable();
// TODO
CGCooldown::CreateScriptMetaTable();
CGMinimapFrame::CreateScriptMetaTable();
CGCharacterModelBase::CreateScriptMetaTable();
CGDressUpModelFrame::CreateScriptMetaTable();
CGTabardModelFrame::CreateScriptMetaTable();
CGQuestPOIFrame::CreateScriptMetaTable();
for (int32_t i = 0; i < NUM_SCRIPT_FUNCTIONS_GAME; ++i) {
FrameScript_RegisterFunction(