mirror of
https://github.com/whoahq/whoa.git
synced 2026-03-19 06:01:07 +03:00
Compare commits
3 Commits
184d3b041f
...
6e1eb93ff9
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6e1eb93ff9 | ||
|
|
43cb20cd0f | ||
|
|
99c00ade9b |
@ -21,9 +21,10 @@
|
|||||||
#include "util/CStatus.hpp"
|
#include "util/CStatus.hpp"
|
||||||
#include <common/MD5.hpp>
|
#include <common/MD5.hpp>
|
||||||
|
|
||||||
|
WOWGUID CGGameUI::s_currentObjectTrack;
|
||||||
CScriptObject* CGGameUI::s_gameTooltip;
|
CScriptObject* CGGameUI::s_gameTooltip;
|
||||||
CSimpleTop* CGGameUI::s_simpleTop;
|
|
||||||
WOWGUID CGGameUI::s_lockedTarget;
|
WOWGUID CGGameUI::s_lockedTarget;
|
||||||
|
CSimpleTop* CGGameUI::s_simpleTop;
|
||||||
|
|
||||||
void LoadScriptFunctions() {
|
void LoadScriptFunctions() {
|
||||||
// TODO
|
// TODO
|
||||||
@ -58,6 +59,10 @@ void LoadScriptFunctions() {
|
|||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WOWGUID& CGGameUI::GetCurrentObjectTrack() {
|
||||||
|
return CGGameUI::s_currentObjectTrack;
|
||||||
|
}
|
||||||
|
|
||||||
WOWGUID& CGGameUI::GetLockedTarget() {
|
WOWGUID& CGGameUI::GetLockedTarget() {
|
||||||
return CGGameUI::s_lockedTarget;
|
return CGGameUI::s_lockedTarget;
|
||||||
}
|
}
|
||||||
@ -155,6 +160,12 @@ int32_t CGGameUI::IsRaidMember(const WOWGUID& guid) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int32_t CGGameUI::IsRaidMemberOrPet(const WOWGUID& guid) {
|
||||||
|
// TODO
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
void CGGameUI::RegisterFrameFactories() {
|
void CGGameUI::RegisterFrameFactories() {
|
||||||
FrameXML_RegisterFactory("WorldFrame", &CGWorldFrame::Create, true);
|
FrameXML_RegisterFactory("WorldFrame", &CGWorldFrame::Create, true);
|
||||||
FrameXML_RegisterFactory("GameTooltip", &CGTooltip::Create, false);
|
FrameXML_RegisterFactory("GameTooltip", &CGTooltip::Create, false);
|
||||||
|
|||||||
@ -13,13 +13,16 @@ class CGGameUI {
|
|||||||
static CSimpleTop* s_simpleTop;
|
static CSimpleTop* s_simpleTop;
|
||||||
|
|
||||||
// Static functions
|
// Static functions
|
||||||
|
static WOWGUID& GetCurrentObjectTrack();
|
||||||
static WOWGUID& GetLockedTarget();
|
static WOWGUID& GetLockedTarget();
|
||||||
static void Initialize();
|
static void Initialize();
|
||||||
static void InitializeGame();
|
static void InitializeGame();
|
||||||
static int32_t IsRaidMember(const WOWGUID& guid);
|
static int32_t IsRaidMember(const WOWGUID& guid);
|
||||||
|
static int32_t IsRaidMemberOrPet(const WOWGUID& guid);
|
||||||
static void RegisterFrameFactories();
|
static void RegisterFrameFactories();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
static WOWGUID s_currentObjectTrack;
|
||||||
static WOWGUID s_lockedTarget;
|
static WOWGUID s_lockedTarget;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,20 @@
|
|||||||
#include "ui/game/CGGameUI.hpp"
|
#include "ui/game/CGGameUI.hpp"
|
||||||
#include <storm/String.hpp>
|
#include <storm/String.hpp>
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
bool ParseTrailingTokens(const char* token, WOWGUID& guid, CGPlayer_C* player) {
|
||||||
|
// TODO
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Script_GetGUIDFromString(const char*& token, WOWGUID& guid) {
|
||||||
|
// TODO
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool Script_GetGUIDFromToken(const char* token, WOWGUID& guid, bool defaultToTarget) {
|
bool Script_GetGUIDFromToken(const char* token, WOWGUID& guid, bool defaultToTarget) {
|
||||||
auto activePlayer = static_cast<CGPlayer_C*>(ClntObjMgrObjectPtr(ClntObjMgrGetActivePlayer(), TYPE_PLAYER, __FILE__, __LINE__));
|
auto activePlayer = static_cast<CGPlayer_C*>(ClntObjMgrObjectPtr(ClntObjMgrGetActivePlayer(), TYPE_PLAYER, __FILE__, __LINE__));
|
||||||
|
|
||||||
@ -118,7 +132,11 @@ bool Script_GetGUIDFromToken(const char* token, WOWGUID& guid, bool defaultToTar
|
|||||||
else if (!SStrCmpI(parseToken, "mouseover", 9)) {
|
else if (!SStrCmpI(parseToken, "mouseover", 9)) {
|
||||||
parseToken += 9;
|
parseToken += 9;
|
||||||
|
|
||||||
// TODO
|
auto trackedObjectGuid = CGGameUI::GetCurrentObjectTrack();
|
||||||
|
|
||||||
|
if (ClntObjMgrObjectPtr(trackedObjectGuid, TYPE_UNIT, __FILE__, __LINE__) || CGGameUI::IsRaidMemberOrPet(trackedObjectGuid)) {
|
||||||
|
guid = trackedObjectGuid;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// focus - focus target
|
// focus - focus target
|
||||||
@ -149,9 +167,25 @@ bool Script_GetGUIDFromToken(const char* token, WOWGUID& guid, bool defaultToTar
|
|||||||
guid = -1;
|
guid = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO ParseTrailingTokens
|
// Token string was fully parsed or GUID was determined and token string potentially includes
|
||||||
// TODO Script_GetGUIDFromString
|
// trailing tokens
|
||||||
// TODO guid -2
|
if ((*parseToken == '\0' || guid) && ParseTrailingTokens(parseToken, guid, activePlayer)) {
|
||||||
|
if (!guid) {
|
||||||
|
guid = -2;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token string was either not parsed or only partially parsed and GUID was not determined
|
||||||
|
if (!guid && Script_GetGUIDFromString(token, guid) && ParseTrailingTokens(token, guid, activePlayer)) {
|
||||||
|
if (!guid) {
|
||||||
|
guid = -2;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GUID was not successfully determined
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,6 +3,8 @@
|
|||||||
|
|
||||||
#include "util/GUID.hpp"
|
#include "util/GUID.hpp"
|
||||||
|
|
||||||
|
bool Script_GetGUIDFromString(const char*& token, WOWGUID& guid);
|
||||||
|
|
||||||
bool Script_GetGUIDFromToken(const char* token, WOWGUID& guid, bool defaultToTarget);
|
bool Script_GetGUIDFromToken(const char* token, WOWGUID& guid, bool defaultToTarget);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user