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