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

Last change on this file since 0129700 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
Line 
1#include "Game.h"
2
3using namespace std;
4
5Game::Game() {
6 this->id = 0;
7 this->name = "";
8 this->blueScore = 0;
9 this->redScore = 0;
10 this->worldMap = NULL;
11}
12
13Game::Game(string name, string filepath) {
14 this->id = 0;
15 this->name = name;
16 this->blueScore = 0;
17 this->redScore = 0;
18 this->worldMap = WorldMap::loadMapFromFile(filepath);
19}
20
21Game::~Game() {
22 delete this->worldMap;
23}
24
25string Game::getName() {
26 return this->name;
27}
28
29int Game::getNumPlayers() {
30 return this->players.size();
31}
32
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;
51}
52
53bool Game::addPlayer(Player* p) {
54 if (players.find(p->id) == players.end()) {
55 players[p->id] = p;
56 return true;
57 }
58 else
59 return false;
60}
61
62bool Game::removePlayer(unsigned int id) {
63 if (players.erase(id) == 1)
64 return true;
65 else
66 return false;
67}
68
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
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.