Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   Related Pages  

Size.h

00001 /*
00002  * Size.h -- class interface for standard size categories
00003  * Copyright (C) 2002  Eric Lemings <elemings@users.sourceforge.net>
00004  *
00005  * This software is free software; you can redistribute it and/or
00006  * modify it under the terms of the GNU General Public License
00007  * as published by the Free Software Foundation; either version 2
00008  * of the License, or (at your option) any later version.
00009  *
00010  * This software is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013  * GNU General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU General Public License
00016  * along with this software; if not, write to the Free Software
00017  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
00018  * 02111-1307, USA
00019  *
00020  * RCS: $Id: Size.h,v 1.3 2003/04/15 16:58:37 elemings Exp $
00021  */
00022 
00023 #ifdef __cplusplus
00024 
00025 #  ifndef OGS_CORE_SIZE_H
00026 #    define OGS_CORE_SIZE_H
00027 
00028 #    include <ogs/core/Modifier.h>
00029 #    include <ogs/core/Namespace.h>
00030 
00031 OGS_BEGIN_CORE_NAMESPACE
00032 
00037 class Size {
00038   public:
00040     enum Type {
00042       FINE = 'F',
00044       DIMINUITIVE = 'D',
00046       TINY = 'T',
00048       SMALL = 'S',
00050       MEDIUM = 'M',
00052       LARGE = 'L',
00053 // Some !@&#% system headers define HUGE as a macro.  Temporary fix.
00054 #undef HUGE
00055 
00056       HUGE = 'H',
00058       GARGANTUAN = 'G',
00060       COLLOSAL = 'C'
00061     };
00062 
00063     Size (Type type = MEDIUM);
00064     Type getType () const;
00065     Modifier& getDefenseModifier ();
00066 
00067   private:
00068     Type type;
00069     Modifier defenseModifier;
00070 
00071     bool isValid (Type type);
00072 };
00073 
00079 inline Size::Size (Type type) {
00080   this->type = type;
00081 }
00082 
00088 inline Size::Type Size::getType () const {
00089   return (this->type);
00090 }
00091 
00097 inline Modifier& Size::getDefenseModifier () {
00098   return (this->defenseModifier);
00099 }
00100 
00101 OGS_END_CORE_NAMESPACE
00102 
00103 #  endif /* !defined OGS_CORE_SIZE_H */
00104 
00105 #endif /* defined __cplusplus */
00106 

Generated on Sun Apr 20 03:36:25 2003 for Open Gaming System (OGS) by doxygen1.3