Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

unitset.h

Go to the documentation of this file.
00001 /*
00002     This file is part of Advanced Strategic Command; http://www.asc-hq.de
00003     Copyright (C) 1994-1999  Martin Bickel  and  Marc Schellenberger
00004 
00005     This program is free software; you can redistribute it and/or modify
00006     it under the terms of the GNU General Public License as published by
00007     the Free Software Foundation; either version 2 of the License, or
00008     (at your option) any later version.
00009 
00010     This program 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 program; see the file COPYING. If not, write to the 
00017     Free Software Foundation, Inc., 59 Temple Place, Suite 330, 
00018     Boston, MA  02111-1307  USA
00019 */
00020 
00021 
00022 #ifndef unitsetH
00023 #define unitsetH
00024 
00025 #include <vector>
00026 #include "ascstring.h"
00027 #include "typen.h"
00028 
00029 class SingleUnitSet {
00030       public:
00031 
00032          enum Type { unit, building };
00033 
00034          class TranslationTable {
00035                   public:
00036                      std::vector<IntRange> translation;
00037                      std::string name;
00038                      void parseString ( const char* s );
00039                };
00040 
00041 
00042          int active;
00043          int ID;
00044          ASCString name;
00045          ASCString maintainer;
00046          ASCString information;
00047 
00048          std::vector<IntRange> unitIds;
00049          std::vector<IntRange> buildingIds;
00050          std::vector<TranslationTable*> transtab;
00051          bool filterBuildings;
00052 
00053          SingleUnitSet ( void ) : active ( 1 ), ID(0), filterBuildings ( true ) {};
00054          bool isMember ( int id, Type type );
00055          void read ( pnstream stream );
00056          std::vector<IntRange> parseIDs ( const char* s );
00057 
00058      };
00059 
00060 typedef deallocating_vector<SingleUnitSet*> UnitSets;
00061 extern UnitSets unitSets;
00062 
00063 extern void loadUnitSets ( void );
00064 
00065 
00066 class Vehicletype;
00067 class BuildingType;
00068 extern int getUnitSetID( const Vehicletype* veh );
00069 extern int getUnitSetID( const BuildingType* bld );
00070 
00071 extern bool vehicleComp( const Vehicletype* v1, const Vehicletype* v2 );
00072 
00073 
00074 #endif

Generated on Tue Jun 24 01:27:54 2008 for Advanced Strategic Command by  doxygen 1.4.2