1 /* -*- Mode: C++; c-basic-offset: 2; tab-width: 2; indent-tabs-mode: nil -*- 2 * 3 * Quadra, an action puzzle game 4 * Copyright (C) 1998-2000 Ludus Design 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2.1 of the License, or (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with this library; if not, write to the Free Software 18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 */ 20 21 #ifndef _HEADER_RESFILE 22 #define _HEADER_RESFILE 23 24 #include "types.h" 25 26 const char signature[4] = "UGS"; 27 28 class Resdata { 29 private: 30 friend class Resfile; 31 int size; 32 Byte *data; 33 public: 34 char *name; 35 Resdata *next; 36 Resdata(char *resname, int ressize, Byte *resdata, Resdata *list); 37 virtual ~Resdata(); 38 }; 39 40 class Res_dos; 41 42 class Resfile { 43 private: 44 Res_dos *res; 45 public: 46 Resdata *list; 47 Resfile(const char *fname, bool ro=true); 48 virtual ~Resfile(); 49 virtual void freeze(); 50 virtual void thaw(); 51 virtual void clear(); 52 virtual void add(const char *resname, int size, const char *resdata); 53 virtual int get(const char *resname, Byte **resdata); 54 virtual void remove(const char* resname); 55 }; 56 57 #endif 58