summaryrefslogtreecommitdiff
path: root/src/engine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine.cpp')
-rw-r--r--src/engine.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/engine.cpp b/src/engine.cpp
index c6a7a6c8..918aea7f 100644
--- a/src/engine.cpp
+++ b/src/engine.cpp
@@ -335,6 +335,22 @@ void Engine::draw()
map_x = (player_node->x - 13) * 32 + get_x_offset(player_node);
map_y = (player_node->y - 9) * 32 + get_y_offset(player_node);
+ if (map_x < 0) {
+ map_x = 0;
+ }
+ if (map_y < 0) {
+ map_y = 0;
+ }
+
+ if (mCurrentMap) {
+ if (map_x > (mCurrentMap->getWidth() - 13) * 32) {
+ map_x = (mCurrentMap->getWidth() - 13) * 32;
+ }
+ if (map_y > (mCurrentMap->getHeight() - 9) * 32) {
+ map_y = (mCurrentMap->getHeight() - 9) * 32;
+ }
+ }
+
camera_x = map_x / 32;
camera_y = map_y / 32;
int mouseTileX = mouseX / 32 + camera_x;