--- deliantra/server/common/player.C 2007/04/30 04:25:29 1.24 +++ deliantra/server/common/player.C 2007/07/01 05:00:17 1.33 @@ -1,25 +1,24 @@ /* - * CrossFire, A Multiplayer game for X-windows - * - * Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team - * Copyright (C) 2002 Mark Wedel & Crossfire Development Team - * Copyright (C) 1992 Frank Tore Johansen - * - * This program is free software; you can redistribute it and/or modify + * This file is part of Crossfire TRT, the Roguelike Realtime MORPG. + * + * Copyright (©) 2005,2006,2007 Marc Alexander Lehmann / Robin Redeker / the Crossfire TRT team + * Copyright (©) 2002,2007 Mark Wedel & Crossfire Development Team + * Copyright (©) 1992,2007 Frank Tore Johansen + * + * Crossfire TRT is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - * The authors can be reached via e-mail at + * along with this program. If not, see . + * + * The authors can be reached via e-mail to */ #include @@ -47,7 +46,11 @@ int is_dragon_pl (const object *op) { - if (op != NULL && op->type == PLAYER && op->arch != NULL && op->arch->clone.race != NULL && strcmp (op->arch->clone.race, "dragon") == 0) + if (op + && op->type == PLAYER + && op->arch + && op->arch->race + && !strcmp (op->arch->race, "dragon")) return 1; return 0; @@ -75,6 +78,7 @@ PL_OUT (password); PL_OUT2 (title, own_title); + PL_OUT (gender); PL_OUT (gen_hp); PL_OUT (gen_sp); PL_OUT (gen_grace); @@ -95,6 +99,7 @@ PL_OUT (bed_x); PL_OUT (bed_y); PL_OUT (weapon_sp); + PL_OUT (weapon_sp_left); PL_OUT2 (Str, orig_stats.Str); PL_OUT2 (Dex, orig_stats.Dex); PL_OUT2 (Con, orig_stats.Con); @@ -107,9 +112,9 @@ for (int i = 1; i <= 10; i++) { - fprintf (freezer, "%d\n", levhp [i]); - fprintf (freezer, "%d\n", levsp [i]); - fprintf (freezer, "%d\n", levgrace[i]); + freezer.add (levhp [i]); freezer.add ('\n'); + freezer.add (levsp [i]); freezer.add ('\n'); + freezer.add (levgrace[i]); freezer.add ('\n'); } freezer.put (ob->contr); @@ -187,6 +192,7 @@ case KW_title: assign (pl->own_title, f.get_str ()); break; case KW_bowtype: pl->bowtype = (bowtype_t) f.get_sint32 (); break; case KW_petmode: pl->petmode = (petmode_t) f.get_sint32 (); break; + case KW_gender: f.get (pl->gender); break; case KW_listening: f.get (pl->listening); break; case KW_peaceful: f.get (pl->peaceful); break; case KW_digestion: f.get (pl->digestion); break; @@ -198,6 +204,7 @@ case KW_bed_x: f.get (pl->bed_x); break; case KW_bed_y: f.get (pl->bed_y); break; case KW_weapon_sp: f.get (pl->weapon_sp); break; + case KW_weapon_sp_left:f.get (pl->weapon_sp_left); break; case KW_Str: f.get (pl->orig_stats.Str); break; case KW_Dex: f.get (pl->orig_stats.Dex); break; case KW_Con: f.get (pl->orig_stats.Con); break;