| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #pragma once
- #include <QString>
- #include <QVariantList>
- #include <functional>
- #include <memory>
- class LoadingProgressTracker;
- namespace Engine::Core {
- class World;
- }
- namespace Render::GL {
- class Renderer;
- class Camera;
- class GroundRenderer;
- class TerrainRenderer;
- class BiomeRenderer;
- class RiverRenderer;
- class RoadRenderer;
- class RiverbankRenderer;
- class BridgeRenderer;
- class FogRenderer;
- class StoneRenderer;
- class PlantRenderer;
- class PineRenderer;
- class OliveRenderer;
- class FireCampRenderer;
- class RainRenderer;
- } // namespace Render::GL
- namespace Game::Systems {
- struct LevelSnapshot;
- class VictoryService;
- } // namespace Game::Systems
- class MinimapManager;
- class EntityCache;
- struct LevelLoadResult {
- bool success = false;
- QString error_message;
- int updated_player_id = 1;
- };
- class LevelOrchestrator {
- public:
- struct RendererRefs {
- Render::GL::Renderer *renderer;
- Render::GL::Camera *camera;
- Render::GL::GroundRenderer *ground;
- Render::GL::TerrainRenderer *terrain;
- Render::GL::BiomeRenderer *biome;
- Render::GL::RiverRenderer *river;
- Render::GL::RoadRenderer *road;
- Render::GL::RiverbankRenderer *riverbank;
- Render::GL::BridgeRenderer *bridge;
- Render::GL::FogRenderer *fog;
- Render::GL::StoneRenderer *stone;
- Render::GL::PlantRenderer *plant;
- Render::GL::PineRenderer *pine;
- Render::GL::OliveRenderer *olive;
- Render::GL::FireCampRenderer *firecamp;
- Render::GL::RainRenderer *rain;
- };
- using VisibilityReadyCallback = std::function<void()>;
- using OwnerUpdateCallback = std::function<void()>;
- LevelLoadResult load_skirmish(
- const QString &map_path, const QVariantList &player_configs,
- int selected_player_id, Engine::Core::World &world,
- const RendererRefs &renderers, Game::Systems::LevelSnapshot &level,
- EntityCache &entity_cache, Game::Systems::VictoryService *victory_service,
- MinimapManager *minimap_manager, VisibilityReadyCallback visibility_ready,
- OwnerUpdateCallback owner_update, bool allow_default_player_barracks,
- LoadingProgressTracker *progress_tracker = nullptr);
- };
|