00001
#ifndef SCREEN_OPTIONS_MASTER_H
00002
#define SCREEN_OPTIONS_MASTER_H
00003
00004
#include "ScreenOptions.h"
00005
#include "GameCommand.h"
00006
00007
struct ConfOption;
00008
00009 class ScreenOptionsMaster:
public ScreenOptions
00010 {
00011
public:
00012
ScreenOptionsMaster(
CString sName );
00013
virtual ~ScreenOptionsMaster();
00014
00015
private:
00016
00017 enum OptionRowType
00018 {
00019
ROW_LIST,
00020
ROW_STEP,
00021
ROW_CHARACTER,
00022
ROW_CONFIG,
00023
NUM_OPTION_ROW_TYPES
00024 };
00025
00026 struct OptionRowHandler
00027 {
00028 OptionRowHandler() {
opt = NULL; }
00029
00030 OptionRowType
type;
00031
00032
00033 vector<GameCommand>
ListEntries;
00034 GameCommand Default;
00035
00036
00037 const ConfOption *
opt;
00038 };
00039
00040 CString m_sNextScreen;
00041
00042 vector<OptionRowHandler>
OptionRowHandlers;
00043 OptionRowData *
m_OptionRowAlloc;
00044
00045
int ExportOption(
const OptionRowData &row,
const OptionRowHandler &hand, PlayerNumber pn,
const vector<bool> &vbSelected );
00046
void ImportOption(
const OptionRowData &row,
const OptionRowHandler &hand, PlayerNumber pn,
int rowno, vector<bool> &vbSelectedOut );
00047
void SetList(
OptionRowData &row,
OptionRowHandler &hand, CString param );
00048
void SetStep(
OptionRowData &row,
OptionRowHandler &hand );
00049
void SetConf(
OptionRowData &row,
OptionRowHandler &hand, CString param );
00050
void SetCharacter(
OptionRowData &row,
OptionRowHandler &hand );
00051
00052
protected:
00053
virtual void ImportOptions();
00054
virtual void ExportOptions();
00055
virtual void ImportOptionsForPlayer( PlayerNumber pn );
00056
00057
virtual void GoToNextScreen();
00058
virtual void GoToPrevScreen();
00059
00060
virtual void RefreshIcons();
00061 };
00062
00063
#endif
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088