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