Minimap-Konfiguration aus MasterRenderer auslagern #38

Closed
opened 2026-04-17 04:52:12 +00:00 by sebastian · 0 comments
Owner

Problem: Minimap-Auflösung und Spieler-Farben sind hardcodiert im MasterRenderer:

minimapRenderer = std::make_unique<MinimapRenderer>(200, 200);  // fest

colorMapping[0] = glm::vec3(1, 0, 0);   // immer Rot
colorMapping[1] = glm::vec3(0, 1, 0);   // immer Grün
// ...

Für das Scene-System (Main Menu → New Game) müssen Spieler-Farben bei der Spielerstellung konfigurierbar sein. Außerdem ist 200×200 für größere Bildschirme zu klein.
Lösung:

// MinimapConfig.h
struct MinimapConfig {
    int resolution = 256;
    std::unordered_map<PlayerID, glm::vec3> playerColors;
};

MasterRenderer bekommt MinimapConfig beim Erstellen der GameScene übergeben:
MinimapConfig config;

config.resolution = 256;
config.playerColors[humanPlayerID] = glm::vec3(0.2f, 0.5f, 1.0f);  // Blau
config.playerColors[aiPlayerID]    = glm::vec3(1.0f, 0.3f, 0.3f);  // Rot
masterRenderer->configMinimap(config);

Acceptance Criteria:

  • Minimap-Auflösung ist über MinimapConfig einstellbar ohne Recompile
  • Spieler-Farben kommen aus MinimapConfig, nicht aus hardcodierter Map
  • MinimapConfig wird von der zukünftigen GameScene befüllt
Problem: Minimap-Auflösung und Spieler-Farben sind hardcodiert im MasterRenderer: ``` minimapRenderer = std::make_unique<MinimapRenderer>(200, 200); // fest colorMapping[0] = glm::vec3(1, 0, 0); // immer Rot colorMapping[1] = glm::vec3(0, 1, 0); // immer Grün // ... ``` Für das Scene-System (Main Menu → New Game) müssen Spieler-Farben bei der Spielerstellung konfigurierbar sein. Außerdem ist 200×200 für größere Bildschirme zu klein. Lösung: ``` // MinimapConfig.h struct MinimapConfig { int resolution = 256; std::unordered_map<PlayerID, glm::vec3> playerColors; }; ``` MasterRenderer bekommt MinimapConfig beim Erstellen der GameScene übergeben: MinimapConfig config; ``` config.resolution = 256; config.playerColors[humanPlayerID] = glm::vec3(0.2f, 0.5f, 1.0f); // Blau config.playerColors[aiPlayerID] = glm::vec3(1.0f, 0.3f, 0.3f); // Rot masterRenderer->configMinimap(config); ``` Acceptance Criteria: - Minimap-Auflösung ist über MinimapConfig einstellbar ohne Recompile - Spieler-Farben kommen aus MinimapConfig, nicht aus hardcodierter Map - MinimapConfig wird von der zukünftigen GameScene befüllt
sebastian added this to the RenderSystem Refactoring milestone 2026-04-17 04:52:12 +00:00
sebastian added the
enhancement
refactoring
engine
labels 2026-04-17 04:52:12 +00:00
sebastian added this to the Dicewars project 2026-04-17 04:52:12 +00:00
sebastian self-assigned this 2026-04-20 08:14:11 +00:00
Sign in to join this conversation.
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: sebastian/Dicewars-Siedler#38
No description provided.