mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-17 17:43:52 +00:00
refactor: extract updateTimers() from GameHandler::update()
Move 164 lines of timer/pending-state logic into updateTimers(): auction delay, quest accept timeouts, money delta, GO loot retries, name query resync, loot money notifications, auto-inspect throttling. update() is now ~430 lines (down from original 704).
This commit is contained in:
parent
7066062136
commit
6343ceb151
2 changed files with 36 additions and 30 deletions
|
|
@ -2315,6 +2315,7 @@ public:
|
||||||
*/
|
*/
|
||||||
void update(float deltaTime);
|
void update(float deltaTime);
|
||||||
void updateNetworking(float deltaTime);
|
void updateNetworking(float deltaTime);
|
||||||
|
void updateTimers(float deltaTime);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reset DBC-backed caches so they reload from new expansion data.
|
* Reset DBC-backed caches so they reload from new expansion data.
|
||||||
|
|
|
||||||
|
|
@ -928,36 +928,7 @@ void GameHandler::updateNetworking(float deltaTime) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameHandler::update(float deltaTime) {
|
void GameHandler::updateTimers(float deltaTime) {
|
||||||
// Fire deferred char-create callback (outside ImGui render)
|
|
||||||
if (pendingCharCreateResult_) {
|
|
||||||
pendingCharCreateResult_ = false;
|
|
||||||
if (charCreateCallback_) {
|
|
||||||
charCreateCallback_(pendingCharCreateSuccess_, pendingCharCreateMsg_);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!socket) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
updateNetworking(deltaTime);
|
|
||||||
if (!socket) return; // disconnect() may have been called
|
|
||||||
|
|
||||||
// Validate target still exists
|
|
||||||
if (targetGuid != 0 && !entityManager.hasEntity(targetGuid)) {
|
|
||||||
clearTarget();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Detect combat state transitions → fire PLAYER_REGEN_DISABLED / PLAYER_REGEN_ENABLED
|
|
||||||
{
|
|
||||||
bool combatNow = isInCombat();
|
|
||||||
if (combatNow != wasCombat_) {
|
|
||||||
wasCombat_ = combatNow;
|
|
||||||
fireAddonEvent(combatNow ? "PLAYER_REGEN_DISABLED" : "PLAYER_REGEN_ENABLED", {});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (auctionSearchDelayTimer_ > 0.0f) {
|
if (auctionSearchDelayTimer_ > 0.0f) {
|
||||||
auctionSearchDelayTimer_ -= deltaTime;
|
auctionSearchDelayTimer_ -= deltaTime;
|
||||||
if (auctionSearchDelayTimer_ < 0.0f) auctionSearchDelayTimer_ = 0.0f;
|
if (auctionSearchDelayTimer_ < 0.0f) auctionSearchDelayTimer_ = 0.0f;
|
||||||
|
|
@ -1122,6 +1093,40 @@ void GameHandler::update(float deltaTime) {
|
||||||
LOG_DEBUG("Sent CMSG_INSPECT for player 0x", std::hex, guid, std::dec);
|
LOG_DEBUG("Sent CMSG_INSPECT for player 0x", std::hex, guid, std::dec);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void GameHandler::update(float deltaTime) {
|
||||||
|
// Fire deferred char-create callback (outside ImGui render)
|
||||||
|
if (pendingCharCreateResult_) {
|
||||||
|
pendingCharCreateResult_ = false;
|
||||||
|
if (charCreateCallback_) {
|
||||||
|
charCreateCallback_(pendingCharCreateSuccess_, pendingCharCreateMsg_);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!socket) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
updateNetworking(deltaTime);
|
||||||
|
if (!socket) return; // disconnect() may have been called
|
||||||
|
|
||||||
|
// Validate target still exists
|
||||||
|
if (targetGuid != 0 && !entityManager.hasEntity(targetGuid)) {
|
||||||
|
clearTarget();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Detect combat state transitions → fire PLAYER_REGEN_DISABLED / PLAYER_REGEN_ENABLED
|
||||||
|
{
|
||||||
|
bool combatNow = isInCombat();
|
||||||
|
if (combatNow != wasCombat_) {
|
||||||
|
wasCombat_ = combatNow;
|
||||||
|
fireAddonEvent(combatNow ? "PLAYER_REGEN_DISABLED" : "PLAYER_REGEN_ENABLED", {});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
updateTimers(deltaTime);
|
||||||
|
|
||||||
|
|
||||||
// Send periodic heartbeat if in world
|
// Send periodic heartbeat if in world
|
||||||
if (state == WorldState::IN_WORLD) {
|
if (state == WorldState::IN_WORLD) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue