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

Comparing deliantra/server/common/player.C (file contents):
Revision 1.21 by root, Fri Feb 16 19:43:41 2007 UTC vs.
Revision 1.25 by root, Mon Apr 30 05:54:13 2007 UTC

45 * of the dragon race. 45 * of the dragon race.
46 */ 46 */
47int 47int
48is_dragon_pl (const object *op) 48is_dragon_pl (const object *op)
49{ 49{
50 if (op != NULL && op->type == PLAYER && op->arch != NULL && op->arch->clone.race != NULL && strcmp (op->arch->clone.race, "dragon") == 0) 50 if (op
51 && op->type == PLAYER
52 && op->arch
53 && op->arch->clone.race
54 && !strcmp (op->arch->clone.race, "dragon"))
51 return 1; 55 return 1;
52 56
53 return 0; 57 return 0;
58}
59
60void
61player::set_skill (object *skill, object *ob)
62{
63 if (skill->type == SKILL && IS_COMBAT_SKILL (skill->subtype))
64 {
65 combat_skill = skill;
66 combat_ob = ob;
67 }
68 else
69 {
70 ranged_skill = skill;
71 ranged_ob = ob;
72 }
54} 73}
55 74
56/* 75/*
57 * If final is set, it a clean/final save, not a backup, ie dont remove objects from inventory 76 * If final is set, it a clean/final save, not a backup, ie dont remove objects from inventory
58 */ 77 */
77 PL_OUT2 (title, own_title); 96 PL_OUT2 (title, own_title);
78 PL_OUT (gen_hp); 97 PL_OUT (gen_hp);
79 PL_OUT (gen_sp); 98 PL_OUT (gen_sp);
80 PL_OUT (gen_grace); 99 PL_OUT (gen_grace);
81 PL_OUT (listening); 100 PL_OUT (listening);
82 PL_OUT (shoottype);
83 PL_OUT (bowtype); 101 PL_OUT (bowtype);
84 PL_OUT (petmode); 102 PL_OUT (petmode);
85 PL_OUT (peaceful); 103 PL_OUT (peaceful);
86 PL_OUT (digestion); 104 PL_OUT (digestion);
87 PL_OUT2 (pickup, mode); 105 PL_OUT2 (pickup, mode);
184 return pl; 202 return pl;
185 203
186 case KW_oid: f.get (pl, f.get_sint32 ()); break; 204 case KW_oid: f.get (pl, f.get_sint32 ()); break;
187 case KW_password: assign (pl->password , f.get_str ()); break; 205 case KW_password: assign (pl->password , f.get_str ()); break;
188 case KW_title: assign (pl->own_title, f.get_str ()); break; 206 case KW_title: assign (pl->own_title, f.get_str ()); break;
189 case KW_shoottype: pl->shoottype = (rangetype) f.get_sint32 (); break;
190 case KW_bowtype: pl->bowtype = (bowtype_t) f.get_sint32 (); break; 207 case KW_bowtype: pl->bowtype = (bowtype_t) f.get_sint32 (); break;
191 case KW_petmode: pl->petmode = (petmode_t) f.get_sint32 (); break; 208 case KW_petmode: pl->petmode = (petmode_t) f.get_sint32 (); break;
192 case KW_listening: f.get (pl->listening); break; 209 case KW_listening: f.get (pl->listening); break;
193 case KW_peaceful: f.get (pl->peaceful); break; 210 case KW_peaceful: f.get (pl->peaceful); break;
194 case KW_digestion: f.get (pl->digestion); break; 211 case KW_digestion: f.get (pl->digestion); break;
253 } 270 }
254 271
255failure: 272failure:
256 LOG (llevError, "%s: too many or too grave errors, aborting player load.\n", f.name); 273 LOG (llevError, "%s: too many or too grave errors, aborting player load.\n", f.name);
257 274
275 if (pl->ob)
258 pl->ob->destroy (); 276 pl->ob->destroy ();
277
259 pl->destroy (); 278 pl->destroy ();
260 279
261 return 0; 280 return 0;
262} 281}
263 282

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines