]>
Commit | Line | Data |
---|---|---|
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 | 20 | using namespace std; |
85ce9d3e | 21 | |
e3c5fe46 | 22 | void 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 | 46 | Player::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 | 56 | Player::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 | 68 | Player::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 | ||
78 | Player::~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 | 97 | void Player::setPassword(const char *p) |
98 | { | |
37ed80a9 | 99 | static char saltChars[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV\ |
1563e73b | 100 | WXYZ0123456789./"; |
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 | |
110 | void 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 | |
151 | monster_::~monster_() | |
152 | { | |
c8ada07e | 153 | } |
154 | ||
155 | monster_::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 | ||
167 | monster_::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 | 180 | monster_::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 | 193 | long int Player::setFlags(long int newflags) |
194 | { | |
37ed80a9 | 195 | flags = newflags; |
196 | return getFlags(); | |
1af35752 | 197 | } |
198 | ||
199 | long int Player::addFlag(long int flag) | |
200 | { | |
37ed80a9 | 201 | flags |= flag; |
202 | return getFlags(); | |
1af35752 | 203 | } |
204 | ||
205 | long int Player::remFlag(long int flag) | |
206 | { | |
37ed80a9 | 207 | flags &= ~flag; |
208 | return getFlags(); | |
3662210f | 209 | } |