]> jfr.im git - irc/gameservirc.git/blame - gameserv/player.cpp
Fixed the forest event from setting to 14 manually. (I was testing).
[irc/gameservirc.git] / gameserv / player.cpp
CommitLineData
85ce9d3e 1#include "player.h"
3662210f 2#include "pouch.h"
20d5d721 3#include "extern.h"
85ce9d3e 4#include <stdlib.h>
5#include <stdio.h>
6
e3c5fe46 7void Player::reset()
85ce9d3e 8{
cdc9a6db 9 memset(name, 0, 255);
10 memset(password, 0, 255);
cbf6551f 11
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;
22 alive = 1;
20d5d721 23 forest_fights = forestfights;
85ce9d3e 24 player_fights = 3;
25 fight = NULL;
26 master = NULL;
27 battle = NULL;
1af35752 28 flags = 0;
3662210f 29 inventory.reset();
e3c5fe46 30}
31
32Player::Player(aClient *user)
33{
cdc9a6db 34
35 name = new char[256];
36 password = new char[256];
37
85ce9d3e 38 if (user)
ab4f4ec0 39 {
0a1518fa 40 setData(user->stats);
ab4f4ec0 41 strcpy(name, user->getNick());
42 }
85ce9d3e 43 else
0a1518fa 44 setData(NULL);
45
85ce9d3e 46 cout << "New Player: " << name << endl << flush;
47}
0a1518fa 48
85ce9d3e 49Player::Player(char *n)
50{
cdc9a6db 51 name = new char[256];
52 password = new char[256];
53
e3c5fe46 54 reset(); // Set defaults
85ce9d3e 55
85ce9d3e 56 strcpy(name, n);
57
58 cout << "New Player: " << name << endl << flush;
59}
60
61Player::~Player()
e3c5fe46 62{
cbf6551f 63 cout << "Deleting player";
64
e3c5fe46 65 if (name)
cbf6551f 66 {
67 cout << ": " << name;
1cf88153 68 delete [] name;
cbf6551f 69 }
e3c5fe46 70 if (password)
cbf6551f 71 {
72 cout << " Password: " << password;
1cf88153 73 delete [] password;
cbf6551f 74 }
75 cout << endl << "Player Deleted";
e3c5fe46 76}
85ce9d3e 77
78void Player::setData(Player *right)
79{
80 if (right)
81 {
82 strcpy(name, right->name);
0a1518fa 83 strcpy(password, right->password);
85ce9d3e 84 exp = right->exp;
85 gold = right->gold;
86 bank = right->bank;
87 hp = right->hp;
88 maxhp = right->maxhp;
89 strength = right->strength;
90 defense = right->defense;
91 armor = right->armor;
92 weapon = right->weapon;
93 level = right->level;
94 alive = right->alive;
85ce9d3e 95 forest_fights = right->forest_fights;
96 player_fights = right->player_fights;
1af35752 97 flags = right->flags;
85ce9d3e 98 }
0a1518fa 99 else
85ce9d3e 100 {
cdc9a6db 101 reset();
102
0a1518fa 103 int num = rand() % 32767;
28f552b8 104 sprintf(name, "Player%d", num);
85ce9d3e 105 }
0a1518fa 106
107 cout << "Setting Player data for " << name << endl;
85ce9d3e 108}
c8ada07e 109
110monster_::~monster_()
111{
112 delete name;
113 delete weapon;
114 delete death;
115}
116
117monster_::monster_()
118{
119 name = new char[32];
120 weapon = new char[32];
121 death = new char[256];
122
123 memset(name, 0, 32);
124 memset(weapon, 0, 32);
125 memset(death, 0, 256);
126}
127
128monster_::monster_(monster_ *m)
129{
130 name = new char[strlen(m->name) + 1];
131 weapon = new char[strlen(m->weapon) + 1];
132 death = new char[strlen(m->death) + 1];
133
134 strcpy(name, m->name);
135 strcpy(weapon, m->weapon);
136 strcpy(death, m->death);
137
138 strength = m->strength;
139 maxhp = m->maxhp;
e282e9d2 140 hp = m->hp;
c8ada07e 141 gold = m->gold;
142 exp = m->exp;
143}
1af35752 144
145long int Player::setFlags(long int newflags)
146{
147 flags = newflags;
148 return getFlags();
149}
150
151long int Player::addFlag(long int flag)
152{
153 flags |= flag;
154 return getFlags();
155}
156
157long int Player::remFlag(long int flag)
158{
159 flags &= ~flag;
160 return getFlags();
161}
162
3662210f 163Pouch::Pouch(int h, int s, int d)
164{
165 setHealing(h);
166 setStrength(s);
167 setDefense(d);
168}