commit 85e0b909
Add lava
Changed files
| M | src/saland/Game.cpp before |
| M | src/saland/GameRegion.cpp before |
| M | src/saland/GameRegion.hpp before |
| M | src/terrain/WaterHandler.cpp before |
diff --git a/src/saland/Game.cpp b/src/saland/Game.cpp
index 6bbe06d..1ca803a 100644
--- a/src/saland/Game.cpp
+++ b/src/saland/Game.cpp
@@ -257,8 +257,13 @@ Game::Game() {
Spell& slot3 = data->slot_spell.at(3);
slot3.icon = "";
slot3.name = "spell_create_block";
- slot3.tile = 188;
+ slot3.tile = 28;
slot3.type = SpellCursorType::tile;
+ Spell& slot4 = data->slot_spell.at(4);
+ slot4.icon = "";
+ slot4.name = "spell_create_block";
+ slot4.tile = 16;
+ slot4.type = SpellCursorType::tile;
Spell& slot9 = data->slot_spell.at(9);
slot9.icon = "icon_trash_can";
slot9.name = "spell_clear_block";
@@ -431,7 +436,8 @@ void Game::ProcessInput(const SDL_Event& event, bool& processed) {
int layer_number = 2; // Do not hardcode
uint32_t tile = data->drawTile;
sago::tiled::setTileOnLayerNumber(data->gameRegion.world.tm, layer_number, tile_x, tile_y, tile);
- data->gameRegion.wh.updateFirstTile(data->gameRegion.world.tm, tile_x, tile_y);
+ data->gameRegion.waterHandler.updateFirstTile(data->gameRegion.world.tm, tile_x, tile_y);
+ data->gameRegion.lavaHandler.updateFirstTile(data->gameRegion.world.tm, tile_x, tile_y);
data->gameRegion.world.init_physics(data->gameRegion.physicsBox);
}
if (event.key.keysym.sym == globalData.playerControls.block_delete
@@ -440,7 +446,8 @@ void Game::ProcessInput(const SDL_Event& event, bool& processed) {
int layer_number = 2; // Do not hardcode
uint32_t tile = 0;
sago::tiled::setTileOnLayerNumber(data->gameRegion.world.tm, layer_number, tile_x, tile_y, tile);
- data->gameRegion.wh.updateFirstTile(data->gameRegion.world.tm, tile_x, tile_y);
+ data->gameRegion.waterHandler.updateFirstTile(data->gameRegion.world.tm, tile_x, tile_y);
+ data->gameRegion.lavaHandler.updateFirstTile(data->gameRegion.world.tm, tile_x, tile_y);
data->gameRegion.world.init_physics(data->gameRegion.physicsBox);
}
if (event.key.keysym.sym == SDLK_1 || event.key.keysym.sym == SDLK_KP_1) {
@@ -658,7 +665,8 @@ void Game::Update() {
&& !(data->gameRegion.world.tile_protected(tile_x, tile_y)) ) {
int layer_number = 2; // Do not hardcode
sago::tiled::setTileOnLayerNumber(data->gameRegion.world.tm, layer_number, tile_x, tile_y, tile);
- data->gameRegion.wh.updateFirstTile(data->gameRegion.world.tm, tile_x, tile_y);
+ data->gameRegion.waterHandler.updateFirstTile(data->gameRegion.world.tm, tile_x, tile_y);
+ data->gameRegion.lavaHandler.updateFirstTile(data->gameRegion.world.tm, tile_x, tile_y);
data->gameRegion.world.init_physics(data->gameRegion.physicsBox);
}
}
@@ -673,7 +681,8 @@ void Game::Update() {
int layer_number = 2; // Do not hardcode
uint32_t tile = 0;
sago::tiled::setTileOnLayerNumber(data->gameRegion.world.tm, layer_number, tile_x, tile_y, tile);
- data->gameRegion.wh.updateFirstTile(data->gameRegion.world.tm, tile_x, tile_y);
+ data->gameRegion.waterHandler.updateFirstTile(data->gameRegion.world.tm, tile_x, tile_y);
+ data->gameRegion.lavaHandler.updateFirstTile(data->gameRegion.world.tm, tile_x, tile_y);
data->gameRegion.world.init_physics(data->gameRegion.physicsBox);
}
}
diff --git a/src/saland/GameRegion.cpp b/src/saland/GameRegion.cpp
index 7dab503..6ed7676 100644
--- a/src/saland/GameRegion.cpp
+++ b/src/saland/GameRegion.cpp
@@ -156,8 +156,11 @@ void GameRegion::Init(int x, int y, const std::string& worldName, bool forceRese
physicsBox.reset(new b2World(gravity));
world.managed_bodies.clear();
world.init(physicsBox, loadMap);
- wh.blockingLayer = world.blockingLayer;
- wh.blockingLayer_overlay_1 = world.blockingLayer_overlay_1;
+ waterHandler.blockingLayer = world.blockingLayer;
+ waterHandler.blockingLayer_overlay_1 = world.blockingLayer_overlay_1;
+ lavaHandler.blockingLayer = world.blockingLayer;
+ lavaHandler.blockingLayer_overlay_1 = world.blockingLayer_overlay_1;
+ lavaHandler.setupTiles(16);
diff --git a/src/saland/GameRegion.hpp b/src/saland/GameRegion.hpp
index c757fc6..6909f3d 100644
--- a/src/saland/GameRegion.hpp
+++ b/src/saland/GameRegion.hpp
@@ -46,7 +46,8 @@ public:
std::shared_ptr<b2World> physicsBox;
void SaveRegion();
World world;
- WaterHandler wh;
+ WaterHandler waterHandler;
+ WaterHandler lavaHandler;
uint32_t outerTile = 485;
int GetRegionX() const {
return region_x;
diff --git a/src/terrain/WaterHandler.cpp b/src/terrain/WaterHandler.cpp
index 8ccc0d0..a7ca5fb 100644
--- a/src/terrain/WaterHandler.cpp
+++ b/src/terrain/WaterHandler.cpp
@@ -29,6 +29,7 @@ WaterHandler::WaterHandler() {
}
void WaterHandler::setupTiles(uint32_t start_tile) {
+ default_tile = start_tile;
int tile_count_width = 32;
tile_map["11111110"] = start_tile+1;
tile_map["11111011"] = start_tile+2;