Options Class Reference

#include <Options.h>

Collaboration diagram for Options:

Collaboration graph
[legend]

Public Member Functions

 Options ()
 ~Options ()
double get_d (option_double_t option)
long get_l (option_long_t option)
const String get_s (option_string_t option)
void broadcast_opts ()
void log_all_options ()
void save_all_options_to_file (String filename, const bool as_default)
void get_options_from_rtbrc ()
void read_options_file (String file_string, const bool as_default)
option_info_t< double > * get_all_double_options ()
option_info_t< long > * get_all_long_options ()
option_info_t< String > * get_all_string_options ()
option_return_t get_option_from_string (const String &option_name)
OptionsWindowget_optionswindow_p ()
bool is_optionswindow_up ()
void open_optionswindow ()
void close_optionswindow ()

Private Attributes

option_info_t< double > all_double_options [LAST_DOUBLE_OPTION]
option_info_t< long > all_long_options [LAST_LONG_OPTION]
option_info_t< Stringall_string_options [LAST_STRING_OPTION]
OptionsWindowoptionswindow_p

Constructor & Destructor Documentation

Options::Options  ) 
 

Definition at line 48 of file Options.cc.

References _, all_double_options, all_long_options, all_string_options, bindtextdomain, optionswindow_p, and textdomain.

00049 {
00050 #ifdef HAVE_LOCALE_H
00051   setlocale( LC_MESSAGES, "" );
00052   setlocale( LC_NUMERIC, "POSIX" );
00053 #endif
00054 #ifdef RTB_LOCALEDIR
00055   bindtextdomain( "RealTimeBattle", RTB_LOCALEDIR );
00056 #else
00057   bindtextdomain( "RealTimeBattle", "/usr/local/share/locale" );
00058 #endif
00059   textdomain( "RealTimeBattle" );
00060 
00061   // Entries are: entry_datatype, page in option, 
00062   //              default value, max value, min value, 
00063   //              max letters in entry,
00064   //              broadcast option?, log option?, description
00065 
00066   all_double_options[OPTION_GRAV_CONST] = 
00067     option_info_t<double>(ENTRY_DOUBLE, PAGE_ENVIRONMENT, 9.82, 0.2, 20.0, 12,
00068                           false, true, "Gravitational Constant",
00069                           _("Gravitational Constant") );
00070 
00071   all_double_options[OPTION_AIR_RESISTANCE] = 
00072     option_info_t<double>(ENTRY_DOUBLE, PAGE_ENVIRONMENT, 0.005, 0.0, 1.0, 12,
00073                           false, true, "Air resistance", _("Air resistance") );
00074 
00075   all_double_options[OPTION_ROLL_FRICTION] = 
00076     option_info_t<double>(ENTRY_DOUBLE, PAGE_ENVIRONMENT, 0.002, 0.0, 1.0, 12,
00077                           false, true, "Roll friction", _("Roll friction") );
00078 
00079   all_double_options[OPTION_SLIDE_FRICTION] = 
00080     option_info_t<double>(ENTRY_DOUBLE, PAGE_ENVIRONMENT, 0.1, 0.0, 5.0, 12,
00081                           false, true, "Slide/brake friction",
00082                           _("Slide/brake friction") );
00083 
00084   all_long_options[OPTION_SEND_ROBOT_COORDINATES] =
00085     option_info_t<long>(ENTRY_INT, PAGE_ENVIRONMENT, 0, 0, 2, 4,
00086                         true, true, "Send robot coordinates", 
00087                         _("Send robot coordinates") );
00088 
00089   all_double_options[OPTION_ROBOT_MAX_ACCELERATION] = 
00090     option_info_t<double>(ENTRY_DOUBLE, PAGE_ROBOT, 2.0, 0.1, 10.0, 12,
00091                           true, true, "Robot max acceleration",
00092                           _("Robot max acceleration") );
00093 
00094   all_double_options[OPTION_ROBOT_MIN_ACCELERATION] = 
00095     option_info_t<double>(ENTRY_DOUBLE, PAGE_ROBOT, -0.5, -10.0, 0.0, 12,
00096                           true, true, "Robot min acceleration",
00097                           _("Robot min acceleration") );
00098     
00099   all_double_options[OPTION_ROBOT_RADIUS] = 
00100     option_info_t<double>(ENTRY_DOUBLE, PAGE_ROBOT, 0.5, 0.1, 10.0, 12, 
00101                           false, true, "Robot radius", _("Robot radius") );
00102 
00103   all_double_options[OPTION_ROBOT_MASS] = 
00104     option_info_t<double>(ENTRY_DOUBLE, PAGE_ROBOT, 1.0, 0.01, 100.0, 12,
00105                           false, true, "Robot mass", _("Robot mass") );
00106 
00107   all_double_options[OPTION_ROBOT_BOUNCE_COEFF] = 
00108     option_info_t<double>(ENTRY_DOUBLE, PAGE_ROBOT, 0.7, 0.0, 1.0, 12,
00109                           false, true, "Robot bounce coefficient",
00110                           _("Robot bounce coefficient") );
00111 
00112   all_double_options[OPTION_ROBOT_HARDNESS] = 
00113     option_info_t<double>(ENTRY_DOUBLE, PAGE_ROBOT, 0.5, 0.0, 1.0, 12,
00114                           false, true, "Robot hardness coefficient",
00115                           _("Robot hardness coefficient") );
00116 
00117   all_double_options[OPTION_ROBOT_PROTECTION] = 
00118     option_info_t<double>(ENTRY_DOUBLE, PAGE_ROBOT, 0.5, 0.0, 1.0, 12,
00119                           false, true, "Robot protection coefficient",
00120                           _("Robot protection coefficient") );
00121 
00122   all_double_options[OPTION_ROBOT_FRONTSIZE] = 
00123     option_info_t<double>(ENTRY_DOUBLE, PAGE_ROBOT, M_PI/3.0, 0.0, M_PI*2.0, 12,
00124                           false, true, "Robot frontsize [radians]", 
00125                           _("Robot frontsize [radians]") );
00126 
00127   all_double_options[OPTION_ROBOT_FRONT_BOUNCE_COEFF] = 
00128     option_info_t<double>(ENTRY_DOUBLE, PAGE_ROBOT, 0.7, 0.0, 1.0, 12,
00129                           false, true, "Robot front bounce coefficient",
00130                           _("Robot front bounce coefficient") );
00131 
00132   all_double_options[OPTION_ROBOT_FRONT_HARDNESS] = 
00133     option_info_t<double>(ENTRY_DOUBLE, PAGE_ROBOT, 0.9, 0.0, 1.0, 12,
00134                           false, true, "Robot front hardness coefficient",
00135                           _("Robot front hardness coefficient") );
00136 
00137   all_double_options[OPTION_ROBOT_FRONT_PROTECTION] = 
00138     option_info_t<double>(ENTRY_DOUBLE, PAGE_ROBOT, 0.9, 0.0, 1.0, 12,
00139                           false, true, "Robot front protection coefficient",
00140                           _("Robot front protection coefficient") );
00141 
00142   all_double_options[OPTION_ROBOT_START_ENERGY] = 
00143     option_info_t<double>(ENTRY_DOUBLE, PAGE_ROBOT, 100.0, 0.01, 10000.0, 12,
00144                           true, true, "Robot start energy",
00145                           _("Robot start energy") );
00146 
00147   all_double_options[OPTION_ROBOT_MAX_ENERGY] = 
00148     option_info_t<double>(ENTRY_DOUBLE, PAGE_ROBOT, 120.0, 0.01, 10000.0, 12,
00149                           true, true, "Robot max energy",
00150                           _("Robot max energy") );
00151 
00152   all_double_options[OPTION_ROBOT_MAX_ROTATE] = 
00153     option_info_t<double>(ENTRY_DOUBLE, PAGE_ROBOT, 2.0*M_PI / 8.0, 2.0*M_PI / 50.0,
00154                           2.0*M_PI * 5.0, 12,
00155                           true, true, "Robot max rotate speed [rad/s]",
00156                           _("Robot max rotate speed [rad/s]") );
00157 
00158   all_double_options[OPTION_ROBOT_CANNON_MAX_ROTATE] = 
00159     option_info_t<double>(ENTRY_DOUBLE, PAGE_ROBOT, 2.0*M_PI / 4.0, 2.0*M_PI / 50.0,
00160                           2.0*M_PI * 5.0, 12,
00161                           true, true, "Robot cannon max rotate speed [rad/s]",
00162                           _("Robot cannon max rotate speed [rad/s]") );
00163 
00164   all_double_options[OPTION_ROBOT_RADAR_MAX_ROTATE] = 
00165     option_info_t<double>(ENTRY_DOUBLE, PAGE_ROBOT, 2.0*M_PI / 3.0, 2.0*M_PI / 50.0,
00166                           2.0*M_PI * 5.0, 12,
00167                           true, true, "Robot radar max rotate speed [rad/s]",
00168                           _("Robot radar max rotate speed [rad/s]") );
00169 
00170   all_double_options[OPTION_CHECK_INTERVAL] = 
00171     option_info_t<double>(ENTRY_DOUBLE, PAGE_TIME, 1.0, 0.01, 1000000, 12,
00172                           false, false, "Process check interval",
00173                           _("Process check interval") );
00174     
00175   all_long_options[OPTION_ROBOT_ENERGY_LEVELS] = 
00176     option_info_t<long>(ENTRY_INT, PAGE_ROBOT, 10, 1, 100, 4,
00177                         true, true, "Robot energy levels", _("Robot energy levels") );
00178 
00179   all_double_options[OPTION_SHOT_RADIUS] = 
00180     option_info_t<double>(ENTRY_DOUBLE, PAGE_SHOT, 0.1, 0.01, 1.0, 12,
00181                           false, true, "Shot radius", _("Shot radius") );
00182 
00183   all_double_options[OPTION_SHOT_SPEED] = 
00184     option_info_t<double>(ENTRY_DOUBLE, PAGE_SHOT, 10.0, 0.1, 100.0, 12,
00185                           true, true, "Shot speed", _("Shot speed") );
00186 
00187   all_double_options[OPTION_SHOOTING_PENALTY] = 
00188     option_info_t<double>(ENTRY_DOUBLE, PAGE_SHOT, 0.075, 0.0, 1.0, 12,
00189                           false, true, "Shooting penalty (times shot energy)",
00190                           _("Shooting penalty (times shot energy)") );
00191 
00192   all_double_options[OPTION_SHOT_MIN_ENERGY] = 
00193     option_info_t<double>(ENTRY_DOUBLE, PAGE_SHOT, 0.5, 0.0, 100.0, 12,
00194                           true, true, "Shot min energy", _("Shot min energy") );
00195 
00196   all_double_options[OPTION_SHOT_MAX_ENERGY] = 
00197     option_info_t<double>(ENTRY_DOUBLE, PAGE_SHOT, 30.0, 0.0, 100000000.0, 12,
00198                           true, true, "Shot max energy", _("Shot max energy") );
00199 
00200   all_double_options[OPTION_SHOT_ENERGY_INCREASE_SPEED] = 
00201     option_info_t<double>(ENTRY_DOUBLE, PAGE_SHOT, 10.0, 0.0, 100000000.0, 12,
00202                           true, true, "Shot energy increase speed [energy/s]",
00203                           _("Shot energy increase speed [energy/s]") );
00204 
00205   all_long_options[OPTION_BACKGROUND_COLOUR] = 
00206     option_info_t<long>(ENTRY_HEX, PAGE_MISC, 0xfaf0e6, 0x000000, 0xffffff, 6,
00207                         false, false, "Background colour", _("Background colour") );
00208 
00209   all_long_options[OPTION_FOREGROUND_COLOUR] = 
00210     option_info_t<long>(ENTRY_HEX, PAGE_MISC, 0x000000, 0x000000, 0xffffff, 6,
00211                         false, false, "Foreground colour", _("Foreground colour") );
00212 
00213   all_long_options[OPTION_RTB_MESSAGE_COLOUR] = 
00214     option_info_t<long>(ENTRY_HEX, PAGE_MISC, 0x1111ee, 0x000000, 0xffffff, 6,
00215                         false, false, "Colour for RTB messages",
00216                         _("Colour for RTB messages") );
00217 
00218   all_double_options[OPTION_COOKIE_MAX_ENERGY] = 
00219     option_info_t<double>(ENTRY_DOUBLE, PAGE_EXTRAS, 15.0, 0.0, 100000000.0, 12,
00220                           false, true, "Cookie max energy", _("Cookie max energy") );
00221 
00222   all_double_options[OPTION_COOKIE_MIN_ENERGY] = 
00223     option_info_t<double>(ENTRY_DOUBLE, PAGE_EXTRAS, 10.0, 0.0, 100000000.0, 12,
00224                           false, true, "Cookie min energy", _("Cookie min energy") );
00225 
00226   all_double_options[OPTION_COOKIE_FREQUENCY] = 
00227     option_info_t<double>(ENTRY_DOUBLE, PAGE_EXTRAS, 0.03, 0.0, 100000000.0, 12,
00228                           false, true, "Cookie frequency [cookies per second]",
00229                           _("Cookie frequency [cookies per second]") );
00230 
00231   all_double_options[OPTION_COOKIE_RADIUS] = 
00232     option_info_t<double>(ENTRY_DOUBLE, PAGE_EXTRAS, 0.3, 0.01, 1.0, 12,
00233                           false, true, "Cookie radius", _("Cookie radius") );
00234 
00235   all_long_options[OPTION_COOKIE_COLOUR] = 
00236     option_info_t<long>(ENTRY_HEX, PAGE_EXTRAS, 0x35d715, 0x000000, 0xffffff, 6,
00237                         false, false, "Cookie colour", _("Cookie colour") );
00238 
00239   all_double_options[OPTION_MINE_MAX_ENERGY] = 
00240     option_info_t<double>(ENTRY_DOUBLE, PAGE_EXTRAS, 25.0, 0.0, 100000000.0, 12,
00241                           false, true, "Mine max energy", _("Mine max energy") );
00242 
00243   all_double_options[OPTION_MINE_MIN_ENERGY] = 
00244     option_info_t<double>(ENTRY_DOUBLE, PAGE_EXTRAS, 15.0, 0.0, 100000000.0, 12,
00245                           false, true, "Mine min energy", _("Mine min energy") );
00246 
00247   all_double_options[OPTION_MINE_FREQUENCY] = 
00248     option_info_t<double>(ENTRY_DOUBLE, PAGE_EXTRAS, 0.06, 0.0, 100000000.0, 12,
00249                           false, true, "Mine frequency [mines per second]",
00250                           _("Mine frequency [mines per second]") );
00251 
00252   all_double_options[OPTION_MINE_RADIUS] = 
00253     option_info_t<double>(ENTRY_DOUBLE, PAGE_EXTRAS, 0.3, 0.01, 1.0, 12,
00254                           false, true, "Mine radius", _("Mine radius") );
00255 
00256   all_long_options[OPTION_MINE_COLOUR] = 
00257     option_info_t<long>(ENTRY_HEX, PAGE_EXTRAS, 0xff0000, 0x000000, 0xffffff, 6,
00258                         false, false, "Mine colour", _("Mine colour") );
00259 
00260   all_double_options[OPTION_ARENA_SCALE] = 
00261     option_info_t<double>(ENTRY_DOUBLE, PAGE_MISC, 1.0, 0.001, 1000, 12,
00262                           false, true, "Arena scale", _("Arena scale") );
00263 
00264   all_double_options[OPTION_FAST_FORWARD_FACTOR] = 
00265     option_info_t<double>(ENTRY_DOUBLE, PAGE_MISC, 5.0, 0.001, 1000, 12,
00266                           false, false, "Fast forward factor",
00267                           _("Fast forward factor") );
00268 
00269   all_double_options[OPTION_TIMEOUT] = 
00270     option_info_t<double>(ENTRY_DOUBLE, PAGE_TIME, 120.0, 1.0, 100000000.0, 12,
00271                           false, true, "Timeout [s]", _("Timeout [s]") );
00272 
00273   all_double_options[OPTION_MAX_TIMESTEP] = 
00274     option_info_t<double>(ENTRY_DOUBLE, PAGE_TIME, 0.1, 0.001, 1.0, 12,
00275                           false, false, "Max timestep", _("Max timestep") );
00276 
00277   all_double_options[OPTION_TIMESCALE] = 
00278     option_info_t<double>(ENTRY_DOUBLE, PAGE_TIME, 1.0, 0.01, 100.0, 12,
00279                           false, false, "Timescale", _("Timescale") );
00280 
00281   all_double_options[OPTION_UPDATE_INTERVAL] = 
00282     option_info_t<double>(ENTRY_DOUBLE, PAGE_TIME, 0.050, 0.010, 1.0, 12,
00283                           false, false, "Update interval [s]",
00284                           _("Update interval [s]") );
00285 
00286   all_double_options[OPTION_ROBOT_STARTUP_TIME] = 
00287     option_info_t<double>(ENTRY_DOUBLE, PAGE_TIME, 1.0, 0.050, 1000000.0, 12,
00288                           false, false, "Robot startup time [s]",
00289                           _("Robot startup time [s]") );
00290 
00291   all_double_options[OPTION_CPU_START_LIMIT] = 
00292     option_info_t<double>(ENTRY_DOUBLE, PAGE_TIME, 5.0, 0.01, 100000000.0, 12,
00293                           false, false, "Start CPU time [s]", _("Start CPU time [s]") );
00294 
00295   all_double_options[OPTION_CPU_EXTRA] = 
00296     option_info_t<double>(ENTRY_DOUBLE, PAGE_TIME, 2.5, 0.01, 100000000.0, 12,
00297                           false, false, "Extra CPU time [s]", _("Extra CPU time [s]") );
00298 
00299   all_double_options[OPTION_CPU_PERIOD] = 
00300     option_info_t<double>(ENTRY_DOUBLE, PAGE_TIME, 60.0, 1.0, 100000000.0, 12,
00301                           false, false, "Extra CPU period [s]",
00302                           _("Extra CPU period [s]") );
00303 
00304   all_double_options[OPTION_CPU_WARNING_PERCENT] = 
00305     option_info_t<double>(ENTRY_DOUBLE, PAGE_TIME, 0.9, 0.1, 1.0, 12,
00306                           false, false, "CPU time warning percentage",
00307                           _("CPU time warning percentage") );
00308 
00309   all_long_options[OPTION_LOG_EVERY_NTH_UPDATE_INTERVAL] =
00310     option_info_t<long>(ENTRY_INT, PAGE_TIME, 1, 1, 1000, 5,
00311                         false, false, "Logging frequency [Each nth update interval]",
00312                         _("Logging frequency [Each n:th update interval]") );
00313 
00314   all_long_options[OPTION_MAX_ROBOTS_ALLOWED] =
00315     option_info_t<long>(ENTRY_INT, PAGE_MISC, 120, 1, 10000, 6, false, false,
00316                         "Max robots allowed simultaneously",
00317                         _("Max robots allowed simultaneously") );
00318 
00319   all_string_options[OPTION_ROBOT_SEARCH_PATH] =
00320     option_info_t<String>(ENTRY_CHAR, PAGE_MISC, "", "", "", 1000,
00321                           false, false, "Robot search path", _("Robot search path") );
00322 
00323   all_string_options[OPTION_ARENA_SEARCH_PATH] =
00324     option_info_t<String>(ENTRY_CHAR, PAGE_MISC, "", "", "", 1000,
00325                           false, false, "Arena search path", _("Arena search path") );
00326 
00327   all_string_options[OPTION_TMP_RTB_DIR] =
00328     option_info_t<String>(ENTRY_CHAR, PAGE_MISC, "/tmp/rtb", "", "", 1000,
00329                           false, false, "Directory for temporary files",
00330                           _("Directory for temporary files") );
00331 
00332   all_long_options[OPTION_ARENA_WINDOW_SIZE_X] = 
00333     option_info_t<long>(ENTRY_INT, PAGE_SIZE_OF_WINDOWS, 350, 185, 10000, 6,
00334                         false, false, "Initial Arena window width",
00335                         _("Initial Arena window width") );
00336 
00337   all_long_options[OPTION_ARENA_WINDOW_SIZE_Y] = 
00338     option_info_t<long>(ENTRY_INT, PAGE_SIZE_OF_WINDOWS, 350, 120, 10000, 6,
00339                         false, false, "Initial Arena window height",
00340                         _("Initial Arena window height") );
00341 
00342   all_long_options[OPTION_ARENA_WINDOW_POS_X] = 
00343     option_info_t<long>(ENTRY_INT, PAGE_SIZE_OF_WINDOWS, 0, 0, 10000, 6,
00344                         false, false, "Initial Arena window x position",
00345                         _("Initial Arena window x position") );
00346 
00347   all_long_options[OPTION_ARENA_WINDOW_POS_Y] = 
00348     option_info_t<long>(ENTRY_INT, PAGE_SIZE_OF_WINDOWS, 0, 0, 10000, 6,
00349                         false, false, "Initial Arena window y position",
00350                         _("Initial Arena window y position") );
00351 
00352   all_long_options[OPTION_CONTROL_WINDOW_POS_X] = 
00353     option_info_t<long>(ENTRY_INT, PAGE_SIZE_OF_WINDOWS, 0, 0, 10000, 6,
00354                         false, false, "Initial Control window x position",
00355                         _("Initial Control window x position") );
00356 
00357   all_long_options[OPTION_CONTROL_WINDOW_POS_Y] = 
00358     option_info_t<long>(ENTRY_INT, PAGE_SIZE_OF_WINDOWS, 0, 0, 10000, 6,
00359                         false, false, "Initial Control window y position",
00360                         _("Initial Control window y position") );
00361 
00362   all_long_options[OPTION_MESSAGE_WINDOW_SIZE_X] = 
00363     option_info_t<long>(ENTRY_INT, PAGE_SIZE_OF_WINDOWS, 394, 300, 10000, 6,
00364                         false, false, "Initial Message window width",
00365                         _("Initial Message window width") );
00366 
00367   all_long_options[OPTION_MESSAGE_WINDOW_SIZE_Y] = 
00368     option_info_t<long>(ENTRY_INT, PAGE_SIZE_OF_WINDOWS, 210, 110, 10000, 6,
00369                         false, false, "Initial Message window height",
00370                         _("Initial Message window height") );
00371 
00372   all_long_options[OPTION_MESSAGE_WINDOW_POS_X] = 
00373     option_info_t<long>(ENTRY_INT, PAGE_SIZE_OF_WINDOWS, 0, 0, 10000, 6,
00374                         false, false, "Initial Message window x position",
00375                         _("Initial Message window x position") );
00376 
00377   all_long_options[OPTION_MESSAGE_WINDOW_POS_Y] = 
00378     option_info_t<long>(ENTRY_INT, PAGE_SIZE_OF_WINDOWS, 0, 0, 10000, 6,
00379                         false, false, "Initial Message window y position",
00380                         _("Initial Message window y position") );
00381 
00382   all_long_options[OPTION_SCORE_WINDOW_SIZE_X] = 
00383     option_info_t<long>(ENTRY_INT, PAGE_SIZE_OF_WINDOWS, 394, 175, 10000, 6,
00384                         false, false, "Initial Score window width",
00385                         _("Initial Score window width") );
00386 
00387   all_long_options[OPTION_SCORE_WINDOW_SIZE_Y] = 
00388     option_info_t<long>(ENTRY_INT, PAGE_SIZE_OF_WINDOWS, 374, 80, 10000, 6,
00389                         false, false, "Initial Score window height",
00390                         _("Initial Score window height") );
00391 
00392   all_long_options[OPTION_SCORE_WINDOW_POS_X] = 
00393     option_info_t<long>(ENTRY_INT, PAGE_SIZE_OF_WINDOWS, 0, 0, 10000, 6,
00394                         false, false, "Initial Score window x position",
00395                         _("Initial Score window x position") );
00396 
00397   all_long_options[OPTION_SCORE_WINDOW_POS_Y] = 
00398     option_info_t<long>(ENTRY_INT, PAGE_SIZE_OF_WINDOWS, 0, 0, 10000, 6,
00399                         false, false, "Initial Score window y position",
00400                         _("Initial Score window y position") );
00401 
00402   all_long_options[OPTION_STATISTICS_WINDOW_SIZE_X] = 
00403     option_info_t<long>(ENTRY_INT, PAGE_SIZE_OF_WINDOWS, 499, 320, 10000, 6,
00404                         false, false, "Initial Statistics window width",
00405                         _("Initial Statistics window width") );
00406 
00407   all_long_options[OPTION_STATISTICS_WINDOW_SIZE_Y] = 
00408     option_info_t<long>(ENTRY_INT, PAGE_SIZE_OF_WINDOWS, 428, 130, 10000, 6,
00409                         false, false, "Initial Statistics window height",
00410                         _("Initial Statistics window height") );
00411 
00412 #ifndef NO_GRAPHICS
00413   optionswindow_p = NULL;
00414 #endif
00415 }

Options::~Options  )  [inline]
 

Definition at line 214 of file Options.h.

00214 {}


Member Function Documentation

void Options::broadcast_opts  ) 
 

Definition at line 418 of file Options.cc.

References DEBUG_LEVEL, GAME_OPTION, get_d(), get_l(), OPTION_ROBOT_CANNON_MAX_ROTATE, OPTION_ROBOT_ENERGY_LEVELS, OPTION_ROBOT_MAX_ACCELERATION, OPTION_ROBOT_MAX_ENERGY, OPTION_ROBOT_MAX_ROTATE, OPTION_ROBOT_MIN_ACCELERATION, OPTION_ROBOT_RADAR_MAX_ROTATE, OPTION_ROBOT_START_ENERGY, OPTION_SEND_ROBOT_COORDINATES, OPTION_SHOT_ENERGY_INCREASE_SPEED, OPTION_SHOT_MAX_ENERGY, OPTION_SHOT_MIN_ENERGY, OPTION_SHOT_SPEED, OPTION_TIMEOUT, realtime_arena, ROBOT_CANNON_MAX_ROTATE, ROBOT_ENERGY_LEVELS, ROBOT_MAX_ACCELERATION, ROBOT_MAX_ENERGY, ROBOT_MAX_ROTATE, ROBOT_MIN_ACCELERATION, ROBOT_RADAR_MAX_ROTATE, ROBOT_START_ENERGY, SEND_ROBOT_COORDINATES, SHOT_ENERGY_INCREASE_SPEED, SHOT_MAX_ENERGY, SHOT_MIN_ENERGY, SHOT_SPEED, the_arena, and TIMEOUT.

Referenced by ArenaRealTime::start_game().

00419 {
00420   realtime_arena.broadcast( GAME_OPTION, ROBOT_MAX_ROTATE, get_d(OPTION_ROBOT_MAX_ROTATE));
00421   realtime_arena.broadcast( GAME_OPTION, ROBOT_CANNON_MAX_ROTATE, get_d(OPTION_ROBOT_CANNON_MAX_ROTATE));
00422   realtime_arena.broadcast( GAME_OPTION, ROBOT_RADAR_MAX_ROTATE, get_d(OPTION_ROBOT_RADAR_MAX_ROTATE));
00423 
00424   realtime_arena.broadcast( GAME_OPTION, ROBOT_MAX_ACCELERATION, get_d(OPTION_ROBOT_MAX_ACCELERATION));
00425   realtime_arena.broadcast( GAME_OPTION, ROBOT_MIN_ACCELERATION, get_d(OPTION_ROBOT_MIN_ACCELERATION));
00426 
00427   realtime_arena.broadcast( GAME_OPTION, ROBOT_START_ENERGY, get_d(OPTION_ROBOT_START_ENERGY));
00428   realtime_arena.broadcast( GAME_OPTION, ROBOT_MAX_ENERGY, get_d(OPTION_ROBOT_MAX_ENERGY));
00429   realtime_arena.broadcast( GAME_OPTION, ROBOT_ENERGY_LEVELS, (double)get_l(OPTION_ROBOT_ENERGY_LEVELS));
00430 
00431   realtime_arena.broadcast( GAME_OPTION, SHOT_SPEED, get_d(OPTION_SHOT_SPEED));
00432   realtime_arena.broadcast( GAME_OPTION, SHOT_MIN_ENERGY, get_d(OPTION_SHOT_MIN_ENERGY));
00433   realtime_arena.broadcast( GAME_OPTION, SHOT_MAX_ENERGY, get_d(OPTION_SHOT_MAX_ENERGY));
00434   realtime_arena.broadcast( GAME_OPTION, SHOT_ENERGY_INCREASE_SPEED, get_d(OPTION_SHOT_ENERGY_INCREASE_SPEED));
00435 
00436   realtime_arena.broadcast( GAME_OPTION, TIMEOUT, get_d(OPTION_TIMEOUT));  
00437 
00438   realtime_arena.broadcast( GAME_OPTION, DEBUG_LEVEL, (double)the_arena.get_debug_level());  
00439   realtime_arena.broadcast( GAME_OPTION, SEND_ROBOT_COORDINATES, (double)get_l(OPTION_SEND_ROBOT_COORDINATES));  
00440 }

Here is the call graph for this function:

void Options::close_optionswindow  ) 
 

Definition at line 663 of file Options.cc.

References optionswindow_p.

Referenced by OptionsWindow::cancel(), OptionsWindow::delete_event_occured(), and OptionsWindow::ok().

00664 {
00665   if( NULL != optionswindow_p )
00666     {
00667       delete optionswindow_p;
00668       optionswindow_p = NULL;
00669     }
00670 }

option_info_t<double>* Options::get_all_double_options  )  [inline]
 

Definition at line 235 of file Options.h.

Referenced by OptionsWindow::default_opts(), OptionsWindow::OptionsWindow(), ArenaReplay::parse_log_line(), OptionsWindow::set_all_options(), and OptionsWindow::update_all_gtk_entries().

00235 { return all_double_options; }

option_info_t<long>* Options::get_all_long_options  )  [inline]
 

Definition at line 236 of file Options.h.

Referenced by OptionsWindow::default_opts(), OptionsWindow::grab_windows(), OptionsWindow::OptionsWindow(), ArenaReplay::parse_log_line(), OptionsWindow::set_all_options(), and OptionsWindow::update_all_gtk_entries().

00236 { return all_long_options; }

option_info_t<String>* Options::get_all_string_options  )  [inline]
 

Definition at line 237 of file Options.h.

Referenced by OptionsWindow::default_opts(), OptionsWindow::OptionsWindow(), ArenaReplay::parse_log_line(), OptionsWindow::set_all_options(), and OptionsWindow::update_all_gtk_entries().

00237 { return all_string_options; }

double Options::get_d option_double_t  option  )  [inline]
 

Definition at line 217 of file Options.h.

Referenced by ArenaRealTime::add_cookie(), ArenaRealTime::add_mine(), bounce_on_robot(), Robot::bounce_on_wall(), broadcast_opts(), Robot::change_energy(), ArenaReplay::change_speed(), Robot::change_velocity(), Robot::check_process(), ArenaRealTime::check_robots(), Robot::draw_radar_and_cannon(), ArenaReplay::get_length_of_current_game(), Robot::get_messages(), ArenaBase::get_shooting_penalty(), main(), ArenaRealTime::parse_arena_file(), ArenaReplay::parse_log_line(), Robot::Robot(), Robot::set_values_at_process_start_up(), Robot::set_values_before_game(), shot_collision(), ArenaRealTime::start_game(), ArenaRealTime::start_sequence(), ArenaRealTime::timeout_function(), Robot::update_radar_and_cannon(), and ArenaBase::update_timer().

00218     { return all_double_options[option].value; }

long Options::get_l option_long_t  option  )  [inline]
 

Definition at line 219 of file Options.h.

Referenced by broadcast_opts(), main(), Gui::open_arenawindow(), Gui::open_messagewindow(), Gui::open_scorewindow(), Gui::open_statisticswindow(), StartTournamentWindow::save_tournament_file(), Gui::set_colours(), StartTournamentWindow::set_entry(), Shape::Shape(), StartTournamentWindow::start(), ArenaRealTime::update(), Robot::update_radar_and_cannon(), and ArenaRealTime::update_robots().

00220     { return all_long_options[option].value; }

option_return_t Options::get_option_from_string const String option_name  ) 
 

Definition at line 614 of file Options.cc.

References all_double_options, all_long_options, all_string_options, ENTRY_CHAR, ENTRY_DOUBLE, ENTRY_INT, and option_info_t< T >::label.

Referenced by ArenaReplay::parse_log_line().

00615 {
00616   option_return_t result( ENTRY_INT, -1 );
00617 
00618   for( int i=0; i<LAST_DOUBLE_OPTION; i++ )
00619     if( option_name == all_double_options[i].label )
00620       result = option_return_t( ENTRY_DOUBLE, i );
00621   for( int i=0; i<LAST_LONG_OPTION; i++ )
00622     if( option_name == all_long_options[i].label )
00623       result = option_return_t( all_long_options[i].datatype, i );
00624   for( int i=0; i<LAST_STRING_OPTION; i++ )
00625     if( option_name == all_string_options[i].label )
00626       result = option_return_t( ENTRY_CHAR, i );
00627 
00628   return result;
00629 }

void Options::get_options_from_rtbrc  ) 
 

Definition at line 471 of file Options.cc.

References read_options_file().

Referenced by parse_command_line().

00472 {
00473   char* home_dir;
00474   if( NULL == ( home_dir = getenv("HOME") ) )
00475     return;
00476 
00477   String resource_file = String(home_dir) + "/.rtbrc";
00478   read_options_file(resource_file,true);
00479 }

Here is the call graph for this function:

OptionsWindow* Options::get_optionswindow_p  )  [inline]
 

Definition at line 242 of file Options.h.

00243     { return optionswindow_p; }

const String Options::get_s option_string_t  option  )  [inline]
 

Definition at line 221 of file Options.h.

Referenced by create_tmp_rtb_dir(), Robot::get_default_non_blocking_state(), read_dirs_from_system(), Robot::set_non_blocking_state(), StartTournamentWindow::start(), and StartTournamentWindow::StartTournamentWindow().

00222     { return all_string_options[option].value.chars(); }

bool Options::is_optionswindow_up  ) 
 

Definition at line 634 of file Options.cc.

Referenced by save_all_options_to_file().

00635 {
00636   if( NULL == optionswindow_p )
00637     return false;
00638 
00639   return true;
00640 }

void Options::log_all_options  ) 
 

Definition at line 443 of file Options.cc.

References all_double_options, all_long_options, all_string_options, option_info_t< T >::datatype, option_info_t< T >::log_option, and realtime_arena.

Referenced by ArenaRealTime::start_tournament().

00444 {
00445   for(int i=0;i<LAST_DOUBLE_OPTION;i++)
00446     if( all_double_options[i].log_option )
00447       realtime_arena.print_to_logfile( 'O', (int)'D', 
00448                                   (all_double_options[i].label + ":").chars(),
00449                                   all_double_options[i].value );
00450                         
00451   for(int i=0;i<LAST_LONG_OPTION;i++)
00452     if( all_long_options[i].log_option )
00453       {
00454         if( all_long_options[i].datatype == ENTRY_INT )
00455           realtime_arena.print_to_logfile( 'O', (int)'L',
00456                                       (all_long_options[i].label + ":").chars(),
00457                                       all_long_options[i].value );
00458         if( all_long_options[i].datatype == ENTRY_HEX )
00459           realtime_arena.print_to_logfile( 'O', (int)'H',
00460                                       (all_long_options[i].label + ":").chars(),
00461                                       all_long_options[i].value );
00462       }
00463   for(int i=0;i<LAST_STRING_OPTION;i++)
00464     if( all_string_options[i].log_option )
00465       realtime_arena.print_to_logfile( 'O', (int)'S',
00466                                   (all_string_options[i].label + ":").chars(),
00467                                   all_string_options[i].value.chars() );
00468 }

void Options::open_optionswindow  ) 
 

Definition at line 643 of file Options.cc.

References ArenaController::is_started(), NO_STATE, NOT_STARTED, optionswindow_p, the_arena, and the_arena_controller.

Referenced by ControlWindow::options_clicked().

00644 {
00645   bool allowed = false;
00646 
00647   if( the_arena_controller.is_started() )
00648     {
00649       if( ( the_arena.get_game_mode() == ArenaBase::COMPETITION_MODE &&
00650             ( the_arena.get_state() == NO_STATE ||
00651               the_arena.get_state() == NOT_STARTED ||
00652               the_arena.get_state() == FINISHED ) ) ||
00653           ( the_arena.get_game_mode() != ArenaBase::COMPETITION_MODE ) )
00654         allowed = true;
00655     }
00656   if( ( !the_arena_controller.is_started() || allowed ) &&
00657       NULL == optionswindow_p )
00658     optionswindow_p = 
00659       new OptionsWindow( -1, -1, -1, -1 );
00660 }

Here is the call graph for this function:

void Options::read_options_file String  file_string,
const bool  as_default
 

Definition at line 482 of file Options.cc.

References all_double_options, all_long_options, all_string_options, String::chars(), option_info_t< T >::datatype, option_info_t< T >::default_value, get_segment(), option_info_t< T >::label, max, min, str2hex(), and option_info_t< T >::value.

Referenced by get_options_from_rtbrc(), OptionsWindow::load_options(), and parse_command_line().

00483 {
00484   ifstream file(file_string.chars());
00485   if( !file )
00486     return;
00487 
00488   for(;;)
00489     {
00490       char temp;
00491       char buffer[1000];
00492       bool option_found_flag = false;
00493 
00494       file >> ws;
00495       file.get(buffer,100,':');
00496       file.get(temp);
00497       String option_name(buffer);
00498       if(option_name == "")
00499         break;
00500 
00501       for(int i=0;i<LAST_DOUBLE_OPTION;i++)
00502         if(option_name == all_double_options[i].label )
00503           {
00504             double option_value;
00505             file >> option_value;
00506             //file.get(buffer,100,'\n');
00507             option_value = min( option_value,
00508                                 all_double_options[i].max_value );
00509             option_value = max( option_value,
00510                                 all_double_options[i].min_value );
00511             all_double_options[i].value = option_value;
00512             if(as_default)
00513               all_double_options[i].default_value = option_value;
00514             option_found_flag = true;
00515                         
00516           }
00517 
00518       for(int i=0;i<LAST_LONG_OPTION;i++)
00519         if(option_name == all_long_options[i].label )
00520           {
00521             long option_value = 0;
00522             if( all_long_options[i].datatype == ENTRY_INT )
00523               file >> option_value;
00524             if( all_long_options[i].datatype == ENTRY_HEX )
00525               {
00526                 String temp_string;
00527                 file >> temp_string;
00528                                                         
00529                 while( temp_string[0] == ' ' )
00530                   temp_string = get_segment(temp_string,1,-1);
00531                 option_value = str2hex(temp_string);
00532               }
00533             //file.get(buffer,100,'\n');
00534             option_value = min( option_value,
00535                                 all_long_options[i].max_value );
00536             option_value = max( option_value,
00537                                 all_long_options[i].min_value );
00538             all_long_options[i].value = option_value;
00539             if(as_default)
00540               all_long_options[i].default_value = option_value;
00541             option_found_flag = true;
00542           }
00543 
00544       for(int i=0;i<LAST_STRING_OPTION;i++)
00545         if(option_name == all_string_options[i].label )
00546           {
00547             String option_value;
00548             file >> option_value;
00549             while( option_value[0] == ' ' )
00550               option_value = get_segment(option_value,1,-1);
00551             //file.get(buffer,100,'\n');
00552             all_string_options[i].value = option_value;
00553             if(as_default)
00554               all_string_options[i].default_value = option_value;
00555             option_found_flag = true;
00556           }
00557      // if(!option_found_flag)
00558      //   file.get(buffer,1000,'\n');  
00559          
00560     } 
00561 }

Here is the call graph for this function:

void Options::save_all_options_to_file String  filename,
const bool  as_default
 

Definition at line 564 of file Options.cc.

References all_double_options, all_long_options, all_string_options, String::chars(), option_info_t< T >::datatype, hex2str(), is_optionswindow_up(), option_info_t< T >::label, no_graphics, optionswindow_p, OptionsWindow::set_all_options(), and option_info_t< T >::value.

Referenced by OptionsWindow::save_def(), and OptionsWindow::save_options().

00565 {
00566   if(as_default)
00567     {
00568       char* home_dir;
00569       if( NULL == ( home_dir = getenv("HOME") ) )
00570         return;
00571 
00572       filename = String(home_dir) + "/.rtbrc";
00573     }
00574 
00575   ofstream file(filename.chars(), ios::out);
00576 
00577   if( !file )
00578     {
00579       cerr << "Couldn't open save file" << endl;
00580       return;
00581     }
00582 
00583 #ifndef NO_GRAPHICS
00584   if( !no_graphics && is_optionswindow_up() )
00585     optionswindow_p->set_all_options();
00586 #endif
00587 
00588   for(int i=0;i<LAST_DOUBLE_OPTION;i++){
00589     file << all_double_options[i].label << ": " << all_double_options[i].value << endl;
00590         //cout << all_double_options[i].label << ": " << all_double_options[i].value << endl;
00591   }
00592   
00593   
00594   for(int i=0;i<LAST_LONG_OPTION;i++)
00595     {
00596       if(all_long_options[i].datatype == ENTRY_INT){
00597         file << all_long_options[i].label << ": " << all_long_options[i].value << endl;
00598                 //cout << all_long_options[i].label << ": " << all_long_options[i].value << endl;
00599           }
00600           
00601       if(all_long_options[i].datatype == ENTRY_HEX){ 
00602         file << all_long_options[i].label << ": " << hex2str(all_long_options[i].value) << endl;
00603                 //cout << all_long_options[i].label << ": " << hex2str(all_long_options[i].value) << endl;
00604           }
00605     }
00606 
00607   for(int i=0;i<LAST_STRING_OPTION;i++){
00608     file << all_string_options[i].label << ": " << all_string_options[i].value << endl;
00609         //cout << all_string_options[i].label << ": " << all_string_options[i].value << endl;
00610   }
00611 }

Here is the call graph for this function:


Field Documentation

option_info_t<double> Options::all_double_options[LAST_DOUBLE_OPTION] [private]
 

Definition at line 250 of file Options.h.

Referenced by get_option_from_string(), log_all_options(), Options(), read_options_file(), and save_all_options_to_file().

option_info_t<long> Options::all_long_options[LAST_LONG_OPTION] [private]
 

Definition at line 251 of file Options.h.

Referenced by get_option_from_string(), log_all_options(), Options(), read_options_file(), and save_all_options_to_file().

option_info_t<String> Options::all_string_options[LAST_STRING_OPTION] [private]
 

Definition at line 253 of file Options.h.

Referenced by get_option_from_string(), log_all_options(), Options(), read_options_file(), and save_all_options_to_file().

OptionsWindow* Options::optionswindow_p [private]
 

Definition at line 257 of file Options.h.

Referenced by close_optionswindow(), open_optionswindow(), Options(), and save_all_options_to_file().


The documentation for this class was generated from the following files:
Generated on Fri Oct 15 15:50:20 2004 for Real Time Battle by  doxygen 1.3.9.1