diff options
Diffstat (limited to 'pacman-c++')
| -rw-r--r-- | pacman-c++/server.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/pacman-c++/server.cpp b/pacman-c++/server.cpp index 0a84561..a4b736b 100644 --- a/pacman-c++/server.cpp +++ b/pacman-c++/server.cpp | |||
| @@ -50,6 +50,10 @@ Transmission::map_t Server::calculateUpdates() | |||
| 50 | case Actor::None: break; | 50 | case Actor::None: break; |
| 51 | default: Q_ASSERT(false); | 51 | default: Q_ASSERT(false); |
| 52 | } | 52 | } |
| 53 | if (newMapPosition.x() < 0) newMapPosition.setX(0); | ||
| 54 | if (newMapPosition.x() >= visualMap.size()) newMapPosition.setX(visualMap.size()-1); | ||
| 55 | if (newMapPosition.y() < 0) newMapPosition.setY(0); | ||
| 56 | if (newMapPosition.y() >= visualMap[newMapPosition.x()].size()) newMapPosition.setY(visualMap[newMapPosition.x()].size()-1); | ||
| 53 | 57 | ||
| 54 | // <t3h g4m3 10gic> | 58 | // <t3h g4m3 10gic> |
| 55 | if (0 <= newMapPosition.x() && newMapPosition.x() < visualMap.size() && | 59 | if (0 <= newMapPosition.x() && newMapPosition.x() < visualMap.size() && |
| @@ -60,10 +64,12 @@ Transmission::map_t Server::calculateUpdates() | |||
| 60 | } | 64 | } |
| 61 | // </t3h g4m2 10gic> | 65 | // </t3h g4m2 10gic> |
| 62 | 66 | ||
| 67 | if (mapPosition != newMapPosition) { | ||
| 63 | map[mapPosition.x()][mapPosition.y()] = Transmission::empty; | 68 | map[mapPosition.x()][mapPosition.y()] = Transmission::empty; |
| 64 | map[newMapPosition.x()][newMapPosition.y()] = | 69 | map[newMapPosition.x()][newMapPosition.y()] = |
| 65 | Transmission::pacman | i.key() | | 70 | Transmission::pacman | i.key() | |
| 66 | Util::actorMovementToTransmission(i.value()) ; | 71 | Util::actorMovementToTransmission(i.value()) ; |
| 72 | } | ||
| 67 | } | 73 | } |
| 68 | return map; | 74 | return map; |
| 69 | } | 75 | } |
