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