fix: editor no aplicava a memoria, soles a fitxer
This commit is contained in:
@@ -338,6 +338,7 @@ void MapEditor::update(float delta_time) {
|
||||
if (tile_index >= 0 && tile_index < static_cast<int>(room_data_.collision_tile_map.size())) {
|
||||
if (room_data_.collision_tile_map[tile_index] != brush_tile_) {
|
||||
room_data_.collision_tile_map[tile_index] = brush_tile_;
|
||||
room_->setCollisionTile(tile_index, brush_tile_);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -551,6 +552,7 @@ void MapEditor::handleEvent(const SDL_Event& event) { // NOLINT(readability-fun
|
||||
if (editing_collision_) {
|
||||
if (tile_index >= 0 && tile_index < static_cast<int>(room_data_.collision_tile_map.size())) {
|
||||
room_data_.collision_tile_map[tile_index] = brush_tile_;
|
||||
room_->setCollisionTile(tile_index, brush_tile_);
|
||||
}
|
||||
} else {
|
||||
if (tile_index >= 0 && tile_index < static_cast<int>(room_data_.tile_map.size())) {
|
||||
@@ -684,6 +686,7 @@ void MapEditor::handleMouseUp() { // NOLINT(readability-function-cognitive-comp
|
||||
if (IDX >= 0 && IDX < static_cast<int>(room_data_.enemies.size())) {
|
||||
room_data_.enemies[IDX].x1 = SNAP_X;
|
||||
room_data_.enemies[IDX].y1 = SNAP_Y;
|
||||
room_->getEnemyManager()->getEnemy(IDX)->resetToInitialPosition(room_data_.enemies[IDX]);
|
||||
selected_enemy_ = IDX;
|
||||
changed = true;
|
||||
}
|
||||
@@ -693,6 +696,7 @@ void MapEditor::handleMouseUp() { // NOLINT(readability-function-cognitive-comp
|
||||
if (IDX >= 0 && IDX < static_cast<int>(room_data_.enemies.size())) {
|
||||
room_data_.enemies[IDX].x2 = SNAP_X;
|
||||
room_data_.enemies[IDX].y2 = SNAP_Y;
|
||||
room_->getEnemyManager()->getEnemy(IDX)->resetToInitialPosition(room_data_.enemies[IDX]);
|
||||
selected_enemy_ = IDX;
|
||||
changed = true;
|
||||
}
|
||||
@@ -1229,6 +1233,7 @@ auto MapEditor::setRoomProperty(const std::string& property, const std::string&
|
||||
room_data_.conveyor_belt_direction = 0;
|
||||
val = "none";
|
||||
}
|
||||
room_->setConveyorBeltDirection(room_data_.conveyor_belt_direction);
|
||||
autosave();
|
||||
return "conveyor: " + val;
|
||||
}
|
||||
@@ -1237,6 +1242,7 @@ auto MapEditor::setRoomProperty(const std::string& property, const std::string&
|
||||
std::string tileset = val;
|
||||
if (tileset.find('.') == std::string::npos) { tileset += ".gif"; }
|
||||
room_data_.tile_set_file = tileset;
|
||||
room_->setTileSet(tileset);
|
||||
autosave();
|
||||
return "tileset: " + tileset;
|
||||
}
|
||||
@@ -1301,6 +1307,19 @@ auto MapEditor::setRoomProperty(const std::string& property, const std::string&
|
||||
// Aplicar la nueva conexión
|
||||
if (our_field != nullptr) { *our_field = connection; }
|
||||
|
||||
// Sincronizar la conexión al Room vivo
|
||||
Room::Border border = Room::Border::NONE;
|
||||
if (property == "UP") {
|
||||
border = Room::Border::TOP;
|
||||
} else if (property == "DOWN") {
|
||||
border = Room::Border::BOTTOM;
|
||||
} else if (property == "LEFT") {
|
||||
border = Room::Border::LEFT;
|
||||
} else if (property == "RIGHT") {
|
||||
border = Room::Border::RIGHT;
|
||||
}
|
||||
room_->setConnection(border, connection);
|
||||
|
||||
// Crear la conexión recíproca en la otra room
|
||||
if (connection != "0") {
|
||||
auto other = Resource::Cache::get()->getRoom(connection);
|
||||
|
||||
Reference in New Issue
Block a user