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