]> jfr.im git - irc/gameservirc.git/blob - gameserv/player.cpp
Updated the todo file for finished tasks
[irc/gameservirc.git] / gameserv / player.cpp
1 #include "player.h"
2 #include "pouch.h"
3 #include "extern.h"
4 #include "flags.h"
5 #include <string>
6 #include <stdio.h>
7
8 using namespace std;
9
10 void Player::reset()
11 {
12 exp = 1;
13 gold = 0;
14 bank = 500;
15 hp = 10;
16 maxhp = 10;
17 strength = 0;
18 defense = 0;
19 armor = 1;
20 weapon = 1;
21 level = 1;
22 forest_fights = forestfights;
23 player_fights = 3;
24 fight = NULL;
25 master = NULL;
26 battle = NULL;
27 flags = 0;
28 lastcommand = 0;
29 lastlogin = 0;
30 setAlive(this);
31 inventory.reset();
32 }
33
34 Player::Player()
35 {
36 setData(NULL);
37
38 #ifdef DEBUGMODE
39 log("New Player: %s", name.c_str());
40 #endif
41 }
42
43 Player::Player(aClient *user)
44 {
45
46 if (user)
47 {
48 setData(user->stats);
49 name = user->getNick();
50 }
51 else
52 setData(NULL);
53 }
54
55 Player::Player(char *n)
56 {
57 reset(); // Set defaults
58
59 name = n;
60
61 #ifdef DEBUGMODE
62 log("New Player: %s", name.c_str());
63 #endif
64 }
65
66 Player::Player(string n)
67 {
68 reset();
69 name = n;
70 #ifdef DEBUGMODE
71 log("New Player: %s", name.c_str());
72 #endif
73 }
74
75 Player::~Player()
76 {
77 #ifdef DEBUGMODE
78 string *output;
79 output = new string("Deleting Player");
80 #endif
81
82 #ifdef DEBUGMODE
83 *output += ": " + name;
84 #endif
85
86 #ifdef DEBUGMODE
87 *output += " Password: " + password;
88 log ("%s", output->c_str());
89 delete output;
90 #endif
91 }
92
93 void Player::setData(Player *right)
94 {
95 if (right)
96 {
97 name = right->name;
98 password = right->password;
99 exp = right->exp;
100 gold = right->gold;
101 bank = right->bank;
102 hp = right->hp;
103 maxhp = right->maxhp;
104 strength = right->strength;
105 defense = right->defense;
106 armor = right->armor;
107 weapon = right->weapon;
108 level = right->level;
109 forest_fights = right->forest_fights;
110 player_fights = right->player_fights;
111 flags = right->flags;
112 inventory.setInventory(&right->inventory);
113 client = right->client;
114 lastcommand = right->lastcommand;
115 lastlogin = right->lastlogin;
116 }
117 else
118 {
119 char *temp;
120 reset();
121 temp = new char[16];
122 client = NULL;
123 int num = rand() % 32767;
124 snprintf(temp, 16, "Player: %d", num);
125 name = temp;
126 delete []temp;
127 }
128
129 #ifdef DEBUGMODE
130 log("Setting Player data for %s", name.c_str());
131 #endif
132 }
133
134 monster_::~monster_()
135 {
136 }
137
138 monster_::monster_()
139 {
140 name.erase();
141 weapon.erase();
142 death.erase();
143 strength = 0;
144 exp = 0;
145 gold = 0;
146 maxhp = hp = 0;
147 }
148
149 monster_::monster_(monster_ *m)
150 {
151 name = m->name;
152 weapon = m->weapon;
153 death = m->death;
154 strength = m->strength;
155 maxhp = m->maxhp;
156 hp = m->hp;
157 gold = m->gold;
158 exp = m->exp;
159 }
160
161 monster_::monster_(monster_ &m)
162 {
163 name = m.name;
164 weapon = m.weapon;
165 death = m.death;
166 strength = m.strength;
167 maxhp = m.maxhp;
168 hp = m.hp;
169 gold = m.gold;
170 exp = m.exp;
171 }
172
173 long int Player::setFlags(long int newflags)
174 {
175 flags = newflags;
176 return getFlags();
177 }
178
179 long int Player::addFlag(long int flag)
180 {
181 flags |= flag;
182 return getFlags();
183 }
184
185 long int Player::remFlag(long int flag)
186 {
187 flags &= ~flag;
188 return getFlags();
189 }
190
191 Pouch::Pouch(int h, int s, int d)
192 {
193 setHealing(h);
194 setStrength(s);
195 setDefense(d);
196 }