1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-23 22:37:55 +02:00

Integrate EditorCallback into mapeditor

EditorCallback being set up with std::unique_ptr stored in MapController.
This commit is contained in:
Michał Zaremba
2025-06-02 15:30:08 +02:00
parent b2e51a5fb1
commit ebe746d0cf
19 changed files with 151 additions and 46 deletions

View File

@@ -51,6 +51,7 @@ MapController::MapController(MainWindow * m): main(m)
_miniscenes[i].reset(new MinimapScene(i));
}
connectScenes();
_cb = std::make_unique<EditorCallback>(nullptr);
}
void MapController::connectScenes()
@@ -70,6 +71,16 @@ MapController::~MapController()
main = nullptr;
}
void MapController::setCallback(std::unique_ptr<EditorCallback> cb)
{
_cb = std::move(cb);
}
EditorCallback * MapController::getCallback()
{
return _cb.get();
}
const std::unique_ptr<CMap> & MapController::getMapUniquePtr() const
{
return _map;
@@ -104,6 +115,8 @@ void MapController::repairMap(CMap * map)
{
if(!map)
return;
assert(map->cb);
//make sure events/rumors has name to have proper identifiers
int emptyNameId = 1;
@@ -201,7 +214,9 @@ void MapController::repairMap(CMap * map)
void MapController::setMap(std::unique_ptr<CMap> cmap)
{
cmap->cb = _cb.get();
_map = std::move(cmap);
_cb->setMap(_map.get());
repairMap();