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