/* * PVVMUD a 3D MUD * Copyright (C) 1998-1999 Programvareverkstedet (pvv@pvv.org) * * 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. * * 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 GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ #ifndef _GAMEVALUE_H #define _GAMEVALUE_H #include "pvvmud.H" #include <hash_map> #include <iostream> class CGameValueObject { public: CGameValueObject(); ~CGameValueObject(); int type; union { BYTE _byte; WORD _word; DWORD _dword; float _float; double _double; } value; char *_ptr; }; class CGameValue { enum {GV_INVALID=-1,GV_BYTE,GV_WORD,GV_DWORD,GV_FLOAT,GV_DOUBLE,GV_STRING}; struct eqstr { bool operator()(const char* s1,const char* s2) const { return strcmp(s1,s2)==0; }; }; typedef hash_map<const char *, CGameValueObject *, hash<const char *>,eqstr> valhash; valhash hash; public: CGameValue(void); ~CGameValue(void); void add(char *, BYTE *); void add(char *, WORD *); void add(char *, DWORD *); void add(char *, float *); void add(char *, double *); void add(char *, char *, int *); bool get(char *, BYTE *); bool get(char *, WORD *); bool get(char *, DWORD *); bool get(char *, float *); bool get(char *, double *); bool get(char *, char *, int *); bool load(iostream &readFile); bool save(iostream &saveFile); }; #endif