Mario editor: don't delete characters when changing terrain

This commit is contained in:
2021-05-02 14:43:15 +02:00
parent 8b8f3b7f06
commit ad7f737e16
3 changed files with 16 additions and 7 deletions
+6 -5
View File
@@ -126,13 +126,14 @@ void pollEvents( SDLPP::Scene &scene ) {
ToolVisitor visitor;
visitor.setVisitorType(TOOL_VISITOR_TYPE);
scene.visitCollisions(*current_tool, visitor);
if(visitor.removeBlock()) {
if(visitor.removeBlock() && !visitor.addBlock()) {
// TODO check if modifier
objects[current_start_index + current_box.getX()][current_box.getY()] = {OVERWORLD, 0, 0, 0, 0, 0};
}
if(visitor.addBlock()) {
auto prev = objects[current_start_index + current_box.getX()][current_box.getY()];
objects[current_start_index + current_box.getX()][current_box.getY()] = {OVERWORLD, 0, std::get<2>(prev), std::get<3>(prev), 0, 0};
} else if(visitor.addBlock()) {
// TODO check if modifier
objects[current_start_index + current_box.getX()][current_box.getY()] = {OVERWORLD, current_tool->getId(), 0, 0, 0, 0};
auto prev = objects[current_start_index + current_box.getX()][current_box.getY()];
objects[current_start_index + current_box.getX()][current_box.getY()] = {OVERWORLD, current_tool->getId(), std::get<2>(prev), std::get<3>(prev), 0, 0};
auto obj = createTerrainBlock(current_tool->getId(), OVERWORLD, renderer, 1 + current_box.getX(), current_box.getY(), true);
obj->getCollisions()[0]->setId(EDITOR_TERRAIN_ID);
scene.addObject(obj);