]> git.mxchange.org Git - quix0rs-blobwars.git/blobdiff - src/CMap.cpp
Added .gitignore to ignore certain files + fixed access rights on Makefile* as
[quix0rs-blobwars.git] / src / CMap.cpp
index 007c57b5edf19ae5f118f3f9c38dcbc402cbc984..aff505b148de898d249dec8651940b04386b5b17 100644 (file)
@@ -1,5 +1,6 @@
 /*
-Copyright (C) 2004 Parallel Realities
+Copyright (C) 2004-2011 Parallel Realities
+Copyright (C) 2011-2015 Perpendicular Dimensions
 
 This program is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public License
@@ -111,8 +112,19 @@ bool Map::isPracticeMission()
        return false;
 }
 
+bool Map::isValid(int x, int y)
+{
+       if (x >= 0 && y >= 0 && x < MAPWIDTH && y < MAPHEIGHT)
+               return true;
+
+       return false;
+}
+
 bool Map::isSolid(int x, int y)
 {
+       if (!isValid(x, y))
+               return false;
+
        if ((data[x][y] >= MAP_BREAKABLE) && (data[x][y] < MAP_DECORATION))
        {
                return true;
@@ -123,6 +135,9 @@ bool Map::isSolid(int x, int y)
 
 bool Map::isBreakable(int x, int y)
 {
+       if (!isValid(x, y))
+               return false;
+
        if ((data[x][y] >= MAP_BREAKABLE) && (data[x][y] <= MAP_BREAKABLE2))
        {
                return true;
@@ -133,6 +148,9 @@ bool Map::isBreakable(int x, int y)
 
 bool Map::isNoReset(int x, int y)
 {
+       if (!isValid(x, y))
+               return false;
+
        if ((data[x][y] >= MAP_NORESET) && (data[x][y] < MAP_DECORATION))
        {
                return true;
@@ -143,6 +161,9 @@ bool Map::isNoReset(int x, int y)
 
 bool Map::isLiquid(int x, int y)
 {
+       if (!isValid(x, y))
+               return false;
+
        if (data[x][y] == 0)
        {
                return false;
@@ -161,6 +182,9 @@ bool Map::isLiquid(int x, int y)
 
 bool Map::isTopLayer(int x, int y)
 {
+       if (!isValid(x, y))
+               return false;
+
        if (data[x][y] >= MAP_TOPLAYER)
        {
                return true;