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