diff --git a/imgui.ini b/imgui.ini index cb6abb6..5727037 100644 --- a/imgui.ini +++ b/imgui.ini @@ -4,7 +4,7 @@ Size=400,400 Collapsed=0 [Window][Phoenix Map Editor] -Pos=833,459 +Pos=816,436 Size=773,184 Collapsed=0 @@ -14,7 +14,7 @@ Size=357,247 Collapsed=0 [Window][Map Information Editor] -Pos=838,656 +Pos=845,633 Size=588,347 Collapsed=0 diff --git a/maps/dm_scale.map b/maps/dm_scale.map index bf767b1..efdcaa6 100644 --- a/maps/dm_scale.map +++ b/maps/dm_scale.map @@ -54,6 +54,168 @@ TILE FLOOR TILE FLOOR TILE FLOOR TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE FLOOR +TILE WALL +TILE WALL +TILE WALL +TILE WALL TILE WALL TILE WALL TILE WALL diff --git a/src/mapEditor.cpp b/src/mapEditor.cpp index 2e887ac..ed7040a 100644 --- a/src/mapEditor.cpp +++ b/src/mapEditor.cpp @@ -99,12 +99,16 @@ void runMapEditor() { !ImGui::IsAnyItemHovered()) { if (event.button.button == SDL_BUTTON_LEFT) { if (editorState.placeTileMode) { - editorState.currentMap.data.mapTiles.push_back( - editorState.selectedTileName); + for (int i = 0; i < editorState.tilePlaceAmount; i++) { + editorState.currentMap.data.mapTiles.push_back( + editorState.selectedTileName); + } } } else if (event.button.button == SDL_BUTTON_RIGHT) { if (editorState.placeTileMode) { - editorState.currentMap.data.mapTiles.pop_back(); + for (int i = 0; i < editorState.tilePlaceAmount; i++) { + editorState.currentMap.data.mapTiles.pop_back(); + } } } } @@ -175,10 +179,9 @@ void runMapEditor() { const char *tileNames[] = {"WALL", "FLOOR"}; - ImGui::Text("Selected tile"); - ImGui::SameLine(); - if (ImGui::BeginCombo("##EditorSelectedTile", - editorState.selectedTileName)) { + ImGui::Text("Tile placement"); + ImGui::InputInt("Tile count", &editorState.tilePlaceAmount); + if (ImGui::BeginCombo("Selected tile", editorState.selectedTileName)) { for (int i = 0; i < IM_ARRAYSIZE(tileNames); i++) { bool isSelected = (editorState.selectedTileName == tileNames[i]); if (ImGui::Selectable(tileNames[i], isSelected)) { diff --git a/src/mapEditorState.hpp b/src/mapEditorState.hpp index 531ff84..cf67f1b 100644 --- a/src/mapEditorState.hpp +++ b/src/mapEditorState.hpp @@ -10,4 +10,5 @@ struct EditorGlobalState { Map currentMap; const char *selectedTileName = "WALL"; int editorScale = 1; + int tilePlaceAmount = 1; };