Mario editor: don't delete characters when changing terrain
This commit is contained in:
+6
-5
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user