ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/server/player.C
(Generate patch)

Comparing deliantra/server/server/player.C (file contents):
Revision 1.149 by root, Mon Jun 4 13:04:00 2007 UTC vs.
Revision 1.153 by root, Tue Jul 10 05:51:38 2007 UTC

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
369player::~player () 369player::~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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines