mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-22 23:30:14 +00:00
feat: use rich spell tooltip for buff/debuff frame icons
Some checks are pending
Build / Build (arm64) (push) Waiting to run
Build / Build (x86-64) (push) Waiting to run
Build / Build (macOS arm64) (push) Waiting to run
Build / Build (windows-arm64) (push) Waiting to run
Build / Build (windows-x86-64) (push) Waiting to run
Security / CodeQL (C/C++) (push) Waiting to run
Security / Semgrep (push) Waiting to run
Security / Sanitizer Build (ASan/UBSan) (push) Waiting to run
Some checks are pending
Build / Build (arm64) (push) Waiting to run
Build / Build (x86-64) (push) Waiting to run
Build / Build (macOS arm64) (push) Waiting to run
Build / Build (windows-arm64) (push) Waiting to run
Build / Build (windows-x86-64) (push) Waiting to run
Security / CodeQL (C/C++) (push) Waiting to run
Security / Semgrep (push) Waiting to run
Security / Sanitizer Build (ASan/UBSan) (push) Waiting to run
Player buff bar and target debuff bar icons now show full spell tooltip (school, cost, cast time, range, description) on hover, matching the action bar and spellbook. Falls back to plain spell name if DBC is not loaded. Remaining aura duration is shown below the spell body.
This commit is contained in:
parent
caf0d18393
commit
34bab8edd6
1 changed files with 26 additions and 20 deletions
|
|
@ -2393,20 +2393,23 @@ void GameScreen::renderTargetFrame(game::GameHandler& gameHandler) {
|
|||
IM_COL32(255, 220, 50, 255), chargeStr);
|
||||
}
|
||||
|
||||
// Tooltip
|
||||
// Tooltip: rich spell info + remaining duration
|
||||
if (ImGui::IsItemHovered()) {
|
||||
std::string name = spellbookScreen.lookupSpellName(aura.spellId, assetMgr);
|
||||
if (name.empty()) name = "Spell #" + std::to_string(aura.spellId);
|
||||
ImGui::BeginTooltip();
|
||||
bool richOk = spellbookScreen.renderSpellInfoTooltip(aura.spellId, gameHandler, assetMgr);
|
||||
if (!richOk) {
|
||||
std::string name = spellbookScreen.lookupSpellName(aura.spellId, assetMgr);
|
||||
if (name.empty()) name = "Spell #" + std::to_string(aura.spellId);
|
||||
ImGui::Text("%s", name.c_str());
|
||||
}
|
||||
if (tRemainMs > 0) {
|
||||
int seconds = tRemainMs / 1000;
|
||||
if (seconds < 60) {
|
||||
ImGui::SetTooltip("%s (%ds)", name.c_str(), seconds);
|
||||
} else {
|
||||
ImGui::SetTooltip("%s (%dm %ds)", name.c_str(), seconds / 60, seconds % 60);
|
||||
}
|
||||
} else {
|
||||
ImGui::SetTooltip("%s", name.c_str());
|
||||
char durBuf[32];
|
||||
if (seconds < 60) snprintf(durBuf, sizeof(durBuf), "Remaining: %ds", seconds);
|
||||
else snprintf(durBuf, sizeof(durBuf), "Remaining: %dm %ds", seconds / 60, seconds % 60);
|
||||
ImGui::TextColored(ImVec4(0.7f, 0.7f, 0.7f, 1.0f), "%s", durBuf);
|
||||
}
|
||||
ImGui::EndTooltip();
|
||||
}
|
||||
|
||||
ImGui::PopID();
|
||||
|
|
@ -6394,20 +6397,23 @@ void GameScreen::renderBuffBar(game::GameHandler& gameHandler) {
|
|||
}
|
||||
}
|
||||
|
||||
// Tooltip with spell name and countdown
|
||||
// Tooltip: rich spell info + remaining duration
|
||||
if (ImGui::IsItemHovered()) {
|
||||
std::string name = spellbookScreen.lookupSpellName(aura.spellId, assetMgr);
|
||||
if (name.empty()) name = "Spell #" + std::to_string(aura.spellId);
|
||||
ImGui::BeginTooltip();
|
||||
bool richOk = spellbookScreen.renderSpellInfoTooltip(aura.spellId, gameHandler, assetMgr);
|
||||
if (!richOk) {
|
||||
std::string name = spellbookScreen.lookupSpellName(aura.spellId, assetMgr);
|
||||
if (name.empty()) name = "Spell #" + std::to_string(aura.spellId);
|
||||
ImGui::Text("%s", name.c_str());
|
||||
}
|
||||
if (remainMs > 0) {
|
||||
int seconds = remainMs / 1000;
|
||||
if (seconds < 60) {
|
||||
ImGui::SetTooltip("%s (%ds)", name.c_str(), seconds);
|
||||
} else {
|
||||
ImGui::SetTooltip("%s (%dm %ds)", name.c_str(), seconds / 60, seconds % 60);
|
||||
}
|
||||
} else {
|
||||
ImGui::SetTooltip("%s", name.c_str());
|
||||
char durBuf[32];
|
||||
if (seconds < 60) snprintf(durBuf, sizeof(durBuf), "Remaining: %ds", seconds);
|
||||
else snprintf(durBuf, sizeof(durBuf), "Remaining: %dm %ds", seconds / 60, seconds % 60);
|
||||
ImGui::TextColored(ImVec4(0.7f, 0.7f, 0.7f, 1.0f), "%s", durBuf);
|
||||
}
|
||||
ImGui::EndTooltip();
|
||||
}
|
||||
|
||||
ImGui::PopID();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue