mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-22 23:30:14 +00:00
Add Tier 8 commands: advanced targeting system
Targeting Commands: - /cleartarget - Clear current target selection - /targetenemy - Cycle to next hostile target (Tab equivalent) - /targetfriend - Cycle to next friendly player - /targetlasttarget, /targetlast - Switch to previous target - /targetlastenemy - Cycle to previous hostile target - /targetlastfriend - Cycle to previous friendly player - /focus - Set current target as focus (client-side) - /clearfocus - Clear focus target Implementation: - Added focusGuid and lastTargetGuid to GameHandler for client-side tracking - setTarget() now automatically saves previous target to lastTargetGuid - setFocus() and clearFocus() manage focus target with user feedback - targetLastTarget() swaps current and previous targets - targetEnemy() cycles through hostile entities (Units) - targetFriend() cycles through friendly entities (Players) - Both targetEnemy/targetFriend support reverse parameter for backwards cycling Features: - Focus targeting is client-side (no server opcode in 3.3.5a) - Last target tracking happens automatically on every target change - Enemy/friend cycling iterates through visible entities - Provides user feedback when no targets available - Tab-like cycling behavior with wraparound All commands work entirely client-side for responsive targeting.
This commit is contained in:
parent
bca3f64af6
commit
dfc4008ec7
3 changed files with 206 additions and 0 deletions
|
|
@ -202,6 +202,18 @@ public:
|
|||
bool hasTarget() const { return targetGuid != 0; }
|
||||
void tabTarget(float playerX, float playerY, float playerZ);
|
||||
|
||||
// Focus targeting
|
||||
void setFocus(uint64_t guid);
|
||||
void clearFocus();
|
||||
uint64_t getFocusGuid() const { return focusGuid; }
|
||||
std::shared_ptr<Entity> getFocus() const;
|
||||
bool hasFocus() const { return focusGuid != 0; }
|
||||
|
||||
// Advanced targeting
|
||||
void targetLastTarget();
|
||||
void targetEnemy(bool reverse = false);
|
||||
void targetFriend(bool reverse = false);
|
||||
|
||||
// Inspection
|
||||
void inspectTarget();
|
||||
|
||||
|
|
@ -646,6 +658,8 @@ private:
|
|||
|
||||
// Targeting
|
||||
uint64_t targetGuid = 0;
|
||||
uint64_t focusGuid = 0; // Focus target
|
||||
uint64_t lastTargetGuid = 0; // Previous target
|
||||
std::vector<uint64_t> tabCycleList;
|
||||
int tabCycleIndex = -1;
|
||||
bool tabCycleStale = true;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue