diff --git a/src/ui/game/CGGameUI.cpp b/src/ui/game/CGGameUI.cpp index 6a4e49e..5af07f7 100644 --- a/src/ui/game/CGGameUI.cpp +++ b/src/ui/game/CGGameUI.cpp @@ -18,6 +18,10 @@ CSimpleTop* CGGameUI::s_simpleTop; void LoadScriptFunctions() { // TODO + CGTooltip::CreateScriptMetaTable(); + + // TODO + GameScriptRegisterFunctions(); // TODO diff --git a/src/ui/game/CGTooltip.cpp b/src/ui/game/CGTooltip.cpp index e319dd4..ceb5bfa 100644 --- a/src/ui/game/CGTooltip.cpp +++ b/src/ui/game/CGTooltip.cpp @@ -1,5 +1,7 @@ #include "ui/game/CGTooltip.hpp" +#include "ui/game/CGTooltipScript.hpp" +int32_t CGTooltip::s_metatable; int32_t CGTooltip::s_objectType; CSimpleFrame* CGTooltip::Create(CSimpleFrame* parent) { @@ -8,6 +10,11 @@ CSimpleFrame* CGTooltip::Create(CSimpleFrame* parent) { return STORM_NEW(CGTooltip)(parent); } +void CGTooltip::CreateScriptMetaTable() { + auto L = FrameScript_GetContext(); + CGTooltip::s_metatable = FrameScript_Object::CreateScriptMetaTable(L, &CGTooltip::RegisterScriptMethods); +} + int32_t CGTooltip::GetObjectType() { if (!CGTooltip::s_objectType) { CGTooltip::s_objectType = ++FrameScript_Object::s_objectTypes; @@ -16,6 +23,11 @@ int32_t CGTooltip::GetObjectType() { return CGTooltip::s_objectType; } +void CGTooltip::RegisterScriptMethods(lua_State* L) { + CSimpleFrame::RegisterScriptMethods(L); + FrameScript_Object::FillScriptMethodTable(L, CGTooltipMethods, NUM_CG_TOOLTIP_SCRIPT_METHODS); +} + CGTooltip::CGTooltip(CSimpleFrame* parent) : CSimpleFrame(parent) { // TODO } diff --git a/src/ui/game/CGTooltip.hpp b/src/ui/game/CGTooltip.hpp index 8bcfa62..5b32efa 100644 --- a/src/ui/game/CGTooltip.hpp +++ b/src/ui/game/CGTooltip.hpp @@ -6,11 +6,14 @@ class CGTooltip : public CSimpleFrame { public: // Static variables + static int32_t s_metatable; static int32_t s_objectType; // Static functions static CSimpleFrame* Create(CSimpleFrame* parent); + static void CreateScriptMetaTable(); static int32_t GetObjectType(); + static void RegisterScriptMethods(lua_State* L); // Member variables // TODO diff --git a/src/ui/game/CGTooltipScript.cpp b/src/ui/game/CGTooltipScript.cpp new file mode 100644 index 0000000..91b296d --- /dev/null +++ b/src/ui/game/CGTooltipScript.cpp @@ -0,0 +1,355 @@ +#include "ui/game/CGTooltipScript.hpp" +#include "ui/FrameScript.hpp" +#include "util/Unimplemented.hpp" + +namespace { + +int32_t CGTooltip_AddFontStrings(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetMinimumWidth(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_GetMinimumWidth(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetPadding(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_GetPadding(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_IsOwned(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_GetOwner(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetOwner(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_GetAnchorType(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetAnchorType(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_ClearLines(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_AddLine(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_AddDoubleLine(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_AddTexture(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetText(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_AppendText(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_FadeOut(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetHyperlink(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetAction(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetPetAction(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetShapeshift(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetPossession(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetTracking(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetSpell(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetSpellByID(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetGlyph(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetInventoryItem(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetLootItem(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetQuestItem(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetQuestLogItem(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetTrainerService(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetTradeSkillItem(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetMerchantItem(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetMerchantCostItem(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetTradePlayerItem(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetTradeTargetItem(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetBagItem(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetUnit(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetUnitBuff(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetUnitDebuff(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetUnitAura(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetTalent(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetSendMailItem(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetInboxItem(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetAuctionSellItem(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetAuctionItem(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_NumLines(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetQuestRewardSpell(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetQuestLogRewardSpell(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetHyperlinkCompareItem(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetBuybackItem(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetLootRollItem(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetSocketedItem(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetSocketGem(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetExistingSocketGem(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetGuildBankItem(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_IsUnit(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_GetUnit(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_GetItem(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_GetSpell(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetTotem(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetCurrencyToken(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetBackpackToken(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_IsEquippedItem(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetQuestLogSpecialItem(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetEquipmentSet(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetFrameStack(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetLFGDungeonReward(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +int32_t CGTooltip_SetLFGCompletionReward(lua_State* L) { + WHOA_UNIMPLEMENTED(0); +} + +} + +FrameScript_Method CGTooltipMethods[] = { + { "AddFontStrings", &CGTooltip_AddFontStrings }, + { "SetMinimumWidth", &CGTooltip_SetMinimumWidth }, + { "GetMinimumWidth", &CGTooltip_GetMinimumWidth }, + { "SetPadding", &CGTooltip_SetPadding }, + { "GetPadding", &CGTooltip_GetPadding }, + { "IsOwned", &CGTooltip_IsOwned }, + { "GetOwner", &CGTooltip_GetOwner }, + { "SetOwner", &CGTooltip_SetOwner }, + { "GetAnchorType", &CGTooltip_GetAnchorType }, + { "SetAnchorType", &CGTooltip_SetAnchorType }, + { "ClearLines", &CGTooltip_ClearLines }, + { "AddLine", &CGTooltip_AddLine }, + { "AddDoubleLine", &CGTooltip_AddDoubleLine }, + { "AddTexture", &CGTooltip_AddTexture }, + { "SetText", &CGTooltip_SetText }, + { "AppendText", &CGTooltip_AppendText }, + { "FadeOut", &CGTooltip_FadeOut }, + { "SetHyperlink", &CGTooltip_SetHyperlink }, + { "SetAction", &CGTooltip_SetAction }, + { "SetPetAction", &CGTooltip_SetPetAction }, + { "SetShapeshift", &CGTooltip_SetShapeshift }, + { "SetPossession", &CGTooltip_SetPossession }, + { "SetTracking", &CGTooltip_SetTracking }, + { "SetSpell", &CGTooltip_SetSpell }, + { "SetSpellByID", &CGTooltip_SetSpellByID }, + { "SetGlyph", &CGTooltip_SetGlyph }, + { "SetInventoryItem", &CGTooltip_SetInventoryItem }, + { "SetLootItem", &CGTooltip_SetLootItem }, + { "SetQuestItem", &CGTooltip_SetQuestItem }, + { "SetQuestLogItem", &CGTooltip_SetQuestLogItem }, + { "SetTrainerService", &CGTooltip_SetTrainerService }, + { "SetTradeSkillItem", &CGTooltip_SetTradeSkillItem }, + { "SetMerchantItem", &CGTooltip_SetMerchantItem }, + { "SetMerchantCostItem", &CGTooltip_SetMerchantCostItem }, + { "SetTradePlayerItem", &CGTooltip_SetTradePlayerItem }, + { "SetTradeTargetItem", &CGTooltip_SetTradeTargetItem }, + { "SetBagItem", &CGTooltip_SetBagItem }, + { "SetUnit", &CGTooltip_SetUnit }, + { "SetUnitBuff", &CGTooltip_SetUnitBuff }, + { "SetUnitDebuff", &CGTooltip_SetUnitDebuff }, + { "SetUnitAura", &CGTooltip_SetUnitAura }, + { "SetTalent", &CGTooltip_SetTalent }, + { "SetSendMailItem", &CGTooltip_SetSendMailItem }, + { "SetInboxItem", &CGTooltip_SetInboxItem }, + { "SetAuctionSellItem", &CGTooltip_SetAuctionSellItem }, + { "SetAuctionItem", &CGTooltip_SetAuctionItem }, + { "NumLines", &CGTooltip_NumLines }, + { "SetQuestRewardSpell", &CGTooltip_SetQuestRewardSpell }, + { "SetQuestLogRewardSpell", &CGTooltip_SetQuestLogRewardSpell }, + { "SetHyperlinkCompareItem", &CGTooltip_SetHyperlinkCompareItem }, + { "SetBuybackItem", &CGTooltip_SetBuybackItem }, + { "SetLootRollItem", &CGTooltip_SetLootRollItem }, + { "SetSocketedItem", &CGTooltip_SetSocketedItem }, + { "SetSocketGem", &CGTooltip_SetSocketGem }, + { "SetExistingSocketGem", &CGTooltip_SetExistingSocketGem }, + { "SetGuildBankItem", &CGTooltip_SetGuildBankItem }, + { "IsUnit", &CGTooltip_IsUnit }, + { "GetUnit", &CGTooltip_GetUnit }, + { "GetItem", &CGTooltip_GetItem }, + { "GetSpell", &CGTooltip_GetSpell }, + { "SetTotem", &CGTooltip_SetTotem }, + { "SetCurrencyToken", &CGTooltip_SetCurrencyToken }, + { "SetBackpackToken", &CGTooltip_SetBackpackToken }, + { "IsEquippedItem", &CGTooltip_IsEquippedItem }, + { "SetQuestLogSpecialItem", &CGTooltip_SetQuestLogSpecialItem }, + { "SetEquipmentSet", &CGTooltip_SetEquipmentSet }, + { "SetFrameStack", &CGTooltip_SetFrameStack }, + { "SetLFGDungeonReward", &CGTooltip_SetLFGDungeonReward }, + { "SetLFGCompletionReward", &CGTooltip_SetLFGCompletionReward }, +}; diff --git a/src/ui/game/CGTooltipScript.hpp b/src/ui/game/CGTooltipScript.hpp new file mode 100644 index 0000000..635099f --- /dev/null +++ b/src/ui/game/CGTooltipScript.hpp @@ -0,0 +1,10 @@ +#ifndef UI_GAME_C_G_TOOLTIP_SCRIPT_HPP +#define UI_GAME_C_G_TOOLTIP_SCRIPT_HPP + +#include "ui/Types.hpp" + +#define NUM_CG_TOOLTIP_SCRIPT_METHODS 69 + +extern FrameScript_Method CGTooltipMethods[NUM_CG_TOOLTIP_SCRIPT_METHODS]; + +#endif