--- deliantra/server/common/image.C 2007/04/12 14:18:04 1.23 +++ deliantra/server/common/image.C 2011/04/23 04:56:45 1.37 @@ -1,25 +1,23 @@ /* - * CrossFire, A Multiplayer game + * This file is part of Deliantra, the Roguelike Realtime MMORPG. * - * Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team - * Copyright (C) 2002 Mark Wedel & Crossfire Development Team - * Copyright (C) 1992 Frank Tore Johansen + * Copyright (©) 2005,2006,2007,2008,2009,2010,2011 Marc Alexander Lehmann / Robin Redeker / the Deliantra team * - * This program 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 - * (at your option) any later version. + * Deliantra is free software: you can redistribute it and/or modify it under + * the terms of the Affero GNU General Public License as published by 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 maintainer of this code can be reached at + * You should have received a copy of the Affero GNU General Public License + * and the GNU General Public License along with this program. If not, see + * . + * + * The authors can be reached via e-mail to */ #include @@ -28,51 +26,11 @@ #include "face.h" #include "crc.h" -faceidx blank_face, empty_face; +faceidx blank_face, empty_face, magicmouth_face; facehash_t facehash; std::vector faces; -/* the only thing this table is used for now is to - * translate the colorname in the magicmap field of the - * face into a numeric index that is then sent to the - * client for magic map commands. The order of this table - * must match that of the NDI colors in include/newclient.h. - */ -static const char *const colorname[] = { - "black", /* 0 */ - "white", /* 1 */ - "blue", /* 2 */ - "red", /* 3 */ - "orange", /* 4 */ - "light_blue", /* 5 */ - "dark_orange", /* 6 */ - "green", /* 7 */ - "light_green", /* 8 */ - "grey", /* 9 */ - "brown", /* 10 */ - "yellow", /* 11 */ - "khaki" /* 12 */ -}; - -/* - * Returns the matching color in the coloralias if found, - * 0 otherwise. Note that 0 will actually be black, so there is no - * way the calling function can tell if an error occurred or not - */ -static uint8 -find_color (const char *name) -{ - uint8 i; - - for (i = 0; i < sizeof (colorname) / sizeof (*colorname); i++) - if (!strcmp (name, colorname[i])) - return i; - - LOG (llevError, "Unknown color: %s\n", name); - return 0; -} - faceidx face_find (const char *name, faceidx defidx) { @@ -97,10 +55,19 @@ } facedata * +faceinfo::data (int faceset) const +{ + if (!face [faceset].data.size ()) + faceset = 0; + + return (facedata *)(face + faceset); +} + +facedata * face_data (faceidx idx, int faceset) { if (faceinfo *f = face_info (idx)) - return &(faceset ? f->data32 : f->data64); + return f->data (faceset); return 0; }