--- deliantra/server/common/anim.C 2007/04/12 14:18:04 1.22 +++ deliantra/server/common/anim.C 2008/01/22 15:53:01 1.29 @@ -1,25 +1,24 @@ /* - * CrossFire, A Multiplayer game for X-windows + * This file is part of Deliantra, the Roguelike Realtime MMORPG. * - * Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team - * Copyright (C) 2002-2003 Mark Wedel & Crossfire Development Team - * Copyright (C) 1992 Frank Tore Johansen + * Copyright (©) 2005,2006,2007 Marc Alexander Lehmann / Robin Redeker / the Deliantra team + * Copyright (©) 2002-2003,2007 Mark Wedel & Crossfire Development Team + * Copyright (©) 1992,2007 Frank Tore Johansen * - * This program is free software; you can redistribute it and/or modify + * Deliantra 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 */ /* This file contains animation related code. */ @@ -33,7 +32,7 @@ void animation::resize (int new_size) { - sfree (faces, num_animations); + sfree (faces, num_animations); num_animations = new_size; faces = salloc (num_animations); } @@ -41,6 +40,9 @@ animation & animation::create (const char *name, uint8 frames, uint8 facings) { + if (animations.size () == MAXANIMNUM) + cleanup ("trying to create new animation, but MAXANIMNUM animations in use."); + animations.push_back (animation ()); animation &anim = animations.back (); @@ -104,7 +106,7 @@ return; } - if (op->head) + if (op->head_ () != op) { dir = op->head->direction; @@ -164,7 +166,7 @@ * as such, disable it for players, as then players would become * visible. */ - else if (op->type != PLAYER && op->arch->clone.flag [FLAG_ALIVE]) + else if (op->type != PLAYER && op->arch->flag [FLAG_ALIVE]) { if (op->face == 0) { @@ -185,7 +187,7 @@ * as such, we call it last, and only call it for the head * piece, and not for the other tail pieces. */ - if (!op->head) + if (op->head_ () == op) update_object (op, UP_OBJ_FACE); }