… | |
… | |
3 | * |
3 | * |
4 | * Copyright (©) 2005,2006,2007 Marc Alexander Lehmann / Robin Redeker / the Crossfire TRT team |
4 | * Copyright (©) 2005,2006,2007 Marc Alexander Lehmann / Robin Redeker / the Crossfire TRT team |
5 | * Copyright (©) 2002,2007 Mark Wedel & Crossfire Development Team |
5 | * Copyright (©) 2002,2007 Mark Wedel & Crossfire Development Team |
6 | * Copyright (©) 1992,2007 Frank Tore Johansen |
6 | * Copyright (©) 1992,2007 Frank Tore Johansen |
7 | * |
7 | * |
8 | * Crossfire TRT is free software; you can redistribute it and/or modify it |
8 | * Crossfire TRT is free software: you can redistribute it and/or modify |
9 | * under the terms of the GNU General Public License as published by the Free |
9 | * it under the terms of the GNU General Public License as published by |
10 | * Software Foundation; either version 2 of the License, or (at your option) |
10 | * the Free Software Foundation, either version 3 of the License, or |
11 | * any later version. |
11 | * (at your option) any later version. |
12 | * |
12 | * |
13 | * This program is distributed in the hope that it will be useful, but |
13 | * This program is distributed in the hope that it will be useful, |
14 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY |
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 | * for more details. |
16 | * GNU General Public License for more details. |
17 | * |
17 | * |
18 | * You should have received a copy of the GNU General Public License along |
18 | * You should have received a copy of the GNU General Public License |
19 | * with Crossfire TRT; if not, write to the Free Software Foundation, Inc. 51 |
19 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
20 | * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
|
|
21 | * |
20 | * |
22 | * The authors can be reached via e-mail to <crossfire@schmorp.de> |
21 | * The authors can be reached via e-mail to <crossfire@schmorp.de> |
23 | */ |
22 | */ |
24 | |
23 | |
25 | #include <global.h> |
24 | #include <global.h> |
… | |
… | |
227 | /* if it's a dragon player, set the correct title here */ |
226 | /* if it's a dragon player, set the correct title here */ |
228 | if (is_dragon_pl (ob)) |
227 | if (is_dragon_pl (ob)) |
229 | { |
228 | { |
230 | object *tmp, *abil = 0, *skin = 0; |
229 | object *tmp, *abil = 0, *skin = 0; |
231 | |
230 | |
232 | shstr_cmp dragon_ability_force ("dragon_ability_force"); |
|
|
233 | shstr_cmp dragon_skin_force ("dragon_skin_force"); |
|
|
234 | |
|
|
235 | for (tmp = ob->inv; tmp; tmp = tmp->below) |
231 | for (tmp = ob->inv; tmp; tmp = tmp->below) |
236 | if (tmp->type == FORCE) |
232 | if (tmp->type == FORCE) |
237 | if (tmp->arch->archname == dragon_ability_force) |
233 | if (tmp->arch->archname == shstr_dragon_ability_force) |
238 | abil = tmp; |
234 | abil = tmp; |
239 | else if (tmp->arch->archname == dragon_skin_force) |
235 | else if (tmp->arch->archname == shstr_dragon_skin_force) |
240 | skin = tmp; |
236 | skin = tmp; |
241 | |
237 | |
242 | set_dragon_name (ob, abil, skin); |
238 | set_dragon_name (ob, abil, skin); |
243 | } |
239 | } |
244 | |
240 | |
… | |
… | |
302 | ns = 0; |
298 | ns = 0; |
303 | } |
299 | } |
304 | |
300 | |
305 | if (ob) |
301 | if (ob) |
306 | ob->close_container (); //TODO: client-specific |
302 | ob->close_container (); //TODO: client-specific |
|
|
303 | |
|
|
304 | observe = ob; |
307 | |
305 | |
308 | deactivate (); |
306 | deactivate (); |
309 | } |
307 | } |
310 | |
308 | |
311 | // the need for this function can be explained |
309 | // the need for this function can be explained |
… | |
… | |
362 | if (ob) |
360 | if (ob) |
363 | { |
361 | { |
364 | ob->destroy_inv (false); |
362 | ob->destroy_inv (false); |
365 | ob->destroy (); |
363 | ob->destroy (); |
366 | } |
364 | } |
|
|
365 | |
|
|
366 | ob = observe = 0; |
367 | } |
367 | } |
368 | |
368 | |
369 | player::~player () |
369 | player::~player () |
370 | { |
370 | { |
371 | /* Clear item stack */ |
371 | /* Clear item stack */ |
… | |
… | |
3419 | { |
3419 | { |
3420 | /* forces in the treasurelist can alter the player's stats */ |
3420 | /* forces in the treasurelist can alter the player's stats */ |
3421 | object *skin; |
3421 | object *skin; |
3422 | |
3422 | |
3423 | /* first get the dragon skin force */ |
3423 | /* first get the dragon skin force */ |
3424 | shstr_cmp dragon_skin_force ("dragon_skin_force"); |
|
|
3425 | for (skin = who->inv; skin && !(skin->arch->archname == dragon_skin_force); skin = skin->below) |
3424 | for (skin = who->inv; skin && !(skin->arch->archname == shstr_dragon_skin_force); skin = skin->below) |
3426 | ; |
3425 | ; |
3427 | |
3426 | |
3428 | if (!skin) |
3427 | if (!skin) |
3429 | return; |
3428 | return; |
3430 | |
3429 | |