--- deliantra/server/common/image.C 2012/01/03 11:23:41 1.38 +++ deliantra/server/common/image.C 2012/11/11 05:53:11 1.43 @@ -1,22 +1,22 @@ /* * This file is part of Deliantra, the Roguelike Realtime MMORPG. - * - * Copyright (©) 2005,2006,2007,2008,2009,2010,2011 Marc Alexander Lehmann / Robin Redeker / the Deliantra team - * + * + * Copyright (©) 2005,2006,2007,2008,2009,2010,2011,2012 Marc Alexander Lehmann / Robin Redeker / the Deliantra team + * * 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 * GNU General Public License for more details. - * + * * 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 */ @@ -31,16 +31,16 @@ facehash_t facehash; std::vector faces; -static std::vector faces_free; +static std::vector faces_freelist; faceidx face_alloc () { faceidx idx; - if (faces_freelist.empty ()) + if (!faces_freelist.empty ()) { - idx = faces_free.back (); - faces_free.pop_back (); + idx = faces_freelist.back (); + faces_freelist.pop_back (); } else { @@ -55,6 +55,7 @@ return idx; } +void faceinfo::unref () { if (--refcnt) @@ -90,7 +91,7 @@ facedata * faceinfo::data (int faceset) const { - if (!face [faceset].data.size ()) + if (!face [faceset].chksum_len) faceset = 0; return (facedata *)(face + faceset);