source: network-game/common/Game.cpp@ fef7c69

Last change on this file since fef7c69 was 0129700, checked in by dportnoy <dmp1488@…>, 11 years ago

The Game class validates player movement on the server side

  • Property mode set to 100644
File size: 1.7 KB
RevLine 
[f419b09]1#include "Game.h"
2
3using namespace std;
4
5Game::Game() {
6 this->id = 0;
7 this->name = "";
[b92e6a7]8 this->blueScore = 0;
9 this->redScore = 0;
10 this->worldMap = NULL;
[f419b09]11}
12
[233e736]13Game::Game(string name, string filepath) {
[f419b09]14 this->id = 0;
15 this->name = name;
[b92e6a7]16 this->blueScore = 0;
17 this->redScore = 0;
[233e736]18 this->worldMap = WorldMap::loadMapFromFile(filepath);
[f419b09]19}
20
21Game::~Game() {
[b92e6a7]22 delete this->worldMap;
[f419b09]23}
24
[ab8fd40]25string Game::getName() {
26 return this->name;
27}
28
[b92e6a7]29int Game::getNumPlayers() {
30 return this->players.size();
[f419b09]31}
32
[b92e6a7]33map<unsigned int, Player*>& Game::getPlayers() {
34 return this->players;
35}
36
37int Game::getRedScore() {
38 return this->redScore;
39}
40
41int Game::getBlueScore() {
42 return this->blueScore;
43}
44
45WorldMap* Game::getMap() {
46 return this->worldMap;
47}
48
49void Game::setId(unsigned int id) {
50 this->id = id;
[2ee386d]51}
52
[f419b09]53bool Game::addPlayer(Player* p) {
[b48ef09]54 if (players.find(p->id) == players.end()) {
[f419b09]55 players[p->id] = p;
56 return true;
57 }
58 else
59 return false;
60}
61
[b92e6a7]62bool Game::removePlayer(unsigned int id) {
[f419b09]63 if (players.erase(id) == 1)
64 return true;
65 else
66 return false;
67}
[b92e6a7]68
[0129700]69bool Game::startPlayerMovement(unsigned int id, int x, int y) {
70 // need to check if players actually contains the id
71 Player* p = players[id];
72
73 // we need to make sure the player can move here
74 if (0 <= x && x < this->worldMap->width*25 &&
75 0 <= y && y < this->worldMap->height*25 &&
76 this->worldMap->getElement(x/25, y/25) == WorldMap::TERRAIN_GRASS)
77 {
78 p->target.x = x;
79 p->target.y = y;
80
81 p->isChasing = false;
82 p->isAttacking = false;
83
84 return true;
85 }
86 else
87 return false;
88}
89
[b92e6a7]90void Game::setRedScore(int score) {
91 this->redScore = score;
92}
93
94void Game::setBlueScore(int score) {
95 this->blueScore = score;
96}
Note: See TracBrowser for help on using the repository browser.