]>
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" |
5c449fde | 6 | #include <string> |
0a0863d1 | 7 | #include <stdio.h> |
5c449fde | 8 | |
9 | using namespace std; | |
85ce9d3e | 10 | |
e3c5fe46 | 11 | void Player::reset() |
85ce9d3e | 12 | { |
37ed80a9 | 13 | exp = 1; |
14 | gold = 0; | |
15 | bank = 500; | |
16 | hp = 10; | |
17 | maxhp = 10; | |
18 | strength = 0; | |
19 | defense = 0; | |
20 | arm = 1; | |
21 | wea = 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 | lastcommand = 0; | |
30 | lastlogin = 0; | |
31 | setAlive(this); | |
32 | inventory->clear(); | |
e3c5fe46 | 33 | } |
40251952 | 34 | |
85bcf836 | 35 | Player::Player() |
36 | { | |
37ed80a9 | 37 | inventory = new pouch(); |
38 | setData(NULL); | |
39 | ||
40 | #ifdef DEBUGMODE | |
41 | log("New Player: %s", name.c_str()); | |
42 | #endif | |
85bcf836 | 43 | } |
e3c5fe46 | 44 | |
85ce9d3e | 45 | Player::Player(char *n) |
46 | { | |
37ed80a9 | 47 | inventory = new pouch(); |
48 | reset(); // Set defaults | |
49 | ||
50 | name = n; | |
51 | ||
52 | #ifdef DEBUGMODE | |
53 | log("New Player: %s", name.c_str()); | |
54 | #endif | |
5c449fde | 55 | } |
85ce9d3e | 56 | |
5c449fde | 57 | Player::Player(string n) |
58 | { | |
37ed80a9 | 59 | inventory = new pouch(); |
60 | reset(); | |
61 | name = n; | |
62 | #ifdef DEBUGMODE | |
63 | log("New Player: %s", name.c_str()); | |
64 | #endif | |
85ce9d3e | 65 | } |
66 | ||
67 | Player::~Player() | |
9f8c2acc | 68 | { |
37ed80a9 | 69 | delete inventory; |
70 | ||
71 | #ifdef DEBUGMODE | |
72 | string *output; | |
73 | output = new string("Deleting Player"); | |
74 | #endif | |
75 | ||
76 | #ifdef DEBUGMODE | |
77 | *output += ": " + name; | |
78 | #endif | |
79 | ||
80 | #ifdef DEBUGMODE | |
81 | *output += " Password: " + password; | |
82 | log ("%s", output->c_str()); | |
83 | delete output; | |
84 | #endif | |
e3c5fe46 | 85 | } |
1563e73b | 86 | void Player::setPassword(const char *p) |
87 | { | |
37ed80a9 | 88 | static char saltChars[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV\ |
1563e73b | 89 | WXYZ0123456789./"; |
37ed80a9 | 90 | static char salt[3]; |
91 | ||
92 | salt[0] = saltChars[rand() % strlen(saltChars)]; | |
93 | salt[1] = saltChars[rand() % strlen(saltChars)]; | |
94 | salt[2] = '\0'; | |
95 | ||
96 | password = crypt(p, salt); | |
1563e73b | 97 | } |
85ce9d3e | 98 | |
99 | void Player::setData(Player *right) | |
100 | { | |
37ed80a9 | 101 | if (right) |
85ce9d3e | 102 | { |
37ed80a9 | 103 | name = right->name; |
104 | password = right->password; | |
105 | exp = right->exp; | |
106 | gold = right->gold; | |
107 | bank = right->bank; | |
108 | hp = right->hp; | |
109 | maxhp = right->maxhp; | |
110 | strength = right->strength; | |
111 | defense = right->defense; | |
112 | arm = right->arm; | |
113 | wea = right->wea; | |
114 | level = right->level; | |
115 | forest_fights = right->forest_fights; | |
116 | player_fights = right->player_fights; | |
117 | flags = right->flags; | |
118 | *inventory = *right->inventory; | |
119 | client = right->client; | |
120 | lastcommand = right->lastcommand; | |
121 | lastlogin = right->lastlogin; | |
85ce9d3e | 122 | } |
37ed80a9 | 123 | else |
85ce9d3e | 124 | { |
37ed80a9 | 125 | char *temp; |
126 | reset(); | |
127 | temp = new char[16]; | |
128 | client = NULL; | |
129 | int num = rand() % 32767; | |
130 | snprintf(temp, 16, "Player: %d", num); | |
131 | name = temp; | |
132 | delete []temp; | |
85ce9d3e | 133 | } |
37ed80a9 | 134 | |
135 | #ifdef DEBUGMODE | |
136 | log("Setting Player data for %s", name.c_str()); | |
137 | #endif | |
85ce9d3e | 138 | } |
c8ada07e | 139 | |
140 | monster_::~monster_() | |
141 | { | |
c8ada07e | 142 | } |
143 | ||
144 | monster_::monster_() | |
145 | { | |
37ed80a9 | 146 | name.erase(); |
147 | weapon.erase(); | |
148 | death.erase(); | |
149 | strength = 0; | |
150 | defense = 0; | |
151 | exp = 0; | |
152 | gold = 0; | |
153 | maxhp = hp = 0; | |
c8ada07e | 154 | } |
155 | ||
156 | monster_::monster_(monster_ *m) | |
157 | { | |
37ed80a9 | 158 | name = m->name; |
159 | weapon = m->weapon; | |
160 | death = m->death; | |
161 | strength = m->strength; | |
162 | defense = m->defense; | |
163 | maxhp = m->maxhp; | |
164 | hp = m->hp; | |
165 | gold = m->gold; | |
166 | exp = m->exp; | |
c8ada07e | 167 | } |
1af35752 | 168 | |
bf3a2ff9 | 169 | monster_::monster_(monster_ &m) |
170 | { | |
37ed80a9 | 171 | name = m.name; |
172 | weapon = m.weapon; | |
173 | death = m.death; | |
174 | strength = m.strength; | |
175 | defense = m.defense; | |
176 | maxhp = m.maxhp; | |
177 | hp = m.hp; | |
178 | gold = m.gold; | |
179 | exp = m.exp; | |
bf3a2ff9 | 180 | } |
181 | ||
1af35752 | 182 | long int Player::setFlags(long int newflags) |
183 | { | |
37ed80a9 | 184 | flags = newflags; |
185 | return getFlags(); | |
1af35752 | 186 | } |
187 | ||
188 | long int Player::addFlag(long int flag) | |
189 | { | |
37ed80a9 | 190 | flags |= flag; |
191 | return getFlags(); | |
1af35752 | 192 | } |
193 | ||
194 | long int Player::remFlag(long int flag) | |
195 | { | |
37ed80a9 | 196 | flags &= ~flag; |
197 | return getFlags(); | |
3662210f | 198 | } |