fix: correct minimap orientation and arrow direction, compact key ring UI

Remove stray X-flip in minimap display shader that mirrored the map
horizontally (West on right instead of East). Fix arrow rotation
fallback path (missing negation) and add character-facing-relative
arrow in rotateWithCamera mode.

Compact key ring: 24px slots in 8-column grid, only show rows with
items, hide when empty. Add Show Key Ring toggle in Settings with
persistence.
This commit is contained in:
Kelsi 2026-03-17 08:18:46 -07:00
parent e38324619e
commit 203514abc7
7 changed files with 63 additions and 38 deletions

View file

@ -513,14 +513,15 @@ void Minimap::render(VkCommandBuffer cmd, const Camera& playerCamera,
float arrowRotation = 0.0f;
if (!rotateWithCamera) {
// Prefer authoritative orientation if provided. This value is expected
// to already match minimap shader rotation convention.
if (hasPlayerOrientation) {
arrowRotation = playerOrientation;
} else {
glm::vec3 fwd = playerCamera.getForward();
arrowRotation = std::atan2(-fwd.x, fwd.y);
arrowRotation = -std::atan2(-fwd.x, fwd.y);
}
} else if (hasPlayerOrientation) {
// Show character facing relative to the rotated map
arrowRotation = playerOrientation + rotation;
}
MinimapDisplayPush push{};