Add damage flash toggle setting and fix map explored zone reveal

Persist damage_flash to settings.cfg; checkbox in Interface > Screen Effects.
Fix world map fog: trust server exploration mask unconditionally when present,
always reveal the current zone immediately regardless of server mask state.
This commit is contained in:
Kelsi 2026-03-12 03:21:49 -07:00
parent 40a98f2436
commit 6cf511aa7f
3 changed files with 22 additions and 5 deletions

View file

@ -752,7 +752,6 @@ void WorldMap::updateExploration(const glm::vec3& playerRenderPos) {
return (serverExplorationMask[word] & (1u << (bitIndex % 32))) != 0;
};
bool markedAny = false;
if (hasServerExplorationMask) {
exploredZones.clear();
for (int i = 0; i < static_cast<int>(zones.size()); i++) {
@ -761,15 +760,19 @@ void WorldMap::updateExploration(const glm::vec3& playerRenderPos) {
for (uint32_t bit : z.exploreBits) {
if (isBitSet(bit)) {
exploredZones.insert(i);
markedAny = true;
break;
}
}
}
// Always trust the server mask when available — even if empty (unexplored character).
// Also reveal the zone the player is currently standing in so the map isn't pitch-black
// the moment they first enter a new zone (the server bit arrives on the next update).
int curZone = findZoneForPlayer(playerRenderPos);
if (curZone >= 0) exploredZones.insert(curZone);
return;
}
if (markedAny) return;
// Server mask unavailable or empty — fall back to locally-accumulated position tracking.
// Server mask unavailable — fall back to locally-accumulated position tracking.
// Add the zone the player is currently in to the local set and display that.
float wowX = playerRenderPos.y;
float wowY = playerRenderPos.x;