Starshatter_Open
Open source Starshatter engine
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
ModConfig.h
Go to the documentation of this file.
1 /* Project Starshatter 4.5
2  Destroyer Studios LLC
3  Copyright © 1997-2004. All Rights Reserved.
4 
5  SUBSYSTEM: Stars.exe
6  FILE: ModConfig.h
7  AUTHOR: John DiCamillo
8 
9 
10  OVERVIEW
11  ========
12  Mod file deployment configuration and manager
13 */
14 
15 
16 #ifndef ModConfig_h
17 #define ModConfig_h
18 
19 #include "Types.h"
20 #include "Bitmap.h"
21 #include "Text.h"
22 #include "List.h"
23 
24 // +-------------------------------------------------------------------+
25 
26 class ModConfig;
27 class ModInfo;
28 class ModCampaign;
29 
30 // +-------------------------------------------------------------------+
31 
32 class ModConfig
33 {
34 public:
35  static const char* TYPENAME() { return "ModConfig"; }
36 
37  ModConfig();
38  ~ModConfig();
39 
40  int operator == (const ModConfig& cfg) const { return this == &cfg; }
41 
42  static void Initialize();
43  static void Close();
44  static ModConfig* GetInstance();
45 
46  void Load();
47  void Save();
48  void FindMods();
49 
50  bool IsDeployed(const char* name);
51  void Deploy();
52  void Undeploy();
53  void Redeploy();
54 
55  // these methods change the configuration only
56  // you must Redeploy() to have them take effect:
57 
58  void EnableMod(const char* name);
59  void DisableMod(const char* name);
60  void IncreaseModPriority(int mod_index);
61  void DecreaseModPriority(int mod_index);
62 
63  List<Text>& EnabledMods() { return enabled; }
64  List<Text>& DisabledMods() { return disabled; }
65  List<ModInfo>& GetModInfoList() { return mods; }
66 
67  ModInfo* GetModInfo(const char* filename);
68 
69 private:
70  List<Text> enabled;
71  List<Text> disabled;
72  List<ModInfo> mods;
73 };
74 
75 #endif ModConfig_h