--- deliantra/server/common/player.C 2007/02/16 19:43:41 1.21 +++ deliantra/server/common/player.C 2007/05/01 05:48:20 1.26 @@ -47,7 +47,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->clone.race + && !strcmp (op->arch->clone.race, "dragon")) return 1; return 0; @@ -79,7 +83,6 @@ PL_OUT (gen_sp); PL_OUT (gen_grace); PL_OUT (listening); - PL_OUT (shoottype); PL_OUT (bowtype); PL_OUT (petmode); PL_OUT (peaceful); @@ -186,7 +189,6 @@ case KW_oid: f.get (pl, f.get_sint32 ()); break; case KW_password: assign (pl->password , f.get_str ()); break; case KW_title: assign (pl->own_title, f.get_str ()); break; - case KW_shoottype: pl->shoottype = (rangetype) f.get_sint32 (); 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_listening: f.get (pl->listening); break; @@ -255,7 +257,9 @@ failure: LOG (llevError, "%s: too many or too grave errors, aborting player load.\n", f.name); - pl->ob->destroy (); + if (pl->ob) + pl->ob->destroy (); + pl->destroy (); return 0;