home *** CD-ROM | disk | FTP | other *** search
/ PC Format (South-Africa) 2001 June / PCFJune.iso / Xenon / XenonSource.exe / xenon / includes / options.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-09-08  |  1.6 KB  |  82 lines

  1. //-------------------------------------------------------------
  2. //
  3. // Module:    COptions
  4. //
  5. // Author:    John M Phillips
  6. //
  7. // Started:    05/05/00
  8. //
  9. // Base:    None
  10. //
  11. // Derived:    None
  12. //
  13. //-------------------------------------------------------------
  14.  
  15. #ifndef _INCLUDE_OPTIONS_H
  16. #define _INCLUDE_OPTIONS_H
  17.  
  18. //-------------------------------------------------------------
  19.  
  20. const float FRAME_RATE = 60.f;
  21.  
  22. //-------------------------------------------------------------
  23.  
  24. typedef enum {
  25.     OPTION_DIFFICULTY,
  26.     OPTION_HIRES,
  27.     OPTION_WINDOWED,
  28.     OPTION_COLOURDEPTH,
  29.     OPTION_JOYSTICK,
  30.     OPTION_MUSIC,
  31.     OPTION_SOUNDFX,
  32.     OPTION_PARTICLEFX,
  33.     OPTION_BACKDROP,
  34.     OPTION_DEBUGINFO,
  35.     OPTION_CHEATS,
  36.     OPTION_CONTROL1,
  37.     OPTION_CONTROL2,
  38.  
  39.     TOTAL_OPTIONS
  40. } OptionType;
  41.  
  42. //-------------------------------------------------------------
  43.  
  44. class COptions
  45. {
  46.     private:
  47.         bool m_changed;
  48.         bool m_reload;
  49.         int m_options[TOTAL_OPTIONS];
  50.         static int m_defaults[TOTAL_OPTIONS];
  51.  
  52.         gsCIniFile m_file;
  53.  
  54.     public:
  55.         COptions();
  56.         ~COptions();
  57.  
  58.         void restoreDefaults();
  59.         void restoreDefaultControls();
  60.  
  61.         void readOption(OptionType type,const char *section,const char *key);
  62.         void setOption(OptionType type,int value);
  63.         int getOption(OptionType type);
  64.         void toggleOption(OptionType type);
  65.  
  66.         bool load(const char *filename);
  67.         bool save(const char *filename);
  68.  
  69.         bool areChanged();
  70.         bool requireReload();
  71.  
  72.         void changesNoted();
  73. };
  74.  
  75. //-------------------------------------------------------------
  76.  
  77. extern COptions Options;
  78.  
  79. //-------------------------------------------------------------
  80.  
  81. #endif
  82.