source: network-game/common/Player.h@ 84754c0

Last change on this file since 84754c0 was 53643ca, checked in by Dmitry Portnoy <dmp1488@…>, 10 years ago

Server loads user profile and game history info from the database, saves game history to the db after every game, and uses a lua settings file to load db settings

  • Property mode set to 100644
File size: 1.8 KB
RevLine 
[2488852]1#ifndef _PLAYER_H
2#define _PLAYER_H
3
4#include <string>
[ff2133a]5#include <map>
[2488852]6
[e6c26b8]7#include "Compiler.h"
[373089e]8
[e6c26b8]9#if defined WINDOWS
10 #include <winsock2.h>
11#elif defined LINUX
[373089e]12 #include <netinet/in.h>
[34bd549]13#elif defined MAC
14 #include <netinet/in.h>
[373089e]15#endif
16
[a1a3bd5]17#include "WorldMap.h"
[edfd1d0]18
[2488852]19using namespace std;
20
[f41a7f9]21//forward declaration
22class Game;
23
[8e540f4]24class Player {
[5b92307]25private:
26 unsigned int id;
27 unsigned int targetPlayer;
28
[2488852]29public:
[07c73fa]30
31 enum PlayerClass {
32 CLASS_NONE,
33 CLASS_WARRIOR,
34 CLASS_RANGER
35 };
36
37 enum AttackType {
38 ATTACK_NONE,
39 ATTACK_MELEE,
40 ATTACK_RANGED
41 };
42
[01d0d00]43 Player();
44 Player(const Player& p);
[59061f6]45 Player(string name, string password);
[01d0d00]46
[8e540f4]47 ~Player();
[2488852]48
[5b92307]49 unsigned int getId();
50 unsigned int getTargetPlayer();
51
[9ba9b96]52 void setId(unsigned int id);
[5b92307]53 void setTargetPlayer(unsigned int id);
[59061f6]54 void setAddr(sockaddr_in addr);
[46fa35a]55 void setClass(PlayerClass c);
56
57 void serialize(char* buffer);
58 void deserialize(char* buffer);
[59061f6]59
[5b92307]60 bool updateTarget(map<unsigned int, Player*>& players);
[227baaa]61 bool move(WorldMap *map);
[6054f1e]62 void takeDamage(int damage);
[60017fc]63
[9ba9b96]64 void takeFlag(unsigned int flag, WorldMap* map);
65 void dropFlag(unsigned int flag, WorldMap* map);
[d436ac4]66
[8e540f4]67 string name;
[59061f6]68 string password;
[8e540f4]69 sockaddr_in addr;
[60017fc]70 FLOAT_POSITION pos;
71 POSITION target;
[8f85180]72 unsigned long long timeLastUpdated;
[8dad966]73 unsigned long long timeAttackStarted;
[c76134b]74 unsigned long long timeDied;
[11d21ee]75 bool isChasing;
[8dad966]76 bool isAttacking;
[c76134b]77 bool isDead;
[d436ac4]78
[c991530]79 PlayerClass playerClass;
[07c73fa]80 int maxHealth;
81 int health;
82 int attackType;
83 int damage;
[11d21ee]84 int range;
[8dad966]85 unsigned long long attackCooldown;
[d436ac4]86 int team; // 0 is blue, 1 is red
[74b8e79]87 bool hasBlueFlag;
[d436ac4]88 bool hasRedFlag;
[f41a7f9]89
[53643ca]90 // permanent attributes
91 unsigned int level;
92 unsigned int experience;
93 unsigned int honor;
94 unsigned int wins;
95 unsigned int losses;
96
[f41a7f9]97 Game* currentGame;
[2488852]98};
99
100#endif
Note: See TracBrowser for help on using the repository browser.