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:
@@ -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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user