summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Worthe <justin.worthe@entelect.co.za>2014-07-31 13:58:22 +0200
committerJustin Worthe <justin.worthe@entelect.co.za>2014-07-31 13:58:22 +0200
commit98ba22e7064db57316dfff1ae127feb3dceeb73e (patch)
tree1f7fe3065f804e491f558650285e8c6d05fc914b
Initial commitHEADmain
-rw-r--r--docs/html/_allegro_wrappers_8cpp.html110
-rw-r--r--docs/html/_allegro_wrappers_8cpp_source.html223
-rw-r--r--docs/html/_allegro_wrappers_8h.html127
-rw-r--r--docs/html/_allegro_wrappers_8h_source.html159
-rw-r--r--docs/html/_bitmap_store_8cpp.html110
-rw-r--r--docs/html/_bitmap_store_8cpp_source.html345
-rw-r--r--docs/html/_bitmap_store_8h.html125
-rw-r--r--docs/html/_bitmap_store_8h_source.html156
-rw-r--r--docs/html/_car_8cpp.html110
-rw-r--r--docs/html/_car_8cpp_source.html182
-rw-r--r--docs/html/_car_8h.html121
-rw-r--r--docs/html/_car_8h_source.html134
-rw-r--r--docs/html/_checkpoint_8cpp.html110
-rw-r--r--docs/html/_checkpoint_8cpp_source.html137
-rw-r--r--docs/html/_checkpoint_8h.html119
-rw-r--r--docs/html/_checkpoint_8h_source.html132
-rw-r--r--docs/html/_collision_detector_8cpp.html110
-rw-r--r--docs/html/_collision_detector_8cpp_source.html171
-rw-r--r--docs/html/_collision_detector_8h.html123
-rw-r--r--docs/html/_collision_detector_8h_source.html137
-rw-r--r--docs/html/_colour_store_8cpp.html110
-rw-r--r--docs/html/_colour_store_8cpp_source.html132
-rw-r--r--docs/html/_colour_store_8h.html119
-rw-r--r--docs/html/_colour_store_8h_source.html132
-rw-r--r--docs/html/_config_8cpp.html110
-rw-r--r--docs/html/_config_8cpp_source.html212
-rw-r--r--docs/html/_config_8h.html121
-rw-r--r--docs/html/_config_8h_source.html158
-rw-r--r--docs/html/_destroyed_object_popup_8cpp.html110
-rw-r--r--docs/html/_destroyed_object_popup_8cpp_source.html113
-rw-r--r--docs/html/_destroyed_object_popup_8h.html119
-rw-r--r--docs/html/_destroyed_object_popup_8h_source.html125
-rw-r--r--docs/html/_enemy_car_8cpp.html110
-rw-r--r--docs/html/_enemy_car_8cpp_source.html211
-rw-r--r--docs/html/_enemy_car_8h.html123
-rw-r--r--docs/html/_enemy_car_8h_source.html148
-rw-r--r--docs/html/_game_8cpp.html110
-rw-r--r--docs/html/_game_8cpp_source.html292
-rw-r--r--docs/html/_game_8h.html133
-rw-r--r--docs/html/_game_8h_source.html177
-rw-r--r--docs/html/_game_object_8cpp.html110
-rw-r--r--docs/html/_game_object_8cpp_source.html134
-rw-r--r--docs/html/_game_object_8h.html119
-rw-r--r--docs/html/_game_object_8h_source.html139
-rw-r--r--docs/html/_game_panel_8cpp.html110
-rw-r--r--docs/html/_game_panel_8cpp_source.html240
-rw-r--r--docs/html/_game_panel_8h.html127
-rw-r--r--docs/html/_game_panel_8h_source.html151
-rw-r--r--docs/html/_info_panel_8cpp.html110
-rw-r--r--docs/html/_info_panel_8cpp_source.html218
-rw-r--r--docs/html/_info_panel_8h.html128
-rw-r--r--docs/html/_info_panel_8h_source.html159
-rw-r--r--docs/html/_keyboard_handler_8cpp.html110
-rw-r--r--docs/html/_keyboard_handler_8cpp_source.html221
-rw-r--r--docs/html/_keyboard_handler_8h.html120
-rw-r--r--docs/html/_keyboard_handler_8h_source.html148
-rw-r--r--docs/html/_level_reader_8cpp.html110
-rw-r--r--docs/html/_level_reader_8cpp_source.html161
-rw-r--r--docs/html/_level_reader_8h.html129
-rw-r--r--docs/html/_level_reader_8h_source.html146
-rw-r--r--docs/html/_limited_time_object_8cpp.html110
-rw-r--r--docs/html/_limited_time_object_8cpp_source.html123
-rw-r--r--docs/html/_limited_time_object_8h.html120
-rw-r--r--docs/html/_limited_time_object_8h_source.html128
-rw-r--r--docs/html/_maze_8cpp.html110
-rw-r--r--docs/html/_maze_8cpp_source.html184
-rw-r--r--docs/html/_maze_8h.html119
-rw-r--r--docs/html/_maze_8h_source.html142
-rw-r--r--docs/html/_maze_math_8cpp.html110
-rw-r--r--docs/html/_maze_math_8cpp_source.html125
-rw-r--r--docs/html/_maze_math_8h.html118
-rw-r--r--docs/html/_maze_math_8h_source.html126
-rw-r--r--docs/html/_player_car_8cpp.html110
-rw-r--r--docs/html/_player_car_8cpp_source.html194
-rw-r--r--docs/html/_player_car_8h.html124
-rw-r--r--docs/html/_player_car_8h_source.html149
-rw-r--r--docs/html/_rock_8cpp.html110
-rw-r--r--docs/html/_rock_8cpp_source.html113
-rw-r--r--docs/html/_rock_8h.html119
-rw-r--r--docs/html/_rock_8h_source.html122
-rw-r--r--docs/html/_screen_8cpp.html110
-rw-r--r--docs/html/_screen_8cpp_source.html266
-rw-r--r--docs/html/_screen_8h.html135
-rw-r--r--docs/html/_screen_8h_source.html177
-rw-r--r--docs/html/_screen_panel_8cpp.html110
-rw-r--r--docs/html/_screen_panel_8cpp_source.html131
-rw-r--r--docs/html/_screen_panel_8h.html127
-rw-r--r--docs/html/_screen_panel_8h_source.html150
-rw-r--r--docs/html/_smokescreen_8cpp.html110
-rw-r--r--docs/html/_smokescreen_8cpp_source.html113
-rw-r--r--docs/html/_smokescreen_8h.html119
-rw-r--r--docs/html/_smokescreen_8h_source.html124
-rw-r--r--docs/html/annotated.html139
-rw-r--r--docs/html/bc_s.pngbin0 -> 705 bytes
-rw-r--r--docs/html/car.PNGbin0 -> 515 bytes
-rw-r--r--docs/html/carBig.PNGbin0 -> 4104 bytes
-rw-r--r--docs/html/class_allegro_drawing_init-members.html115
-rw-r--r--docs/html/class_allegro_drawing_init.html241
-rw-r--r--docs/html/class_allegro_init-members.html114
-rw-r--r--docs/html/class_allegro_init.html225
-rw-r--r--docs/html/class_allegro_keyboard_init-members.html115
-rw-r--r--docs/html/class_allegro_keyboard_init.html247
-rw-r--r--docs/html/class_bad_resolution.html124
-rw-r--r--docs/html/class_bitmap_store-members.html138
-rw-r--r--docs/html/class_bitmap_store.html665
-rw-r--r--docs/html/class_car-members.html126
-rw-r--r--docs/html/class_car.html302
-rw-r--r--docs/html/class_car.pngbin0 -> 687 bytes
-rw-r--r--docs/html/class_checkpoint-members.html127
-rw-r--r--docs/html/class_checkpoint.html301
-rw-r--r--docs/html/class_checkpoint.pngbin0 -> 408 bytes
-rw-r--r--docs/html/class_collision_detector-members.html115
-rw-r--r--docs/html/class_collision_detector.html360
-rw-r--r--docs/html/class_colour_store-members.html117
-rw-r--r--docs/html/class_colour_store.html297
-rw-r--r--docs/html/class_config-members.html130
-rw-r--r--docs/html/class_config.html681
-rw-r--r--docs/html/class_destroyed_object_popup-members.html125
-rw-r--r--docs/html/class_destroyed_object_popup.html215
-rw-r--r--docs/html/class_destroyed_object_popup.pngbin0 -> 727 bytes
-rw-r--r--docs/html/class_enemy_car-members.html138
-rw-r--r--docs/html/class_enemy_car.html480
-rw-r--r--docs/html/class_enemy_car.pngbin0 -> 508 bytes
-rw-r--r--docs/html/class_file_open_error.html125
-rw-r--r--docs/html/class_game-members.html134
-rw-r--r--docs/html/class_game.html643
-rw-r--r--docs/html/class_game_object-members.html121
-rw-r--r--docs/html/class_game_object.html421
-rw-r--r--docs/html/class_game_object.pngbin0 -> 1614 bytes
-rw-r--r--docs/html/class_game_panel-members.html131
-rw-r--r--docs/html/class_game_panel.html580
-rw-r--r--docs/html/class_game_panel.pngbin0 -> 409 bytes
-rw-r--r--docs/html/class_info_panel-members.html137
-rw-r--r--docs/html/class_info_panel.html695
-rw-r--r--docs/html/class_info_panel.pngbin0 -> 380 bytes
-rw-r--r--docs/html/class_install_failure.html124
-rw-r--r--docs/html/class_keyboard_handler-members.html130
-rw-r--r--docs/html/class_keyboard_handler.html559
-rw-r--r--docs/html/class_level_reader-members.html118
-rw-r--r--docs/html/class_level_reader.html347
-rw-r--r--docs/html/class_limited_time_object-members.html124
-rw-r--r--docs/html/class_limited_time_object.html247
-rw-r--r--docs/html/class_limited_time_object.pngbin0 -> 954 bytes
-rw-r--r--docs/html/class_maze-members.html125
-rw-r--r--docs/html/class_maze.html450
-rw-r--r--docs/html/class_maze_math-members.html115
-rw-r--r--docs/html/class_maze_math.html288
-rw-r--r--docs/html/class_player_car-members.html137
-rw-r--r--docs/html/class_player_car.html435
-rw-r--r--docs/html/class_player_car.pngbin0 -> 499 bytes
-rw-r--r--docs/html/class_rock-members.html122
-rw-r--r--docs/html/class_rock.html184
-rw-r--r--docs/html/class_rock.pngbin0 -> 373 bytes
-rw-r--r--docs/html/class_screen-members.html133
-rw-r--r--docs/html/class_screen.html699
-rw-r--r--docs/html/class_screen_panel-members.html122
-rw-r--r--docs/html/class_screen_panel.html508
-rw-r--r--docs/html/class_screen_panel.pngbin0 -> 517 bytes
-rw-r--r--docs/html/class_smokescreen-members.html125
-rw-r--r--docs/html/class_smokescreen.html208
-rw-r--r--docs/html/class_smokescreen.pngbin0 -> 636 bytes
-rw-r--r--docs/html/classes.html142
-rw-r--r--docs/html/closed.pngbin0 -> 126 bytes
-rw-r--r--docs/html/data_tests_8cpp.html305
-rw-r--r--docs/html/data_tests_8cpp_source.html261
-rw-r--r--docs/html/doxygen.css946
-rw-r--r--docs/html/doxygen.pngbin0 -> 3942 bytes
-rw-r--r--docs/html/files.html159
-rw-r--r--docs/html/functions.html377
-rw-r--r--docs/html/functions_0x61.html154
-rw-r--r--docs/html/functions_0x62.html166
-rw-r--r--docs/html/functions_0x63.html197
-rw-r--r--docs/html/functions_0x64.html203
-rw-r--r--docs/html/functions_0x65.html160
-rw-r--r--docs/html/functions_0x66.html167
-rw-r--r--docs/html/functions_0x67.html186
-rw-r--r--docs/html/functions_0x68.html148
-rw-r--r--docs/html/functions_0x69.html157
-rw-r--r--docs/html/functions_0x6b.html148
-rw-r--r--docs/html/functions_0x6c.html157
-rw-r--r--docs/html/functions_0x6d.html163
-rw-r--r--docs/html/functions_0x6f.html156
-rw-r--r--docs/html/functions_0x70.html172
-rw-r--r--docs/html/functions_0x72.html178
-rw-r--r--docs/html/functions_0x73.html199
-rw-r--r--docs/html/functions_0x75.html160
-rw-r--r--docs/html/functions_0x77.html154
-rw-r--r--docs/html/functions_0x78.html148
-rw-r--r--docs/html/functions_0x79.html148
-rw-r--r--docs/html/functions_0x7e.html175
-rw-r--r--docs/html/functions_enum.html126
-rw-r--r--docs/html/functions_eval.html162
-rw-r--r--docs/html/functions_func.html548
-rw-r--r--docs/html/functions_type.html120
-rw-r--r--docs/html/functions_vars.html483
-rw-r--r--docs/html/globals.html132
-rw-r--r--docs/html/globals_func.html132
-rw-r--r--docs/html/hierarchy.html147
-rw-r--r--docs/html/index.html101
-rw-r--r--docs/html/installdox112
-rw-r--r--docs/html/jquery.js54
-rw-r--r--docs/html/logic_tests_8cpp.html1013
-rw-r--r--docs/html/logic_tests_8cpp_source.html656
-rw-r--r--docs/html/main_8cpp.html136
-rw-r--r--docs/html/main_8cpp_source.html128
-rw-r--r--docs/html/nav_f.pngbin0 -> 159 bytes
-rw-r--r--docs/html/nav_h.pngbin0 -> 97 bytes
-rw-r--r--docs/html/open.pngbin0 -> 118 bytes
-rw-r--r--docs/html/presentation_tests_8cpp.html371
-rw-r--r--docs/html/presentation_tests_8cpp_source.html303
-rw-r--r--docs/html/search/all_5f.html487
-rw-r--r--docs/html/search/all_61.html60
-rw-r--r--docs/html/search/all_62.html81
-rw-r--r--docs/html/search/all_63.html194
-rw-r--r--docs/html/search/all_64.html155
-rw-r--r--docs/html/search/all_65.html63
-rw-r--r--docs/html/search/all_66.html70
-rw-r--r--docs/html/search/all_67.html145
-rw-r--r--docs/html/search/all_68.html26
-rw-r--r--docs/html/search/all_69.html60
-rw-r--r--docs/html/search/all_6b.html40
-rw-r--r--docs/html/search/all_6c.html75
-rw-r--r--docs/html/search/all_6d.html94
-rw-r--r--docs/html/search/all_6f.html36
-rw-r--r--docs/html/search/all_70.html92
-rw-r--r--docs/html/search/all_72.html94
-rw-r--r--docs/html/search/all_73.html169
-rw-r--r--docs/html/search/all_74.html65
-rw-r--r--docs/html/search/all_75.html49
-rw-r--r--docs/html/search/all_77.html38
-rw-r--r--docs/html/search/all_78.html26
-rw-r--r--docs/html/search/all_79.html26
-rw-r--r--docs/html/search/all_7e.html80
-rw-r--r--docs/html/search/classes_61.html35
-rw-r--r--docs/html/search/classes_62.html30
-rw-r--r--docs/html/search/classes_63.html45
-rw-r--r--docs/html/search/classes_64.html25
-rw-r--r--docs/html/search/classes_65.html25
-rw-r--r--docs/html/search/classes_66.html25
-rw-r--r--docs/html/search/classes_67.html35
-rw-r--r--docs/html/search/classes_69.html30
-rw-r--r--docs/html/search/classes_6b.html25
-rw-r--r--docs/html/search/classes_6c.html30
-rw-r--r--docs/html/search/classes_6d.html30
-rw-r--r--docs/html/search/classes_70.html25
-rw-r--r--docs/html/search/classes_72.html25
-rw-r--r--docs/html/search/classes_73.html35
-rw-r--r--docs/html/search/close.pngbin0 -> 273 bytes
-rw-r--r--docs/html/search/enums_64.html26
-rw-r--r--docs/html/search/enums_69.html26
-rw-r--r--docs/html/search/enums_73.html26
-rw-r--r--docs/html/search/enumvalues_62.html26
-rw-r--r--docs/html/search/enumvalues_63.html44
-rw-r--r--docs/html/search/enumvalues_64.html26
-rw-r--r--docs/html/search/enumvalues_65.html26
-rw-r--r--docs/html/search/enumvalues_6c.html26
-rw-r--r--docs/html/search/enumvalues_6d.html32
-rw-r--r--docs/html/search/enumvalues_70.html26
-rw-r--r--docs/html/search/enumvalues_72.html32
-rw-r--r--docs/html/search/enumvalues_73.html26
-rw-r--r--docs/html/search/enumvalues_75.html26
-rw-r--r--docs/html/search/files_61.html30
-rw-r--r--docs/html/search/files_62.html30
-rw-r--r--docs/html/search/files_63.html70
-rw-r--r--docs/html/search/files_64.html35
-rw-r--r--docs/html/search/files_65.html30
-rw-r--r--docs/html/search/files_67.html50
-rw-r--r--docs/html/search/files_69.html30
-rw-r--r--docs/html/search/files_6b.html30
-rw-r--r--docs/html/search/files_6c.html45
-rw-r--r--docs/html/search/files_6d.html45
-rw-r--r--docs/html/search/files_70.html35
-rw-r--r--docs/html/search/files_72.html30
-rw-r--r--docs/html/search/files_73.html50
-rw-r--r--docs/html/search/functions_61.html47
-rw-r--r--docs/html/search/functions_62.html41
-rw-r--r--docs/html/search/functions_63.html106
-rw-r--r--docs/html/search/functions_64.html119
-rw-r--r--docs/html/search/functions_65.html38
-rw-r--r--docs/html/search/functions_66.html47
-rw-r--r--docs/html/search/functions_67.html110
-rw-r--r--docs/html/search/functions_68.html26
-rw-r--r--docs/html/search/functions_69.html41
-rw-r--r--docs/html/search/functions_6b.html29
-rw-r--r--docs/html/search/functions_6c.html32
-rw-r--r--docs/html/search/functions_6d.html53
-rw-r--r--docs/html/search/functions_6f.html36
-rw-r--r--docs/html/search/functions_70.html38
-rw-r--r--docs/html/search/functions_72.html62
-rw-r--r--docs/html/search/functions_73.html86
-rw-r--r--docs/html/search/functions_74.html65
-rw-r--r--docs/html/search/functions_75.html37
-rw-r--r--docs/html/search/functions_77.html32
-rw-r--r--docs/html/search/functions_78.html26
-rw-r--r--docs/html/search/functions_79.html26
-rw-r--r--docs/html/search/functions_7e.html80
-rw-r--r--docs/html/search/mag_sel.pngbin0 -> 563 bytes
-rw-r--r--docs/html/search/nomatches.html12
-rw-r--r--docs/html/search/search.css233
-rw-r--r--docs/html/search/search.js740
-rw-r--r--docs/html/search/search_l.pngbin0 -> 604 bytes
-rw-r--r--docs/html/search/search_m.pngbin0 -> 158 bytes
-rw-r--r--docs/html/search/search_r.pngbin0 -> 612 bytes
-rw-r--r--docs/html/search/typedefs_62.html26
-rw-r--r--docs/html/search/variables_5f.html487
-rw-r--r--docs/html/search/variables_62.html32
-rw-r--r--docs/html/search/variables_63.html26
-rw-r--r--docs/html/search/variables_64.html26
-rw-r--r--docs/html/search/variables_65.html26
-rw-r--r--docs/html/search/variables_66.html38
-rw-r--r--docs/html/search/variables_6c.html26
-rw-r--r--docs/html/search/variables_70.html50
-rw-r--r--docs/html/search/variables_72.html32
-rw-r--r--docs/html/search/variables_73.html56
-rw-r--r--docs/html/search/variables_75.html26
-rw-r--r--docs/html/search/variables_77.html26
-rw-r--r--docs/html/tab_a.pngbin0 -> 140 bytes
-rw-r--r--docs/html/tab_b.pngbin0 -> 178 bytes
-rw-r--r--docs/html/tab_h.pngbin0 -> 192 bytes
-rw-r--r--docs/html/tab_s.pngbin0 -> 189 bytes
-rw-r--r--docs/html/tabs.css59
-rw-r--r--exe/Junction 02.ttfbin0 -> 46248 bytes
-rw-r--r--exe/Junction FONTLOG.txt32
-rw-r--r--exe/RallyX.exebin0 -> 558592 bytes
-rw-r--r--exe/allegro-5.0.3-monolith-md-debug.dllbin0 -> 7609251 bytes
-rw-r--r--exe/config.txt3
-rw-r--r--exe/level1.lvl31
-rw-r--r--exe/level2.lvl25
-rw-r--r--exe/level3.lvl57
-rw-r--r--exe/libgcc_s_dw2-1.dllbin0 -> 43008 bytes
-rw-r--r--exe/rallyx-test.exebin0 -> 948736 bytes
-rw-r--r--source/data/Config.cpp105
-rw-r--r--source/data/Config.h136
-rw-r--r--source/data/LevelReader.cpp54
-rw-r--r--source/data/LevelReader.h71
-rw-r--r--source/logic/AllegroWrappers.cpp116
-rw-r--r--source/logic/AllegroWrappers.h112
-rw-r--r--source/logic/Car.cpp75
-rw-r--r--source/logic/Car.h57
-rw-r--r--source/logic/Checkpoint.cpp30
-rw-r--r--source/logic/Checkpoint.h53
-rw-r--r--source/logic/CollisionDetector.cpp64
-rw-r--r--source/logic/CollisionDetector.h75
-rw-r--r--source/logic/DestroyedObjectPopup.cpp6
-rw-r--r--source/logic/DestroyedObjectPopup.h33
-rw-r--r--source/logic/EnemyCar.cpp104
-rw-r--r--source/logic/EnemyCar.h97
-rw-r--r--source/logic/Game.cpp185
-rw-r--r--source/logic/Game.h135
-rw-r--r--source/logic/GameObject.cpp27
-rw-r--r--source/logic/GameObject.h82
-rw-r--r--source/logic/LimitedTimeObject.cpp16
-rw-r--r--source/logic/LimitedTimeObject.h45
-rw-r--r--source/logic/Maze.cpp77
-rw-r--r--source/logic/Maze.h100
-rw-r--r--source/logic/MazeMath.cpp18
-rw-r--r--source/logic/MazeMath.h59
-rw-r--r--source/logic/PlayerCar.cpp87
-rw-r--r--source/logic/PlayerCar.h99
-rw-r--r--source/logic/Rock.cpp6
-rw-r--r--source/logic/Rock.h29
-rw-r--r--source/logic/Smokescreen.cpp6
-rw-r--r--source/logic/Smokescreen.h31
-rw-r--r--source/main.cpp21
-rw-r--r--source/presentation/BitmapStore.cpp238
-rw-r--r--source/presentation/BitmapStore.h140
-rw-r--r--source/presentation/ColourStore.cpp25
-rw-r--r--source/presentation/ColourStore.h60
-rw-r--r--source/presentation/GamePanel.cpp133
-rw-r--r--source/presentation/GamePanel.h117
-rw-r--r--source/presentation/InfoPanel.cpp111
-rw-r--r--source/presentation/InfoPanel.h140
-rw-r--r--source/presentation/KeyboardHandler.cpp114
-rw-r--r--source/presentation/KeyboardHandler.h83
-rw-r--r--source/presentation/Screen.cpp159
-rw-r--r--source/presentation/Screen.h159
-rw-r--r--source/presentation/ScreenPanel.cpp24
-rw-r--r--source/presentation/ScreenPanel.h98
-rw-r--r--tests/dataTests.cpp184
-rw-r--r--tests/logicTests.cpp685
-rw-r--r--tests/presentationTests.cpp248
381 files changed, 48956 insertions, 0 deletions
diff --git a/docs/html/_allegro_wrappers_8cpp.html b/docs/html/_allegro_wrappers_8cpp.html
new file mode 100644
index 0000000..3b59859
--- /dev/null
+++ b/docs/html/_allegro_wrappers_8cpp.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/AllegroWrappers.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/AllegroWrappers.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_allegro_wrappers_8h_source.html">AllegroWrappers.h</a>&quot;</code><br/>
+</div>
+<p><a href="_allegro_wrappers_8cpp_source.html">Go to the source code of this file.</a></p>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_allegro_wrappers_8cpp_source.html b/docs/html/_allegro_wrappers_8cpp_source.html
new file mode 100644
index 0000000..60278e3
--- /dev/null
+++ b/docs/html/_allegro_wrappers_8cpp_source.html
@@ -0,0 +1,223 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/AllegroWrappers.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/AllegroWrappers.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="_allegro_wrappers_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &quot;<a class="code" href="_allegro_wrappers_8h.html">AllegroWrappers.h</a>&quot;</span>
+<a name="l00002"></a>00002
+<a name="l00003"></a>00003 <span class="keywordtype">int</span> <a class="code" href="class_allegro_init.html#ab8d20b549d0b996dde5cdbe8acd7186c" title="Count of the current number of initialised AllegroInit objects.">AllegroInit::_initCount</a> = 0;
+<a name="l00004"></a>00004
+<a name="l00005"></a><a class="code" href="class_allegro_init.html#a14e28ffed7456b158cf919d310920af4">00005</a> <a class="code" href="class_allegro_init.html#a14e28ffed7456b158cf919d310920af4" title="Constructor calls al_init() if it is the first instance.">AllegroInit::AllegroInit</a>()
+<a name="l00006"></a>00006 {
+<a name="l00007"></a>00007 <span class="keywordflow">if</span> (<a class="code" href="class_allegro_init.html#ab8d20b549d0b996dde5cdbe8acd7186c" title="Count of the current number of initialised AllegroInit objects.">_initCount</a>==0)
+<a name="l00008"></a>00008 {
+<a name="l00009"></a>00009 <span class="keywordflow">if</span> (!al_init())
+<a name="l00010"></a>00010 {
+<a name="l00011"></a>00011 <span class="keywordflow">throw</span> <a class="code" href="class_install_failure.html" title="Exception to be thrown if any component of Allegro fails to install at runtime.">InstallFailure</a>();
+<a name="l00012"></a>00012 }
+<a name="l00013"></a>00013 }
+<a name="l00014"></a>00014 ++<a class="code" href="class_allegro_init.html#ab8d20b549d0b996dde5cdbe8acd7186c" title="Count of the current number of initialised AllegroInit objects.">_initCount</a>;
+<a name="l00015"></a>00015 }
+<a name="l00016"></a>00016
+<a name="l00017"></a><a class="code" href="class_allegro_init.html#a81588c1ce0fe3646a188683f1598a66b">00017</a> <a class="code" href="class_allegro_init.html#a14e28ffed7456b158cf919d310920af4" title="Constructor calls al_init() if it is the first instance.">AllegroInit::AllegroInit</a>(<span class="keyword">const</span> <a class="code" href="class_allegro_init.html" title="Class ensures that Allegro is initialized and uninstalled when appropriate.">AllegroInit</a>&amp; ref)
+<a name="l00018"></a>00018 {
+<a name="l00019"></a>00019 <span class="keywordflow">if</span> (<a class="code" href="class_allegro_init.html#ab8d20b549d0b996dde5cdbe8acd7186c" title="Count of the current number of initialised AllegroInit objects.">_initCount</a>==0)
+<a name="l00020"></a>00020 {
+<a name="l00021"></a>00021 <span class="keywordflow">if</span> (!al_init())
+<a name="l00022"></a>00022 {
+<a name="l00023"></a>00023 <span class="keywordflow">throw</span> <a class="code" href="class_install_failure.html" title="Exception to be thrown if any component of Allegro fails to install at runtime.">InstallFailure</a>();
+<a name="l00024"></a>00024 }
+<a name="l00025"></a>00025 }
+<a name="l00026"></a>00026 ++<a class="code" href="class_allegro_init.html#ab8d20b549d0b996dde5cdbe8acd7186c" title="Count of the current number of initialised AllegroInit objects.">_initCount</a>;
+<a name="l00027"></a>00027 }
+<a name="l00028"></a>00028
+<a name="l00029"></a><a class="code" href="class_allegro_init.html#a41fb85a1de21168ec2a93e79e0e20b89">00029</a> <a class="code" href="class_allegro_init.html#a41fb85a1de21168ec2a93e79e0e20b89" title="Destructor calls al_uninstall_system() if it is the last instant.">AllegroInit::~AllegroInit</a>()
+<a name="l00030"></a>00030 {
+<a name="l00031"></a>00031 --<a class="code" href="class_allegro_init.html#ab8d20b549d0b996dde5cdbe8acd7186c" title="Count of the current number of initialised AllegroInit objects.">_initCount</a>;
+<a name="l00032"></a>00032 <span class="keywordflow">if</span> (<a class="code" href="class_allegro_init.html#ab8d20b549d0b996dde5cdbe8acd7186c" title="Count of the current number of initialised AllegroInit objects.">_initCount</a>==0)
+<a name="l00033"></a>00033 {
+<a name="l00034"></a>00034 al_uninstall_system();
+<a name="l00035"></a>00035 }
+<a name="l00036"></a>00036 }
+<a name="l00037"></a>00037
+<a name="l00038"></a>00038
+<a name="l00039"></a>00039 <span class="keywordtype">int</span> <a class="code" href="class_allegro_keyboard_init.html#ac7f75bcc5cb56a1c2f4e9ce653d9dfd7" title="Count of the current number of initialised AllegroKeyboardInit objects.">AllegroKeyboardInit::_initCount</a> = 0;
+<a name="l00040"></a>00040
+<a name="l00041"></a><a class="code" href="class_allegro_keyboard_init.html#a42fce2d97b6b7c0c0c666d0f5804a45e">00041</a> <a class="code" href="class_allegro_keyboard_init.html#a42fce2d97b6b7c0c0c666d0f5804a45e" title="Constructor calls al_install_keyboard() if it is the first instance.">AllegroKeyboardInit::AllegroKeyboardInit</a>()
+<a name="l00042"></a>00042 {
+<a name="l00043"></a>00043 <span class="keywordflow">if</span> (<a class="code" href="class_allegro_keyboard_init.html#ac7f75bcc5cb56a1c2f4e9ce653d9dfd7" title="Count of the current number of initialised AllegroKeyboardInit objects.">_initCount</a>==0)
+<a name="l00044"></a>00044 {
+<a name="l00045"></a>00045 <span class="keywordflow">if</span> (!al_install_keyboard())
+<a name="l00046"></a>00046 {
+<a name="l00047"></a>00047 <span class="keywordflow">throw</span> <a class="code" href="class_install_failure.html" title="Exception to be thrown if any component of Allegro fails to install at runtime.">InstallFailure</a>();
+<a name="l00048"></a>00048 }
+<a name="l00049"></a>00049 }
+<a name="l00050"></a>00050 ++<a class="code" href="class_allegro_keyboard_init.html#ac7f75bcc5cb56a1c2f4e9ce653d9dfd7" title="Count of the current number of initialised AllegroKeyboardInit objects.">_initCount</a>;
+<a name="l00051"></a>00051 }
+<a name="l00052"></a>00052
+<a name="l00053"></a><a class="code" href="class_allegro_keyboard_init.html#ae28cb5cbafdba3372f21ddb95a9ed134">00053</a> <a class="code" href="class_allegro_keyboard_init.html#a42fce2d97b6b7c0c0c666d0f5804a45e" title="Constructor calls al_install_keyboard() if it is the first instance.">AllegroKeyboardInit::AllegroKeyboardInit</a>(<span class="keyword">const</span> <a class="code" href="class_allegro_keyboard_init.html" title="Class ensures that Allegro&#39;s keyboard is installed and uninstalled when appropriate.">AllegroKeyboardInit</a>&amp; ref)
+<a name="l00054"></a>00054 {
+<a name="l00055"></a>00055 <span class="keywordflow">if</span> (<a class="code" href="class_allegro_keyboard_init.html#ac7f75bcc5cb56a1c2f4e9ce653d9dfd7" title="Count of the current number of initialised AllegroKeyboardInit objects.">_initCount</a>==0)
+<a name="l00056"></a>00056 {
+<a name="l00057"></a>00057 <span class="keywordflow">if</span> (!al_install_keyboard())
+<a name="l00058"></a>00058 {
+<a name="l00059"></a>00059 <span class="keywordflow">throw</span> <a class="code" href="class_install_failure.html" title="Exception to be thrown if any component of Allegro fails to install at runtime.">InstallFailure</a>();
+<a name="l00060"></a>00060 }
+<a name="l00061"></a>00061 }
+<a name="l00062"></a>00062 ++<a class="code" href="class_allegro_keyboard_init.html#ac7f75bcc5cb56a1c2f4e9ce653d9dfd7" title="Count of the current number of initialised AllegroKeyboardInit objects.">_initCount</a>;
+<a name="l00063"></a>00063 }
+<a name="l00064"></a>00064
+<a name="l00065"></a><a class="code" href="class_allegro_keyboard_init.html#a7d1b1cda1d2220ad522ee955ba8a2c5d">00065</a> <a class="code" href="class_allegro_keyboard_init.html#a7d1b1cda1d2220ad522ee955ba8a2c5d" title="Destructor calls al_uninstall_keyboard() if it is the last instant.">AllegroKeyboardInit::~AllegroKeyboardInit</a>()
+<a name="l00066"></a>00066 {
+<a name="l00067"></a>00067 --<a class="code" href="class_allegro_keyboard_init.html#ac7f75bcc5cb56a1c2f4e9ce653d9dfd7" title="Count of the current number of initialised AllegroKeyboardInit objects.">_initCount</a>;
+<a name="l00068"></a>00068 <span class="keywordflow">if</span> (<a class="code" href="class_allegro_keyboard_init.html#ac7f75bcc5cb56a1c2f4e9ce653d9dfd7" title="Count of the current number of initialised AllegroKeyboardInit objects.">_initCount</a>==0) al_uninstall_keyboard();
+<a name="l00069"></a>00069 }
+<a name="l00070"></a>00070
+<a name="l00071"></a>00071 <span class="keywordtype">int</span> <a class="code" href="class_allegro_drawing_init.html#a78e8f792c6dba89eddf42e74d4a3d577">AllegroDrawingInit::_initCount</a> = 0;
+<a name="l00072"></a>00072
+<a name="l00073"></a><a class="code" href="class_allegro_drawing_init.html#ab7cf79c71bf662f897bd8cba32f42cda">00073</a> <a class="code" href="class_allegro_drawing_init.html#ab7cf79c71bf662f897bd8cba32f42cda" title="Constructor calls al_init_primitives_addon(), al_init_font_addon(), and al_init_ttf_addon() if it is ...">AllegroDrawingInit::AllegroDrawingInit</a>()
+<a name="l00074"></a>00074 {
+<a name="l00075"></a>00075 <span class="keywordflow">if</span> (<a class="code" href="class_allegro_drawing_init.html#a78e8f792c6dba89eddf42e74d4a3d577">_initCount</a>==0)
+<a name="l00076"></a>00076 {
+<a name="l00077"></a>00077 <span class="keywordflow">if</span> (!al_init_primitives_addon())
+<a name="l00078"></a>00078 {
+<a name="l00079"></a>00079 <span class="keywordflow">throw</span> <a class="code" href="class_install_failure.html" title="Exception to be thrown if any component of Allegro fails to install at runtime.">InstallFailure</a>();
+<a name="l00080"></a>00080 }
+<a name="l00081"></a>00081 al_init_font_addon();
+<a name="l00082"></a>00082 <span class="keywordflow">if</span> (!al_init_ttf_addon())
+<a name="l00083"></a>00083 {
+<a name="l00084"></a>00084 <span class="keywordflow">throw</span> <a class="code" href="class_install_failure.html" title="Exception to be thrown if any component of Allegro fails to install at runtime.">InstallFailure</a>();
+<a name="l00085"></a>00085 }
+<a name="l00086"></a>00086 }
+<a name="l00087"></a>00087 ++<a class="code" href="class_allegro_drawing_init.html#a78e8f792c6dba89eddf42e74d4a3d577">_initCount</a>;
+<a name="l00088"></a>00088 }
+<a name="l00089"></a>00089
+<a name="l00090"></a><a class="code" href="class_allegro_drawing_init.html#a36fe883267f017f3832feb1f615d7488">00090</a> <a class="code" href="class_allegro_drawing_init.html#ab7cf79c71bf662f897bd8cba32f42cda" title="Constructor calls al_init_primitives_addon(), al_init_font_addon(), and al_init_ttf_addon() if it is ...">AllegroDrawingInit::AllegroDrawingInit</a>(<span class="keyword">const</span> <a class="code" href="class_allegro_drawing_init.html" title="Class ensures that Allegro&#39;s primitive and text drawing is installed and uninstalled when appropriate...">AllegroDrawingInit</a>&amp; ref)
+<a name="l00091"></a>00091 {
+<a name="l00092"></a>00092 <span class="keywordflow">if</span> (<a class="code" href="class_allegro_drawing_init.html#a78e8f792c6dba89eddf42e74d4a3d577">_initCount</a>==0)
+<a name="l00093"></a>00093 {
+<a name="l00094"></a>00094 <span class="keywordflow">if</span> (!al_init_primitives_addon())
+<a name="l00095"></a>00095 {
+<a name="l00096"></a>00096 <span class="keywordflow">throw</span> <a class="code" href="class_install_failure.html" title="Exception to be thrown if any component of Allegro fails to install at runtime.">InstallFailure</a>();
+<a name="l00097"></a>00097 }
+<a name="l00098"></a>00098 al_init_font_addon();
+<a name="l00099"></a>00099 <span class="keywordflow">if</span> (!al_init_ttf_addon())
+<a name="l00100"></a>00100 {
+<a name="l00101"></a>00101 <span class="keywordflow">throw</span> <a class="code" href="class_install_failure.html" title="Exception to be thrown if any component of Allegro fails to install at runtime.">InstallFailure</a>();
+<a name="l00102"></a>00102 }
+<a name="l00103"></a>00103 }
+<a name="l00104"></a>00104 ++<a class="code" href="class_allegro_drawing_init.html#a78e8f792c6dba89eddf42e74d4a3d577">_initCount</a>;
+<a name="l00105"></a>00105 }
+<a name="l00106"></a>00106
+<a name="l00107"></a><a class="code" href="class_allegro_drawing_init.html#aa1c05a296b0c63f8f20276cce6472e6b">00107</a> <a class="code" href="class_allegro_drawing_init.html#aa1c05a296b0c63f8f20276cce6472e6b" title="Destructor calls al_shutdown_primitives_addon(), al_shutdown_font_addon(), and al_shutdown_ttf_addon(...">AllegroDrawingInit::~AllegroDrawingInit</a>()
+<a name="l00108"></a>00108 {
+<a name="l00109"></a>00109 --<a class="code" href="class_allegro_drawing_init.html#a78e8f792c6dba89eddf42e74d4a3d577">_initCount</a>;
+<a name="l00110"></a>00110 <span class="keywordflow">if</span> (<a class="code" href="class_allegro_drawing_init.html#a78e8f792c6dba89eddf42e74d4a3d577">_initCount</a>==0)
+<a name="l00111"></a>00111 {
+<a name="l00112"></a>00112 al_shutdown_ttf_addon();
+<a name="l00113"></a>00113 al_shutdown_font_addon();
+<a name="l00114"></a>00114 al_shutdown_primitives_addon();
+<a name="l00115"></a>00115 }
+<a name="l00116"></a>00116 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_allegro_wrappers_8h.html b/docs/html/_allegro_wrappers_8h.html
new file mode 100644
index 0000000..275e146
--- /dev/null
+++ b/docs/html/_allegro_wrappers_8h.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/AllegroWrappers.h File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">source/logic/AllegroWrappers.h File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &lt;allegro5/allegro.h&gt;</code><br/>
+<code>#include &lt;allegro5/allegro_primitives.h&gt;</code><br/>
+<code>#include &lt;allegro5/allegro_font.h&gt;</code><br/>
+<code>#include &lt;allegro5/allegro_ttf.h&gt;</code><br/>
+</div>
+<p><a href="_allegro_wrappers_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_install_failure.html">InstallFailure</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Exception to be thrown if any component of Allegro fails to install at runtime. <a href="class_install_failure.html#details">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_allegro_init.html">AllegroInit</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Class ensures that Allegro is initialized and uninstalled when appropriate. <a href="class_allegro_init.html#details">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_allegro_keyboard_init.html">AllegroKeyboardInit</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Class ensures that Allegro's keyboard is installed and uninstalled when appropriate. <a href="class_allegro_keyboard_init.html#details">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_allegro_drawing_init.html">AllegroDrawingInit</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Class ensures that Allegro's primitive and text drawing is installed and uninstalled when appropriate. <a href="class_allegro_drawing_init.html#details">More...</a><br/></td></tr>
+</table>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_allegro_wrappers_8h_source.html b/docs/html/_allegro_wrappers_8h_source.html
new file mode 100644
index 0000000..5325bcd
--- /dev/null
+++ b/docs/html/_allegro_wrappers_8h_source.html
@@ -0,0 +1,159 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/AllegroWrappers.h Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/AllegroWrappers.h</div> </div>
+</div>
+<div class="contents">
+<a href="_allegro_wrappers_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef ALLEGRO_WRAPPERS_H</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define ALLEGRO_WRAPPERS_H</span>
+<a name="l00003"></a>00003 <span class="preprocessor"></span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;allegro5/allegro.h&gt;</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include &lt;allegro5/allegro_primitives.h&gt;</span>
+<a name="l00006"></a>00006 <span class="preprocessor">#include &lt;allegro5/allegro_font.h&gt;</span>
+<a name="l00007"></a>00007 <span class="preprocessor">#include &lt;allegro5/allegro_ttf.h&gt;</span>
+<a name="l00008"></a>00008
+<a name="l00015"></a><a class="code" href="class_install_failure.html">00015</a> <span class="keyword">class </span><a class="code" href="class_install_failure.html" title="Exception to be thrown if any component of Allegro fails to install at runtime.">InstallFailure</a> {};
+<a name="l00016"></a>00016
+<a name="l00025"></a><a class="code" href="class_allegro_init.html">00025</a> <span class="keyword">class </span><a class="code" href="class_allegro_init.html" title="Class ensures that Allegro is initialized and uninstalled when appropriate.">AllegroInit</a>
+<a name="l00026"></a>00026 {
+<a name="l00027"></a>00027 <span class="keyword">public</span>:
+<a name="l00031"></a>00031 <a class="code" href="class_allegro_init.html#a14e28ffed7456b158cf919d310920af4" title="Constructor calls al_init() if it is the first instance.">AllegroInit</a>();
+<a name="l00035"></a>00035 <a class="code" href="class_allegro_init.html#a14e28ffed7456b158cf919d310920af4" title="Constructor calls al_init() if it is the first instance.">AllegroInit</a>(<span class="keyword">const</span> <a class="code" href="class_allegro_init.html" title="Class ensures that Allegro is initialized and uninstalled when appropriate.">AllegroInit</a>&amp; ref);
+<a name="l00040"></a>00040 <span class="comment">//assignment operator provided by compiler. _initCount does not need incrementing on assignment,</span>
+<a name="l00041"></a>00041 <span class="comment">//because assignment does not make a new instance, just changes one.</span>
+<a name="l00042"></a>00042
+<a name="l00043"></a>00043 <a class="code" href="class_allegro_init.html#a41fb85a1de21168ec2a93e79e0e20b89" title="Destructor calls al_uninstall_system() if it is the last instant.">~AllegroInit</a>();
+<a name="l00044"></a>00044 <span class="keyword">private</span>:
+<a name="l00045"></a><a class="code" href="class_allegro_init.html#ab8d20b549d0b996dde5cdbe8acd7186c">00045</a> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="class_allegro_init.html#ab8d20b549d0b996dde5cdbe8acd7186c" title="Count of the current number of initialised AllegroInit objects.">_initCount</a>;
+<a name="l00046"></a>00046 };
+<a name="l00047"></a>00047
+<a name="l00057"></a><a class="code" href="class_allegro_keyboard_init.html">00057</a> <span class="keyword">class </span><a class="code" href="class_allegro_keyboard_init.html" title="Class ensures that Allegro&#39;s keyboard is installed and uninstalled when appropriate.">AllegroKeyboardInit</a>
+<a name="l00058"></a>00058 {
+<a name="l00059"></a>00059 <span class="keyword">public</span>:
+<a name="l00063"></a>00063 <a class="code" href="class_allegro_keyboard_init.html#a42fce2d97b6b7c0c0c666d0f5804a45e" title="Constructor calls al_install_keyboard() if it is the first instance.">AllegroKeyboardInit</a>();
+<a name="l00067"></a>00067 <a class="code" href="class_allegro_keyboard_init.html#a42fce2d97b6b7c0c0c666d0f5804a45e" title="Constructor calls al_install_keyboard() if it is the first instance.">AllegroKeyboardInit</a>(<span class="keyword">const</span> <a class="code" href="class_allegro_keyboard_init.html" title="Class ensures that Allegro&#39;s keyboard is installed and uninstalled when appropriate.">AllegroKeyboardInit</a>&amp; ref);
+<a name="l00071"></a>00071 <a class="code" href="class_allegro_keyboard_init.html#a7d1b1cda1d2220ad522ee955ba8a2c5d" title="Destructor calls al_uninstall_keyboard() if it is the last instant.">~AllegroKeyboardInit</a>();
+<a name="l00072"></a>00072 <span class="keyword">private</span>:
+<a name="l00073"></a><a class="code" href="class_allegro_keyboard_init.html#ac7f75bcc5cb56a1c2f4e9ce653d9dfd7">00073</a> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="class_allegro_keyboard_init.html#ac7f75bcc5cb56a1c2f4e9ce653d9dfd7" title="Count of the current number of initialised AllegroKeyboardInit objects.">_initCount</a>;
+<a name="l00074"></a><a class="code" href="class_allegro_keyboard_init.html#af8655fcd2e20750f965e55304500bc3b">00074</a> <a class="code" href="class_allegro_init.html" title="Class ensures that Allegro is initialized and uninstalled when appropriate.">AllegroInit</a> <a class="code" href="class_allegro_keyboard_init.html#af8655fcd2e20750f965e55304500bc3b" title="Depends on Allegro being initialised.">_allegro</a>;
+<a name="l00075"></a>00075
+<a name="l00076"></a>00076 <span class="comment">//assignment operator provided by compiler. _initCount does not need incrementing on assignment,</span>
+<a name="l00077"></a>00077 <span class="comment">//because assignment does not make a new instance, just changes one.</span>
+<a name="l00078"></a>00078 };
+<a name="l00079"></a>00079
+<a name="l00089"></a><a class="code" href="class_allegro_drawing_init.html">00089</a> <span class="keyword">class </span><a class="code" href="class_allegro_drawing_init.html" title="Class ensures that Allegro&#39;s primitive and text drawing is installed and uninstalled when appropriate...">AllegroDrawingInit</a>
+<a name="l00090"></a>00090 {
+<a name="l00091"></a>00091 <span class="keyword">public</span>:
+<a name="l00095"></a>00095 <a class="code" href="class_allegro_drawing_init.html#ab7cf79c71bf662f897bd8cba32f42cda" title="Constructor calls al_init_primitives_addon(), al_init_font_addon(), and al_init_ttf_addon() if it is ...">AllegroDrawingInit</a>();
+<a name="l00099"></a>00099 <a class="code" href="class_allegro_drawing_init.html#ab7cf79c71bf662f897bd8cba32f42cda" title="Constructor calls al_init_primitives_addon(), al_init_font_addon(), and al_init_ttf_addon() if it is ...">AllegroDrawingInit</a>(<span class="keyword">const</span> <a class="code" href="class_allegro_drawing_init.html" title="Class ensures that Allegro&#39;s primitive and text drawing is installed and uninstalled when appropriate...">AllegroDrawingInit</a>&amp; ref);
+<a name="l00103"></a>00103 <a class="code" href="class_allegro_drawing_init.html#aa1c05a296b0c63f8f20276cce6472e6b" title="Destructor calls al_shutdown_primitives_addon(), al_shutdown_font_addon(), and al_shutdown_ttf_addon(...">~AllegroDrawingInit</a>();
+<a name="l00104"></a>00104 <span class="keyword">private</span>:
+<a name="l00105"></a><a class="code" href="class_allegro_drawing_init.html#a78e8f792c6dba89eddf42e74d4a3d577">00105</a> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="class_allegro_drawing_init.html#a78e8f792c6dba89eddf42e74d4a3d577">_initCount</a>;
+<a name="l00106"></a><a class="code" href="class_allegro_drawing_init.html#a8254ecb9b3ad13409ff1ec1cfeee66ef">00106</a> <a class="code" href="class_allegro_init.html" title="Class ensures that Allegro is initialized and uninstalled when appropriate.">AllegroInit</a> <a class="code" href="class_allegro_drawing_init.html#a8254ecb9b3ad13409ff1ec1cfeee66ef">_allegro</a>;
+<a name="l00107"></a>00107
+<a name="l00108"></a>00108 <span class="comment">//assignment operator provided by compiler. _initCount does not need incrementing on assignment,</span>
+<a name="l00109"></a>00109 <span class="comment">//because assignment does not make a new instance, just changes one.</span>
+<a name="l00110"></a>00110 };
+<a name="l00111"></a>00111
+<a name="l00112"></a>00112 <span class="preprocessor">#endif</span>
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_bitmap_store_8cpp.html b/docs/html/_bitmap_store_8cpp.html
new file mode 100644
index 0000000..c21a751
--- /dev/null
+++ b/docs/html/_bitmap_store_8cpp.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/BitmapStore.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/presentation/BitmapStore.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_bitmap_store_8h_source.html">BitmapStore.h</a>&quot;</code><br/>
+</div>
+<p><a href="_bitmap_store_8cpp_source.html">Go to the source code of this file.</a></p>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_bitmap_store_8cpp_source.html b/docs/html/_bitmap_store_8cpp_source.html
new file mode 100644
index 0000000..0f739cf
--- /dev/null
+++ b/docs/html/_bitmap_store_8cpp_source.html
@@ -0,0 +1,345 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/BitmapStore.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/presentation/BitmapStore.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="_bitmap_store_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &quot;<a class="code" href="_bitmap_store_8h.html">BitmapStore.h</a>&quot;</span>
+<a name="l00002"></a>00002
+<a name="l00003"></a><a class="code" href="class_bitmap_store.html#abca96ce53be18eb07150745871a3165c">00003</a> <a class="code" href="class_bitmap_store.html#abca96ce53be18eb07150745871a3165c" title="Constructor for creating a BitmapStore with a set image size.">BitmapStore::BitmapStore</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> blockWidth)
+<a name="l00004"></a>00004 :_blockWidth(blockWidth)
+<a name="l00005"></a>00005 {
+<a name="l00006"></a>00006 <a class="code" href="class_bitmap_store.html#a0c73c3c20f8093c83707cde15c4fed5f" title="Font used for writing text on bitmaps.">_bitmapFont</a> = al_load_font(<span class="stringliteral">&quot;junction 02.ttf&quot;</span>, blockWidth/6, 0);
+<a name="l00007"></a>00007 <span class="keywordflow">if</span> (<a class="code" href="class_bitmap_store.html#a0c73c3c20f8093c83707cde15c4fed5f" title="Font used for writing text on bitmaps.">_bitmapFont</a> == NULL)
+<a name="l00008"></a>00008 {
+<a name="l00009"></a>00009 al_show_native_message_box(NULL, <span class="stringliteral">&quot;Fatal error&quot;</span>, <span class="stringliteral">&quot;Fatal error&quot;</span>, <span class="stringliteral">&quot;The file &#39;junction 02.ttf&#39; was not found. Ensure that it is located in the working directory.&quot;</span>, NULL, ALLEGRO_MESSAGEBOX_ERROR);
+<a name="l00010"></a>00010 <span class="keywordflow">throw</span> <a class="code" href="class_install_failure.html" title="Exception to be thrown if any component of Allegro fails to install at runtime.">InstallFailure</a>();
+<a name="l00011"></a>00011 }
+<a name="l00012"></a>00012 }
+<a name="l00013"></a>00013
+<a name="l00014"></a><a class="code" href="class_bitmap_store.html#a1e34f2fb55475f16ade380fa1e8829f7">00014</a> <a class="code" href="class_bitmap_store.html#a1e34f2fb55475f16ade380fa1e8829f7" title="Destructor for clearing cache.">BitmapStore::~BitmapStore</a>()
+<a name="l00015"></a>00015 {
+<a name="l00016"></a>00016 <span class="keywordflow">for</span> (map&lt;Image,ALLEGRO_BITMAP*&gt;::iterator iter = <a class="code" href="class_bitmap_store.html#ae3d18969f61f97fce6622cb6f7004711" title="map containing pairs of Images (the enumerated type) and the actual images.">_bitmaps</a>.begin();
+<a name="l00017"></a>00017 iter != <a class="code" href="class_bitmap_store.html#ae3d18969f61f97fce6622cb6f7004711" title="map containing pairs of Images (the enumerated type) and the actual images.">_bitmaps</a>.end(); ++iter)
+<a name="l00018"></a>00018 {
+<a name="l00019"></a>00019 al_destroy_bitmap(iter-&gt;second);
+<a name="l00020"></a>00020 }
+<a name="l00021"></a>00021 <a class="code" href="class_bitmap_store.html#ae3d18969f61f97fce6622cb6f7004711" title="map containing pairs of Images (the enumerated type) and the actual images.">_bitmaps</a>.clear();
+<a name="l00022"></a>00022 al_destroy_font(<a class="code" href="class_bitmap_store.html#a0c73c3c20f8093c83707cde15c4fed5f" title="Font used for writing text on bitmaps.">_bitmapFont</a>);
+<a name="l00023"></a>00023 }
+<a name="l00024"></a>00024
+<a name="l00025"></a><a class="code" href="class_bitmap_store.html#aadd437c869c5856c36d920dfafbc6ee4">00025</a> ALLEGRO_BITMAP* <a class="code" href="class_bitmap_store.html#aadd437c869c5856c36d920dfafbc6ee4" title="Function to get image for drawing to the screen.">BitmapStore::getBitmap</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386" title="Type used to define which image should be returned.">Image</a> image)
+<a name="l00026"></a>00026 {
+<a name="l00027"></a>00027 map&lt;Image,ALLEGRO_BITMAP*&gt;::const_iterator iter = <a class="code" href="class_bitmap_store.html#ae3d18969f61f97fce6622cb6f7004711" title="map containing pairs of Images (the enumerated type) and the actual images.">_bitmaps</a>.find(image);
+<a name="l00028"></a>00028 <span class="keywordflow">if</span> (iter != <a class="code" href="class_bitmap_store.html#ae3d18969f61f97fce6622cb6f7004711" title="map containing pairs of Images (the enumerated type) and the actual images.">_bitmaps</a>.end())
+<a name="l00029"></a>00029 {
+<a name="l00030"></a>00030 <span class="keywordflow">return</span> iter-&gt;second;
+<a name="l00031"></a>00031 }
+<a name="l00032"></a>00032 <span class="keywordflow">else</span>
+<a name="l00033"></a>00033 {
+<a name="l00034"></a>00034 ALLEGRO_BITMAP* newImage = al_create_bitmap(<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>);
+<a name="l00035"></a>00035 <span class="keywordflow">switch</span> (image)
+<a name="l00036"></a>00036 {
+<a name="l00037"></a>00037 <span class="keywordflow">case</span> <a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386acdaf29947fecd91b452e554a75fb9e92">PLAYER</a>:
+<a name="l00038"></a>00038 <a class="code" href="class_bitmap_store.html#af645b30d96761f401770336a555b6429" title="Draws the image representing the player.">drawPlayerCar</a>(newImage);
+<a name="l00039"></a>00039 <span class="keywordflow">break</span>;
+<a name="l00040"></a>00040 <span class="keywordflow">case</span> <a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a8a7d9a89e243914ca702660237d4f81d">ENEMY</a>:
+<a name="l00041"></a>00041 <a class="code" href="class_bitmap_store.html#aff7a6fc2b35ff6cd38ef74730523f5a9" title="Draws the image representing an enemy.">drawEnemyCar</a>(newImage);
+<a name="l00042"></a>00042 <span class="keywordflow">break</span>;
+<a name="l00043"></a>00043 <span class="keywordflow">case</span> <a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a780d6b9e20ec37fbaf5a40ca846795d9">CHECKPOINT</a>:
+<a name="l00044"></a>00044 <a class="code" href="class_bitmap_store.html#ae5d12fa60b03a7ea2119c67938650352" title="Draws the image representing a checkpoint.">drawCheckpoint</a>(newImage);
+<a name="l00045"></a>00045 <span class="keywordflow">break</span>;
+<a name="l00046"></a>00046 <span class="keywordflow">case</span> <a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386abf3851dc0110fc83020981fcbb5773eb">ROCK</a>:
+<a name="l00047"></a>00047 <a class="code" href="class_bitmap_store.html#a2132a5ec8dfb43f06f75accf8bb9a50e" title="Draws the image representing a rock.">drawRock</a>(newImage);
+<a name="l00048"></a>00048 <span class="keywordflow">break</span>;
+<a name="l00049"></a>00049 <span class="keywordflow">case</span> <a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386ae662e77b349a8e22c5826ef35b1b5d9a">MAZE_WALL</a>:
+<a name="l00050"></a>00050 <a class="code" href="class_bitmap_store.html#a90680d174c1d77e19ace8c2ba0eef6ac" title="Draws the image representing a solid part of the maze.">drawMazeWall</a>(newImage);
+<a name="l00051"></a>00051 <span class="keywordflow">break</span>;
+<a name="l00052"></a>00052 <span class="keywordflow">case</span> <a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a4e2a075dff2c02bf40b134c9090d1f02">MAZE_FLOOR</a>:
+<a name="l00053"></a>00053 <a class="code" href="class_bitmap_store.html#a8a7d5fe7cc38ddb3c651152654226201" title="Draws the image representing a non-solid part of the maze.">drawMazeFloor</a>(newImage);
+<a name="l00054"></a>00054 <span class="keywordflow">break</span>;
+<a name="l00055"></a>00055 <span class="keywordflow">case</span> <a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a91fec244d29999552e93ecb7578713fb">SMOKE</a>:
+<a name="l00056"></a>00056 <a class="code" href="class_bitmap_store.html#a1a346a06675a7257ca8a7879aeb27e48" title="Draws the image representing a smokescreen.">drawSmoke</a>(newImage);
+<a name="l00057"></a>00057 <span class="keywordflow">break</span>;
+<a name="l00058"></a>00058 <span class="keywordflow">case</span> <a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a8b9eb5b79abe467982784ea2227d67e0">CRASHED_CAR</a>:
+<a name="l00059"></a>00059 <a class="code" href="class_bitmap_store.html#abb0a062e5cb3170786a6c202a53c145b" title="Draws the popup that appears when a car crashes.">drawCrashedCar</a>(newImage);
+<a name="l00060"></a>00060 <span class="keywordflow">break</span>;
+<a name="l00061"></a>00061 <span class="keywordflow">case</span> <a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a824f0021358b88c7f1172d7dece95948">CLAIMED_CHECKPOINT</a>:
+<a name="l00062"></a>00062 <a class="code" href="class_bitmap_store.html#a07f505192ccf0717d6aed29761934a5c" title="Draws the popup that appears when a checkpoint is collected.">drawClaimedCheckpoint</a>(newImage);
+<a name="l00063"></a>00063 <span class="keywordflow">break</span>;
+<a name="l00064"></a>00064 }
+<a name="l00065"></a>00065
+<a name="l00066"></a>00066 <a class="code" href="class_bitmap_store.html#ae3d18969f61f97fce6622cb6f7004711" title="map containing pairs of Images (the enumerated type) and the actual images.">_bitmaps</a>.insert(make_pair(image, newImage));
+<a name="l00067"></a>00067 <span class="keywordflow">return</span> newImage;
+<a name="l00068"></a>00068 }
+<a name="l00069"></a>00069 }
+<a name="l00070"></a>00070
+<a name="l00071"></a><a class="code" href="class_bitmap_store.html#af645b30d96761f401770336a555b6429">00071</a> <span class="keywordtype">void</span> <a class="code" href="class_bitmap_store.html#af645b30d96761f401770336a555b6429" title="Draws the image representing the player.">BitmapStore::drawPlayerCar</a>(ALLEGRO_BITMAP* canvas)
+<a name="l00072"></a>00072 {
+<a name="l00073"></a>00073 ALLEGRO_BITMAP* prev_draw = al_get_target_bitmap();
+<a name="l00074"></a>00074 al_set_target_bitmap(canvas);
+<a name="l00075"></a>00075
+<a name="l00076"></a>00076 <span class="comment">//car body</span>
+<a name="l00077"></a>00077 al_draw_filled_rounded_rectangle(<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.2, 0, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.8, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.96, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.1, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.1, al_map_rgb(0,0,255));
+<a name="l00078"></a>00078
+<a name="l00079"></a>00079 <span class="comment">//racing stripes</span>
+<a name="l00080"></a>00080 al_draw_filled_rectangle(<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.35, 0, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.4, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.3, al_map_rgb(255,255,255));
+<a name="l00081"></a>00081 al_draw_filled_rectangle(<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.6, 0, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.65, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.3, al_map_rgb(255,255,255));
+<a name="l00082"></a>00082
+<a name="l00083"></a>00083 <span class="comment">//windscreen</span>
+<a name="l00084"></a>00084 al_draw_filled_rectangle(<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.3, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.3, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.7, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.5, al_map_rgb (0,0,0));
+<a name="l00085"></a>00085
+<a name="l00086"></a>00086 <span class="comment">//roof</span>
+<a name="l00087"></a>00087 al_draw_rounded_rectangle(<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.3, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.5, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.7, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.9, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.04, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.04, al_map_rgb (25,25, 112), <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.04);
+<a name="l00088"></a>00088
+<a name="l00089"></a>00089 <span class="comment">//spoiler</span>
+<a name="l00090"></a>00090 al_draw_filled_rectangle(<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.2, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.96, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.8, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>, al_map_rgb (0,0, 225));
+<a name="l00091"></a>00091 al_draw_rectangle(<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.2, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.96, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.8, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>, al_map_rgb(25,25, 112),<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.04);
+<a name="l00092"></a>00092
+<a name="l00093"></a>00093 <span class="comment">//headlights</span>
+<a name="l00094"></a>00094 al_draw_filled_rectangle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.3,0,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.35,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.06, al_map_rgb(255,225,0));
+<a name="l00095"></a>00095 al_draw_filled_rectangle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.65,0,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.7,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.06, al_map_rgb(255,225,0));
+<a name="l00096"></a>00096
+<a name="l00097"></a>00097 <span class="comment">//tyres</span>
+<a name="l00098"></a>00098 al_draw_filled_rounded_rectangle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.1,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.13,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.2,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.37,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.03,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.03, al_map_rgb(131,139,131));
+<a name="l00099"></a>00099 al_draw_filled_rounded_rectangle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.8,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.13,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.9,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.37,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.03,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.03, al_map_rgb(131,139,131));
+<a name="l00100"></a>00100 al_draw_filled_rounded_rectangle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.1,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.63,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.2,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.87,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.03,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.03, al_map_rgb(131,139,131));
+<a name="l00101"></a>00101 al_draw_filled_rounded_rectangle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.8,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.63,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.9,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.87,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.03,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.03, al_map_rgb(131,139,131));
+<a name="l00102"></a>00102
+<a name="l00103"></a>00103 al_set_target_bitmap(prev_draw);
+<a name="l00104"></a>00104 }
+<a name="l00105"></a><a class="code" href="class_bitmap_store.html#aff7a6fc2b35ff6cd38ef74730523f5a9">00105</a> <span class="keywordtype">void</span> <a class="code" href="class_bitmap_store.html#aff7a6fc2b35ff6cd38ef74730523f5a9" title="Draws the image representing an enemy.">BitmapStore::drawEnemyCar</a>(ALLEGRO_BITMAP* canvas)
+<a name="l00106"></a>00106 {
+<a name="l00107"></a>00107 ALLEGRO_BITMAP* prev_draw = al_get_target_bitmap();
+<a name="l00108"></a>00108 al_set_target_bitmap(canvas);
+<a name="l00109"></a>00109
+<a name="l00110"></a>00110 <span class="comment">//car body</span>
+<a name="l00111"></a>00111 al_draw_filled_rounded_rectangle(<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.2, 0, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.8, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.96, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.1, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.1, al_map_rgb(255,0,0));
+<a name="l00112"></a>00112
+<a name="l00113"></a>00113 <span class="comment">//racing stripes</span>
+<a name="l00114"></a>00114 al_draw_filled_rectangle(<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.35, 0, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.4, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.3, al_map_rgb(255,255,255));
+<a name="l00115"></a>00115 al_draw_filled_rectangle(<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.6, 0, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.65, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.3, al_map_rgb(255,255,255));
+<a name="l00116"></a>00116
+<a name="l00117"></a>00117 <span class="comment">//windscreen</span>
+<a name="l00118"></a>00118 al_draw_filled_rectangle(<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.3, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.3, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.7, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.5, al_map_rgb (0,0,0));
+<a name="l00119"></a>00119
+<a name="l00120"></a>00120 <span class="comment">//roof</span>
+<a name="l00121"></a>00121 al_draw_rounded_rectangle(<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.3, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.5, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.7, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.9, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.04, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.04, al_map_rgb (25,25, 112), <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.04);
+<a name="l00122"></a>00122
+<a name="l00123"></a>00123 <span class="comment">//spoiler</span>
+<a name="l00124"></a>00124 al_draw_filled_rectangle(<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.2, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.96, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.8, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>, al_map_rgb (0,0, 225));
+<a name="l00125"></a>00125 al_draw_rectangle(<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.2, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.96, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.8, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>, al_map_rgb(25,25, 112),<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.04);
+<a name="l00126"></a>00126
+<a name="l00127"></a>00127 <span class="comment">//headlights</span>
+<a name="l00128"></a>00128 al_draw_filled_rectangle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.3,0,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.35,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.06, al_map_rgb(255,225,0));
+<a name="l00129"></a>00129 al_draw_filled_rectangle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.65,0,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.7,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.06, al_map_rgb(255,225,0));
+<a name="l00130"></a>00130
+<a name="l00131"></a>00131 <span class="comment">//tyres</span>
+<a name="l00132"></a>00132 al_draw_filled_rounded_rectangle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.1,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.13,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.2,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.37,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.03,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.03, al_map_rgb(131,139,131));
+<a name="l00133"></a>00133 al_draw_filled_rounded_rectangle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.8,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.13,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.9,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.37,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.03,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.03, al_map_rgb(131,139,131));
+<a name="l00134"></a>00134 al_draw_filled_rounded_rectangle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.1,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.63,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.2,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.87,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.03,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.03, al_map_rgb(131,139,131));
+<a name="l00135"></a>00135 al_draw_filled_rounded_rectangle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.8,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.63,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.9,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.87,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.03,<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.03, al_map_rgb(131,139,131));
+<a name="l00136"></a>00136
+<a name="l00137"></a>00137 al_set_target_bitmap(prev_draw);
+<a name="l00138"></a>00138 }
+<a name="l00139"></a><a class="code" href="class_bitmap_store.html#a2132a5ec8dfb43f06f75accf8bb9a50e">00139</a> <span class="keywordtype">void</span> <a class="code" href="class_bitmap_store.html#a2132a5ec8dfb43f06f75accf8bb9a50e" title="Draws the image representing a rock.">BitmapStore::drawRock</a>(ALLEGRO_BITMAP* canvas)
+<a name="l00140"></a>00140 {
+<a name="l00141"></a>00141 ALLEGRO_BITMAP* prev_draw = al_get_target_bitmap();
+<a name="l00142"></a>00142 al_set_target_bitmap(canvas);
+<a name="l00143"></a>00143
+<a name="l00144"></a>00144 ALLEGRO_COLOR colour = al_map_rgb(131,139,131);
+<a name="l00145"></a>00145 al_draw_filled_circle(<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2-1, colour);
+<a name="l00146"></a>00146
+<a name="l00147"></a>00147 al_draw_filled_circle(<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2-6, colour);
+<a name="l00148"></a>00148 al_draw_filled_circle(<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/4, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/4, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/4-1, al_map_rgb(205,197,191));
+<a name="l00149"></a>00149 al_draw_filled_circle(<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/3.2, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/4.2, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/4-2, al_map_rgb(205,197,191));
+<a name="l00150"></a>00150 al_draw_filled_circle(<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/1.2, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2-15, al_map_rgb(205,197,191));
+<a name="l00151"></a>00151 al_draw_filled_circle(<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2-8, al_map_rgb(205,205,193));
+<a name="l00152"></a>00152
+<a name="l00153"></a>00153 al_set_target_bitmap(prev_draw);
+<a name="l00154"></a>00154 }
+<a name="l00155"></a><a class="code" href="class_bitmap_store.html#ae5d12fa60b03a7ea2119c67938650352">00155</a> <span class="keywordtype">void</span> <a class="code" href="class_bitmap_store.html#ae5d12fa60b03a7ea2119c67938650352" title="Draws the image representing a checkpoint.">BitmapStore::drawCheckpoint</a>(ALLEGRO_BITMAP* canvas)
+<a name="l00156"></a>00156 {
+<a name="l00157"></a>00157 ALLEGRO_BITMAP* prev_draw = al_get_target_bitmap();
+<a name="l00158"></a>00158 al_set_target_bitmap(canvas);
+<a name="l00159"></a>00159
+<a name="l00160"></a>00160 ALLEGRO_COLOR colour = al_map_rgb(255,255,0);
+<a name="l00161"></a>00161
+<a name="l00162"></a>00162 al_draw_filled_rectangle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.44, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.1, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.5, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.9, colour);
+<a name="l00163"></a>00163 al_draw_filled_rounded_rectangle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.34, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.9, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.6, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.98, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.01, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.01, colour);
+<a name="l00164"></a>00164 al_draw_filled_circle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.47, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.14, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.1, colour);
+<a name="l00165"></a>00165 al_draw_filled_triangle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.44, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.26, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.44, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.58, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.8, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>*0.42, colour);
+<a name="l00166"></a>00166
+<a name="l00167"></a>00167 al_set_target_bitmap(prev_draw);
+<a name="l00168"></a>00168 }
+<a name="l00169"></a><a class="code" href="class_bitmap_store.html#a90680d174c1d77e19ace8c2ba0eef6ac">00169</a> <span class="keywordtype">void</span> <a class="code" href="class_bitmap_store.html#a90680d174c1d77e19ace8c2ba0eef6ac" title="Draws the image representing a solid part of the maze.">BitmapStore::drawMazeWall</a>(ALLEGRO_BITMAP* canvas)
+<a name="l00170"></a>00170 {
+<a name="l00171"></a>00171 ALLEGRO_BITMAP* prev_draw = al_get_target_bitmap();
+<a name="l00172"></a>00172 al_set_target_bitmap(canvas);
+<a name="l00173"></a>00173
+<a name="l00174"></a>00174 ALLEGRO_COLOR colour = al_map_rgb(203,255,151);
+<a name="l00175"></a>00175 al_clear_to_color(colour);
+<a name="l00176"></a>00176
+<a name="l00177"></a>00177 al_set_target_bitmap(prev_draw);
+<a name="l00178"></a>00178 }
+<a name="l00179"></a><a class="code" href="class_bitmap_store.html#a8a7d5fe7cc38ddb3c651152654226201">00179</a> <span class="keywordtype">void</span> <a class="code" href="class_bitmap_store.html#a8a7d5fe7cc38ddb3c651152654226201" title="Draws the image representing a non-solid part of the maze.">BitmapStore::drawMazeFloor</a>(ALLEGRO_BITMAP* canvas)
+<a name="l00180"></a>00180 {
+<a name="l00181"></a>00181 ALLEGRO_BITMAP* prev_draw = al_get_target_bitmap();
+<a name="l00182"></a>00182 al_set_target_bitmap(canvas);
+<a name="l00183"></a>00183
+<a name="l00184"></a>00184 ALLEGRO_COLOR colour = al_map_rgb(0,0,0);
+<a name="l00185"></a>00185 al_clear_to_color(colour);
+<a name="l00186"></a>00186
+<a name="l00187"></a>00187 al_set_target_bitmap(prev_draw);
+<a name="l00188"></a>00188 }
+<a name="l00189"></a><a class="code" href="class_bitmap_store.html#a1a346a06675a7257ca8a7879aeb27e48">00189</a> <span class="keywordtype">void</span> <a class="code" href="class_bitmap_store.html#a1a346a06675a7257ca8a7879aeb27e48" title="Draws the image representing a smokescreen.">BitmapStore::drawSmoke</a>(ALLEGRO_BITMAP* canvas)
+<a name="l00190"></a>00190 {
+<a name="l00191"></a>00191 ALLEGRO_BITMAP* prev_draw = al_get_target_bitmap();
+<a name="l00192"></a>00192 al_set_target_bitmap(canvas);
+<a name="l00193"></a>00193
+<a name="l00194"></a>00194 ALLEGRO_COLOR colour = al_map_rgb(255,255,255);
+<a name="l00195"></a>00195 al_draw_circle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2.3, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2.1, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2-1, colour,1);
+<a name="l00196"></a>00196 al_draw_circle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/4, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/4, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/4, colour,2);
+<a name="l00197"></a>00197 al_draw_circle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/5, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/1.5, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/4, colour,4);
+<a name="l00198"></a>00198 al_draw_circle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2.5, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2.7, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/3, colour,3);
+<a name="l00199"></a>00199 al_draw_circle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/1.2, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/1.8, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/3.7, colour,2);
+<a name="l00200"></a>00200 al_draw_circle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2.8, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2.2, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/6, colour,3);
+<a name="l00201"></a>00201 al_draw_circle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/1.1, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/1.2, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/3, colour,2);
+<a name="l00202"></a>00202 al_draw_circle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/1.2, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/1.7, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2, colour,3);
+<a name="l00203"></a>00203 al_draw_circle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/1.3, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/1.3, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/5, colour,2);
+<a name="l00204"></a>00204
+<a name="l00205"></a>00205 al_set_target_bitmap(prev_draw);
+<a name="l00206"></a>00206 }
+<a name="l00207"></a>00207
+<a name="l00208"></a><a class="code" href="class_bitmap_store.html#abb0a062e5cb3170786a6c202a53c145b">00208</a> <span class="keywordtype">void</span> <a class="code" href="class_bitmap_store.html#abb0a062e5cb3170786a6c202a53c145b" title="Draws the popup that appears when a car crashes.">BitmapStore::drawCrashedCar</a>(ALLEGRO_BITMAP* canvas)
+<a name="l00209"></a>00209 {
+<a name="l00210"></a>00210 ALLEGRO_BITMAP* prev_draw = al_get_target_bitmap();
+<a name="l00211"></a>00211 al_set_target_bitmap(canvas);
+<a name="l00212"></a>00212
+<a name="l00213"></a>00213 al_draw_filled_rounded_rectangle(<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/3.33, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/5, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/1.25, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/1.04, 5, 5, al_map_rgb (200, 200, 200));
+<a name="l00214"></a>00214 al_draw_circle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2.3, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2.1, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2-1, al_map_rgb (255, 0, 0),1);
+<a name="l00215"></a>00215 al_draw_circle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/4, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/4, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/4, al_map_rgb (100, 100, 100),2);
+<a name="l00216"></a>00216 al_draw_circle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/5, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/1.5, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/4, al_map_rgb (255, 0, 0),4);
+<a name="l00217"></a>00217 al_draw_filled_rectangle(<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2.5, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/1.43, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/1.7, al_map_rgb (0,0, 0));
+<a name="l00218"></a>00218 al_draw_circle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2.5, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2.7, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/3, al_map_rgb (100, 100, 100),3);
+<a name="l00219"></a>00219 al_draw_circle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/1.2, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/1.8, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/3.7, al_map_rgb (255, 0, 0),2);
+<a name="l00220"></a>00220 al_draw_rectangle(<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/3.13, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/1.04, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/1.25, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>, al_map_rgb (25,25, 112),1);
+<a name="l00221"></a>00221 al_draw_circle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2.8, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2.2, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/6, al_map_rgb (255, 0, 0),3);
+<a name="l00222"></a>00222 al_draw_circle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/1.1, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/1.2, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/3, al_map_rgb (100, 100, 100),2);
+<a name="l00223"></a>00223 al_draw_circle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/1.2, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/1.7, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2, al_map_rgb (100, 100, 100),3);
+<a name="l00224"></a>00224 al_draw_circle (<a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/1.3, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/1.3, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/5, al_map_rgb (255, 0, 0),2);
+<a name="l00225"></a>00225
+<a name="l00226"></a>00226 al_set_target_bitmap(prev_draw);
+<a name="l00227"></a>00227 }
+<a name="l00228"></a>00228
+<a name="l00229"></a><a class="code" href="class_bitmap_store.html#a07f505192ccf0717d6aed29761934a5c">00229</a> <span class="keywordtype">void</span> <a class="code" href="class_bitmap_store.html#a07f505192ccf0717d6aed29761934a5c" title="Draws the popup that appears when a checkpoint is collected.">BitmapStore::drawClaimedCheckpoint</a>(ALLEGRO_BITMAP* canvas)
+<a name="l00230"></a>00230 {
+<a name="l00231"></a>00231 ALLEGRO_BITMAP* prev_draw = al_get_target_bitmap();
+<a name="l00232"></a>00232 al_set_target_bitmap(canvas);
+<a name="l00233"></a>00233
+<a name="l00234"></a>00234 ALLEGRO_COLOR colour = al_map_rgb(255,255,255);
+<a name="l00235"></a>00235 al_draw_text(<a class="code" href="class_bitmap_store.html#a0c73c3c20f8093c83707cde15c4fed5f" title="Font used for writing text on bitmaps.">_bitmapFont</a>, colour, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2, <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>/2, ALLEGRO_ALIGN_CENTRE , <span class="stringliteral">&quot;GOTCHA&quot;</span>);
+<a name="l00236"></a>00236
+<a name="l00237"></a>00237 al_set_target_bitmap(prev_draw);
+<a name="l00238"></a>00238 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_bitmap_store_8h.html b/docs/html/_bitmap_store_8h.html
new file mode 100644
index 0000000..b28903f
--- /dev/null
+++ b/docs/html/_bitmap_store_8h.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/BitmapStore.h File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">source/presentation/BitmapStore.h File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &lt;string&gt;</code><br/>
+<code>#include &lt;map&gt;</code><br/>
+<code>#include &lt;allegro5/allegro.h&gt;</code><br/>
+<code>#include &lt;allegro5/allegro_primitives.h&gt;</code><br/>
+<code>#include &lt;allegro5/allegro_font.h&gt;</code><br/>
+<code>#include &lt;allegro5/allegro_ttf.h&gt;</code><br/>
+<code>#include &lt;allegro5/allegro_native_dialog.h&gt;</code><br/>
+<code>#include &quot;../logic/AllegroWrappers.h&quot;</code><br/>
+</div>
+<p><a href="_bitmap_store_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bitmap_store.html">BitmapStore</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Class for accessing images in ALLEGRO_BITMAP format and low level drawing. <a href="class_bitmap_store.html#details">More...</a><br/></td></tr>
+</table>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_bitmap_store_8h_source.html b/docs/html/_bitmap_store_8h_source.html
new file mode 100644
index 0000000..499cfc9
--- /dev/null
+++ b/docs/html/_bitmap_store_8h_source.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/BitmapStore.h Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/presentation/BitmapStore.h</div> </div>
+</div>
+<div class="contents">
+<a href="_bitmap_store_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef BITMAPSTORE_H</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define BITMAPSTORE_H</span>
+<a name="l00003"></a>00003 <span class="preprocessor"></span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;string&gt;</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include &lt;map&gt;</span>
+<a name="l00006"></a>00006 <span class="keyword">using namespace </span>std;
+<a name="l00007"></a>00007
+<a name="l00008"></a>00008 <span class="preprocessor">#include &lt;allegro5/allegro.h&gt;</span>
+<a name="l00009"></a>00009 <span class="preprocessor">#include &lt;allegro5/allegro_primitives.h&gt;</span>
+<a name="l00010"></a>00010 <span class="preprocessor">#include &lt;allegro5/allegro_font.h&gt;</span>
+<a name="l00011"></a>00011 <span class="preprocessor">#include &lt;allegro5/allegro_ttf.h&gt;</span>
+<a name="l00012"></a>00012 <span class="preprocessor">#include &lt;allegro5/allegro_native_dialog.h&gt;</span>
+<a name="l00013"></a>00013
+<a name="l00014"></a>00014 <span class="preprocessor">#include &quot;../logic/AllegroWrappers.h&quot;</span>
+<a name="l00015"></a>00015
+<a name="l00030"></a><a class="code" href="class_bitmap_store.html">00030</a> <span class="keyword">class </span><a class="code" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a>
+<a name="l00031"></a>00031 {
+<a name="l00032"></a>00032 <span class="keyword">public</span>:
+<a name="l00038"></a>00038 <a class="code" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> blockWidth);
+<a name="l00042"></a>00042 ~<a class="code" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a>();
+<a name="l00043"></a>00043
+<a name="l00047"></a><a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a91fec244d29999552e93ecb7578713fb">00047</a> <span class="keyword">enum</span> <a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386" title="Type used to define which image should be returned.">Image</a> {PLAYER, ENEMY, ROCK, CHECKPOINT, MAZE_WALL, MAZE_FLOOR, <a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a91fec244d29999552e93ecb7578713fb">SMOKE</a>, CRASHED_CAR, CLAIMED_CHECKPOINT};
+<a name="l00048"></a>00048
+<a name="l00055"></a>00055 ALLEGRO_BITMAP* getBitmap(Image image);
+<a name="l00056"></a>00056
+<a name="l00057"></a>00057 <span class="keyword">private</span>:
+<a name="l00063"></a>00063 <a class="code" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a>(<span class="keyword">const</span> <a class="code" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a>&amp; ref);
+<a name="l00069"></a>00069 <a class="code" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a>&amp; rhs);
+<a name="l00070"></a>00070
+<a name="l00076"></a>00076 <span class="keywordtype">void</span> drawPlayerCar(ALLEGRO_BITMAP* canvas);
+<a name="l00082"></a>00082 <span class="keywordtype">void</span> drawEnemyCar(ALLEGRO_BITMAP* canvas);
+<a name="l00088"></a>00088 <span class="keywordtype">void</span> drawRock(ALLEGRO_BITMAP* canvas);
+<a name="l00094"></a>00094 <span class="keywordtype">void</span> drawCheckpoint(ALLEGRO_BITMAP* canvas);
+<a name="l00100"></a>00100 <span class="keywordtype">void</span> drawMazeWall(ALLEGRO_BITMAP* canvas);
+<a name="l00106"></a>00106 <span class="keywordtype">void</span> drawMazeFloor(ALLEGRO_BITMAP* canvas);
+<a name="l00112"></a>00112 <span class="keywordtype">void</span> drawSmoke(ALLEGRO_BITMAP* canvas);
+<a name="l00118"></a>00118 <span class="keywordtype">void</span> drawCrashedCar(ALLEGRO_BITMAP* canvas);
+<a name="l00124"></a>00124 <span class="keywordtype">void</span> drawClaimedCheckpoint(ALLEGRO_BITMAP* canvas);
+<a name="l00125"></a>00125
+<a name="l00126"></a><a class="code" href="class_bitmap_store.html#a12f738a24033673278a496c1aa5abcc8">00126</a> <a class="code" href="class_allegro_drawing_init.html" title="Class ensures that Allegro&#39;s primitive and text drawing is installed and uninstalled when appropriate...">AllegroDrawingInit</a> <a class="code" href="class_bitmap_store.html#a12f738a24033673278a496c1aa5abcc8" title="Ensures that Allegro is initialized while an object of this class exists.">_drawingInstalls</a>;
+<a name="l00127"></a>00127
+<a name="l00128"></a><a class="code" href="class_bitmap_store.html#a0c73c3c20f8093c83707cde15c4fed5f">00128</a> ALLEGRO_FONT* <a class="code" href="class_bitmap_store.html#a0c73c3c20f8093c83707cde15c4fed5f" title="Font used for writing text on bitmaps.">_bitmapFont</a>;
+<a name="l00129"></a>00129
+<a name="l00135"></a><a class="code" href="class_bitmap_store.html#ae3d18969f61f97fce6622cb6f7004711">00135</a> map&lt;Image, ALLEGRO_BITMAP*&gt; <a class="code" href="class_bitmap_store.html#ae3d18969f61f97fce6622cb6f7004711" title="map containing pairs of Images (the enumerated type) and the actual images.">_bitmaps</a>;
+<a name="l00136"></a>00136
+<a name="l00137"></a><a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff">00137</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" title="The width of a square image in the store.">_blockWidth</a>;
+<a name="l00138"></a>00138 };
+<a name="l00139"></a>00139
+<a name="l00140"></a>00140 <span class="preprocessor">#endif // BITMAPSTORE_H</span>
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_car_8cpp.html b/docs/html/_car_8cpp.html
new file mode 100644
index 0000000..85b89ff
--- /dev/null
+++ b/docs/html/_car_8cpp.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/Car.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/Car.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_car_8h_source.html">Car.h</a>&quot;</code><br/>
+</div>
+<p><a href="_car_8cpp_source.html">Go to the source code of this file.</a></p>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_car_8cpp_source.html b/docs/html/_car_8cpp_source.html
new file mode 100644
index 0000000..86062e9
--- /dev/null
+++ b/docs/html/_car_8cpp_source.html
@@ -0,0 +1,182 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/Car.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/Car.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="_car_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &quot;<a class="code" href="_car_8h.html">Car.h</a>&quot;</span>
+<a name="l00002"></a>00002
+<a name="l00003"></a><a class="code" href="class_car.html#a3bd1dc6b75af9dc5bbe4354e0b3161d0">00003</a> <a class="code" href="class_car.html#a3bd1dc6b75af9dc5bbe4354e0b3161d0" title="Creates a Car at the given position, with the given image, facing in the given direction.">Car::Car</a>(<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386" title="Type used to define which image should be returned.">BitmapStore::Image</a> image, <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f" title="Defines the directions in which movement can happen in the maze.">Maze::Direction</a> facing)
+<a name="l00004"></a>00004 :<a class="code" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a>(x,y,image,facing),
+<a name="l00005"></a>00005 _speed(_baseSpeed)
+<a name="l00006"></a>00006 {
+<a name="l00007"></a>00007 }
+<a name="l00008"></a>00008
+<a name="l00009"></a><a class="code" href="class_car.html#a68b59187e1520a5d016b0894b4c116b9">00009</a> <span class="keywordtype">double</span> <a class="code" href="class_car.html#a68b59187e1520a5d016b0894b4c116b9" title="Function to access the current speed of the car.">Car::speed</a>()<span class="keyword"> const</span>
+<a name="l00010"></a>00010 <span class="keyword"></span>{
+<a name="l00011"></a>00011 <span class="keywordflow">return</span> <a class="code" href="class_car.html#a84b3d05e98d66f358942193ff54dee51" title="The current speed that the Car is moving at.">_speed</a>;
+<a name="l00012"></a>00012 }
+<a name="l00013"></a>00013
+<a name="l00014"></a><a class="code" href="class_car.html#a85e8699362bb5206e4142dbd5d20dcb9">00014</a> <span class="keywordtype">void</span> <a class="code" href="class_car.html#a85e8699362bb5206e4142dbd5d20dcb9" title="Moves the car by its current speed in the direction of its facing.">Car::move</a>(<span class="keyword">const</span> <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>&amp; maze)
+<a name="l00015"></a>00015 {
+<a name="l00016"></a>00016 <span class="keywordtype">double</span> targetX = 0;
+<a name="l00017"></a>00017 <span class="keywordtype">double</span> targetY = 0;
+<a name="l00018"></a>00018
+<a name="l00019"></a>00019 <span class="keywordtype">int</span> checkX = 0;
+<a name="l00020"></a>00020 <span class="keywordtype">int</span> checkY = 0;
+<a name="l00021"></a>00021
+<a name="l00022"></a>00022 <span class="keywordflow">switch</span>(<a class="code" href="class_game_object.html#a24d36b1a64504298700a7ae7111fad5d" title="The direction in which the object is facing, up, down, left, or right.">_facing</a>)
+<a name="l00023"></a>00023 {
+<a name="l00024"></a>00024 <span class="keywordflow">case</span> <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7">Maze::UP</a>:
+<a name="l00025"></a>00025 targetX = <a class="code" href="class_maze_math.html#a2314f211065f4dc7cb11469770fd2f1c" title="Rounds a value to the nearest integer.">MazeMath::round</a>(<a class="code" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614" title="The x coordinate of the object&#39;s position.">_x</a>);
+<a name="l00026"></a>00026 targetY = <a class="code" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e" title="The y coordinate of the object&#39;s position.">_y</a> - <a class="code" href="class_car.html#a84b3d05e98d66f358942193ff54dee51" title="The current speed that the Car is moving at.">_speed</a>;
+<a name="l00027"></a>00027 checkX = floor(targetX);
+<a name="l00028"></a>00028 checkY = floor(targetY);
+<a name="l00029"></a>00029 <span class="keywordflow">break</span>;
+<a name="l00030"></a>00030 <span class="keywordflow">case</span> <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa89ab143d020541957ab5e0e9cfdd3e23">Maze::DOWN</a>:
+<a name="l00031"></a>00031 targetX = <a class="code" href="class_maze_math.html#a2314f211065f4dc7cb11469770fd2f1c" title="Rounds a value to the nearest integer.">MazeMath::round</a>(<a class="code" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614" title="The x coordinate of the object&#39;s position.">_x</a>);
+<a name="l00032"></a>00032 targetY = <a class="code" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e" title="The y coordinate of the object&#39;s position.">_y</a> + <a class="code" href="class_car.html#a84b3d05e98d66f358942193ff54dee51" title="The current speed that the Car is moving at.">_speed</a>;
+<a name="l00033"></a>00033 checkX = floor(targetX);
+<a name="l00034"></a>00034 checkY = ceil(targetY);
+<a name="l00035"></a>00035 <span class="keywordflow">break</span>;
+<a name="l00036"></a>00036 <span class="keywordflow">case</span> <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28faab1a1fe0274cd139b3c0116d8caf458c">Maze::LEFT</a>:
+<a name="l00037"></a>00037 targetX = <a class="code" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614" title="The x coordinate of the object&#39;s position.">_x</a> - <a class="code" href="class_car.html#a84b3d05e98d66f358942193ff54dee51" title="The current speed that the Car is moving at.">_speed</a>;
+<a name="l00038"></a>00038 targetY = <a class="code" href="class_maze_math.html#a2314f211065f4dc7cb11469770fd2f1c" title="Rounds a value to the nearest integer.">MazeMath::round</a>(<a class="code" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e" title="The y coordinate of the object&#39;s position.">_y</a>);
+<a name="l00039"></a>00039 checkX = floor(targetX);
+<a name="l00040"></a>00040 checkY = floor(targetY);
+<a name="l00041"></a>00041 <span class="keywordflow">break</span>;
+<a name="l00042"></a>00042 <span class="keywordflow">case</span> <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa699ae3e1d989e9b12bd200aa86e29e9d">Maze::RIGHT</a>:
+<a name="l00043"></a>00043 targetX = <a class="code" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614" title="The x coordinate of the object&#39;s position.">_x</a> + <a class="code" href="class_car.html#a84b3d05e98d66f358942193ff54dee51" title="The current speed that the Car is moving at.">_speed</a>;
+<a name="l00044"></a>00044 targetY = <a class="code" href="class_maze_math.html#a2314f211065f4dc7cb11469770fd2f1c" title="Rounds a value to the nearest integer.">MazeMath::round</a>(<a class="code" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e" title="The y coordinate of the object&#39;s position.">_y</a>);
+<a name="l00045"></a>00045 checkX = ceil(targetX);
+<a name="l00046"></a>00046 checkY = floor(targetY);
+<a name="l00047"></a>00047 <span class="keywordflow">break</span>;
+<a name="l00048"></a>00048 }
+<a name="l00049"></a>00049
+<a name="l00050"></a>00050 <span class="keywordflow">if</span> (!maze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(checkX, checkY))
+<a name="l00051"></a>00051 {
+<a name="l00052"></a>00052 <span class="comment">//can move that way</span>
+<a name="l00053"></a>00053 <a class="code" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614" title="The x coordinate of the object&#39;s position.">_x</a> = targetX;
+<a name="l00054"></a>00054 <a class="code" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e" title="The y coordinate of the object&#39;s position.">_y</a> = targetY;
+<a name="l00055"></a>00055 }
+<a name="l00056"></a>00056 <span class="keywordflow">else</span>
+<a name="l00057"></a>00057 {
+<a name="l00058"></a>00058 <span class="comment">//can not move to targetX and targetY, but move to the edge of current block</span>
+<a name="l00059"></a>00059 <span class="keywordflow">switch</span>(<a class="code" href="class_game_object.html#a24d36b1a64504298700a7ae7111fad5d" title="The direction in which the object is facing, up, down, left, or right.">_facing</a>)
+<a name="l00060"></a>00060 {
+<a name="l00061"></a>00061 <span class="keywordflow">case</span> <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7">Maze::UP</a>:
+<a name="l00062"></a>00062 <a class="code" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e" title="The y coordinate of the object&#39;s position.">_y</a> = floor(<a class="code" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e" title="The y coordinate of the object&#39;s position.">_y</a>);
+<a name="l00063"></a>00063 <span class="keywordflow">break</span>;
+<a name="l00064"></a>00064 <span class="keywordflow">case</span> <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa89ab143d020541957ab5e0e9cfdd3e23">Maze::DOWN</a>:
+<a name="l00065"></a>00065 <a class="code" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e" title="The y coordinate of the object&#39;s position.">_y</a> = ceil(<a class="code" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e" title="The y coordinate of the object&#39;s position.">_y</a>);
+<a name="l00066"></a>00066 <span class="keywordflow">break</span>;
+<a name="l00067"></a>00067 <span class="keywordflow">case</span> <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28faab1a1fe0274cd139b3c0116d8caf458c">Maze::LEFT</a>:
+<a name="l00068"></a>00068 <a class="code" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614" title="The x coordinate of the object&#39;s position.">_x</a> = floor(<a class="code" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614" title="The x coordinate of the object&#39;s position.">_x</a>);
+<a name="l00069"></a>00069 <span class="keywordflow">break</span>;
+<a name="l00070"></a>00070 <span class="keywordflow">case</span> <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa699ae3e1d989e9b12bd200aa86e29e9d">Maze::RIGHT</a>:
+<a name="l00071"></a>00071 <a class="code" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614" title="The x coordinate of the object&#39;s position.">_x</a> = ceil(<a class="code" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614" title="The x coordinate of the object&#39;s position.">_x</a>);
+<a name="l00072"></a>00072 <span class="keywordflow">break</span>;
+<a name="l00073"></a>00073 }
+<a name="l00074"></a>00074 }
+<a name="l00075"></a>00075 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_car_8h.html b/docs/html/_car_8h.html
new file mode 100644
index 0000000..9e43493
--- /dev/null
+++ b/docs/html/_car_8h.html
@@ -0,0 +1,121 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/Car.h File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">source/logic/Car.h File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &lt;cmath&gt;</code><br/>
+<code>#include &quot;../presentation/BitmapStore.h&quot;</code><br/>
+<code>#include &quot;../logic/GameObject.h&quot;</code><br/>
+<code>#include &quot;../logic/MazeMath.h&quot;</code><br/>
+</div>
+<p><a href="_car_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_car.html">Car</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> that moves through the maze and changes direction. <a href="class_car.html#details">More...</a><br/></td></tr>
+</table>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_car_8h_source.html b/docs/html/_car_8h_source.html
new file mode 100644
index 0000000..ea3d522
--- /dev/null
+++ b/docs/html/_car_8h_source.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/Car.h Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/Car.h</div> </div>
+</div>
+<div class="contents">
+<a href="_car_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef CAR_H</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define CAR_H</span>
+<a name="l00003"></a>00003 <span class="preprocessor"></span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;cmath&gt;</span>
+<a name="l00005"></a>00005 <span class="keyword">using namespace </span>std;
+<a name="l00006"></a>00006
+<a name="l00007"></a>00007 <span class="preprocessor">#include &quot;../presentation/BitmapStore.h&quot;</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#include &quot;../logic/GameObject.h&quot;</span>
+<a name="l00009"></a>00009 <span class="preprocessor">#include &quot;../logic/MazeMath.h&quot;</span>
+<a name="l00010"></a>00010
+<a name="l00020"></a><a class="code" href="class_car.html">00020</a> <span class="keyword">class </span><a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a> : <span class="keyword">public</span> <a class="code" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a>
+<a name="l00021"></a>00021 {
+<a name="l00022"></a>00022 <span class="keyword">public</span>:
+<a name="l00031"></a>00031 <a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>(<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386" title="Type used to define which image should be returned.">BitmapStore::Image</a> image, <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f" title="Defines the directions in which movement can happen in the maze.">Maze::Direction</a> facing);
+<a name="l00032"></a>00032
+<a name="l00033"></a>00033 <span class="comment">//assignment and copy constructors have been left with the compiler generated versions</span>
+<a name="l00034"></a>00034
+<a name="l00040"></a>00040 <span class="keywordtype">double</span> speed() <span class="keyword">const</span>;
+<a name="l00041"></a>00041
+<a name="l00042"></a>00042 <span class="keyword">protected</span>:
+<a name="l00051"></a>00051 <span class="keywordtype">void</span> move(<span class="keyword">const</span> <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>&amp; maze);
+<a name="l00052"></a>00052
+<a name="l00053"></a><a class="code" href="class_car.html#a84b3d05e98d66f358942193ff54dee51">00053</a> <span class="keywordtype">double</span> <a class="code" href="class_car.html#a84b3d05e98d66f358942193ff54dee51" title="The current speed that the Car is moving at.">_speed</a>;
+<a name="l00054"></a><a class="code" href="class_car.html#a7b942584de02f8af6f571a60a1cf32ba">00054</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">double</span> _baseSpeed = 0.1;
+<a name="l00055"></a>00055 };
+<a name="l00056"></a>00056
+<a name="l00057"></a>00057 <span class="preprocessor">#endif // CAR_H</span>
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_checkpoint_8cpp.html b/docs/html/_checkpoint_8cpp.html
new file mode 100644
index 0000000..0d53ea6
--- /dev/null
+++ b/docs/html/_checkpoint_8cpp.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/Checkpoint.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/Checkpoint.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_checkpoint_8h_source.html">Checkpoint.h</a>&quot;</code><br/>
+</div>
+<p><a href="_checkpoint_8cpp_source.html">Go to the source code of this file.</a></p>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_checkpoint_8cpp_source.html b/docs/html/_checkpoint_8cpp_source.html
new file mode 100644
index 0000000..0f2071d
--- /dev/null
+++ b/docs/html/_checkpoint_8cpp_source.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/Checkpoint.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/Checkpoint.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="_checkpoint_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &quot;<a class="code" href="_checkpoint_8h.html">Checkpoint.h</a>&quot;</span>
+<a name="l00002"></a>00002
+<a name="l00003"></a>00003 <span class="keywordtype">int</span> <a class="code" href="class_checkpoint.html#acb3ffc612d2a496b6b95752878818ff6" title="Count of the number of Checkpoints currently in existence.">Checkpoint::_checkpointCount</a> = 0;
+<a name="l00004"></a>00004
+<a name="l00005"></a><a class="code" href="class_checkpoint.html#a20c371a9e21ac0092b652a7d63f46f85">00005</a> <a class="code" href="class_checkpoint.html#a20c371a9e21ac0092b652a7d63f46f85" title="Creates a checkpoint at the given coordinates.">Checkpoint::Checkpoint</a>(<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y)
+<a name="l00006"></a>00006 :<a class="code" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a>(x,y,<a class="code" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a>::CHECKPOINT)
+<a name="l00007"></a>00007 {
+<a name="l00008"></a>00008 ++<a class="code" href="class_checkpoint.html#acb3ffc612d2a496b6b95752878818ff6" title="Count of the number of Checkpoints currently in existence.">_checkpointCount</a>;
+<a name="l00009"></a>00009 }
+<a name="l00010"></a>00010
+<a name="l00011"></a><a class="code" href="class_checkpoint.html#ac94e0d92110fc4105bf5bf82ef4a5818">00011</a> <a class="code" href="class_checkpoint.html#a20c371a9e21ac0092b652a7d63f46f85" title="Creates a checkpoint at the given coordinates.">Checkpoint::Checkpoint</a>(<span class="keyword">const</span> <a class="code" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>&amp; ref)
+<a name="l00012"></a>00012 :<a class="code" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a>(ref._x,ref._y,ref._image)
+<a name="l00013"></a>00013 {
+<a name="l00014"></a>00014 ++<a class="code" href="class_checkpoint.html#acb3ffc612d2a496b6b95752878818ff6" title="Count of the number of Checkpoints currently in existence.">_checkpointCount</a>;
+<a name="l00015"></a>00015 }
+<a name="l00016"></a>00016
+<a name="l00017"></a><a class="code" href="class_checkpoint.html#a7fff1a4a6a71c2150a969fbe40d01c34">00017</a> <a class="code" href="class_checkpoint.html#a7fff1a4a6a71c2150a969fbe40d01c34" title="Destructor, decreases the number of Checkpoints in existence.">Checkpoint::~Checkpoint</a>()
+<a name="l00018"></a>00018 {
+<a name="l00019"></a>00019 --<a class="code" href="class_checkpoint.html#acb3ffc612d2a496b6b95752878818ff6" title="Count of the number of Checkpoints currently in existence.">_checkpointCount</a>;
+<a name="l00020"></a>00020 }
+<a name="l00021"></a>00021
+<a name="l00022"></a><a class="code" href="class_checkpoint.html#a872d8574b6f0a7960854fb1175e05f13">00022</a> <span class="keywordtype">int</span> <a class="code" href="class_checkpoint.html#a872d8574b6f0a7960854fb1175e05f13" title="Function for accessing the number of checkpoints that currently exist.">Checkpoint::checkpointCount</a>()
+<a name="l00023"></a>00023 {
+<a name="l00024"></a>00024 <span class="keywordflow">return</span> <a class="code" href="class_checkpoint.html#acb3ffc612d2a496b6b95752878818ff6" title="Count of the number of Checkpoints currently in existence.">_checkpointCount</a>;
+<a name="l00025"></a>00025 }
+<a name="l00026"></a>00026
+<a name="l00027"></a><a class="code" href="class_checkpoint.html#ad8f4b9da968e6b1f07080dc6f61282f7">00027</a> <span class="keywordtype">void</span> <a class="code" href="class_checkpoint.html#ad8f4b9da968e6b1f07080dc6f61282f7" title="Function to be called when a PlayerCar collects the Checkpoint.">Checkpoint::collect</a>()
+<a name="l00028"></a>00028 {
+<a name="l00029"></a>00029 <a class="code" href="class_game_object.html#adc4a399cc59d5706f75748fb3846faec" title="True if the object has been marked for destruction.">_destroyed</a> = <span class="keyword">true</span>;
+<a name="l00030"></a>00030 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_checkpoint_8h.html b/docs/html/_checkpoint_8h.html
new file mode 100644
index 0000000..7fb441b
--- /dev/null
+++ b/docs/html/_checkpoint_8h.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/Checkpoint.h File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">source/logic/Checkpoint.h File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;../logic/GameObject.h&quot;</code><br/>
+<code>#include &quot;../presentation/BitmapStore.h&quot;</code><br/>
+</div>
+<p><a href="_checkpoint_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_checkpoint.html">Checkpoint</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> that the player needs to pick up by driving over. <a href="class_checkpoint.html#details">More...</a><br/></td></tr>
+</table>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_checkpoint_8h_source.html b/docs/html/_checkpoint_8h_source.html
new file mode 100644
index 0000000..27a7f35
--- /dev/null
+++ b/docs/html/_checkpoint_8h_source.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/Checkpoint.h Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/Checkpoint.h</div> </div>
+</div>
+<div class="contents">
+<a href="_checkpoint_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef CHECKPOINT_H</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define CHECKPOINT_H</span>
+<a name="l00003"></a>00003 <span class="preprocessor"></span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include &quot;../logic/GameObject.h&quot;</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include &quot;../presentation/BitmapStore.h&quot;</span>
+<a name="l00006"></a>00006
+<a name="l00015"></a><a class="code" href="class_checkpoint.html">00015</a> <span class="keyword">class </span><a class="code" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>: <span class="keyword">public</span> <a class="code" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a>
+<a name="l00016"></a>00016 {
+<a name="l00017"></a>00017 <span class="keyword">public</span>:
+<a name="l00023"></a>00023 <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="class_checkpoint.html#a872d8574b6f0a7960854fb1175e05f13" title="Function for accessing the number of checkpoints that currently exist.">checkpointCount</a>();
+<a name="l00024"></a>00024
+<a name="l00031"></a>00031 <a class="code" href="class_checkpoint.html#a20c371a9e21ac0092b652a7d63f46f85" title="Creates a checkpoint at the given coordinates.">Checkpoint</a>(<span class="keywordtype">double</span> <a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>, <span class="keywordtype">double</span> <a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>);
+<a name="l00035"></a>00035 <a class="code" href="class_checkpoint.html#a20c371a9e21ac0092b652a7d63f46f85" title="Creates a checkpoint at the given coordinates.">Checkpoint</a>(<span class="keyword">const</span> <a class="code" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>&amp; ref);
+<a name="l00036"></a>00036
+<a name="l00037"></a>00037 <span class="comment">//assignment operator has been left with the compiler generated version.</span>
+<a name="l00038"></a>00038
+<a name="l00042"></a>00042 <a class="code" href="class_checkpoint.html#a7fff1a4a6a71c2150a969fbe40d01c34" title="Destructor, decreases the number of Checkpoints in existence.">~Checkpoint</a>();
+<a name="l00043"></a>00043
+<a name="l00047"></a>00047 <span class="keywordtype">void</span> <a class="code" href="class_checkpoint.html#ad8f4b9da968e6b1f07080dc6f61282f7" title="Function to be called when a PlayerCar collects the Checkpoint.">collect</a>();
+<a name="l00048"></a>00048
+<a name="l00049"></a>00049 <span class="keyword">private</span>:
+<a name="l00050"></a><a class="code" href="class_checkpoint.html#acb3ffc612d2a496b6b95752878818ff6">00050</a> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="class_checkpoint.html#acb3ffc612d2a496b6b95752878818ff6" title="Count of the number of Checkpoints currently in existence.">_checkpointCount</a>;
+<a name="l00051"></a>00051 };
+<a name="l00052"></a>00052
+<a name="l00053"></a>00053 <span class="preprocessor">#endif // CHECKPOINT_H</span>
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_collision_detector_8cpp.html b/docs/html/_collision_detector_8cpp.html
new file mode 100644
index 0000000..3d34fe5
--- /dev/null
+++ b/docs/html/_collision_detector_8cpp.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/CollisionDetector.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/CollisionDetector.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_collision_detector_8h_source.html">CollisionDetector.h</a>&quot;</code><br/>
+</div>
+<p><a href="_collision_detector_8cpp_source.html">Go to the source code of this file.</a></p>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_collision_detector_8cpp_source.html b/docs/html/_collision_detector_8cpp_source.html
new file mode 100644
index 0000000..4c6b1e4
--- /dev/null
+++ b/docs/html/_collision_detector_8cpp_source.html
@@ -0,0 +1,171 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/CollisionDetector.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/CollisionDetector.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="_collision_detector_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &quot;<a class="code" href="_collision_detector_8h.html">CollisionDetector.h</a>&quot;</span>
+<a name="l00002"></a>00002
+<a name="l00003"></a><a class="code" href="class_collision_detector.html#a6ee96032c26ceeab038d2702d7064c7b">00003</a> <span class="keywordtype">void</span> <a class="code" href="class_collision_detector.html#a6ee96032c26ceeab038d2702d7064c7b" title="Checks for collisions between all relevant pairs of objects, and calls the relevant collision functio...">CollisionDetector::checkCollisions</a>(list&lt;PlayerCar&gt;&amp; players, list&lt;EnemyCar&gt;&amp; enemies, list&lt;Checkpoint&gt;&amp; checkpoints, list&lt;Rock&gt;&amp; rocks, list&lt;Smokescreen&gt;&amp; smokescreens)
+<a name="l00004"></a>00004 {
+<a name="l00005"></a>00005 <span class="keywordflow">for</span> (list&lt;PlayerCar&gt;::iterator playIter = players.begin(); playIter!=players.end(); ++playIter)
+<a name="l00006"></a>00006 {
+<a name="l00007"></a>00007 <span class="keywordflow">for</span> (list&lt;EnemyCar&gt;::iterator enemyIter = enemies.begin(); enemyIter!=enemies.end(); ++enemyIter)
+<a name="l00008"></a>00008 {
+<a name="l00009"></a>00009 <span class="keywordflow">if</span> ((abs(playIter-&gt;x() - enemyIter-&gt;x())&lt;1)&amp;&amp;(abs(playIter-&gt;y() - enemyIter-&gt;y())&lt;1))
+<a name="l00010"></a>00010 {
+<a name="l00011"></a>00011 <a class="code" href="class_collision_detector.html#a9d013c0f8e15cbfd4741a0789ba507fe" title="Collision between a PlayerCar and a Checkpoint.">collision</a>(*playIter, *enemyIter);
+<a name="l00012"></a>00012 }
+<a name="l00013"></a>00013 }
+<a name="l00014"></a>00014
+<a name="l00015"></a>00015 <span class="keywordflow">for</span> (list&lt;Checkpoint&gt;::iterator checkIter = checkpoints.begin(); checkIter!=checkpoints.end(); ++checkIter)
+<a name="l00016"></a>00016 {
+<a name="l00017"></a>00017 <span class="keywordflow">if</span> ((abs(playIter-&gt;x() - checkIter-&gt;x())&lt;1)&amp;&amp;(abs(playIter-&gt;y() - checkIter-&gt;y())&lt;1))
+<a name="l00018"></a>00018 {
+<a name="l00019"></a>00019 <a class="code" href="class_collision_detector.html#a9d013c0f8e15cbfd4741a0789ba507fe" title="Collision between a PlayerCar and a Checkpoint.">collision</a>(*playIter, *checkIter);
+<a name="l00020"></a>00020 }
+<a name="l00021"></a>00021 }
+<a name="l00022"></a>00022
+<a name="l00023"></a>00023 <span class="keywordflow">for</span> (list&lt;Rock&gt;::iterator rockIter = rocks.begin(); rockIter!=rocks.end(); ++rockIter)
+<a name="l00024"></a>00024 {
+<a name="l00025"></a>00025 <span class="keywordflow">if</span> ((abs(playIter-&gt;x() - rockIter-&gt;x())&lt;1)&amp;&amp;(abs(playIter-&gt;y() - rockIter-&gt;y())&lt;1))
+<a name="l00026"></a>00026 {
+<a name="l00027"></a>00027 <a class="code" href="class_collision_detector.html#a9d013c0f8e15cbfd4741a0789ba507fe" title="Collision between a PlayerCar and a Checkpoint.">collision</a>(*playIter, *rockIter);
+<a name="l00028"></a>00028 }
+<a name="l00029"></a>00029 }
+<a name="l00030"></a>00030 }
+<a name="l00031"></a>00031
+<a name="l00032"></a>00032 <span class="keywordflow">for</span> (list&lt;EnemyCar&gt;::iterator enemyIter = enemies.begin(); enemyIter!=enemies.end(); ++enemyIter)
+<a name="l00033"></a>00033 {
+<a name="l00034"></a>00034 <span class="keywordflow">for</span> (list&lt;Smokescreen&gt;::iterator smokeIter = smokescreens.begin(); smokeIter!=smokescreens.end(); ++smokeIter)
+<a name="l00035"></a>00035 {
+<a name="l00036"></a>00036 <span class="keywordflow">if</span> ((abs(enemyIter-&gt;x() - smokeIter-&gt;x())&lt;1)&amp;&amp;(abs(enemyIter-&gt;y() - smokeIter-&gt;y())&lt;1))
+<a name="l00037"></a>00037 {
+<a name="l00038"></a>00038 <a class="code" href="class_collision_detector.html#a9d013c0f8e15cbfd4741a0789ba507fe" title="Collision between a PlayerCar and a Checkpoint.">collision</a>(*enemyIter, *smokeIter);
+<a name="l00039"></a>00039 }
+<a name="l00040"></a>00040 }
+<a name="l00041"></a>00041 }
+<a name="l00042"></a>00042 }
+<a name="l00043"></a>00043
+<a name="l00044"></a><a class="code" href="class_collision_detector.html#a9d013c0f8e15cbfd4741a0789ba507fe">00044</a> <span class="keywordtype">void</span> <a class="code" href="class_collision_detector.html#a9d013c0f8e15cbfd4741a0789ba507fe" title="Collision between a PlayerCar and a Checkpoint.">CollisionDetector::collision</a>(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>&amp; player, <a class="code" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>&amp; checkpoint)
+<a name="l00045"></a>00045 {
+<a name="l00046"></a>00046 player.<a class="code" href="class_player_car.html#aaa8b9d66c0c4e4eab5a303dd0a4e5f39" title="Function that is called when the PlayerCar collides with a Checkpoint.">gotCheckpoint</a>();
+<a name="l00047"></a>00047 checkpoint.<a class="code" href="class_checkpoint.html#ad8f4b9da968e6b1f07080dc6f61282f7" title="Function to be called when a PlayerCar collects the Checkpoint.">collect</a>();
+<a name="l00048"></a>00048 }
+<a name="l00049"></a>00049
+<a name="l00050"></a><a class="code" href="class_collision_detector.html#ad9502a42ff9f43804284d0128794edaa">00050</a> <span class="keywordtype">void</span> <a class="code" href="class_collision_detector.html#a9d013c0f8e15cbfd4741a0789ba507fe" title="Collision between a PlayerCar and a Checkpoint.">CollisionDetector::collision</a>(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>&amp; player, <a class="code" href="class_rock.html" title="A game object that acts as an obstacle to the player.">Rock</a>&amp; rock)
+<a name="l00051"></a>00051 {
+<a name="l00052"></a>00052 player.<a class="code" href="class_player_car.html#a1bdd1dbdf1158b740cd1bcb757f8c578" title="Function that is called when the PlayerCar collides with an EnemyCar.">crash</a>();
+<a name="l00053"></a>00053 }
+<a name="l00054"></a>00054
+<a name="l00055"></a><a class="code" href="class_collision_detector.html#a36e9c23d49ee7be68277c7d4e4f27d2a">00055</a> <span class="keywordtype">void</span> <a class="code" href="class_collision_detector.html#a9d013c0f8e15cbfd4741a0789ba507fe" title="Collision between a PlayerCar and a Checkpoint.">CollisionDetector::collision</a>(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>&amp; player, <a class="code" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>&amp; enemy)
+<a name="l00056"></a>00056 {
+<a name="l00057"></a>00057 player.<a class="code" href="class_player_car.html#a1bdd1dbdf1158b740cd1bcb757f8c578" title="Function that is called when the PlayerCar collides with an EnemyCar.">crash</a>();
+<a name="l00058"></a>00058 enemy.<a class="code" href="class_enemy_car.html#ac5836046e802a749abb2308886b34060" title="Function that is called when an EnemyCar crashes into a PlayerCar.">crash</a>();
+<a name="l00059"></a>00059 }
+<a name="l00060"></a>00060
+<a name="l00061"></a><a class="code" href="class_collision_detector.html#a68572f5ec6cf32f28f07bda7a7b96452">00061</a> <span class="keywordtype">void</span> <a class="code" href="class_collision_detector.html#a9d013c0f8e15cbfd4741a0789ba507fe" title="Collision between a PlayerCar and a Checkpoint.">CollisionDetector::collision</a>(<a class="code" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>&amp; enemy, <a class="code" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a>&amp; smokescreen)
+<a name="l00062"></a>00062 {
+<a name="l00063"></a>00063 enemy.<a class="code" href="class_enemy_car.html#aeb8bf92c965ab33f793b0274a02f142c" title="Function that is called when an EnemyCar drives into a Smokescreen.">blind</a>();
+<a name="l00064"></a>00064 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_collision_detector_8h.html b/docs/html/_collision_detector_8h.html
new file mode 100644
index 0000000..6c4eea3
--- /dev/null
+++ b/docs/html/_collision_detector_8h.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/CollisionDetector.h File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">source/logic/CollisionDetector.h File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &lt;list&gt;</code><br/>
+<code>#include &quot;../logic/PlayerCar.h&quot;</code><br/>
+<code>#include &quot;../logic/EnemyCar.h&quot;</code><br/>
+<code>#include &quot;../logic/Checkpoint.h&quot;</code><br/>
+<code>#include &quot;../logic/Rock.h&quot;</code><br/>
+<code>#include &quot;../logic/Smokescreen.h&quot;</code><br/>
+</div>
+<p><a href="_collision_detector_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_collision_detector.html">CollisionDetector</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Object for handling collisions between GameObjects. <a href="class_collision_detector.html#details">More...</a><br/></td></tr>
+</table>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_collision_detector_8h_source.html b/docs/html/_collision_detector_8h_source.html
new file mode 100644
index 0000000..675431f
--- /dev/null
+++ b/docs/html/_collision_detector_8h_source.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/CollisionDetector.h Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/CollisionDetector.h</div> </div>
+</div>
+<div class="contents">
+<a href="_collision_detector_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef COLLISIONDETECTOR_H</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define COLLISIONDETECTOR_H</span>
+<a name="l00003"></a>00003 <span class="preprocessor"></span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;list&gt;</span>
+<a name="l00005"></a>00005 <span class="keyword">using namespace </span>std;
+<a name="l00006"></a>00006
+<a name="l00007"></a>00007 <span class="preprocessor">#include &quot;../logic/PlayerCar.h&quot;</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#include &quot;../logic/EnemyCar.h&quot;</span>
+<a name="l00009"></a>00009 <span class="preprocessor">#include &quot;../logic/Checkpoint.h&quot;</span>
+<a name="l00010"></a>00010 <span class="preprocessor">#include &quot;../logic/Rock.h&quot;</span>
+<a name="l00011"></a>00011 <span class="preprocessor">#include &quot;../logic/Smokescreen.h&quot;</span>
+<a name="l00012"></a>00012
+<a name="l00022"></a><a class="code" href="class_collision_detector.html">00022</a> <span class="keyword">class </span><a class="code" href="class_collision_detector.html" title="Object for handling collisions between GameObjects.">CollisionDetector</a>
+<a name="l00023"></a>00023 {
+<a name="l00024"></a>00024 <span class="keyword">public</span>:
+<a name="l00037"></a>00037 <span class="keywordtype">void</span> checkCollisions(list&lt;PlayerCar&gt;&amp; players, list&lt;EnemyCar&gt;&amp; enemies, list&lt;Checkpoint&gt;&amp; checkpoints, list&lt;Rock&gt;&amp; rocks, list&lt;Smokescreen&gt;&amp; smokescreens);
+<a name="l00038"></a>00038
+<a name="l00039"></a>00039 <span class="comment">//assignment and copy constructors have been left with the compiler generated versions</span>
+<a name="l00040"></a>00040
+<a name="l00041"></a>00041 <span class="keyword">private</span>:
+<a name="l00048"></a>00048 <span class="keywordtype">void</span> collision(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>&amp; player, <a class="code" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>&amp; checkpoint);
+<a name="l00049"></a>00049
+<a name="l00056"></a>00056 <span class="keywordtype">void</span> collision(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>&amp; player, <a class="code" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>&amp; enemy);
+<a name="l00057"></a>00057
+<a name="l00064"></a>00064 <span class="keywordtype">void</span> collision(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>&amp; player, <a class="code" href="class_rock.html" title="A game object that acts as an obstacle to the player.">Rock</a>&amp; rock);
+<a name="l00065"></a>00065
+<a name="l00072"></a>00072 <span class="keywordtype">void</span> collision(<a class="code" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>&amp; enemy, <a class="code" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a>&amp; smokescreen);
+<a name="l00073"></a>00073 };
+<a name="l00074"></a>00074
+<a name="l00075"></a>00075 <span class="preprocessor">#endif // COLLISIONDETECTOR_H</span>
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_colour_store_8cpp.html b/docs/html/_colour_store_8cpp.html
new file mode 100644
index 0000000..ead690a
--- /dev/null
+++ b/docs/html/_colour_store_8cpp.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/ColourStore.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/presentation/ColourStore.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_colour_store_8h_source.html">ColourStore.h</a>&quot;</code><br/>
+</div>
+<p><a href="_colour_store_8cpp_source.html">Go to the source code of this file.</a></p>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_colour_store_8cpp_source.html b/docs/html/_colour_store_8cpp_source.html
new file mode 100644
index 0000000..8b28e13
--- /dev/null
+++ b/docs/html/_colour_store_8cpp_source.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/ColourStore.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/presentation/ColourStore.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="_colour_store_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &quot;<a class="code" href="_colour_store_8h.html">ColourStore.h</a>&quot;</span>
+<a name="l00002"></a>00002
+<a name="l00003"></a><a class="code" href="class_colour_store.html#a667f2e3c6d5b6eb553f58724e58bbed0">00003</a> <a class="code" href="class_colour_store.html#a667f2e3c6d5b6eb553f58724e58bbed0" title="Creates the ColourStore object and initialises all of the colours.">ColourStore::ColourStore</a>()
+<a name="l00004"></a>00004 {
+<a name="l00005"></a>00005 <a class="code" href="class_colour_store.html#ad3f729c8e9f6a94bacd85e6db47e2e82" title="Initialises all of the relevant colours.">populateColours</a>();
+<a name="l00006"></a>00006 }
+<a name="l00007"></a>00007
+<a name="l00008"></a><a class="code" href="class_colour_store.html#ad3f729c8e9f6a94bacd85e6db47e2e82">00008</a> <span class="keywordtype">void</span> <a class="code" href="class_colour_store.html#ad3f729c8e9f6a94bacd85e6db47e2e82" title="Initialises all of the relevant colours.">ColourStore::populateColours</a>()
+<a name="l00009"></a>00009 {
+<a name="l00010"></a>00010 <a class="code" href="class_colour_store.html#acb64b1ffc465fa752a2f282da4c9afba">_colours</a>[<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386acdaf29947fecd91b452e554a75fb9e92">BitmapStore::PLAYER</a>] = al_map_rgb(0,255,255);
+<a name="l00011"></a>00011 <a class="code" href="class_colour_store.html#acb64b1ffc465fa752a2f282da4c9afba">_colours</a>[<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a8a7d9a89e243914ca702660237d4f81d">BitmapStore::ENEMY</a>] = al_map_rgb(255,0,0);
+<a name="l00012"></a>00012 <a class="code" href="class_colour_store.html#acb64b1ffc465fa752a2f282da4c9afba">_colours</a>[<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a780d6b9e20ec37fbaf5a40ca846795d9">BitmapStore::CHECKPOINT</a>] = al_map_rgb(0,255,0);
+<a name="l00013"></a>00013 <a class="code" href="class_colour_store.html#acb64b1ffc465fa752a2f282da4c9afba">_colours</a>[<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386ae662e77b349a8e22c5826ef35b1b5d9a">BitmapStore::MAZE_WALL</a>] = al_map_rgb(255,255,255);
+<a name="l00014"></a>00014 <a class="code" href="class_colour_store.html#acb64b1ffc465fa752a2f282da4c9afba">_colours</a>[<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a4e2a075dff2c02bf40b134c9090d1f02">BitmapStore::MAZE_FLOOR</a>] = al_map_rgb(0,0,0);
+<a name="l00015"></a>00015 <a class="code" href="class_colour_store.html#acadd8e6ed32fe6535252c94124df04ca" title="Initialised to have an alpha of 0, and returned when the colour of an unlisted image is requested...">_transparent</a> = al_map_rgba(0,0,0,0);
+<a name="l00016"></a>00016 }
+<a name="l00017"></a>00017
+<a name="l00018"></a><a class="code" href="class_colour_store.html#ac8474c4e9b335215f03ec2c749847ad2">00018</a> ALLEGRO_COLOR <a class="code" href="class_colour_store.html#ac8474c4e9b335215f03ec2c749847ad2" title="Returns the colour associated with a given image.">ColourStore::getColour</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386" title="Type used to define which image should be returned.">BitmapStore::Image</a> image)
+<a name="l00019"></a>00019 {
+<a name="l00020"></a>00020 <span class="keywordflow">if</span> (<a class="code" href="class_colour_store.html#acb64b1ffc465fa752a2f282da4c9afba">_colours</a>.find(image) != <a class="code" href="class_colour_store.html#acb64b1ffc465fa752a2f282da4c9afba">_colours</a>.end())
+<a name="l00021"></a>00021 {
+<a name="l00022"></a>00022 <span class="keywordflow">return</span> <a class="code" href="class_colour_store.html#acb64b1ffc465fa752a2f282da4c9afba">_colours</a>[image];
+<a name="l00023"></a>00023 }
+<a name="l00024"></a>00024 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="class_colour_store.html#acadd8e6ed32fe6535252c94124df04ca" title="Initialised to have an alpha of 0, and returned when the colour of an unlisted image is requested...">_transparent</a>;
+<a name="l00025"></a>00025 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_colour_store_8h.html b/docs/html/_colour_store_8h.html
new file mode 100644
index 0000000..2a66a98
--- /dev/null
+++ b/docs/html/_colour_store_8h.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/ColourStore.h File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">source/presentation/ColourStore.h File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &lt;allegro5/allegro.h&gt;</code><br/>
+<code>#include &quot;../presentation/BitmapStore.h&quot;</code><br/>
+</div>
+<p><a href="_colour_store_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_colour_store.html">ColourStore</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Class for mapping <a class="el" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a> images to colours for use in the minimap. <a href="class_colour_store.html#details">More...</a><br/></td></tr>
+</table>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_colour_store_8h_source.html b/docs/html/_colour_store_8h_source.html
new file mode 100644
index 0000000..9f47a79
--- /dev/null
+++ b/docs/html/_colour_store_8h_source.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/ColourStore.h Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/presentation/ColourStore.h</div> </div>
+</div>
+<div class="contents">
+<a href="_colour_store_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef COLOURSTORE_H</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define COLOURSTORE_H</span>
+<a name="l00003"></a>00003 <span class="preprocessor"></span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;allegro5/allegro.h&gt;</span>
+<a name="l00005"></a>00005
+<a name="l00006"></a>00006 <span class="preprocessor">#include &quot;../presentation/BitmapStore.h&quot;</span>
+<a name="l00007"></a>00007
+<a name="l00014"></a><a class="code" href="class_colour_store.html">00014</a> <span class="keyword">class </span><a class="code" href="class_colour_store.html" title="Class for mapping BitmapStore images to colours for use in the minimap.">ColourStore</a>
+<a name="l00015"></a>00015 {
+<a name="l00016"></a>00016 <span class="keyword">public</span>:
+<a name="l00020"></a>00020 <a class="code" href="class_colour_store.html#a667f2e3c6d5b6eb553f58724e58bbed0" title="Creates the ColourStore object and initialises all of the colours.">ColourStore</a>();
+<a name="l00021"></a>00021
+<a name="l00032"></a>00032 ALLEGRO_COLOR <a class="code" href="class_colour_store.html#ac8474c4e9b335215f03ec2c749847ad2" title="Returns the colour associated with a given image.">getColour</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386" title="Type used to define which image should be returned.">BitmapStore::Image</a> image);
+<a name="l00033"></a>00033 <span class="keyword">private</span>:
+<a name="l00039"></a>00039 <a class="code" href="class_colour_store.html#a667f2e3c6d5b6eb553f58724e58bbed0" title="Creates the ColourStore object and initialises all of the colours.">ColourStore</a>(<span class="keyword">const</span> <a class="code" href="class_colour_store.html" title="Class for mapping BitmapStore images to colours for use in the minimap.">ColourStore</a>&amp; ref);
+<a name="l00045"></a>00045 <a class="code" href="class_colour_store.html" title="Class for mapping BitmapStore images to colours for use in the minimap.">ColourStore</a>&amp; <a class="code" href="class_colour_store.html#a2d3688dbcdf5f9f9b82ef50709c2f286" title="Unimplemented assignment operator.">operator=</a>(<span class="keyword">const</span> <a class="code" href="class_colour_store.html" title="Class for mapping BitmapStore images to colours for use in the minimap.">ColourStore</a>&amp; rhs);
+<a name="l00046"></a>00046
+<a name="l00047"></a><a class="code" href="class_colour_store.html#acb64b1ffc465fa752a2f282da4c9afba">00047</a> map&lt;BitmapStore::Image, ALLEGRO_COLOR&gt; <a class="code" href="class_colour_store.html#acb64b1ffc465fa752a2f282da4c9afba">_colours</a>;
+<a name="l00048"></a>00048
+<a name="l00052"></a><a class="code" href="class_colour_store.html#acadd8e6ed32fe6535252c94124df04ca">00052</a> ALLEGRO_COLOR <a class="code" href="class_colour_store.html#acadd8e6ed32fe6535252c94124df04ca" title="Initialised to have an alpha of 0, and returned when the colour of an unlisted image is requested...">_transparent</a>;
+<a name="l00053"></a>00053
+<a name="l00057"></a>00057 <span class="keywordtype">void</span> <a class="code" href="class_colour_store.html#ad3f729c8e9f6a94bacd85e6db47e2e82" title="Initialises all of the relevant colours.">populateColours</a>();
+<a name="l00058"></a>00058 };
+<a name="l00059"></a>00059
+<a name="l00060"></a>00060 <span class="preprocessor">#endif // COLOURSTORE_H</span>
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_config_8cpp.html b/docs/html/_config_8cpp.html
new file mode 100644
index 0000000..cb9e56a
--- /dev/null
+++ b/docs/html/_config_8cpp.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/data/Config.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/data/Config.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_config_8h_source.html">Config.h</a>&quot;</code><br/>
+</div>
+<p><a href="_config_8cpp_source.html">Go to the source code of this file.</a></p>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_config_8cpp_source.html b/docs/html/_config_8cpp_source.html
new file mode 100644
index 0000000..47e38eb
--- /dev/null
+++ b/docs/html/_config_8cpp_source.html
@@ -0,0 +1,212 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/data/Config.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/data/Config.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="_config_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &quot;<a class="code" href="_config_8h.html">Config.h</a>&quot;</span>
+<a name="l00002"></a>00002
+<a name="l00003"></a>00003 <span class="keyword">const</span> <span class="keywordtype">string</span> <a class="code" href="class_config.html#abebfdbe6033183421dcdb4cdb6fc9549" title="The key for the screen width setting, initialized to &quot;screen_width&quot;.">Config::SCREEN_WIDTH_KEY</a>(<span class="stringliteral">&quot;screen_width&quot;</span>);
+<a name="l00004"></a>00004 <span class="keyword">const</span> <span class="keywordtype">string</span> <a class="code" href="class_config.html#a5dd914d11bd6f43c06ad4682be0efaba" title="The key for the screen height setting, initialized to &quot;screen_height&quot;.">Config::SCREEN_HEIGHT_KEY</a>(<span class="stringliteral">&quot;screen_height&quot;</span>);
+<a name="l00005"></a>00005 <span class="keyword">const</span> <span class="keywordtype">string</span> <a class="code" href="class_config.html#ae2dd20bca46b767d2a30c32de7ab78cb" title="The key for the fullscreen setting, initialized to &quot;fullscreen&quot;.">Config::FULLSCREEN_KEY</a>(<span class="stringliteral">&quot;fullscreen&quot;</span>);
+<a name="l00006"></a>00006
+<a name="l00007"></a>00007 <span class="keyword">const</span> <span class="keywordtype">string</span> <a class="code" href="class_config.html#ad6f88b173db3508eaeb7b569655b5cf2" title="The default value for the screen width setting, initialized to 800.">Config::SCREEN_WIDTH_DEFAULT</a>(<span class="stringliteral">&quot;800&quot;</span>);
+<a name="l00008"></a>00008 <span class="keyword">const</span> <span class="keywordtype">string</span> <a class="code" href="class_config.html#a2382c43dd0d51b3d52bf88d18438c579" title="The default value for the screen height setting, initialized to 600.">Config::SCREEN_HEIGHT_DEFAULT</a>(<span class="stringliteral">&quot;600&quot;</span>);
+<a name="l00009"></a>00009 <span class="keyword">const</span> <span class="keywordtype">string</span> <a class="code" href="class_config.html#a3195b4273ebe9ac691167bff71394720" title="The default value for the fullscreen setting, initialized to false.">Config::FULLSCREEN_DEFAULT</a>(<span class="stringliteral">&quot;false&quot;</span>);
+<a name="l00010"></a>00010
+<a name="l00011"></a>00011
+<a name="l00012"></a><a class="code" href="class_config.html#aab967ce080511b4ae5bf578cba5237d3">00012</a> <a class="code" href="class_config.html#aab967ce080511b4ae5bf578cba5237d3" title="Constructs a Config object from a file with the given path.">Config::Config</a>(<span class="keyword">const</span> <span class="keywordtype">string</span>&amp; filename)
+<a name="l00013"></a>00013 :_screenWidth(0),
+<a name="l00014"></a>00014 _screenHeight(0)
+<a name="l00015"></a>00015 {
+<a name="l00016"></a>00016 ifstream inStream(filename.c_str(), fstream::in);
+<a name="l00017"></a>00017
+<a name="l00018"></a>00018 map&lt;string, string&gt; readValues;
+<a name="l00019"></a>00019 map&lt;string, string&gt; unfoundValues;
+<a name="l00020"></a>00020 <a class="code" href="class_config.html#aa9656bf85fa15fd4e90a99558f880602" title="Reads all of the settings defined in a file into a map.">readFile</a>(inStream, readValues);
+<a name="l00021"></a>00021 <a class="code" href="class_config.html#ac31c5164b58f86c2a9ecaf21ac1f2202" title="Initialises the Config option&#39;s parameters to those in the readValues map.">fillValues</a>(readValues, unfoundValues);
+<a name="l00022"></a>00022
+<a name="l00023"></a>00023 inStream.close();
+<a name="l00024"></a>00024
+<a name="l00025"></a>00025 ofstream outStream(filename.c_str(), fstream::app);
+<a name="l00026"></a>00026
+<a name="l00027"></a>00027 <a class="code" href="class_config.html#a54612c3ce193bea917d3088175e16d43" title="Writes settings that were not found in the file to the file with default values.">writeUnfoundValues</a>(outStream, unfoundValues);
+<a name="l00028"></a>00028
+<a name="l00029"></a>00029 outStream.close();
+<a name="l00030"></a>00030 }
+<a name="l00031"></a>00031
+<a name="l00032"></a><a class="code" href="class_config.html#a3bb73797396d2d5ba8c9956730dfc4db">00032</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_config.html#a3bb73797396d2d5ba8c9956730dfc4db" title="Function for accessing the screen width setting in pixels.">Config::screenWidth</a>()<span class="keyword"> const</span>
+<a name="l00033"></a>00033 <span class="keyword"></span>{
+<a name="l00034"></a>00034 <span class="keywordflow">return</span> <a class="code" href="class_config.html#a46dce43903bb24bac8c2ffc92f2ee4da" title="The desired width of the screen in pixels.">_screenWidth</a>;
+<a name="l00035"></a>00035 }
+<a name="l00036"></a><a class="code" href="class_config.html#a53d63c52aa51b5231b9ea8e412086773">00036</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_config.html#a53d63c52aa51b5231b9ea8e412086773" title="Function for accessing the screen height setting in pixels.">Config::screenHeight</a>()<span class="keyword"> const</span>
+<a name="l00037"></a>00037 <span class="keyword"></span>{
+<a name="l00038"></a>00038 <span class="keywordflow">return</span> <a class="code" href="class_config.html#ac27364c75bc8d5e82119988df85c1599" title="The desired height of the screen in pixels.">_screenHeight</a>;
+<a name="l00039"></a>00039 }
+<a name="l00040"></a><a class="code" href="class_config.html#a8a401add779f2b74732ade9e515bf0cd">00040</a> <span class="keywordtype">bool</span> <a class="code" href="class_config.html#a8a401add779f2b74732ade9e515bf0cd" title="Function for accessing whether the game should be displayed in fullscreen or windowed mode...">Config::fullscreen</a>()<span class="keyword"> const</span>
+<a name="l00041"></a>00041 <span class="keyword"></span>{
+<a name="l00042"></a>00042 <span class="keywordflow">return</span> <a class="code" href="class_config.html#ad6fddaaf52742adcba95155b3635e807" title="The desired fullscreen or windowed setting.">_fullscreen</a>;
+<a name="l00043"></a>00043 }
+<a name="l00044"></a>00044
+<a name="l00045"></a><a class="code" href="class_config.html#aa9656bf85fa15fd4e90a99558f880602">00045</a> <span class="keywordtype">void</span> <a class="code" href="class_config.html#aa9656bf85fa15fd4e90a99558f880602" title="Reads all of the settings defined in a file into a map.">Config::readFile</a>(ifstream&amp; file, map&lt;string,string&gt;&amp; map)
+<a name="l00046"></a>00046 {
+<a name="l00047"></a>00047 <span class="keywordflow">if</span> (!file.is_open()) <span class="keywordflow">return</span>;
+<a name="l00048"></a>00048
+<a name="l00049"></a>00049 <span class="keywordtype">string</span> nextEntry;
+<a name="l00050"></a>00050 <span class="keywordflow">while</span>(!file.eof())
+<a name="l00051"></a>00051 {
+<a name="l00052"></a>00052 file &gt;&gt; nextEntry;
+<a name="l00053"></a>00053
+<a name="l00054"></a>00054 string::size_type equalsIndex = nextEntry.find(<span class="stringliteral">&quot;=&quot;</span>,0);
+<a name="l00055"></a>00055 <span class="keywordflow">if</span> (equalsIndex!=string::npos)
+<a name="l00056"></a>00056 {
+<a name="l00057"></a>00057 <span class="keywordtype">string</span> key = nextEntry.substr(0,equalsIndex);
+<a name="l00058"></a>00058 <span class="keywordtype">string</span> value = nextEntry.substr(equalsIndex+1);
+<a name="l00059"></a>00059
+<a name="l00060"></a>00060 map[key] = value;
+<a name="l00061"></a>00061 }
+<a name="l00062"></a>00062 }
+<a name="l00063"></a>00063 }
+<a name="l00064"></a>00064
+<a name="l00065"></a><a class="code" href="class_config.html#ac31c5164b58f86c2a9ecaf21ac1f2202">00065</a> <span class="keywordtype">void</span> <a class="code" href="class_config.html#ac31c5164b58f86c2a9ecaf21ac1f2202" title="Initialises the Config option&#39;s parameters to those in the readValues map.">Config::fillValues</a>(<span class="keyword">const</span> map&lt;string, string&gt;&amp; readValues, map&lt;string, string&gt;&amp; unfoundValues)
+<a name="l00066"></a>00066 {
+<a name="l00067"></a>00067 <a class="code" href="class_config.html#ac0fd2f7c14b9f26339862da74215bf01" title="Initializes the screen width in pixels from a given string.">setScreenWidth</a>(<a class="code" href="class_config.html#a38dee1d0fe4e962aedcee79faad2691c" title="Helper function for fillValues. Finds the value for a single key.">extractValue</a>(readValues, unfoundValues, <a class="code" href="class_config.html#abebfdbe6033183421dcdb4cdb6fc9549" title="The key for the screen width setting, initialized to &quot;screen_width&quot;.">SCREEN_WIDTH_KEY</a>, <a class="code" href="class_config.html#ad6f88b173db3508eaeb7b569655b5cf2" title="The default value for the screen width setting, initialized to 800.">SCREEN_WIDTH_DEFAULT</a>));
+<a name="l00068"></a>00068 <a class="code" href="class_config.html#a8e960645b79f31c39ee0cecc89ed6060" title="Initializes the screen height in pixels from a given string.">setScreenHeight</a>(<a class="code" href="class_config.html#a38dee1d0fe4e962aedcee79faad2691c" title="Helper function for fillValues. Finds the value for a single key.">extractValue</a>(readValues, unfoundValues, <a class="code" href="class_config.html#a5dd914d11bd6f43c06ad4682be0efaba" title="The key for the screen height setting, initialized to &quot;screen_height&quot;.">SCREEN_HEIGHT_KEY</a>, <a class="code" href="class_config.html#a2382c43dd0d51b3d52bf88d18438c579" title="The default value for the screen height setting, initialized to 600.">SCREEN_HEIGHT_DEFAULT</a>));
+<a name="l00069"></a>00069 <a class="code" href="class_config.html#a5ce32c242ca037105a2430a122249a0a" title="Initializes the fullscreen setting from a given string.">setFullscreen</a>(<a class="code" href="class_config.html#a38dee1d0fe4e962aedcee79faad2691c" title="Helper function for fillValues. Finds the value for a single key.">extractValue</a>(readValues, unfoundValues, <a class="code" href="class_config.html#ae2dd20bca46b767d2a30c32de7ab78cb" title="The key for the fullscreen setting, initialized to &quot;fullscreen&quot;.">FULLSCREEN_KEY</a>, <a class="code" href="class_config.html#a3195b4273ebe9ac691167bff71394720" title="The default value for the fullscreen setting, initialized to false.">FULLSCREEN_DEFAULT</a>));
+<a name="l00070"></a>00070 }
+<a name="l00071"></a>00071
+<a name="l00072"></a><a class="code" href="class_config.html#a38dee1d0fe4e962aedcee79faad2691c">00072</a> <span class="keywordtype">string</span> <a class="code" href="class_config.html#a38dee1d0fe4e962aedcee79faad2691c" title="Helper function for fillValues. Finds the value for a single key.">Config::extractValue</a>(<span class="keyword">const</span> map&lt;string, string&gt;&amp; readValues, map&lt;string, string&gt;&amp; unfoundValues, <span class="keyword">const</span> <span class="keywordtype">string</span>&amp; key, <span class="keyword">const</span> <span class="keywordtype">string</span>&amp; defaultValue)
+<a name="l00073"></a>00073 {
+<a name="l00074"></a>00074 map&lt;string, string&gt;::const_iterator findIter = readValues.find(key);
+<a name="l00075"></a>00075 <span class="keywordflow">if</span> (findIter != readValues.end())
+<a name="l00076"></a>00076 {
+<a name="l00077"></a>00077 <span class="keywordflow">return</span> findIter-&gt;second;
+<a name="l00078"></a>00078 }
+<a name="l00079"></a>00079 <span class="keywordflow">else</span>
+<a name="l00080"></a>00080 {
+<a name="l00081"></a>00081 unfoundValues[key] = defaultValue;
+<a name="l00082"></a>00082 <span class="keywordflow">return</span> defaultValue;
+<a name="l00083"></a>00083 }
+<a name="l00084"></a>00084 }
+<a name="l00085"></a>00085
+<a name="l00086"></a><a class="code" href="class_config.html#a54612c3ce193bea917d3088175e16d43">00086</a> <span class="keywordtype">void</span> <a class="code" href="class_config.html#a54612c3ce193bea917d3088175e16d43" title="Writes settings that were not found in the file to the file with default values.">Config::writeUnfoundValues</a>(ofstream&amp; file, <span class="keyword">const</span> map&lt;string, string&gt;&amp; unfoundValues)
+<a name="l00087"></a>00087 {
+<a name="l00088"></a>00088 <span class="keywordflow">for</span> (map&lt;string, string&gt;::const_iterator iter = unfoundValues.begin(); iter!=unfoundValues.end(); ++iter)
+<a name="l00089"></a>00089 {
+<a name="l00090"></a>00090 file &lt;&lt; iter-&gt;first &lt;&lt; <span class="stringliteral">&quot;=&quot;</span> &lt;&lt; iter-&gt;second &lt;&lt; endl;
+<a name="l00091"></a>00091 }
+<a name="l00092"></a>00092 }
+<a name="l00093"></a>00093
+<a name="l00094"></a><a class="code" href="class_config.html#ac0fd2f7c14b9f26339862da74215bf01">00094</a> <span class="keywordtype">void</span> <a class="code" href="class_config.html#ac0fd2f7c14b9f26339862da74215bf01" title="Initializes the screen width in pixels from a given string.">Config::setScreenWidth</a>(<span class="keyword">const</span> <span class="keywordtype">string</span>&amp; screenWidthStr)
+<a name="l00095"></a>00095 {
+<a name="l00096"></a>00096 <a class="code" href="class_config.html#a46dce43903bb24bac8c2ffc92f2ee4da" title="The desired width of the screen in pixels.">_screenWidth</a> = atoi(screenWidthStr.c_str());
+<a name="l00097"></a>00097 }
+<a name="l00098"></a><a class="code" href="class_config.html#a8e960645b79f31c39ee0cecc89ed6060">00098</a> <span class="keywordtype">void</span> <a class="code" href="class_config.html#a8e960645b79f31c39ee0cecc89ed6060" title="Initializes the screen height in pixels from a given string.">Config::setScreenHeight</a>(<span class="keyword">const</span> <span class="keywordtype">string</span>&amp; screenHeightStr)
+<a name="l00099"></a>00099 {
+<a name="l00100"></a>00100 <a class="code" href="class_config.html#ac27364c75bc8d5e82119988df85c1599" title="The desired height of the screen in pixels.">_screenHeight</a> = atoi(screenHeightStr.c_str());
+<a name="l00101"></a>00101 }
+<a name="l00102"></a><a class="code" href="class_config.html#a5ce32c242ca037105a2430a122249a0a">00102</a> <span class="keywordtype">void</span> <a class="code" href="class_config.html#a5ce32c242ca037105a2430a122249a0a" title="Initializes the fullscreen setting from a given string.">Config::setFullscreen</a>(<span class="keyword">const</span> <span class="keywordtype">string</span>&amp; fullscreenStr)
+<a name="l00103"></a>00103 {
+<a name="l00104"></a>00104 <a class="code" href="class_config.html#ad6fddaaf52742adcba95155b3635e807" title="The desired fullscreen or windowed setting.">_fullscreen</a> = fullscreenStr==<span class="stringliteral">&quot;true&quot;</span>;
+<a name="l00105"></a>00105 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_config_8h.html b/docs/html/_config_8h.html
new file mode 100644
index 0000000..9d7180b
--- /dev/null
+++ b/docs/html/_config_8h.html
@@ -0,0 +1,121 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/data/Config.h File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">source/data/Config.h File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &lt;cstdlib&gt;</code><br/>
+<code>#include &lt;string&gt;</code><br/>
+<code>#include &lt;fstream&gt;</code><br/>
+<code>#include &lt;map&gt;</code><br/>
+</div>
+<p><a href="_config_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_config.html">Config</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Object for handling user settings loaded from a file. <a href="class_config.html#details">More...</a><br/></td></tr>
+</table>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_config_8h_source.html b/docs/html/_config_8h_source.html
new file mode 100644
index 0000000..f62730d
--- /dev/null
+++ b/docs/html/_config_8h_source.html
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/data/Config.h Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/data/Config.h</div> </div>
+</div>
+<div class="contents">
+<a href="_config_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef CONFIG_H</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define CONFIG_H</span>
+<a name="l00003"></a>00003 <span class="preprocessor"></span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;cstdlib&gt;</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include &lt;string&gt;</span>
+<a name="l00006"></a>00006 <span class="preprocessor">#include &lt;fstream&gt;</span>
+<a name="l00007"></a>00007 <span class="preprocessor">#include &lt;map&gt;</span>
+<a name="l00008"></a>00008 <span class="keyword">using namespace </span>std;
+<a name="l00009"></a>00009
+<a name="l00020"></a><a class="code" href="class_config.html">00020</a> <span class="keyword">class </span><a class="code" href="class_config.html" title="Object for handling user settings loaded from a file.">Config</a>
+<a name="l00021"></a>00021 {
+<a name="l00022"></a>00022 <span class="keyword">public</span>:
+<a name="l00032"></a>00032 <a class="code" href="class_config.html" title="Object for handling user settings loaded from a file.">Config</a>(<span class="keyword">const</span> <span class="keywordtype">string</span>&amp; filename);
+<a name="l00033"></a>00033
+<a name="l00034"></a>00034 <span class="comment">//Assignment and copy operations are handled by the compiler generated versions</span>
+<a name="l00035"></a>00035
+<a name="l00041"></a>00041 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> screenWidth() <span class="keyword">const</span>;
+<a name="l00042"></a>00042
+<a name="l00048"></a>00048 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> screenHeight() <span class="keyword">const</span>;
+<a name="l00049"></a>00049
+<a name="l00055"></a>00055 <span class="keywordtype">bool</span> fullscreen() <span class="keyword">const</span>;
+<a name="l00056"></a>00056
+<a name="l00057"></a>00057 <span class="keyword">private</span>:
+<a name="l00067"></a>00067 <span class="keywordtype">void</span> readFile(ifstream&amp; file, map&lt;string,string&gt;&amp; map);
+<a name="l00068"></a>00068
+<a name="l00078"></a>00078 <span class="keywordtype">void</span> fillValues(<span class="keyword">const</span> map&lt;string, string&gt;&amp; readValues, map&lt;string, string&gt;&amp; unfoundValues);
+<a name="l00079"></a>00079
+<a name="l00092"></a>00092 <span class="keywordtype">string</span> extractValue(<span class="keyword">const</span> map&lt;string, string&gt;&amp; readValues, map&lt;string, string&gt;&amp; unfoundValues, <span class="keyword">const</span> <span class="keywordtype">string</span>&amp; key, <span class="keyword">const</span> <span class="keywordtype">string</span>&amp; defaultValue);
+<a name="l00093"></a>00093
+<a name="l00100"></a>00100 <span class="keywordtype">void</span> writeUnfoundValues(ofstream&amp; file, <span class="keyword">const</span> map&lt;string, string&gt;&amp; unfoundValues);
+<a name="l00101"></a>00101
+<a name="l00107"></a>00107 <span class="keywordtype">void</span> setScreenWidth(<span class="keyword">const</span> <span class="keywordtype">string</span>&amp; screenWidthStr);
+<a name="l00108"></a>00108
+<a name="l00114"></a>00114 <span class="keywordtype">void</span> setScreenHeight(<span class="keyword">const</span> <span class="keywordtype">string</span>&amp; screenHeightStr);
+<a name="l00115"></a>00115
+<a name="l00121"></a>00121 <span class="keywordtype">void</span> setFullscreen(<span class="keyword">const</span> <span class="keywordtype">string</span>&amp; fullscreenStr);
+<a name="l00122"></a>00122
+<a name="l00123"></a><a class="code" href="class_config.html#a46dce43903bb24bac8c2ffc92f2ee4da">00123</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_config.html#a46dce43903bb24bac8c2ffc92f2ee4da" title="The desired width of the screen in pixels.">_screenWidth</a>;
+<a name="l00124"></a><a class="code" href="class_config.html#ac27364c75bc8d5e82119988df85c1599">00124</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_config.html#ac27364c75bc8d5e82119988df85c1599" title="The desired height of the screen in pixels.">_screenHeight</a>;
+<a name="l00125"></a><a class="code" href="class_config.html#ad6fddaaf52742adcba95155b3635e807">00125</a> <span class="keywordtype">bool</span> <a class="code" href="class_config.html#ad6fddaaf52742adcba95155b3635e807" title="The desired fullscreen or windowed setting.">_fullscreen</a>;
+<a name="l00126"></a>00126
+<a name="l00127"></a><a class="code" href="class_config.html#abebfdbe6033183421dcdb4cdb6fc9549">00127</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">string</span> <a class="code" href="class_config.html#abebfdbe6033183421dcdb4cdb6fc9549" title="The key for the screen width setting, initialized to &quot;screen_width&quot;.">SCREEN_WIDTH_KEY</a>;
+<a name="l00128"></a><a class="code" href="class_config.html#a5dd914d11bd6f43c06ad4682be0efaba">00128</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">string</span> <a class="code" href="class_config.html#a5dd914d11bd6f43c06ad4682be0efaba" title="The key for the screen height setting, initialized to &quot;screen_height&quot;.">SCREEN_HEIGHT_KEY</a>;
+<a name="l00129"></a><a class="code" href="class_config.html#ae2dd20bca46b767d2a30c32de7ab78cb">00129</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">string</span> <a class="code" href="class_config.html#ae2dd20bca46b767d2a30c32de7ab78cb" title="The key for the fullscreen setting, initialized to &quot;fullscreen&quot;.">FULLSCREEN_KEY</a>;
+<a name="l00130"></a>00130
+<a name="l00131"></a><a class="code" href="class_config.html#ad6f88b173db3508eaeb7b569655b5cf2">00131</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">string</span> <a class="code" href="class_config.html#ad6f88b173db3508eaeb7b569655b5cf2" title="The default value for the screen width setting, initialized to 800.">SCREEN_WIDTH_DEFAULT</a>;
+<a name="l00132"></a><a class="code" href="class_config.html#a2382c43dd0d51b3d52bf88d18438c579">00132</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">string</span> <a class="code" href="class_config.html#a2382c43dd0d51b3d52bf88d18438c579" title="The default value for the screen height setting, initialized to 600.">SCREEN_HEIGHT_DEFAULT</a>;
+<a name="l00133"></a><a class="code" href="class_config.html#a3195b4273ebe9ac691167bff71394720">00133</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">string</span> <a class="code" href="class_config.html#a3195b4273ebe9ac691167bff71394720" title="The default value for the fullscreen setting, initialized to false.">FULLSCREEN_DEFAULT</a>;
+<a name="l00134"></a>00134 };
+<a name="l00135"></a>00135
+<a name="l00136"></a>00136 <span class="preprocessor">#endif // CONFIG_H</span>
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_destroyed_object_popup_8cpp.html b/docs/html/_destroyed_object_popup_8cpp.html
new file mode 100644
index 0000000..5946fd0
--- /dev/null
+++ b/docs/html/_destroyed_object_popup_8cpp.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/DestroyedObjectPopup.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/DestroyedObjectPopup.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_destroyed_object_popup_8h_source.html">DestroyedObjectPopup.h</a>&quot;</code><br/>
+</div>
+<p><a href="_destroyed_object_popup_8cpp_source.html">Go to the source code of this file.</a></p>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_destroyed_object_popup_8cpp_source.html b/docs/html/_destroyed_object_popup_8cpp_source.html
new file mode 100644
index 0000000..1eb43e2
--- /dev/null
+++ b/docs/html/_destroyed_object_popup_8cpp_source.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/DestroyedObjectPopup.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/DestroyedObjectPopup.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="_destroyed_object_popup_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &quot;<a class="code" href="_destroyed_object_popup_8h.html">DestroyedObjectPopup.h</a>&quot;</span>
+<a name="l00002"></a>00002
+<a name="l00003"></a><a class="code" href="class_destroyed_object_popup.html#af34a9f7421a49953f6bd86233a6a44bc">00003</a> <a class="code" href="class_destroyed_object_popup.html#af34a9f7421a49953f6bd86233a6a44bc" title="Creates the popup at the given location, with the given image.">DestroyedObjectPopup::DestroyedObjectPopup</a>(<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386" title="Type used to define which image should be returned.">BitmapStore::Image</a> image)
+<a name="l00004"></a>00004 :<a class="code" href="class_limited_time_object.html" title="Parent class for GameObjects that are created, exist for a given time, and are then destroyed...">LimitedTimeObject</a>(x, y, image, POPUP_TIME)
+<a name="l00005"></a>00005 {
+<a name="l00006"></a>00006 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_destroyed_object_popup_8h.html b/docs/html/_destroyed_object_popup_8h.html
new file mode 100644
index 0000000..5248b7d
--- /dev/null
+++ b/docs/html/_destroyed_object_popup_8h.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/DestroyedObjectPopup.h File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">source/logic/DestroyedObjectPopup.h File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;../logic/LimitedTimeObject.h&quot;</code><br/>
+<code>#include &quot;../presentation/BitmapStore.h&quot;</code><br/>
+</div>
+<p><a href="_destroyed_object_popup_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_destroyed_object_popup.html">DestroyedObjectPopup</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Object that appears on the screen for a short time when another object has been destroyed. <a href="class_destroyed_object_popup.html#details">More...</a><br/></td></tr>
+</table>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_destroyed_object_popup_8h_source.html b/docs/html/_destroyed_object_popup_8h_source.html
new file mode 100644
index 0000000..f5653ba
--- /dev/null
+++ b/docs/html/_destroyed_object_popup_8h_source.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/DestroyedObjectPopup.h Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/DestroyedObjectPopup.h</div> </div>
+</div>
+<div class="contents">
+<a href="_destroyed_object_popup_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef DESTROYEDOBJECTPOPUP_H</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define DESTROYEDOBJECTPOPUP_H</span>
+<a name="l00003"></a>00003 <span class="preprocessor"></span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include &quot;../logic/LimitedTimeObject.h&quot;</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include &quot;../presentation/BitmapStore.h&quot;</span>
+<a name="l00006"></a>00006
+<a name="l00015"></a><a class="code" href="class_destroyed_object_popup.html">00015</a> <span class="keyword">class </span><a class="code" href="class_destroyed_object_popup.html" title="Object that appears on the screen for a short time when another object has been destroyed.">DestroyedObjectPopup</a> : <span class="keyword">public</span> <a class="code" href="class_limited_time_object.html" title="Parent class for GameObjects that are created, exist for a given time, and are then destroyed...">LimitedTimeObject</a>
+<a name="l00016"></a>00016 {
+<a name="l00017"></a>00017 <span class="keyword">public</span>:
+<a name="l00025"></a>00025 <a class="code" href="class_destroyed_object_popup.html#af34a9f7421a49953f6bd86233a6a44bc" title="Creates the popup at the given location, with the given image.">DestroyedObjectPopup</a>(<span class="keywordtype">double</span> <a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>, <span class="keywordtype">double</span> <a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>, <a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386" title="Type used to define which image should be returned.">BitmapStore::Image</a> <a class="code" href="class_game_object.html#a05e352e3e01e774892beee0503fdb349" title="Provides access to the image that should be drawn to represent the object.">image</a>);
+<a name="l00026"></a>00026
+<a name="l00027"></a>00027 <span class="comment">//assignment and copy constructors have been left with the compiler generated versions</span>
+<a name="l00028"></a>00028
+<a name="l00029"></a>00029 <span class="keyword">private</span>:
+<a name="l00030"></a><a class="code" href="class_destroyed_object_popup.html#a883845e614aba9d292eb85afa9423f31">00030</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="class_destroyed_object_popup.html#a883845e614aba9d292eb85afa9423f31" title="The number of frames that the DestroyedObjectPopup exists before it is destroyed. 1 second at FPS=30...">POPUP_TIME</a> = 30;
+<a name="l00031"></a>00031 };
+<a name="l00032"></a>00032
+<a name="l00033"></a>00033 <span class="preprocessor">#endif // DESTROYEDOBJECTPOPUP_H</span>
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_enemy_car_8cpp.html b/docs/html/_enemy_car_8cpp.html
new file mode 100644
index 0000000..e0445e1
--- /dev/null
+++ b/docs/html/_enemy_car_8cpp.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/EnemyCar.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/EnemyCar.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_enemy_car_8h_source.html">EnemyCar.h</a>&quot;</code><br/>
+</div>
+<p><a href="_enemy_car_8cpp_source.html">Go to the source code of this file.</a></p>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_enemy_car_8cpp_source.html b/docs/html/_enemy_car_8cpp_source.html
new file mode 100644
index 0000000..446e3f1
--- /dev/null
+++ b/docs/html/_enemy_car_8cpp_source.html
@@ -0,0 +1,211 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/EnemyCar.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/EnemyCar.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="_enemy_car_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &quot;<a class="code" href="_enemy_car_8h.html">EnemyCar.h</a>&quot;</span>
+<a name="l00002"></a>00002
+<a name="l00003"></a><a class="code" href="class_enemy_car.html#a8af7d3c56fa9dad09992ce6fbd7389d2">00003</a> <a class="code" href="class_enemy_car.html#a8af7d3c56fa9dad09992ce6fbd7389d2" title="Creates an EnemyCar at the given coordinates.">EnemyCar::EnemyCar</a>(<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y)
+<a name="l00004"></a>00004 :<a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>(x,y,<a class="code" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a>::ENEMY,<a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>::UP),
+<a name="l00005"></a>00005 _state(CHASING),
+<a name="l00006"></a>00006 _targetX(x),
+<a name="l00007"></a>00007 _targetY(y)
+<a name="l00008"></a>00008 {
+<a name="l00009"></a>00009 }
+<a name="l00010"></a>00010
+<a name="l00011"></a><a class="code" href="class_enemy_car.html#a9f08f73a076e48a0bc0092e72e15e7e4">00011</a> <span class="keywordtype">void</span> <a class="code" href="class_enemy_car.html#a9f08f73a076e48a0bc0092e72e15e7e4" title="Processes one frame&#39;s worth of activity for the object, called every frame.">EnemyCar::update</a>(<span class="keyword">const</span> <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>&amp; maze, <span class="keyword">const</span> list&lt;PlayerCar&gt;&amp; players, <span class="keyword">const</span> list&lt;Rock&gt;&amp; rocks)
+<a name="l00012"></a>00012 {
+<a name="l00013"></a>00013 <span class="keywordflow">if</span> (!players.empty()) <a class="code" href="class_enemy_car.html#afa61cecf7df51e26edd632303c18945c" title="Updates the direction that the EnemyCar is facing, if neccesary.">checkFacing</a>(maze, players.front().x(), players.front().y(), rocks);
+<a name="l00014"></a>00014
+<a name="l00015"></a>00015 <span class="keywordflow">if</span> (<a class="code" href="class_enemy_car.html#a65a1c7b520f043aae27800ced9e8d543" title="The state that the object is currently in.">_state</a>!=<a class="code" href="class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87af45d8b201d7334e42651b262a03d631c" title="The EnemyCar can not see, and so does not move.">BLINDED</a>)
+<a name="l00016"></a>00016 {
+<a name="l00017"></a>00017 <a class="code" href="class_car.html#a85e8699362bb5206e4142dbd5d20dcb9" title="Moves the car by its current speed in the direction of its facing.">move</a>(maze);
+<a name="l00018"></a>00018 }
+<a name="l00019"></a>00019 <span class="keywordflow">else</span>
+<a name="l00020"></a>00020 {
+<a name="l00021"></a>00021 <a class="code" href="class_enemy_car.html#a65a1c7b520f043aae27800ced9e8d543" title="The state that the object is currently in.">_state</a> = <a class="code" href="class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87a28df0785e03156c97ddeb81da5e0770c" title="The EnemyCar tries to drive to the block that the player is currently on.">CHASING</a>;
+<a name="l00022"></a>00022 <a class="code" href="class_car.html#a84b3d05e98d66f358942193ff54dee51" title="The current speed that the Car is moving at.">_speed</a> = <a class="code" href="class_car.html#a7b942584de02f8af6f571a60a1cf32ba" title="The speed that a Car moves at in normal conditions.">_baseSpeed</a>;
+<a name="l00023"></a>00023 }
+<a name="l00024"></a>00024 }
+<a name="l00025"></a>00025
+<a name="l00026"></a><a class="code" href="class_enemy_car.html#afa61cecf7df51e26edd632303c18945c">00026</a> <span class="keywordtype">void</span> <a class="code" href="class_enemy_car.html#afa61cecf7df51e26edd632303c18945c" title="Updates the direction that the EnemyCar is facing, if neccesary.">EnemyCar::checkFacing</a>(<span class="keyword">const</span> <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>&amp; maze, <span class="keywordtype">double</span> chasingX, <span class="keywordtype">double</span> chasingY, <span class="keyword">const</span> list&lt;Rock&gt;&amp; rocks)
+<a name="l00027"></a>00027 {
+<a name="l00028"></a>00028 <span class="keywordflow">if</span> (abs(<a class="code" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614" title="The x coordinate of the object&#39;s position.">_x</a> - <a class="code" href="class_enemy_car.html#aa84ac6485311c535526ea14d02d98cc9" title="The x coordinate that the EnemyCar is driving towards.">_targetX</a>)&gt;<a class="code" href="class_car.html#a84b3d05e98d66f358942193ff54dee51" title="The current speed that the Car is moving at.">_speed</a> || abs(<a class="code" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e" title="The y coordinate of the object&#39;s position.">_y</a> - <a class="code" href="class_enemy_car.html#a61ff3751123febe8bc9ab24d0763245c" title="The y coordinate that the EnemyCar is driving towards.">_targetY</a>)&gt;<a class="code" href="class_car.html#a84b3d05e98d66f358942193ff54dee51" title="The current speed that the Car is moving at.">_speed</a>) <span class="keywordflow">return</span>;
+<a name="l00029"></a>00029
+<a name="l00030"></a>00030 map&lt;Maze::Direction, pair&lt;double, double&gt; &gt; adjacentBlocks;
+<a name="l00031"></a>00031 pair&lt;double, double&gt; evaluatingTarget;
+<a name="l00032"></a>00032
+<a name="l00033"></a>00033 adjacentBlocks[<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28faab1a1fe0274cd139b3c0116d8caf458c">Maze::LEFT</a>] = make_pair(<a class="code" href="class_maze_math.html#a2314f211065f4dc7cb11469770fd2f1c" title="Rounds a value to the nearest integer.">MazeMath::round</a>(<a class="code" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614" title="The x coordinate of the object&#39;s position.">_x</a>-1), <a class="code" href="class_maze_math.html#a2314f211065f4dc7cb11469770fd2f1c" title="Rounds a value to the nearest integer.">MazeMath::round</a>(<a class="code" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e" title="The y coordinate of the object&#39;s position.">_y</a>));
+<a name="l00034"></a>00034 adjacentBlocks[<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa699ae3e1d989e9b12bd200aa86e29e9d">Maze::RIGHT</a>] = make_pair(<a class="code" href="class_maze_math.html#a2314f211065f4dc7cb11469770fd2f1c" title="Rounds a value to the nearest integer.">MazeMath::round</a>(<a class="code" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614" title="The x coordinate of the object&#39;s position.">_x</a>+1), <a class="code" href="class_maze_math.html#a2314f211065f4dc7cb11469770fd2f1c" title="Rounds a value to the nearest integer.">MazeMath::round</a>(<a class="code" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e" title="The y coordinate of the object&#39;s position.">_y</a>));
+<a name="l00035"></a>00035 adjacentBlocks[<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7">Maze::UP</a>] = make_pair(<a class="code" href="class_maze_math.html#a2314f211065f4dc7cb11469770fd2f1c" title="Rounds a value to the nearest integer.">MazeMath::round</a>(<a class="code" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614" title="The x coordinate of the object&#39;s position.">_x</a>), <a class="code" href="class_maze_math.html#a2314f211065f4dc7cb11469770fd2f1c" title="Rounds a value to the nearest integer.">MazeMath::round</a>(<a class="code" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e" title="The y coordinate of the object&#39;s position.">_y</a>-1));
+<a name="l00036"></a>00036 adjacentBlocks[<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa89ab143d020541957ab5e0e9cfdd3e23">Maze::DOWN</a>] = make_pair(<a class="code" href="class_maze_math.html#a2314f211065f4dc7cb11469770fd2f1c" title="Rounds a value to the nearest integer.">MazeMath::round</a>(<a class="code" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614" title="The x coordinate of the object&#39;s position.">_x</a>), <a class="code" href="class_maze_math.html#a2314f211065f4dc7cb11469770fd2f1c" title="Rounds a value to the nearest integer.">MazeMath::round</a>(<a class="code" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e" title="The y coordinate of the object&#39;s position.">_y</a>+1));
+<a name="l00037"></a>00037
+<a name="l00038"></a>00038 <span class="comment">//remove adjacent blocks that would result in crashing into a rock or a wall</span>
+<a name="l00039"></a>00039 <span class="keywordflow">for</span> (map&lt;<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f" title="Defines the directions in which movement can happen in the maze.">Maze::Direction</a>, pair&lt;double, double&gt; &gt;::iterator iter=adjacentBlocks.begin(); iter!=adjacentBlocks.end(); )
+<a name="l00040"></a>00040 {
+<a name="l00041"></a>00041 <span class="keywordflow">if</span> (<a class="code" href="class_enemy_car.html#af0dca9b89448557020ef02a18cffb682" title="Iterates through a list of Rocks and determines if moving to a given position would result in a colli...">rockAtLocation</a>(iter-&gt;second.first, iter-&gt;second.second, rocks) || maze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(static_cast&lt;int&gt;(iter-&gt;second.first),static_cast&lt;int&gt;(iter-&gt;second.second)))
+<a name="l00042"></a>00042 {
+<a name="l00043"></a>00043 adjacentBlocks.erase(iter);
+<a name="l00044"></a>00044 iter = adjacentBlocks.begin();
+<a name="l00045"></a>00045 }
+<a name="l00046"></a>00046 <span class="keywordflow">else</span>
+<a name="l00047"></a>00047 {
+<a name="l00048"></a>00048 ++iter;
+<a name="l00049"></a>00049 }
+<a name="l00050"></a>00050 }
+<a name="l00051"></a>00051
+<a name="l00052"></a>00052 <span class="keywordflow">if</span> (adjacentBlocks.empty())
+<a name="l00053"></a>00053 {
+<a name="l00054"></a>00054 <a class="code" href="class_car.html#a84b3d05e98d66f358942193ff54dee51" title="The current speed that the Car is moving at.">_speed</a> = 0;
+<a name="l00055"></a>00055 <span class="keywordflow">return</span>;
+<a name="l00056"></a>00056 }
+<a name="l00057"></a>00057 <span class="keywordflow">else</span>
+<a name="l00058"></a>00058 {
+<a name="l00059"></a>00059 <a class="code" href="class_car.html#a84b3d05e98d66f358942193ff54dee51" title="The current speed that the Car is moving at.">_speed</a> = <a class="code" href="class_car.html#a7b942584de02f8af6f571a60a1cf32ba" title="The speed that a Car moves at in normal conditions.">_baseSpeed</a>;
+<a name="l00060"></a>00060 }
+<a name="l00061"></a>00061
+<a name="l00062"></a>00062 map&lt;Maze::Direction, pair&lt;double, double&gt; &gt;::iterator reverseFacing = adjacentBlocks.find(<a class="code" href="class_maze.html#a79cf362b55c21634a93ef6b7d192b77c" title="Inverts a given direction, to give the value to face in the opposite direction.">Maze::backwards</a>(<a class="code" href="class_game_object.html#a24d36b1a64504298700a7ae7111fad5d" title="The direction in which the object is facing, up, down, left, or right.">_facing</a>));
+<a name="l00063"></a>00063 <span class="keywordflow">if</span> ((reverseFacing != adjacentBlocks.end()) &amp;&amp; (adjacentBlocks.size()&gt;1))
+<a name="l00064"></a>00064 {
+<a name="l00065"></a>00065 adjacentBlocks.erase(reverseFacing);
+<a name="l00066"></a>00066 }
+<a name="l00067"></a>00067
+<a name="l00068"></a>00068 map&lt;Maze::Direction, pair&lt;double, double&gt; &gt;::const_iterator closestAdjacent = adjacentBlocks.begin();
+<a name="l00069"></a>00069 <span class="keywordtype">double</span> closestDistance = <a class="code" href="class_maze_math.html#a5735276fb4c76f25944f2c02d622c3f6" title="Finds the straight line distance between two points on a 2D plane.">MazeMath::distance</a>(closestAdjacent-&gt;second.first, closestAdjacent-&gt;second.second, chasingX, chasingY);
+<a name="l00070"></a>00070
+<a name="l00071"></a>00071 <span class="keywordflow">for</span> (map&lt;<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f" title="Defines the directions in which movement can happen in the maze.">Maze::Direction</a>, pair&lt;double, double&gt; &gt;::const_iterator iter = ++adjacentBlocks.begin(); iter!=adjacentBlocks.end(); ++iter)
+<a name="l00072"></a>00072 {
+<a name="l00073"></a>00073 <span class="keywordtype">double</span> newDistance = <a class="code" href="class_maze_math.html#a5735276fb4c76f25944f2c02d622c3f6" title="Finds the straight line distance between two points on a 2D plane.">MazeMath::distance</a>(iter-&gt;second.first, iter-&gt;second.second, chasingX, chasingY);
+<a name="l00074"></a>00074 <span class="keywordflow">if</span> (newDistance &lt; closestDistance)
+<a name="l00075"></a>00075 {
+<a name="l00076"></a>00076 closestDistance = newDistance;
+<a name="l00077"></a>00077 closestAdjacent = iter;
+<a name="l00078"></a>00078 }
+<a name="l00079"></a>00079 }
+<a name="l00080"></a>00080
+<a name="l00081"></a>00081 <a class="code" href="class_enemy_car.html#aa84ac6485311c535526ea14d02d98cc9" title="The x coordinate that the EnemyCar is driving towards.">_targetX</a> = closestAdjacent-&gt;second.first;
+<a name="l00082"></a>00082 <a class="code" href="class_enemy_car.html#a61ff3751123febe8bc9ab24d0763245c" title="The y coordinate that the EnemyCar is driving towards.">_targetY</a> = closestAdjacent-&gt;second.second;
+<a name="l00083"></a>00083 <a class="code" href="class_game_object.html#a24d36b1a64504298700a7ae7111fad5d" title="The direction in which the object is facing, up, down, left, or right.">_facing</a> = closestAdjacent-&gt;first;
+<a name="l00084"></a>00084 }
+<a name="l00085"></a>00085
+<a name="l00086"></a><a class="code" href="class_enemy_car.html#af0dca9b89448557020ef02a18cffb682">00086</a> <span class="keywordtype">bool</span> <a class="code" href="class_enemy_car.html#af0dca9b89448557020ef02a18cffb682" title="Iterates through a list of Rocks and determines if moving to a given position would result in a colli...">EnemyCar::rockAtLocation</a>(<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keyword">const</span> list&lt;Rock&gt;&amp; rocks)
+<a name="l00087"></a>00087 {
+<a name="l00088"></a>00088 <span class="keywordflow">for</span> (list&lt;Rock&gt;::const_iterator iter = rocks.begin(); iter!=rocks.end(); ++iter)
+<a name="l00089"></a>00089 {
+<a name="l00090"></a>00090 <span class="keywordflow">if</span> (abs(x - iter-&gt;x())&lt;1 &amp;&amp; abs(y - iter-&gt;y())&lt;1) <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00091"></a>00091 }
+<a name="l00092"></a>00092 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00093"></a>00093 }
+<a name="l00094"></a>00094
+<a name="l00095"></a><a class="code" href="class_enemy_car.html#ac5836046e802a749abb2308886b34060">00095</a> <span class="keywordtype">void</span> <a class="code" href="class_enemy_car.html#ac5836046e802a749abb2308886b34060" title="Function that is called when an EnemyCar crashes into a PlayerCar.">EnemyCar::crash</a>()
+<a name="l00096"></a>00096 {
+<a name="l00097"></a>00097 <a class="code" href="class_game_object.html#adc4a399cc59d5706f75748fb3846faec" title="True if the object has been marked for destruction.">_destroyed</a> = <span class="keyword">true</span>;
+<a name="l00098"></a>00098 }
+<a name="l00099"></a>00099
+<a name="l00100"></a><a class="code" href="class_enemy_car.html#aeb8bf92c965ab33f793b0274a02f142c">00100</a> <span class="keywordtype">void</span> <a class="code" href="class_enemy_car.html#aeb8bf92c965ab33f793b0274a02f142c" title="Function that is called when an EnemyCar drives into a Smokescreen.">EnemyCar::blind</a>()
+<a name="l00101"></a>00101 {
+<a name="l00102"></a>00102 <a class="code" href="class_enemy_car.html#a65a1c7b520f043aae27800ced9e8d543" title="The state that the object is currently in.">_state</a> = <a class="code" href="class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87af45d8b201d7334e42651b262a03d631c" title="The EnemyCar can not see, and so does not move.">BLINDED</a>;
+<a name="l00103"></a>00103 <a class="code" href="class_car.html#a84b3d05e98d66f358942193ff54dee51" title="The current speed that the Car is moving at.">_speed</a> = 0;
+<a name="l00104"></a>00104 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_enemy_car_8h.html b/docs/html/_enemy_car_8h.html
new file mode 100644
index 0000000..c1ae24a
--- /dev/null
+++ b/docs/html/_enemy_car_8h.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/EnemyCar.h File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">source/logic/EnemyCar.h File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &lt;cmath&gt;</code><br/>
+<code>#include &quot;../presentation/BitmapStore.h&quot;</code><br/>
+<code>#include &quot;../logic/Car.h&quot;</code><br/>
+<code>#include &quot;../logic/PlayerCar.h&quot;</code><br/>
+<code>#include &quot;../logic/Rock.h&quot;</code><br/>
+<code>#include &quot;../logic/MazeMath.h&quot;</code><br/>
+</div>
+<p><a href="_enemy_car_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_enemy_car.html">EnemyCar</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> that chases the player around the maze. <a href="class_enemy_car.html#details">More...</a><br/></td></tr>
+</table>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_enemy_car_8h_source.html b/docs/html/_enemy_car_8h_source.html
new file mode 100644
index 0000000..a436efe
--- /dev/null
+++ b/docs/html/_enemy_car_8h_source.html
@@ -0,0 +1,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/EnemyCar.h Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/EnemyCar.h</div> </div>
+</div>
+<div class="contents">
+<a href="_enemy_car_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef ENEMYCAR_H</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define ENEMYCAR_H</span>
+<a name="l00003"></a>00003 <span class="preprocessor"></span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;cmath&gt;</span>
+<a name="l00005"></a>00005
+<a name="l00006"></a>00006 <span class="preprocessor">#include &quot;../presentation/BitmapStore.h&quot;</span>
+<a name="l00007"></a>00007
+<a name="l00008"></a>00008 <span class="preprocessor">#include &quot;../logic/Car.h&quot;</span>
+<a name="l00009"></a>00009 <span class="preprocessor">#include &quot;../logic/PlayerCar.h&quot;</span>
+<a name="l00010"></a>00010 <span class="preprocessor">#include &quot;../logic/Rock.h&quot;</span>
+<a name="l00011"></a>00011 <span class="preprocessor">#include &quot;../logic/MazeMath.h&quot;</span>
+<a name="l00012"></a>00012
+<a name="l00021"></a><a class="code" href="class_enemy_car.html">00021</a> <span class="keyword">class </span><a class="code" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>: <span class="keyword">public</span> <a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>
+<a name="l00022"></a>00022 {
+<a name="l00023"></a>00023 <span class="keyword">public</span>:
+<a name="l00030"></a>00030 <a class="code" href="class_enemy_car.html#a8af7d3c56fa9dad09992ce6fbd7389d2" title="Creates an EnemyCar at the given coordinates.">EnemyCar</a>(<span class="keywordtype">double</span> <a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>, <span class="keywordtype">double</span> <a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>);
+<a name="l00031"></a>00031
+<a name="l00032"></a>00032 <span class="comment">//assignment and copy constructors have been left with the compiler generated versions</span>
+<a name="l00033"></a>00033
+<a name="l00043"></a>00043 <span class="keywordtype">void</span> <a class="code" href="class_enemy_car.html#a9f08f73a076e48a0bc0092e72e15e7e4" title="Processes one frame&#39;s worth of activity for the object, called every frame.">update</a>(<span class="keyword">const</span> <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>&amp; maze, <span class="keyword">const</span> list&lt;PlayerCar&gt;&amp; players, <span class="keyword">const</span> list&lt;Rock&gt;&amp; rocks);
+<a name="l00044"></a>00044
+<a name="l00048"></a>00048 <span class="keywordtype">void</span> <a class="code" href="class_enemy_car.html#ac5836046e802a749abb2308886b34060" title="Function that is called when an EnemyCar crashes into a PlayerCar.">crash</a>();
+<a name="l00049"></a>00049
+<a name="l00053"></a>00053 <span class="keywordtype">void</span> <a class="code" href="class_enemy_car.html#aeb8bf92c965ab33f793b0274a02f142c" title="Function that is called when an EnemyCar drives into a Smokescreen.">blind</a>();
+<a name="l00054"></a>00054
+<a name="l00055"></a>00055 <span class="keyword">private</span>:
+<a name="l00061"></a><a class="code" href="class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87">00061</a> <span class="keyword">enum</span> <a class="code" href="class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87" title="States that define how the EnemyCar&#39;s AI should behave.">States</a> {
+<a name="l00062"></a><a class="code" href="class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87af45d8b201d7334e42651b262a03d631c">00062</a> <a class="code" href="class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87af45d8b201d7334e42651b262a03d631c" title="The EnemyCar can not see, and so does not move.">BLINDED</a>,
+<a name="l00063"></a><a class="code" href="class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87a28df0785e03156c97ddeb81da5e0770c">00063</a> <a class="code" href="class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87a28df0785e03156c97ddeb81da5e0770c" title="The EnemyCar tries to drive to the block that the player is currently on.">CHASING</a>
+<a name="l00064"></a>00064 };
+<a name="l00065"></a>00065
+<a name="l00066"></a><a class="code" href="class_enemy_car.html#a65a1c7b520f043aae27800ced9e8d543">00066</a> <a class="code" href="class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87" title="States that define how the EnemyCar&#39;s AI should behave.">States</a> <a class="code" href="class_enemy_car.html#a65a1c7b520f043aae27800ced9e8d543" title="The state that the object is currently in.">_state</a>;
+<a name="l00067"></a><a class="code" href="class_enemy_car.html#aa84ac6485311c535526ea14d02d98cc9">00067</a> <span class="keywordtype">double</span> <a class="code" href="class_enemy_car.html#aa84ac6485311c535526ea14d02d98cc9" title="The x coordinate that the EnemyCar is driving towards.">_targetX</a>;
+<a name="l00068"></a><a class="code" href="class_enemy_car.html#a61ff3751123febe8bc9ab24d0763245c">00068</a> <span class="keywordtype">double</span> <a class="code" href="class_enemy_car.html#a61ff3751123febe8bc9ab24d0763245c" title="The y coordinate that the EnemyCar is driving towards.">_targetY</a>;
+<a name="l00069"></a>00069
+<a name="l00085"></a>00085 <span class="keywordtype">void</span> <a class="code" href="class_enemy_car.html#afa61cecf7df51e26edd632303c18945c" title="Updates the direction that the EnemyCar is facing, if neccesary.">checkFacing</a>(<span class="keyword">const</span> <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>&amp; maze, <span class="keywordtype">double</span> chasingX, <span class="keywordtype">double</span> chasingY, <span class="keyword">const</span> list&lt;Rock&gt;&amp; rocks);
+<a name="l00086"></a>00086
+<a name="l00094"></a>00094 <span class="keywordtype">bool</span> <a class="code" href="class_enemy_car.html#af0dca9b89448557020ef02a18cffb682" title="Iterates through a list of Rocks and determines if moving to a given position would result in a colli...">rockAtLocation</a>(<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keyword">const</span> list&lt;Rock&gt;&amp; rocks);
+<a name="l00095"></a>00095 };
+<a name="l00096"></a>00096
+<a name="l00097"></a>00097 <span class="preprocessor">#endif // ENEMYCAR_H</span>
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_game_8cpp.html b/docs/html/_game_8cpp.html
new file mode 100644
index 0000000..38dd1bc
--- /dev/null
+++ b/docs/html/_game_8cpp.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/Game.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/Game.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_game_8h_source.html">Game.h</a>&quot;</code><br/>
+</div>
+<p><a href="_game_8cpp_source.html">Go to the source code of this file.</a></p>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_game_8cpp_source.html b/docs/html/_game_8cpp_source.html
new file mode 100644
index 0000000..677b9f0
--- /dev/null
+++ b/docs/html/_game_8cpp_source.html
@@ -0,0 +1,292 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/Game.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/Game.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="_game_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &quot;<a class="code" href="_game_8h.html">Game.h</a>&quot;</span>
+<a name="l00002"></a>00002
+<a name="l00003"></a><a class="code" href="class_game.html#ad59df6562a58a614fda24622d3715b65">00003</a> <a class="code" href="class_game.html#ad59df6562a58a614fda24622d3715b65" title="Constructor, that creates the relevant Allegro entities.">Game::Game</a>()
+<a name="l00004"></a>00004 :_config(<span class="stringliteral">&quot;config.txt&quot;</span>),
+<a name="l00005"></a>00005 _screen(_config.screenWidth(), _config.screenHeight(), _config.fullscreen())
+<a name="l00006"></a>00006 {
+<a name="l00007"></a>00007 <a class="code" href="class_game.html#af153fc1d94c473114cfbd63728d21f91" title="Creates FPS events per second, that are put into _timerEvents.">_timer</a> = al_create_timer(1.0/<a class="code" href="class_game.html#a636d6897103fd12d230489d512bf2be1" title="Frames per second, the number of times the gameloop is run every second.">FPS</a>);
+<a name="l00008"></a>00008 <a class="code" href="class_game.html#a2b7303df1b6d0163b78c2c306164859f" title="Catches events from _timer, used to regulate speed of runloop.">_timerEvents</a> = al_create_event_queue();
+<a name="l00009"></a>00009 al_register_event_source(<a class="code" href="class_game.html#a2b7303df1b6d0163b78c2c306164859f" title="Catches events from _timer, used to regulate speed of runloop.">_timerEvents</a>, al_get_timer_event_source(<a class="code" href="class_game.html#af153fc1d94c473114cfbd63728d21f91" title="Creates FPS events per second, that are put into _timerEvents.">_timer</a>));
+<a name="l00010"></a>00010 }
+<a name="l00011"></a>00011
+<a name="l00012"></a><a class="code" href="class_game.html#ae3d112ca6e0e55150d2fdbc704474530">00012</a> <a class="code" href="class_game.html#ae3d112ca6e0e55150d2fdbc704474530" title="Constructor, that destroys the relevant Allegro entities.">Game::~Game</a>()
+<a name="l00013"></a>00013 {
+<a name="l00014"></a>00014 al_destroy_event_queue(<a class="code" href="class_game.html#a2b7303df1b6d0163b78c2c306164859f" title="Catches events from _timer, used to regulate speed of runloop.">_timerEvents</a>);
+<a name="l00015"></a>00015 al_destroy_timer(<a class="code" href="class_game.html#af153fc1d94c473114cfbd63728d21f91" title="Creates FPS events per second, that are put into _timerEvents.">_timer</a>);
+<a name="l00016"></a>00016
+<a name="l00017"></a>00017 }
+<a name="l00018"></a>00018
+<a name="l00019"></a><a class="code" href="class_game.html#a3d9b98f7c4a96ecf578f75b96c9f0e90">00019</a> <span class="keywordtype">void</span> <a class="code" href="class_game.html#a3d9b98f7c4a96ecf578f75b96c9f0e90" title="Entry point for the program. This should be called from main.">Game::start</a>()
+<a name="l00020"></a>00020 {
+<a name="l00021"></a>00021 <span class="keywordflow">while</span> (!<a class="code" href="class_game.html#a9bc904a37fe9b3e85a597b6b5c6a66d5" title="Handles all drawing operations.">_screen</a>.<a class="code" href="class_screen.html#acca34443ba0ad97922069658d688ea9a" title="Function to find if the player has chosen to exit the game.">exitClicked</a>())
+<a name="l00022"></a>00022 {
+<a name="l00023"></a>00023 <span class="keywordtype">string</span> filename = <a class="code" href="class_game.html#a9bc904a37fe9b3e85a597b6b5c6a66d5" title="Handles all drawing operations.">_screen</a>.<a class="code" href="class_screen.html#a45d06e513491e40f76013fb670c6c6cc" title="Presents the player with a file dialog, requesting a level file to be selected.">getLevel</a>();
+<a name="l00024"></a>00024 <span class="keywordflow">if</span> (!filename.empty())
+<a name="l00025"></a>00025 {
+<a name="l00026"></a>00026 <a class="code" href="class_game.html#a2bd8589c18470f644445d97c1c35d169" title="Initialises all of the GameObject lists using a file.">initLevel</a>(filename);
+<a name="l00027"></a>00027 <a class="code" href="class_game.html#a069837f5f3f3b91b581e41dd74667211" title="Main part of the game, performs the actions in each frame FPS times per second until the game is over...">runloop</a>();
+<a name="l00028"></a>00028 }
+<a name="l00029"></a>00029 }
+<a name="l00030"></a>00030 }
+<a name="l00031"></a>00031
+<a name="l00032"></a><a class="code" href="class_game.html#a2bd8589c18470f644445d97c1c35d169">00032</a> <span class="keywordtype">void</span> <a class="code" href="class_game.html#a2bd8589c18470f644445d97c1c35d169" title="Initialises all of the GameObject lists using a file.">Game::initLevel</a>(<span class="keyword">const</span> <span class="keywordtype">string</span>&amp; levelFile)
+<a name="l00033"></a>00033 {
+<a name="l00034"></a>00034 <a class="code" href="class_game.html#a03cf795e9aaa4c5950b4b5e918ab9ab6" title="Destroys all GameObjects in the game, resetting the lists for a new level to be loaded.">clearLists</a>();
+<a name="l00035"></a>00035 <a class="code" href="class_level_reader.html" title="Reads the game objects from a text file and calls relevant constructors.">LevelReader</a> reader(levelFile);
+<a name="l00036"></a>00036 reader.<a class="code" href="class_level_reader.html#a27277149f3270e040c8ffeadbca79758" title="Function to read the chosen file into the data structures used in the game.">readLevel</a>(<a class="code" href="class_game.html#a33457b2c7fa4f43b89e54ce9c5ac6f83" title="The environment that confines the movements of GameObjects, specifically Cars.">_maze</a>, <a class="code" href="class_game.html#a75bf3282da1519766a6b75e2d83293ac" title="Typically a single PlayerCar, controlled by the person playing the game.">_players</a>, <a class="code" href="class_game.html#afbd3e358076a6cf2e72faefe1c202df9" title="List of all EnemyCars chasing the player.">_enemies</a>, <a class="code" href="class_game.html#a856252e94c580f59b926affc7d45b4bf" title="List of checkpoints that the player needs to collect.">_checkpoints</a>, <a class="code" href="class_game.html#a9f14643bfc4d595dc7dfa3160a59d71b" title="List of rocks that the player and EnemyCars need to avoid.">_rocks</a>);
+<a name="l00037"></a>00037 }
+<a name="l00038"></a>00038
+<a name="l00039"></a><a class="code" href="class_game.html#a069837f5f3f3b91b581e41dd74667211">00039</a> <span class="keywordtype">void</span> <a class="code" href="class_game.html#a069837f5f3f3b91b581e41dd74667211" title="Main part of the game, performs the actions in each frame FPS times per second until the game is over...">Game::runloop</a>()
+<a name="l00040"></a>00040 {
+<a name="l00041"></a>00041 <span class="keywordtype">bool</span> gameWon = <span class="keyword">false</span>;
+<a name="l00042"></a>00042 <span class="keywordtype">bool</span> gameLost = <span class="keyword">false</span>;
+<a name="l00043"></a>00043 al_start_timer(<a class="code" href="class_game.html#af153fc1d94c473114cfbd63728d21f91" title="Creates FPS events per second, that are put into _timerEvents.">_timer</a>);
+<a name="l00044"></a>00044
+<a name="l00045"></a>00045 <span class="keywordflow">while</span> (!<a class="code" href="class_game.html#a9bc904a37fe9b3e85a597b6b5c6a66d5" title="Handles all drawing operations.">_screen</a>.<a class="code" href="class_screen.html#acca34443ba0ad97922069658d688ea9a" title="Function to find if the player has chosen to exit the game.">exitClicked</a>())
+<a name="l00046"></a>00046 {
+<a name="l00047"></a>00047 al_wait_for_event(<a class="code" href="class_game.html#a2b7303df1b6d0163b78c2c306164859f" title="Catches events from _timer, used to regulate speed of runloop.">_timerEvents</a>, NULL);
+<a name="l00048"></a>00048 al_flush_event_queue(<a class="code" href="class_game.html#a2b7303df1b6d0163b78c2c306164859f" title="Catches events from _timer, used to regulate speed of runloop.">_timerEvents</a>);
+<a name="l00049"></a>00049
+<a name="l00050"></a>00050 <a class="code" href="class_game.html#a79df6376b332d63c9eca0dcee30305c3" title="Calls the update method on each of the GameObjects in the game.">update</a>();
+<a name="l00051"></a>00051 <a class="code" href="class_game.html#ab88620fda0d1fa729dcab6013e8f1efc" title="Object that checks for collisions each frame.">_collisionDetector</a>.<a class="code" href="class_collision_detector.html#a6ee96032c26ceeab038d2702d7064c7b" title="Checks for collisions between all relevant pairs of objects, and calls the relevant collision functio...">checkCollisions</a>(<a class="code" href="class_game.html#a75bf3282da1519766a6b75e2d83293ac" title="Typically a single PlayerCar, controlled by the person playing the game.">_players</a>, <a class="code" href="class_game.html#afbd3e358076a6cf2e72faefe1c202df9" title="List of all EnemyCars chasing the player.">_enemies</a>, <a class="code" href="class_game.html#a856252e94c580f59b926affc7d45b4bf" title="List of checkpoints that the player needs to collect.">_checkpoints</a>, <a class="code" href="class_game.html#a9f14643bfc4d595dc7dfa3160a59d71b" title="List of rocks that the player and EnemyCars need to avoid.">_rocks</a>, <a class="code" href="class_game.html#a88916ad9e8095b99a9c870a053180c1c" title="List of Smokescreen objects that are currently able to delay EnemyCars.">_smokescreens</a>);
+<a name="l00052"></a>00052 <a class="code" href="class_game.html#a961f632fbe7f4ba08d23fe9edc7711be" title="Removes any GameObjects that have been destroyed from their lists.">cleanup</a>();
+<a name="l00053"></a>00053 <a class="code" href="class_game.html#a9bc904a37fe9b3e85a597b6b5c6a66d5" title="Handles all drawing operations.">_screen</a>.<a class="code" href="class_screen.html#aec3c5c20e14d6ef033c8a6a559a84872" title="Draws the given objects on the screen.">draw</a>(<a class="code" href="class_game.html#a33457b2c7fa4f43b89e54ce9c5ac6f83" title="The environment that confines the movements of GameObjects, specifically Cars.">_maze</a>, <a class="code" href="class_game.html#a75bf3282da1519766a6b75e2d83293ac" title="Typically a single PlayerCar, controlled by the person playing the game.">_players</a>, <a class="code" href="class_game.html#afbd3e358076a6cf2e72faefe1c202df9" title="List of all EnemyCars chasing the player.">_enemies</a>, <a class="code" href="class_game.html#a856252e94c580f59b926affc7d45b4bf" title="List of checkpoints that the player needs to collect.">_checkpoints</a>, <a class="code" href="class_game.html#a9f14643bfc4d595dc7dfa3160a59d71b" title="List of rocks that the player and EnemyCars need to avoid.">_rocks</a>, <a class="code" href="class_game.html#a88916ad9e8095b99a9c870a053180c1c" title="List of Smokescreen objects that are currently able to delay EnemyCars.">_smokescreens</a>, <a class="code" href="class_game.html#a9bea5a0ee430443effa418d42a903f83" title="List of purely visual DestroyedObjectPopups that need to be drawn.">_popups</a>);
+<a name="l00054"></a>00054
+<a name="l00055"></a>00055 gameLost = <a class="code" href="class_game.html#a75bf3282da1519766a6b75e2d83293ac" title="Typically a single PlayerCar, controlled by the person playing the game.">_players</a>.empty();
+<a name="l00056"></a>00056 gameWon = <a class="code" href="class_checkpoint.html#a872d8574b6f0a7960854fb1175e05f13" title="Function for accessing the number of checkpoints that currently exist.">Checkpoint::checkpointCount</a>()==0;
+<a name="l00057"></a>00057
+<a name="l00058"></a>00058 <span class="keywordflow">if</span> (gameLost)
+<a name="l00059"></a>00059 {
+<a name="l00060"></a>00060 <a class="code" href="class_game.html#a9bc904a37fe9b3e85a597b6b5c6a66d5" title="Handles all drawing operations.">_screen</a>.<a class="code" href="class_screen.html#aab9ab8447df2b526985970d2ac80c919" title="Draws a splash screen when the level has been lost.">drawLoss</a>();
+<a name="l00061"></a>00061 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i&lt;90; i++)
+<a name="l00062"></a>00062 {
+<a name="l00063"></a>00063 al_wait_for_event(<a class="code" href="class_game.html#a2b7303df1b6d0163b78c2c306164859f" title="Catches events from _timer, used to regulate speed of runloop.">_timerEvents</a>, NULL);
+<a name="l00064"></a>00064 al_drop_next_event(<a class="code" href="class_game.html#a2b7303df1b6d0163b78c2c306164859f" title="Catches events from _timer, used to regulate speed of runloop.">_timerEvents</a>);
+<a name="l00065"></a>00065 }
+<a name="l00066"></a>00066 <span class="keywordflow">break</span>;
+<a name="l00067"></a>00067 }
+<a name="l00068"></a>00068 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (gameWon)
+<a name="l00069"></a>00069 {
+<a name="l00070"></a>00070 <a class="code" href="class_game.html#a9bc904a37fe9b3e85a597b6b5c6a66d5" title="Handles all drawing operations.">_screen</a>.<a class="code" href="class_screen.html#ad4c1281e4d59eb89377dd87bba8a310e" title="Draws a splash screen when the level has been won.">drawWin</a>();
+<a name="l00071"></a>00071 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i&lt;90; i++)
+<a name="l00072"></a>00072 {
+<a name="l00073"></a>00073 al_wait_for_event(<a class="code" href="class_game.html#a2b7303df1b6d0163b78c2c306164859f" title="Catches events from _timer, used to regulate speed of runloop.">_timerEvents</a>, NULL);
+<a name="l00074"></a>00074 al_drop_next_event(<a class="code" href="class_game.html#a2b7303df1b6d0163b78c2c306164859f" title="Catches events from _timer, used to regulate speed of runloop.">_timerEvents</a>);
+<a name="l00075"></a>00075 }
+<a name="l00076"></a>00076 <span class="keywordflow">break</span>;
+<a name="l00077"></a>00077 }
+<a name="l00078"></a>00078 }
+<a name="l00079"></a>00079 al_stop_timer(<a class="code" href="class_game.html#af153fc1d94c473114cfbd63728d21f91" title="Creates FPS events per second, that are put into _timerEvents.">_timer</a>);
+<a name="l00080"></a>00080 }
+<a name="l00081"></a>00081
+<a name="l00082"></a><a class="code" href="class_game.html#a79df6376b332d63c9eca0dcee30305c3">00082</a> <span class="keywordtype">void</span> <a class="code" href="class_game.html#a79df6376b332d63c9eca0dcee30305c3" title="Calls the update method on each of the GameObjects in the game.">Game::update</a>()
+<a name="l00083"></a>00083 {
+<a name="l00084"></a>00084 <span class="keywordflow">for</span> (list&lt;PlayerCar&gt;::iterator iter = <a class="code" href="class_game.html#a75bf3282da1519766a6b75e2d83293ac" title="Typically a single PlayerCar, controlled by the person playing the game.">_players</a>.begin(); iter!=<a class="code" href="class_game.html#a75bf3282da1519766a6b75e2d83293ac" title="Typically a single PlayerCar, controlled by the person playing the game.">_players</a>.end(); ++iter)
+<a name="l00085"></a>00085 {
+<a name="l00086"></a>00086 iter-&gt;update(<a class="code" href="class_game.html#a33457b2c7fa4f43b89e54ce9c5ac6f83" title="The environment that confines the movements of GameObjects, specifically Cars.">_maze</a>, <a class="code" href="class_game.html#a88916ad9e8095b99a9c870a053180c1c" title="List of Smokescreen objects that are currently able to delay EnemyCars.">_smokescreens</a>);
+<a name="l00087"></a>00087 }
+<a name="l00088"></a>00088
+<a name="l00089"></a>00089 <span class="keywordflow">for</span> (list&lt;EnemyCar&gt;::iterator iter = <a class="code" href="class_game.html#afbd3e358076a6cf2e72faefe1c202df9" title="List of all EnemyCars chasing the player.">_enemies</a>.begin(); iter!=<a class="code" href="class_game.html#afbd3e358076a6cf2e72faefe1c202df9" title="List of all EnemyCars chasing the player.">_enemies</a>.end(); ++iter)
+<a name="l00090"></a>00090 {
+<a name="l00091"></a>00091 iter-&gt;update(<a class="code" href="class_game.html#a33457b2c7fa4f43b89e54ce9c5ac6f83" title="The environment that confines the movements of GameObjects, specifically Cars.">_maze</a>, <a class="code" href="class_game.html#a75bf3282da1519766a6b75e2d83293ac" title="Typically a single PlayerCar, controlled by the person playing the game.">_players</a>, <a class="code" href="class_game.html#a9f14643bfc4d595dc7dfa3160a59d71b" title="List of rocks that the player and EnemyCars need to avoid.">_rocks</a>);
+<a name="l00092"></a>00092 }
+<a name="l00093"></a>00093
+<a name="l00094"></a>00094 <span class="keywordflow">for</span> (list&lt;Smokescreen&gt;::iterator iter = <a class="code" href="class_game.html#a88916ad9e8095b99a9c870a053180c1c" title="List of Smokescreen objects that are currently able to delay EnemyCars.">_smokescreens</a>.begin(); iter!=<a class="code" href="class_game.html#a88916ad9e8095b99a9c870a053180c1c" title="List of Smokescreen objects that are currently able to delay EnemyCars.">_smokescreens</a>.end(); ++iter)
+<a name="l00095"></a>00095 {
+<a name="l00096"></a>00096 iter-&gt;update();
+<a name="l00097"></a>00097 }
+<a name="l00098"></a>00098 <span class="keywordflow">for</span> (list&lt;DestroyedObjectPopup&gt;::iterator iter = <a class="code" href="class_game.html#a9bea5a0ee430443effa418d42a903f83" title="List of purely visual DestroyedObjectPopups that need to be drawn.">_popups</a>.begin(); iter!=<a class="code" href="class_game.html#a9bea5a0ee430443effa418d42a903f83" title="List of purely visual DestroyedObjectPopups that need to be drawn.">_popups</a>.end(); ++iter)
+<a name="l00099"></a>00099 {
+<a name="l00100"></a>00100 iter-&gt;update();
+<a name="l00101"></a>00101 }
+<a name="l00102"></a>00102 }
+<a name="l00103"></a>00103
+<a name="l00104"></a><a class="code" href="class_game.html#a961f632fbe7f4ba08d23fe9edc7711be">00104</a> <span class="keywordtype">void</span> <a class="code" href="class_game.html#a961f632fbe7f4ba08d23fe9edc7711be" title="Removes any GameObjects that have been destroyed from their lists.">Game::cleanup</a>()
+<a name="l00105"></a>00105 {
+<a name="l00106"></a>00106 <span class="keywordflow">for</span> (list&lt;PlayerCar&gt;::iterator iter = <a class="code" href="class_game.html#a75bf3282da1519766a6b75e2d83293ac" title="Typically a single PlayerCar, controlled by the person playing the game.">_players</a>.begin(); iter!=<a class="code" href="class_game.html#a75bf3282da1519766a6b75e2d83293ac" title="Typically a single PlayerCar, controlled by the person playing the game.">_players</a>.end();)
+<a name="l00107"></a>00107 {
+<a name="l00108"></a>00108 <span class="keywordflow">if</span> (iter-&gt;destroyed())
+<a name="l00109"></a>00109 {
+<a name="l00110"></a>00110 <a class="code" href="class_game.html#a9bea5a0ee430443effa418d42a903f83" title="List of purely visual DestroyedObjectPopups that need to be drawn.">_popups</a>.push_back(<a class="code" href="class_destroyed_object_popup.html" title="Object that appears on the screen for a short time when another object has been destroyed.">DestroyedObjectPopup</a>(iter-&gt;x(), iter-&gt;y(), <a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a8b9eb5b79abe467982784ea2227d67e0">BitmapStore::CRASHED_CAR</a>));
+<a name="l00111"></a>00111 iter = <a class="code" href="class_game.html#a75bf3282da1519766a6b75e2d83293ac" title="Typically a single PlayerCar, controlled by the person playing the game.">_players</a>.erase(iter);
+<a name="l00112"></a>00112 }
+<a name="l00113"></a>00113 <span class="keywordflow">else</span>
+<a name="l00114"></a>00114 {
+<a name="l00115"></a>00115 ++iter;
+<a name="l00116"></a>00116 }
+<a name="l00117"></a>00117 }
+<a name="l00118"></a>00118 <span class="keywordflow">for</span> (list&lt;EnemyCar&gt;::iterator iter = <a class="code" href="class_game.html#afbd3e358076a6cf2e72faefe1c202df9" title="List of all EnemyCars chasing the player.">_enemies</a>.begin(); iter!=<a class="code" href="class_game.html#afbd3e358076a6cf2e72faefe1c202df9" title="List of all EnemyCars chasing the player.">_enemies</a>.end();)
+<a name="l00119"></a>00119 {
+<a name="l00120"></a>00120 <span class="keywordflow">if</span> (iter-&gt;destroyed())
+<a name="l00121"></a>00121 {
+<a name="l00122"></a>00122 <a class="code" href="class_game.html#a9bea5a0ee430443effa418d42a903f83" title="List of purely visual DestroyedObjectPopups that need to be drawn.">_popups</a>.push_back(<a class="code" href="class_destroyed_object_popup.html" title="Object that appears on the screen for a short time when another object has been destroyed.">DestroyedObjectPopup</a>(iter-&gt;x(), iter-&gt;y(), <a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a8b9eb5b79abe467982784ea2227d67e0">BitmapStore::CRASHED_CAR</a>));
+<a name="l00123"></a>00123 iter = <a class="code" href="class_game.html#afbd3e358076a6cf2e72faefe1c202df9" title="List of all EnemyCars chasing the player.">_enemies</a>.erase(iter);
+<a name="l00124"></a>00124 }
+<a name="l00125"></a>00125 <span class="keywordflow">else</span>
+<a name="l00126"></a>00126 {
+<a name="l00127"></a>00127 ++iter;
+<a name="l00128"></a>00128 }
+<a name="l00129"></a>00129 }
+<a name="l00130"></a>00130 <span class="keywordflow">for</span> (list&lt;Checkpoint&gt;::iterator iter = <a class="code" href="class_game.html#a856252e94c580f59b926affc7d45b4bf" title="List of checkpoints that the player needs to collect.">_checkpoints</a>.begin(); iter!=<a class="code" href="class_game.html#a856252e94c580f59b926affc7d45b4bf" title="List of checkpoints that the player needs to collect.">_checkpoints</a>.end();)
+<a name="l00131"></a>00131 {
+<a name="l00132"></a>00132 <span class="keywordflow">if</span> (iter-&gt;destroyed())
+<a name="l00133"></a>00133 {
+<a name="l00134"></a>00134 <a class="code" href="class_game.html#a9bea5a0ee430443effa418d42a903f83" title="List of purely visual DestroyedObjectPopups that need to be drawn.">_popups</a>.push_back(<a class="code" href="class_destroyed_object_popup.html" title="Object that appears on the screen for a short time when another object has been destroyed.">DestroyedObjectPopup</a>(iter-&gt;x(), iter-&gt;y(), <a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a824f0021358b88c7f1172d7dece95948">BitmapStore::CLAIMED_CHECKPOINT</a>));
+<a name="l00135"></a>00135 iter = <a class="code" href="class_game.html#a856252e94c580f59b926affc7d45b4bf" title="List of checkpoints that the player needs to collect.">_checkpoints</a>.erase(iter);
+<a name="l00136"></a>00136 }
+<a name="l00137"></a>00137 <span class="keywordflow">else</span>
+<a name="l00138"></a>00138 {
+<a name="l00139"></a>00139 ++iter;
+<a name="l00140"></a>00140 }
+<a name="l00141"></a>00141 }
+<a name="l00142"></a>00142 <span class="keywordflow">for</span> (list&lt;Rock&gt;::iterator iter = <a class="code" href="class_game.html#a9f14643bfc4d595dc7dfa3160a59d71b" title="List of rocks that the player and EnemyCars need to avoid.">_rocks</a>.begin(); iter!=<a class="code" href="class_game.html#a9f14643bfc4d595dc7dfa3160a59d71b" title="List of rocks that the player and EnemyCars need to avoid.">_rocks</a>.end();)
+<a name="l00143"></a>00143 {
+<a name="l00144"></a>00144 <span class="keywordflow">if</span> (iter-&gt;destroyed())
+<a name="l00145"></a>00145 {
+<a name="l00146"></a>00146 iter = <a class="code" href="class_game.html#a9f14643bfc4d595dc7dfa3160a59d71b" title="List of rocks that the player and EnemyCars need to avoid.">_rocks</a>.erase(iter);
+<a name="l00147"></a>00147 }
+<a name="l00148"></a>00148 <span class="keywordflow">else</span>
+<a name="l00149"></a>00149 {
+<a name="l00150"></a>00150 ++iter;
+<a name="l00151"></a>00151 }
+<a name="l00152"></a>00152 }
+<a name="l00153"></a>00153 <span class="keywordflow">for</span> (list&lt;Smokescreen&gt;::iterator iter = <a class="code" href="class_game.html#a88916ad9e8095b99a9c870a053180c1c" title="List of Smokescreen objects that are currently able to delay EnemyCars.">_smokescreens</a>.begin(); iter!=<a class="code" href="class_game.html#a88916ad9e8095b99a9c870a053180c1c" title="List of Smokescreen objects that are currently able to delay EnemyCars.">_smokescreens</a>.end();)
+<a name="l00154"></a>00154 {
+<a name="l00155"></a>00155 <span class="keywordflow">if</span> (iter-&gt;destroyed())
+<a name="l00156"></a>00156 {
+<a name="l00157"></a>00157 iter = <a class="code" href="class_game.html#a88916ad9e8095b99a9c870a053180c1c" title="List of Smokescreen objects that are currently able to delay EnemyCars.">_smokescreens</a>.erase(iter);
+<a name="l00158"></a>00158 }
+<a name="l00159"></a>00159 <span class="keywordflow">else</span>
+<a name="l00160"></a>00160 {
+<a name="l00161"></a>00161 ++iter;
+<a name="l00162"></a>00162 }
+<a name="l00163"></a>00163 }
+<a name="l00164"></a>00164 <span class="keywordflow">for</span> (list&lt;DestroyedObjectPopup&gt;::iterator iter = <a class="code" href="class_game.html#a9bea5a0ee430443effa418d42a903f83" title="List of purely visual DestroyedObjectPopups that need to be drawn.">_popups</a>.begin(); iter!=<a class="code" href="class_game.html#a9bea5a0ee430443effa418d42a903f83" title="List of purely visual DestroyedObjectPopups that need to be drawn.">_popups</a>.end();)
+<a name="l00165"></a>00165 {
+<a name="l00166"></a>00166 <span class="keywordflow">if</span> (iter-&gt;destroyed())
+<a name="l00167"></a>00167 {
+<a name="l00168"></a>00168 iter = <a class="code" href="class_game.html#a9bea5a0ee430443effa418d42a903f83" title="List of purely visual DestroyedObjectPopups that need to be drawn.">_popups</a>.erase(iter);
+<a name="l00169"></a>00169 }
+<a name="l00170"></a>00170 <span class="keywordflow">else</span>
+<a name="l00171"></a>00171 {
+<a name="l00172"></a>00172 ++iter;
+<a name="l00173"></a>00173 }
+<a name="l00174"></a>00174 }
+<a name="l00175"></a>00175 }
+<a name="l00176"></a>00176
+<a name="l00177"></a><a class="code" href="class_game.html#a03cf795e9aaa4c5950b4b5e918ab9ab6">00177</a> <span class="keywordtype">void</span> <a class="code" href="class_game.html#a03cf795e9aaa4c5950b4b5e918ab9ab6" title="Destroys all GameObjects in the game, resetting the lists for a new level to be loaded.">Game::clearLists</a>()
+<a name="l00178"></a>00178 {
+<a name="l00179"></a>00179 <a class="code" href="class_game.html#a75bf3282da1519766a6b75e2d83293ac" title="Typically a single PlayerCar, controlled by the person playing the game.">_players</a>.clear();
+<a name="l00180"></a>00180 <a class="code" href="class_game.html#afbd3e358076a6cf2e72faefe1c202df9" title="List of all EnemyCars chasing the player.">_enemies</a>.clear();
+<a name="l00181"></a>00181 <a class="code" href="class_game.html#a856252e94c580f59b926affc7d45b4bf" title="List of checkpoints that the player needs to collect.">_checkpoints</a>.clear();
+<a name="l00182"></a>00182 <a class="code" href="class_game.html#a9f14643bfc4d595dc7dfa3160a59d71b" title="List of rocks that the player and EnemyCars need to avoid.">_rocks</a>.clear();
+<a name="l00183"></a>00183 <a class="code" href="class_game.html#a88916ad9e8095b99a9c870a053180c1c" title="List of Smokescreen objects that are currently able to delay EnemyCars.">_smokescreens</a>.clear();
+<a name="l00184"></a>00184 <a class="code" href="class_game.html#a9bea5a0ee430443effa418d42a903f83" title="List of purely visual DestroyedObjectPopups that need to be drawn.">_popups</a>.clear();
+<a name="l00185"></a>00185 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_game_8h.html b/docs/html/_game_8h.html
new file mode 100644
index 0000000..cfe326d
--- /dev/null
+++ b/docs/html/_game_8h.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/Game.h File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">source/logic/Game.h File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &lt;list&gt;</code><br/>
+<code>#include &lt;algorithm&gt;</code><br/>
+<code>#include &lt;allegro5/allegro.h&gt;</code><br/>
+<code>#include &quot;../presentation/Screen.h&quot;</code><br/>
+<code>#include &quot;../presentation/BitmapStore.h&quot;</code><br/>
+<code>#include &quot;../logic/Maze.h&quot;</code><br/>
+<code>#include &quot;../logic/PlayerCar.h&quot;</code><br/>
+<code>#include &quot;../logic/EnemyCar.h&quot;</code><br/>
+<code>#include &quot;../logic/Checkpoint.h&quot;</code><br/>
+<code>#include &quot;../logic/Rock.h&quot;</code><br/>
+<code>#include &quot;../logic/Smokescreen.h&quot;</code><br/>
+<code>#include &quot;../logic/DestroyedObjectPopup.h&quot;</code><br/>
+<code>#include &quot;../logic/AllegroWrappers.h&quot;</code><br/>
+<code>#include &quot;../logic/CollisionDetector.h&quot;</code><br/>
+<code>#include &quot;../data/LevelReader.h&quot;</code><br/>
+<code>#include &quot;../data/Config.h&quot;</code><br/>
+</div>
+<p><a href="_game_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game.html">Game</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The object that controls the flow of the game, and the launch point of the game. <a href="class_game.html#details">More...</a><br/></td></tr>
+</table>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_game_8h_source.html b/docs/html/_game_8h_source.html
new file mode 100644
index 0000000..e487b02
--- /dev/null
+++ b/docs/html/_game_8h_source.html
@@ -0,0 +1,177 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/Game.h Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/Game.h</div> </div>
+</div>
+<div class="contents">
+<a href="_game_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef GAME_H</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define GAME_H</span>
+<a name="l00003"></a>00003 <span class="preprocessor"></span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;list&gt;</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include &lt;algorithm&gt;</span>
+<a name="l00006"></a>00006 <span class="keyword">using namespace </span>std;
+<a name="l00007"></a>00007
+<a name="l00008"></a>00008 <span class="preprocessor">#include &lt;allegro5/allegro.h&gt;</span>
+<a name="l00009"></a>00009
+<a name="l00010"></a>00010 <span class="preprocessor">#include &quot;../presentation/Screen.h&quot;</span>
+<a name="l00011"></a>00011 <span class="preprocessor">#include &quot;../presentation/BitmapStore.h&quot;</span>
+<a name="l00012"></a>00012
+<a name="l00013"></a>00013 <span class="preprocessor">#include &quot;../logic/Maze.h&quot;</span>
+<a name="l00014"></a>00014 <span class="preprocessor">#include &quot;../logic/PlayerCar.h&quot;</span>
+<a name="l00015"></a>00015 <span class="preprocessor">#include &quot;../logic/EnemyCar.h&quot;</span>
+<a name="l00016"></a>00016 <span class="preprocessor">#include &quot;../logic/Checkpoint.h&quot;</span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include &quot;../logic/Rock.h&quot;</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include &quot;../logic/Smokescreen.h&quot;</span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include &quot;../logic/DestroyedObjectPopup.h&quot;</span>
+<a name="l00020"></a>00020 <span class="preprocessor">#include &quot;../logic/AllegroWrappers.h&quot;</span>
+<a name="l00021"></a>00021 <span class="preprocessor">#include &quot;../logic/CollisionDetector.h&quot;</span>
+<a name="l00022"></a>00022
+<a name="l00023"></a>00023 <span class="preprocessor">#include &quot;../data/LevelReader.h&quot;</span>
+<a name="l00024"></a>00024 <span class="preprocessor">#include &quot;../data/Config.h&quot;</span>
+<a name="l00025"></a>00025
+<a name="l00036"></a><a class="code" href="class_game.html">00036</a> <span class="keyword">class </span><a class="code" href="class_game.html" title="The object that controls the flow of the game, and the launch point of the game.">Game</a>
+<a name="l00037"></a>00037 {
+<a name="l00038"></a>00038 <span class="keyword">public</span>:
+<a name="l00039"></a><a class="code" href="class_game.html#a636d6897103fd12d230489d512bf2be1">00039</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> FPS = 30;
+<a name="l00040"></a>00040
+<a name="l00044"></a>00044 <a class="code" href="class_game.html" title="The object that controls the flow of the game, and the launch point of the game.">Game</a>();
+<a name="l00045"></a>00045
+<a name="l00049"></a>00049 ~<a class="code" href="class_game.html" title="The object that controls the flow of the game, and the launch point of the game.">Game</a>();
+<a name="l00050"></a>00050
+<a name="l00054"></a>00054 <span class="keywordtype">void</span> start();
+<a name="l00055"></a>00055
+<a name="l00056"></a>00056 <span class="keyword">private</span>:
+<a name="l00062"></a>00062 <a class="code" href="class_game.html" title="The object that controls the flow of the game, and the launch point of the game.">Game</a>(<span class="keyword">const</span> <a class="code" href="class_game.html" title="The object that controls the flow of the game, and the launch point of the game.">Game</a>&amp; ref);
+<a name="l00068"></a>00068 <a class="code" href="class_game.html" title="The object that controls the flow of the game, and the launch point of the game.">Game</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="class_game.html" title="The object that controls the flow of the game, and the launch point of the game.">Game</a>&amp; rhs);
+<a name="l00069"></a>00069
+<a name="l00075"></a>00075 <span class="keywordtype">void</span> initLevel(<span class="keyword">const</span> <span class="keywordtype">string</span>&amp; levelFile);
+<a name="l00076"></a>00076
+<a name="l00088"></a>00088 <span class="keywordtype">void</span> runloop();
+<a name="l00089"></a>00089
+<a name="l00093"></a>00093 <span class="keywordtype">void</span> update();
+<a name="l00097"></a>00097 <span class="keywordtype">void</span> cleanup();
+<a name="l00098"></a>00098
+<a name="l00104"></a>00104 <span class="keywordtype">void</span> clearLists();
+<a name="l00105"></a>00105
+<a name="l00106"></a><a class="code" href="class_game.html#a3bbe8c0dadbdf9e9e1d499f10509ef4e">00106</a> <a class="code" href="class_allegro_init.html" title="Class ensures that Allegro is initialized and uninstalled when appropriate.">AllegroInit</a> <a class="code" href="class_game.html#a3bbe8c0dadbdf9e9e1d499f10509ef4e" title="Handles dependencies on Allegro being installed.">_allegro</a>;
+<a name="l00107"></a>00107
+<a name="l00108"></a><a class="code" href="class_game.html#aa60fe2dc0d1d53ebf49c2d87af6ee2d5">00108</a> <a class="code" href="class_config.html" title="Object for handling user settings loaded from a file.">Config</a> <a class="code" href="class_game.html#aa60fe2dc0d1d53ebf49c2d87af6ee2d5" title="Loads configuration from file on construction, used to set resolution of screen.">_config</a>;
+<a name="l00109"></a><a class="code" href="class_game.html#a9bc904a37fe9b3e85a597b6b5c6a66d5">00109</a> <a class="code" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a> <a class="code" href="class_game.html#a9bc904a37fe9b3e85a597b6b5c6a66d5" title="Handles all drawing operations.">_screen</a>;
+<a name="l00110"></a><a class="code" href="class_game.html#af153fc1d94c473114cfbd63728d21f91">00110</a> ALLEGRO_TIMER* <a class="code" href="class_game.html#af153fc1d94c473114cfbd63728d21f91" title="Creates FPS events per second, that are put into _timerEvents.">_timer</a>;
+<a name="l00111"></a><a class="code" href="class_game.html#a2b7303df1b6d0163b78c2c306164859f">00111</a> ALLEGRO_EVENT_QUEUE* <a class="code" href="class_game.html#a2b7303df1b6d0163b78c2c306164859f" title="Catches events from _timer, used to regulate speed of runloop.">_timerEvents</a>;
+<a name="l00112"></a>00112
+<a name="l00113"></a><a class="code" href="class_game.html#a33457b2c7fa4f43b89e54ce9c5ac6f83">00113</a> <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> <a class="code" href="class_game.html#a33457b2c7fa4f43b89e54ce9c5ac6f83" title="The environment that confines the movements of GameObjects, specifically Cars.">_maze</a>;
+<a name="l00114"></a>00114
+<a name="l00124"></a><a class="code" href="class_game.html#a75bf3282da1519766a6b75e2d83293ac">00124</a> list&lt;PlayerCar&gt; <a class="code" href="class_game.html#a75bf3282da1519766a6b75e2d83293ac" title="Typically a single PlayerCar, controlled by the person playing the game.">_players</a>;
+<a name="l00125"></a>00125
+<a name="l00126"></a><a class="code" href="class_game.html#afbd3e358076a6cf2e72faefe1c202df9">00126</a> list&lt;EnemyCar&gt; <a class="code" href="class_game.html#afbd3e358076a6cf2e72faefe1c202df9" title="List of all EnemyCars chasing the player.">_enemies</a>;
+<a name="l00127"></a><a class="code" href="class_game.html#a856252e94c580f59b926affc7d45b4bf">00127</a> list&lt;Checkpoint&gt; <a class="code" href="class_game.html#a856252e94c580f59b926affc7d45b4bf" title="List of checkpoints that the player needs to collect.">_checkpoints</a>;
+<a name="l00128"></a><a class="code" href="class_game.html#a9f14643bfc4d595dc7dfa3160a59d71b">00128</a> list&lt;Rock&gt; <a class="code" href="class_game.html#a9f14643bfc4d595dc7dfa3160a59d71b" title="List of rocks that the player and EnemyCars need to avoid.">_rocks</a>;
+<a name="l00129"></a><a class="code" href="class_game.html#a88916ad9e8095b99a9c870a053180c1c">00129</a> list&lt;Smokescreen&gt; <a class="code" href="class_game.html#a88916ad9e8095b99a9c870a053180c1c" title="List of Smokescreen objects that are currently able to delay EnemyCars.">_smokescreens</a>;
+<a name="l00130"></a><a class="code" href="class_game.html#a9bea5a0ee430443effa418d42a903f83">00130</a> list&lt;DestroyedObjectPopup&gt; <a class="code" href="class_game.html#a9bea5a0ee430443effa418d42a903f83" title="List of purely visual DestroyedObjectPopups that need to be drawn.">_popups</a>;
+<a name="l00131"></a>00131
+<a name="l00132"></a><a class="code" href="class_game.html#ab88620fda0d1fa729dcab6013e8f1efc">00132</a> <a class="code" href="class_collision_detector.html" title="Object for handling collisions between GameObjects.">CollisionDetector</a> <a class="code" href="class_game.html#ab88620fda0d1fa729dcab6013e8f1efc" title="Object that checks for collisions each frame.">_collisionDetector</a>;
+<a name="l00133"></a>00133 };
+<a name="l00134"></a>00134
+<a name="l00135"></a>00135 <span class="preprocessor">#endif // GAME_H</span>
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_game_object_8cpp.html b/docs/html/_game_object_8cpp.html
new file mode 100644
index 0000000..59491a7
--- /dev/null
+++ b/docs/html/_game_object_8cpp.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/GameObject.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/GameObject.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_game_object_8h_source.html">GameObject.h</a>&quot;</code><br/>
+</div>
+<p><a href="_game_object_8cpp_source.html">Go to the source code of this file.</a></p>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_game_object_8cpp_source.html b/docs/html/_game_object_8cpp_source.html
new file mode 100644
index 0000000..ad01cb1
--- /dev/null
+++ b/docs/html/_game_object_8cpp_source.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/GameObject.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/GameObject.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="_game_object_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &quot;<a class="code" href="_game_object_8h.html">GameObject.h</a>&quot;</span>
+<a name="l00002"></a>00002
+<a name="l00003"></a><a class="code" href="class_game_object.html#a26cba01b9c2d301d4ee89a98b9396d67">00003</a> <a class="code" href="class_game_object.html#a26cba01b9c2d301d4ee89a98b9396d67" title="Creates a GameObject with the given parameters.">GameObject::GameObject</a>(<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386" title="Type used to define which image should be returned.">BitmapStore::Image</a> image, <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f" title="Defines the directions in which movement can happen in the maze.">Maze::Direction</a> facing)
+<a name="l00004"></a>00004 :_x(x), _y(y), _destroyed(false), _image(image), _facing(facing)
+<a name="l00005"></a>00005 {
+<a name="l00006"></a>00006 }
+<a name="l00007"></a>00007
+<a name="l00008"></a><a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8">00008</a> <span class="keywordtype">double</span> <a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">GameObject::x</a>()<span class="keyword"> const</span>
+<a name="l00009"></a>00009 <span class="keyword"></span>{
+<a name="l00010"></a>00010 <span class="keywordflow">return</span> <a class="code" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614" title="The x coordinate of the object&#39;s position.">_x</a>;
+<a name="l00011"></a>00011 }
+<a name="l00012"></a><a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b">00012</a> <span class="keywordtype">double</span> <a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">GameObject::y</a>()<span class="keyword"> const</span>
+<a name="l00013"></a>00013 <span class="keyword"></span>{
+<a name="l00014"></a>00014 <span class="keywordflow">return</span> <a class="code" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e" title="The y coordinate of the object&#39;s position.">_y</a>;
+<a name="l00015"></a>00015 }
+<a name="l00016"></a><a class="code" href="class_game_object.html#a266871f6c0220f6b3c902075ebff8eea">00016</a> <span class="keywordtype">bool</span> <a class="code" href="class_game_object.html#a266871f6c0220f6b3c902075ebff8eea" title="Checks if an object has been marked for destruction, for example through a collision.">GameObject::destroyed</a>()<span class="keyword"> const</span>
+<a name="l00017"></a>00017 <span class="keyword"></span>{
+<a name="l00018"></a>00018 <span class="keywordflow">return</span> <a class="code" href="class_game_object.html#adc4a399cc59d5706f75748fb3846faec" title="True if the object has been marked for destruction.">_destroyed</a>;
+<a name="l00019"></a>00019 }
+<a name="l00020"></a><a class="code" href="class_game_object.html#a05e352e3e01e774892beee0503fdb349">00020</a> <a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386" title="Type used to define which image should be returned.">BitmapStore::Image</a> <a class="code" href="class_game_object.html#a05e352e3e01e774892beee0503fdb349" title="Provides access to the image that should be drawn to represent the object.">GameObject::image</a>()<span class="keyword"> const</span>
+<a name="l00021"></a>00021 <span class="keyword"></span>{
+<a name="l00022"></a>00022 <span class="keywordflow">return</span> <a class="code" href="class_game_object.html#a8b0aa105507a8a9559bbc2a66198ccd6" title="The bitmap that should be drawn on the screen to represent the object.">_image</a>;
+<a name="l00023"></a>00023 }
+<a name="l00024"></a><a class="code" href="class_game_object.html#a2549066ec4dc8f4ca2d3a8c5d5729324">00024</a> <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f" title="Defines the directions in which movement can happen in the maze.">Maze::Direction</a> <a class="code" href="class_game_object.html#a2549066ec4dc8f4ca2d3a8c5d5729324" title="Provides access to the direction that the object is facing.">GameObject::facing</a>()<span class="keyword"> const</span>
+<a name="l00025"></a>00025 <span class="keyword"></span>{
+<a name="l00026"></a>00026 <span class="keywordflow">return</span> <a class="code" href="class_game_object.html#a24d36b1a64504298700a7ae7111fad5d" title="The direction in which the object is facing, up, down, left, or right.">_facing</a>;
+<a name="l00027"></a>00027 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_game_object_8h.html b/docs/html/_game_object_8h.html
new file mode 100644
index 0000000..ff9c230
--- /dev/null
+++ b/docs/html/_game_object_8h.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/GameObject.h File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">source/logic/GameObject.h File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;../presentation/BitmapStore.h&quot;</code><br/>
+<code>#include &quot;../logic/Maze.h&quot;</code><br/>
+</div>
+<p><a href="_game_object_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_object.html">GameObject</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Parent class for objects that are placed in the maze. <a href="class_game_object.html#details">More...</a><br/></td></tr>
+</table>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_game_object_8h_source.html b/docs/html/_game_object_8h_source.html
new file mode 100644
index 0000000..2816fa8
--- /dev/null
+++ b/docs/html/_game_object_8h_source.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/GameObject.h Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/GameObject.h</div> </div>
+</div>
+<div class="contents">
+<a href="_game_object_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef GAMEOBJECT_H</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define GAMEOBJECT_H</span>
+<a name="l00003"></a>00003 <span class="preprocessor"></span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include &quot;../presentation/BitmapStore.h&quot;</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include &quot;../logic/Maze.h&quot;</span>
+<a name="l00006"></a>00006
+<a name="l00023"></a><a class="code" href="class_game_object.html">00023</a> <span class="keyword">class </span><a class="code" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a>
+<a name="l00024"></a>00024 {
+<a name="l00025"></a>00025 <span class="keyword">public</span>:
+<a name="l00035"></a>00035 <a class="code" href="class_game_object.html#a26cba01b9c2d301d4ee89a98b9396d67" title="Creates a GameObject with the given parameters.">GameObject</a>(<span class="keywordtype">double</span> <a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>, <span class="keywordtype">double</span> <a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>, <a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386" title="Type used to define which image should be returned.">BitmapStore::Image</a> <a class="code" href="class_game_object.html#a05e352e3e01e774892beee0503fdb349" title="Provides access to the image that should be drawn to represent the object.">image</a>, <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f" title="Defines the directions in which movement can happen in the maze.">Maze::Direction</a> <a class="code" href="class_game_object.html#a2549066ec4dc8f4ca2d3a8c5d5729324" title="Provides access to the direction that the object is facing.">facing</a>=<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7">Maze::UP</a>);
+<a name="l00036"></a>00036
+<a name="l00037"></a>00037 <span class="comment">//assignment and copy constructors have been left with the compiler generated versions</span>
+<a name="l00038"></a>00038
+<a name="l00044"></a>00044 <span class="keywordtype">double</span> <a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>() <span class="keyword">const</span>;
+<a name="l00045"></a>00045
+<a name="l00051"></a>00051 <span class="keywordtype">double</span> <a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>() <span class="keyword">const</span>;
+<a name="l00052"></a>00052
+<a name="l00058"></a>00058 <span class="keywordtype">bool</span> <a class="code" href="class_game_object.html#a266871f6c0220f6b3c902075ebff8eea" title="Checks if an object has been marked for destruction, for example through a collision.">destroyed</a>() <span class="keyword">const</span>;
+<a name="l00059"></a>00059
+<a name="l00065"></a>00065 <a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386" title="Type used to define which image should be returned.">BitmapStore::Image</a> <a class="code" href="class_game_object.html#a05e352e3e01e774892beee0503fdb349" title="Provides access to the image that should be drawn to represent the object.">image</a>() <span class="keyword">const</span>;
+<a name="l00066"></a>00066
+<a name="l00072"></a>00072 <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f" title="Defines the directions in which movement can happen in the maze.">Maze::Direction</a> <a class="code" href="class_game_object.html#a2549066ec4dc8f4ca2d3a8c5d5729324" title="Provides access to the direction that the object is facing.">facing</a>() <span class="keyword">const</span>;
+<a name="l00073"></a>00073
+<a name="l00074"></a>00074 <span class="keyword">protected</span>:
+<a name="l00075"></a><a class="code" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614">00075</a> <span class="keywordtype">double</span> <a class="code" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614" title="The x coordinate of the object&#39;s position.">_x</a>;
+<a name="l00076"></a><a class="code" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e">00076</a> <span class="keywordtype">double</span> <a class="code" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e" title="The y coordinate of the object&#39;s position.">_y</a>;
+<a name="l00077"></a><a class="code" href="class_game_object.html#adc4a399cc59d5706f75748fb3846faec">00077</a> <span class="keywordtype">bool</span> <a class="code" href="class_game_object.html#adc4a399cc59d5706f75748fb3846faec" title="True if the object has been marked for destruction.">_destroyed</a>;
+<a name="l00078"></a><a class="code" href="class_game_object.html#a8b0aa105507a8a9559bbc2a66198ccd6">00078</a> <a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386" title="Type used to define which image should be returned.">BitmapStore::Image</a> <a class="code" href="class_game_object.html#a8b0aa105507a8a9559bbc2a66198ccd6" title="The bitmap that should be drawn on the screen to represent the object.">_image</a>;
+<a name="l00079"></a><a class="code" href="class_game_object.html#a24d36b1a64504298700a7ae7111fad5d">00079</a> <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f" title="Defines the directions in which movement can happen in the maze.">Maze::Direction</a> <a class="code" href="class_game_object.html#a24d36b1a64504298700a7ae7111fad5d" title="The direction in which the object is facing, up, down, left, or right.">_facing</a>;
+<a name="l00080"></a>00080 };
+<a name="l00081"></a>00081
+<a name="l00082"></a>00082 <span class="preprocessor">#endif // GAMEOBJECT_H</span>
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_game_panel_8cpp.html b/docs/html/_game_panel_8cpp.html
new file mode 100644
index 0000000..79143c2
--- /dev/null
+++ b/docs/html/_game_panel_8cpp.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/GamePanel.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/presentation/GamePanel.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_game_panel_8h_source.html">GamePanel.h</a>&quot;</code><br/>
+</div>
+<p><a href="_game_panel_8cpp_source.html">Go to the source code of this file.</a></p>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_game_panel_8cpp_source.html b/docs/html/_game_panel_8cpp_source.html
new file mode 100644
index 0000000..3511c39
--- /dev/null
+++ b/docs/html/_game_panel_8cpp_source.html
@@ -0,0 +1,240 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/GamePanel.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/presentation/GamePanel.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="_game_panel_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &quot;<a class="code" href="_game_panel_8h.html">GamePanel.h</a>&quot;</span>
+<a name="l00002"></a>00002
+<a name="l00003"></a><a class="code" href="class_game_panel.html#a3475820b2255da92e247d07248870044">00003</a> <a class="code" href="class_game_panel.html#a3475820b2255da92e247d07248870044" title="Creates a GamePanel from the given back and front buffers.">GamePanel::GamePanel</a>(ALLEGRO_BITMAP* back, ALLEGRO_BITMAP* front, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height)
+<a name="l00004"></a>00004 :<a class="code" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a>(back, front, x, y, width, height),
+<a name="l00005"></a>00005 _mazeblockWidth(_width/BLOCKS_PER_ROW),
+<a name="l00006"></a>00006 _offsetX(0),
+<a name="l00007"></a>00007 _offsetY(0),
+<a name="l00008"></a>00008 _bitmapStore(_mazeblockWidth)
+<a name="l00009"></a>00009 {
+<a name="l00010"></a>00010 }
+<a name="l00011"></a>00011
+<a name="l00012"></a><a class="code" href="class_game_panel.html#ab093fb770fa8b46ee863947259c72abd">00012</a> <span class="keywordtype">void</span> <a class="code" href="class_game_panel.html#ab093fb770fa8b46ee863947259c72abd" title="Draws the given objects on the screen.">GamePanel::draw</a>(<span class="keyword">const</span> <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>&amp; maze, <span class="keyword">const</span> list&lt;PlayerCar&gt;&amp; players, <span class="keyword">const</span> list&lt;EnemyCar&gt;&amp; enemies, <span class="keyword">const</span> list&lt;Checkpoint&gt;&amp; checkpoints, <span class="keyword">const</span> list&lt;Rock&gt;&amp; rocks, <span class="keyword">const</span> list&lt;Smokescreen&gt;&amp; smokescreens, <span class="keyword">const</span> list&lt;DestroyedObjectPopup&gt;&amp; popups)
+<a name="l00013"></a>00013 {
+<a name="l00014"></a>00014 ALLEGRO_BITMAP* prev_draw = al_get_target_bitmap();
+<a name="l00015"></a>00015 al_set_target_bitmap(<a class="code" href="class_screen_panel.html#a1a3ec8e60be5d5cede210171bda33468" title="The back buffer. Only the back buffer can be drawn to.">_back</a>);
+<a name="l00016"></a>00016
+<a name="l00017"></a>00017 al_clear_to_color(<a class="code" href="class_screen_panel.html#a1cc6ea44035f47d77d24b4cee9dc9d85" title="Colour used to clear the screen at the beginning of drawing operations.">BLANK</a>);
+<a name="l00018"></a>00018
+<a name="l00019"></a>00019 <span class="keywordtype">float</span> _maxOffsetX = <a class="code" href="class_game_panel.html#a53a4386ab0f60db88b3c638b3880cd91" title="Converts an x game coordinate value to its equivalent in pixels.">getPanelX</a>(maze.<a class="code" href="class_maze.html#a6963ffbb8e10f5ca72ddc749b3f29419" title="Provides access to the width of the Maze object.">width</a>()) - <a class="code" href="class_screen_panel.html#afbbcad2a101b95869dcdef9bf0898f65" title="The width of the sub-bitmaps being drawn to in pixels.">_width</a>;
+<a name="l00020"></a>00020 <span class="keywordtype">float</span> _maxOffsetY = <a class="code" href="class_game_panel.html#a0e722b67c8ee7fe5f557821adf9b8cc2" title="Converts a y game coordinate value to its equivalent in pixels.">getPanelY</a>(maze.<a class="code" href="class_maze.html#a53de30abea69713225ab77703e753d81" title="Provides access to the height of the Maze object.">height</a>()) - <a class="code" href="class_screen_panel.html#a4f6dd5c7ca10d51bface7b1ddedc236c" title="The height of the sub-bitmaps being drawn to in pixels.">_height</a>;
+<a name="l00021"></a>00021
+<a name="l00022"></a>00022 <span class="keywordflow">if</span> (!players.empty())
+<a name="l00023"></a>00023 {
+<a name="l00024"></a>00024 <a class="code" href="class_game_panel.html#afe99f100b68ec2475cb0a509887b63a9" title="The amount that drawing should be offset to the right, recalculated every frame.">_offsetX</a> = <a class="code" href="class_game_panel.html#a53a4386ab0f60db88b3c638b3880cd91" title="Converts an x game coordinate value to its equivalent in pixels.">getPanelX</a>(players.front().x()) - <a class="code" href="class_screen_panel.html#afbbcad2a101b95869dcdef9bf0898f65" title="The width of the sub-bitmaps being drawn to in pixels.">_width</a>/2;
+<a name="l00025"></a>00025 <span class="keywordflow">if</span> (<a class="code" href="class_game_panel.html#afe99f100b68ec2475cb0a509887b63a9" title="The amount that drawing should be offset to the right, recalculated every frame.">_offsetX</a> &lt; 0) <a class="code" href="class_game_panel.html#afe99f100b68ec2475cb0a509887b63a9" title="The amount that drawing should be offset to the right, recalculated every frame.">_offsetX</a> = 0;
+<a name="l00026"></a>00026 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_game_panel.html#afe99f100b68ec2475cb0a509887b63a9" title="The amount that drawing should be offset to the right, recalculated every frame.">_offsetX</a> &gt; _maxOffsetX) <a class="code" href="class_game_panel.html#afe99f100b68ec2475cb0a509887b63a9" title="The amount that drawing should be offset to the right, recalculated every frame.">_offsetX</a> = _maxOffsetX;
+<a name="l00027"></a>00027
+<a name="l00028"></a>00028 <a class="code" href="class_game_panel.html#af3354addd707cb42b078dbe2ef29e189" title="The amount that drawing should be offset downwards, recalculated every frame.">_offsetY</a> = <a class="code" href="class_game_panel.html#a0e722b67c8ee7fe5f557821adf9b8cc2" title="Converts a y game coordinate value to its equivalent in pixels.">getPanelY</a>(players.front().y()) - <a class="code" href="class_screen_panel.html#a4f6dd5c7ca10d51bface7b1ddedc236c" title="The height of the sub-bitmaps being drawn to in pixels.">_height</a>/2;
+<a name="l00029"></a>00029 <span class="keywordflow">if</span> (<a class="code" href="class_game_panel.html#af3354addd707cb42b078dbe2ef29e189" title="The amount that drawing should be offset downwards, recalculated every frame.">_offsetY</a> &lt; 0) <a class="code" href="class_game_panel.html#af3354addd707cb42b078dbe2ef29e189" title="The amount that drawing should be offset downwards, recalculated every frame.">_offsetY</a> = 0;
+<a name="l00030"></a>00030 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_game_panel.html#af3354addd707cb42b078dbe2ef29e189" title="The amount that drawing should be offset downwards, recalculated every frame.">_offsetY</a> &gt; _maxOffsetY) <a class="code" href="class_game_panel.html#af3354addd707cb42b078dbe2ef29e189" title="The amount that drawing should be offset downwards, recalculated every frame.">_offsetY</a> = _maxOffsetY;
+<a name="l00031"></a>00031 }
+<a name="l00032"></a>00032
+<a name="l00033"></a>00033 <a class="code" href="class_game_panel.html#ab093fb770fa8b46ee863947259c72abd" title="Draws the given objects on the screen.">draw</a>(maze);
+<a name="l00034"></a>00034
+<a name="l00035"></a>00035 <span class="keywordflow">for</span> (list&lt;PlayerCar&gt;::const_iterator iter = players.begin(); iter != players.end(); ++iter)
+<a name="l00036"></a>00036 {
+<a name="l00037"></a>00037 <a class="code" href="class_game_panel.html#ab093fb770fa8b46ee863947259c72abd" title="Draws the given objects on the screen.">draw</a>(*iter);
+<a name="l00038"></a>00038 }
+<a name="l00039"></a>00039 <span class="keywordflow">for</span> (list&lt;EnemyCar&gt;::const_iterator iter = enemies.begin(); iter != enemies.end(); ++iter)
+<a name="l00040"></a>00040 {
+<a name="l00041"></a>00041 <a class="code" href="class_game_panel.html#ab093fb770fa8b46ee863947259c72abd" title="Draws the given objects on the screen.">draw</a>(*iter);
+<a name="l00042"></a>00042 }
+<a name="l00043"></a>00043 <span class="keywordflow">for</span> (list&lt;Checkpoint&gt;::const_iterator iter = checkpoints.begin(); iter != checkpoints.end(); ++iter)
+<a name="l00044"></a>00044 {
+<a name="l00045"></a>00045 <a class="code" href="class_game_panel.html#ab093fb770fa8b46ee863947259c72abd" title="Draws the given objects on the screen.">draw</a>(*iter);
+<a name="l00046"></a>00046 }
+<a name="l00047"></a>00047 <span class="keywordflow">for</span> (list&lt;Rock&gt;::const_iterator iter = rocks.begin(); iter != rocks.end(); ++iter)
+<a name="l00048"></a>00048 {
+<a name="l00049"></a>00049 <a class="code" href="class_game_panel.html#ab093fb770fa8b46ee863947259c72abd" title="Draws the given objects on the screen.">draw</a>(*iter);
+<a name="l00050"></a>00050 }
+<a name="l00051"></a>00051 <span class="keywordflow">for</span> (list&lt;Smokescreen&gt;::const_iterator iter = smokescreens.begin(); iter != smokescreens.end(); ++iter)
+<a name="l00052"></a>00052 {
+<a name="l00053"></a>00053 <a class="code" href="class_game_panel.html#ab093fb770fa8b46ee863947259c72abd" title="Draws the given objects on the screen.">draw</a>(*iter);
+<a name="l00054"></a>00054 }
+<a name="l00055"></a>00055 <span class="keywordflow">for</span> (list&lt;DestroyedObjectPopup&gt;::const_iterator iter = popups.begin(); iter != popups.end(); ++iter)
+<a name="l00056"></a>00056 {
+<a name="l00057"></a>00057 <a class="code" href="class_game_panel.html#ab093fb770fa8b46ee863947259c72abd" title="Draws the given objects on the screen.">draw</a>(*iter);
+<a name="l00058"></a>00058 }
+<a name="l00059"></a>00059
+<a name="l00060"></a>00060 al_set_target_bitmap(prev_draw);
+<a name="l00061"></a>00061 }
+<a name="l00062"></a>00062
+<a name="l00063"></a><a class="code" href="class_game_panel.html#a93395482993b341b1b72fbb256ce9be9">00063</a> <span class="keywordtype">void</span> <a class="code" href="class_game_panel.html#ab093fb770fa8b46ee863947259c72abd" title="Draws the given objects on the screen.">GamePanel::draw</a>(<span class="keyword">const</span> <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>&amp; maze)
+<a name="l00064"></a>00064 {
+<a name="l00065"></a>00065 <span class="comment">//only draws a parts of the maze that would appear on the screen</span>
+<a name="l00066"></a>00066 <span class="keywordtype">int</span> minX = floor((<a class="code" href="class_game_panel.html#afe99f100b68ec2475cb0a509887b63a9" title="The amount that drawing should be offset to the right, recalculated every frame.">_offsetX</a>-<a class="code" href="class_game_panel.html#a4889f5f6e1ad713be455d4f69a2cda96" title="The width of one (square) Maze block on the screen, in pixels.">_mazeblockWidth</a>)/<a class="code" href="class_game_panel.html#a4889f5f6e1ad713be455d4f69a2cda96" title="The width of one (square) Maze block on the screen, in pixels.">_mazeblockWidth</a>);
+<a name="l00067"></a>00067 <span class="keywordtype">int</span> maxX = ceil((<a class="code" href="class_game_panel.html#afe99f100b68ec2475cb0a509887b63a9" title="The amount that drawing should be offset to the right, recalculated every frame.">_offsetX</a>+<a class="code" href="class_screen_panel.html#afbbcad2a101b95869dcdef9bf0898f65" title="The width of the sub-bitmaps being drawn to in pixels.">_width</a>)/<a class="code" href="class_game_panel.html#a4889f5f6e1ad713be455d4f69a2cda96" title="The width of one (square) Maze block on the screen, in pixels.">_mazeblockWidth</a>);
+<a name="l00068"></a>00068 <span class="keywordtype">int</span> minY = floor((<a class="code" href="class_game_panel.html#af3354addd707cb42b078dbe2ef29e189" title="The amount that drawing should be offset downwards, recalculated every frame.">_offsetY</a>-<a class="code" href="class_game_panel.html#a4889f5f6e1ad713be455d4f69a2cda96" title="The width of one (square) Maze block on the screen, in pixels.">_mazeblockWidth</a>)/<a class="code" href="class_game_panel.html#a4889f5f6e1ad713be455d4f69a2cda96" title="The width of one (square) Maze block on the screen, in pixels.">_mazeblockWidth</a>);
+<a name="l00069"></a>00069 <span class="keywordtype">int</span> maxY = ceil((<a class="code" href="class_game_panel.html#af3354addd707cb42b078dbe2ef29e189" title="The amount that drawing should be offset downwards, recalculated every frame.">_offsetY</a>+<a class="code" href="class_screen_panel.html#a4f6dd5c7ca10d51bface7b1ddedc236c" title="The height of the sub-bitmaps being drawn to in pixels.">_height</a>)/<a class="code" href="class_game_panel.html#a4889f5f6e1ad713be455d4f69a2cda96" title="The width of one (square) Maze block on the screen, in pixels.">_mazeblockWidth</a>);
+<a name="l00070"></a>00070
+<a name="l00071"></a>00071 ALLEGRO_BITMAP* wallBitmap = <a class="code" href="class_game_panel.html#a0125ff874ffebadc15c7678210914a8c" title="Used to cache ALLEGRO_BITMAPs, so that they only need to be drawn once.">_bitmapStore</a>.<a class="code" href="class_bitmap_store.html#aadd437c869c5856c36d920dfafbc6ee4" title="Function to get image for drawing to the screen.">getBitmap</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386ae662e77b349a8e22c5826ef35b1b5d9a">BitmapStore::MAZE_WALL</a>);
+<a name="l00072"></a>00072 ALLEGRO_BITMAP* floorBitmap = <a class="code" href="class_game_panel.html#a0125ff874ffebadc15c7678210914a8c" title="Used to cache ALLEGRO_BITMAPs, so that they only need to be drawn once.">_bitmapStore</a>.<a class="code" href="class_bitmap_store.html#aadd437c869c5856c36d920dfafbc6ee4" title="Function to get image for drawing to the screen.">getBitmap</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a4e2a075dff2c02bf40b134c9090d1f02">BitmapStore::MAZE_FLOOR</a>);
+<a name="l00073"></a>00073 <span class="comment">//used to only have one al_draw_bitmap command</span>
+<a name="l00074"></a>00074 ALLEGRO_BITMAP* currentBitmap = floorBitmap;
+<a name="l00075"></a>00075 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x=minX; x&lt;maxX&amp;&amp;x&lt;maze.<a class="code" href="class_maze.html#a6963ffbb8e10f5ca72ddc749b3f29419" title="Provides access to the width of the Maze object.">width</a>(); ++x)
+<a name="l00076"></a>00076 {
+<a name="l00077"></a>00077 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> y=minY; y&lt;maxY&amp;&amp;y&lt;maze.<a class="code" href="class_maze.html#a53de30abea69713225ab77703e753d81" title="Provides access to the height of the Maze object.">height</a>(); ++y)
+<a name="l00078"></a>00078 {
+<a name="l00079"></a>00079 <span class="keywordflow">if</span> (maze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(x,y))
+<a name="l00080"></a>00080 {
+<a name="l00081"></a>00081 currentBitmap = wallBitmap;
+<a name="l00082"></a>00082 }
+<a name="l00083"></a>00083 <span class="keywordflow">else</span>
+<a name="l00084"></a>00084 {
+<a name="l00085"></a>00085 currentBitmap = floorBitmap;
+<a name="l00086"></a>00086 }
+<a name="l00087"></a>00087 al_draw_bitmap(currentBitmap, <a class="code" href="class_game_panel.html#a53a4386ab0f60db88b3c638b3880cd91" title="Converts an x game coordinate value to its equivalent in pixels.">getPanelX</a>(x)-<a class="code" href="class_game_panel.html#afe99f100b68ec2475cb0a509887b63a9" title="The amount that drawing should be offset to the right, recalculated every frame.">_offsetX</a>, <a class="code" href="class_game_panel.html#a0e722b67c8ee7fe5f557821adf9b8cc2" title="Converts a y game coordinate value to its equivalent in pixels.">getPanelY</a>(y)-<a class="code" href="class_game_panel.html#af3354addd707cb42b078dbe2ef29e189" title="The amount that drawing should be offset downwards, recalculated every frame.">_offsetY</a>, 0);
+<a name="l00088"></a>00088 }
+<a name="l00089"></a>00089 }
+<a name="l00090"></a>00090 }
+<a name="l00091"></a>00091
+<a name="l00092"></a><a class="code" href="class_game_panel.html#acff2b430ecad1310a0a36cfe7c994d2f">00092</a> <span class="keywordtype">void</span> <a class="code" href="class_game_panel.html#ab093fb770fa8b46ee863947259c72abd" title="Draws the given objects on the screen.">GamePanel::draw</a>(<span class="keyword">const</span> <a class="code" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a>&amp; <span class="keywordtype">object</span>)
+<a name="l00093"></a>00093 {
+<a name="l00094"></a>00094 <span class="comment">//only draws a gameobject if it would appear on the screen</span>
+<a name="l00095"></a>00095 <span class="keywordflow">if</span> (<span class="keywordtype">object</span>.x() &lt; (<a class="code" href="class_game_panel.html#afe99f100b68ec2475cb0a509887b63a9" title="The amount that drawing should be offset to the right, recalculated every frame.">_offsetX</a>-<a class="code" href="class_game_panel.html#a4889f5f6e1ad713be455d4f69a2cda96" title="The width of one (square) Maze block on the screen, in pixels.">_mazeblockWidth</a>)/<a class="code" href="class_game_panel.html#a4889f5f6e1ad713be455d4f69a2cda96" title="The width of one (square) Maze block on the screen, in pixels.">_mazeblockWidth</a>) <span class="keywordflow">return</span>;
+<a name="l00096"></a>00096 <span class="keywordflow">if</span> (<span class="keywordtype">object</span>.x() &gt; (<a class="code" href="class_game_panel.html#afe99f100b68ec2475cb0a509887b63a9" title="The amount that drawing should be offset to the right, recalculated every frame.">_offsetX</a>+<a class="code" href="class_screen_panel.html#afbbcad2a101b95869dcdef9bf0898f65" title="The width of the sub-bitmaps being drawn to in pixels.">_width</a>)/<a class="code" href="class_game_panel.html#a4889f5f6e1ad713be455d4f69a2cda96" title="The width of one (square) Maze block on the screen, in pixels.">_mazeblockWidth</a>) <span class="keywordflow">return</span>;
+<a name="l00097"></a>00097 <span class="keywordflow">if</span> (<span class="keywordtype">object</span>.y() &lt; (<a class="code" href="class_game_panel.html#af3354addd707cb42b078dbe2ef29e189" title="The amount that drawing should be offset downwards, recalculated every frame.">_offsetY</a>-<a class="code" href="class_game_panel.html#a4889f5f6e1ad713be455d4f69a2cda96" title="The width of one (square) Maze block on the screen, in pixels.">_mazeblockWidth</a>)/<a class="code" href="class_game_panel.html#a4889f5f6e1ad713be455d4f69a2cda96" title="The width of one (square) Maze block on the screen, in pixels.">_mazeblockWidth</a>) <span class="keywordflow">return</span>;
+<a name="l00098"></a>00098 <span class="keywordflow">if</span> (<span class="keywordtype">object</span>.y() &gt; (<a class="code" href="class_game_panel.html#af3354addd707cb42b078dbe2ef29e189" title="The amount that drawing should be offset downwards, recalculated every frame.">_offsetY</a>+<a class="code" href="class_screen_panel.html#a4f6dd5c7ca10d51bface7b1ddedc236c" title="The height of the sub-bitmaps being drawn to in pixels.">_height</a>)/<a class="code" href="class_game_panel.html#a4889f5f6e1ad713be455d4f69a2cda96" title="The width of one (square) Maze block on the screen, in pixels.">_mazeblockWidth</a>) <span class="keywordflow">return</span>;
+<a name="l00099"></a>00099
+<a name="l00100"></a>00100 ALLEGRO_BITMAP* bitmap = <a class="code" href="class_game_panel.html#a0125ff874ffebadc15c7678210914a8c" title="Used to cache ALLEGRO_BITMAPs, so that they only need to be drawn once.">_bitmapStore</a>.<a class="code" href="class_bitmap_store.html#aadd437c869c5856c36d920dfafbc6ee4" title="Function to get image for drawing to the screen.">getBitmap</a>(<span class="keywordtype">object</span>.image());
+<a name="l00101"></a>00101
+<a name="l00102"></a>00102 <span class="keywordtype">float</span> angle = 0;
+<a name="l00103"></a>00103 <span class="keywordflow">switch</span>(<span class="keywordtype">object</span>.facing())
+<a name="l00104"></a>00104 {
+<a name="l00105"></a>00105 <span class="keywordflow">case</span> <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7">Maze::UP</a>:
+<a name="l00106"></a>00106 angle = 0;
+<a name="l00107"></a>00107 <span class="keywordflow">break</span>;
+<a name="l00108"></a>00108 <span class="keywordflow">case</span> <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa699ae3e1d989e9b12bd200aa86e29e9d">Maze::RIGHT</a>:
+<a name="l00109"></a>00109 angle = ALLEGRO_PI/2;
+<a name="l00110"></a>00110 <span class="keywordflow">break</span>;
+<a name="l00111"></a>00111 <span class="keywordflow">case</span> <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa89ab143d020541957ab5e0e9cfdd3e23">Maze::DOWN</a>:
+<a name="l00112"></a>00112 angle = ALLEGRO_PI;
+<a name="l00113"></a>00113 <span class="keywordflow">break</span>;
+<a name="l00114"></a>00114 <span class="keywordflow">case</span> <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28faab1a1fe0274cd139b3c0116d8caf458c">Maze::LEFT</a>:
+<a name="l00115"></a>00115 angle = 3*ALLEGRO_PI/2;
+<a name="l00116"></a>00116 <span class="keywordflow">break</span>;
+<a name="l00117"></a>00117 }
+<a name="l00118"></a>00118
+<a name="l00119"></a>00119 <span class="keywordtype">float</span> objectX = <a class="code" href="class_game_panel.html#a53a4386ab0f60db88b3c638b3880cd91" title="Converts an x game coordinate value to its equivalent in pixels.">getPanelX</a>(<span class="keywordtype">object</span>.x());
+<a name="l00120"></a>00120 <span class="keywordtype">float</span> objectY = <a class="code" href="class_game_panel.html#a0e722b67c8ee7fe5f557821adf9b8cc2" title="Converts a y game coordinate value to its equivalent in pixels.">getPanelY</a>(<span class="keywordtype">object</span>.y());
+<a name="l00121"></a>00121 <span class="keywordtype">float</span> center = <a class="code" href="class_game_panel.html#a4889f5f6e1ad713be455d4f69a2cda96" title="The width of one (square) Maze block on the screen, in pixels.">_mazeblockWidth</a>/2;
+<a name="l00122"></a>00122
+<a name="l00123"></a>00123 al_draw_rotated_bitmap(bitmap, center , center , objectX+center-<a class="code" href="class_game_panel.html#afe99f100b68ec2475cb0a509887b63a9" title="The amount that drawing should be offset to the right, recalculated every frame.">_offsetX</a>, objectY+center-<a class="code" href="class_game_panel.html#af3354addd707cb42b078dbe2ef29e189" title="The amount that drawing should be offset downwards, recalculated every frame.">_offsetY</a>, angle, 0);
+<a name="l00124"></a>00124 }
+<a name="l00125"></a>00125
+<a name="l00126"></a><a class="code" href="class_game_panel.html#a53a4386ab0f60db88b3c638b3880cd91">00126</a> <span class="keywordtype">float</span> <a class="code" href="class_game_panel.html#a53a4386ab0f60db88b3c638b3880cd91" title="Converts an x game coordinate value to its equivalent in pixels.">GamePanel::getPanelX</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>&amp; x)<span class="keyword"> const</span>
+<a name="l00127"></a>00127 <span class="keyword"></span>{
+<a name="l00128"></a>00128 <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(x*<a class="code" href="class_game_panel.html#a4889f5f6e1ad713be455d4f69a2cda96" title="The width of one (square) Maze block on the screen, in pixels.">_mazeblockWidth</a>);
+<a name="l00129"></a>00129 }
+<a name="l00130"></a><a class="code" href="class_game_panel.html#a0e722b67c8ee7fe5f557821adf9b8cc2">00130</a> <span class="keywordtype">float</span> <a class="code" href="class_game_panel.html#a0e722b67c8ee7fe5f557821adf9b8cc2" title="Converts a y game coordinate value to its equivalent in pixels.">GamePanel::getPanelY</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>&amp; y)<span class="keyword"> const</span>
+<a name="l00131"></a>00131 <span class="keyword"></span>{
+<a name="l00132"></a>00132 <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(y*<a class="code" href="class_game_panel.html#a4889f5f6e1ad713be455d4f69a2cda96" title="The width of one (square) Maze block on the screen, in pixels.">_mazeblockWidth</a>);
+<a name="l00133"></a>00133 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_game_panel_8h.html b/docs/html/_game_panel_8h.html
new file mode 100644
index 0000000..b496b00
--- /dev/null
+++ b/docs/html/_game_panel_8h.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/GamePanel.h File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">source/presentation/GamePanel.h File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;../presentation/ScreenPanel.h&quot;</code><br/>
+<code>#include &quot;../logic/Maze.h&quot;</code><br/>
+<code>#include &quot;../logic/GameObject.h&quot;</code><br/>
+<code>#include &quot;../logic/PlayerCar.h&quot;</code><br/>
+<code>#include &quot;../logic/EnemyCar.h&quot;</code><br/>
+<code>#include &quot;../logic/Checkpoint.h&quot;</code><br/>
+<code>#include &quot;../logic/Rock.h&quot;</code><br/>
+<code>#include &quot;../logic/Smokescreen.h&quot;</code><br/>
+<code>#include &quot;../logic/DestroyedObjectPopup.h&quot;</code><br/>
+<code>#include &quot;../logic/AllegroWrappers.h&quot;</code><br/>
+</div>
+<p><a href="_game_panel_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_panel.html">GamePanel</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a> to be drawn on the screen to draw the area where the game takes place. <a href="class_game_panel.html#details">More...</a><br/></td></tr>
+</table>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_game_panel_8h_source.html b/docs/html/_game_panel_8h_source.html
new file mode 100644
index 0000000..235ea59
--- /dev/null
+++ b/docs/html/_game_panel_8h_source.html
@@ -0,0 +1,151 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/GamePanel.h Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/presentation/GamePanel.h</div> </div>
+</div>
+<div class="contents">
+<a href="_game_panel_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef GAMEPANEL_H</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define GAMEPANEL_H</span>
+<a name="l00003"></a>00003 <span class="preprocessor"></span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include &quot;../presentation/ScreenPanel.h&quot;</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include &quot;../logic/Maze.h&quot;</span>
+<a name="l00006"></a>00006 <span class="preprocessor">#include &quot;../logic/GameObject.h&quot;</span>
+<a name="l00007"></a>00007 <span class="preprocessor">#include &quot;../logic/PlayerCar.h&quot;</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#include &quot;../logic/EnemyCar.h&quot;</span>
+<a name="l00009"></a>00009 <span class="preprocessor">#include &quot;../logic/Checkpoint.h&quot;</span>
+<a name="l00010"></a>00010 <span class="preprocessor">#include &quot;../logic/Rock.h&quot;</span>
+<a name="l00011"></a>00011 <span class="preprocessor">#include &quot;../logic/Smokescreen.h&quot;</span>
+<a name="l00012"></a>00012 <span class="preprocessor">#include &quot;../logic/DestroyedObjectPopup.h&quot;</span>
+<a name="l00013"></a>00013 <span class="preprocessor">#include &quot;../logic/AllegroWrappers.h&quot;</span>
+<a name="l00014"></a>00014
+<a name="l00023"></a><a class="code" href="class_game_panel.html">00023</a> <span class="keyword">class </span><a class="code" href="class_game_panel.html" title="ScreenPanel to be drawn on the screen to draw the area where the game takes place.">GamePanel</a> : <span class="keyword">public</span> <a class="code" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a>
+<a name="l00024"></a>00024 {
+<a name="l00025"></a>00025 <span class="keyword">public</span>:
+<a name="l00040"></a>00040 <a class="code" href="class_game_panel.html#a3475820b2255da92e247d07248870044" title="Creates a GamePanel from the given back and front buffers.">GamePanel</a>(ALLEGRO_BITMAP* back, ALLEGRO_BITMAP* front, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height);
+<a name="l00041"></a>00041
+<a name="l00042"></a>00042
+<a name="l00057"></a>00057 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_game_panel.html#ab093fb770fa8b46ee863947259c72abd" title="Draws the given objects on the screen.">draw</a>(<span class="keyword">const</span> <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>&amp; maze, <span class="keyword">const</span> list&lt;PlayerCar&gt;&amp; players, <span class="keyword">const</span> list&lt;EnemyCar&gt;&amp; enemies, <span class="keyword">const</span> list&lt;Checkpoint&gt;&amp; checkpoints, <span class="keyword">const</span> list&lt;Rock&gt;&amp; rocks, <span class="keyword">const</span> list&lt;Smokescreen&gt;&amp; smokescreens, <span class="keyword">const</span> list&lt;DestroyedObjectPopup&gt;&amp; popups);
+<a name="l00058"></a>00058 <span class="keyword">private</span>:
+<a name="l00062"></a>00062 <a class="code" href="class_game_panel.html#a3475820b2255da92e247d07248870044" title="Creates a GamePanel from the given back and front buffers.">GamePanel</a>(<span class="keyword">const</span> <a class="code" href="class_game_panel.html" title="ScreenPanel to be drawn on the screen to draw the area where the game takes place.">GamePanel</a>&amp; ref);
+<a name="l00066"></a>00066 <a class="code" href="class_game_panel.html" title="ScreenPanel to be drawn on the screen to draw the area where the game takes place.">GamePanel</a>&amp; <a class="code" href="class_game_panel.html#afa4391feb9b273eb938531a73b1ec7f2" title="Assignment operator not implemented, ScreenPanels should not be copied.">operator=</a>(<span class="keyword">const</span> <a class="code" href="class_game_panel.html" title="ScreenPanel to be drawn on the screen to draw the area where the game takes place.">GamePanel</a>&amp; rhs);
+<a name="l00075"></a>00075 <span class="keywordtype">float</span> <a class="code" href="class_game_panel.html#a53a4386ab0f60db88b3c638b3880cd91" title="Converts an x game coordinate value to its equivalent in pixels.">getPanelX</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>&amp; x) <span class="keyword">const</span>;
+<a name="l00084"></a>00084 <span class="keywordtype">float</span> <a class="code" href="class_game_panel.html#a0e722b67c8ee7fe5f557821adf9b8cc2" title="Converts a y game coordinate value to its equivalent in pixels.">getPanelY</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>&amp; y) <span class="keyword">const</span>;
+<a name="l00085"></a>00085
+<a name="l00094"></a>00094 <span class="keywordtype">void</span> <a class="code" href="class_game_panel.html#ab093fb770fa8b46ee863947259c72abd" title="Draws the given objects on the screen.">draw</a>(<span class="keyword">const</span> <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>&amp; maze);
+<a name="l00095"></a>00095
+<a name="l00103"></a>00103 <span class="keywordtype">void</span> <a class="code" href="class_game_panel.html#ab093fb770fa8b46ee863947259c72abd" title="Draws the given objects on the screen.">draw</a>(<span class="keyword">const</span> <a class="code" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a>&amp; <span class="keywordtype">object</span>);
+<a name="l00104"></a>00104
+<a name="l00105"></a><a class="code" href="class_game_panel.html#ae60d3f1c29382ad3c6e6b5c5a56d2160">00105</a> <span class="keyword">const</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="class_game_panel.html#ae60d3f1c29382ad3c6e6b5c5a56d2160" title="The number of Maze blocks in one row shown on the panel at a time. Used to determine the scale...">BLOCKS_PER_ROW</a> = 15;
+<a name="l00106"></a>00106
+<a name="l00107"></a><a class="code" href="class_game_panel.html#a4889f5f6e1ad713be455d4f69a2cda96">00107</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_game_panel.html#a4889f5f6e1ad713be455d4f69a2cda96" title="The width of one (square) Maze block on the screen, in pixels.">_mazeblockWidth</a>;
+<a name="l00108"></a>00108
+<a name="l00109"></a><a class="code" href="class_game_panel.html#afe99f100b68ec2475cb0a509887b63a9">00109</a> <span class="keywordtype">float</span> <a class="code" href="class_game_panel.html#afe99f100b68ec2475cb0a509887b63a9" title="The amount that drawing should be offset to the right, recalculated every frame.">_offsetX</a>;
+<a name="l00110"></a><a class="code" href="class_game_panel.html#af3354addd707cb42b078dbe2ef29e189">00110</a> <span class="keywordtype">float</span> <a class="code" href="class_game_panel.html#af3354addd707cb42b078dbe2ef29e189" title="The amount that drawing should be offset downwards, recalculated every frame.">_offsetY</a>;
+<a name="l00111"></a>00111
+<a name="l00112"></a><a class="code" href="class_game_panel.html#a0125ff874ffebadc15c7678210914a8c">00112</a> <a class="code" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a> <a class="code" href="class_game_panel.html#a0125ff874ffebadc15c7678210914a8c" title="Used to cache ALLEGRO_BITMAPs, so that they only need to be drawn once.">_bitmapStore</a>;
+<a name="l00113"></a>00113
+<a name="l00114"></a><a class="code" href="class_game_panel.html#a18c100c8d9ae2601a97083485d937418">00114</a> <a class="code" href="class_allegro_init.html" title="Class ensures that Allegro is initialized and uninstalled when appropriate.">AllegroInit</a> <a class="code" href="class_game_panel.html#a18c100c8d9ae2601a97083485d937418" title="Handles dependencies on Allegro.">_allegro</a>;
+<a name="l00115"></a>00115 };
+<a name="l00116"></a>00116
+<a name="l00117"></a>00117 <span class="preprocessor">#endif // GAMEPANEL_H</span>
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_info_panel_8cpp.html b/docs/html/_info_panel_8cpp.html
new file mode 100644
index 0000000..d0e0acb
--- /dev/null
+++ b/docs/html/_info_panel_8cpp.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/InfoPanel.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/presentation/InfoPanel.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_info_panel_8h_source.html">InfoPanel.h</a>&quot;</code><br/>
+</div>
+<p><a href="_info_panel_8cpp_source.html">Go to the source code of this file.</a></p>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_info_panel_8cpp_source.html b/docs/html/_info_panel_8cpp_source.html
new file mode 100644
index 0000000..59e5a49
--- /dev/null
+++ b/docs/html/_info_panel_8cpp_source.html
@@ -0,0 +1,218 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/InfoPanel.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/presentation/InfoPanel.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="_info_panel_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &quot;<a class="code" href="_info_panel_8h.html">InfoPanel.h</a>&quot;</span>
+<a name="l00002"></a>00002
+<a name="l00003"></a><a class="code" href="class_info_panel.html#a5a3d0afb5ebd764de04484b1817912b6">00003</a> <a class="code" href="class_info_panel.html#a5a3d0afb5ebd764de04484b1817912b6" title="Creates an InfoPanel from the given back and front buffers.">InfoPanel::InfoPanel</a>(ALLEGRO_BITMAP* back, ALLEGRO_BITMAP* front, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height)
+<a name="l00004"></a>00004 :<a class="code" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a>(back, front, x, y, width, height),
+<a name="l00005"></a>00005 _petrolHeadingY(_width/10),
+<a name="l00006"></a>00006 _petrolGuageY(_petrolHeadingY + _width/10),
+<a name="l00007"></a>00007 _petrolGuageHeight(_width/10),
+<a name="l00008"></a>00008 _checkpointHeadingY(_petrolGuageY + _petrolGuageHeight + _width/10),
+<a name="l00009"></a>00009 _checkpointValueY(_checkpointHeadingY + _width/10),
+<a name="l00010"></a>00010 _miniMazeY(_checkpointValueY + _width/5),
+<a name="l00011"></a>00011 _miniMazeHeight(_height - _miniMazeY),
+<a name="l00012"></a>00012 _miniMazeblockWidth(0)
+<a name="l00013"></a>00013 {
+<a name="l00014"></a>00014 <a class="code" href="class_info_panel.html#a38d023a2b00eafa303de37550cb96817" title="The font being used to write the headings and number of checkpoints remaining.">_panelFont</a> = al_load_font(<span class="stringliteral">&quot;junction 02.ttf&quot;</span>, <a class="code" href="class_screen_panel.html#afbbcad2a101b95869dcdef9bf0898f65" title="The width of the sub-bitmaps being drawn to in pixels.">_width</a>/10, 0);
+<a name="l00015"></a>00015 <span class="keywordflow">if</span> (<a class="code" href="class_info_panel.html#a38d023a2b00eafa303de37550cb96817" title="The font being used to write the headings and number of checkpoints remaining.">_panelFont</a> == NULL)
+<a name="l00016"></a>00016 {
+<a name="l00017"></a>00017 al_show_native_message_box(NULL, <span class="stringliteral">&quot;Fatal error&quot;</span>, <span class="stringliteral">&quot;Fatal error&quot;</span>, <span class="stringliteral">&quot;The file &#39;junction 02.ttf&#39; was not found. Ensure that it is located in the working directory.&quot;</span>, NULL, ALLEGRO_MESSAGEBOX_ERROR);
+<a name="l00018"></a>00018 <span class="keywordflow">throw</span> <a class="code" href="class_install_failure.html" title="Exception to be thrown if any component of Allegro fails to install at runtime.">InstallFailure</a>();
+<a name="l00019"></a>00019 }
+<a name="l00020"></a>00020 }
+<a name="l00021"></a>00021
+<a name="l00022"></a><a class="code" href="class_info_panel.html#a052da279d4bf0405ae3735f24cc2e2a2">00022</a> <a class="code" href="class_info_panel.html#a052da279d4bf0405ae3735f24cc2e2a2" title="Destructor that ensured that the font created is destroyed.">InfoPanel::~InfoPanel</a>()
+<a name="l00023"></a>00023 {
+<a name="l00024"></a>00024 al_destroy_font(<a class="code" href="class_info_panel.html#a38d023a2b00eafa303de37550cb96817" title="The font being used to write the headings and number of checkpoints remaining.">_panelFont</a>);
+<a name="l00025"></a>00025 }
+<a name="l00026"></a>00026
+<a name="l00027"></a><a class="code" href="class_info_panel.html#aa9628c14e08ac6573e0191d9d4afa227">00027</a> <span class="keywordtype">void</span> <a class="code" href="class_info_panel.html#aa9628c14e08ac6573e0191d9d4afa227" title="Draws the InfoPanel using the given objects.">InfoPanel::draw</a>(<span class="keyword">const</span> <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>&amp; maze, <span class="keyword">const</span> list&lt;PlayerCar&gt;&amp; players, <span class="keyword">const</span> list&lt;EnemyCar&gt;&amp; enemies, <span class="keyword">const</span> list&lt;Checkpoint&gt;&amp; checkpoints, <span class="keyword">const</span> list&lt;Rock&gt;&amp; rocks, <span class="keyword">const</span> list&lt;Smokescreen&gt;&amp; smokescreens, <span class="keyword">const</span> list&lt;DestroyedObjectPopup&gt;&amp; popups)
+<a name="l00028"></a>00028 {
+<a name="l00029"></a>00029 ALLEGRO_BITMAP* prev_draw = al_get_target_bitmap();
+<a name="l00030"></a>00030 al_set_target_bitmap(<a class="code" href="class_screen_panel.html#a1a3ec8e60be5d5cede210171bda33468" title="The back buffer. Only the back buffer can be drawn to.">_back</a>);
+<a name="l00031"></a>00031
+<a name="l00032"></a>00032 <span class="keywordtype">double</span> petrol = 0;
+<a name="l00033"></a>00033 <span class="keywordflow">if</span> (!players.empty())
+<a name="l00034"></a>00034 {
+<a name="l00035"></a>00035 petrol = players.front().petrol();
+<a name="l00036"></a>00036 }
+<a name="l00037"></a>00037
+<a name="l00038"></a>00038 al_clear_to_color(<a class="code" href="class_info_panel.html#a27ac079ed1a39ae672b6ceb9e0974855" title="Caches colours for drawing.">_colourStore</a>.<a class="code" href="class_colour_store.html#ac8474c4e9b335215f03ec2c749847ad2" title="Returns the colour associated with a given image.">getColour</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a4e2a075dff2c02bf40b134c9090d1f02">BitmapStore::MAZE_FLOOR</a>));
+<a name="l00039"></a>00039
+<a name="l00040"></a>00040 <span class="comment">//gets a mazeblock width the fits the current maze</span>
+<a name="l00041"></a>00041 <a class="code" href="class_info_panel.html#abb211fac23293e41f23b86fd70df98f0" title="The width of each Maze block being drawn.">_miniMazeblockWidth</a> = min(static_cast&lt;float&gt;(<a class="code" href="class_screen_panel.html#afbbcad2a101b95869dcdef9bf0898f65" title="The width of the sub-bitmaps being drawn to in pixels.">_width</a>)/maze.<a class="code" href="class_maze.html#a6963ffbb8e10f5ca72ddc749b3f29419" title="Provides access to the width of the Maze object.">width</a>(), <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(<a class="code" href="class_info_panel.html#ad38206daa42c82b45878e6d0c55f2860" title="The height of the Maze.">_miniMazeHeight</a>)/maze.<a class="code" href="class_maze.html#a53de30abea69713225ab77703e753d81" title="Provides access to the height of the Maze object.">height</a>());
+<a name="l00042"></a>00042
+<a name="l00043"></a>00043 <span class="comment">//draws petrol heading and bar</span>
+<a name="l00044"></a>00044 al_draw_text(<a class="code" href="class_info_panel.html#a38d023a2b00eafa303de37550cb96817" title="The font being used to write the headings and number of checkpoints remaining.">_panelFont</a>, al_map_rgb(255,255,255), 1, <a class="code" href="class_info_panel.html#a5ab76703538ad6e396a21ea8fb47d23d" title="The y coordinate of the heading for the petrol guage.">_petrolHeadingY</a>, ALLEGRO_ALIGN_LEFT , <span class="stringliteral">&quot;Petrol&quot;</span>);
+<a name="l00045"></a>00045 al_draw_filled_rectangle(0,<a class="code" href="class_info_panel.html#a29976100c8fc5c130be713dfb5c2807e" title="The y coordinate of top of the petrol guage.">_petrolGuageY</a>,<a class="code" href="class_screen_panel.html#afbbcad2a101b95869dcdef9bf0898f65" title="The width of the sub-bitmaps being drawn to in pixels.">_width</a>*petrol, <a class="code" href="class_info_panel.html#a29976100c8fc5c130be713dfb5c2807e" title="The y coordinate of top of the petrol guage.">_petrolGuageY</a>+<a class="code" href="class_info_panel.html#a0c85348f8471d86da73772f86a62f84c" title="The height of the rectangle that is the petrol guage.">_petrolGuageHeight</a>, al_map_rgb(255,128,0));
+<a name="l00046"></a>00046
+<a name="l00047"></a>00047 <span class="comment">//draws checkpoints remaining heading and value</span>
+<a name="l00048"></a>00048 al_draw_text(<a class="code" href="class_info_panel.html#a38d023a2b00eafa303de37550cb96817" title="The font being used to write the headings and number of checkpoints remaining.">_panelFont</a>, al_map_rgb(255,255,255), 1, <a class="code" href="class_info_panel.html#a7ec514286dbf2fb43f64acd620397e21" title="The y coordinate of the heading for the number of remaining checkpoints.">_checkpointHeadingY</a>, ALLEGRO_ALIGN_LEFT , <span class="stringliteral">&quot;Checkpoints&quot;</span>);
+<a name="l00049"></a>00049 stringstream checkpointCountString;
+<a name="l00050"></a>00050 checkpointCountString &lt;&lt; <a class="code" href="class_checkpoint.html#a872d8574b6f0a7960854fb1175e05f13" title="Function for accessing the number of checkpoints that currently exist.">Checkpoint::checkpointCount</a>();
+<a name="l00051"></a>00051 al_draw_text(<a class="code" href="class_info_panel.html#a38d023a2b00eafa303de37550cb96817" title="The font being used to write the headings and number of checkpoints remaining.">_panelFont</a>, al_map_rgb(255,255,255), 1, <a class="code" href="class_info_panel.html#ad118b5f123e590a95b3f390fd9597f02" title="The y coordinate of the text stating the number of remaining checkpoints.">_checkpointValueY</a>, ALLEGRO_ALIGN_LEFT , checkpointCountString.str().c_str());
+<a name="l00052"></a>00052
+<a name="l00053"></a>00053 <a class="code" href="class_info_panel.html#aa9628c14e08ac6573e0191d9d4afa227" title="Draws the InfoPanel using the given objects.">draw</a>(maze);
+<a name="l00054"></a>00054 <span class="keywordflow">for</span> (list&lt;PlayerCar&gt;::const_iterator iter = players.begin(); iter != players.end(); ++iter)
+<a name="l00055"></a>00055 {
+<a name="l00056"></a>00056 <a class="code" href="class_info_panel.html#aa9628c14e08ac6573e0191d9d4afa227" title="Draws the InfoPanel using the given objects.">draw</a>(*iter);
+<a name="l00057"></a>00057 }
+<a name="l00058"></a>00058 <span class="keywordflow">for</span> (list&lt;EnemyCar&gt;::const_iterator iter = enemies.begin(); iter != enemies.end(); ++iter)
+<a name="l00059"></a>00059 {
+<a name="l00060"></a>00060 <a class="code" href="class_info_panel.html#aa9628c14e08ac6573e0191d9d4afa227" title="Draws the InfoPanel using the given objects.">draw</a>(*iter);
+<a name="l00061"></a>00061 }
+<a name="l00062"></a>00062 <span class="keywordflow">for</span> (list&lt;Checkpoint&gt;::const_iterator iter = checkpoints.begin(); iter != checkpoints.end(); ++iter)
+<a name="l00063"></a>00063 {
+<a name="l00064"></a>00064 <a class="code" href="class_info_panel.html#aa9628c14e08ac6573e0191d9d4afa227" title="Draws the InfoPanel using the given objects.">draw</a>(*iter);
+<a name="l00065"></a>00065 }
+<a name="l00066"></a>00066
+<a name="l00067"></a>00067 <span class="comment">//restore draw target</span>
+<a name="l00068"></a>00068 al_set_target_bitmap(prev_draw);
+<a name="l00069"></a>00069 }
+<a name="l00070"></a>00070
+<a name="l00071"></a><a class="code" href="class_info_panel.html#a23a025859397c3e28bbe9dce26563d7c">00071</a> <span class="keywordtype">void</span> <a class="code" href="class_info_panel.html#aa9628c14e08ac6573e0191d9d4afa227" title="Draws the InfoPanel using the given objects.">InfoPanel::draw</a>(<span class="keyword">const</span> <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>&amp; maze)
+<a name="l00072"></a>00072 {
+<a name="l00073"></a>00073 ALLEGRO_COLOR wallColour = <a class="code" href="class_info_panel.html#a27ac079ed1a39ae672b6ceb9e0974855" title="Caches colours for drawing.">_colourStore</a>.<a class="code" href="class_colour_store.html#ac8474c4e9b335215f03ec2c749847ad2" title="Returns the colour associated with a given image.">getColour</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386ae662e77b349a8e22c5826ef35b1b5d9a">BitmapStore::MAZE_WALL</a>);
+<a name="l00074"></a>00074 ALLEGRO_COLOR floorColour = <a class="code" href="class_info_panel.html#a27ac079ed1a39ae672b6ceb9e0974855" title="Caches colours for drawing.">_colourStore</a>.<a class="code" href="class_colour_store.html#ac8474c4e9b335215f03ec2c749847ad2" title="Returns the colour associated with a given image.">getColour</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a4e2a075dff2c02bf40b134c9090d1f02">BitmapStore::MAZE_FLOOR</a>);
+<a name="l00075"></a>00075
+<a name="l00076"></a>00076 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x=0; x&lt;maze.<a class="code" href="class_maze.html#a6963ffbb8e10f5ca72ddc749b3f29419" title="Provides access to the width of the Maze object.">width</a>(); ++x)
+<a name="l00077"></a>00077 {
+<a name="l00078"></a>00078 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> y=0; y&lt;maze.<a class="code" href="class_maze.html#a53de30abea69713225ab77703e753d81" title="Provides access to the height of the Maze object.">height</a>(); ++y)
+<a name="l00079"></a>00079 {
+<a name="l00080"></a>00080 <span class="keywordtype">float</span> x1 = <a class="code" href="class_info_panel.html#a0accb88b099f412cc3baa7d2bf4690aa" title="Converts an x game coordinate value to its equivalent in pixels.">getPanelX</a>(x);
+<a name="l00081"></a>00081 <span class="keywordtype">float</span> x2 = x1 + <a class="code" href="class_info_panel.html#abb211fac23293e41f23b86fd70df98f0" title="The width of each Maze block being drawn.">_miniMazeblockWidth</a>;
+<a name="l00082"></a>00082 <span class="keywordtype">float</span> y1 = <a class="code" href="class_info_panel.html#ad962eab814441375a8634b67d743d7e6" title="Converts a y game coordinate value to its equivalent in pixels.">getPanelY</a>(y) + <a class="code" href="class_info_panel.html#a7b4bb6cca8549d6a1d1deccc99994b9b" title="The y coordinate of the top of the Maze.">_miniMazeY</a>;
+<a name="l00083"></a>00083 <span class="keywordtype">float</span> y2 = y1 + <a class="code" href="class_info_panel.html#abb211fac23293e41f23b86fd70df98f0" title="The width of each Maze block being drawn.">_miniMazeblockWidth</a>;
+<a name="l00084"></a>00084 <span class="keywordflow">if</span> (maze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(x,y))
+<a name="l00085"></a>00085 {
+<a name="l00086"></a>00086 al_draw_filled_rectangle(x1, y1, x2, y2, wallColour);
+<a name="l00087"></a>00087 }
+<a name="l00088"></a>00088 <span class="keywordflow">else</span>
+<a name="l00089"></a>00089 {
+<a name="l00090"></a>00090 al_draw_filled_rectangle(x1, y1, x2, y2, floorColour);
+<a name="l00091"></a>00091 }
+<a name="l00092"></a>00092 }
+<a name="l00093"></a>00093 }
+<a name="l00094"></a>00094 }
+<a name="l00095"></a>00095
+<a name="l00096"></a><a class="code" href="class_info_panel.html#abc82d5365a89b3e374dbbdda86b77703">00096</a> <span class="keywordtype">void</span> <a class="code" href="class_info_panel.html#aa9628c14e08ac6573e0191d9d4afa227" title="Draws the InfoPanel using the given objects.">InfoPanel::draw</a>(<span class="keyword">const</span> <a class="code" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a>&amp; <span class="keywordtype">object</span>)
+<a name="l00097"></a>00097 {
+<a name="l00098"></a>00098 <span class="keywordtype">float</span> r = <a class="code" href="class_info_panel.html#abb211fac23293e41f23b86fd70df98f0" title="The width of each Maze block being drawn.">_miniMazeblockWidth</a>/2;
+<a name="l00099"></a>00099 <span class="keywordtype">float</span> cx = <a class="code" href="class_info_panel.html#a0accb88b099f412cc3baa7d2bf4690aa" title="Converts an x game coordinate value to its equivalent in pixels.">getPanelX</a>(<span class="keywordtype">object</span>.x()) + r;
+<a name="l00100"></a>00100 <span class="keywordtype">float</span> cy = <a class="code" href="class_info_panel.html#ad962eab814441375a8634b67d743d7e6" title="Converts a y game coordinate value to its equivalent in pixels.">getPanelY</a>(<span class="keywordtype">object</span>.y()) + <a class="code" href="class_info_panel.html#a7b4bb6cca8549d6a1d1deccc99994b9b" title="The y coordinate of the top of the Maze.">_miniMazeY</a> + r;
+<a name="l00101"></a>00101 al_draw_filled_circle(cx, cy, r, <a class="code" href="class_info_panel.html#a27ac079ed1a39ae672b6ceb9e0974855" title="Caches colours for drawing.">_colourStore</a>.<a class="code" href="class_colour_store.html#ac8474c4e9b335215f03ec2c749847ad2" title="Returns the colour associated with a given image.">getColour</a>(<span class="keywordtype">object</span>.image()));
+<a name="l00102"></a>00102 }
+<a name="l00103"></a>00103
+<a name="l00104"></a><a class="code" href="class_info_panel.html#a0accb88b099f412cc3baa7d2bf4690aa">00104</a> <span class="keywordtype">float</span> <a class="code" href="class_info_panel.html#a0accb88b099f412cc3baa7d2bf4690aa" title="Converts an x game coordinate value to its equivalent in pixels.">InfoPanel::getPanelX</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>&amp; x)<span class="keyword"> const</span>
+<a name="l00105"></a>00105 <span class="keyword"></span>{
+<a name="l00106"></a>00106 <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(x*<a class="code" href="class_info_panel.html#abb211fac23293e41f23b86fd70df98f0" title="The width of each Maze block being drawn.">_miniMazeblockWidth</a>);
+<a name="l00107"></a>00107 }
+<a name="l00108"></a><a class="code" href="class_info_panel.html#ad962eab814441375a8634b67d743d7e6">00108</a> <span class="keywordtype">float</span> <a class="code" href="class_info_panel.html#ad962eab814441375a8634b67d743d7e6" title="Converts a y game coordinate value to its equivalent in pixels.">InfoPanel::getPanelY</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>&amp; y)<span class="keyword"> const</span>
+<a name="l00109"></a>00109 <span class="keyword"></span>{
+<a name="l00110"></a>00110 <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(y*<a class="code" href="class_info_panel.html#abb211fac23293e41f23b86fd70df98f0" title="The width of each Maze block being drawn.">_miniMazeblockWidth</a>);
+<a name="l00111"></a>00111 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_info_panel_8h.html b/docs/html/_info_panel_8h.html
new file mode 100644
index 0000000..14b4fb7
--- /dev/null
+++ b/docs/html/_info_panel_8h.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/InfoPanel.h File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">source/presentation/InfoPanel.h File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &lt;allegro5/allegro.h&gt;</code><br/>
+<code>#include &lt;allegro5/allegro_primitives.h&gt;</code><br/>
+<code>#include &lt;sstream&gt;</code><br/>
+<code>#include &quot;../presentation/ScreenPanel.h&quot;</code><br/>
+<code>#include &quot;../presentation/ColourStore.h&quot;</code><br/>
+<code>#include &quot;../logic/Maze.h&quot;</code><br/>
+<code>#include &quot;../logic/GameObject.h&quot;</code><br/>
+<code>#include &quot;../logic/PlayerCar.h&quot;</code><br/>
+<code>#include &quot;../logic/EnemyCar.h&quot;</code><br/>
+<code>#include &quot;../logic/Checkpoint.h&quot;</code><br/>
+<code>#include &quot;../logic/AllegroWrappers.h&quot;</code><br/>
+</div>
+<p><a href="_info_panel_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_info_panel.html">InfoPanel</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a> to be drawn on the screen to give the player information. <a href="class_info_panel.html#details">More...</a><br/></td></tr>
+</table>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_info_panel_8h_source.html b/docs/html/_info_panel_8h_source.html
new file mode 100644
index 0000000..d28f366
--- /dev/null
+++ b/docs/html/_info_panel_8h_source.html
@@ -0,0 +1,159 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/InfoPanel.h Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/presentation/InfoPanel.h</div> </div>
+</div>
+<div class="contents">
+<a href="_info_panel_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef INFOPANEL_H</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define INFOPANEL_H</span>
+<a name="l00003"></a>00003 <span class="preprocessor"></span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;allegro5/allegro.h&gt;</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include &lt;allegro5/allegro_primitives.h&gt;</span>
+<a name="l00006"></a>00006
+<a name="l00007"></a>00007 <span class="preprocessor">#include &lt;sstream&gt;</span>
+<a name="l00008"></a>00008 <span class="keyword">using namespace </span>std;
+<a name="l00009"></a>00009
+<a name="l00010"></a>00010 <span class="preprocessor">#include &quot;../presentation/ScreenPanel.h&quot;</span>
+<a name="l00011"></a>00011 <span class="preprocessor">#include &quot;../presentation/ColourStore.h&quot;</span>
+<a name="l00012"></a>00012 <span class="preprocessor">#include &quot;../logic/Maze.h&quot;</span>
+<a name="l00013"></a>00013 <span class="preprocessor">#include &quot;../logic/GameObject.h&quot;</span>
+<a name="l00014"></a>00014 <span class="preprocessor">#include &quot;../logic/PlayerCar.h&quot;</span>
+<a name="l00015"></a>00015 <span class="preprocessor">#include &quot;../logic/EnemyCar.h&quot;</span>
+<a name="l00016"></a>00016 <span class="preprocessor">#include &quot;../logic/Checkpoint.h&quot;</span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include &quot;../logic/AllegroWrappers.h&quot;</span>
+<a name="l00018"></a>00018
+<a name="l00030"></a><a class="code" href="class_info_panel.html">00030</a> <span class="keyword">class </span><a class="code" href="class_info_panel.html" title="ScreenPanel to be drawn on the screen to give the player information.">InfoPanel</a> : <span class="keyword">public</span> <a class="code" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a>
+<a name="l00031"></a>00031 {
+<a name="l00032"></a>00032 <span class="keyword">public</span>:
+<a name="l00047"></a>00047 <a class="code" href="class_info_panel.html" title="ScreenPanel to be drawn on the screen to give the player information.">InfoPanel</a>(ALLEGRO_BITMAP* back, ALLEGRO_BITMAP* front, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height);
+<a name="l00048"></a>00048
+<a name="l00054"></a>00054 ~<a class="code" href="class_info_panel.html" title="ScreenPanel to be drawn on the screen to give the player information.">InfoPanel</a>();
+<a name="l00055"></a>00055
+<a name="l00074"></a>00074 <span class="keyword">virtual</span> <span class="keywordtype">void</span> draw(<span class="keyword">const</span> <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>&amp; maze, <span class="keyword">const</span> list&lt;PlayerCar&gt;&amp; players, <span class="keyword">const</span> list&lt;EnemyCar&gt;&amp; enemies, <span class="keyword">const</span> list&lt;Checkpoint&gt;&amp; checkpoints, <span class="keyword">const</span> list&lt;Rock&gt;&amp; rocks, <span class="keyword">const</span> list&lt;Smokescreen&gt;&amp; smokescreens, <span class="keyword">const</span> list&lt;DestroyedObjectPopup&gt;&amp; popups);
+<a name="l00075"></a>00075 <span class="keyword">private</span>:
+<a name="l00079"></a>00079 <a class="code" href="class_info_panel.html" title="ScreenPanel to be drawn on the screen to give the player information.">InfoPanel</a>(<span class="keyword">const</span> <a class="code" href="class_info_panel.html" title="ScreenPanel to be drawn on the screen to give the player information.">InfoPanel</a>&amp; ref);
+<a name="l00083"></a>00083 <a class="code" href="class_info_panel.html" title="ScreenPanel to be drawn on the screen to give the player information.">InfoPanel</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="class_info_panel.html" title="ScreenPanel to be drawn on the screen to give the player information.">InfoPanel</a>&amp; rhs);
+<a name="l00092"></a>00092 <span class="keywordtype">float</span> getPanelX(<span class="keyword">const</span> <span class="keywordtype">double</span>&amp; x) <span class="keyword">const</span>;
+<a name="l00101"></a>00101 <span class="keywordtype">float</span> getPanelY(<span class="keyword">const</span> <span class="keywordtype">double</span>&amp; y) <span class="keyword">const</span>;
+<a name="l00102"></a>00102
+<a name="l00113"></a>00113 <span class="keywordtype">void</span> draw(<span class="keyword">const</span> <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>&amp; maze);
+<a name="l00114"></a>00114
+<a name="l00123"></a>00123 <span class="keywordtype">void</span> draw(<span class="keyword">const</span> <a class="code" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a>&amp; <span class="keywordtype">object</span>);
+<a name="l00124"></a>00124
+<a name="l00125"></a><a class="code" href="class_info_panel.html#a589359c67b30af50338791f8af0e05e0">00125</a> <a class="code" href="class_allegro_drawing_init.html" title="Class ensures that Allegro&#39;s primitive and text drawing is installed and uninstalled when appropriate...">AllegroDrawingInit</a> <a class="code" href="class_info_panel.html#a589359c67b30af50338791f8af0e05e0" title="Handles dependencies on Allegro&#39;s primitive drawing functions.">_drawing</a>;
+<a name="l00126"></a><a class="code" href="class_info_panel.html#a27ac079ed1a39ae672b6ceb9e0974855">00126</a> <a class="code" href="class_colour_store.html" title="Class for mapping BitmapStore images to colours for use in the minimap.">ColourStore</a> <a class="code" href="class_info_panel.html#a27ac079ed1a39ae672b6ceb9e0974855" title="Caches colours for drawing.">_colourStore</a>;
+<a name="l00127"></a>00127
+<a name="l00128"></a><a class="code" href="class_info_panel.html#a5ab76703538ad6e396a21ea8fb47d23d">00128</a> <span class="keywordtype">float</span> <a class="code" href="class_info_panel.html#a5ab76703538ad6e396a21ea8fb47d23d" title="The y coordinate of the heading for the petrol guage.">_petrolHeadingY</a>;
+<a name="l00129"></a><a class="code" href="class_info_panel.html#a29976100c8fc5c130be713dfb5c2807e">00129</a> <span class="keywordtype">float</span> <a class="code" href="class_info_panel.html#a29976100c8fc5c130be713dfb5c2807e" title="The y coordinate of top of the petrol guage.">_petrolGuageY</a>;
+<a name="l00130"></a><a class="code" href="class_info_panel.html#a0c85348f8471d86da73772f86a62f84c">00130</a> <span class="keywordtype">float</span> <a class="code" href="class_info_panel.html#a0c85348f8471d86da73772f86a62f84c" title="The height of the rectangle that is the petrol guage.">_petrolGuageHeight</a>;
+<a name="l00131"></a><a class="code" href="class_info_panel.html#a7ec514286dbf2fb43f64acd620397e21">00131</a> <span class="keywordtype">float</span> <a class="code" href="class_info_panel.html#a7ec514286dbf2fb43f64acd620397e21" title="The y coordinate of the heading for the number of remaining checkpoints.">_checkpointHeadingY</a>;
+<a name="l00132"></a><a class="code" href="class_info_panel.html#ad118b5f123e590a95b3f390fd9597f02">00132</a> <span class="keywordtype">float</span> <a class="code" href="class_info_panel.html#ad118b5f123e590a95b3f390fd9597f02" title="The y coordinate of the text stating the number of remaining checkpoints.">_checkpointValueY</a>;
+<a name="l00133"></a><a class="code" href="class_info_panel.html#a7b4bb6cca8549d6a1d1deccc99994b9b">00133</a> <span class="keywordtype">float</span> <a class="code" href="class_info_panel.html#a7b4bb6cca8549d6a1d1deccc99994b9b" title="The y coordinate of the top of the Maze.">_miniMazeY</a>;
+<a name="l00134"></a><a class="code" href="class_info_panel.html#ad38206daa42c82b45878e6d0c55f2860">00134</a> <span class="keywordtype">float</span> <a class="code" href="class_info_panel.html#ad38206daa42c82b45878e6d0c55f2860" title="The height of the Maze.">_miniMazeHeight</a>;
+<a name="l00135"></a><a class="code" href="class_info_panel.html#abb211fac23293e41f23b86fd70df98f0">00135</a> <span class="keywordtype">float</span> <a class="code" href="class_info_panel.html#abb211fac23293e41f23b86fd70df98f0" title="The width of each Maze block being drawn.">_miniMazeblockWidth</a>;
+<a name="l00136"></a>00136
+<a name="l00137"></a><a class="code" href="class_info_panel.html#a38d023a2b00eafa303de37550cb96817">00137</a> ALLEGRO_FONT* <a class="code" href="class_info_panel.html#a38d023a2b00eafa303de37550cb96817" title="The font being used to write the headings and number of checkpoints remaining.">_panelFont</a>;
+<a name="l00138"></a>00138 };
+<a name="l00139"></a>00139
+<a name="l00140"></a>00140 <span class="preprocessor">#endif // INFOPANEL_H</span>
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_keyboard_handler_8cpp.html b/docs/html/_keyboard_handler_8cpp.html
new file mode 100644
index 0000000..767cfc6
--- /dev/null
+++ b/docs/html/_keyboard_handler_8cpp.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/KeyboardHandler.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/presentation/KeyboardHandler.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_keyboard_handler_8h_source.html">KeyboardHandler.h</a>&quot;</code><br/>
+</div>
+<p><a href="_keyboard_handler_8cpp_source.html">Go to the source code of this file.</a></p>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_keyboard_handler_8cpp_source.html b/docs/html/_keyboard_handler_8cpp_source.html
new file mode 100644
index 0000000..67174e5
--- /dev/null
+++ b/docs/html/_keyboard_handler_8cpp_source.html
@@ -0,0 +1,221 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/KeyboardHandler.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/presentation/KeyboardHandler.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="_keyboard_handler_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &quot;<a class="code" href="_keyboard_handler_8h.html">KeyboardHandler.h</a>&quot;</span>
+<a name="l00002"></a>00002
+<a name="l00003"></a><a class="code" href="class_keyboard_handler.html#acd0d5781016f792207464bb720d2f994">00003</a> <a class="code" href="class_keyboard_handler.html#acd0d5781016f792207464bb720d2f994" title="Creates a KeyboardHandler with a given initial state.">KeyboardHandler::KeyboardHandler</a>(<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f" title="Defines the directions in which movement can happen in the maze.">Maze::Direction</a> currentFacing)
+<a name="l00004"></a>00004 :_up(false),
+<a name="l00005"></a>00005 _down(false),
+<a name="l00006"></a>00006 _left(false),
+<a name="l00007"></a>00007 _right(false),
+<a name="l00008"></a>00008 _smokescreen(false),
+<a name="l00009"></a>00009 _previousFacing(currentFacing)
+<a name="l00010"></a>00010 {
+<a name="l00011"></a>00011 <a class="code" href="class_keyboard_handler.html#a44116ed8745f3a3360e1d7c29ea86d56" title="Queue for all keyboard events.">_keyboardEvents</a> = al_create_event_queue();
+<a name="l00012"></a>00012 al_register_event_source(<a class="code" href="class_keyboard_handler.html#a44116ed8745f3a3360e1d7c29ea86d56" title="Queue for all keyboard events.">_keyboardEvents</a>, al_get_keyboard_event_source());
+<a name="l00013"></a>00013 }
+<a name="l00014"></a>00014
+<a name="l00015"></a><a class="code" href="class_keyboard_handler.html#a8942a24f122f96b2b5d7c91f1c6ff332">00015</a> <a class="code" href="class_keyboard_handler.html#acd0d5781016f792207464bb720d2f994" title="Creates a KeyboardHandler with a given initial state.">KeyboardHandler::KeyboardHandler</a>(<span class="keyword">const</span> <a class="code" href="class_keyboard_handler.html" title="Class for handling keyboard related game inputs from the player.">KeyboardHandler</a>&amp; ref)
+<a name="l00016"></a>00016 :_up(ref._up),
+<a name="l00017"></a>00017 _down(ref._down),
+<a name="l00018"></a>00018 _left(ref._left),
+<a name="l00019"></a>00019 _right(ref._right),
+<a name="l00020"></a>00020 _smokescreen(ref._smokescreen),
+<a name="l00021"></a>00021 _previousFacing(ref._previousFacing)
+<a name="l00022"></a>00022 {
+<a name="l00023"></a>00023 <a class="code" href="class_keyboard_handler.html#a44116ed8745f3a3360e1d7c29ea86d56" title="Queue for all keyboard events.">_keyboardEvents</a> = al_create_event_queue();
+<a name="l00024"></a>00024 al_register_event_source(<a class="code" href="class_keyboard_handler.html#a44116ed8745f3a3360e1d7c29ea86d56" title="Queue for all keyboard events.">_keyboardEvents</a>, al_get_keyboard_event_source());
+<a name="l00025"></a>00025 }
+<a name="l00026"></a>00026
+<a name="l00027"></a><a class="code" href="class_keyboard_handler.html#a5135c450b82394496457a0a51d5240f5">00027</a> <a class="code" href="class_keyboard_handler.html" title="Class for handling keyboard related game inputs from the player.">KeyboardHandler</a>&amp; <a class="code" href="class_keyboard_handler.html#a5135c450b82394496457a0a51d5240f5" title="Assignment operator that ensures that an assigned KeyboardHandler will have its own event queue...">KeyboardHandler::operator=</a>(<span class="keyword">const</span> <a class="code" href="class_keyboard_handler.html" title="Class for handling keyboard related game inputs from the player.">KeyboardHandler</a>&amp; rhs)
+<a name="l00028"></a>00028 {
+<a name="l00029"></a>00029 <a class="code" href="class_keyboard_handler.html#ad323844aad47f1bc263ec2fd4a19ac3a" title="True if the up arrow key is depressed.">_up</a> = rhs.<a class="code" href="class_keyboard_handler.html#ad323844aad47f1bc263ec2fd4a19ac3a" title="True if the up arrow key is depressed.">_up</a>;
+<a name="l00030"></a>00030 <a class="code" href="class_keyboard_handler.html#aa6d1c75e1a98d4aae96d8ac1c8aaa539" title="True if the down arrow key is depressed.">_down</a> = rhs.<a class="code" href="class_keyboard_handler.html#aa6d1c75e1a98d4aae96d8ac1c8aaa539" title="True if the down arrow key is depressed.">_down</a>;
+<a name="l00031"></a>00031 <a class="code" href="class_keyboard_handler.html#a3bc780470d7cbaf9f4ea239e0613ce3c" title="True if the left arrow key is depressed.">_left</a> = rhs.<a class="code" href="class_keyboard_handler.html#a3bc780470d7cbaf9f4ea239e0613ce3c" title="True if the left arrow key is depressed.">_left</a>;
+<a name="l00032"></a>00032 <a class="code" href="class_keyboard_handler.html#a81d37831d958ff21c2ce08cfa97ca420" title="True if the right arrow key is depressed.">_right</a> = rhs.<a class="code" href="class_keyboard_handler.html#a81d37831d958ff21c2ce08cfa97ca420" title="True if the right arrow key is depressed.">_right</a>;
+<a name="l00033"></a>00033 <a class="code" href="class_keyboard_handler.html#a7769dc815c493fb5962d52c3d5bc7b16" title="True if the smokescreen key is depressed.">_smokescreen</a> = rhs.<a class="code" href="class_keyboard_handler.html#a7769dc815c493fb5962d52c3d5bc7b16" title="True if the smokescreen key is depressed.">_smokescreen</a>;
+<a name="l00034"></a>00034 <a class="code" href="class_keyboard_handler.html#a90120a85c62481b3a2c0330511cffbac" title="The direction that was returned on the last call of getFacing.">_previousFacing</a> = rhs.<a class="code" href="class_keyboard_handler.html#a90120a85c62481b3a2c0330511cffbac" title="The direction that was returned on the last call of getFacing.">_previousFacing</a>;
+<a name="l00035"></a>00035
+<a name="l00036"></a>00036 <span class="keywordflow">if</span> (<a class="code" href="class_keyboard_handler.html#a44116ed8745f3a3360e1d7c29ea86d56" title="Queue for all keyboard events.">_keyboardEvents</a>!=rhs.<a class="code" href="class_keyboard_handler.html#a44116ed8745f3a3360e1d7c29ea86d56" title="Queue for all keyboard events.">_keyboardEvents</a>) al_destroy_event_queue(<a class="code" href="class_keyboard_handler.html#a44116ed8745f3a3360e1d7c29ea86d56" title="Queue for all keyboard events.">_keyboardEvents</a>);
+<a name="l00037"></a>00037
+<a name="l00038"></a>00038 <a class="code" href="class_keyboard_handler.html#a44116ed8745f3a3360e1d7c29ea86d56" title="Queue for all keyboard events.">_keyboardEvents</a> = al_create_event_queue();
+<a name="l00039"></a>00039 al_register_event_source(<a class="code" href="class_keyboard_handler.html#a44116ed8745f3a3360e1d7c29ea86d56" title="Queue for all keyboard events.">_keyboardEvents</a>, al_get_keyboard_event_source());
+<a name="l00040"></a>00040
+<a name="l00041"></a>00041 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00042"></a>00042 }
+<a name="l00043"></a>00043
+<a name="l00044"></a><a class="code" href="class_keyboard_handler.html#ab090fe5afdee856604b0aa0d9eb918a4">00044</a> <a class="code" href="class_keyboard_handler.html#ab090fe5afdee856604b0aa0d9eb918a4" title="Cleans up the keyboard event queue.">KeyboardHandler::~KeyboardHandler</a>()
+<a name="l00045"></a>00045 {
+<a name="l00046"></a>00046 al_destroy_event_queue(<a class="code" href="class_keyboard_handler.html#a44116ed8745f3a3360e1d7c29ea86d56" title="Queue for all keyboard events.">_keyboardEvents</a>);
+<a name="l00047"></a>00047 }
+<a name="l00048"></a>00048
+<a name="l00049"></a><a class="code" href="class_keyboard_handler.html#a9f53a546420f3d02363c9e1e4e346420">00049</a> <span class="keywordtype">void</span> <a class="code" href="class_keyboard_handler.html#a9f53a546420f3d02363c9e1e4e346420" title="Processes all pending keyboard inputs, and updates flags as appropriate.">KeyboardHandler::updateFlags</a>()
+<a name="l00050"></a>00050 {
+<a name="l00051"></a>00051 ALLEGRO_EVENT event;
+<a name="l00052"></a>00052 <span class="keywordflow">while</span> (al_get_next_event(<a class="code" href="class_keyboard_handler.html#a44116ed8745f3a3360e1d7c29ea86d56" title="Queue for all keyboard events.">_keyboardEvents</a>, &amp;event))
+<a name="l00053"></a>00053 {
+<a name="l00054"></a>00054 <span class="keywordflow">if</span> (event.type==ALLEGRO_EVENT_KEY_DOWN)
+<a name="l00055"></a>00055 {
+<a name="l00056"></a>00056 <span class="keywordflow">switch</span> (event.keyboard.keycode)
+<a name="l00057"></a>00057 {
+<a name="l00058"></a>00058 <span class="keywordflow">case</span> <a class="code" href="class_keyboard_handler.html#a3ed342ff89f15b752a9957fd435e9094" title="Key that must be pressed to turn up.">UP_KEY</a>:
+<a name="l00059"></a>00059 <a class="code" href="class_keyboard_handler.html#ad323844aad47f1bc263ec2fd4a19ac3a" title="True if the up arrow key is depressed.">_up</a> = <span class="keyword">true</span>;
+<a name="l00060"></a>00060 <span class="keywordflow">break</span>;
+<a name="l00061"></a>00061 <span class="keywordflow">case</span> <a class="code" href="class_keyboard_handler.html#a3d8d985fdc3c3ac543e84647967f78e4" title="Key that must be pressed to turn down.">DOWN_KEY</a>:
+<a name="l00062"></a>00062 <a class="code" href="class_keyboard_handler.html#aa6d1c75e1a98d4aae96d8ac1c8aaa539" title="True if the down arrow key is depressed.">_down</a> = <span class="keyword">true</span>;
+<a name="l00063"></a>00063 <span class="keywordflow">break</span>;
+<a name="l00064"></a>00064 <span class="keywordflow">case</span> <a class="code" href="class_keyboard_handler.html#ab285a229f4f5c7c1be5504fdb629e10a" title="Key that must be pressed to turn left.">LEFT_KEY</a>:
+<a name="l00065"></a>00065 <a class="code" href="class_keyboard_handler.html#a3bc780470d7cbaf9f4ea239e0613ce3c" title="True if the left arrow key is depressed.">_left</a> = <span class="keyword">true</span>;
+<a name="l00066"></a>00066 <span class="keywordflow">break</span>;
+<a name="l00067"></a>00067 <span class="keywordflow">case</span> <a class="code" href="class_keyboard_handler.html#a0822e8b6338b01cb09d08589d778af86" title="Key that must be pressed to turn right.">RIGHT_KEY</a>:
+<a name="l00068"></a>00068 <a class="code" href="class_keyboard_handler.html#a81d37831d958ff21c2ce08cfa97ca420" title="True if the right arrow key is depressed.">_right</a> = <span class="keyword">true</span>;
+<a name="l00069"></a>00069 <span class="keywordflow">break</span>;
+<a name="l00070"></a>00070 <span class="keywordflow">case</span> <a class="code" href="class_keyboard_handler.html#a2de5780311975180c0b78e7b0457eae1" title="Key that must be pressed to create a smokescreen.">SMOKESCREEN_KEY</a>:
+<a name="l00071"></a>00071 <a class="code" href="class_keyboard_handler.html#a7769dc815c493fb5962d52c3d5bc7b16" title="True if the smokescreen key is depressed.">_smokescreen</a> = <span class="keyword">true</span>;
+<a name="l00072"></a>00072 <span class="keywordflow">break</span>;
+<a name="l00073"></a>00073 }
+<a name="l00074"></a>00074 }
+<a name="l00075"></a>00075 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (event.type==ALLEGRO_EVENT_KEY_UP)
+<a name="l00076"></a>00076 {
+<a name="l00077"></a>00077 <span class="keywordflow">switch</span> (event.keyboard.keycode)
+<a name="l00078"></a>00078 {
+<a name="l00079"></a>00079 <span class="keywordflow">case</span> <a class="code" href="class_keyboard_handler.html#a3ed342ff89f15b752a9957fd435e9094" title="Key that must be pressed to turn up.">UP_KEY</a>:
+<a name="l00080"></a>00080 <a class="code" href="class_keyboard_handler.html#ad323844aad47f1bc263ec2fd4a19ac3a" title="True if the up arrow key is depressed.">_up</a> = <span class="keyword">false</span>;
+<a name="l00081"></a>00081 <span class="keywordflow">break</span>;
+<a name="l00082"></a>00082 <span class="keywordflow">case</span> <a class="code" href="class_keyboard_handler.html#a3d8d985fdc3c3ac543e84647967f78e4" title="Key that must be pressed to turn down.">DOWN_KEY</a>:
+<a name="l00083"></a>00083 <a class="code" href="class_keyboard_handler.html#aa6d1c75e1a98d4aae96d8ac1c8aaa539" title="True if the down arrow key is depressed.">_down</a> = <span class="keyword">false</span>;
+<a name="l00084"></a>00084 <span class="keywordflow">break</span>;
+<a name="l00085"></a>00085 <span class="keywordflow">case</span> <a class="code" href="class_keyboard_handler.html#ab285a229f4f5c7c1be5504fdb629e10a" title="Key that must be pressed to turn left.">LEFT_KEY</a>:
+<a name="l00086"></a>00086 <a class="code" href="class_keyboard_handler.html#a3bc780470d7cbaf9f4ea239e0613ce3c" title="True if the left arrow key is depressed.">_left</a> = <span class="keyword">false</span>;
+<a name="l00087"></a>00087 <span class="keywordflow">break</span>;
+<a name="l00088"></a>00088 <span class="keywordflow">case</span> <a class="code" href="class_keyboard_handler.html#a0822e8b6338b01cb09d08589d778af86" title="Key that must be pressed to turn right.">RIGHT_KEY</a>:
+<a name="l00089"></a>00089 <a class="code" href="class_keyboard_handler.html#a81d37831d958ff21c2ce08cfa97ca420" title="True if the right arrow key is depressed.">_right</a> = <span class="keyword">false</span>;
+<a name="l00090"></a>00090 <span class="keywordflow">break</span>;
+<a name="l00091"></a>00091 <span class="keywordflow">case</span> <a class="code" href="class_keyboard_handler.html#a2de5780311975180c0b78e7b0457eae1" title="Key that must be pressed to create a smokescreen.">SMOKESCREEN_KEY</a>:
+<a name="l00092"></a>00092 <a class="code" href="class_keyboard_handler.html#a7769dc815c493fb5962d52c3d5bc7b16" title="True if the smokescreen key is depressed.">_smokescreen</a> = <span class="keyword">false</span>;
+<a name="l00093"></a>00093 <span class="keywordflow">break</span>;
+<a name="l00094"></a>00094 }
+<a name="l00095"></a>00095 }
+<a name="l00096"></a>00096 }
+<a name="l00097"></a>00097 }
+<a name="l00098"></a>00098
+<a name="l00099"></a><a class="code" href="class_keyboard_handler.html#ae17ed4bf0abae7d95f9b772a6d704a70">00099</a> <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f" title="Defines the directions in which movement can happen in the maze.">Maze::Direction</a> <a class="code" href="class_keyboard_handler.html#ae17ed4bf0abae7d95f9b772a6d704a70" title="Gives the last direction that the player entered on the keyboard.">KeyboardHandler::getFacing</a>()
+<a name="l00100"></a>00100 {
+<a name="l00101"></a>00101 <a class="code" href="class_keyboard_handler.html#a9f53a546420f3d02363c9e1e4e346420" title="Processes all pending keyboard inputs, and updates flags as appropriate.">updateFlags</a>();
+<a name="l00102"></a>00102
+<a name="l00103"></a>00103 <span class="keywordflow">if</span> (<a class="code" href="class_keyboard_handler.html#ad323844aad47f1bc263ec2fd4a19ac3a" title="True if the up arrow key is depressed.">_up</a>) <a class="code" href="class_keyboard_handler.html#a90120a85c62481b3a2c0330511cffbac" title="The direction that was returned on the last call of getFacing.">_previousFacing</a> = <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7">Maze::UP</a>;
+<a name="l00104"></a>00104 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_keyboard_handler.html#aa6d1c75e1a98d4aae96d8ac1c8aaa539" title="True if the down arrow key is depressed.">_down</a>) <a class="code" href="class_keyboard_handler.html#a90120a85c62481b3a2c0330511cffbac" title="The direction that was returned on the last call of getFacing.">_previousFacing</a> = <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa89ab143d020541957ab5e0e9cfdd3e23">Maze::DOWN</a>;
+<a name="l00105"></a>00105 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_keyboard_handler.html#a3bc780470d7cbaf9f4ea239e0613ce3c" title="True if the left arrow key is depressed.">_left</a>) <a class="code" href="class_keyboard_handler.html#a90120a85c62481b3a2c0330511cffbac" title="The direction that was returned on the last call of getFacing.">_previousFacing</a> = <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28faab1a1fe0274cd139b3c0116d8caf458c">Maze::LEFT</a>;
+<a name="l00106"></a>00106 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_keyboard_handler.html#a81d37831d958ff21c2ce08cfa97ca420" title="True if the right arrow key is depressed.">_right</a>) <a class="code" href="class_keyboard_handler.html#a90120a85c62481b3a2c0330511cffbac" title="The direction that was returned on the last call of getFacing.">_previousFacing</a> = <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa699ae3e1d989e9b12bd200aa86e29e9d">Maze::RIGHT</a>;
+<a name="l00107"></a>00107
+<a name="l00108"></a>00108 <span class="keywordflow">return</span> <a class="code" href="class_keyboard_handler.html#a90120a85c62481b3a2c0330511cffbac" title="The direction that was returned on the last call of getFacing.">_previousFacing</a>;
+<a name="l00109"></a>00109 }
+<a name="l00110"></a>00110
+<a name="l00111"></a><a class="code" href="class_keyboard_handler.html#ab66797a37a1c54a630187519870d9a5b">00111</a> <span class="keywordtype">bool</span> <a class="code" href="class_keyboard_handler.html#ab66797a37a1c54a630187519870d9a5b" title="Gives whether or not the key for creating a Smokescreen is currently pressed.">KeyboardHandler::getSmokescreen</a>()
+<a name="l00112"></a>00112 {
+<a name="l00113"></a>00113 <span class="keywordflow">return</span> <a class="code" href="class_keyboard_handler.html#a7769dc815c493fb5962d52c3d5bc7b16" title="True if the smokescreen key is depressed.">_smokescreen</a>;
+<a name="l00114"></a>00114 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_keyboard_handler_8h.html b/docs/html/_keyboard_handler_8h.html
new file mode 100644
index 0000000..e4d6017
--- /dev/null
+++ b/docs/html/_keyboard_handler_8h.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/KeyboardHandler.h File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">source/presentation/KeyboardHandler.h File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &lt;allegro5/allegro.h&gt;</code><br/>
+<code>#include &quot;../logic/Maze.h&quot;</code><br/>
+<code>#include &quot;../logic/AllegroWrappers.h&quot;</code><br/>
+</div>
+<p><a href="_keyboard_handler_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Class for handling keyboard related game inputs from the player. <a href="class_keyboard_handler.html#details">More...</a><br/></td></tr>
+</table>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_keyboard_handler_8h_source.html b/docs/html/_keyboard_handler_8h_source.html
new file mode 100644
index 0000000..1764633
--- /dev/null
+++ b/docs/html/_keyboard_handler_8h_source.html
@@ -0,0 +1,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/KeyboardHandler.h Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/presentation/KeyboardHandler.h</div> </div>
+</div>
+<div class="contents">
+<a href="_keyboard_handler_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef KEYBOARDHANDLER_H</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define KEYBOARDHANDLER_H</span>
+<a name="l00003"></a>00003 <span class="preprocessor"></span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;allegro5/allegro.h&gt;</span>
+<a name="l00005"></a>00005
+<a name="l00006"></a>00006 <span class="preprocessor">#include &quot;../logic/Maze.h&quot;</span>
+<a name="l00007"></a>00007 <span class="preprocessor">#include &quot;../logic/AllegroWrappers.h&quot;</span>
+<a name="l00008"></a>00008
+<a name="l00019"></a><a class="code" href="class_keyboard_handler.html">00019</a> <span class="keyword">class </span><a class="code" href="class_keyboard_handler.html" title="Class for handling keyboard related game inputs from the player.">KeyboardHandler</a>
+<a name="l00020"></a>00020 {
+<a name="l00021"></a>00021 <span class="keyword">public</span>:
+<a name="l00027"></a>00027 <a class="code" href="class_keyboard_handler.html#acd0d5781016f792207464bb720d2f994" title="Creates a KeyboardHandler with a given initial state.">KeyboardHandler</a>(<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f" title="Defines the directions in which movement can happen in the maze.">Maze::Direction</a> currentFacing);
+<a name="l00031"></a>00031 <a class="code" href="class_keyboard_handler.html#acd0d5781016f792207464bb720d2f994" title="Creates a KeyboardHandler with a given initial state.">KeyboardHandler</a>(<span class="keyword">const</span> <a class="code" href="class_keyboard_handler.html" title="Class for handling keyboard related game inputs from the player.">KeyboardHandler</a>&amp; ref);
+<a name="l00035"></a>00035 <a class="code" href="class_keyboard_handler.html" title="Class for handling keyboard related game inputs from the player.">KeyboardHandler</a>&amp; <a class="code" href="class_keyboard_handler.html#a5135c450b82394496457a0a51d5240f5" title="Assignment operator that ensures that an assigned KeyboardHandler will have its own event queue...">operator=</a>(<span class="keyword">const</span> <a class="code" href="class_keyboard_handler.html" title="Class for handling keyboard related game inputs from the player.">KeyboardHandler</a>&amp; rhs);
+<a name="l00039"></a>00039 <a class="code" href="class_keyboard_handler.html#ab090fe5afdee856604b0aa0d9eb918a4" title="Cleans up the keyboard event queue.">~KeyboardHandler</a>();
+<a name="l00040"></a>00040
+<a name="l00051"></a>00051 <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f" title="Defines the directions in which movement can happen in the maze.">Maze::Direction</a> <a class="code" href="class_keyboard_handler.html#ae17ed4bf0abae7d95f9b772a6d704a70" title="Gives the last direction that the player entered on the keyboard.">getFacing</a>();
+<a name="l00052"></a>00052
+<a name="l00058"></a>00058 <span class="keywordtype">bool</span> <a class="code" href="class_keyboard_handler.html#ab66797a37a1c54a630187519870d9a5b" title="Gives whether or not the key for creating a Smokescreen is currently pressed.">getSmokescreen</a>();
+<a name="l00059"></a>00059
+<a name="l00060"></a>00060 <span class="keyword">private</span>:
+<a name="l00061"></a><a class="code" href="class_keyboard_handler.html#a0ec33ec0de48e563e9137294fb7577da">00061</a> <a class="code" href="class_allegro_keyboard_init.html" title="Class ensures that Allegro&#39;s keyboard is installed and uninstalled when appropriate.">AllegroKeyboardInit</a> <a class="code" href="class_keyboard_handler.html#a0ec33ec0de48e563e9137294fb7577da" title="Ensures that dependencies on the Allegro keyboard library are installed.">_keyboard</a>;
+<a name="l00062"></a>00062
+<a name="l00066"></a>00066 <span class="keywordtype">void</span> <a class="code" href="class_keyboard_handler.html#a9f53a546420f3d02363c9e1e4e346420" title="Processes all pending keyboard inputs, and updates flags as appropriate.">updateFlags</a>();
+<a name="l00067"></a>00067
+<a name="l00068"></a><a class="code" href="class_keyboard_handler.html#ad323844aad47f1bc263ec2fd4a19ac3a">00068</a> <span class="keywordtype">bool</span> <a class="code" href="class_keyboard_handler.html#ad323844aad47f1bc263ec2fd4a19ac3a" title="True if the up arrow key is depressed.">_up</a>;
+<a name="l00069"></a><a class="code" href="class_keyboard_handler.html#aa6d1c75e1a98d4aae96d8ac1c8aaa539">00069</a> <span class="keywordtype">bool</span> <a class="code" href="class_keyboard_handler.html#aa6d1c75e1a98d4aae96d8ac1c8aaa539" title="True if the down arrow key is depressed.">_down</a>;
+<a name="l00070"></a><a class="code" href="class_keyboard_handler.html#a3bc780470d7cbaf9f4ea239e0613ce3c">00070</a> <span class="keywordtype">bool</span> <a class="code" href="class_keyboard_handler.html#a3bc780470d7cbaf9f4ea239e0613ce3c" title="True if the left arrow key is depressed.">_left</a>;
+<a name="l00071"></a><a class="code" href="class_keyboard_handler.html#a81d37831d958ff21c2ce08cfa97ca420">00071</a> <span class="keywordtype">bool</span> <a class="code" href="class_keyboard_handler.html#a81d37831d958ff21c2ce08cfa97ca420" title="True if the right arrow key is depressed.">_right</a>;
+<a name="l00072"></a><a class="code" href="class_keyboard_handler.html#a7769dc815c493fb5962d52c3d5bc7b16">00072</a> <span class="keywordtype">bool</span> <a class="code" href="class_keyboard_handler.html#a7769dc815c493fb5962d52c3d5bc7b16" title="True if the smokescreen key is depressed.">_smokescreen</a>;
+<a name="l00073"></a><a class="code" href="class_keyboard_handler.html#a90120a85c62481b3a2c0330511cffbac">00073</a> <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f" title="Defines the directions in which movement can happen in the maze.">Maze::Direction</a> <a class="code" href="class_keyboard_handler.html#a90120a85c62481b3a2c0330511cffbac" title="The direction that was returned on the last call of getFacing.">_previousFacing</a>;
+<a name="l00074"></a><a class="code" href="class_keyboard_handler.html#a44116ed8745f3a3360e1d7c29ea86d56">00074</a> ALLEGRO_EVENT_QUEUE* <a class="code" href="class_keyboard_handler.html#a44116ed8745f3a3360e1d7c29ea86d56" title="Queue for all keyboard events.">_keyboardEvents</a>;
+<a name="l00075"></a>00075
+<a name="l00076"></a><a class="code" href="class_keyboard_handler.html#a3ed342ff89f15b752a9957fd435e9094">00076</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="class_keyboard_handler.html#a3ed342ff89f15b752a9957fd435e9094" title="Key that must be pressed to turn up.">UP_KEY</a> = ALLEGRO_KEY_UP;
+<a name="l00077"></a><a class="code" href="class_keyboard_handler.html#a3d8d985fdc3c3ac543e84647967f78e4">00077</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="class_keyboard_handler.html#a3d8d985fdc3c3ac543e84647967f78e4" title="Key that must be pressed to turn down.">DOWN_KEY</a> = ALLEGRO_KEY_DOWN;
+<a name="l00078"></a><a class="code" href="class_keyboard_handler.html#ab285a229f4f5c7c1be5504fdb629e10a">00078</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="class_keyboard_handler.html#ab285a229f4f5c7c1be5504fdb629e10a" title="Key that must be pressed to turn left.">LEFT_KEY</a> = ALLEGRO_KEY_LEFT;
+<a name="l00079"></a><a class="code" href="class_keyboard_handler.html#a0822e8b6338b01cb09d08589d778af86">00079</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="class_keyboard_handler.html#a0822e8b6338b01cb09d08589d778af86" title="Key that must be pressed to turn right.">RIGHT_KEY</a> = ALLEGRO_KEY_RIGHT;
+<a name="l00080"></a><a class="code" href="class_keyboard_handler.html#a2de5780311975180c0b78e7b0457eae1">00080</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="class_keyboard_handler.html#a2de5780311975180c0b78e7b0457eae1" title="Key that must be pressed to create a smokescreen.">SMOKESCREEN_KEY</a> = ALLEGRO_KEY_SPACE;
+<a name="l00081"></a>00081 };
+<a name="l00082"></a>00082
+<a name="l00083"></a>00083 <span class="preprocessor">#endif // KEYBOARDHANDLER_H</span>
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_level_reader_8cpp.html b/docs/html/_level_reader_8cpp.html
new file mode 100644
index 0000000..92758bd
--- /dev/null
+++ b/docs/html/_level_reader_8cpp.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/data/LevelReader.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/data/LevelReader.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_level_reader_8h_source.html">LevelReader.h</a>&quot;</code><br/>
+</div>
+<p><a href="_level_reader_8cpp_source.html">Go to the source code of this file.</a></p>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_level_reader_8cpp_source.html b/docs/html/_level_reader_8cpp_source.html
new file mode 100644
index 0000000..f06bb16
--- /dev/null
+++ b/docs/html/_level_reader_8cpp_source.html
@@ -0,0 +1,161 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/data/LevelReader.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/data/LevelReader.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="_level_reader_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &quot;<a class="code" href="_level_reader_8h.html">LevelReader.h</a>&quot;</span>
+<a name="l00002"></a>00002
+<a name="l00003"></a><a class="code" href="class_level_reader.html#ad093a54f9753a22dd66748b82a08c1fd">00003</a> <a class="code" href="class_level_reader.html#ad093a54f9753a22dd66748b82a08c1fd" title="Constructor that stores the path of the file containing the level to be read with the readLevel funct...">LevelReader::LevelReader</a>(<span class="keywordtype">string</span> filename)
+<a name="l00004"></a>00004 :_filename(filename)
+<a name="l00005"></a>00005 {}
+<a name="l00006"></a>00006
+<a name="l00007"></a><a class="code" href="class_level_reader.html#a27277149f3270e040c8ffeadbca79758">00007</a> <span class="keywordtype">void</span> <a class="code" href="class_level_reader.html#a27277149f3270e040c8ffeadbca79758" title="Function to read the chosen file into the data structures used in the game.">LevelReader::readLevel</a>(<a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>&amp; maze, list&lt;PlayerCar&gt;&amp; players, list&lt;EnemyCar&gt;&amp; enemies, list&lt;Checkpoint&gt;&amp; checkpoints, list&lt;Rock&gt;&amp; rocks)
+<a name="l00008"></a>00008 {
+<a name="l00009"></a>00009 ifstream file(<a class="code" href="class_level_reader.html#a233910d4cd16ff624d76b06ca8071f7e" title="Path of the file containing the level.">_filename</a>.c_str());
+<a name="l00010"></a>00010 <span class="keywordflow">if</span> (!file)
+<a name="l00011"></a>00011 {
+<a name="l00012"></a>00012 al_show_native_message_box(NULL, <span class="stringliteral">&quot;Fatal error&quot;</span>, <span class="stringliteral">&quot;Fatal error&quot;</span>, <span class="stringliteral">&quot;The requested level file could not be opened.&quot;</span>, NULL, ALLEGRO_MESSAGEBOX_ERROR);
+<a name="l00013"></a>00013 <span class="keywordflow">throw</span> <a class="code" href="class_file_open_error.html" title="An exception that is thrown if the file selected for opening does not exist.">FileOpenError</a>();
+<a name="l00014"></a>00014 }
+<a name="l00015"></a>00015
+<a name="l00016"></a>00016 <span class="keywordtype">int</span> maxX = 0;
+<a name="l00017"></a>00017 <span class="keywordtype">int</span> maxY = 0;
+<a name="l00018"></a>00018
+<a name="l00019"></a>00019 <span class="keywordtype">string</span> line;
+<a name="l00020"></a>00020 <span class="keywordtype">char</span> element;
+<a name="l00021"></a>00021 <span class="keywordtype">int</span> y = 0;
+<a name="l00022"></a>00022 vector &lt;pair&lt;int, int&gt; &gt; walls;
+<a name="l00023"></a>00023
+<a name="l00024"></a>00024 <span class="keywordflow">while</span> (!file.eof())
+<a name="l00025"></a>00025 {
+<a name="l00026"></a>00026 getline (file, line);
+<a name="l00027"></a>00027
+<a name="l00028"></a>00028 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x = 0; x &lt; static_cast&lt;int&gt;(line.length()); ++x)
+<a name="l00029"></a>00029 {
+<a name="l00030"></a>00030 element = line.at(x);
+<a name="l00031"></a>00031 <span class="keywordflow">switch</span> (element)
+<a name="l00032"></a>00032 {
+<a name="l00033"></a>00033 <span class="keywordflow">case</span> <a class="code" href="class_level_reader.html#a8de3d894f4e67a7a0f66f6dfc3a7fbe1" title="Character represented a PlayerCar in the level file.">PLAYER_CHAR</a>: players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(x,y));
+<a name="l00034"></a>00034 <span class="keywordflow">break</span>;
+<a name="l00035"></a>00035 <span class="keywordflow">case</span> <a class="code" href="class_level_reader.html#a67d3735d6a3e40fa61527dd1ff7cfa22" title="Character represented an EnemyCar in the level file.">ENEMY_CHAR</a>: enemies.push_back (<a class="code" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>(x,y));
+<a name="l00036"></a>00036 <span class="keywordflow">break</span>;
+<a name="l00037"></a>00037 <span class="keywordflow">case</span> <a class="code" href="class_level_reader.html#ad401a0f48a3eac678c0f53e95ea1f354" title="Character represented a Checkpoint in the level file.">CHECKPOINT_CHAR</a>: checkpoints.push_back(<a class="code" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>(x,y));
+<a name="l00038"></a>00038 <span class="keywordflow">break</span>;
+<a name="l00039"></a>00039 <span class="keywordflow">case</span> <a class="code" href="class_level_reader.html#a321a0fcc5a9ae36a394782be4c71bd7d" title="Character represented a Rock in the level file.">ROCK_CHAR</a>: rocks.push_back(<a class="code" href="class_rock.html" title="A game object that acts as an obstacle to the player.">Rock</a>(x,y));
+<a name="l00040"></a>00040 <span class="keywordflow">break</span>;
+<a name="l00041"></a>00041 <span class="keywordflow">case</span> <a class="code" href="class_level_reader.html#a250f9fede6584dc196acce86a8e217f9" title="Character represented a solid part of the maze in the level file.">WALL_CHAR</a>: walls.push_back (make_pair(x,y));
+<a name="l00042"></a>00042 <span class="keywordflow">break</span>;
+<a name="l00043"></a>00043 }
+<a name="l00044"></a>00044 <span class="keywordflow">if</span> (maxX &lt; x) maxX = x;
+<a name="l00045"></a>00045 <span class="keywordflow">if</span> (maxY &lt; y) maxY = y;
+<a name="l00046"></a>00046 }
+<a name="l00047"></a>00047
+<a name="l00048"></a>00048 ++y;
+<a name="l00049"></a>00049 }
+<a name="l00050"></a>00050
+<a name="l00051"></a>00051 maze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a> (walls, maxX, maxY);
+<a name="l00052"></a>00052
+<a name="l00053"></a>00053 file.close();
+<a name="l00054"></a>00054 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_level_reader_8h.html b/docs/html/_level_reader_8h.html
new file mode 100644
index 0000000..5c3bbab
--- /dev/null
+++ b/docs/html/_level_reader_8h.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/data/LevelReader.h File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">source/data/LevelReader.h File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &lt;vector&gt;</code><br/>
+<code>#include &lt;list&gt;</code><br/>
+<code>#include &lt;string&gt;</code><br/>
+<code>#include &lt;fstream&gt;</code><br/>
+<code>#include &lt;allegro5/allegro_native_dialog.h&gt;</code><br/>
+<code>#include &quot;../logic/Maze.h&quot;</code><br/>
+<code>#include &quot;../logic/PlayerCar.h&quot;</code><br/>
+<code>#include &quot;../logic/EnemyCar.h&quot;</code><br/>
+<code>#include &quot;../logic/Checkpoint.h&quot;</code><br/>
+<code>#include &quot;../logic/Rock.h&quot;</code><br/>
+</div>
+<p><a href="_level_reader_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_file_open_error.html">FileOpenError</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">An exception that is thrown if the file selected for opening does not exist. <a href="class_file_open_error.html#details">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_level_reader.html">LevelReader</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the game objects from a text file and calls relevant constructors. <a href="class_level_reader.html#details">More...</a><br/></td></tr>
+</table>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_level_reader_8h_source.html b/docs/html/_level_reader_8h_source.html
new file mode 100644
index 0000000..6f76b60
--- /dev/null
+++ b/docs/html/_level_reader_8h_source.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/data/LevelReader.h Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/data/LevelReader.h</div> </div>
+</div>
+<div class="contents">
+<a href="_level_reader_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef MAZEREADER_H</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define MAZEREADER_H</span>
+<a name="l00003"></a>00003 <span class="preprocessor"></span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;vector&gt;</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include &lt;list&gt;</span>
+<a name="l00006"></a>00006 <span class="preprocessor">#include &lt;string&gt;</span>
+<a name="l00007"></a>00007 <span class="preprocessor">#include &lt;fstream&gt;</span>
+<a name="l00008"></a>00008 <span class="keyword">using namespace </span>std;
+<a name="l00009"></a>00009
+<a name="l00010"></a>00010 <span class="preprocessor">#include &lt;allegro5/allegro_native_dialog.h&gt;</span>
+<a name="l00011"></a>00011
+<a name="l00012"></a>00012 <span class="preprocessor">#include &quot;../logic/Maze.h&quot;</span>
+<a name="l00013"></a>00013 <span class="preprocessor">#include &quot;../logic/PlayerCar.h&quot;</span>
+<a name="l00014"></a>00014 <span class="preprocessor">#include &quot;../logic/EnemyCar.h&quot;</span>
+<a name="l00015"></a>00015 <span class="preprocessor">#include &quot;../logic/Checkpoint.h&quot;</span>
+<a name="l00016"></a>00016 <span class="preprocessor">#include &quot;../logic/Rock.h&quot;</span>
+<a name="l00017"></a>00017
+<a name="l00027"></a><a class="code" href="class_file_open_error.html">00027</a> <span class="keyword">class </span><a class="code" href="class_file_open_error.html" title="An exception that is thrown if the file selected for opening does not exist.">FileOpenError</a>{};
+<a name="l00028"></a>00028
+<a name="l00035"></a><a class="code" href="class_level_reader.html">00035</a> <span class="keyword">class </span><a class="code" href="class_level_reader.html" title="Reads the game objects from a text file and calls relevant constructors.">LevelReader</a>
+<a name="l00036"></a>00036 {
+<a name="l00037"></a>00037 <span class="keyword">public</span>:
+<a name="l00043"></a>00043 <a class="code" href="class_level_reader.html" title="Reads the game objects from a text file and calls relevant constructors.">LevelReader</a>(<span class="keywordtype">string</span> filename);
+<a name="l00044"></a>00044
+<a name="l00045"></a>00045 <span class="comment">//Assignment and copy operations are handled by the compiler generated versions</span>
+<a name="l00046"></a>00046
+<a name="l00059"></a>00059 <span class="keywordtype">void</span> readLevel(<a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>&amp; maze, list&lt;PlayerCar&gt;&amp; players, list&lt;EnemyCar&gt;&amp; enemies, list&lt;Checkpoint&gt;&amp; checkpoints, list&lt;Rock&gt;&amp; rocks);
+<a name="l00060"></a>00060
+<a name="l00061"></a>00061 <span class="keyword">private</span>:
+<a name="l00062"></a><a class="code" href="class_level_reader.html#a8de3d894f4e67a7a0f66f6dfc3a7fbe1">00062</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> PLAYER_CHAR = <span class="charliteral">&#39;@&#39;</span>;
+<a name="l00063"></a><a class="code" href="class_level_reader.html#a67d3735d6a3e40fa61527dd1ff7cfa22">00063</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> ENEMY_CHAR = <span class="charliteral">&#39;X&#39;</span>;
+<a name="l00064"></a><a class="code" href="class_level_reader.html#ad401a0f48a3eac678c0f53e95ea1f354">00064</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> CHECKPOINT_CHAR = <span class="charliteral">&#39;P&#39;</span>;
+<a name="l00065"></a><a class="code" href="class_level_reader.html#a321a0fcc5a9ae36a394782be4c71bd7d">00065</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> ROCK_CHAR = <span class="charliteral">&#39;O&#39;</span>;
+<a name="l00066"></a><a class="code" href="class_level_reader.html#a250f9fede6584dc196acce86a8e217f9">00066</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> WALL_CHAR = <span class="charliteral">&#39;#&#39;</span>;
+<a name="l00067"></a>00067
+<a name="l00068"></a><a class="code" href="class_level_reader.html#a233910d4cd16ff624d76b06ca8071f7e">00068</a> <span class="keywordtype">string</span> <a class="code" href="class_level_reader.html#a233910d4cd16ff624d76b06ca8071f7e" title="Path of the file containing the level.">_filename</a>;
+<a name="l00069"></a>00069 };
+<a name="l00070"></a>00070
+<a name="l00071"></a>00071 <span class="preprocessor">#endif // MAZEREADER_H</span>
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_limited_time_object_8cpp.html b/docs/html/_limited_time_object_8cpp.html
new file mode 100644
index 0000000..ee23b88
--- /dev/null
+++ b/docs/html/_limited_time_object_8cpp.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/LimitedTimeObject.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/LimitedTimeObject.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_limited_time_object_8h_source.html">LimitedTimeObject.h</a>&quot;</code><br/>
+</div>
+<p><a href="_limited_time_object_8cpp_source.html">Go to the source code of this file.</a></p>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_limited_time_object_8cpp_source.html b/docs/html/_limited_time_object_8cpp_source.html
new file mode 100644
index 0000000..78c0425
--- /dev/null
+++ b/docs/html/_limited_time_object_8cpp_source.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/LimitedTimeObject.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/LimitedTimeObject.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="_limited_time_object_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &quot;<a class="code" href="_limited_time_object_8h.html">LimitedTimeObject.h</a>&quot;</span>
+<a name="l00002"></a>00002
+<a name="l00003"></a><a class="code" href="class_limited_time_object.html#a0993f1696ed62abc3ef7856e4da7ae0e">00003</a> <a class="code" href="class_limited_time_object.html#a0993f1696ed62abc3ef7856e4da7ae0e" title="Creates a LimitedTimeObject with the given parameters.">LimitedTimeObject::LimitedTimeObject</a>(<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386" title="Type used to define which image should be returned.">BitmapStore::Image</a> image, <span class="keywordtype">int</span> time)
+<a name="l00004"></a>00004 :<a class="code" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a>(x,y,image),
+<a name="l00005"></a>00005 _remainingTime(time)
+<a name="l00006"></a>00006 {
+<a name="l00007"></a>00007 }
+<a name="l00008"></a>00008
+<a name="l00009"></a><a class="code" href="class_limited_time_object.html#ad81a1c9aba4e21dfa40b9e6d881aba4e">00009</a> <span class="keywordtype">void</span> <a class="code" href="class_limited_time_object.html#ad81a1c9aba4e21dfa40b9e6d881aba4e" title="Function that should be run on every iteration of the gameloop.">LimitedTimeObject::update</a>()
+<a name="l00010"></a>00010 {
+<a name="l00011"></a>00011 --<a class="code" href="class_limited_time_object.html#a0b6a4bb0c76b637fba1db498ce084d3a" title="The number of times that update still needs to be run before the object is marked for destruction...">_remainingTime</a>;
+<a name="l00012"></a>00012 <span class="keywordflow">if</span> (<a class="code" href="class_limited_time_object.html#a0b6a4bb0c76b637fba1db498ce084d3a" title="The number of times that update still needs to be run before the object is marked for destruction...">_remainingTime</a>&lt;=0)
+<a name="l00013"></a>00013 {
+<a name="l00014"></a>00014 <a class="code" href="class_game_object.html#adc4a399cc59d5706f75748fb3846faec" title="True if the object has been marked for destruction.">_destroyed</a> = <span class="keyword">true</span>;
+<a name="l00015"></a>00015 }
+<a name="l00016"></a>00016 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_limited_time_object_8h.html b/docs/html/_limited_time_object_8h.html
new file mode 100644
index 0000000..c0acfab
--- /dev/null
+++ b/docs/html/_limited_time_object_8h.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/LimitedTimeObject.h File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">source/logic/LimitedTimeObject.h File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;../logic/GameObject.h&quot;</code><br/>
+<code>#include &quot;../logic/Maze.h&quot;</code><br/>
+<code>#include &quot;../presentation/BitmapStore.h&quot;</code><br/>
+</div>
+<p><a href="_limited_time_object_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_limited_time_object.html">LimitedTimeObject</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Parent class for GameObjects that are created, exist for a given time, and are then destroyed. <a href="class_limited_time_object.html#details">More...</a><br/></td></tr>
+</table>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_limited_time_object_8h_source.html b/docs/html/_limited_time_object_8h_source.html
new file mode 100644
index 0000000..586bdc0
--- /dev/null
+++ b/docs/html/_limited_time_object_8h_source.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/LimitedTimeObject.h Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/LimitedTimeObject.h</div> </div>
+</div>
+<div class="contents">
+<a href="_limited_time_object_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef LIMITEDTIMEOBJECT_H</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define LIMITEDTIMEOBJECT_H</span>
+<a name="l00003"></a>00003 <span class="preprocessor"></span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include &quot;../logic/GameObject.h&quot;</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include &quot;../logic/Maze.h&quot;</span>
+<a name="l00006"></a>00006 <span class="preprocessor">#include &quot;../presentation/BitmapStore.h&quot;</span>
+<a name="l00007"></a>00007
+<a name="l00014"></a><a class="code" href="class_limited_time_object.html">00014</a> <span class="keyword">class </span><a class="code" href="class_limited_time_object.html" title="Parent class for GameObjects that are created, exist for a given time, and are then destroyed...">LimitedTimeObject</a>: <span class="keyword">public</span> <a class="code" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a>
+<a name="l00015"></a>00015 {
+<a name="l00016"></a>00016 <span class="keyword">public</span>:
+<a name="l00025"></a>00025 <a class="code" href="class_limited_time_object.html#a0993f1696ed62abc3ef7856e4da7ae0e" title="Creates a LimitedTimeObject with the given parameters.">LimitedTimeObject</a>(<span class="keywordtype">double</span> <a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>, <span class="keywordtype">double</span> <a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>, <a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386" title="Type used to define which image should be returned.">BitmapStore::Image</a> <a class="code" href="class_game_object.html#a05e352e3e01e774892beee0503fdb349" title="Provides access to the image that should be drawn to represent the object.">image</a>, <span class="keywordtype">int</span> time);
+<a name="l00026"></a>00026
+<a name="l00027"></a>00027 <span class="comment">//assignment and copy constructors have been left with the compiler generated versions</span>
+<a name="l00028"></a>00028
+<a name="l00034"></a>00034 <span class="keywordtype">void</span> <a class="code" href="class_limited_time_object.html#ad81a1c9aba4e21dfa40b9e6d881aba4e" title="Function that should be run on every iteration of the gameloop.">update</a>();
+<a name="l00035"></a>00035
+<a name="l00036"></a>00036 <span class="keyword">private</span>:
+<a name="l00042"></a><a class="code" href="class_limited_time_object.html#a0b6a4bb0c76b637fba1db498ce084d3a">00042</a> <span class="keywordtype">int</span> <a class="code" href="class_limited_time_object.html#a0b6a4bb0c76b637fba1db498ce084d3a" title="The number of times that update still needs to be run before the object is marked for destruction...">_remainingTime</a>;
+<a name="l00043"></a>00043 };
+<a name="l00044"></a>00044
+<a name="l00045"></a>00045 <span class="preprocessor">#endif // LIMITEDTIMEOBJECT_H</span>
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_maze_8cpp.html b/docs/html/_maze_8cpp.html
new file mode 100644
index 0000000..89a7600
--- /dev/null
+++ b/docs/html/_maze_8cpp.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/Maze.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/Maze.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_maze_8h_source.html">Maze.h</a>&quot;</code><br/>
+</div>
+<p><a href="_maze_8cpp_source.html">Go to the source code of this file.</a></p>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_maze_8cpp_source.html b/docs/html/_maze_8cpp_source.html
new file mode 100644
index 0000000..fa9de73
--- /dev/null
+++ b/docs/html/_maze_8cpp_source.html
@@ -0,0 +1,184 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/Maze.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/Maze.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="_maze_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &quot;<a class="code" href="_maze_8h.html">Maze.h</a>&quot;</span>
+<a name="l00002"></a>00002
+<a name="l00003"></a><a class="code" href="class_maze.html#a7ecf1da4b9685f97bf3110a8479e724b">00003</a> <a class="code" href="class_maze.html#a7ecf1da4b9685f97bf3110a8479e724b" title="Creates an empty Maze with width and height of zero.">Maze::Maze</a>()
+<a name="l00004"></a>00004 :_width(0),
+<a name="l00005"></a>00005 _height(0)
+<a name="l00006"></a>00006 {
+<a name="l00007"></a>00007 }
+<a name="l00008"></a>00008
+<a name="l00009"></a><a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8">00009</a> <span class="keywordtype">void</span> <a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">Maze::generateMaze</a>(<span class="keyword">const</span> vector&lt;pair&lt;int,int&gt; &gt;&amp; walls, <span class="keywordtype">int</span> maxObjectX, <span class="keywordtype">int</span> maxObjectY)
+<a name="l00010"></a>00010 {
+<a name="l00011"></a>00011 <span class="comment">//find bounds so that rectangular vector can be generated</span>
+<a name="l00012"></a>00012 <span class="keywordtype">int</span> maxX = maxObjectX;
+<a name="l00013"></a>00013 <span class="keywordtype">int</span> maxY = maxObjectY;
+<a name="l00014"></a>00014 <span class="keywordflow">for</span> (vector&lt;pair&lt;int,int&gt; &gt;::const_iterator iter = walls.begin(); iter!=walls.end(); ++iter)
+<a name="l00015"></a>00015 {
+<a name="l00016"></a>00016 <span class="keywordflow">if</span> (iter-&gt;first &gt; maxX) maxX = iter-&gt;first;
+<a name="l00017"></a>00017 <span class="keywordflow">if</span> (iter-&gt;second &gt; maxY) maxY = iter-&gt;second;
+<a name="l00018"></a>00018 }
+<a name="l00019"></a>00019 <a class="code" href="class_maze.html#a981c764d7ad04ca06bd8dee472578ce4" title="The number of blocks in each row.">_width</a> = maxX+1; <span class="comment">//need to convert from highest index to required size</span>
+<a name="l00020"></a>00020 <a class="code" href="class_maze.html#a02f1ff55e76161495bbe11bc4c0e5f54" title="The number of blocks in each column.">_height</a> = maxY+1;
+<a name="l00021"></a>00021
+<a name="l00022"></a>00022
+<a name="l00023"></a>00023 <a class="code" href="class_maze.html#a3f0247841ddb8a6b5b8b5eeff86b754a" title="The 2 dimensional vector that stores the locations of walls.">_wallLocations</a>.clear();
+<a name="l00024"></a>00024
+<a name="l00025"></a>00025 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x=0; x&lt;<a class="code" href="class_maze.html#a981c764d7ad04ca06bd8dee472578ce4" title="The number of blocks in each row.">_width</a>; ++x)
+<a name="l00026"></a>00026 {
+<a name="l00027"></a>00027 <a class="code" href="class_maze.html#a3f0247841ddb8a6b5b8b5eeff86b754a" title="The 2 dimensional vector that stores the locations of walls.">_wallLocations</a>.push_back(vector&lt;bool&gt;());
+<a name="l00028"></a>00028 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> y=0; y&lt;<a class="code" href="class_maze.html#a02f1ff55e76161495bbe11bc4c0e5f54" title="The number of blocks in each column.">_height</a>; ++y)
+<a name="l00029"></a>00029 {
+<a name="l00030"></a>00030 <a class="code" href="class_maze.html#a3f0247841ddb8a6b5b8b5eeff86b754a" title="The 2 dimensional vector that stores the locations of walls.">_wallLocations</a>.back().push_back(<span class="keyword">false</span>);
+<a name="l00031"></a>00031 }
+<a name="l00032"></a>00032 }
+<a name="l00033"></a>00033
+<a name="l00034"></a>00034 <span class="keywordflow">for</span> (vector&lt;pair&lt;int,int&gt; &gt;::const_iterator iter = walls.begin(); iter!=walls.end(); ++iter)
+<a name="l00035"></a>00035 {
+<a name="l00036"></a>00036 <a class="code" href="class_maze.html#a3f0247841ddb8a6b5b8b5eeff86b754a" title="The 2 dimensional vector that stores the locations of walls.">_wallLocations</a>.at(iter-&gt;first).at(iter-&gt;second) = <span class="keyword">true</span>;
+<a name="l00037"></a>00037 }
+<a name="l00038"></a>00038 }
+<a name="l00039"></a>00039
+<a name="l00040"></a><a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1">00040</a> <span class="keywordtype">bool</span> <a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">Maze::getSolid</a>(<span class="keyword">const</span> <span class="keywordtype">int</span>&amp; x, <span class="keyword">const</span> <span class="keywordtype">int</span>&amp; y)<span class="keyword"> const</span>
+<a name="l00041"></a>00041 <span class="keyword"></span>{
+<a name="l00042"></a>00042 <span class="keywordflow">if</span> (x&lt;0 || y&lt;0) <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00043"></a>00043 <span class="keywordflow">if</span> (x&gt;=<a class="code" href="class_maze.html#a6963ffbb8e10f5ca72ddc749b3f29419" title="Provides access to the width of the Maze object.">width</a>() || y&gt;=<a class="code" href="class_maze.html#a53de30abea69713225ab77703e753d81" title="Provides access to the height of the Maze object.">height</a>()) <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00044"></a>00044 <span class="comment">//bounds have already been checked, can use more efficient, less safe, indexing</span>
+<a name="l00045"></a>00045 <span class="keywordflow">return</span> <a class="code" href="class_maze.html#a3f0247841ddb8a6b5b8b5eeff86b754a" title="The 2 dimensional vector that stores the locations of walls.">_wallLocations</a>[x][y];
+<a name="l00046"></a>00046 }
+<a name="l00047"></a>00047
+<a name="l00048"></a><a class="code" href="class_maze.html#a6963ffbb8e10f5ca72ddc749b3f29419">00048</a> <span class="keywordtype">int</span> <a class="code" href="class_maze.html#a6963ffbb8e10f5ca72ddc749b3f29419" title="Provides access to the width of the Maze object.">Maze::width</a>()<span class="keyword"> const</span>
+<a name="l00049"></a>00049 <span class="keyword"></span>{
+<a name="l00050"></a>00050 <span class="keywordflow">return</span> <a class="code" href="class_maze.html#a981c764d7ad04ca06bd8dee472578ce4" title="The number of blocks in each row.">_width</a>;
+<a name="l00051"></a>00051 }
+<a name="l00052"></a><a class="code" href="class_maze.html#a53de30abea69713225ab77703e753d81">00052</a> <span class="keywordtype">int</span> <a class="code" href="class_maze.html#a53de30abea69713225ab77703e753d81" title="Provides access to the height of the Maze object.">Maze::height</a>()<span class="keyword"> const</span>
+<a name="l00053"></a>00053 <span class="keyword"></span>{
+<a name="l00054"></a>00054 <span class="keywordflow">return</span> <a class="code" href="class_maze.html#a02f1ff55e76161495bbe11bc4c0e5f54" title="The number of blocks in each column.">_height</a>;
+<a name="l00055"></a>00055 }
+<a name="l00056"></a>00056
+<a name="l00057"></a><a class="code" href="class_maze.html#a79cf362b55c21634a93ef6b7d192b77c">00057</a> <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f" title="Defines the directions in which movement can happen in the maze.">Maze::Direction</a> <a class="code" href="class_maze.html#a79cf362b55c21634a93ef6b7d192b77c" title="Inverts a given direction, to give the value to face in the opposite direction.">Maze::backwards</a>(<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f" title="Defines the directions in which movement can happen in the maze.">Direction</a> forwards)
+<a name="l00058"></a>00058 {
+<a name="l00059"></a>00059 <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f" title="Defines the directions in which movement can happen in the maze.">Direction</a> <a class="code" href="class_maze.html#a79cf362b55c21634a93ef6b7d192b77c" title="Inverts a given direction, to give the value to face in the opposite direction.">backwards</a>;
+<a name="l00060"></a>00060 <span class="keywordflow">switch</span> (forwards)
+<a name="l00061"></a>00061 {
+<a name="l00062"></a>00062 <span class="keywordflow">case</span> <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28faab1a1fe0274cd139b3c0116d8caf458c">LEFT</a>:
+<a name="l00063"></a>00063 backwards = <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa699ae3e1d989e9b12bd200aa86e29e9d">RIGHT</a>;
+<a name="l00064"></a>00064 <span class="keywordflow">break</span>;
+<a name="l00065"></a>00065 <span class="keywordflow">case</span> <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa699ae3e1d989e9b12bd200aa86e29e9d">RIGHT</a>:
+<a name="l00066"></a>00066 backwards = <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28faab1a1fe0274cd139b3c0116d8caf458c">LEFT</a>;
+<a name="l00067"></a>00067 <span class="keywordflow">break</span>;
+<a name="l00068"></a>00068 <span class="keywordflow">case</span> <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7">UP</a>:
+<a name="l00069"></a>00069 backwards = <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa89ab143d020541957ab5e0e9cfdd3e23">DOWN</a>;
+<a name="l00070"></a>00070 <span class="keywordflow">break</span>;
+<a name="l00071"></a>00071 <span class="keywordflow">case</span> <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa89ab143d020541957ab5e0e9cfdd3e23">DOWN</a>:
+<a name="l00072"></a>00072 backwards = <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7">UP</a>;
+<a name="l00073"></a>00073 <span class="keywordflow">break</span>;
+<a name="l00074"></a>00074 }
+<a name="l00075"></a>00075
+<a name="l00076"></a>00076 <span class="keywordflow">return</span> <a class="code" href="class_maze.html#a79cf362b55c21634a93ef6b7d192b77c" title="Inverts a given direction, to give the value to face in the opposite direction.">backwards</a>;
+<a name="l00077"></a>00077 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_maze_8h.html b/docs/html/_maze_8h.html
new file mode 100644
index 0000000..7a90bf9
--- /dev/null
+++ b/docs/html/_maze_8h.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/Maze.h File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">source/logic/Maze.h File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &lt;vector&gt;</code><br/>
+<code>#include &lt;utility&gt;</code><br/>
+</div>
+<p><a href="_maze_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_maze.html">Maze</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A rectangular 2D boolean array, representing where cars can drive and where they cannot. <a href="class_maze.html#details">More...</a><br/></td></tr>
+</table>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_maze_8h_source.html b/docs/html/_maze_8h_source.html
new file mode 100644
index 0000000..24e5923
--- /dev/null
+++ b/docs/html/_maze_8h_source.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/Maze.h Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/Maze.h</div> </div>
+</div>
+<div class="contents">
+<a href="_maze_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef MAZE_H</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define MAZE_H</span>
+<a name="l00003"></a>00003 <span class="preprocessor"></span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;vector&gt;</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include &lt;utility&gt;</span>
+<a name="l00006"></a>00006 <span class="keyword">using namespace </span>std;
+<a name="l00007"></a>00007
+<a name="l00014"></a><a class="code" href="class_maze.html">00014</a> <span class="keyword">class </span><a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>
+<a name="l00015"></a>00015 {
+<a name="l00016"></a>00016 <span class="keyword">public</span>:
+<a name="l00020"></a><a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7">00020</a> <span class="keyword">enum</span> <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f" title="Defines the directions in which movement can happen in the maze.">Direction</a> {<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7">UP</a>, DOWN, LEFT, RIGHT};
+<a name="l00021"></a>00021
+<a name="l00025"></a>00025 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>();
+<a name="l00026"></a>00026
+<a name="l00027"></a>00027 <span class="comment">//assignment and copy constructors have been left with the compiler generated versions</span>
+<a name="l00028"></a>00028
+<a name="l00040"></a>00040 <span class="keywordtype">void</span> generateMaze(<span class="keyword">const</span> vector&lt;pair&lt;int,int&gt; &gt;&amp; walls, <span class="keywordtype">int</span> maxObjectX=0, <span class="keywordtype">int</span> maxObjectY=0);
+<a name="l00041"></a>00041
+<a name="l00057"></a>00057 <span class="keywordtype">bool</span> getSolid(<span class="keyword">const</span> <span class="keywordtype">int</span>&amp; x, <span class="keyword">const</span> <span class="keywordtype">int</span>&amp; y) <span class="keyword">const</span>;
+<a name="l00058"></a>00058
+<a name="l00064"></a>00064 <span class="keywordtype">int</span> width() <span class="keyword">const</span>;
+<a name="l00070"></a>00070 <span class="keywordtype">int</span> height() <span class="keyword">const</span>;
+<a name="l00071"></a>00071
+<a name="l00079"></a>00079 <span class="keyword">static</span> Direction backwards(Direction forwards);
+<a name="l00080"></a>00080
+<a name="l00081"></a>00081 <span class="keyword">private</span>:
+<a name="l00085"></a><a class="code" href="class_maze.html#aea392ab34f271f56b1746b30aed9588a">00085</a> <span class="keyword">typedef</span> vector&lt;vector&lt;bool&gt; &gt; <a class="code" href="class_maze.html#aea392ab34f271f56b1746b30aed9588a" title="Provides an easier to read pseudonym for a 2 dimensional boolean vector.">BoolGrid</a>;
+<a name="l00086"></a>00086
+<a name="l00094"></a><a class="code" href="class_maze.html#a3f0247841ddb8a6b5b8b5eeff86b754a">00094</a> <a class="code" href="class_maze.html#aea392ab34f271f56b1746b30aed9588a" title="Provides an easier to read pseudonym for a 2 dimensional boolean vector.">BoolGrid</a> <a class="code" href="class_maze.html#a3f0247841ddb8a6b5b8b5eeff86b754a" title="The 2 dimensional vector that stores the locations of walls.">_wallLocations</a>;
+<a name="l00095"></a>00095
+<a name="l00096"></a><a class="code" href="class_maze.html#a981c764d7ad04ca06bd8dee472578ce4">00096</a> <span class="keywordtype">int</span> <a class="code" href="class_maze.html#a981c764d7ad04ca06bd8dee472578ce4" title="The number of blocks in each row.">_width</a>;
+<a name="l00097"></a><a class="code" href="class_maze.html#a02f1ff55e76161495bbe11bc4c0e5f54">00097</a> <span class="keywordtype">int</span> <a class="code" href="class_maze.html#a02f1ff55e76161495bbe11bc4c0e5f54" title="The number of blocks in each column.">_height</a>;
+<a name="l00098"></a>00098 };
+<a name="l00099"></a>00099
+<a name="l00100"></a>00100 <span class="preprocessor">#endif // MAZE_H</span>
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_maze_math_8cpp.html b/docs/html/_maze_math_8cpp.html
new file mode 100644
index 0000000..3b56bf5
--- /dev/null
+++ b/docs/html/_maze_math_8cpp.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/MazeMath.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/MazeMath.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_maze_math_8h_source.html">MazeMath.h</a>&quot;</code><br/>
+</div>
+<p><a href="_maze_math_8cpp_source.html">Go to the source code of this file.</a></p>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_maze_math_8cpp_source.html b/docs/html/_maze_math_8cpp_source.html
new file mode 100644
index 0000000..f3bf757
--- /dev/null
+++ b/docs/html/_maze_math_8cpp_source.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/MazeMath.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/MazeMath.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="_maze_math_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &quot;<a class="code" href="_maze_math_8h.html">MazeMath.h</a>&quot;</span>
+<a name="l00002"></a>00002
+<a name="l00003"></a><a class="code" href="class_maze_math.html#a2314f211065f4dc7cb11469770fd2f1c">00003</a> <span class="keywordtype">double</span> <a class="code" href="class_maze_math.html#a2314f211065f4dc7cb11469770fd2f1c" title="Rounds a value to the nearest integer.">MazeMath::round</a>(<span class="keywordtype">double</span> value)
+<a name="l00004"></a>00004 {
+<a name="l00005"></a>00005 <span class="keywordflow">if</span> (static_cast&lt;int&gt;(value*10)%10 &lt; 5)
+<a name="l00006"></a>00006 {
+<a name="l00007"></a>00007 <span class="keywordflow">return</span> floor(value);
+<a name="l00008"></a>00008 }
+<a name="l00009"></a>00009 <span class="keywordflow">else</span>
+<a name="l00010"></a>00010 {
+<a name="l00011"></a>00011 <span class="keywordflow">return</span> ceil(value);
+<a name="l00012"></a>00012 }
+<a name="l00013"></a>00013 }
+<a name="l00014"></a>00014
+<a name="l00015"></a><a class="code" href="class_maze_math.html#a5735276fb4c76f25944f2c02d622c3f6">00015</a> <span class="keywordtype">double</span> <a class="code" href="class_maze_math.html#a5735276fb4c76f25944f2c02d622c3f6" title="Finds the straight line distance between two points on a 2D plane.">MazeMath::distance</a>(<span class="keywordtype">double</span> x1, <span class="keywordtype">double</span> y1, <span class="keywordtype">double</span> x2, <span class="keywordtype">double</span> y2)
+<a name="l00016"></a>00016 {
+<a name="l00017"></a>00017 <span class="keywordflow">return</span> sqrt(pow(x1-x2, 2) + pow(y1-y2, 2));
+<a name="l00018"></a>00018 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_maze_math_8h.html b/docs/html/_maze_math_8h.html
new file mode 100644
index 0000000..1b6ff22
--- /dev/null
+++ b/docs/html/_maze_math_8h.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/MazeMath.h File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">source/logic/MazeMath.h File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &lt;cmath&gt;</code><br/>
+</div>
+<p><a href="_maze_math_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_maze_math.html">MazeMath</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Class of static methods for common math functions that occur in the 2D maze setting. <a href="class_maze_math.html#details">More...</a><br/></td></tr>
+</table>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_maze_math_8h_source.html b/docs/html/_maze_math_8h_source.html
new file mode 100644
index 0000000..b50eadf
--- /dev/null
+++ b/docs/html/_maze_math_8h_source.html
@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/MazeMath.h Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/MazeMath.h</div> </div>
+</div>
+<div class="contents">
+<a href="_maze_math_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef MAZEMATH_H</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define MAZEMATH_H</span>
+<a name="l00003"></a>00003 <span class="preprocessor"></span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;cmath&gt;</span>
+<a name="l00005"></a>00005
+<a name="l00012"></a><a class="code" href="class_maze_math.html">00012</a> <span class="keyword">class </span><a class="code" href="class_maze_math.html" title="Class of static methods for common math functions that occur in the 2D maze setting.">MazeMath</a>
+<a name="l00013"></a>00013 {
+<a name="l00014"></a>00014 <span class="keyword">public</span>:
+<a name="l00025"></a>00025 <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="class_maze_math.html#a2314f211065f4dc7cb11469770fd2f1c" title="Rounds a value to the nearest integer.">round</a>(<span class="keywordtype">double</span> value);
+<a name="l00026"></a>00026
+<a name="l00039"></a>00039 <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="class_maze_math.html#a5735276fb4c76f25944f2c02d622c3f6" title="Finds the straight line distance between two points on a 2D plane.">distance</a>(<span class="keywordtype">double</span> x1, <span class="keywordtype">double</span> y1, <span class="keywordtype">double</span> x2, <span class="keywordtype">double</span> y2);
+<a name="l00040"></a>00040
+<a name="l00041"></a>00041 <span class="keyword">private</span>:
+<a name="l00048"></a>00048 <a class="code" href="class_maze_math.html#ac85f1216ce8dc44bc2fb4483b3f4a128" title="Unimplemented constructor.">MazeMath</a>();
+<a name="l00052"></a>00052 <a class="code" href="class_maze_math.html#ac85f1216ce8dc44bc2fb4483b3f4a128" title="Unimplemented constructor.">MazeMath</a>(<span class="keyword">const</span> <a class="code" href="class_maze_math.html" title="Class of static methods for common math functions that occur in the 2D maze setting.">MazeMath</a>&amp; ref);
+<a name="l00056"></a>00056 <a class="code" href="class_maze_math.html" title="Class of static methods for common math functions that occur in the 2D maze setting.">MazeMath</a>&amp; <a class="code" href="class_maze_math.html#ac7cf69d865cf69b82c991241fa39cd59" title="Unimplemented assignment operator.">operator=</a>(<span class="keyword">const</span> <a class="code" href="class_maze_math.html" title="Class of static methods for common math functions that occur in the 2D maze setting.">MazeMath</a>&amp; rhs);
+<a name="l00057"></a>00057 };
+<a name="l00058"></a>00058
+<a name="l00059"></a>00059 <span class="preprocessor">#endif // MAZEMATH_H</span>
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_player_car_8cpp.html b/docs/html/_player_car_8cpp.html
new file mode 100644
index 0000000..635dd97
--- /dev/null
+++ b/docs/html/_player_car_8cpp.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/PlayerCar.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/PlayerCar.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_player_car_8h_source.html">PlayerCar.h</a>&quot;</code><br/>
+</div>
+<p><a href="_player_car_8cpp_source.html">Go to the source code of this file.</a></p>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_player_car_8cpp_source.html b/docs/html/_player_car_8cpp_source.html
new file mode 100644
index 0000000..b82ee16
--- /dev/null
+++ b/docs/html/_player_car_8cpp_source.html
@@ -0,0 +1,194 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/PlayerCar.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/PlayerCar.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="_player_car_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &quot;<a class="code" href="_player_car_8h.html">PlayerCar.h</a>&quot;</span>
+<a name="l00002"></a>00002
+<a name="l00003"></a><a class="code" href="class_player_car.html#a59864f7746f6b96364cc5cc87f9b70e0">00003</a> <a class="code" href="class_player_car.html#a59864f7746f6b96364cc5cc87f9b70e0" title="Creates a PlayerCar at the given location facing in the given direction.">PlayerCar::PlayerCar</a>(<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f" title="Defines the directions in which movement can happen in the maze.">Maze::Direction</a> facing)
+<a name="l00004"></a>00004 :<a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>(x,y,<a class="code" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a>::PLAYER, facing),
+<a name="l00005"></a>00005 _input(_facing),
+<a name="l00006"></a>00006 _petrol(1)
+<a name="l00007"></a>00007 {
+<a name="l00008"></a>00008 }
+<a name="l00009"></a>00009
+<a name="l00010"></a><a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907">00010</a> <span class="keywordtype">void</span> <a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame&#39;s worth of activity for the object, called every frame.">PlayerCar::update</a>(<span class="keyword">const</span> <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>&amp; maze, list&lt;Smokescreen&gt;&amp; currentSmoke)
+<a name="l00011"></a>00011 {
+<a name="l00012"></a>00012 <a class="code" href="class_player_car.html#a51f836c3619c42df7762d440e8007010" title="The amount of petrol that the PlayerCar still has.">_petrol</a> -= <a class="code" href="class_player_car.html#a1f0b0226242250bd470f48b73defe3be" title="The amount of petrol used every frame.">PETROL_USE_RATE</a>;
+<a name="l00013"></a>00013 <span class="keywordflow">if</span> (<a class="code" href="class_player_car.html#a51f836c3619c42df7762d440e8007010" title="The amount of petrol that the PlayerCar still has.">_petrol</a>&lt;0)
+<a name="l00014"></a>00014 {
+<a name="l00015"></a>00015 <a class="code" href="class_car.html#a84b3d05e98d66f358942193ff54dee51" title="The current speed that the Car is moving at.">_speed</a> = <a class="code" href="class_car.html#a7b942584de02f8af6f571a60a1cf32ba" title="The speed that a Car moves at in normal conditions.">_baseSpeed</a>/2;
+<a name="l00016"></a>00016 <a class="code" href="class_player_car.html#a51f836c3619c42df7762d440e8007010" title="The amount of petrol that the PlayerCar still has.">_petrol</a> = 0;
+<a name="l00017"></a>00017 }
+<a name="l00018"></a>00018
+<a name="l00019"></a>00019 <a class="code" href="class_game_object.html#a24d36b1a64504298700a7ae7111fad5d" title="The direction in which the object is facing, up, down, left, or right.">_facing</a> = <a class="code" href="class_player_car.html#a5f8477ebd7de6298151ed70fbb9ffa4f" title="Object that handles all interaction with the player.">_input</a>.<a class="code" href="class_keyboard_handler.html#ae17ed4bf0abae7d95f9b772a6d704a70" title="Gives the last direction that the player entered on the keyboard.">getFacing</a>();
+<a name="l00020"></a>00020 <a class="code" href="class_car.html#a85e8699362bb5206e4142dbd5d20dcb9" title="Moves the car by its current speed in the direction of its facing.">move</a>(maze);
+<a name="l00021"></a>00021
+<a name="l00022"></a>00022 <span class="keywordflow">if</span> (<a class="code" href="class_player_car.html#a5f8477ebd7de6298151ed70fbb9ffa4f" title="Object that handles all interaction with the player.">_input</a>.<a class="code" href="class_keyboard_handler.html#ab66797a37a1c54a630187519870d9a5b" title="Gives whether or not the key for creating a Smokescreen is currently pressed.">getSmokescreen</a>())
+<a name="l00023"></a>00023 {
+<a name="l00024"></a>00024 <a class="code" href="class_player_car.html#aafbb292597e0e4648a52444b25e0c5d1" title="Creates a Smokescreen one block behind the player if the action is viable.">makeSmoke</a>(currentSmoke);
+<a name="l00025"></a>00025 }
+<a name="l00026"></a>00026 }
+<a name="l00027"></a>00027
+<a name="l00028"></a><a class="code" href="class_player_car.html#aafbb292597e0e4648a52444b25e0c5d1">00028</a> <span class="keywordtype">void</span> <a class="code" href="class_player_car.html#aafbb292597e0e4648a52444b25e0c5d1" title="Creates a Smokescreen one block behind the player if the action is viable.">PlayerCar::makeSmoke</a>(list&lt;Smokescreen&gt;&amp; currentSmoke)
+<a name="l00029"></a>00029 {
+<a name="l00030"></a>00030 <span class="keywordflow">if</span> (<a class="code" href="class_player_car.html#a51f836c3619c42df7762d440e8007010" title="The amount of petrol that the PlayerCar still has.">_petrol</a> &lt; <a class="code" href="class_player_car.html#af4d042839afea10b0947837040eab12c" title="The amount of petrol used to create a Smokescreen.">PETROL_USE_SMOKESCREEN</a>) <span class="keywordflow">return</span>;
+<a name="l00031"></a>00031
+<a name="l00032"></a>00032 <span class="keywordtype">double</span> targetX = 0;
+<a name="l00033"></a>00033 <span class="keywordtype">double</span> targetY = 0;
+<a name="l00034"></a>00034
+<a name="l00035"></a>00035 <span class="keywordflow">switch</span>(<a class="code" href="class_game_object.html#a24d36b1a64504298700a7ae7111fad5d" title="The direction in which the object is facing, up, down, left, or right.">_facing</a>)
+<a name="l00036"></a>00036 {
+<a name="l00037"></a>00037 <span class="keywordflow">case</span> <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7">Maze::UP</a>:
+<a name="l00038"></a>00038 targetX = round(<a class="code" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614" title="The x coordinate of the object&#39;s position.">_x</a>);
+<a name="l00039"></a>00039 targetY = round(<a class="code" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e" title="The y coordinate of the object&#39;s position.">_y</a>+1);
+<a name="l00040"></a>00040 <span class="keywordflow">break</span>;
+<a name="l00041"></a>00041 <span class="keywordflow">case</span> <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa89ab143d020541957ab5e0e9cfdd3e23">Maze::DOWN</a>:
+<a name="l00042"></a>00042 targetX = round(<a class="code" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614" title="The x coordinate of the object&#39;s position.">_x</a>);
+<a name="l00043"></a>00043 targetY = round(<a class="code" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e" title="The y coordinate of the object&#39;s position.">_y</a>-1);
+<a name="l00044"></a>00044 <span class="keywordflow">break</span>;
+<a name="l00045"></a>00045 <span class="keywordflow">case</span> <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28faab1a1fe0274cd139b3c0116d8caf458c">Maze::LEFT</a>:
+<a name="l00046"></a>00046 targetX = round(<a class="code" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614" title="The x coordinate of the object&#39;s position.">_x</a>+1);
+<a name="l00047"></a>00047 targetY = round(<a class="code" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e" title="The y coordinate of the object&#39;s position.">_y</a>);
+<a name="l00048"></a>00048 <span class="keywordflow">break</span>;
+<a name="l00049"></a>00049 <span class="keywordflow">case</span> <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa699ae3e1d989e9b12bd200aa86e29e9d">Maze::RIGHT</a>:
+<a name="l00050"></a>00050 targetX = round(<a class="code" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614" title="The x coordinate of the object&#39;s position.">_x</a>-1);
+<a name="l00051"></a>00051 targetY = round(<a class="code" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e" title="The y coordinate of the object&#39;s position.">_y</a>);
+<a name="l00052"></a>00052 <span class="keywordflow">break</span>;
+<a name="l00053"></a>00053 }
+<a name="l00054"></a>00054
+<a name="l00055"></a>00055 <span class="keywordtype">bool</span> overlap = <span class="keyword">false</span>;
+<a name="l00056"></a>00056
+<a name="l00057"></a>00057 <span class="keywordflow">for</span> (list&lt;Smokescreen&gt;::const_iterator iter = currentSmoke.begin(); iter!=currentSmoke.end(); ++iter)
+<a name="l00058"></a>00058 {
+<a name="l00059"></a>00059 <span class="keywordflow">if</span> ((abs(iter-&gt;x() - targetX)&lt;1)&amp;&amp;(abs(iter-&gt;y() - targetY)&lt;1))
+<a name="l00060"></a>00060 {
+<a name="l00061"></a>00061 overlap = <span class="keyword">true</span>;
+<a name="l00062"></a>00062 <span class="keywordflow">break</span>;
+<a name="l00063"></a>00063 }
+<a name="l00064"></a>00064 }
+<a name="l00065"></a>00065
+<a name="l00066"></a>00066 <span class="keywordflow">if</span> (!overlap)
+<a name="l00067"></a>00067 {
+<a name="l00068"></a>00068 currentSmoke.push_back(<a class="code" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a>(targetX, targetY));
+<a name="l00069"></a>00069 <a class="code" href="class_player_car.html#a51f836c3619c42df7762d440e8007010" title="The amount of petrol that the PlayerCar still has.">_petrol</a> -= <a class="code" href="class_player_car.html#af4d042839afea10b0947837040eab12c" title="The amount of petrol used to create a Smokescreen.">PETROL_USE_SMOKESCREEN</a>;
+<a name="l00070"></a>00070 }
+<a name="l00071"></a>00071 }
+<a name="l00072"></a>00072
+<a name="l00073"></a><a class="code" href="class_player_car.html#a1bdd1dbdf1158b740cd1bcb757f8c578">00073</a> <span class="keywordtype">void</span> <a class="code" href="class_player_car.html#a1bdd1dbdf1158b740cd1bcb757f8c578" title="Function that is called when the PlayerCar collides with an EnemyCar.">PlayerCar::crash</a>()
+<a name="l00074"></a>00074 {
+<a name="l00075"></a>00075 <a class="code" href="class_game_object.html#adc4a399cc59d5706f75748fb3846faec" title="True if the object has been marked for destruction.">_destroyed</a> = <span class="keyword">true</span>;
+<a name="l00076"></a>00076 }
+<a name="l00077"></a>00077
+<a name="l00078"></a><a class="code" href="class_player_car.html#aaa8b9d66c0c4e4eab5a303dd0a4e5f39">00078</a> <span class="keywordtype">void</span> <a class="code" href="class_player_car.html#aaa8b9d66c0c4e4eab5a303dd0a4e5f39" title="Function that is called when the PlayerCar collides with a Checkpoint.">PlayerCar::gotCheckpoint</a>()
+<a name="l00079"></a>00079 {
+<a name="l00080"></a>00080 <a class="code" href="class_player_car.html#a51f836c3619c42df7762d440e8007010" title="The amount of petrol that the PlayerCar still has.">_petrol</a>+=<a class="code" href="class_player_car.html#aa51ff0da924f9f9b2ea95907a7a26784" title="The amount of petrol gained from collecting a Checkpoint.">PETROL_FROM_CHECKPOINT</a>;
+<a name="l00081"></a>00081 <a class="code" href="class_car.html#a84b3d05e98d66f358942193ff54dee51" title="The current speed that the Car is moving at.">_speed</a> = <a class="code" href="class_car.html#a7b942584de02f8af6f571a60a1cf32ba" title="The speed that a Car moves at in normal conditions.">_baseSpeed</a>;
+<a name="l00082"></a>00082 }
+<a name="l00083"></a>00083
+<a name="l00084"></a><a class="code" href="class_player_car.html#af32c01166e92d567202c8415cb3e7c88">00084</a> <span class="keywordtype">double</span> <a class="code" href="class_player_car.html#af32c01166e92d567202c8415cb3e7c88" title="Function to allow access to the amount of petrol that the PlayerCar still has.">PlayerCar::petrol</a>()<span class="keyword"> const</span>
+<a name="l00085"></a>00085 <span class="keyword"></span>{
+<a name="l00086"></a>00086 <span class="keywordflow">return</span> <a class="code" href="class_player_car.html#a51f836c3619c42df7762d440e8007010" title="The amount of petrol that the PlayerCar still has.">_petrol</a>;
+<a name="l00087"></a>00087 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_player_car_8h.html b/docs/html/_player_car_8h.html
new file mode 100644
index 0000000..8392950
--- /dev/null
+++ b/docs/html/_player_car_8h.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/PlayerCar.h File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">source/logic/PlayerCar.h File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &lt;cmath&gt;</code><br/>
+<code>#include &lt;list&gt;</code><br/>
+<code>#include &quot;../presentation/KeyboardHandler.h&quot;</code><br/>
+<code>#include &quot;../presentation/BitmapStore.h&quot;</code><br/>
+<code>#include &quot;../logic/Car.h&quot;</code><br/>
+<code>#include &quot;../logic/Maze.h&quot;</code><br/>
+<code>#include &quot;../logic/Smokescreen.h&quot;</code><br/>
+</div>
+<p><a href="_player_car_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_player_car.html">PlayerCar</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> that is controlled by the player. <a href="class_player_car.html#details">More...</a><br/></td></tr>
+</table>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_player_car_8h_source.html b/docs/html/_player_car_8h_source.html
new file mode 100644
index 0000000..876ff7b
--- /dev/null
+++ b/docs/html/_player_car_8h_source.html
@@ -0,0 +1,149 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/PlayerCar.h Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/PlayerCar.h</div> </div>
+</div>
+<div class="contents">
+<a href="_player_car_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef PLAYERCAR_H</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define PLAYERCAR_H</span>
+<a name="l00003"></a>00003 <span class="preprocessor"></span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;cmath&gt;</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include &lt;list&gt;</span>
+<a name="l00006"></a>00006 <span class="keyword">using namespace </span>std;
+<a name="l00007"></a>00007
+<a name="l00008"></a>00008 <span class="preprocessor">#include &quot;../presentation/KeyboardHandler.h&quot;</span>
+<a name="l00009"></a>00009 <span class="preprocessor">#include &quot;../presentation/BitmapStore.h&quot;</span>
+<a name="l00010"></a>00010
+<a name="l00011"></a>00011 <span class="preprocessor">#include &quot;../logic/Car.h&quot;</span>
+<a name="l00012"></a>00012 <span class="preprocessor">#include &quot;../logic/Maze.h&quot;</span>
+<a name="l00013"></a>00013 <span class="preprocessor">#include &quot;../logic/Smokescreen.h&quot;</span>
+<a name="l00014"></a>00014
+<a name="l00023"></a><a class="code" href="class_player_car.html">00023</a> <span class="keyword">class </span><a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>: <span class="keyword">public</span> <a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>
+<a name="l00024"></a>00024 {
+<a name="l00025"></a>00025 <span class="keyword">public</span>:
+<a name="l00037"></a>00037 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f" title="Defines the directions in which movement can happen in the maze.">Maze::Direction</a> facing=<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7">Maze::UP</a>);
+<a name="l00038"></a>00038
+<a name="l00039"></a>00039 <span class="comment">//assignment and copy constructors have been left with the compiler generated versions</span>
+<a name="l00040"></a>00040
+<a name="l00052"></a>00052 <span class="keywordtype">void</span> update(<span class="keyword">const</span> <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>&amp; maze, list&lt;Smokescreen&gt;&amp; currentSmoke);
+<a name="l00053"></a>00053
+<a name="l00064"></a>00064 <span class="keywordtype">void</span> makeSmoke(list&lt;Smokescreen&gt;&amp; currentSmoke);
+<a name="l00065"></a>00065
+<a name="l00071"></a>00071 <span class="keywordtype">void</span> gotCheckpoint();
+<a name="l00072"></a>00072
+<a name="l00076"></a>00076 <span class="keywordtype">void</span> crash();
+<a name="l00077"></a>00077
+<a name="l00081"></a>00081 <span class="keywordtype">double</span> petrol() <span class="keyword">const</span>;
+<a name="l00082"></a>00082
+<a name="l00083"></a>00083 <span class="keyword">private</span>:
+<a name="l00084"></a><a class="code" href="class_player_car.html#a5f8477ebd7de6298151ed70fbb9ffa4f">00084</a> <a class="code" href="class_keyboard_handler.html" title="Class for handling keyboard related game inputs from the player.">KeyboardHandler</a> <a class="code" href="class_player_car.html#a5f8477ebd7de6298151ed70fbb9ffa4f" title="Object that handles all interaction with the player.">_input</a>;
+<a name="l00085"></a>00085
+<a name="l00092"></a><a class="code" href="class_player_car.html#a51f836c3619c42df7762d440e8007010">00092</a> <span class="keywordtype">double</span> <a class="code" href="class_player_car.html#a51f836c3619c42df7762d440e8007010" title="The amount of petrol that the PlayerCar still has.">_petrol</a>;
+<a name="l00093"></a>00093
+<a name="l00094"></a><a class="code" href="class_player_car.html#a1f0b0226242250bd470f48b73defe3be">00094</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">double</span> PETROL_USE_RATE = 0.0007;
+<a name="l00095"></a><a class="code" href="class_player_car.html#af4d042839afea10b0947837040eab12c">00095</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">double</span> PETROL_USE_SMOKESCREEN = 0.05;
+<a name="l00096"></a><a class="code" href="class_player_car.html#aa51ff0da924f9f9b2ea95907a7a26784">00096</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">double</span> PETROL_FROM_CHECKPOINT = 0.2;
+<a name="l00097"></a>00097 };
+<a name="l00098"></a>00098
+<a name="l00099"></a>00099 <span class="preprocessor">#endif // PLAYERCAR_H</span>
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_rock_8cpp.html b/docs/html/_rock_8cpp.html
new file mode 100644
index 0000000..6cd052b
--- /dev/null
+++ b/docs/html/_rock_8cpp.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/Rock.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/Rock.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_rock_8h_source.html">Rock.h</a>&quot;</code><br/>
+</div>
+<p><a href="_rock_8cpp_source.html">Go to the source code of this file.</a></p>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_rock_8cpp_source.html b/docs/html/_rock_8cpp_source.html
new file mode 100644
index 0000000..b367cc7
--- /dev/null
+++ b/docs/html/_rock_8cpp_source.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/Rock.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/Rock.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="_rock_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &quot;<a class="code" href="_rock_8h.html">Rock.h</a>&quot;</span>
+<a name="l00002"></a>00002
+<a name="l00003"></a><a class="code" href="class_rock.html#af8a54b6f7458d83cf27753f53c8c0c19">00003</a> <a class="code" href="class_rock.html#af8a54b6f7458d83cf27753f53c8c0c19" title="Creates a Rock at the given coordinates.">Rock::Rock</a>(<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y)
+<a name="l00004"></a>00004 :<a class="code" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a>(x,y,<a class="code" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a>::ROCK)
+<a name="l00005"></a>00005 {
+<a name="l00006"></a>00006 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_rock_8h.html b/docs/html/_rock_8h.html
new file mode 100644
index 0000000..580e7d8
--- /dev/null
+++ b/docs/html/_rock_8h.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/Rock.h File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">source/logic/Rock.h File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;../logic/GameObject.h&quot;</code><br/>
+<code>#include &quot;../presentation/BitmapStore.h&quot;</code><br/>
+</div>
+<p><a href="_rock_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_rock.html">Rock</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A game object that acts as an obstacle to the player. <a href="class_rock.html#details">More...</a><br/></td></tr>
+</table>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_rock_8h_source.html b/docs/html/_rock_8h_source.html
new file mode 100644
index 0000000..4ce60fb
--- /dev/null
+++ b/docs/html/_rock_8h_source.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/Rock.h Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/Rock.h</div> </div>
+</div>
+<div class="contents">
+<a href="_rock_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef ROCK_H</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define ROCK_H</span>
+<a name="l00003"></a>00003 <span class="preprocessor"></span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include &quot;../logic/GameObject.h&quot;</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include &quot;../presentation/BitmapStore.h&quot;</span>
+<a name="l00006"></a>00006
+<a name="l00015"></a><a class="code" href="class_rock.html">00015</a> <span class="keyword">class </span><a class="code" href="class_rock.html" title="A game object that acts as an obstacle to the player.">Rock</a>: <span class="keyword">public</span> <a class="code" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a>
+<a name="l00016"></a>00016 {
+<a name="l00017"></a>00017 <span class="keyword">public</span>:
+<a name="l00024"></a>00024 <a class="code" href="class_rock.html#af8a54b6f7458d83cf27753f53c8c0c19" title="Creates a Rock at the given coordinates.">Rock</a>(<span class="keywordtype">double</span> <a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>, <span class="keywordtype">double</span> <a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>);
+<a name="l00025"></a>00025
+<a name="l00026"></a>00026 <span class="comment">//assignment and copy constructors have been left with the compiler generated versions</span>
+<a name="l00027"></a>00027 };
+<a name="l00028"></a>00028
+<a name="l00029"></a>00029 <span class="preprocessor">#endif // ROCK_H</span>
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_screen_8cpp.html b/docs/html/_screen_8cpp.html
new file mode 100644
index 0000000..af0b451
--- /dev/null
+++ b/docs/html/_screen_8cpp.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/Screen.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/presentation/Screen.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_screen_8h_source.html">Screen.h</a>&quot;</code><br/>
+</div>
+<p><a href="_screen_8cpp_source.html">Go to the source code of this file.</a></p>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_screen_8cpp_source.html b/docs/html/_screen_8cpp_source.html
new file mode 100644
index 0000000..0bb1da9
--- /dev/null
+++ b/docs/html/_screen_8cpp_source.html
@@ -0,0 +1,266 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/Screen.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/presentation/Screen.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="_screen_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &quot;<a class="code" href="_screen_8h.html">Screen.h</a>&quot;</span>
+<a name="l00002"></a>00002
+<a name="l00003"></a><a class="code" href="class_screen.html#aa430a980cb3dcca13c837f70bf801511">00003</a> <a class="code" href="class_screen.html#aa430a980cb3dcca13c837f70bf801511" title="Creates a Screen with the given width and height in pixels, and the given fullscreen setting...">Screen::Screen</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> screenWidth, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> screenHeight, <span class="keywordtype">bool</span> fullscreen)
+<a name="l00004"></a>00004 :_exitClicked(false),
+<a name="l00005"></a>00005 _screenWidth(screenWidth),
+<a name="l00006"></a>00006 _screenHeight(screenHeight),
+<a name="l00007"></a>00007 _gameAreaWidth(_screenWidth*0.75),
+<a name="l00008"></a>00008 _infoPanelWidth(_screenWidth - _gameAreaWidth)
+<a name="l00009"></a>00009 {
+<a name="l00010"></a>00010 <span class="keywordflow">if</span> (fullscreen)
+<a name="l00011"></a>00011 {
+<a name="l00012"></a>00012 al_set_new_display_flags(ALLEGRO_FULLSCREEN_WINDOW);
+<a name="l00013"></a>00013 <span class="keywordflow">if</span> (!<a class="code" href="class_screen.html#a6480d57328a39c579f312774b5fbf571" title="Checks the current resolution (_screenWidth and _screenHeight) against the screen&#39;s supported resolut...">resolutionSupported</a>())
+<a name="l00014"></a>00014 {
+<a name="l00015"></a>00015 al_show_native_message_box(NULL, <span class="stringliteral">&quot;Fatal error&quot;</span>, <span class="stringliteral">&quot;Fatal error&quot;</span>, <span class="stringliteral">&quot;The fullscreen resolution specified in config.txt is not supported by your system. Please open config.txt and change the resolution to a supported resolution, or change fullscreen to false.&quot;</span>, NULL, ALLEGRO_MESSAGEBOX_ERROR);
+<a name="l00016"></a>00016 <span class="keywordflow">throw</span> <a class="code" href="class_bad_resolution.html" title="Exception that is thrown if the Config file requests a resolution that can not work.">BadResolution</a>();
+<a name="l00017"></a>00017 }
+<a name="l00018"></a>00018 }
+<a name="l00019"></a>00019 <span class="keywordflow">else</span>
+<a name="l00020"></a>00020 {
+<a name="l00021"></a>00021 al_set_new_display_flags(ALLEGRO_WINDOWED);
+<a name="l00022"></a>00022 <span class="comment">//need to add error checking for windows that are way too big</span>
+<a name="l00023"></a>00023 }
+<a name="l00024"></a>00024
+<a name="l00025"></a>00025 al_set_new_display_option(ALLEGRO_VSYNC, 1, ALLEGRO_SUGGEST);
+<a name="l00026"></a>00026
+<a name="l00027"></a>00027 <a class="code" href="class_screen.html#a4972e24cf3677e51b18feac34a563ba0" title="The window created on the player&#39;s monitor to see the game.">_display</a> = al_create_display(<a class="code" href="class_screen.html#a5931238a3eb8cf1a14b0f8b8d7044b65" title="Horizontal number of pixels per row on the screen.">_screenWidth</a>, <a class="code" href="class_screen.html#a8784c86e10d2b6af0dd99d710f3955e9" title="Vertical number of pixels per column on the screen.">_screenHeight</a>);
+<a name="l00028"></a>00028
+<a name="l00029"></a>00029 al_hide_mouse_cursor(<a class="code" href="class_screen.html#a4972e24cf3677e51b18feac34a563ba0" title="The window created on the player&#39;s monitor to see the game.">_display</a>);
+<a name="l00030"></a>00030 <a class="code" href="class_screen.html#aa4ea622368bdf47a3b22d026048ee83a" title="Events caught by the screen, checked for an exit command.">_windowEvents</a> = al_create_event_queue();
+<a name="l00031"></a>00031 al_register_event_source(<a class="code" href="class_screen.html#aa4ea622368bdf47a3b22d026048ee83a" title="Events caught by the screen, checked for an exit command.">_windowEvents</a>, al_get_display_event_source(<a class="code" href="class_screen.html#a4972e24cf3677e51b18feac34a563ba0" title="The window created on the player&#39;s monitor to see the game.">_display</a>));
+<a name="l00032"></a>00032 <span class="comment">//used so that ESC can be pressed to exit.</span>
+<a name="l00033"></a>00033 al_register_event_source(<a class="code" href="class_screen.html#aa4ea622368bdf47a3b22d026048ee83a" title="Events caught by the screen, checked for an exit command.">_windowEvents</a>, al_get_keyboard_event_source());
+<a name="l00034"></a>00034
+<a name="l00035"></a>00035 <a class="code" href="class_screen.html#a42a627863a8f9d1529278cb060d4102b" title="Font used in drawing splash screens.">_font</a> = al_load_font(<span class="stringliteral">&quot;junction 02.ttf&quot;</span>, <a class="code" href="class_screen.html#a5931238a3eb8cf1a14b0f8b8d7044b65" title="Horizontal number of pixels per row on the screen.">_screenWidth</a>/10, 0);
+<a name="l00036"></a>00036 <span class="keywordflow">if</span> (<a class="code" href="class_screen.html#a42a627863a8f9d1529278cb060d4102b" title="Font used in drawing splash screens.">_font</a> == NULL)
+<a name="l00037"></a>00037 {
+<a name="l00038"></a>00038 al_show_native_message_box(NULL, <span class="stringliteral">&quot;Fatal error&quot;</span>, <span class="stringliteral">&quot;Fatal error&quot;</span>, <span class="stringliteral">&quot;The file &#39;junction 02.ttf&#39; was not found. Ensure that it is located in the working directory.&quot;</span>, NULL, ALLEGRO_MESSAGEBOX_ERROR);
+<a name="l00039"></a>00039 al_destroy_event_queue(<a class="code" href="class_screen.html#aa4ea622368bdf47a3b22d026048ee83a" title="Events caught by the screen, checked for an exit command.">_windowEvents</a>);
+<a name="l00040"></a>00040 al_destroy_display(<a class="code" href="class_screen.html#a4972e24cf3677e51b18feac34a563ba0" title="The window created on the player&#39;s monitor to see the game.">_display</a>);
+<a name="l00041"></a>00041 <span class="keywordflow">throw</span> <a class="code" href="class_install_failure.html" title="Exception to be thrown if any component of Allegro fails to install at runtime.">InstallFailure</a>();
+<a name="l00042"></a>00042 }
+<a name="l00043"></a>00043
+<a name="l00044"></a>00044 ALLEGRO_BITMAP* front = al_get_backbuffer(<a class="code" href="class_screen.html#a4972e24cf3677e51b18feac34a563ba0" title="The window created on the player&#39;s monitor to see the game.">_display</a>);
+<a name="l00045"></a>00045 al_flip_display();
+<a name="l00046"></a>00046 ALLEGRO_BITMAP* back = al_get_backbuffer(<a class="code" href="class_screen.html#a4972e24cf3677e51b18feac34a563ba0" title="The window created on the player&#39;s monitor to see the game.">_display</a>);
+<a name="l00047"></a>00047
+<a name="l00048"></a>00048 <a class="code" href="class_screen.html#a30ba66122613181e312e0d7586d2a814" title="Polymorphic container used to encapsulate the different types of drawing to the screen.">_panels</a>.push_back(<span class="keyword">new</span> <a class="code" href="class_game_panel.html" title="ScreenPanel to be drawn on the screen to draw the area where the game takes place.">GamePanel</a>(back, front, 0, 0, <a class="code" href="class_screen.html#a7cba9fb0069d763055ef351452a15227" title="Width of the GamePanel created.">_gameAreaWidth</a>, <a class="code" href="class_screen.html#a8784c86e10d2b6af0dd99d710f3955e9" title="Vertical number of pixels per column on the screen.">_screenHeight</a>));
+<a name="l00049"></a>00049 <a class="code" href="class_screen.html#a30ba66122613181e312e0d7586d2a814" title="Polymorphic container used to encapsulate the different types of drawing to the screen.">_panels</a>.push_back(<span class="keyword">new</span> <a class="code" href="class_info_panel.html" title="ScreenPanel to be drawn on the screen to give the player information.">InfoPanel</a>(back, front, <a class="code" href="class_screen.html#a7cba9fb0069d763055ef351452a15227" title="Width of the GamePanel created.">_gameAreaWidth</a>, 0, <a class="code" href="class_screen.html#ab895e588a89e1943303487d47a2b9216" title="Width of the InfoPanel created. The InfoPanel is placed directly to the right of the GamePanel...">_infoPanelWidth</a>, <a class="code" href="class_screen.html#a8784c86e10d2b6af0dd99d710f3955e9" title="Vertical number of pixels per column on the screen.">_screenHeight</a>));
+<a name="l00050"></a>00050 }
+<a name="l00051"></a>00051
+<a name="l00052"></a><a class="code" href="class_screen.html#a4243bc17596af96415b09ac48205676d">00052</a> <a class="code" href="class_screen.html#a4243bc17596af96415b09ac48205676d" title="Destructor to ensure that the display and any ScreenPanels are destroyed properly.">Screen::~Screen</a>()
+<a name="l00053"></a>00053 {
+<a name="l00054"></a>00054 <span class="keywordflow">for</span> (vector&lt;ScreenPanel*&gt;::iterator iter = <a class="code" href="class_screen.html#a30ba66122613181e312e0d7586d2a814" title="Polymorphic container used to encapsulate the different types of drawing to the screen.">_panels</a>.begin(); iter!=<a class="code" href="class_screen.html#a30ba66122613181e312e0d7586d2a814" title="Polymorphic container used to encapsulate the different types of drawing to the screen.">_panels</a>.end(); ++iter)
+<a name="l00055"></a>00055 {
+<a name="l00056"></a>00056 <span class="keyword">delete</span> (*iter);
+<a name="l00057"></a>00057 }
+<a name="l00058"></a>00058 <a class="code" href="class_screen.html#a30ba66122613181e312e0d7586d2a814" title="Polymorphic container used to encapsulate the different types of drawing to the screen.">_panels</a>.clear();
+<a name="l00059"></a>00059
+<a name="l00060"></a>00060 al_destroy_font(<a class="code" href="class_screen.html#a42a627863a8f9d1529278cb060d4102b" title="Font used in drawing splash screens.">_font</a>);
+<a name="l00061"></a>00061 al_destroy_event_queue(<a class="code" href="class_screen.html#aa4ea622368bdf47a3b22d026048ee83a" title="Events caught by the screen, checked for an exit command.">_windowEvents</a>);
+<a name="l00062"></a>00062 al_destroy_display(<a class="code" href="class_screen.html#a4972e24cf3677e51b18feac34a563ba0" title="The window created on the player&#39;s monitor to see the game.">_display</a>);
+<a name="l00063"></a>00063 }
+<a name="l00064"></a>00064
+<a name="l00065"></a><a class="code" href="class_screen.html#a45d06e513491e40f76013fb670c6c6cc">00065</a> <span class="keywordtype">string</span> <a class="code" href="class_screen.html#a45d06e513491e40f76013fb670c6c6cc" title="Presents the player with a file dialog, requesting a level file to be selected.">Screen::getLevel</a>()
+<a name="l00066"></a>00066 {
+<a name="l00067"></a>00067 <span class="keywordtype">string</span> result(<span class="stringliteral">&quot;&quot;</span>);
+<a name="l00068"></a>00068 ALLEGRO_FILECHOOSER* filechooser = al_create_native_file_dialog(<span class="stringliteral">&quot;.&quot;</span>, <span class="stringliteral">&quot;Choose your level&quot;</span>, <span class="stringliteral">&quot;*.lvl&quot;</span>,ALLEGRO_FILECHOOSER_FILE_MUST_EXIST);
+<a name="l00069"></a>00069 al_show_native_file_dialog(<a class="code" href="class_screen.html#a4972e24cf3677e51b18feac34a563ba0" title="The window created on the player&#39;s monitor to see the game.">_display</a>, filechooser);
+<a name="l00070"></a>00070 <span class="keywordflow">if</span> (al_get_native_file_dialog_count(filechooser)==0)
+<a name="l00071"></a>00071 {
+<a name="l00072"></a>00072 <a class="code" href="class_screen.html#ae7f213f79bf9680e0ff3f4b52ebf051f" title="Set to true when the user chooses to quit the game.">_exitClicked</a> = <span class="keyword">true</span>;
+<a name="l00073"></a>00073 }
+<a name="l00074"></a>00074 <span class="keywordflow">else</span>
+<a name="l00075"></a>00075 {
+<a name="l00076"></a>00076 result = al_get_native_file_dialog_path(filechooser, 0);
+<a name="l00077"></a>00077 }
+<a name="l00078"></a>00078
+<a name="l00079"></a>00079 al_destroy_native_file_dialog(filechooser);
+<a name="l00080"></a>00080 <span class="keywordflow">return</span> result;
+<a name="l00081"></a>00081 }
+<a name="l00082"></a>00082
+<a name="l00083"></a><a class="code" href="class_screen.html#aec3c5c20e14d6ef033c8a6a559a84872">00083</a> <span class="keywordtype">void</span> <a class="code" href="class_screen.html#aec3c5c20e14d6ef033c8a6a559a84872" title="Draws the given objects on the screen.">Screen::draw</a>(<span class="keyword">const</span> <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>&amp; maze, <span class="keyword">const</span> list&lt;PlayerCar&gt;&amp; players, <span class="keyword">const</span> list&lt;EnemyCar&gt;&amp; enemies, <span class="keyword">const</span> list&lt;Checkpoint&gt;&amp; checkpoints, <span class="keyword">const</span> list&lt;Rock&gt;&amp; rocks, <span class="keyword">const</span> list&lt;Smokescreen&gt;&amp; smokescreens, <span class="keyword">const</span> list&lt;DestroyedObjectPopup&gt;&amp; popups)
+<a name="l00084"></a>00084 {
+<a name="l00085"></a>00085 <span class="keywordflow">for</span> (vector&lt;ScreenPanel*&gt;::iterator iter = <a class="code" href="class_screen.html#a30ba66122613181e312e0d7586d2a814" title="Polymorphic container used to encapsulate the different types of drawing to the screen.">_panels</a>.begin(); iter!=<a class="code" href="class_screen.html#a30ba66122613181e312e0d7586d2a814" title="Polymorphic container used to encapsulate the different types of drawing to the screen.">_panels</a>.end(); ++iter)
+<a name="l00086"></a>00086 {
+<a name="l00087"></a>00087 (*iter)-&gt;draw(maze, players, enemies, checkpoints, rocks, smokescreens, popups);
+<a name="l00088"></a>00088 }
+<a name="l00089"></a>00089 <a class="code" href="class_screen.html#abd12bddd241c8d214d2423804fe20ffb" title="Flips the display&#39;s buffers, as well as those for all of the ScreenPanels.">flip</a>();
+<a name="l00090"></a>00090 }
+<a name="l00091"></a>00091
+<a name="l00092"></a><a class="code" href="class_screen.html#abd12bddd241c8d214d2423804fe20ffb">00092</a> <span class="keywordtype">void</span> <a class="code" href="class_screen.html#abd12bddd241c8d214d2423804fe20ffb" title="Flips the display&#39;s buffers, as well as those for all of the ScreenPanels.">Screen::flip</a>()
+<a name="l00093"></a>00093 {
+<a name="l00094"></a>00094 al_flip_display();
+<a name="l00095"></a>00095 <span class="keywordflow">for</span> (vector&lt;ScreenPanel*&gt;::iterator iter = <a class="code" href="class_screen.html#a30ba66122613181e312e0d7586d2a814" title="Polymorphic container used to encapsulate the different types of drawing to the screen.">_panels</a>.begin(); iter!=<a class="code" href="class_screen.html#a30ba66122613181e312e0d7586d2a814" title="Polymorphic container used to encapsulate the different types of drawing to the screen.">_panels</a>.end(); ++iter)
+<a name="l00096"></a>00096 {
+<a name="l00097"></a>00097 (*iter)-&gt;flip();
+<a name="l00098"></a>00098 }
+<a name="l00099"></a>00099 }
+<a name="l00100"></a>00100
+<a name="l00101"></a><a class="code" href="class_screen.html#ad4c1281e4d59eb89377dd87bba8a310e">00101</a> <span class="keywordtype">void</span> <a class="code" href="class_screen.html#ad4c1281e4d59eb89377dd87bba8a310e" title="Draws a splash screen when the level has been won.">Screen::drawWin</a>()
+<a name="l00102"></a>00102 {
+<a name="l00103"></a>00103 <a class="code" href="class_screen.html#abd12bddd241c8d214d2423804fe20ffb" title="Flips the display&#39;s buffers, as well as those for all of the ScreenPanels.">flip</a>();
+<a name="l00104"></a>00104
+<a name="l00105"></a>00105 ALLEGRO_COLOR transBlack = al_map_rgba(0,0,0,200);
+<a name="l00106"></a>00106 al_draw_filled_rectangle(0,0,<a class="code" href="class_screen.html#a5931238a3eb8cf1a14b0f8b8d7044b65" title="Horizontal number of pixels per row on the screen.">_screenWidth</a>,<a class="code" href="class_screen.html#a8784c86e10d2b6af0dd99d710f3955e9" title="Vertical number of pixels per column on the screen.">_screenHeight</a>, transBlack);
+<a name="l00107"></a>00107
+<a name="l00108"></a>00108 ALLEGRO_COLOR textColour = al_map_rgb(255,255,255);
+<a name="l00109"></a>00109 al_draw_text(<a class="code" href="class_screen.html#a42a627863a8f9d1529278cb060d4102b" title="Font used in drawing splash screens.">_font</a>, textColour, <a class="code" href="class_screen.html#a5931238a3eb8cf1a14b0f8b8d7044b65" title="Horizontal number of pixels per row on the screen.">_screenWidth</a>/2, <a class="code" href="class_screen.html#a8784c86e10d2b6af0dd99d710f3955e9" title="Vertical number of pixels per column on the screen.">_screenHeight</a>/2, ALLEGRO_ALIGN_CENTRE , <span class="stringliteral">&quot;You win!&quot;</span>);
+<a name="l00110"></a>00110
+<a name="l00111"></a>00111 <a class="code" href="class_screen.html#abd12bddd241c8d214d2423804fe20ffb" title="Flips the display&#39;s buffers, as well as those for all of the ScreenPanels.">flip</a>();
+<a name="l00112"></a>00112 }
+<a name="l00113"></a>00113
+<a name="l00114"></a><a class="code" href="class_screen.html#aab9ab8447df2b526985970d2ac80c919">00114</a> <span class="keywordtype">void</span> <a class="code" href="class_screen.html#aab9ab8447df2b526985970d2ac80c919" title="Draws a splash screen when the level has been lost.">Screen::drawLoss</a>()
+<a name="l00115"></a>00115 {
+<a name="l00116"></a>00116 <a class="code" href="class_screen.html#abd12bddd241c8d214d2423804fe20ffb" title="Flips the display&#39;s buffers, as well as those for all of the ScreenPanels.">flip</a>();
+<a name="l00117"></a>00117
+<a name="l00118"></a>00118 ALLEGRO_COLOR transBlack = al_map_rgba(0,0,0,200);
+<a name="l00119"></a>00119 al_draw_filled_rectangle(0,0,<a class="code" href="class_screen.html#a5931238a3eb8cf1a14b0f8b8d7044b65" title="Horizontal number of pixels per row on the screen.">_screenWidth</a>,<a class="code" href="class_screen.html#a8784c86e10d2b6af0dd99d710f3955e9" title="Vertical number of pixels per column on the screen.">_screenHeight</a>, transBlack);
+<a name="l00120"></a>00120
+<a name="l00121"></a>00121 ALLEGRO_COLOR textColour = al_map_rgb(255,255,255);
+<a name="l00122"></a>00122 al_draw_text(<a class="code" href="class_screen.html#a42a627863a8f9d1529278cb060d4102b" title="Font used in drawing splash screens.">_font</a>, textColour, <a class="code" href="class_screen.html#a5931238a3eb8cf1a14b0f8b8d7044b65" title="Horizontal number of pixels per row on the screen.">_screenWidth</a>/2, <a class="code" href="class_screen.html#a8784c86e10d2b6af0dd99d710f3955e9" title="Vertical number of pixels per column on the screen.">_screenHeight</a>/2, ALLEGRO_ALIGN_CENTRE , <span class="stringliteral">&quot;You lose!&quot;</span>);
+<a name="l00123"></a>00123
+<a name="l00124"></a>00124 <a class="code" href="class_screen.html#abd12bddd241c8d214d2423804fe20ffb" title="Flips the display&#39;s buffers, as well as those for all of the ScreenPanels.">flip</a>();
+<a name="l00125"></a>00125 }
+<a name="l00126"></a>00126
+<a name="l00127"></a><a class="code" href="class_screen.html#acca34443ba0ad97922069658d688ea9a">00127</a> <span class="keywordtype">bool</span> <a class="code" href="class_screen.html#acca34443ba0ad97922069658d688ea9a" title="Function to find if the player has chosen to exit the game.">Screen::exitClicked</a>()
+<a name="l00128"></a>00128 {
+<a name="l00129"></a>00129 <span class="keywordflow">if</span> (<a class="code" href="class_screen.html#ae7f213f79bf9680e0ff3f4b52ebf051f" title="Set to true when the user chooses to quit the game.">_exitClicked</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00130"></a>00130
+<a name="l00131"></a>00131 ALLEGRO_EVENT event;
+<a name="l00132"></a>00132 <span class="keywordflow">while</span> (al_get_next_event(<a class="code" href="class_screen.html#aa4ea622368bdf47a3b22d026048ee83a" title="Events caught by the screen, checked for an exit command.">_windowEvents</a>, &amp;event))
+<a name="l00133"></a>00133 {
+<a name="l00134"></a>00134 <span class="keywordflow">if</span> (event.type==ALLEGRO_EVENT_DISPLAY_CLOSE || (event.type==ALLEGRO_EVENT_KEY_CHAR &amp;&amp; event.keyboard.keycode==ALLEGRO_KEY_ESCAPE))
+<a name="l00135"></a>00135 {
+<a name="l00136"></a>00136 al_flush_event_queue(<a class="code" href="class_screen.html#aa4ea622368bdf47a3b22d026048ee83a" title="Events caught by the screen, checked for an exit command.">_windowEvents</a>);
+<a name="l00137"></a>00137 <a class="code" href="class_screen.html#ae7f213f79bf9680e0ff3f4b52ebf051f" title="Set to true when the user chooses to quit the game.">_exitClicked</a> = <span class="keyword">true</span>;
+<a name="l00138"></a>00138 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00139"></a>00139 }
+<a name="l00140"></a>00140 }
+<a name="l00141"></a>00141
+<a name="l00142"></a>00142 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00143"></a>00143 }
+<a name="l00144"></a>00144
+<a name="l00145"></a><a class="code" href="class_screen.html#a6480d57328a39c579f312774b5fbf571">00145</a> <span class="keywordtype">bool</span> <a class="code" href="class_screen.html#a6480d57328a39c579f312774b5fbf571" title="Checks the current resolution (_screenWidth and _screenHeight) against the screen&#39;s supported resolut...">Screen::resolutionSupported</a>()
+<a name="l00146"></a>00146 {
+<a name="l00147"></a>00147 ALLEGRO_DISPLAY_MODE mode;
+<a name="l00148"></a>00148 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i&lt;al_get_num_display_modes(); ++i)
+<a name="l00149"></a>00149 {
+<a name="l00150"></a>00150 al_get_display_mode(i, &amp;mode);
+<a name="l00151"></a>00151
+<a name="l00152"></a>00152 <span class="keywordflow">if</span> (static_cast&lt;unsigned int&gt;(mode.width)==<a class="code" href="class_screen.html#a5931238a3eb8cf1a14b0f8b8d7044b65" title="Horizontal number of pixels per row on the screen.">_screenWidth</a> &amp;&amp; static_cast&lt;unsigned int&gt;(mode.height)==<a class="code" href="class_screen.html#a8784c86e10d2b6af0dd99d710f3955e9" title="Vertical number of pixels per column on the screen.">_screenHeight</a>)
+<a name="l00153"></a>00153 {
+<a name="l00154"></a>00154 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00155"></a>00155 }
+<a name="l00156"></a>00156 }
+<a name="l00157"></a>00157
+<a name="l00158"></a>00158 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00159"></a>00159 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_screen_8h.html b/docs/html/_screen_8h.html
new file mode 100644
index 0000000..03120a6
--- /dev/null
+++ b/docs/html/_screen_8h.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/Screen.h File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">source/presentation/Screen.h File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &lt;list&gt;</code><br/>
+<code>#include &lt;algorithm&gt;</code><br/>
+<code>#include &lt;sstream&gt;</code><br/>
+<code>#include &lt;allegro5/allegro.h&gt;</code><br/>
+<code>#include &lt;allegro5/allegro_native_dialog.h&gt;</code><br/>
+<code>#include &quot;../logic/Maze.h&quot;</code><br/>
+<code>#include &quot;../logic/GameObject.h&quot;</code><br/>
+<code>#include &quot;../logic/PlayerCar.h&quot;</code><br/>
+<code>#include &quot;../logic/EnemyCar.h&quot;</code><br/>
+<code>#include &quot;../logic/Checkpoint.h&quot;</code><br/>
+<code>#include &quot;../logic/Rock.h&quot;</code><br/>
+<code>#include &quot;../logic/Smokescreen.h&quot;</code><br/>
+<code>#include &quot;../logic/DestroyedObjectPopup.h&quot;</code><br/>
+<code>#include &quot;../logic/AllegroWrappers.h&quot;</code><br/>
+<code>#include &quot;../presentation/GamePanel.h&quot;</code><br/>
+<code>#include &quot;../presentation/InfoPanel.h&quot;</code><br/>
+</div>
+<p><a href="_screen_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bad_resolution.html">BadResolution</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Exception that is thrown if the <a class="el" href="class_config.html" title="Object for handling user settings loaded from a file.">Config</a> file requests a resolution that can not work. <a href="class_bad_resolution.html#details">More...</a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen.html">Screen</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Class for creating a window on the screen. <a href="class_screen.html#details">More...</a><br/></td></tr>
+</table>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_screen_8h_source.html b/docs/html/_screen_8h_source.html
new file mode 100644
index 0000000..1cb09ea
--- /dev/null
+++ b/docs/html/_screen_8h_source.html
@@ -0,0 +1,177 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/Screen.h Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/presentation/Screen.h</div> </div>
+</div>
+<div class="contents">
+<a href="_screen_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef SCREEN_H</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define SCREEN_H</span>
+<a name="l00003"></a>00003 <span class="preprocessor"></span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;list&gt;</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include &lt;algorithm&gt;</span>
+<a name="l00006"></a>00006 <span class="preprocessor">#include &lt;sstream&gt;</span>
+<a name="l00007"></a>00007 <span class="keyword">using namespace </span>std;
+<a name="l00008"></a>00008
+<a name="l00009"></a>00009 <span class="preprocessor">#include &lt;allegro5/allegro.h&gt;</span>
+<a name="l00010"></a>00010 <span class="preprocessor">#include &lt;allegro5/allegro_native_dialog.h&gt;</span>
+<a name="l00011"></a>00011
+<a name="l00012"></a>00012 <span class="preprocessor">#include &quot;../logic/Maze.h&quot;</span>
+<a name="l00013"></a>00013 <span class="preprocessor">#include &quot;../logic/GameObject.h&quot;</span>
+<a name="l00014"></a>00014 <span class="preprocessor">#include &quot;../logic/PlayerCar.h&quot;</span>
+<a name="l00015"></a>00015 <span class="preprocessor">#include &quot;../logic/EnemyCar.h&quot;</span>
+<a name="l00016"></a>00016 <span class="preprocessor">#include &quot;../logic/Checkpoint.h&quot;</span>
+<a name="l00017"></a>00017 <span class="preprocessor">#include &quot;../logic/Rock.h&quot;</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include &quot;../logic/Smokescreen.h&quot;</span>
+<a name="l00019"></a>00019 <span class="preprocessor">#include &quot;../logic/DestroyedObjectPopup.h&quot;</span>
+<a name="l00020"></a>00020 <span class="preprocessor">#include &quot;../logic/AllegroWrappers.h&quot;</span>
+<a name="l00021"></a>00021
+<a name="l00022"></a>00022 <span class="preprocessor">#include &quot;../presentation/GamePanel.h&quot;</span>
+<a name="l00023"></a>00023 <span class="preprocessor">#include &quot;../presentation/InfoPanel.h&quot;</span>
+<a name="l00024"></a>00024
+<a name="l00031"></a><a class="code" href="class_bad_resolution.html">00031</a> <span class="keyword">class </span><a class="code" href="class_bad_resolution.html" title="Exception that is thrown if the Config file requests a resolution that can not work.">BadResolution</a>{};
+<a name="l00032"></a>00032
+<a name="l00044"></a><a class="code" href="class_screen.html">00044</a> <span class="keyword">class </span><a class="code" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a>
+<a name="l00045"></a>00045 {
+<a name="l00046"></a>00046 <span class="keyword">public</span>:
+<a name="l00054"></a>00054 <a class="code" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> screenWidth, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> screenHeight, <span class="keywordtype">bool</span> fullscreen);
+<a name="l00055"></a>00055
+<a name="l00059"></a>00059 ~<a class="code" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a>();
+<a name="l00060"></a>00060
+<a name="l00069"></a>00069 <span class="keywordtype">string</span> getLevel();
+<a name="l00070"></a>00070
+<a name="l00085"></a>00085 <span class="keywordtype">void</span> draw(<span class="keyword">const</span> <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>&amp; maze, <span class="keyword">const</span> list&lt;PlayerCar&gt;&amp; players, <span class="keyword">const</span> list&lt;EnemyCar&gt;&amp; enemies, <span class="keyword">const</span> list&lt;Checkpoint&gt;&amp; checkpoints, <span class="keyword">const</span> list&lt;Rock&gt;&amp; rocks, <span class="keyword">const</span> list&lt;Smokescreen&gt;&amp; smokescreens, <span class="keyword">const</span> list&lt;DestroyedObjectPopup&gt;&amp; popups);
+<a name="l00086"></a>00086
+<a name="l00095"></a>00095 <span class="keywordtype">bool</span> exitClicked();
+<a name="l00096"></a>00096
+<a name="l00100"></a>00100 <span class="keywordtype">void</span> drawWin();
+<a name="l00104"></a>00104 <span class="keywordtype">void</span> drawLoss();
+<a name="l00105"></a>00105
+<a name="l00106"></a>00106 <span class="keyword">private</span>:
+<a name="l00112"></a>00112 <a class="code" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a>(<span class="keyword">const</span> <a class="code" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a>&amp; ref);
+<a name="l00118"></a>00118 <a class="code" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a>&amp; rhs);
+<a name="l00119"></a>00119
+<a name="l00123"></a>00123 <span class="keywordtype">void</span> flip();
+<a name="l00124"></a>00124
+<a name="l00132"></a>00132 <span class="keywordtype">bool</span> resolutionSupported();
+<a name="l00133"></a>00133
+<a name="l00134"></a><a class="code" href="class_screen.html#ae0863416022fcb59189d2aefd3345621">00134</a> <a class="code" href="class_allegro_init.html" title="Class ensures that Allegro is initialized and uninstalled when appropriate.">AllegroInit</a> <a class="code" href="class_screen.html#ae0863416022fcb59189d2aefd3345621" title="Ensures that Allegro has been installed, for event queues and creating the display.">_allegro</a>;
+<a name="l00135"></a><a class="code" href="class_screen.html#a0c5cff1b93dae4d559a81d261a8bcee6">00135</a> <a class="code" href="class_allegro_keyboard_init.html" title="Class ensures that Allegro&#39;s keyboard is installed and uninstalled when appropriate.">AllegroKeyboardInit</a> <a class="code" href="class_screen.html#a0c5cff1b93dae4d559a81d261a8bcee6" title="Ensures that the keyboard has been installed, for checking for the ESC key.">_keyboard</a>;
+<a name="l00136"></a><a class="code" href="class_screen.html#a2dafde8aecbd3bc3c4394f36df913b64">00136</a> <a class="code" href="class_allegro_drawing_init.html" title="Class ensures that Allegro&#39;s primitive and text drawing is installed and uninstalled when appropriate...">AllegroDrawingInit</a> <a class="code" href="class_screen.html#a2dafde8aecbd3bc3c4394f36df913b64" title="Ensures that drawing operations have been installed, for drawing splash screens.">_drawing</a>;
+<a name="l00137"></a>00137
+<a name="l00138"></a><a class="code" href="class_screen.html#ae7f213f79bf9680e0ff3f4b52ebf051f">00138</a> <span class="keywordtype">bool</span> <a class="code" href="class_screen.html#ae7f213f79bf9680e0ff3f4b52ebf051f" title="Set to true when the user chooses to quit the game.">_exitClicked</a>;
+<a name="l00139"></a>00139
+<a name="l00140"></a><a class="code" href="class_screen.html#a5931238a3eb8cf1a14b0f8b8d7044b65">00140</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_screen.html#a5931238a3eb8cf1a14b0f8b8d7044b65" title="Horizontal number of pixels per row on the screen.">_screenWidth</a>;
+<a name="l00141"></a><a class="code" href="class_screen.html#a8784c86e10d2b6af0dd99d710f3955e9">00141</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_screen.html#a8784c86e10d2b6af0dd99d710f3955e9" title="Vertical number of pixels per column on the screen.">_screenHeight</a>;
+<a name="l00142"></a>00142
+<a name="l00143"></a><a class="code" href="class_screen.html#a7cba9fb0069d763055ef351452a15227">00143</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_screen.html#a7cba9fb0069d763055ef351452a15227" title="Width of the GamePanel created.">_gameAreaWidth</a>;
+<a name="l00144"></a><a class="code" href="class_screen.html#ab895e588a89e1943303487d47a2b9216">00144</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_screen.html#ab895e588a89e1943303487d47a2b9216" title="Width of the InfoPanel created. The InfoPanel is placed directly to the right of the GamePanel...">_infoPanelWidth</a>;
+<a name="l00145"></a>00145
+<a name="l00146"></a><a class="code" href="class_screen.html#a4972e24cf3677e51b18feac34a563ba0">00146</a> ALLEGRO_DISPLAY* <a class="code" href="class_screen.html#a4972e24cf3677e51b18feac34a563ba0" title="The window created on the player&#39;s monitor to see the game.">_display</a>;
+<a name="l00147"></a><a class="code" href="class_screen.html#aa4ea622368bdf47a3b22d026048ee83a">00147</a> ALLEGRO_EVENT_QUEUE* <a class="code" href="class_screen.html#aa4ea622368bdf47a3b22d026048ee83a" title="Events caught by the screen, checked for an exit command.">_windowEvents</a>;
+<a name="l00148"></a><a class="code" href="class_screen.html#a42a627863a8f9d1529278cb060d4102b">00148</a> ALLEGRO_FONT* <a class="code" href="class_screen.html#a42a627863a8f9d1529278cb060d4102b" title="Font used in drawing splash screens.">_font</a>;
+<a name="l00149"></a>00149
+<a name="l00156"></a><a class="code" href="class_screen.html#a30ba66122613181e312e0d7586d2a814">00156</a> vector&lt;ScreenPanel*&gt; <a class="code" href="class_screen.html#a30ba66122613181e312e0d7586d2a814" title="Polymorphic container used to encapsulate the different types of drawing to the screen.">_panels</a>;
+<a name="l00157"></a>00157 };
+<a name="l00158"></a>00158
+<a name="l00159"></a>00159 <span class="preprocessor">#endif // SCREEN_H</span>
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_screen_panel_8cpp.html b/docs/html/_screen_panel_8cpp.html
new file mode 100644
index 0000000..34d12e2
--- /dev/null
+++ b/docs/html/_screen_panel_8cpp.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/ScreenPanel.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/presentation/ScreenPanel.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_screen_panel_8h_source.html">ScreenPanel.h</a>&quot;</code><br/>
+</div>
+<p><a href="_screen_panel_8cpp_source.html">Go to the source code of this file.</a></p>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_screen_panel_8cpp_source.html b/docs/html/_screen_panel_8cpp_source.html
new file mode 100644
index 0000000..e970de8
--- /dev/null
+++ b/docs/html/_screen_panel_8cpp_source.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/ScreenPanel.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/presentation/ScreenPanel.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="_screen_panel_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &quot;<a class="code" href="_screen_panel_8h.html">ScreenPanel.h</a>&quot;</span>
+<a name="l00002"></a>00002
+<a name="l00003"></a>00003 <span class="keyword">const</span> ALLEGRO_COLOR <a class="code" href="class_screen_panel.html#a1cc6ea44035f47d77d24b4cee9dc9d85" title="Colour used to clear the screen at the beginning of drawing operations.">ScreenPanel::BLANK</a> = al_map_rgb(0,0,0);
+<a name="l00004"></a>00004
+<a name="l00005"></a><a class="code" href="class_screen_panel.html#a8c13559489444ea8131066fa5b884645">00005</a> <a class="code" href="class_screen_panel.html#a8c13559489444ea8131066fa5b884645" title="Creates a ScreenPanel from the given back and front buffers.">ScreenPanel::ScreenPanel</a>(ALLEGRO_BITMAP* back, ALLEGRO_BITMAP* front, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height)
+<a name="l00006"></a>00006 :_width(width),
+<a name="l00007"></a>00007 _height(height)
+<a name="l00008"></a>00008 {
+<a name="l00009"></a>00009 <a class="code" href="class_screen_panel.html#a1a3ec8e60be5d5cede210171bda33468" title="The back buffer. Only the back buffer can be drawn to.">_back</a> = al_create_sub_bitmap(back, x, y, <a class="code" href="class_screen_panel.html#afbbcad2a101b95869dcdef9bf0898f65" title="The width of the sub-bitmaps being drawn to in pixels.">_width</a>, <a class="code" href="class_screen_panel.html#a4f6dd5c7ca10d51bface7b1ddedc236c" title="The height of the sub-bitmaps being drawn to in pixels.">_height</a>);
+<a name="l00010"></a>00010 <a class="code" href="class_screen_panel.html#a0a3232c41ca107b2cceee73aa0e0d7fe" title="The front buffer, that is currently being shown on the screen.">_front</a> = al_create_sub_bitmap(front, x, y, <a class="code" href="class_screen_panel.html#afbbcad2a101b95869dcdef9bf0898f65" title="The width of the sub-bitmaps being drawn to in pixels.">_width</a>, <a class="code" href="class_screen_panel.html#a4f6dd5c7ca10d51bface7b1ddedc236c" title="The height of the sub-bitmaps being drawn to in pixels.">_height</a>);
+<a name="l00011"></a>00011 }
+<a name="l00012"></a>00012
+<a name="l00013"></a><a class="code" href="class_screen_panel.html#a843296c130c75beb41ada9ba3eddd457">00013</a> <a class="code" href="class_screen_panel.html#a843296c130c75beb41ada9ba3eddd457" title="Destructor to ensure that sub-bitmap memory is deallocated.">ScreenPanel::~ScreenPanel</a>()
+<a name="l00014"></a>00014 {
+<a name="l00015"></a>00015 al_destroy_bitmap(<a class="code" href="class_screen_panel.html#a1a3ec8e60be5d5cede210171bda33468" title="The back buffer. Only the back buffer can be drawn to.">_back</a>);
+<a name="l00016"></a>00016 al_destroy_bitmap(<a class="code" href="class_screen_panel.html#a0a3232c41ca107b2cceee73aa0e0d7fe" title="The front buffer, that is currently being shown on the screen.">_front</a>);
+<a name="l00017"></a>00017 }
+<a name="l00018"></a>00018
+<a name="l00019"></a><a class="code" href="class_screen_panel.html#ab701d3888b13463d200be112f0eb4d82">00019</a> <span class="keywordtype">void</span> <a class="code" href="class_screen_panel.html#ab701d3888b13463d200be112f0eb4d82" title="Swaps the front and back buffers.">ScreenPanel::flip</a>()
+<a name="l00020"></a>00020 {
+<a name="l00021"></a>00021 ALLEGRO_BITMAP* temp = <a class="code" href="class_screen_panel.html#a1a3ec8e60be5d5cede210171bda33468" title="The back buffer. Only the back buffer can be drawn to.">_back</a>;
+<a name="l00022"></a>00022 <a class="code" href="class_screen_panel.html#a1a3ec8e60be5d5cede210171bda33468" title="The back buffer. Only the back buffer can be drawn to.">_back</a> = <a class="code" href="class_screen_panel.html#a0a3232c41ca107b2cceee73aa0e0d7fe" title="The front buffer, that is currently being shown on the screen.">_front</a>;
+<a name="l00023"></a>00023 <a class="code" href="class_screen_panel.html#a0a3232c41ca107b2cceee73aa0e0d7fe" title="The front buffer, that is currently being shown on the screen.">_front</a> = temp;
+<a name="l00024"></a>00024 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_screen_panel_8h.html b/docs/html/_screen_panel_8h.html
new file mode 100644
index 0000000..751705e
--- /dev/null
+++ b/docs/html/_screen_panel_8h.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/ScreenPanel.h File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">source/presentation/ScreenPanel.h File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &lt;allegro5/allegro.h&gt;</code><br/>
+<code>#include &quot;../logic/Maze.h&quot;</code><br/>
+<code>#include &quot;../logic/GameObject.h&quot;</code><br/>
+<code>#include &quot;../logic/PlayerCar.h&quot;</code><br/>
+<code>#include &quot;../logic/EnemyCar.h&quot;</code><br/>
+<code>#include &quot;../logic/Checkpoint.h&quot;</code><br/>
+<code>#include &quot;../logic/Rock.h&quot;</code><br/>
+<code>#include &quot;../logic/Smokescreen.h&quot;</code><br/>
+<code>#include &quot;../logic/DestroyedObjectPopup.h&quot;</code><br/>
+<code>#include &quot;../logic/AllegroWrappers.h&quot;</code><br/>
+</div>
+<p><a href="_screen_panel_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen_panel.html">ScreenPanel</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Parent class for panels that are drawn on the screen. <a href="class_screen_panel.html#details">More...</a><br/></td></tr>
+</table>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_screen_panel_8h_source.html b/docs/html/_screen_panel_8h_source.html
new file mode 100644
index 0000000..4f86b51
--- /dev/null
+++ b/docs/html/_screen_panel_8h_source.html
@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/presentation/ScreenPanel.h Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/presentation/ScreenPanel.h</div> </div>
+</div>
+<div class="contents">
+<a href="_screen_panel_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef SCREENPANEL_H</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define SCREENPANEL_H</span>
+<a name="l00003"></a>00003 <span class="preprocessor"></span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;allegro5/allegro.h&gt;</span>
+<a name="l00005"></a>00005
+<a name="l00006"></a>00006 <span class="preprocessor">#include &quot;../logic/Maze.h&quot;</span>
+<a name="l00007"></a>00007 <span class="preprocessor">#include &quot;../logic/GameObject.h&quot;</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#include &quot;../logic/PlayerCar.h&quot;</span>
+<a name="l00009"></a>00009 <span class="preprocessor">#include &quot;../logic/EnemyCar.h&quot;</span>
+<a name="l00010"></a>00010 <span class="preprocessor">#include &quot;../logic/Checkpoint.h&quot;</span>
+<a name="l00011"></a>00011 <span class="preprocessor">#include &quot;../logic/Rock.h&quot;</span>
+<a name="l00012"></a>00012 <span class="preprocessor">#include &quot;../logic/Smokescreen.h&quot;</span>
+<a name="l00013"></a>00013 <span class="preprocessor">#include &quot;../logic/DestroyedObjectPopup.h&quot;</span>
+<a name="l00014"></a>00014 <span class="preprocessor">#include &quot;../logic/AllegroWrappers.h&quot;</span>
+<a name="l00015"></a>00015
+<a name="l00029"></a><a class="code" href="class_screen_panel.html">00029</a> <span class="keyword">class </span><a class="code" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a>
+<a name="l00030"></a>00030 {
+<a name="l00031"></a>00031 <span class="keyword">public</span>:
+<a name="l00046"></a>00046 <a class="code" href="class_screen_panel.html#a8c13559489444ea8131066fa5b884645" title="Creates a ScreenPanel from the given back and front buffers.">ScreenPanel</a>(ALLEGRO_BITMAP* back, ALLEGRO_BITMAP* front, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height);
+<a name="l00047"></a>00047
+<a name="l00051"></a>00051 <span class="keyword">virtual</span> <a class="code" href="class_screen_panel.html#a843296c130c75beb41ada9ba3eddd457" title="Destructor to ensure that sub-bitmap memory is deallocated.">~ScreenPanel</a>();
+<a name="l00052"></a>00052
+<a name="l00067"></a>00067 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_screen_panel.html#ab4299f065cdf3e344c3b32b484136ada" title="Pure virtual method for drawing a collection of objects onto the panel.">draw</a>(<span class="keyword">const</span> <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>&amp; maze, <span class="keyword">const</span> list&lt;PlayerCar&gt;&amp; players, <span class="keyword">const</span> list&lt;EnemyCar&gt;&amp; enemies, <span class="keyword">const</span> list&lt;Checkpoint&gt;&amp; checkpoints, <span class="keyword">const</span> list&lt;Rock&gt;&amp; rocks, <span class="keyword">const</span> list&lt;Smokescreen&gt;&amp; smokescreens, <span class="keyword">const</span> list&lt;DestroyedObjectPopup&gt;&amp; popups) = 0;
+<a name="l00068"></a>00068
+<a name="l00074"></a>00074 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_screen_panel.html#ab701d3888b13463d200be112f0eb4d82" title="Swaps the front and back buffers.">flip</a>();
+<a name="l00075"></a>00075
+<a name="l00076"></a>00076 <span class="keyword">protected</span>:
+<a name="l00077"></a><a class="code" href="class_screen_panel.html#a1cc6ea44035f47d77d24b4cee9dc9d85">00077</a> <span class="keyword">static</span> <span class="keyword">const</span> ALLEGRO_COLOR <a class="code" href="class_screen_panel.html#a1cc6ea44035f47d77d24b4cee9dc9d85" title="Colour used to clear the screen at the beginning of drawing operations.">BLANK</a>;
+<a name="l00078"></a>00078
+<a name="l00079"></a><a class="code" href="class_screen_panel.html#a1a3ec8e60be5d5cede210171bda33468">00079</a> ALLEGRO_BITMAP* <a class="code" href="class_screen_panel.html#a1a3ec8e60be5d5cede210171bda33468" title="The back buffer. Only the back buffer can be drawn to.">_back</a>;
+<a name="l00080"></a>00080
+<a name="l00081"></a><a class="code" href="class_screen_panel.html#afbbcad2a101b95869dcdef9bf0898f65">00081</a> <span class="keywordtype">int</span> <a class="code" href="class_screen_panel.html#afbbcad2a101b95869dcdef9bf0898f65" title="The width of the sub-bitmaps being drawn to in pixels.">_width</a>;
+<a name="l00082"></a><a class="code" href="class_screen_panel.html#a4f6dd5c7ca10d51bface7b1ddedc236c">00082</a> <span class="keywordtype">int</span> <a class="code" href="class_screen_panel.html#a4f6dd5c7ca10d51bface7b1ddedc236c" title="The height of the sub-bitmaps being drawn to in pixels.">_height</a>;
+<a name="l00083"></a>00083 <span class="keyword">private</span>:
+<a name="l00087"></a>00087 <a class="code" href="class_screen_panel.html#a8c13559489444ea8131066fa5b884645" title="Creates a ScreenPanel from the given back and front buffers.">ScreenPanel</a>(<span class="keyword">const</span> <a class="code" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a>&amp; ref);
+<a name="l00091"></a>00091 <a class="code" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a>&amp; <a class="code" href="class_screen_panel.html#a896035d9c68aecd6ca802e2223d26ec5" title="Assignment operator not implemented, ScreenPanels should not be copied.">operator=</a>(<span class="keyword">const</span> <a class="code" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a>&amp; rhs);
+<a name="l00092"></a>00092
+<a name="l00093"></a><a class="code" href="class_screen_panel.html#a3877f04c03866e35588f0b753ee7c485">00093</a> <a class="code" href="class_allegro_init.html" title="Class ensures that Allegro is initialized and uninstalled when appropriate.">AllegroInit</a> <a class="code" href="class_screen_panel.html#a3877f04c03866e35588f0b753ee7c485" title="Handles dependencies on Allegro being initialised.">_allegro</a>;
+<a name="l00094"></a>00094
+<a name="l00095"></a><a class="code" href="class_screen_panel.html#a0a3232c41ca107b2cceee73aa0e0d7fe">00095</a> ALLEGRO_BITMAP* <a class="code" href="class_screen_panel.html#a0a3232c41ca107b2cceee73aa0e0d7fe" title="The front buffer, that is currently being shown on the screen.">_front</a>;
+<a name="l00096"></a>00096 };
+<a name="l00097"></a>00097
+<a name="l00098"></a>00098 <span class="preprocessor">#endif // SCREENPANEL_H</span>
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_smokescreen_8cpp.html b/docs/html/_smokescreen_8cpp.html
new file mode 100644
index 0000000..c4d18b6
--- /dev/null
+++ b/docs/html/_smokescreen_8cpp.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/Smokescreen.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/Smokescreen.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_smokescreen_8h_source.html">Smokescreen.h</a>&quot;</code><br/>
+</div>
+<p><a href="_smokescreen_8cpp_source.html">Go to the source code of this file.</a></p>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_smokescreen_8cpp_source.html b/docs/html/_smokescreen_8cpp_source.html
new file mode 100644
index 0000000..905054a
--- /dev/null
+++ b/docs/html/_smokescreen_8cpp_source.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/Smokescreen.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/Smokescreen.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="_smokescreen_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &quot;<a class="code" href="_smokescreen_8h.html">Smokescreen.h</a>&quot;</span>
+<a name="l00002"></a>00002
+<a name="l00003"></a><a class="code" href="class_smokescreen.html#ad112d610ab5b88da319e0cf46a5a1344">00003</a> <a class="code" href="class_smokescreen.html#ad112d610ab5b88da319e0cf46a5a1344" title="Creates a Smokescreen at the given location.">Smokescreen::Smokescreen</a>(<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y)
+<a name="l00004"></a>00004 :<a class="code" href="class_limited_time_object.html" title="Parent class for GameObjects that are created, exist for a given time, and are then destroyed...">LimitedTimeObject</a>(x,y,<a class="code" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a>::SMOKE,SMOKE_TIME)
+<a name="l00005"></a>00005 {
+<a name="l00006"></a>00006 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_smokescreen_8h.html b/docs/html/_smokescreen_8h.html
new file mode 100644
index 0000000..39f0616
--- /dev/null
+++ b/docs/html/_smokescreen_8h.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/Smokescreen.h File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">source/logic/Smokescreen.h File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;../logic/LimitedTimeObject.h&quot;</code><br/>
+<code>#include &quot;../presentation/BitmapStore.h&quot;</code><br/>
+</div>
+<p><a href="_smokescreen_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_smokescreen.html">Smokescreen</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> that causes the <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> to be delayed if they crash into it. <a href="class_smokescreen.html#details">More...</a><br/></td></tr>
+</table>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/_smokescreen_8h_source.html b/docs/html/_smokescreen_8h_source.html
new file mode 100644
index 0000000..222ae3d
--- /dev/null
+++ b/docs/html/_smokescreen_8h_source.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/logic/Smokescreen.h Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/logic/Smokescreen.h</div> </div>
+</div>
+<div class="contents">
+<a href="_smokescreen_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef SMOKESCREEN_H</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define SMOKESCREEN_H</span>
+<a name="l00003"></a>00003 <span class="preprocessor"></span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include &quot;../logic/LimitedTimeObject.h&quot;</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include &quot;../presentation/BitmapStore.h&quot;</span>
+<a name="l00006"></a>00006
+<a name="l00015"></a><a class="code" href="class_smokescreen.html">00015</a> <span class="keyword">class </span><a class="code" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> : <span class="keyword">public</span> <a class="code" href="class_limited_time_object.html" title="Parent class for GameObjects that are created, exist for a given time, and are then destroyed...">LimitedTimeObject</a>
+<a name="l00016"></a>00016 {
+<a name="l00017"></a>00017 <span class="keyword">public</span>:
+<a name="l00024"></a>00024 <a class="code" href="class_smokescreen.html#ad112d610ab5b88da319e0cf46a5a1344" title="Creates a Smokescreen at the given location.">Smokescreen</a>(<span class="keywordtype">double</span> <a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>, <span class="keywordtype">double</span> <a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>);
+<a name="l00025"></a>00025
+<a name="l00026"></a>00026 <span class="comment">//assignment and copy constructors have been left with the compiler generated versions</span>
+<a name="l00027"></a>00027 <span class="keyword">private</span>:
+<a name="l00028"></a><a class="code" href="class_smokescreen.html#aca053d39fcca8d45096512e92fb0f4d8">00028</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="class_smokescreen.html#aca053d39fcca8d45096512e92fb0f4d8" title="The number of frames that the Smokescreen exists before it is destroyed. 2 second at FPS=30...">SMOKE_TIME</a> = 60;
+<a name="l00029"></a>00029 };
+<a name="l00030"></a>00030
+<a name="l00031"></a>00031 <span class="preprocessor">#endif // SMOKESCREEN_H</span>
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/annotated.html b/docs/html/annotated.html
new file mode 100644
index 0000000..0f5f45f
--- /dev/null
+++ b/docs/html/annotated.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">Class List</div> </div>
+</div>
+<div class="contents">
+<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><table>
+ <tr><td class="indexkey"><a class="el" href="class_allegro_drawing_init.html">AllegroDrawingInit</a></td><td class="indexvalue">Class ensures that Allegro's primitive and text drawing is installed and uninstalled when appropriate </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_allegro_init.html">AllegroInit</a></td><td class="indexvalue">Class ensures that Allegro is initialized and uninstalled when appropriate </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_allegro_keyboard_init.html">AllegroKeyboardInit</a></td><td class="indexvalue">Class ensures that Allegro's keyboard is installed and uninstalled when appropriate </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_bad_resolution.html">BadResolution</a></td><td class="indexvalue">Exception that is thrown if the <a class="el" href="class_config.html" title="Object for handling user settings loaded from a file.">Config</a> file requests a resolution that can not work </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td class="indexvalue">Class for accessing images in ALLEGRO_BITMAP format and low level drawing </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_car.html">Car</a></td><td class="indexvalue"><a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> that moves through the maze and changes direction </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_checkpoint.html">Checkpoint</a></td><td class="indexvalue"><a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> that the player needs to pick up by driving over </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_collision_detector.html">CollisionDetector</a></td><td class="indexvalue">Object for handling collisions between GameObjects </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_colour_store.html">ColourStore</a></td><td class="indexvalue">Class for mapping <a class="el" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a> images to colours for use in the minimap </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_config.html">Config</a></td><td class="indexvalue">Object for handling user settings loaded from a file </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_destroyed_object_popup.html">DestroyedObjectPopup</a></td><td class="indexvalue">Object that appears on the screen for a short time when another object has been destroyed </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_enemy_car.html">EnemyCar</a></td><td class="indexvalue"><a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> that chases the player around the maze </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_file_open_error.html">FileOpenError</a></td><td class="indexvalue">An exception that is thrown if the file selected for opening does not exist </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_game.html">Game</a></td><td class="indexvalue">The object that controls the flow of the game, and the launch point of the game </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_game_object.html">GameObject</a></td><td class="indexvalue">Parent class for objects that are placed in the maze </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_game_panel.html">GamePanel</a></td><td class="indexvalue"><a class="el" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a> to be drawn on the screen to draw the area where the game takes place </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_info_panel.html">InfoPanel</a></td><td class="indexvalue"><a class="el" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a> to be drawn on the screen to give the player information </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_install_failure.html">InstallFailure</a></td><td class="indexvalue">Exception to be thrown if any component of Allegro fails to install at runtime </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a></td><td class="indexvalue">Class for handling keyboard related game inputs from the player </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_level_reader.html">LevelReader</a></td><td class="indexvalue">Reads the game objects from a text file and calls relevant constructors </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_limited_time_object.html">LimitedTimeObject</a></td><td class="indexvalue">Parent class for GameObjects that are created, exist for a given time, and are then destroyed </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_maze.html">Maze</a></td><td class="indexvalue">A rectangular 2D boolean array, representing where cars can drive and where they cannot </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_maze_math.html">MazeMath</a></td><td class="indexvalue">Class of static methods for common math functions that occur in the 2D maze setting </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_player_car.html">PlayerCar</a></td><td class="indexvalue">A <a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> that is controlled by the player </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_rock.html">Rock</a></td><td class="indexvalue">A game object that acts as an obstacle to the player </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_screen.html">Screen</a></td><td class="indexvalue">Class for creating a window on the screen </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td class="indexvalue">Parent class for panels that are drawn on the screen </td></tr>
+ <tr><td class="indexkey"><a class="el" href="class_smokescreen.html">Smokescreen</a></td><td class="indexvalue"><a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> that causes the <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> to be delayed if they crash into it </td></tr>
+</table>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/bc_s.png b/docs/html/bc_s.png
new file mode 100644
index 0000000..51ba006
--- /dev/null
+++ b/docs/html/bc_s.png
Binary files differ
diff --git a/docs/html/car.PNG b/docs/html/car.PNG
new file mode 100644
index 0000000..93126c7
--- /dev/null
+++ b/docs/html/car.PNG
Binary files differ
diff --git a/docs/html/carBig.PNG b/docs/html/carBig.PNG
new file mode 100644
index 0000000..dc3a68e
--- /dev/null
+++ b/docs/html/carBig.PNG
Binary files differ
diff --git a/docs/html/class_allegro_drawing_init-members.html b/docs/html/class_allegro_drawing_init-members.html
new file mode 100644
index 0000000..b983f4a
--- /dev/null
+++ b/docs/html/class_allegro_drawing_init-members.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Member List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">AllegroDrawingInit Member List</div> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="class_allegro_drawing_init.html">AllegroDrawingInit</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="class_allegro_drawing_init.html#a8254ecb9b3ad13409ff1ec1cfeee66ef">_allegro</a></td><td><a class="el" href="class_allegro_drawing_init.html">AllegroDrawingInit</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_allegro_drawing_init.html#a78e8f792c6dba89eddf42e74d4a3d577">_initCount</a></td><td><a class="el" href="class_allegro_drawing_init.html">AllegroDrawingInit</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_allegro_drawing_init.html#ab7cf79c71bf662f897bd8cba32f42cda">AllegroDrawingInit</a>()</td><td><a class="el" href="class_allegro_drawing_init.html">AllegroDrawingInit</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_allegro_drawing_init.html#a36fe883267f017f3832feb1f615d7488">AllegroDrawingInit</a>(const AllegroDrawingInit &amp;ref)</td><td><a class="el" href="class_allegro_drawing_init.html">AllegroDrawingInit</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_allegro_drawing_init.html#aa1c05a296b0c63f8f20276cce6472e6b">~AllegroDrawingInit</a>()</td><td><a class="el" href="class_allegro_drawing_init.html">AllegroDrawingInit</a></td><td></td></tr>
+</table></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_allegro_drawing_init.html b/docs/html/class_allegro_drawing_init.html
new file mode 100644
index 0000000..2196ad0
--- /dev/null
+++ b/docs/html/class_allegro_drawing_init.html
@@ -0,0 +1,241 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: AllegroDrawingInit Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> &#124;
+<a href="#pri-static-attribs">Static Private Attributes</a> </div>
+ <div class="headertitle">
+<div class="title">AllegroDrawingInit Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="AllegroDrawingInit" -->
+<p>Class ensures that Allegro's primitive and text drawing is installed and uninstalled when appropriate.
+ <a href="class_allegro_drawing_init.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_allegro_wrappers_8h_source.html">AllegroWrappers.h</a>&gt;</code></p>
+
+<p><a href="class_allegro_drawing_init-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_allegro_drawing_init.html#ab7cf79c71bf662f897bd8cba32f42cda">AllegroDrawingInit</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor calls al_init_primitives_addon(), al_init_font_addon(), and al_init_ttf_addon() if it is the first instance. <a href="#ab7cf79c71bf662f897bd8cba32f42cda"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_allegro_drawing_init.html#a36fe883267f017f3832feb1f615d7488">AllegroDrawingInit</a> (const <a class="el" href="class_allegro_drawing_init.html">AllegroDrawingInit</a> &amp;ref)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor, implemented to be included in instance count. <a href="#a36fe883267f017f3832feb1f615d7488"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_allegro_drawing_init.html#aa1c05a296b0c63f8f20276cce6472e6b">~AllegroDrawingInit</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor calls al_shutdown_primitives_addon(), al_shutdown_font_addon(), and al_shutdown_ttf_addon() if it is the last instant. <a href="#aa1c05a296b0c63f8f20276cce6472e6b"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_allegro_init.html">AllegroInit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_allegro_drawing_init.html#a8254ecb9b3ad13409ff1ec1cfeee66ef">_allegro</a></td></tr>
+<tr><td colspan="2"><h2><a name="pri-static-attribs"></a>
+Static Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_allegro_drawing_init.html#a78e8f792c6dba89eddf42e74d4a3d577">_initCount</a> = 0</td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Class ensures that Allegro's primitive and text drawing is installed and uninstalled when appropriate. </p>
+<p>Any classes that draw primitives should include this class as a data member. This class includes <a class="el" href="class_allegro_init.html" title="Class ensures that Allegro is initialized and uninstalled when appropriate.">AllegroInit</a>, so both of them do not need to be included.</p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_allegro_wrappers_8h_source.html#l00089">89</a> of file <a class="el" href="_allegro_wrappers_8h_source.html">AllegroWrappers.h</a>.</p>
+</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="ab7cf79c71bf662f897bd8cba32f42cda"></a><!-- doxytag: member="AllegroDrawingInit::AllegroDrawingInit" ref="ab7cf79c71bf662f897bd8cba32f42cda" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">AllegroDrawingInit::AllegroDrawingInit </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Constructor calls al_init_primitives_addon(), al_init_font_addon(), and al_init_ttf_addon() if it is the first instance. </p>
+
+<p>Definition at line <a class="el" href="_allegro_wrappers_8cpp_source.html#l00073">73</a> of file <a class="el" href="_allegro_wrappers_8cpp_source.html">AllegroWrappers.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a36fe883267f017f3832feb1f615d7488"></a><!-- doxytag: member="AllegroDrawingInit::AllegroDrawingInit" ref="a36fe883267f017f3832feb1f615d7488" args="(const AllegroDrawingInit &amp;ref)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">AllegroDrawingInit::AllegroDrawingInit </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_allegro_drawing_init.html">AllegroDrawingInit</a> &amp;&#160;</td>
+ <td class="paramname"><em>ref</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Copy constructor, implemented to be included in instance count. </p>
+
+<p>Definition at line <a class="el" href="_allegro_wrappers_8cpp_source.html#l00090">90</a> of file <a class="el" href="_allegro_wrappers_8cpp_source.html">AllegroWrappers.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa1c05a296b0c63f8f20276cce6472e6b"></a><!-- doxytag: member="AllegroDrawingInit::~AllegroDrawingInit" ref="aa1c05a296b0c63f8f20276cce6472e6b" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">AllegroDrawingInit::~AllegroDrawingInit </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Destructor calls al_shutdown_primitives_addon(), al_shutdown_font_addon(), and al_shutdown_ttf_addon() if it is the last instant. </p>
+
+<p>Definition at line <a class="el" href="_allegro_wrappers_8cpp_source.html#l00107">107</a> of file <a class="el" href="_allegro_wrappers_8cpp_source.html">AllegroWrappers.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a8254ecb9b3ad13409ff1ec1cfeee66ef"></a><!-- doxytag: member="AllegroDrawingInit::_allegro" ref="a8254ecb9b3ad13409ff1ec1cfeee66ef" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_allegro_init.html">AllegroInit</a> <a class="el" href="class_allegro_drawing_init.html#a8254ecb9b3ad13409ff1ec1cfeee66ef">AllegroDrawingInit::_allegro</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="_allegro_wrappers_8h_source.html#l00106">106</a> of file <a class="el" href="_allegro_wrappers_8h_source.html">AllegroWrappers.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a78e8f792c6dba89eddf42e74d4a3d577"></a><!-- doxytag: member="AllegroDrawingInit::_initCount" ref="a78e8f792c6dba89eddf42e74d4a3d577" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int <a class="el" href="class_allegro_drawing_init.html#a78e8f792c6dba89eddf42e74d4a3d577">AllegroDrawingInit::_initCount</a> = 0<code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="_allegro_wrappers_8h_source.html#l00105">105</a> of file <a class="el" href="_allegro_wrappers_8h_source.html">AllegroWrappers.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>source/logic/<a class="el" href="_allegro_wrappers_8h_source.html">AllegroWrappers.h</a></li>
+<li>source/logic/<a class="el" href="_allegro_wrappers_8cpp_source.html">AllegroWrappers.cpp</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_allegro_init-members.html b/docs/html/class_allegro_init-members.html
new file mode 100644
index 0000000..d7fd0e5
--- /dev/null
+++ b/docs/html/class_allegro_init-members.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Member List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">AllegroInit Member List</div> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="class_allegro_init.html">AllegroInit</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="class_allegro_init.html#ab8d20b549d0b996dde5cdbe8acd7186c">_initCount</a></td><td><a class="el" href="class_allegro_init.html">AllegroInit</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_allegro_init.html#a14e28ffed7456b158cf919d310920af4">AllegroInit</a>()</td><td><a class="el" href="class_allegro_init.html">AllegroInit</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_allegro_init.html#a81588c1ce0fe3646a188683f1598a66b">AllegroInit</a>(const AllegroInit &amp;ref)</td><td><a class="el" href="class_allegro_init.html">AllegroInit</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_allegro_init.html#a41fb85a1de21168ec2a93e79e0e20b89">~AllegroInit</a>()</td><td><a class="el" href="class_allegro_init.html">AllegroInit</a></td><td></td></tr>
+</table></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_allegro_init.html b/docs/html/class_allegro_init.html
new file mode 100644
index 0000000..bd7e6a7
--- /dev/null
+++ b/docs/html/class_allegro_init.html
@@ -0,0 +1,225 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: AllegroInit Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pri-static-attribs">Static Private Attributes</a> </div>
+ <div class="headertitle">
+<div class="title">AllegroInit Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="AllegroInit" -->
+<p>Class ensures that Allegro is initialized and uninstalled when appropriate.
+ <a href="class_allegro_init.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_allegro_wrappers_8h_source.html">AllegroWrappers.h</a>&gt;</code></p>
+
+<p><a href="class_allegro_init-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_allegro_init.html#a14e28ffed7456b158cf919d310920af4">AllegroInit</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor calls al_init() if it is the first instance. <a href="#a14e28ffed7456b158cf919d310920af4"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_allegro_init.html#a81588c1ce0fe3646a188683f1598a66b">AllegroInit</a> (const <a class="el" href="class_allegro_init.html">AllegroInit</a> &amp;ref)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor, implemented to be included in instance count. <a href="#a81588c1ce0fe3646a188683f1598a66b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_allegro_init.html#a41fb85a1de21168ec2a93e79e0e20b89">~AllegroInit</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor calls al_uninstall_system() if it is the last instant. <a href="#a41fb85a1de21168ec2a93e79e0e20b89"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-static-attribs"></a>
+Static Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_allegro_init.html#ab8d20b549d0b996dde5cdbe8acd7186c">_initCount</a> = 0</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Count of the current number of initialised <a class="el" href="class_allegro_init.html" title="Class ensures that Allegro is initialized and uninstalled when appropriate.">AllegroInit</a> objects. <a href="#ab8d20b549d0b996dde5cdbe8acd7186c"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Class ensures that Allegro is initialized and uninstalled when appropriate. </p>
+<p>Any classes that use Allegro should include this class as a data member.</p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_allegro_wrappers_8h_source.html#l00025">25</a> of file <a class="el" href="_allegro_wrappers_8h_source.html">AllegroWrappers.h</a>.</p>
+</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a14e28ffed7456b158cf919d310920af4"></a><!-- doxytag: member="AllegroInit::AllegroInit" ref="a14e28ffed7456b158cf919d310920af4" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">AllegroInit::AllegroInit </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Constructor calls al_init() if it is the first instance. </p>
+
+<p>Definition at line <a class="el" href="_allegro_wrappers_8cpp_source.html#l00005">5</a> of file <a class="el" href="_allegro_wrappers_8cpp_source.html">AllegroWrappers.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a81588c1ce0fe3646a188683f1598a66b"></a><!-- doxytag: member="AllegroInit::AllegroInit" ref="a81588c1ce0fe3646a188683f1598a66b" args="(const AllegroInit &amp;ref)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">AllegroInit::AllegroInit </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_allegro_init.html">AllegroInit</a> &amp;&#160;</td>
+ <td class="paramname"><em>ref</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Copy constructor, implemented to be included in instance count. </p>
+
+<p>Definition at line <a class="el" href="_allegro_wrappers_8cpp_source.html#l00017">17</a> of file <a class="el" href="_allegro_wrappers_8cpp_source.html">AllegroWrappers.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a41fb85a1de21168ec2a93e79e0e20b89"></a><!-- doxytag: member="AllegroInit::~AllegroInit" ref="a41fb85a1de21168ec2a93e79e0e20b89" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">AllegroInit::~AllegroInit </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Destructor calls al_uninstall_system() if it is the last instant. </p>
+
+<p>Definition at line <a class="el" href="_allegro_wrappers_8cpp_source.html#l00029">29</a> of file <a class="el" href="_allegro_wrappers_8cpp_source.html">AllegroWrappers.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="ab8d20b549d0b996dde5cdbe8acd7186c"></a><!-- doxytag: member="AllegroInit::_initCount" ref="ab8d20b549d0b996dde5cdbe8acd7186c" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int <a class="el" href="class_allegro_init.html#ab8d20b549d0b996dde5cdbe8acd7186c">AllegroInit::_initCount</a> = 0<code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Count of the current number of initialised <a class="el" href="class_allegro_init.html" title="Class ensures that Allegro is initialized and uninstalled when appropriate.">AllegroInit</a> objects. </p>
+
+<p>Definition at line <a class="el" href="_allegro_wrappers_8h_source.html#l00045">45</a> of file <a class="el" href="_allegro_wrappers_8h_source.html">AllegroWrappers.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>source/logic/<a class="el" href="_allegro_wrappers_8h_source.html">AllegroWrappers.h</a></li>
+<li>source/logic/<a class="el" href="_allegro_wrappers_8cpp_source.html">AllegroWrappers.cpp</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_allegro_keyboard_init-members.html b/docs/html/class_allegro_keyboard_init-members.html
new file mode 100644
index 0000000..80ceb5d
--- /dev/null
+++ b/docs/html/class_allegro_keyboard_init-members.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Member List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">AllegroKeyboardInit Member List</div> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="class_allegro_keyboard_init.html">AllegroKeyboardInit</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="class_allegro_keyboard_init.html#af8655fcd2e20750f965e55304500bc3b">_allegro</a></td><td><a class="el" href="class_allegro_keyboard_init.html">AllegroKeyboardInit</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_allegro_keyboard_init.html#ac7f75bcc5cb56a1c2f4e9ce653d9dfd7">_initCount</a></td><td><a class="el" href="class_allegro_keyboard_init.html">AllegroKeyboardInit</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_allegro_keyboard_init.html#a42fce2d97b6b7c0c0c666d0f5804a45e">AllegroKeyboardInit</a>()</td><td><a class="el" href="class_allegro_keyboard_init.html">AllegroKeyboardInit</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_allegro_keyboard_init.html#ae28cb5cbafdba3372f21ddb95a9ed134">AllegroKeyboardInit</a>(const AllegroKeyboardInit &amp;ref)</td><td><a class="el" href="class_allegro_keyboard_init.html">AllegroKeyboardInit</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_allegro_keyboard_init.html#a7d1b1cda1d2220ad522ee955ba8a2c5d">~AllegroKeyboardInit</a>()</td><td><a class="el" href="class_allegro_keyboard_init.html">AllegroKeyboardInit</a></td><td></td></tr>
+</table></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_allegro_keyboard_init.html b/docs/html/class_allegro_keyboard_init.html
new file mode 100644
index 0000000..da380c1
--- /dev/null
+++ b/docs/html/class_allegro_keyboard_init.html
@@ -0,0 +1,247 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: AllegroKeyboardInit Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> &#124;
+<a href="#pri-static-attribs">Static Private Attributes</a> </div>
+ <div class="headertitle">
+<div class="title">AllegroKeyboardInit Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="AllegroKeyboardInit" -->
+<p>Class ensures that Allegro's keyboard is installed and uninstalled when appropriate.
+ <a href="class_allegro_keyboard_init.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_allegro_wrappers_8h_source.html">AllegroWrappers.h</a>&gt;</code></p>
+
+<p><a href="class_allegro_keyboard_init-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_allegro_keyboard_init.html#a42fce2d97b6b7c0c0c666d0f5804a45e">AllegroKeyboardInit</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor calls al_install_keyboard() if it is the first instance. <a href="#a42fce2d97b6b7c0c0c666d0f5804a45e"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_allegro_keyboard_init.html#ae28cb5cbafdba3372f21ddb95a9ed134">AllegroKeyboardInit</a> (const <a class="el" href="class_allegro_keyboard_init.html">AllegroKeyboardInit</a> &amp;ref)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor, implemented to be included in instance count. <a href="#ae28cb5cbafdba3372f21ddb95a9ed134"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_allegro_keyboard_init.html#a7d1b1cda1d2220ad522ee955ba8a2c5d">~AllegroKeyboardInit</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor calls al_uninstall_keyboard() if it is the last instant. <a href="#a7d1b1cda1d2220ad522ee955ba8a2c5d"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_allegro_init.html">AllegroInit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_allegro_keyboard_init.html#af8655fcd2e20750f965e55304500bc3b">_allegro</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Depends on Allegro being initialised. <a href="#af8655fcd2e20750f965e55304500bc3b"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-static-attribs"></a>
+Static Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_allegro_keyboard_init.html#ac7f75bcc5cb56a1c2f4e9ce653d9dfd7">_initCount</a> = 0</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Count of the current number of initialised <a class="el" href="class_allegro_keyboard_init.html" title="Class ensures that Allegro&#39;s keyboard is installed and uninstalled when appropriate.">AllegroKeyboardInit</a> objects. <a href="#ac7f75bcc5cb56a1c2f4e9ce653d9dfd7"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Class ensures that Allegro's keyboard is installed and uninstalled when appropriate. </p>
+<p>Any classes that use the keyboard for input should include this class as a data member. This class includes <a class="el" href="class_allegro_init.html" title="Class ensures that Allegro is initialized and uninstalled when appropriate.">AllegroInit</a>, so both of them do not need to be included.</p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_allegro_wrappers_8h_source.html#l00057">57</a> of file <a class="el" href="_allegro_wrappers_8h_source.html">AllegroWrappers.h</a>.</p>
+</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a42fce2d97b6b7c0c0c666d0f5804a45e"></a><!-- doxytag: member="AllegroKeyboardInit::AllegroKeyboardInit" ref="a42fce2d97b6b7c0c0c666d0f5804a45e" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">AllegroKeyboardInit::AllegroKeyboardInit </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Constructor calls al_install_keyboard() if it is the first instance. </p>
+
+<p>Definition at line <a class="el" href="_allegro_wrappers_8cpp_source.html#l00041">41</a> of file <a class="el" href="_allegro_wrappers_8cpp_source.html">AllegroWrappers.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae28cb5cbafdba3372f21ddb95a9ed134"></a><!-- doxytag: member="AllegroKeyboardInit::AllegroKeyboardInit" ref="ae28cb5cbafdba3372f21ddb95a9ed134" args="(const AllegroKeyboardInit &amp;ref)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">AllegroKeyboardInit::AllegroKeyboardInit </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_allegro_keyboard_init.html">AllegroKeyboardInit</a> &amp;&#160;</td>
+ <td class="paramname"><em>ref</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Copy constructor, implemented to be included in instance count. </p>
+
+<p>Definition at line <a class="el" href="_allegro_wrappers_8cpp_source.html#l00053">53</a> of file <a class="el" href="_allegro_wrappers_8cpp_source.html">AllegroWrappers.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7d1b1cda1d2220ad522ee955ba8a2c5d"></a><!-- doxytag: member="AllegroKeyboardInit::~AllegroKeyboardInit" ref="a7d1b1cda1d2220ad522ee955ba8a2c5d" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">AllegroKeyboardInit::~AllegroKeyboardInit </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Destructor calls al_uninstall_keyboard() if it is the last instant. </p>
+
+<p>Definition at line <a class="el" href="_allegro_wrappers_8cpp_source.html#l00065">65</a> of file <a class="el" href="_allegro_wrappers_8cpp_source.html">AllegroWrappers.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="af8655fcd2e20750f965e55304500bc3b"></a><!-- doxytag: member="AllegroKeyboardInit::_allegro" ref="af8655fcd2e20750f965e55304500bc3b" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_allegro_init.html">AllegroInit</a> <a class="el" href="class_allegro_keyboard_init.html#af8655fcd2e20750f965e55304500bc3b">AllegroKeyboardInit::_allegro</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Depends on Allegro being initialised. </p>
+
+<p>Definition at line <a class="el" href="_allegro_wrappers_8h_source.html#l00074">74</a> of file <a class="el" href="_allegro_wrappers_8h_source.html">AllegroWrappers.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac7f75bcc5cb56a1c2f4e9ce653d9dfd7"></a><!-- doxytag: member="AllegroKeyboardInit::_initCount" ref="ac7f75bcc5cb56a1c2f4e9ce653d9dfd7" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int <a class="el" href="class_allegro_keyboard_init.html#ac7f75bcc5cb56a1c2f4e9ce653d9dfd7">AllegroKeyboardInit::_initCount</a> = 0<code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Count of the current number of initialised <a class="el" href="class_allegro_keyboard_init.html" title="Class ensures that Allegro&#39;s keyboard is installed and uninstalled when appropriate.">AllegroKeyboardInit</a> objects. </p>
+
+<p>Definition at line <a class="el" href="_allegro_wrappers_8h_source.html#l00073">73</a> of file <a class="el" href="_allegro_wrappers_8h_source.html">AllegroWrappers.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>source/logic/<a class="el" href="_allegro_wrappers_8h_source.html">AllegroWrappers.h</a></li>
+<li>source/logic/<a class="el" href="_allegro_wrappers_8cpp_source.html">AllegroWrappers.cpp</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_bad_resolution.html b/docs/html/class_bad_resolution.html
new file mode 100644
index 0000000..464a3d3
--- /dev/null
+++ b/docs/html/class_bad_resolution.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: BadResolution Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">BadResolution Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="BadResolution" -->
+<p>Exception that is thrown if the <a class="el" href="class_config.html" title="Object for handling user settings loaded from a file.">Config</a> file requests a resolution that can not work.
+ <a href="class_bad_resolution.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_screen_8h_source.html">Screen.h</a>&gt;</code></p>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Exception that is thrown if the <a class="el" href="class_config.html" title="Object for handling user settings loaded from a file.">Config</a> file requests a resolution that can not work. </p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_screen_8h_source.html#l00031">31</a> of file <a class="el" href="_screen_8h_source.html">Screen.h</a>.</p>
+</div><hr/>The documentation for this class was generated from the following file:<ul>
+<li>source/presentation/<a class="el" href="_screen_8h_source.html">Screen.h</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_bitmap_store-members.html b/docs/html/class_bitmap_store-members.html
new file mode 100644
index 0000000..aff17b8
--- /dev/null
+++ b/docs/html/class_bitmap_store-members.html
@@ -0,0 +1,138 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Member List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">BitmapStore Member List</div> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="class_bitmap_store.html">BitmapStore</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#a0c73c3c20f8093c83707cde15c4fed5f">_bitmapFont</a></td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#ae3d18969f61f97fce6622cb6f7004711">_bitmaps</a></td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff">_blockWidth</a></td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#a12f738a24033673278a496c1aa5abcc8">_drawingInstalls</a></td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#abca96ce53be18eb07150745871a3165c">BitmapStore</a>(unsigned int blockWidth)</td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#a012f7ace750e7964f20a39cbb5fbe321">BitmapStore</a>(const BitmapStore &amp;ref)</td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a780d6b9e20ec37fbaf5a40ca846795d9">CHECKPOINT</a> enum value</td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a824f0021358b88c7f1172d7dece95948">CLAIMED_CHECKPOINT</a> enum value</td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a8b9eb5b79abe467982784ea2227d67e0">CRASHED_CAR</a> enum value</td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#ae5d12fa60b03a7ea2119c67938650352">drawCheckpoint</a>(ALLEGRO_BITMAP *canvas)</td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#a07f505192ccf0717d6aed29761934a5c">drawClaimedCheckpoint</a>(ALLEGRO_BITMAP *canvas)</td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#abb0a062e5cb3170786a6c202a53c145b">drawCrashedCar</a>(ALLEGRO_BITMAP *canvas)</td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#aff7a6fc2b35ff6cd38ef74730523f5a9">drawEnemyCar</a>(ALLEGRO_BITMAP *canvas)</td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#a8a7d5fe7cc38ddb3c651152654226201">drawMazeFloor</a>(ALLEGRO_BITMAP *canvas)</td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#a90680d174c1d77e19ace8c2ba0eef6ac">drawMazeWall</a>(ALLEGRO_BITMAP *canvas)</td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#af645b30d96761f401770336a555b6429">drawPlayerCar</a>(ALLEGRO_BITMAP *canvas)</td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#a2132a5ec8dfb43f06f75accf8bb9a50e">drawRock</a>(ALLEGRO_BITMAP *canvas)</td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#a1a346a06675a7257ca8a7879aeb27e48">drawSmoke</a>(ALLEGRO_BITMAP *canvas)</td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a8a7d9a89e243914ca702660237d4f81d">ENEMY</a> enum value</td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#aadd437c869c5856c36d920dfafbc6ee4">getBitmap</a>(Image image)</td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386">Image</a> enum name</td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a4e2a075dff2c02bf40b134c9090d1f02">MAZE_FLOOR</a> enum value</td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386ae662e77b349a8e22c5826ef35b1b5d9a">MAZE_WALL</a> enum value</td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#a3c1092d55aaf1c9c5b7424d7eb2f1576">operator=</a>(const BitmapStore &amp;rhs)</td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386acdaf29947fecd91b452e554a75fb9e92">PLAYER</a> enum value</td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386abf3851dc0110fc83020981fcbb5773eb">ROCK</a> enum value</td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a91fec244d29999552e93ecb7578713fb">SMOKE</a> enum value</td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_bitmap_store.html#a1e34f2fb55475f16ade380fa1e8829f7">~BitmapStore</a>()</td><td><a class="el" href="class_bitmap_store.html">BitmapStore</a></td><td></td></tr>
+</table></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_bitmap_store.html b/docs/html/class_bitmap_store.html
new file mode 100644
index 0000000..6a7bf4a
--- /dev/null
+++ b/docs/html/class_bitmap_store.html
@@ -0,0 +1,665 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: BitmapStore Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#pub-types">Public Types</a> &#124;
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pri-methods">Private Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> </div>
+ <div class="headertitle">
+<div class="title">BitmapStore Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="BitmapStore" -->
+<p>Class for accessing images in ALLEGRO_BITMAP format and low level drawing.
+ <a href="class_bitmap_store.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_bitmap_store_8h_source.html">BitmapStore.h</a>&gt;</code></p>
+
+<p><a href="class_bitmap_store-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386">Image</a> { <br/>
+&#160;&#160;<a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386acdaf29947fecd91b452e554a75fb9e92">PLAYER</a>,
+<a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a8a7d9a89e243914ca702660237d4f81d">ENEMY</a>,
+<a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386abf3851dc0110fc83020981fcbb5773eb">ROCK</a>,
+<a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a780d6b9e20ec37fbaf5a40ca846795d9">CHECKPOINT</a>,
+<br/>
+&#160;&#160;<a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386ae662e77b349a8e22c5826ef35b1b5d9a">MAZE_WALL</a>,
+<a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a4e2a075dff2c02bf40b134c9090d1f02">MAZE_FLOOR</a>,
+<a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a91fec244d29999552e93ecb7578713fb">SMOKE</a>,
+<a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a8b9eb5b79abe467982784ea2227d67e0">CRASHED_CAR</a>,
+<br/>
+&#160;&#160;<a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a824f0021358b88c7f1172d7dece95948">CLAIMED_CHECKPOINT</a>
+<br/>
+ }</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Type used to define which image should be returned. <a href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386">More...</a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bitmap_store.html#abca96ce53be18eb07150745871a3165c">BitmapStore</a> (unsigned int blockWidth)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for creating a <a class="el" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a> with a set image size. <a href="#abca96ce53be18eb07150745871a3165c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bitmap_store.html#a1e34f2fb55475f16ade380fa1e8829f7">~BitmapStore</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor for clearing cache. <a href="#a1e34f2fb55475f16ade380fa1e8829f7"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ALLEGRO_BITMAP *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bitmap_store.html#aadd437c869c5856c36d920dfafbc6ee4">getBitmap</a> (<a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386">Image</a> image)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to get image for drawing to the screen. <a href="#aadd437c869c5856c36d920dfafbc6ee4"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-methods"></a>
+Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bitmap_store.html#a012f7ace750e7964f20a39cbb5fbe321">BitmapStore</a> (const <a class="el" href="class_bitmap_store.html">BitmapStore</a> &amp;ref)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Unimplemented copy constructor, prevents copying of <a class="el" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a> objects. <a href="#a012f7ace750e7964f20a39cbb5fbe321"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_bitmap_store.html">BitmapStore</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bitmap_store.html#a3c1092d55aaf1c9c5b7424d7eb2f1576">operator=</a> (const <a class="el" href="class_bitmap_store.html">BitmapStore</a> &amp;rhs)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Unimplemented assignment operator. <a href="#a3c1092d55aaf1c9c5b7424d7eb2f1576"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bitmap_store.html#af645b30d96761f401770336a555b6429">drawPlayerCar</a> (ALLEGRO_BITMAP *canvas)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws the image representing the player. <a href="#af645b30d96761f401770336a555b6429"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bitmap_store.html#aff7a6fc2b35ff6cd38ef74730523f5a9">drawEnemyCar</a> (ALLEGRO_BITMAP *canvas)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws the image representing an enemy. <a href="#aff7a6fc2b35ff6cd38ef74730523f5a9"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bitmap_store.html#a2132a5ec8dfb43f06f75accf8bb9a50e">drawRock</a> (ALLEGRO_BITMAP *canvas)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws the image representing a rock. <a href="#a2132a5ec8dfb43f06f75accf8bb9a50e"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bitmap_store.html#ae5d12fa60b03a7ea2119c67938650352">drawCheckpoint</a> (ALLEGRO_BITMAP *canvas)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws the image representing a checkpoint. <a href="#ae5d12fa60b03a7ea2119c67938650352"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bitmap_store.html#a90680d174c1d77e19ace8c2ba0eef6ac">drawMazeWall</a> (ALLEGRO_BITMAP *canvas)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws the image representing a solid part of the maze. <a href="#a90680d174c1d77e19ace8c2ba0eef6ac"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bitmap_store.html#a8a7d5fe7cc38ddb3c651152654226201">drawMazeFloor</a> (ALLEGRO_BITMAP *canvas)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws the image representing a non-solid part of the maze. <a href="#a8a7d5fe7cc38ddb3c651152654226201"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bitmap_store.html#a1a346a06675a7257ca8a7879aeb27e48">drawSmoke</a> (ALLEGRO_BITMAP *canvas)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws the image representing a smokescreen. <a href="#a1a346a06675a7257ca8a7879aeb27e48"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bitmap_store.html#abb0a062e5cb3170786a6c202a53c145b">drawCrashedCar</a> (ALLEGRO_BITMAP *canvas)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws the popup that appears when a car crashes. <a href="#abb0a062e5cb3170786a6c202a53c145b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bitmap_store.html#a07f505192ccf0717d6aed29761934a5c">drawClaimedCheckpoint</a> (ALLEGRO_BITMAP *canvas)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws the popup that appears when a checkpoint is collected. <a href="#a07f505192ccf0717d6aed29761934a5c"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_allegro_drawing_init.html">AllegroDrawingInit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bitmap_store.html#a12f738a24033673278a496c1aa5abcc8">_drawingInstalls</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensures that Allegro is initialized while an object of this class exists. <a href="#a12f738a24033673278a496c1aa5abcc8"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ALLEGRO_FONT *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bitmap_store.html#a0c73c3c20f8093c83707cde15c4fed5f">_bitmapFont</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Font used for writing text on bitmaps. <a href="#a0c73c3c20f8093c83707cde15c4fed5f"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">map&lt; <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386">Image</a>, ALLEGRO_BITMAP * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bitmap_store.html#ae3d18969f61f97fce6622cb6f7004711">_bitmaps</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">map containing pairs of Images (the enumerated type) and the actual images. <a href="#ae3d18969f61f97fce6622cb6f7004711"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff">_blockWidth</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The width of a square image in the store. <a href="#a157ce6e07689037e1081ccf87eaa2fff"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Class for accessing images in ALLEGRO_BITMAP format and low level drawing. </p>
+<p>The store ensures that only one copy of identical images are created. This is done through a map, that caches the images that have already been requested. If an uncached image is requested, it is added to the cache before being returned. The store provides an enumerated type, Image, for other classes to reference which image should represent the object on the screen.</p>
+<p>All images are square, to allow easy rotation and placement on the screen.</p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_bitmap_store_8h_source.html#l00030">30</a> of file <a class="el" href="_bitmap_store_8h_source.html">BitmapStore.h</a>.</p>
+</div><hr/><h2>Member Enumeration Documentation</h2>
+<a class="anchor" id="af3bc66181673def9d0a590cd13c7e386"></a><!-- doxytag: member="BitmapStore::Image" ref="af3bc66181673def9d0a590cd13c7e386" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386">BitmapStore::Image</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Type used to define which image should be returned. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="af3bc66181673def9d0a590cd13c7e386acdaf29947fecd91b452e554a75fb9e92"></a><!-- doxytag: member="PLAYER" ref="af3bc66181673def9d0a590cd13c7e386acdaf29947fecd91b452e554a75fb9e92" args="" -->PLAYER</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="af3bc66181673def9d0a590cd13c7e386a8a7d9a89e243914ca702660237d4f81d"></a><!-- doxytag: member="ENEMY" ref="af3bc66181673def9d0a590cd13c7e386a8a7d9a89e243914ca702660237d4f81d" args="" -->ENEMY</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="af3bc66181673def9d0a590cd13c7e386abf3851dc0110fc83020981fcbb5773eb"></a><!-- doxytag: member="ROCK" ref="af3bc66181673def9d0a590cd13c7e386abf3851dc0110fc83020981fcbb5773eb" args="" -->ROCK</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="af3bc66181673def9d0a590cd13c7e386a780d6b9e20ec37fbaf5a40ca846795d9"></a><!-- doxytag: member="CHECKPOINT" ref="af3bc66181673def9d0a590cd13c7e386a780d6b9e20ec37fbaf5a40ca846795d9" args="" -->CHECKPOINT</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="af3bc66181673def9d0a590cd13c7e386ae662e77b349a8e22c5826ef35b1b5d9a"></a><!-- doxytag: member="MAZE_WALL" ref="af3bc66181673def9d0a590cd13c7e386ae662e77b349a8e22c5826ef35b1b5d9a" args="" -->MAZE_WALL</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="af3bc66181673def9d0a590cd13c7e386a4e2a075dff2c02bf40b134c9090d1f02"></a><!-- doxytag: member="MAZE_FLOOR" ref="af3bc66181673def9d0a590cd13c7e386a4e2a075dff2c02bf40b134c9090d1f02" args="" -->MAZE_FLOOR</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="af3bc66181673def9d0a590cd13c7e386a91fec244d29999552e93ecb7578713fb"></a><!-- doxytag: member="SMOKE" ref="af3bc66181673def9d0a590cd13c7e386a91fec244d29999552e93ecb7578713fb" args="" -->SMOKE</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="af3bc66181673def9d0a590cd13c7e386a8b9eb5b79abe467982784ea2227d67e0"></a><!-- doxytag: member="CRASHED_CAR" ref="af3bc66181673def9d0a590cd13c7e386a8b9eb5b79abe467982784ea2227d67e0" args="" -->CRASHED_CAR</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="af3bc66181673def9d0a590cd13c7e386a824f0021358b88c7f1172d7dece95948"></a><!-- doxytag: member="CLAIMED_CHECKPOINT" ref="af3bc66181673def9d0a590cd13c7e386a824f0021358b88c7f1172d7dece95948" args="" -->CLAIMED_CHECKPOINT</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_bitmap_store_8h_source.html#l00047">47</a> of file <a class="el" href="_bitmap_store_8h_source.html">BitmapStore.h</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="abca96ce53be18eb07150745871a3165c"></a><!-- doxytag: member="BitmapStore::BitmapStore" ref="abca96ce53be18eb07150745871a3165c" args="(unsigned int blockWidth)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">BitmapStore::BitmapStore </td>
+ <td>(</td>
+ <td class="paramtype">unsigned int&#160;</td>
+ <td class="paramname"><em>blockWidth</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Constructor for creating a <a class="el" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a> with a set image size. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">blockWidth</td><td>The width (and height) of an image returned by the store in pixels. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_bitmap_store_8cpp_source.html#l00003">3</a> of file <a class="el" href="_bitmap_store_8cpp_source.html">BitmapStore.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1e34f2fb55475f16ade380fa1e8829f7"></a><!-- doxytag: member="BitmapStore::~BitmapStore" ref="a1e34f2fb55475f16ade380fa1e8829f7" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">BitmapStore::~BitmapStore </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Destructor for clearing cache. </p>
+
+<p>Definition at line <a class="el" href="_bitmap_store_8cpp_source.html#l00014">14</a> of file <a class="el" href="_bitmap_store_8cpp_source.html">BitmapStore.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a012f7ace750e7964f20a39cbb5fbe321"></a><!-- doxytag: member="BitmapStore::BitmapStore" ref="a012f7ace750e7964f20a39cbb5fbe321" args="(const BitmapStore &amp;ref)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">BitmapStore::BitmapStore </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_bitmap_store.html">BitmapStore</a> &amp;&#160;</td>
+ <td class="paramname"><em>ref</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Unimplemented copy constructor, prevents copying of <a class="el" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a> objects. </p>
+<p>Copying a <a class="el" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a> is unneccesary as there should only be a single <a class="el" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a> object. </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="ae5d12fa60b03a7ea2119c67938650352"></a><!-- doxytag: member="BitmapStore::drawCheckpoint" ref="ae5d12fa60b03a7ea2119c67938650352" args="(ALLEGRO_BITMAP *canvas)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void BitmapStore::drawCheckpoint </td>
+ <td>(</td>
+ <td class="paramtype">ALLEGRO_BITMAP *&#160;</td>
+ <td class="paramname"><em>canvas</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Draws the image representing a checkpoint. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">canvas</td><td>ALLEGRO_BITMAP onto which the image is drawn. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_bitmap_store_8cpp_source.html#l00155">155</a> of file <a class="el" href="_bitmap_store_8cpp_source.html">BitmapStore.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a07f505192ccf0717d6aed29761934a5c"></a><!-- doxytag: member="BitmapStore::drawClaimedCheckpoint" ref="a07f505192ccf0717d6aed29761934a5c" args="(ALLEGRO_BITMAP *canvas)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void BitmapStore::drawClaimedCheckpoint </td>
+ <td>(</td>
+ <td class="paramtype">ALLEGRO_BITMAP *&#160;</td>
+ <td class="paramname"><em>canvas</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Draws the popup that appears when a checkpoint is collected. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">canvas</td><td>ALLEGRO_BITMAP onto which the image is drawn. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_bitmap_store_8cpp_source.html#l00229">229</a> of file <a class="el" href="_bitmap_store_8cpp_source.html">BitmapStore.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abb0a062e5cb3170786a6c202a53c145b"></a><!-- doxytag: member="BitmapStore::drawCrashedCar" ref="abb0a062e5cb3170786a6c202a53c145b" args="(ALLEGRO_BITMAP *canvas)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void BitmapStore::drawCrashedCar </td>
+ <td>(</td>
+ <td class="paramtype">ALLEGRO_BITMAP *&#160;</td>
+ <td class="paramname"><em>canvas</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Draws the popup that appears when a car crashes. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">canvas</td><td>ALLEGRO_BITMAP onto which the image is drawn. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_bitmap_store_8cpp_source.html#l00208">208</a> of file <a class="el" href="_bitmap_store_8cpp_source.html">BitmapStore.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aff7a6fc2b35ff6cd38ef74730523f5a9"></a><!-- doxytag: member="BitmapStore::drawEnemyCar" ref="aff7a6fc2b35ff6cd38ef74730523f5a9" args="(ALLEGRO_BITMAP *canvas)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void BitmapStore::drawEnemyCar </td>
+ <td>(</td>
+ <td class="paramtype">ALLEGRO_BITMAP *&#160;</td>
+ <td class="paramname"><em>canvas</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Draws the image representing an enemy. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">canvas</td><td>ALLEGRO_BITMAP onto which the image is drawn. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_bitmap_store_8cpp_source.html#l00105">105</a> of file <a class="el" href="_bitmap_store_8cpp_source.html">BitmapStore.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8a7d5fe7cc38ddb3c651152654226201"></a><!-- doxytag: member="BitmapStore::drawMazeFloor" ref="a8a7d5fe7cc38ddb3c651152654226201" args="(ALLEGRO_BITMAP *canvas)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void BitmapStore::drawMazeFloor </td>
+ <td>(</td>
+ <td class="paramtype">ALLEGRO_BITMAP *&#160;</td>
+ <td class="paramname"><em>canvas</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Draws the image representing a non-solid part of the maze. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">canvas</td><td>ALLEGRO_BITMAP onto which the image is drawn. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_bitmap_store_8cpp_source.html#l00179">179</a> of file <a class="el" href="_bitmap_store_8cpp_source.html">BitmapStore.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a90680d174c1d77e19ace8c2ba0eef6ac"></a><!-- doxytag: member="BitmapStore::drawMazeWall" ref="a90680d174c1d77e19ace8c2ba0eef6ac" args="(ALLEGRO_BITMAP *canvas)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void BitmapStore::drawMazeWall </td>
+ <td>(</td>
+ <td class="paramtype">ALLEGRO_BITMAP *&#160;</td>
+ <td class="paramname"><em>canvas</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Draws the image representing a solid part of the maze. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">canvas</td><td>ALLEGRO_BITMAP onto which the image is drawn. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_bitmap_store_8cpp_source.html#l00169">169</a> of file <a class="el" href="_bitmap_store_8cpp_source.html">BitmapStore.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af645b30d96761f401770336a555b6429"></a><!-- doxytag: member="BitmapStore::drawPlayerCar" ref="af645b30d96761f401770336a555b6429" args="(ALLEGRO_BITMAP *canvas)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void BitmapStore::drawPlayerCar </td>
+ <td>(</td>
+ <td class="paramtype">ALLEGRO_BITMAP *&#160;</td>
+ <td class="paramname"><em>canvas</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Draws the image representing the player. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">canvas</td><td>ALLEGRO_BITMAP onto which the image is drawn. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_bitmap_store_8cpp_source.html#l00071">71</a> of file <a class="el" href="_bitmap_store_8cpp_source.html">BitmapStore.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2132a5ec8dfb43f06f75accf8bb9a50e"></a><!-- doxytag: member="BitmapStore::drawRock" ref="a2132a5ec8dfb43f06f75accf8bb9a50e" args="(ALLEGRO_BITMAP *canvas)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void BitmapStore::drawRock </td>
+ <td>(</td>
+ <td class="paramtype">ALLEGRO_BITMAP *&#160;</td>
+ <td class="paramname"><em>canvas</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Draws the image representing a rock. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">canvas</td><td>ALLEGRO_BITMAP onto which the image is drawn. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_bitmap_store_8cpp_source.html#l00139">139</a> of file <a class="el" href="_bitmap_store_8cpp_source.html">BitmapStore.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1a346a06675a7257ca8a7879aeb27e48"></a><!-- doxytag: member="BitmapStore::drawSmoke" ref="a1a346a06675a7257ca8a7879aeb27e48" args="(ALLEGRO_BITMAP *canvas)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void BitmapStore::drawSmoke </td>
+ <td>(</td>
+ <td class="paramtype">ALLEGRO_BITMAP *&#160;</td>
+ <td class="paramname"><em>canvas</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Draws the image representing a smokescreen. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">canvas</td><td>ALLEGRO_BITMAP onto which the image is drawn. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_bitmap_store_8cpp_source.html#l00189">189</a> of file <a class="el" href="_bitmap_store_8cpp_source.html">BitmapStore.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aadd437c869c5856c36d920dfafbc6ee4"></a><!-- doxytag: member="BitmapStore::getBitmap" ref="aadd437c869c5856c36d920dfafbc6ee4" args="(Image image)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ALLEGRO_BITMAP * BitmapStore::getBitmap </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386">Image</a>&#160;</td>
+ <td class="paramname"><em>image</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Function to get image for drawing to the screen. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">image</td><td>Image to be returned. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>Requested image in ALLEGRO_BITMAP format. </dd></dl>
+
+<p>Definition at line <a class="el" href="_bitmap_store_8cpp_source.html#l00025">25</a> of file <a class="el" href="_bitmap_store_8cpp_source.html">BitmapStore.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3c1092d55aaf1c9c5b7424d7eb2f1576"></a><!-- doxytag: member="BitmapStore::operator=" ref="a3c1092d55aaf1c9c5b7424d7eb2f1576" args="(const BitmapStore &amp;rhs)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_bitmap_store.html">BitmapStore</a>&amp; BitmapStore::operator= </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_bitmap_store.html">BitmapStore</a> &amp;&#160;</td>
+ <td class="paramname"><em>rhs</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Unimplemented assignment operator. </p>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="class_bitmap_store.html#a012f7ace750e7964f20a39cbb5fbe321" title="Unimplemented copy constructor, prevents copying of BitmapStore objects.">BitmapStore(const BitmapStore&amp; ref)</a>; </dd></dl>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a0c73c3c20f8093c83707cde15c4fed5f"></a><!-- doxytag: member="BitmapStore::_bitmapFont" ref="a0c73c3c20f8093c83707cde15c4fed5f" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ALLEGRO_FONT* <a class="el" href="class_bitmap_store.html#a0c73c3c20f8093c83707cde15c4fed5f">BitmapStore::_bitmapFont</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Font used for writing text on bitmaps. </p>
+
+<p>Definition at line <a class="el" href="_bitmap_store_8h_source.html#l00128">128</a> of file <a class="el" href="_bitmap_store_8h_source.html">BitmapStore.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae3d18969f61f97fce6622cb6f7004711"></a><!-- doxytag: member="BitmapStore::_bitmaps" ref="ae3d18969f61f97fce6622cb6f7004711" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">map&lt;<a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386">Image</a>, ALLEGRO_BITMAP*&gt; <a class="el" href="class_bitmap_store.html#ae3d18969f61f97fce6622cb6f7004711">BitmapStore::_bitmaps</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>map containing pairs of Images (the enumerated type) and the actual images. </p>
+<p>Creates a cache for images once they have been drawn. </p>
+
+<p>Definition at line <a class="el" href="_bitmap_store_8h_source.html#l00135">135</a> of file <a class="el" href="_bitmap_store_8h_source.html">BitmapStore.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a157ce6e07689037e1081ccf87eaa2fff"></a><!-- doxytag: member="BitmapStore::_blockWidth" ref="a157ce6e07689037e1081ccf87eaa2fff" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">unsigned int <a class="el" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff">BitmapStore::_blockWidth</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The width of a square image in the store. </p>
+
+<p>Definition at line <a class="el" href="_bitmap_store_8h_source.html#l00137">137</a> of file <a class="el" href="_bitmap_store_8h_source.html">BitmapStore.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a12f738a24033673278a496c1aa5abcc8"></a><!-- doxytag: member="BitmapStore::_drawingInstalls" ref="a12f738a24033673278a496c1aa5abcc8" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_allegro_drawing_init.html">AllegroDrawingInit</a> <a class="el" href="class_bitmap_store.html#a12f738a24033673278a496c1aa5abcc8">BitmapStore::_drawingInstalls</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Ensures that Allegro is initialized while an object of this class exists. </p>
+
+<p>Definition at line <a class="el" href="_bitmap_store_8h_source.html#l00126">126</a> of file <a class="el" href="_bitmap_store_8h_source.html">BitmapStore.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>source/presentation/<a class="el" href="_bitmap_store_8h_source.html">BitmapStore.h</a></li>
+<li>source/presentation/<a class="el" href="_bitmap_store_8cpp_source.html">BitmapStore.cpp</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_car-members.html b/docs/html/class_car-members.html
new file mode 100644
index 0000000..dec3d2c
--- /dev/null
+++ b/docs/html/class_car-members.html
@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Member List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">Car Member List</div> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="class_car.html">Car</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="class_car.html#a7b942584de02f8af6f571a60a1cf32ba">_baseSpeed</a></td><td><a class="el" href="class_car.html">Car</a></td><td><code> [protected, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#adc4a399cc59d5706f75748fb3846faec">_destroyed</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a24d36b1a64504298700a7ae7111fad5d">_facing</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a8b0aa105507a8a9559bbc2a66198ccd6">_image</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_car.html#a84b3d05e98d66f358942193ff54dee51">_speed</a></td><td><a class="el" href="class_car.html">Car</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614">_x</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e">_y</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_car.html#a3bd1dc6b75af9dc5bbe4354e0b3161d0">Car</a>(double x, double y, BitmapStore::Image image, Maze::Direction facing)</td><td><a class="el" href="class_car.html">Car</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a266871f6c0220f6b3c902075ebff8eea">destroyed</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a2549066ec4dc8f4ca2d3a8c5d5729324">facing</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a26cba01b9c2d301d4ee89a98b9396d67">GameObject</a>(double x, double y, BitmapStore::Image image, Maze::Direction facing=Maze::UP)</td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a05e352e3e01e774892beee0503fdb349">image</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_car.html#a85e8699362bb5206e4142dbd5d20dcb9">move</a>(const Maze &amp;maze)</td><td><a class="el" href="class_car.html">Car</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_car.html#a68b59187e1520a5d016b0894b4c116b9">speed</a>() const </td><td><a class="el" href="class_car.html">Car</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8">x</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b">y</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+</table></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_car.html b/docs/html/class_car.html
new file mode 100644
index 0000000..0e1a88d
--- /dev/null
+++ b/docs/html/class_car.html
@@ -0,0 +1,302 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Car Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="#pro-static-attribs">Static Protected Attributes</a> </div>
+ <div class="headertitle">
+<div class="title">Car Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="Car" --><!-- doxytag: inherits="GameObject" -->
+<p><a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> that moves through the maze and changes direction.
+ <a href="class_car.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_car_8h_source.html">Car.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for Car:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="class_car.png" usemap="#Car_map" alt=""/>
+ <map id="Car_map" name="Car_map">
+<area href="class_game_object.html" title="Parent class for objects that are placed in the maze." alt="GameObject" shape="rect" coords="45,0,126,24"/>
+<area href="class_enemy_car.html" title="GameObject that chases the player around the maze." alt="EnemyCar" shape="rect" coords="0,112,81,136"/>
+<area href="class_player_car.html" title="A GameObject that is controlled by the player." alt="PlayerCar" shape="rect" coords="91,112,172,136"/>
+</map>
+ </div></div>
+
+<p><a href="class_car-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_car.html#a3bd1dc6b75af9dc5bbe4354e0b3161d0">Car</a> (double x, double y, <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386">BitmapStore::Image</a> image, <a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f">Maze::Direction</a> facing)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a <a class="el" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a> at the given position, with the given image, facing in the given direction. <a href="#a3bd1dc6b75af9dc5bbe4354e0b3161d0"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_car.html#a68b59187e1520a5d016b0894b4c116b9">speed</a> () const </td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to access the current speed of the car. <a href="#a68b59187e1520a5d016b0894b4c116b9"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_car.html#a85e8699362bb5206e4142dbd5d20dcb9">move</a> (const <a class="el" href="class_maze.html">Maze</a> &amp;maze)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves the car by its current speed in the direction of its facing. <a href="#a85e8699362bb5206e4142dbd5d20dcb9"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_car.html#a84b3d05e98d66f358942193ff54dee51">_speed</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The current speed that the <a class="el" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a> is moving at. <a href="#a84b3d05e98d66f358942193ff54dee51"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pro-static-attribs"></a>
+Static Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_car.html#a7b942584de02f8af6f571a60a1cf32ba">_baseSpeed</a> = 0.1</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The speed that a <a class="el" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a> moves at in normal conditions. <a href="#a7b942584de02f8af6f571a60a1cf32ba"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> that moves through the maze and changes direction. </p>
+<p>Should not be instantiated directly, but rather instantiated through one of the subclasses, <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> or <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>.</p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_car_8h_source.html#l00020">20</a> of file <a class="el" href="_car_8h_source.html">Car.h</a>.</p>
+</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a3bd1dc6b75af9dc5bbe4354e0b3161d0"></a><!-- doxytag: member="Car::Car" ref="a3bd1dc6b75af9dc5bbe4354e0b3161d0" args="(double x, double y, BitmapStore::Image image, Maze::Direction facing)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Car::Car </td>
+ <td>(</td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386">BitmapStore::Image</a>&#160;</td>
+ <td class="paramname"><em>image</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f">Maze::Direction</a>&#160;</td>
+ <td class="paramname"><em>facing</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Creates a <a class="el" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a> at the given position, with the given image, facing in the given direction. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>x coordinate of initial position. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>y coordinate of initial position. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">image</td><td>Bitmap to be drawn on the screen to represent the car. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">facing</td><td>Direction in which the <a class="el" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a> is initially facing. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_car_8cpp_source.html#l00003">3</a> of file <a class="el" href="_car_8cpp_source.html">Car.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a85e8699362bb5206e4142dbd5d20dcb9"></a><!-- doxytag: member="Car::move" ref="a85e8699362bb5206e4142dbd5d20dcb9" args="(const Maze &amp;maze)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Car::move </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_maze.html">Maze</a> &amp;&#160;</td>
+ <td class="paramname"><em>maze</em></td><td>)</td>
+ <td><code> [protected]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Moves the car by its current speed in the direction of its facing. </p>
+<p>Only moves along the x or y axis, and snaps to the grid in the other direction. Does not allow movement through solid parts of the maze.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">maze</td><td>The maze in which the <a class="el" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a> is moving, confining its movements. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_car_8cpp_source.html#l00014">14</a> of file <a class="el" href="_car_8cpp_source.html">Car.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a68b59187e1520a5d016b0894b4c116b9"></a><!-- doxytag: member="Car::speed" ref="a68b59187e1520a5d016b0894b4c116b9" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">double Car::speed </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Function to access the current speed of the car. </p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The current speed of the car, in pixels per update. </dd></dl>
+
+<p>Definition at line <a class="el" href="_car_8cpp_source.html#l00009">9</a> of file <a class="el" href="_car_8cpp_source.html">Car.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a7b942584de02f8af6f571a60a1cf32ba"></a><!-- doxytag: member="Car::_baseSpeed" ref="a7b942584de02f8af6f571a60a1cf32ba" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const double <a class="el" href="class_car.html#a7b942584de02f8af6f571a60a1cf32ba">Car::_baseSpeed</a> = 0.1<code> [static, protected]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The speed that a <a class="el" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a> moves at in normal conditions. </p>
+
+<p>Definition at line <a class="el" href="_car_8h_source.html#l00054">54</a> of file <a class="el" href="_car_8h_source.html">Car.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a84b3d05e98d66f358942193ff54dee51"></a><!-- doxytag: member="Car::_speed" ref="a84b3d05e98d66f358942193ff54dee51" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">double <a class="el" href="class_car.html#a84b3d05e98d66f358942193ff54dee51">Car::_speed</a><code> [protected]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The current speed that the <a class="el" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a> is moving at. </p>
+
+<p>Definition at line <a class="el" href="_car_8h_source.html#l00053">53</a> of file <a class="el" href="_car_8h_source.html">Car.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>source/logic/<a class="el" href="_car_8h_source.html">Car.h</a></li>
+<li>source/logic/<a class="el" href="_car_8cpp_source.html">Car.cpp</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_car.png b/docs/html/class_car.png
new file mode 100644
index 0000000..57ebb58
--- /dev/null
+++ b/docs/html/class_car.png
Binary files differ
diff --git a/docs/html/class_checkpoint-members.html b/docs/html/class_checkpoint-members.html
new file mode 100644
index 0000000..b358b63
--- /dev/null
+++ b/docs/html/class_checkpoint-members.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Member List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">Checkpoint Member List</div> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="class_checkpoint.html">Checkpoint</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="class_checkpoint.html#acb3ffc612d2a496b6b95752878818ff6">_checkpointCount</a></td><td><a class="el" href="class_checkpoint.html">Checkpoint</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#adc4a399cc59d5706f75748fb3846faec">_destroyed</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a24d36b1a64504298700a7ae7111fad5d">_facing</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a8b0aa105507a8a9559bbc2a66198ccd6">_image</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614">_x</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e">_y</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_checkpoint.html#a20c371a9e21ac0092b652a7d63f46f85">Checkpoint</a>(double x, double y)</td><td><a class="el" href="class_checkpoint.html">Checkpoint</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_checkpoint.html#ac94e0d92110fc4105bf5bf82ef4a5818">Checkpoint</a>(const Checkpoint &amp;ref)</td><td><a class="el" href="class_checkpoint.html">Checkpoint</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_checkpoint.html#a872d8574b6f0a7960854fb1175e05f13">checkpointCount</a>()</td><td><a class="el" href="class_checkpoint.html">Checkpoint</a></td><td><code> [static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_checkpoint.html#ad8f4b9da968e6b1f07080dc6f61282f7">collect</a>()</td><td><a class="el" href="class_checkpoint.html">Checkpoint</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a266871f6c0220f6b3c902075ebff8eea">destroyed</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a2549066ec4dc8f4ca2d3a8c5d5729324">facing</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a26cba01b9c2d301d4ee89a98b9396d67">GameObject</a>(double x, double y, BitmapStore::Image image, Maze::Direction facing=Maze::UP)</td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a05e352e3e01e774892beee0503fdb349">image</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8">x</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b">y</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_checkpoint.html#a7fff1a4a6a71c2150a969fbe40d01c34">~Checkpoint</a>()</td><td><a class="el" href="class_checkpoint.html">Checkpoint</a></td><td></td></tr>
+</table></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_checkpoint.html b/docs/html/class_checkpoint.html
new file mode 100644
index 0000000..0e3b2dc
--- /dev/null
+++ b/docs/html/class_checkpoint.html
@@ -0,0 +1,301 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Checkpoint Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pri-static-attribs">Static Private Attributes</a> </div>
+ <div class="headertitle">
+<div class="title">Checkpoint Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="Checkpoint" --><!-- doxytag: inherits="GameObject" -->
+<p><a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> that the player needs to pick up by driving over.
+ <a href="class_checkpoint.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_checkpoint_8h_source.html">Checkpoint.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for Checkpoint:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="class_checkpoint.png" usemap="#Checkpoint_map" alt=""/>
+ <map id="Checkpoint_map" name="Checkpoint_map">
+<area href="class_game_object.html" title="Parent class for objects that are placed in the maze." alt="GameObject" shape="rect" coords="0,0,81,24"/>
+</map>
+ </div></div>
+
+<p><a href="class_checkpoint-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_checkpoint.html#a20c371a9e21ac0092b652a7d63f46f85">Checkpoint</a> (double x, double y)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a checkpoint at the given coordinates. <a href="#a20c371a9e21ac0092b652a7d63f46f85"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_checkpoint.html#ac94e0d92110fc4105bf5bf82ef4a5818">Checkpoint</a> (const <a class="el" href="class_checkpoint.html">Checkpoint</a> &amp;ref)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constuctor, overwritten to include in the counting of Checkpoints. <a href="#ac94e0d92110fc4105bf5bf82ef4a5818"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_checkpoint.html#a7fff1a4a6a71c2150a969fbe40d01c34">~Checkpoint</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor, decreases the number of Checkpoints in existence. <a href="#a7fff1a4a6a71c2150a969fbe40d01c34"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_checkpoint.html#ad8f4b9da968e6b1f07080dc6f61282f7">collect</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to be called when a <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> collects the <a class="el" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>. <a href="#ad8f4b9da968e6b1f07080dc6f61282f7"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_checkpoint.html#a872d8574b6f0a7960854fb1175e05f13">checkpointCount</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for accessing the number of checkpoints that currently exist. <a href="#a872d8574b6f0a7960854fb1175e05f13"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-static-attribs"></a>
+Static Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_checkpoint.html#acb3ffc612d2a496b6b95752878818ff6">_checkpointCount</a> = 0</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Count of the number of Checkpoints currently in existence. <a href="#acb3ffc612d2a496b6b95752878818ff6"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> that the player needs to pick up by driving over. </p>
+<p>The level is complete when all checkpoints have been collected.</p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_checkpoint_8h_source.html#l00015">15</a> of file <a class="el" href="_checkpoint_8h_source.html">Checkpoint.h</a>.</p>
+</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a20c371a9e21ac0092b652a7d63f46f85"></a><!-- doxytag: member="Checkpoint::Checkpoint" ref="a20c371a9e21ac0092b652a7d63f46f85" args="(double x, double y)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Checkpoint::Checkpoint </td>
+ <td>(</td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Creates a checkpoint at the given coordinates. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>x coordinate of Checkpoint's position. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>y coordinate of Checkpoint's position. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_checkpoint_8cpp_source.html#l00005">5</a> of file <a class="el" href="_checkpoint_8cpp_source.html">Checkpoint.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac94e0d92110fc4105bf5bf82ef4a5818"></a><!-- doxytag: member="Checkpoint::Checkpoint" ref="ac94e0d92110fc4105bf5bf82ef4a5818" args="(const Checkpoint &amp;ref)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Checkpoint::Checkpoint </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_checkpoint.html">Checkpoint</a> &amp;&#160;</td>
+ <td class="paramname"><em>ref</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Copy constuctor, overwritten to include in the counting of Checkpoints. </p>
+
+<p>Definition at line <a class="el" href="_checkpoint_8cpp_source.html#l00011">11</a> of file <a class="el" href="_checkpoint_8cpp_source.html">Checkpoint.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7fff1a4a6a71c2150a969fbe40d01c34"></a><!-- doxytag: member="Checkpoint::~Checkpoint" ref="a7fff1a4a6a71c2150a969fbe40d01c34" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Checkpoint::~Checkpoint </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Destructor, decreases the number of Checkpoints in existence. </p>
+
+<p>Definition at line <a class="el" href="_checkpoint_8cpp_source.html#l00017">17</a> of file <a class="el" href="_checkpoint_8cpp_source.html">Checkpoint.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a872d8574b6f0a7960854fb1175e05f13"></a><!-- doxytag: member="Checkpoint::checkpointCount" ref="a872d8574b6f0a7960854fb1175e05f13" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int Checkpoint::checkpointCount </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td><code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Function for accessing the number of checkpoints that currently exist. </p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The number of checkpoints that currently exist. </dd></dl>
+
+<p>Definition at line <a class="el" href="_checkpoint_8cpp_source.html#l00022">22</a> of file <a class="el" href="_checkpoint_8cpp_source.html">Checkpoint.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad8f4b9da968e6b1f07080dc6f61282f7"></a><!-- doxytag: member="Checkpoint::collect" ref="ad8f4b9da968e6b1f07080dc6f61282f7" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Checkpoint::collect </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Function to be called when a <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> collects the <a class="el" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>. </p>
+
+<p>Definition at line <a class="el" href="_checkpoint_8cpp_source.html#l00027">27</a> of file <a class="el" href="_checkpoint_8cpp_source.html">Checkpoint.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="acb3ffc612d2a496b6b95752878818ff6"></a><!-- doxytag: member="Checkpoint::_checkpointCount" ref="acb3ffc612d2a496b6b95752878818ff6" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int <a class="el" href="class_checkpoint.html#acb3ffc612d2a496b6b95752878818ff6">Checkpoint::_checkpointCount</a> = 0<code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Count of the number of Checkpoints currently in existence. </p>
+
+<p>Definition at line <a class="el" href="_checkpoint_8h_source.html#l00050">50</a> of file <a class="el" href="_checkpoint_8h_source.html">Checkpoint.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>source/logic/<a class="el" href="_checkpoint_8h_source.html">Checkpoint.h</a></li>
+<li>source/logic/<a class="el" href="_checkpoint_8cpp_source.html">Checkpoint.cpp</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_checkpoint.png b/docs/html/class_checkpoint.png
new file mode 100644
index 0000000..c0a2649
--- /dev/null
+++ b/docs/html/class_checkpoint.png
Binary files differ
diff --git a/docs/html/class_collision_detector-members.html b/docs/html/class_collision_detector-members.html
new file mode 100644
index 0000000..ecbeabb
--- /dev/null
+++ b/docs/html/class_collision_detector-members.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Member List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">CollisionDetector Member List</div> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="class_collision_detector.html">CollisionDetector</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="class_collision_detector.html#a6ee96032c26ceeab038d2702d7064c7b">checkCollisions</a>(list&lt; PlayerCar &gt; &amp;players, list&lt; EnemyCar &gt; &amp;enemies, list&lt; Checkpoint &gt; &amp;checkpoints, list&lt; Rock &gt; &amp;rocks, list&lt; Smokescreen &gt; &amp;smokescreens)</td><td><a class="el" href="class_collision_detector.html">CollisionDetector</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_collision_detector.html#a9d013c0f8e15cbfd4741a0789ba507fe">collision</a>(PlayerCar &amp;player, Checkpoint &amp;checkpoint)</td><td><a class="el" href="class_collision_detector.html">CollisionDetector</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_collision_detector.html#a36e9c23d49ee7be68277c7d4e4f27d2a">collision</a>(PlayerCar &amp;player, EnemyCar &amp;enemy)</td><td><a class="el" href="class_collision_detector.html">CollisionDetector</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_collision_detector.html#ad9502a42ff9f43804284d0128794edaa">collision</a>(PlayerCar &amp;player, Rock &amp;rock)</td><td><a class="el" href="class_collision_detector.html">CollisionDetector</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_collision_detector.html#a68572f5ec6cf32f28f07bda7a7b96452">collision</a>(EnemyCar &amp;enemy, Smokescreen &amp;smokescreen)</td><td><a class="el" href="class_collision_detector.html">CollisionDetector</a></td><td><code> [private]</code></td></tr>
+</table></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_collision_detector.html b/docs/html/class_collision_detector.html
new file mode 100644
index 0000000..40a06d5
--- /dev/null
+++ b/docs/html/class_collision_detector.html
@@ -0,0 +1,360 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: CollisionDetector Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pri-methods">Private Member Functions</a> </div>
+ <div class="headertitle">
+<div class="title">CollisionDetector Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="CollisionDetector" -->
+<p>Object for handling collisions between GameObjects.
+ <a href="class_collision_detector.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_collision_detector_8h_source.html">CollisionDetector.h</a>&gt;</code></p>
+
+<p><a href="class_collision_detector-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_collision_detector.html#a6ee96032c26ceeab038d2702d7064c7b">checkCollisions</a> (list&lt; <a class="el" href="class_player_car.html">PlayerCar</a> &gt; &amp;players, list&lt; <a class="el" href="class_enemy_car.html">EnemyCar</a> &gt; &amp;enemies, list&lt; <a class="el" href="class_checkpoint.html">Checkpoint</a> &gt; &amp;checkpoints, list&lt; <a class="el" href="class_rock.html">Rock</a> &gt; &amp;rocks, list&lt; <a class="el" href="class_smokescreen.html">Smokescreen</a> &gt; &amp;smokescreens)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks for collisions between all relevant pairs of objects, and calls the relevant collision function if one is found. <a href="#a6ee96032c26ceeab038d2702d7064c7b"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-methods"></a>
+Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_collision_detector.html#a9d013c0f8e15cbfd4741a0789ba507fe">collision</a> (<a class="el" href="class_player_car.html">PlayerCar</a> &amp;player, <a class="el" href="class_checkpoint.html">Checkpoint</a> &amp;checkpoint)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Collision between a <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> and a <a class="el" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>. <a href="#a9d013c0f8e15cbfd4741a0789ba507fe"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_collision_detector.html#a36e9c23d49ee7be68277c7d4e4f27d2a">collision</a> (<a class="el" href="class_player_car.html">PlayerCar</a> &amp;player, <a class="el" href="class_enemy_car.html">EnemyCar</a> &amp;enemy)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Collision between a <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> and an <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>. <a href="#a36e9c23d49ee7be68277c7d4e4f27d2a"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_collision_detector.html#ad9502a42ff9f43804284d0128794edaa">collision</a> (<a class="el" href="class_player_car.html">PlayerCar</a> &amp;player, <a class="el" href="class_rock.html">Rock</a> &amp;rock)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Collision between a <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> and a <a class="el" href="class_rock.html" title="A game object that acts as an obstacle to the player.">Rock</a>. <a href="#ad9502a42ff9f43804284d0128794edaa"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_collision_detector.html#a68572f5ec6cf32f28f07bda7a7b96452">collision</a> (<a class="el" href="class_enemy_car.html">EnemyCar</a> &amp;enemy, <a class="el" href="class_smokescreen.html">Smokescreen</a> &amp;smokescreen)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Collision between an <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> and a <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a>. <a href="#a68572f5ec6cf32f28f07bda7a7b96452"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Object for handling collisions between GameObjects. </p>
+<p>Collisions between all relevant objects are checked and the appropriate methods on the GameObjects are called when a collision occurs.</p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_collision_detector_8h_source.html#l00022">22</a> of file <a class="el" href="_collision_detector_8h_source.html">CollisionDetector.h</a>.</p>
+</div><hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a6ee96032c26ceeab038d2702d7064c7b"></a><!-- doxytag: member="CollisionDetector::checkCollisions" ref="a6ee96032c26ceeab038d2702d7064c7b" args="(list&lt; PlayerCar &gt; &amp;players, list&lt; EnemyCar &gt; &amp;enemies, list&lt; Checkpoint &gt; &amp;checkpoints, list&lt; Rock &gt; &amp;rocks, list&lt; Smokescreen &gt; &amp;smokescreens)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void CollisionDetector::checkCollisions </td>
+ <td>(</td>
+ <td class="paramtype">list&lt; <a class="el" href="class_player_car.html">PlayerCar</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>players</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">list&lt; <a class="el" href="class_enemy_car.html">EnemyCar</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>enemies</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">list&lt; <a class="el" href="class_checkpoint.html">Checkpoint</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>checkpoints</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">list&lt; <a class="el" href="class_rock.html">Rock</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>rocks</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">list&lt; <a class="el" href="class_smokescreen.html">Smokescreen</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>smokescreens</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Checks for collisions between all relevant pairs of objects, and calls the relevant collision function if one is found. </p>
+<p>A collision occurs if the distance between two object's x values is less than 1, and the distance between their y values is also less than 1.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in,out]</td><td class="paramname">players</td><td>List of PlayerCars, that can collide with EnemieCars, Checkpoints, or Rocks. </td></tr>
+ <tr><td class="paramdir">[in,out]</td><td class="paramname">enemies</td><td>List of EnemyCars, that can collide with PlayerCars, or Smokescreens. </td></tr>
+ <tr><td class="paramdir">[in,out]</td><td class="paramname">checkpoints</td><td>List of Checkpoints, that can collide with PlayerCars. </td></tr>
+ <tr><td class="paramdir">[in,out]</td><td class="paramname">rocks</td><td>List of Rocks, that can collide with PlayerCars. </td></tr>
+ <tr><td class="paramdir">[in,out]</td><td class="paramname">smokescreens</td><td>List of Smokescreens, that can collide with EnemyCars. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_collision_detector_8cpp_source.html#l00003">3</a> of file <a class="el" href="_collision_detector_8cpp_source.html">CollisionDetector.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9d013c0f8e15cbfd4741a0789ba507fe"></a><!-- doxytag: member="CollisionDetector::collision" ref="a9d013c0f8e15cbfd4741a0789ba507fe" args="(PlayerCar &amp;player, Checkpoint &amp;checkpoint)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void CollisionDetector::collision </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_player_car.html">PlayerCar</a> &amp;&#160;</td>
+ <td class="paramname"><em>player</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="class_checkpoint.html">Checkpoint</a> &amp;&#160;</td>
+ <td class="paramname"><em>checkpoint</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Collision between a <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> and a <a class="el" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in,out]</td><td class="paramname">player</td><td><a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> involved in the collision. </td></tr>
+ <tr><td class="paramdir">[in,out]</td><td class="paramname">checkpoint</td><td><a class="el" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a> involved in the collision. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_collision_detector_8cpp_source.html#l00044">44</a> of file <a class="el" href="_collision_detector_8cpp_source.html">CollisionDetector.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a36e9c23d49ee7be68277c7d4e4f27d2a"></a><!-- doxytag: member="CollisionDetector::collision" ref="a36e9c23d49ee7be68277c7d4e4f27d2a" args="(PlayerCar &amp;player, EnemyCar &amp;enemy)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void CollisionDetector::collision </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_player_car.html">PlayerCar</a> &amp;&#160;</td>
+ <td class="paramname"><em>player</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="class_enemy_car.html">EnemyCar</a> &amp;&#160;</td>
+ <td class="paramname"><em>enemy</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Collision between a <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> and an <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in,out]</td><td class="paramname">player</td><td><a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> involved in the collision. </td></tr>
+ <tr><td class="paramdir">[in,out]</td><td class="paramname">enemy</td><td><a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> involved in the collision. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_collision_detector_8cpp_source.html#l00055">55</a> of file <a class="el" href="_collision_detector_8cpp_source.html">CollisionDetector.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad9502a42ff9f43804284d0128794edaa"></a><!-- doxytag: member="CollisionDetector::collision" ref="ad9502a42ff9f43804284d0128794edaa" args="(PlayerCar &amp;player, Rock &amp;rock)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void CollisionDetector::collision </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_player_car.html">PlayerCar</a> &amp;&#160;</td>
+ <td class="paramname"><em>player</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="class_rock.html">Rock</a> &amp;&#160;</td>
+ <td class="paramname"><em>rock</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Collision between a <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> and a <a class="el" href="class_rock.html" title="A game object that acts as an obstacle to the player.">Rock</a>. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in,out]</td><td class="paramname">player</td><td><a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> involved in the collision. </td></tr>
+ <tr><td class="paramdir">[in,out]</td><td class="paramname">rock</td><td><a class="el" href="class_rock.html" title="A game object that acts as an obstacle to the player.">Rock</a> involved in the collision. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_collision_detector_8cpp_source.html#l00050">50</a> of file <a class="el" href="_collision_detector_8cpp_source.html">CollisionDetector.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a68572f5ec6cf32f28f07bda7a7b96452"></a><!-- doxytag: member="CollisionDetector::collision" ref="a68572f5ec6cf32f28f07bda7a7b96452" args="(EnemyCar &amp;enemy, Smokescreen &amp;smokescreen)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void CollisionDetector::collision </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_enemy_car.html">EnemyCar</a> &amp;&#160;</td>
+ <td class="paramname"><em>enemy</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="class_smokescreen.html">Smokescreen</a> &amp;&#160;</td>
+ <td class="paramname"><em>smokescreen</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Collision between an <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> and a <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a>. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in,out]</td><td class="paramname">enemy</td><td><a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> involved in the collision. </td></tr>
+ <tr><td class="paramdir">[in,out]</td><td class="paramname">smokescreen</td><td><a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> involved in the collision. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_collision_detector_8cpp_source.html#l00061">61</a> of file <a class="el" href="_collision_detector_8cpp_source.html">CollisionDetector.cpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>source/logic/<a class="el" href="_collision_detector_8h_source.html">CollisionDetector.h</a></li>
+<li>source/logic/<a class="el" href="_collision_detector_8cpp_source.html">CollisionDetector.cpp</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_colour_store-members.html b/docs/html/class_colour_store-members.html
new file mode 100644
index 0000000..34d67d4
--- /dev/null
+++ b/docs/html/class_colour_store-members.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Member List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">ColourStore Member List</div> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="class_colour_store.html">ColourStore</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="class_colour_store.html#acb64b1ffc465fa752a2f282da4c9afba">_colours</a></td><td><a class="el" href="class_colour_store.html">ColourStore</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_colour_store.html#acadd8e6ed32fe6535252c94124df04ca">_transparent</a></td><td><a class="el" href="class_colour_store.html">ColourStore</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_colour_store.html#a667f2e3c6d5b6eb553f58724e58bbed0">ColourStore</a>()</td><td><a class="el" href="class_colour_store.html">ColourStore</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_colour_store.html#a3063a6fce81040a8b840a303b1e08829">ColourStore</a>(const ColourStore &amp;ref)</td><td><a class="el" href="class_colour_store.html">ColourStore</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_colour_store.html#ac8474c4e9b335215f03ec2c749847ad2">getColour</a>(BitmapStore::Image image)</td><td><a class="el" href="class_colour_store.html">ColourStore</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_colour_store.html#a2d3688dbcdf5f9f9b82ef50709c2f286">operator=</a>(const ColourStore &amp;rhs)</td><td><a class="el" href="class_colour_store.html">ColourStore</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_colour_store.html#ad3f729c8e9f6a94bacd85e6db47e2e82">populateColours</a>()</td><td><a class="el" href="class_colour_store.html">ColourStore</a></td><td><code> [private]</code></td></tr>
+</table></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_colour_store.html b/docs/html/class_colour_store.html
new file mode 100644
index 0000000..d7af6da
--- /dev/null
+++ b/docs/html/class_colour_store.html
@@ -0,0 +1,297 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: ColourStore Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pri-methods">Private Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> </div>
+ <div class="headertitle">
+<div class="title">ColourStore Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="ColourStore" -->
+<p>Class for mapping <a class="el" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a> images to colours for use in the minimap.
+ <a href="class_colour_store.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_colour_store_8h_source.html">ColourStore.h</a>&gt;</code></p>
+
+<p><a href="class_colour_store-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_colour_store.html#a667f2e3c6d5b6eb553f58724e58bbed0">ColourStore</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates the <a class="el" href="class_colour_store.html" title="Class for mapping BitmapStore images to colours for use in the minimap.">ColourStore</a> object and initialises all of the colours. <a href="#a667f2e3c6d5b6eb553f58724e58bbed0"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ALLEGRO_COLOR&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_colour_store.html#ac8474c4e9b335215f03ec2c749847ad2">getColour</a> (<a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386">BitmapStore::Image</a> image)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the colour associated with a given image. <a href="#ac8474c4e9b335215f03ec2c749847ad2"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-methods"></a>
+Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_colour_store.html#a3063a6fce81040a8b840a303b1e08829">ColourStore</a> (const <a class="el" href="class_colour_store.html">ColourStore</a> &amp;ref)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Unimplemented copy constructor, prevents copying of <a class="el" href="class_colour_store.html" title="Class for mapping BitmapStore images to colours for use in the minimap.">ColourStore</a> objects. <a href="#a3063a6fce81040a8b840a303b1e08829"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_colour_store.html">ColourStore</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_colour_store.html#a2d3688dbcdf5f9f9b82ef50709c2f286">operator=</a> (const <a class="el" href="class_colour_store.html">ColourStore</a> &amp;rhs)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Unimplemented assignment operator. <a href="#a2d3688dbcdf5f9f9b82ef50709c2f286"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_colour_store.html#ad3f729c8e9f6a94bacd85e6db47e2e82">populateColours</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialises all of the relevant colours. <a href="#ad3f729c8e9f6a94bacd85e6db47e2e82"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">map&lt; <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386">BitmapStore::Image</a>, <br class="typebreak"/>
+ALLEGRO_COLOR &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_colour_store.html#acb64b1ffc465fa752a2f282da4c9afba">_colours</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ALLEGRO_COLOR&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_colour_store.html#acadd8e6ed32fe6535252c94124df04ca">_transparent</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialised to have an alpha of 0, and returned when the colour of an unlisted image is requested. <a href="#acadd8e6ed32fe6535252c94124df04ca"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Class for mapping <a class="el" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a> images to colours for use in the minimap. </p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_colour_store_8h_source.html#l00014">14</a> of file <a class="el" href="_colour_store_8h_source.html">ColourStore.h</a>.</p>
+</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a667f2e3c6d5b6eb553f58724e58bbed0"></a><!-- doxytag: member="ColourStore::ColourStore" ref="a667f2e3c6d5b6eb553f58724e58bbed0" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ColourStore::ColourStore </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Creates the <a class="el" href="class_colour_store.html" title="Class for mapping BitmapStore images to colours for use in the minimap.">ColourStore</a> object and initialises all of the colours. </p>
+
+<p>Definition at line <a class="el" href="_colour_store_8cpp_source.html#l00003">3</a> of file <a class="el" href="_colour_store_8cpp_source.html">ColourStore.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3063a6fce81040a8b840a303b1e08829"></a><!-- doxytag: member="ColourStore::ColourStore" ref="a3063a6fce81040a8b840a303b1e08829" args="(const ColourStore &amp;ref)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ColourStore::ColourStore </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_colour_store.html">ColourStore</a> &amp;&#160;</td>
+ <td class="paramname"><em>ref</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Unimplemented copy constructor, prevents copying of <a class="el" href="class_colour_store.html" title="Class for mapping BitmapStore images to colours for use in the minimap.">ColourStore</a> objects. </p>
+<p>Copying a <a class="el" href="class_colour_store.html" title="Class for mapping BitmapStore images to colours for use in the minimap.">ColourStore</a> is unneccesary as there should only be a single <a class="el" href="class_colour_store.html" title="Class for mapping BitmapStore images to colours for use in the minimap.">ColourStore</a> object. </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="ac8474c4e9b335215f03ec2c749847ad2"></a><!-- doxytag: member="ColourStore::getColour" ref="ac8474c4e9b335215f03ec2c749847ad2" args="(BitmapStore::Image image)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ALLEGRO_COLOR ColourStore::getColour </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386">BitmapStore::Image</a>&#160;</td>
+ <td class="paramname"><em>image</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Returns the colour associated with a given image. </p>
+<p>If no colour makes sense for the image, then when it is requested a colour with an alpha of 0 (completely transparent) is returned.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">image</td><td>The <a class="el" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a> image to be associated with a colour.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The requested colour. </dd></dl>
+
+<p>Definition at line <a class="el" href="_colour_store_8cpp_source.html#l00018">18</a> of file <a class="el" href="_colour_store_8cpp_source.html">ColourStore.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2d3688dbcdf5f9f9b82ef50709c2f286"></a><!-- doxytag: member="ColourStore::operator=" ref="a2d3688dbcdf5f9f9b82ef50709c2f286" args="(const ColourStore &amp;rhs)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_colour_store.html">ColourStore</a>&amp; ColourStore::operator= </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_colour_store.html">ColourStore</a> &amp;&#160;</td>
+ <td class="paramname"><em>rhs</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Unimplemented assignment operator. </p>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="class_colour_store.html#a3063a6fce81040a8b840a303b1e08829" title="Unimplemented copy constructor, prevents copying of ColourStore objects.">ColourStore(const ColourStore&amp; ref)</a>; </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ad3f729c8e9f6a94bacd85e6db47e2e82"></a><!-- doxytag: member="ColourStore::populateColours" ref="ad3f729c8e9f6a94bacd85e6db47e2e82" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void ColourStore::populateColours </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Initialises all of the relevant colours. </p>
+
+<p>Definition at line <a class="el" href="_colour_store_8cpp_source.html#l00008">8</a> of file <a class="el" href="_colour_store_8cpp_source.html">ColourStore.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="acb64b1ffc465fa752a2f282da4c9afba"></a><!-- doxytag: member="ColourStore::_colours" ref="acb64b1ffc465fa752a2f282da4c9afba" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">map&lt;<a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386">BitmapStore::Image</a>, ALLEGRO_COLOR&gt; <a class="el" href="class_colour_store.html#acb64b1ffc465fa752a2f282da4c9afba">ColourStore::_colours</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="_colour_store_8h_source.html#l00047">47</a> of file <a class="el" href="_colour_store_8h_source.html">ColourStore.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acadd8e6ed32fe6535252c94124df04ca"></a><!-- doxytag: member="ColourStore::_transparent" ref="acadd8e6ed32fe6535252c94124df04ca" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ALLEGRO_COLOR <a class="el" href="class_colour_store.html#acadd8e6ed32fe6535252c94124df04ca">ColourStore::_transparent</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Initialised to have an alpha of 0, and returned when the colour of an unlisted image is requested. </p>
+
+<p>Definition at line <a class="el" href="_colour_store_8h_source.html#l00052">52</a> of file <a class="el" href="_colour_store_8h_source.html">ColourStore.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>source/presentation/<a class="el" href="_colour_store_8h_source.html">ColourStore.h</a></li>
+<li>source/presentation/<a class="el" href="_colour_store_8cpp_source.html">ColourStore.cpp</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_config-members.html b/docs/html/class_config-members.html
new file mode 100644
index 0000000..26133a8
--- /dev/null
+++ b/docs/html/class_config-members.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Member List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">Config Member List</div> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="class_config.html">Config</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="class_config.html#ad6fddaaf52742adcba95155b3635e807">_fullscreen</a></td><td><a class="el" href="class_config.html">Config</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_config.html#ac27364c75bc8d5e82119988df85c1599">_screenHeight</a></td><td><a class="el" href="class_config.html">Config</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_config.html#a46dce43903bb24bac8c2ffc92f2ee4da">_screenWidth</a></td><td><a class="el" href="class_config.html">Config</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_config.html#aab967ce080511b4ae5bf578cba5237d3">Config</a>(const string &amp;filename)</td><td><a class="el" href="class_config.html">Config</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_config.html#a38dee1d0fe4e962aedcee79faad2691c">extractValue</a>(const map&lt; string, string &gt; &amp;readValues, map&lt; string, string &gt; &amp;unfoundValues, const string &amp;key, const string &amp;defaultValue)</td><td><a class="el" href="class_config.html">Config</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_config.html#ac31c5164b58f86c2a9ecaf21ac1f2202">fillValues</a>(const map&lt; string, string &gt; &amp;readValues, map&lt; string, string &gt; &amp;unfoundValues)</td><td><a class="el" href="class_config.html">Config</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_config.html#a8a401add779f2b74732ade9e515bf0cd">fullscreen</a>() const </td><td><a class="el" href="class_config.html">Config</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_config.html#a3195b4273ebe9ac691167bff71394720">FULLSCREEN_DEFAULT</a></td><td><a class="el" href="class_config.html">Config</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_config.html#ae2dd20bca46b767d2a30c32de7ab78cb">FULLSCREEN_KEY</a></td><td><a class="el" href="class_config.html">Config</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_config.html#aa9656bf85fa15fd4e90a99558f880602">readFile</a>(ifstream &amp;file, map&lt; string, string &gt; &amp;map)</td><td><a class="el" href="class_config.html">Config</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_config.html#a2382c43dd0d51b3d52bf88d18438c579">SCREEN_HEIGHT_DEFAULT</a></td><td><a class="el" href="class_config.html">Config</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_config.html#a5dd914d11bd6f43c06ad4682be0efaba">SCREEN_HEIGHT_KEY</a></td><td><a class="el" href="class_config.html">Config</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_config.html#ad6f88b173db3508eaeb7b569655b5cf2">SCREEN_WIDTH_DEFAULT</a></td><td><a class="el" href="class_config.html">Config</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_config.html#abebfdbe6033183421dcdb4cdb6fc9549">SCREEN_WIDTH_KEY</a></td><td><a class="el" href="class_config.html">Config</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_config.html#a53d63c52aa51b5231b9ea8e412086773">screenHeight</a>() const </td><td><a class="el" href="class_config.html">Config</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_config.html#a3bb73797396d2d5ba8c9956730dfc4db">screenWidth</a>() const </td><td><a class="el" href="class_config.html">Config</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_config.html#a5ce32c242ca037105a2430a122249a0a">setFullscreen</a>(const string &amp;fullscreenStr)</td><td><a class="el" href="class_config.html">Config</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_config.html#a8e960645b79f31c39ee0cecc89ed6060">setScreenHeight</a>(const string &amp;screenHeightStr)</td><td><a class="el" href="class_config.html">Config</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_config.html#ac0fd2f7c14b9f26339862da74215bf01">setScreenWidth</a>(const string &amp;screenWidthStr)</td><td><a class="el" href="class_config.html">Config</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_config.html#a54612c3ce193bea917d3088175e16d43">writeUnfoundValues</a>(ofstream &amp;file, const map&lt; string, string &gt; &amp;unfoundValues)</td><td><a class="el" href="class_config.html">Config</a></td><td><code> [private]</code></td></tr>
+</table></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_config.html b/docs/html/class_config.html
new file mode 100644
index 0000000..46121fe
--- /dev/null
+++ b/docs/html/class_config.html
@@ -0,0 +1,681 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Config Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pri-methods">Private Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> &#124;
+<a href="#pri-static-attribs">Static Private Attributes</a> </div>
+ <div class="headertitle">
+<div class="title">Config Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="Config" -->
+<p>Object for handling user settings loaded from a file.
+ <a href="class_config.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_config_8h_source.html">Config.h</a>&gt;</code></p>
+
+<p><a href="class_config-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_config.html#aab967ce080511b4ae5bf578cba5237d3">Config</a> (const string &amp;filename)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a <a class="el" href="class_config.html" title="Object for handling user settings loaded from a file.">Config</a> object from a file with the given path. <a href="#aab967ce080511b4ae5bf578cba5237d3"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_config.html#a3bb73797396d2d5ba8c9956730dfc4db">screenWidth</a> () const </td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for accessing the screen width setting in pixels. <a href="#a3bb73797396d2d5ba8c9956730dfc4db"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_config.html#a53d63c52aa51b5231b9ea8e412086773">screenHeight</a> () const </td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for accessing the screen height setting in pixels. <a href="#a53d63c52aa51b5231b9ea8e412086773"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_config.html#a8a401add779f2b74732ade9e515bf0cd">fullscreen</a> () const </td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for accessing whether the game should be displayed in fullscreen or windowed mode. <a href="#a8a401add779f2b74732ade9e515bf0cd"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-methods"></a>
+Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_config.html#aa9656bf85fa15fd4e90a99558f880602">readFile</a> (ifstream &amp;file, map&lt; string, string &gt; &amp;map)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads all of the settings defined in a file into a map. <a href="#aa9656bf85fa15fd4e90a99558f880602"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_config.html#ac31c5164b58f86c2a9ecaf21ac1f2202">fillValues</a> (const map&lt; string, string &gt; &amp;readValues, map&lt; string, string &gt; &amp;unfoundValues)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialises the <a class="el" href="class_config.html" title="Object for handling user settings loaded from a file.">Config</a> option's parameters to those in the readValues map. <a href="#ac31c5164b58f86c2a9ecaf21ac1f2202"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_config.html#a38dee1d0fe4e962aedcee79faad2691c">extractValue</a> (const map&lt; string, string &gt; &amp;readValues, map&lt; string, string &gt; &amp;unfoundValues, const string &amp;key, const string &amp;defaultValue)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function for fillValues. Finds the value for a single key. <a href="#a38dee1d0fe4e962aedcee79faad2691c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_config.html#a54612c3ce193bea917d3088175e16d43">writeUnfoundValues</a> (ofstream &amp;file, const map&lt; string, string &gt; &amp;unfoundValues)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes settings that were not found in the file to the file with default values. <a href="#a54612c3ce193bea917d3088175e16d43"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_config.html#ac0fd2f7c14b9f26339862da74215bf01">setScreenWidth</a> (const string &amp;screenWidthStr)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the screen width in pixels from a given string. <a href="#ac0fd2f7c14b9f26339862da74215bf01"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_config.html#a8e960645b79f31c39ee0cecc89ed6060">setScreenHeight</a> (const string &amp;screenHeightStr)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the screen height in pixels from a given string. <a href="#a8e960645b79f31c39ee0cecc89ed6060"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_config.html#a5ce32c242ca037105a2430a122249a0a">setFullscreen</a> (const string &amp;fullscreenStr)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the fullscreen setting from a given string. <a href="#a5ce32c242ca037105a2430a122249a0a"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_config.html#a46dce43903bb24bac8c2ffc92f2ee4da">_screenWidth</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The desired width of the screen in pixels. <a href="#a46dce43903bb24bac8c2ffc92f2ee4da"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_config.html#ac27364c75bc8d5e82119988df85c1599">_screenHeight</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The desired height of the screen in pixels. <a href="#ac27364c75bc8d5e82119988df85c1599"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_config.html#ad6fddaaf52742adcba95155b3635e807">_fullscreen</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The desired fullscreen or windowed setting. <a href="#ad6fddaaf52742adcba95155b3635e807"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-static-attribs"></a>
+Static Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_config.html#abebfdbe6033183421dcdb4cdb6fc9549">SCREEN_WIDTH_KEY</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The key for the screen width setting, initialized to "screen_width". <a href="#abebfdbe6033183421dcdb4cdb6fc9549"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_config.html#a5dd914d11bd6f43c06ad4682be0efaba">SCREEN_HEIGHT_KEY</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The key for the screen height setting, initialized to "screen_height". <a href="#a5dd914d11bd6f43c06ad4682be0efaba"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_config.html#ae2dd20bca46b767d2a30c32de7ab78cb">FULLSCREEN_KEY</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The key for the fullscreen setting, initialized to "fullscreen". <a href="#ae2dd20bca46b767d2a30c32de7ab78cb"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_config.html#ad6f88b173db3508eaeb7b569655b5cf2">SCREEN_WIDTH_DEFAULT</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The default value for the screen width setting, initialized to 800. <a href="#ad6f88b173db3508eaeb7b569655b5cf2"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_config.html#a2382c43dd0d51b3d52bf88d18438c579">SCREEN_HEIGHT_DEFAULT</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The default value for the screen height setting, initialized to 600. <a href="#a2382c43dd0d51b3d52bf88d18438c579"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_config.html#a3195b4273ebe9ac691167bff71394720">FULLSCREEN_DEFAULT</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The default value for the fullscreen setting, initialized to false. <a href="#a3195b4273ebe9ac691167bff71394720"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Object for handling user settings loaded from a file. </p>
+<p>These settings are currently all related to the screen (resolution and windowed or fullscreen). If custom controls are implemented in a later release, they will be loaded here. If a setting exists but is not found in the config file, it is set to a default value and written to the file.</p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_config_8h_source.html#l00020">20</a> of file <a class="el" href="_config_8h_source.html">Config.h</a>.</p>
+</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="aab967ce080511b4ae5bf578cba5237d3"></a><!-- doxytag: member="Config::Config" ref="aab967ce080511b4ae5bf578cba5237d3" args="(const string &amp;filename)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Config::Config </td>
+ <td>(</td>
+ <td class="paramtype">const string &amp;&#160;</td>
+ <td class="paramname"><em>filename</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Constructs a <a class="el" href="class_config.html" title="Object for handling user settings loaded from a file.">Config</a> object from a file with the given path. </p>
+<p>Opens the file and reads all of the settings in the file. The read settings are bound to the settings that have keys defined in the class. And settings missing from the file are set to default values, and the default values are written to the file.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">filename</td><td>The path of the file in which the settings are stored. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_config_8cpp_source.html#l00012">12</a> of file <a class="el" href="_config_8cpp_source.html">Config.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a38dee1d0fe4e962aedcee79faad2691c"></a><!-- doxytag: member="Config::extractValue" ref="a38dee1d0fe4e962aedcee79faad2691c" args="(const map&lt; string, string &gt; &amp;readValues, map&lt; string, string &gt; &amp;unfoundValues, const string &amp;key, const string &amp;defaultValue)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">string Config::extractValue </td>
+ <td>(</td>
+ <td class="paramtype">const map&lt; string, string &gt; &amp;&#160;</td>
+ <td class="paramname"><em>readValues</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">map&lt; string, string &gt; &amp;&#160;</td>
+ <td class="paramname"><em>unfoundValues</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const string &amp;&#160;</td>
+ <td class="paramname"><em>key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const string &amp;&#160;</td>
+ <td class="paramname"><em>defaultValue</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Helper function for fillValues. Finds the value for a single key. </p>
+<p>If the given key does not appear, it is added to the unfoundValues map with the given default</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">readValues</td><td>A map containing all of the settings read in from a config file. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">unfoundValues</td><td>A map that is populated with and settings not found in readValues. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>The key of the setting to be found in readValues. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">defaultValue</td><td>The value to return and add to unfoundValues if the setting is not found in readValues.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The value corresponding to the requested key. </dd></dl>
+
+<p>Definition at line <a class="el" href="_config_8cpp_source.html#l00072">72</a> of file <a class="el" href="_config_8cpp_source.html">Config.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac31c5164b58f86c2a9ecaf21ac1f2202"></a><!-- doxytag: member="Config::fillValues" ref="ac31c5164b58f86c2a9ecaf21ac1f2202" args="(const map&lt; string, string &gt; &amp;readValues, map&lt; string, string &gt; &amp;unfoundValues)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Config::fillValues </td>
+ <td>(</td>
+ <td class="paramtype">const map&lt; string, string &gt; &amp;&#160;</td>
+ <td class="paramname"><em>readValues</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">map&lt; string, string &gt; &amp;&#160;</td>
+ <td class="paramname"><em>unfoundValues</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Initialises the <a class="el" href="class_config.html" title="Object for handling user settings loaded from a file.">Config</a> option's parameters to those in the readValues map. </p>
+<p>Parameters with a key that does not appear in readValues are initialised to a default value. The default value, and its key, are then added to the unfoundValues map.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">readValues</td><td>A map containing all of the settings read in from a config file. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">unfoundValues</td><td>A map that is populated with and settings not found in readValues. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_config_8cpp_source.html#l00065">65</a> of file <a class="el" href="_config_8cpp_source.html">Config.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8a401add779f2b74732ade9e515bf0cd"></a><!-- doxytag: member="Config::fullscreen" ref="a8a401add779f2b74732ade9e515bf0cd" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool Config::fullscreen </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Function for accessing whether the game should be displayed in fullscreen or windowed mode. </p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The desired fullscreen setting. A result of true means fullscreen mode, while a result of false means windowed mode. </dd></dl>
+
+<p>Definition at line <a class="el" href="_config_8cpp_source.html#l00040">40</a> of file <a class="el" href="_config_8cpp_source.html">Config.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa9656bf85fa15fd4e90a99558f880602"></a><!-- doxytag: member="Config::readFile" ref="aa9656bf85fa15fd4e90a99558f880602" args="(ifstream &amp;file, map&lt; string, string &gt; &amp;map)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Config::readFile </td>
+ <td>(</td>
+ <td class="paramtype">ifstream &amp;&#160;</td>
+ <td class="paramname"><em>file</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">map&lt; string, string &gt; &amp;&#160;</td>
+ <td class="paramname"><em>map</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Reads all of the settings defined in a file into a map. </p>
+<p>Reads each line that is in the format "key=value" in a file into a map. Lines that do not contain a '=' are ignored.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>An opened filestream object at the beginning of the file to be read. After the function call, file will be at the end of the file. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">map</td><td>The map that is populated with settings. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_config_8cpp_source.html#l00045">45</a> of file <a class="el" href="_config_8cpp_source.html">Config.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a53d63c52aa51b5231b9ea8e412086773"></a><!-- doxytag: member="Config::screenHeight" ref="a53d63c52aa51b5231b9ea8e412086773" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">unsigned int Config::screenHeight </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Function for accessing the screen height setting in pixels. </p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The desired height of the screen in pixels. </dd></dl>
+
+<p>Definition at line <a class="el" href="_config_8cpp_source.html#l00036">36</a> of file <a class="el" href="_config_8cpp_source.html">Config.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3bb73797396d2d5ba8c9956730dfc4db"></a><!-- doxytag: member="Config::screenWidth" ref="a3bb73797396d2d5ba8c9956730dfc4db" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">unsigned int Config::screenWidth </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Function for accessing the screen width setting in pixels. </p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The desired width of the screen in pixels. </dd></dl>
+
+<p>Definition at line <a class="el" href="_config_8cpp_source.html#l00032">32</a> of file <a class="el" href="_config_8cpp_source.html">Config.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5ce32c242ca037105a2430a122249a0a"></a><!-- doxytag: member="Config::setFullscreen" ref="a5ce32c242ca037105a2430a122249a0a" args="(const string &amp;fullscreenStr)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Config::setFullscreen </td>
+ <td>(</td>
+ <td class="paramtype">const string &amp;&#160;</td>
+ <td class="paramname"><em>fullscreenStr</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Initializes the fullscreen setting from a given string. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">fullscreenStr</td><td>A string representing whether the screen should be in fullscreen mode ("true") or windowed mode (anything else). </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_config_8cpp_source.html#l00102">102</a> of file <a class="el" href="_config_8cpp_source.html">Config.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8e960645b79f31c39ee0cecc89ed6060"></a><!-- doxytag: member="Config::setScreenHeight" ref="a8e960645b79f31c39ee0cecc89ed6060" args="(const string &amp;screenHeightStr)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Config::setScreenHeight </td>
+ <td>(</td>
+ <td class="paramtype">const string &amp;&#160;</td>
+ <td class="paramname"><em>screenHeightStr</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Initializes the screen height in pixels from a given string. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">screenHeightStr</td><td>A string representing the desired screen height, read from a file. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_config_8cpp_source.html#l00098">98</a> of file <a class="el" href="_config_8cpp_source.html">Config.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac0fd2f7c14b9f26339862da74215bf01"></a><!-- doxytag: member="Config::setScreenWidth" ref="ac0fd2f7c14b9f26339862da74215bf01" args="(const string &amp;screenWidthStr)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Config::setScreenWidth </td>
+ <td>(</td>
+ <td class="paramtype">const string &amp;&#160;</td>
+ <td class="paramname"><em>screenWidthStr</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Initializes the screen width in pixels from a given string. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">screenWidthStr</td><td>A string representing the desired screen width, read from a file. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_config_8cpp_source.html#l00094">94</a> of file <a class="el" href="_config_8cpp_source.html">Config.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a54612c3ce193bea917d3088175e16d43"></a><!-- doxytag: member="Config::writeUnfoundValues" ref="a54612c3ce193bea917d3088175e16d43" args="(ofstream &amp;file, const map&lt; string, string &gt; &amp;unfoundValues)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Config::writeUnfoundValues </td>
+ <td>(</td>
+ <td class="paramtype">ofstream &amp;&#160;</td>
+ <td class="paramname"><em>file</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const map&lt; string, string &gt; &amp;&#160;</td>
+ <td class="paramname"><em>unfoundValues</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Writes settings that were not found in the file to the file with default values. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>The opened filestream to which the key=value pairs are written. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">unfoundValues</td><td>The map of key value pairs to be written to the file. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_config_8cpp_source.html#l00086">86</a> of file <a class="el" href="_config_8cpp_source.html">Config.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="ad6fddaaf52742adcba95155b3635e807"></a><!-- doxytag: member="Config::_fullscreen" ref="ad6fddaaf52742adcba95155b3635e807" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool <a class="el" href="class_config.html#ad6fddaaf52742adcba95155b3635e807">Config::_fullscreen</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The desired fullscreen or windowed setting. </p>
+
+<p>Definition at line <a class="el" href="_config_8h_source.html#l00125">125</a> of file <a class="el" href="_config_8h_source.html">Config.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac27364c75bc8d5e82119988df85c1599"></a><!-- doxytag: member="Config::_screenHeight" ref="ac27364c75bc8d5e82119988df85c1599" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">unsigned int <a class="el" href="class_config.html#ac27364c75bc8d5e82119988df85c1599">Config::_screenHeight</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The desired height of the screen in pixels. </p>
+
+<p>Definition at line <a class="el" href="_config_8h_source.html#l00124">124</a> of file <a class="el" href="_config_8h_source.html">Config.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a46dce43903bb24bac8c2ffc92f2ee4da"></a><!-- doxytag: member="Config::_screenWidth" ref="a46dce43903bb24bac8c2ffc92f2ee4da" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">unsigned int <a class="el" href="class_config.html#a46dce43903bb24bac8c2ffc92f2ee4da">Config::_screenWidth</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The desired width of the screen in pixels. </p>
+
+<p>Definition at line <a class="el" href="_config_8h_source.html#l00123">123</a> of file <a class="el" href="_config_8h_source.html">Config.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3195b4273ebe9ac691167bff71394720"></a><!-- doxytag: member="Config::FULLSCREEN_DEFAULT" ref="a3195b4273ebe9ac691167bff71394720" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const string <a class="el" href="class_config.html#a3195b4273ebe9ac691167bff71394720">Config::FULLSCREEN_DEFAULT</a><code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The default value for the fullscreen setting, initialized to false. </p>
+
+<p>Definition at line <a class="el" href="_config_8h_source.html#l00133">133</a> of file <a class="el" href="_config_8h_source.html">Config.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae2dd20bca46b767d2a30c32de7ab78cb"></a><!-- doxytag: member="Config::FULLSCREEN_KEY" ref="ae2dd20bca46b767d2a30c32de7ab78cb" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const string <a class="el" href="class_config.html#ae2dd20bca46b767d2a30c32de7ab78cb">Config::FULLSCREEN_KEY</a><code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The key for the fullscreen setting, initialized to "fullscreen". </p>
+
+<p>Definition at line <a class="el" href="_config_8h_source.html#l00129">129</a> of file <a class="el" href="_config_8h_source.html">Config.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2382c43dd0d51b3d52bf88d18438c579"></a><!-- doxytag: member="Config::SCREEN_HEIGHT_DEFAULT" ref="a2382c43dd0d51b3d52bf88d18438c579" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const string <a class="el" href="class_config.html#a2382c43dd0d51b3d52bf88d18438c579">Config::SCREEN_HEIGHT_DEFAULT</a><code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The default value for the screen height setting, initialized to 600. </p>
+
+<p>Definition at line <a class="el" href="_config_8h_source.html#l00132">132</a> of file <a class="el" href="_config_8h_source.html">Config.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5dd914d11bd6f43c06ad4682be0efaba"></a><!-- doxytag: member="Config::SCREEN_HEIGHT_KEY" ref="a5dd914d11bd6f43c06ad4682be0efaba" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const string <a class="el" href="class_config.html#a5dd914d11bd6f43c06ad4682be0efaba">Config::SCREEN_HEIGHT_KEY</a><code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The key for the screen height setting, initialized to "screen_height". </p>
+
+<p>Definition at line <a class="el" href="_config_8h_source.html#l00128">128</a> of file <a class="el" href="_config_8h_source.html">Config.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad6f88b173db3508eaeb7b569655b5cf2"></a><!-- doxytag: member="Config::SCREEN_WIDTH_DEFAULT" ref="ad6f88b173db3508eaeb7b569655b5cf2" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const string <a class="el" href="class_config.html#ad6f88b173db3508eaeb7b569655b5cf2">Config::SCREEN_WIDTH_DEFAULT</a><code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The default value for the screen width setting, initialized to 800. </p>
+
+<p>Definition at line <a class="el" href="_config_8h_source.html#l00131">131</a> of file <a class="el" href="_config_8h_source.html">Config.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abebfdbe6033183421dcdb4cdb6fc9549"></a><!-- doxytag: member="Config::SCREEN_WIDTH_KEY" ref="abebfdbe6033183421dcdb4cdb6fc9549" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const string <a class="el" href="class_config.html#abebfdbe6033183421dcdb4cdb6fc9549">Config::SCREEN_WIDTH_KEY</a><code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The key for the screen width setting, initialized to "screen_width". </p>
+
+<p>Definition at line <a class="el" href="_config_8h_source.html#l00127">127</a> of file <a class="el" href="_config_8h_source.html">Config.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>source/data/<a class="el" href="_config_8h_source.html">Config.h</a></li>
+<li>source/data/<a class="el" href="_config_8cpp_source.html">Config.cpp</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_destroyed_object_popup-members.html b/docs/html/class_destroyed_object_popup-members.html
new file mode 100644
index 0000000..a8d444e
--- /dev/null
+++ b/docs/html/class_destroyed_object_popup-members.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Member List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">DestroyedObjectPopup Member List</div> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="class_destroyed_object_popup.html">DestroyedObjectPopup</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#adc4a399cc59d5706f75748fb3846faec">_destroyed</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a24d36b1a64504298700a7ae7111fad5d">_facing</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a8b0aa105507a8a9559bbc2a66198ccd6">_image</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614">_x</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e">_y</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a266871f6c0220f6b3c902075ebff8eea">destroyed</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_destroyed_object_popup.html#af34a9f7421a49953f6bd86233a6a44bc">DestroyedObjectPopup</a>(double x, double y, BitmapStore::Image image)</td><td><a class="el" href="class_destroyed_object_popup.html">DestroyedObjectPopup</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a2549066ec4dc8f4ca2d3a8c5d5729324">facing</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a26cba01b9c2d301d4ee89a98b9396d67">GameObject</a>(double x, double y, BitmapStore::Image image, Maze::Direction facing=Maze::UP)</td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a05e352e3e01e774892beee0503fdb349">image</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_limited_time_object.html#a0993f1696ed62abc3ef7856e4da7ae0e">LimitedTimeObject</a>(double x, double y, BitmapStore::Image image, int time)</td><td><a class="el" href="class_limited_time_object.html">LimitedTimeObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_destroyed_object_popup.html#a883845e614aba9d292eb85afa9423f31">POPUP_TIME</a></td><td><a class="el" href="class_destroyed_object_popup.html">DestroyedObjectPopup</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_limited_time_object.html#ad81a1c9aba4e21dfa40b9e6d881aba4e">update</a>()</td><td><a class="el" href="class_limited_time_object.html">LimitedTimeObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8">x</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b">y</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+</table></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_destroyed_object_popup.html b/docs/html/class_destroyed_object_popup.html
new file mode 100644
index 0000000..6163af3
--- /dev/null
+++ b/docs/html/class_destroyed_object_popup.html
@@ -0,0 +1,215 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: DestroyedObjectPopup Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pri-static-attribs">Static Private Attributes</a> </div>
+ <div class="headertitle">
+<div class="title">DestroyedObjectPopup Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="DestroyedObjectPopup" --><!-- doxytag: inherits="LimitedTimeObject" -->
+<p>Object that appears on the screen for a short time when another object has been destroyed.
+ <a href="class_destroyed_object_popup.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_destroyed_object_popup_8h_source.html">DestroyedObjectPopup.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for DestroyedObjectPopup:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="class_destroyed_object_popup.png" usemap="#DestroyedObjectPopup_map" alt=""/>
+ <map id="DestroyedObjectPopup_map" name="DestroyedObjectPopup_map">
+<area href="class_limited_time_object.html" title="Parent class for GameObjects that are created, exist for a given time, and are then destroyed..." alt="LimitedTimeObject" shape="rect" coords="0,56,143,80"/>
+<area href="class_game_object.html" title="Parent class for objects that are placed in the maze." alt="GameObject" shape="rect" coords="0,0,143,24"/>
+</map>
+ </div></div>
+
+<p><a href="class_destroyed_object_popup-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_destroyed_object_popup.html#af34a9f7421a49953f6bd86233a6a44bc">DestroyedObjectPopup</a> (double x, double y, <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386">BitmapStore::Image</a> image)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates the popup at the given location, with the given image. <a href="#af34a9f7421a49953f6bd86233a6a44bc"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-static-attribs"></a>
+Static Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_destroyed_object_popup.html#a883845e614aba9d292eb85afa9423f31">POPUP_TIME</a> = 30</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of frames that the <a class="el" href="class_destroyed_object_popup.html" title="Object that appears on the screen for a short time when another object has been destroyed.">DestroyedObjectPopup</a> exists before it is destroyed. 1 second at FPS=30. <a href="#a883845e614aba9d292eb85afa9423f31"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Object that appears on the screen for a short time when another object has been destroyed. </p>
+<p>Used to give extra visual feedback when a checkpoint has been collected or a <a class="el" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a> crashes.</p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_destroyed_object_popup_8h_source.html#l00015">15</a> of file <a class="el" href="_destroyed_object_popup_8h_source.html">DestroyedObjectPopup.h</a>.</p>
+</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="af34a9f7421a49953f6bd86233a6a44bc"></a><!-- doxytag: member="DestroyedObjectPopup::DestroyedObjectPopup" ref="af34a9f7421a49953f6bd86233a6a44bc" args="(double x, double y, BitmapStore::Image image)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">DestroyedObjectPopup::DestroyedObjectPopup </td>
+ <td>(</td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386">BitmapStore::Image</a>&#160;</td>
+ <td class="paramname"><em>image</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Creates the popup at the given location, with the given image. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>The x coordinate of the object's position. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>The y coordinate of the object's position. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">image</td><td>The bitmap to be shown until the popup disappears. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_destroyed_object_popup_8cpp_source.html#l00003">3</a> of file <a class="el" href="_destroyed_object_popup_8cpp_source.html">DestroyedObjectPopup.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a883845e614aba9d292eb85afa9423f31"></a><!-- doxytag: member="DestroyedObjectPopup::POPUP_TIME" ref="a883845e614aba9d292eb85afa9423f31" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const int <a class="el" href="class_destroyed_object_popup.html#a883845e614aba9d292eb85afa9423f31">DestroyedObjectPopup::POPUP_TIME</a> = 30<code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The number of frames that the <a class="el" href="class_destroyed_object_popup.html" title="Object that appears on the screen for a short time when another object has been destroyed.">DestroyedObjectPopup</a> exists before it is destroyed. 1 second at FPS=30. </p>
+
+<p>Definition at line <a class="el" href="_destroyed_object_popup_8h_source.html#l00030">30</a> of file <a class="el" href="_destroyed_object_popup_8h_source.html">DestroyedObjectPopup.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>source/logic/<a class="el" href="_destroyed_object_popup_8h_source.html">DestroyedObjectPopup.h</a></li>
+<li>source/logic/<a class="el" href="_destroyed_object_popup_8cpp_source.html">DestroyedObjectPopup.cpp</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_destroyed_object_popup.png b/docs/html/class_destroyed_object_popup.png
new file mode 100644
index 0000000..72fc1c4
--- /dev/null
+++ b/docs/html/class_destroyed_object_popup.png
Binary files differ
diff --git a/docs/html/class_enemy_car-members.html b/docs/html/class_enemy_car-members.html
new file mode 100644
index 0000000..fef1e9e
--- /dev/null
+++ b/docs/html/class_enemy_car-members.html
@@ -0,0 +1,138 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Member List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">EnemyCar Member List</div> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="class_enemy_car.html">EnemyCar</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="class_car.html#a7b942584de02f8af6f571a60a1cf32ba">_baseSpeed</a></td><td><a class="el" href="class_car.html">Car</a></td><td><code> [protected, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#adc4a399cc59d5706f75748fb3846faec">_destroyed</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a24d36b1a64504298700a7ae7111fad5d">_facing</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a8b0aa105507a8a9559bbc2a66198ccd6">_image</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_car.html#a84b3d05e98d66f358942193ff54dee51">_speed</a></td><td><a class="el" href="class_car.html">Car</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_enemy_car.html#a65a1c7b520f043aae27800ced9e8d543">_state</a></td><td><a class="el" href="class_enemy_car.html">EnemyCar</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_enemy_car.html#aa84ac6485311c535526ea14d02d98cc9">_targetX</a></td><td><a class="el" href="class_enemy_car.html">EnemyCar</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_enemy_car.html#a61ff3751123febe8bc9ab24d0763245c">_targetY</a></td><td><a class="el" href="class_enemy_car.html">EnemyCar</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614">_x</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e">_y</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_enemy_car.html#aeb8bf92c965ab33f793b0274a02f142c">blind</a>()</td><td><a class="el" href="class_enemy_car.html">EnemyCar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87af45d8b201d7334e42651b262a03d631c">BLINDED</a> enum value</td><td><a class="el" href="class_enemy_car.html">EnemyCar</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_car.html#a3bd1dc6b75af9dc5bbe4354e0b3161d0">Car</a>(double x, double y, BitmapStore::Image image, Maze::Direction facing)</td><td><a class="el" href="class_car.html">Car</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87a28df0785e03156c97ddeb81da5e0770c">CHASING</a> enum value</td><td><a class="el" href="class_enemy_car.html">EnemyCar</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_enemy_car.html#afa61cecf7df51e26edd632303c18945c">checkFacing</a>(const Maze &amp;maze, double chasingX, double chasingY, const list&lt; Rock &gt; &amp;rocks)</td><td><a class="el" href="class_enemy_car.html">EnemyCar</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_enemy_car.html#ac5836046e802a749abb2308886b34060">crash</a>()</td><td><a class="el" href="class_enemy_car.html">EnemyCar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a266871f6c0220f6b3c902075ebff8eea">destroyed</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_enemy_car.html#a8af7d3c56fa9dad09992ce6fbd7389d2">EnemyCar</a>(double x, double y)</td><td><a class="el" href="class_enemy_car.html">EnemyCar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a2549066ec4dc8f4ca2d3a8c5d5729324">facing</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a26cba01b9c2d301d4ee89a98b9396d67">GameObject</a>(double x, double y, BitmapStore::Image image, Maze::Direction facing=Maze::UP)</td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a05e352e3e01e774892beee0503fdb349">image</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_car.html#a85e8699362bb5206e4142dbd5d20dcb9">move</a>(const Maze &amp;maze)</td><td><a class="el" href="class_car.html">Car</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_enemy_car.html#af0dca9b89448557020ef02a18cffb682">rockAtLocation</a>(double x, double y, const list&lt; Rock &gt; &amp;rocks)</td><td><a class="el" href="class_enemy_car.html">EnemyCar</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_car.html#a68b59187e1520a5d016b0894b4c116b9">speed</a>() const </td><td><a class="el" href="class_car.html">Car</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87">States</a> enum name</td><td><a class="el" href="class_enemy_car.html">EnemyCar</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_enemy_car.html#a9f08f73a076e48a0bc0092e72e15e7e4">update</a>(const Maze &amp;maze, const list&lt; PlayerCar &gt; &amp;players, const list&lt; Rock &gt; &amp;rocks)</td><td><a class="el" href="class_enemy_car.html">EnemyCar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8">x</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b">y</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+</table></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_enemy_car.html b/docs/html/class_enemy_car.html
new file mode 100644
index 0000000..b6720d9
--- /dev/null
+++ b/docs/html/class_enemy_car.html
@@ -0,0 +1,480 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: EnemyCar Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pri-types">Private Types</a> &#124;
+<a href="#pri-methods">Private Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> </div>
+ <div class="headertitle">
+<div class="title">EnemyCar Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="EnemyCar" --><!-- doxytag: inherits="Car" -->
+<p><a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> that chases the player around the maze.
+ <a href="class_enemy_car.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_enemy_car_8h_source.html">EnemyCar.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for EnemyCar:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="class_enemy_car.png" usemap="#EnemyCar_map" alt=""/>
+ <map id="EnemyCar_map" name="EnemyCar_map">
+<area href="class_car.html" title="GameObject that moves through the maze and changes direction." alt="Car" shape="rect" coords="0,56,81,80"/>
+<area href="class_game_object.html" title="Parent class for objects that are placed in the maze." alt="GameObject" shape="rect" coords="0,0,81,24"/>
+</map>
+ </div></div>
+
+<p><a href="class_enemy_car-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_enemy_car.html#a8af7d3c56fa9dad09992ce6fbd7389d2">EnemyCar</a> (double x, double y)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> at the given coordinates. <a href="#a8af7d3c56fa9dad09992ce6fbd7389d2"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_enemy_car.html#a9f08f73a076e48a0bc0092e72e15e7e4">update</a> (const <a class="el" href="class_maze.html">Maze</a> &amp;maze, const list&lt; <a class="el" href="class_player_car.html">PlayerCar</a> &gt; &amp;players, const list&lt; <a class="el" href="class_rock.html">Rock</a> &gt; &amp;rocks)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Processes one frame's worth of activity for the object, called every frame. <a href="#a9f08f73a076e48a0bc0092e72e15e7e4"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_enemy_car.html#ac5836046e802a749abb2308886b34060">crash</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Function that is called when an <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> crashes into a <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>. <a href="#ac5836046e802a749abb2308886b34060"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_enemy_car.html#aeb8bf92c965ab33f793b0274a02f142c">blind</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Function that is called when an <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> drives into a <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a>. <a href="#aeb8bf92c965ab33f793b0274a02f142c"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-types"></a>
+Private Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87">States</a> { <a class="el" href="class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87af45d8b201d7334e42651b262a03d631c">BLINDED</a>,
+<a class="el" href="class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87a28df0785e03156c97ddeb81da5e0770c">CHASING</a>
+ }</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">States that define how the EnemyCar's AI should behave. <a href="class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87">More...</a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-methods"></a>
+Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_enemy_car.html#afa61cecf7df51e26edd632303c18945c">checkFacing</a> (const <a class="el" href="class_maze.html">Maze</a> &amp;maze, double chasingX, double chasingY, const list&lt; <a class="el" href="class_rock.html">Rock</a> &gt; &amp;rocks)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the direction that the <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> is facing, if neccesary. <a href="#afa61cecf7df51e26edd632303c18945c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_enemy_car.html#af0dca9b89448557020ef02a18cffb682">rockAtLocation</a> (double x, double y, const list&lt; <a class="el" href="class_rock.html">Rock</a> &gt; &amp;rocks)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterates through a list of Rocks and determines if moving to a given position would result in a collision. <a href="#af0dca9b89448557020ef02a18cffb682"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87">States</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_enemy_car.html#a65a1c7b520f043aae27800ced9e8d543">_state</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The state that the object is currently in. <a href="#a65a1c7b520f043aae27800ced9e8d543"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_enemy_car.html#aa84ac6485311c535526ea14d02d98cc9">_targetX</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The x coordinate that the <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> is driving towards. <a href="#aa84ac6485311c535526ea14d02d98cc9"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_enemy_car.html#a61ff3751123febe8bc9ab24d0763245c">_targetY</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The y coordinate that the <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> is driving towards. <a href="#a61ff3751123febe8bc9ab24d0763245c"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> that chases the player around the maze. </p>
+<p>Attempts to collide with the player, causing the player to lose.</p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_enemy_car_8h_source.html#l00021">21</a> of file <a class="el" href="_enemy_car_8h_source.html">EnemyCar.h</a>.</p>
+</div><hr/><h2>Member Enumeration Documentation</h2>
+<a class="anchor" id="afdd204c097eda1ff9232743bf216ce87"></a><!-- doxytag: member="EnemyCar::States" ref="afdd204c097eda1ff9232743bf216ce87" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87">EnemyCar::States</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>States that define how the EnemyCar's AI should behave. </p>
+<p>This would need to be expanded to include more states in order to make the enemies appear smarter. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="afdd204c097eda1ff9232743bf216ce87af45d8b201d7334e42651b262a03d631c"></a><!-- doxytag: member="BLINDED" ref="afdd204c097eda1ff9232743bf216ce87af45d8b201d7334e42651b262a03d631c" args="" -->BLINDED</em>&nbsp;</td><td>
+<p>The <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> can not see, and so does not move. </p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="afdd204c097eda1ff9232743bf216ce87a28df0785e03156c97ddeb81da5e0770c"></a><!-- doxytag: member="CHASING" ref="afdd204c097eda1ff9232743bf216ce87a28df0785e03156c97ddeb81da5e0770c" args="" -->CHASING</em>&nbsp;</td><td>
+<p>The <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> tries to drive to the block that the player is currently on. </p>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_enemy_car_8h_source.html#l00061">61</a> of file <a class="el" href="_enemy_car_8h_source.html">EnemyCar.h</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a8af7d3c56fa9dad09992ce6fbd7389d2"></a><!-- doxytag: member="EnemyCar::EnemyCar" ref="a8af7d3c56fa9dad09992ce6fbd7389d2" args="(double x, double y)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">EnemyCar::EnemyCar </td>
+ <td>(</td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Creates an <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> at the given coordinates. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>The x coordinate of the EnemyCar's initial position. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>The y coordinate of the EnemyCar's initial position. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_enemy_car_8cpp_source.html#l00003">3</a> of file <a class="el" href="_enemy_car_8cpp_source.html">EnemyCar.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="aeb8bf92c965ab33f793b0274a02f142c"></a><!-- doxytag: member="EnemyCar::blind" ref="aeb8bf92c965ab33f793b0274a02f142c" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void EnemyCar::blind </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Function that is called when an <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> drives into a <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a>. </p>
+
+<p>Definition at line <a class="el" href="_enemy_car_8cpp_source.html#l00100">100</a> of file <a class="el" href="_enemy_car_8cpp_source.html">EnemyCar.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afa61cecf7df51e26edd632303c18945c"></a><!-- doxytag: member="EnemyCar::checkFacing" ref="afa61cecf7df51e26edd632303c18945c" args="(const Maze &amp;maze, double chasingX, double chasingY, const list&lt; Rock &gt; &amp;rocks)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void EnemyCar::checkFacing </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_maze.html">Maze</a> &amp;&#160;</td>
+ <td class="paramname"><em>maze</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>chasingX</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>chasingY</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_rock.html">Rock</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>rocks</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Updates the direction that the <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> is facing, if neccesary. </p>
+<p>The facing is only changed once the current _targetX and _targetY are reached. After that, a facing is chosen that points into an empty block (no maze walls or rocks) that is closest to the chasing x and y using a straight line. This results in the enemy not always taking the shortest route, but it makes it possible to escape enemies. _targetX and _targetY are updated to one block in the new facing direction. The enemy may only turn around and head backwards if there is no other options, so once the enemy starts driving down narrow a path it will continue to the end of the path.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">maze</td><td>The maze that confines the EnemyCar's movements. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">chasingX</td><td>The x coordinate that the <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> is ultimately trying to reach. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">chasingY</td><td>The y coordinate that the <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> is ultimately trying to reach. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">rocks</td><td>The Rocks that the <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> needs to avoid. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_enemy_car_8cpp_source.html#l00026">26</a> of file <a class="el" href="_enemy_car_8cpp_source.html">EnemyCar.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac5836046e802a749abb2308886b34060"></a><!-- doxytag: member="EnemyCar::crash" ref="ac5836046e802a749abb2308886b34060" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void EnemyCar::crash </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Function that is called when an <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> crashes into a <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>. </p>
+
+<p>Definition at line <a class="el" href="_enemy_car_8cpp_source.html#l00095">95</a> of file <a class="el" href="_enemy_car_8cpp_source.html">EnemyCar.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af0dca9b89448557020ef02a18cffb682"></a><!-- doxytag: member="EnemyCar::rockAtLocation" ref="af0dca9b89448557020ef02a18cffb682" args="(double x, double y, const list&lt; Rock &gt; &amp;rocks)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool EnemyCar::rockAtLocation </td>
+ <td>(</td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_rock.html">Rock</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>rocks</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Iterates through a list of Rocks and determines if moving to a given position would result in a collision. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>The potential new x coordinate. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>The potential new y coordinate. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">rocks</td><td>The Rocks that are checked for a collision at x and y. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_enemy_car_8cpp_source.html#l00086">86</a> of file <a class="el" href="_enemy_car_8cpp_source.html">EnemyCar.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9f08f73a076e48a0bc0092e72e15e7e4"></a><!-- doxytag: member="EnemyCar::update" ref="a9f08f73a076e48a0bc0092e72e15e7e4" args="(const Maze &amp;maze, const list&lt; PlayerCar &gt; &amp;players, const list&lt; Rock &gt; &amp;rocks)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void EnemyCar::update </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_maze.html">Maze</a> &amp;&#160;</td>
+ <td class="paramname"><em>maze</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_player_car.html">PlayerCar</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>players</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_rock.html">Rock</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>rocks</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Processes one frame's worth of activity for the object, called every frame. </p>
+<p>Primarily adjusts the facing if neccesary and then moves using the inhereted move function.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">maze</td><td>The maze that confines the EnemyCar's movements. </td></tr>
+ <tr><td class="paramname">players</td><td>The list of PlayerCars that the <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> can chase. </td></tr>
+ <tr><td class="paramname">rocks</td><td>The list of Rocks that need to be avoided. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_enemy_car_8cpp_source.html#l00011">11</a> of file <a class="el" href="_enemy_car_8cpp_source.html">EnemyCar.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a65a1c7b520f043aae27800ced9e8d543"></a><!-- doxytag: member="EnemyCar::_state" ref="a65a1c7b520f043aae27800ced9e8d543" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87">States</a> <a class="el" href="class_enemy_car.html#a65a1c7b520f043aae27800ced9e8d543">EnemyCar::_state</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The state that the object is currently in. </p>
+
+<p>Definition at line <a class="el" href="_enemy_car_8h_source.html#l00066">66</a> of file <a class="el" href="_enemy_car_8h_source.html">EnemyCar.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa84ac6485311c535526ea14d02d98cc9"></a><!-- doxytag: member="EnemyCar::_targetX" ref="aa84ac6485311c535526ea14d02d98cc9" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">double <a class="el" href="class_enemy_car.html#aa84ac6485311c535526ea14d02d98cc9">EnemyCar::_targetX</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The x coordinate that the <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> is driving towards. </p>
+
+<p>Definition at line <a class="el" href="_enemy_car_8h_source.html#l00067">67</a> of file <a class="el" href="_enemy_car_8h_source.html">EnemyCar.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a61ff3751123febe8bc9ab24d0763245c"></a><!-- doxytag: member="EnemyCar::_targetY" ref="a61ff3751123febe8bc9ab24d0763245c" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">double <a class="el" href="class_enemy_car.html#a61ff3751123febe8bc9ab24d0763245c">EnemyCar::_targetY</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The y coordinate that the <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> is driving towards. </p>
+
+<p>Definition at line <a class="el" href="_enemy_car_8h_source.html#l00068">68</a> of file <a class="el" href="_enemy_car_8h_source.html">EnemyCar.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>source/logic/<a class="el" href="_enemy_car_8h_source.html">EnemyCar.h</a></li>
+<li>source/logic/<a class="el" href="_enemy_car_8cpp_source.html">EnemyCar.cpp</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_enemy_car.png b/docs/html/class_enemy_car.png
new file mode 100644
index 0000000..c72ad64
--- /dev/null
+++ b/docs/html/class_enemy_car.png
Binary files differ
diff --git a/docs/html/class_file_open_error.html b/docs/html/class_file_open_error.html
new file mode 100644
index 0000000..c06baea
--- /dev/null
+++ b/docs/html/class_file_open_error.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: FileOpenError Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">FileOpenError Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="FileOpenError" -->
+<p>An exception that is thrown if the file selected for opening does not exist.
+ <a href="class_file_open_error.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_level_reader_8h_source.html">LevelReader.h</a>&gt;</code></p>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>An exception that is thrown if the file selected for opening does not exist. </p>
+<p>This should never be thrown, since the Allegro native file dialog is being used to select this file, and it only allows one to select existing files.</p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_level_reader_8h_source.html#l00027">27</a> of file <a class="el" href="_level_reader_8h_source.html">LevelReader.h</a>.</p>
+</div><hr/>The documentation for this class was generated from the following file:<ul>
+<li>source/data/<a class="el" href="_level_reader_8h_source.html">LevelReader.h</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_game-members.html b/docs/html/class_game-members.html
new file mode 100644
index 0000000..0187a7b
--- /dev/null
+++ b/docs/html/class_game-members.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Member List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">Game Member List</div> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="class_game.html">Game</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="class_game.html#a3bbe8c0dadbdf9e9e1d499f10509ef4e">_allegro</a></td><td><a class="el" href="class_game.html">Game</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game.html#a856252e94c580f59b926affc7d45b4bf">_checkpoints</a></td><td><a class="el" href="class_game.html">Game</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game.html#ab88620fda0d1fa729dcab6013e8f1efc">_collisionDetector</a></td><td><a class="el" href="class_game.html">Game</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game.html#aa60fe2dc0d1d53ebf49c2d87af6ee2d5">_config</a></td><td><a class="el" href="class_game.html">Game</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game.html#afbd3e358076a6cf2e72faefe1c202df9">_enemies</a></td><td><a class="el" href="class_game.html">Game</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game.html#a33457b2c7fa4f43b89e54ce9c5ac6f83">_maze</a></td><td><a class="el" href="class_game.html">Game</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game.html#a75bf3282da1519766a6b75e2d83293ac">_players</a></td><td><a class="el" href="class_game.html">Game</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game.html#a9bea5a0ee430443effa418d42a903f83">_popups</a></td><td><a class="el" href="class_game.html">Game</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game.html#a9f14643bfc4d595dc7dfa3160a59d71b">_rocks</a></td><td><a class="el" href="class_game.html">Game</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game.html#a9bc904a37fe9b3e85a597b6b5c6a66d5">_screen</a></td><td><a class="el" href="class_game.html">Game</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game.html#a88916ad9e8095b99a9c870a053180c1c">_smokescreens</a></td><td><a class="el" href="class_game.html">Game</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game.html#af153fc1d94c473114cfbd63728d21f91">_timer</a></td><td><a class="el" href="class_game.html">Game</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game.html#a2b7303df1b6d0163b78c2c306164859f">_timerEvents</a></td><td><a class="el" href="class_game.html">Game</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game.html#a961f632fbe7f4ba08d23fe9edc7711be">cleanup</a>()</td><td><a class="el" href="class_game.html">Game</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game.html#a03cf795e9aaa4c5950b4b5e918ab9ab6">clearLists</a>()</td><td><a class="el" href="class_game.html">Game</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game.html#a636d6897103fd12d230489d512bf2be1">FPS</a></td><td><a class="el" href="class_game.html">Game</a></td><td><code> [static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game.html#ad59df6562a58a614fda24622d3715b65">Game</a>()</td><td><a class="el" href="class_game.html">Game</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game.html#a22c1dee02ec8e0050a66eb851f2cf212">Game</a>(const Game &amp;ref)</td><td><a class="el" href="class_game.html">Game</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game.html#a2bd8589c18470f644445d97c1c35d169">initLevel</a>(const string &amp;levelFile)</td><td><a class="el" href="class_game.html">Game</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game.html#abf375a1957b6fdb5cbe67ef70fa818f5">operator=</a>(const Game &amp;rhs)</td><td><a class="el" href="class_game.html">Game</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game.html#a069837f5f3f3b91b581e41dd74667211">runloop</a>()</td><td><a class="el" href="class_game.html">Game</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game.html#a3d9b98f7c4a96ecf578f75b96c9f0e90">start</a>()</td><td><a class="el" href="class_game.html">Game</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game.html#a79df6376b332d63c9eca0dcee30305c3">update</a>()</td><td><a class="el" href="class_game.html">Game</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game.html#ae3d112ca6e0e55150d2fdbc704474530">~Game</a>()</td><td><a class="el" href="class_game.html">Game</a></td><td></td></tr>
+</table></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_game.html b/docs/html/class_game.html
new file mode 100644
index 0000000..f56b7df
--- /dev/null
+++ b/docs/html/class_game.html
@@ -0,0 +1,643 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Game Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
+<a href="#pri-methods">Private Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> </div>
+ <div class="headertitle">
+<div class="title">Game Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="Game" -->
+<p>The object that controls the flow of the game, and the launch point of the game.
+ <a href="class_game.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_game_8h_source.html">Game.h</a>&gt;</code></p>
+
+<p><a href="class_game-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game.html#ad59df6562a58a614fda24622d3715b65">Game</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, that creates the relevant Allegro entities. <a href="#ad59df6562a58a614fda24622d3715b65"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game.html#ae3d112ca6e0e55150d2fdbc704474530">~Game</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, that destroys the relevant Allegro entities. <a href="#ae3d112ca6e0e55150d2fdbc704474530"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game.html#a3d9b98f7c4a96ecf578f75b96c9f0e90">start</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Entry point for the program. This should be called from main. <a href="#a3d9b98f7c4a96ecf578f75b96c9f0e90"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game.html#a636d6897103fd12d230489d512bf2be1">FPS</a> = 30</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Frames per second, the number of times the gameloop is run every second. <a href="#a636d6897103fd12d230489d512bf2be1"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-methods"></a>
+Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game.html#a22c1dee02ec8e0050a66eb851f2cf212">Game</a> (const <a class="el" href="class_game.html">Game</a> &amp;ref)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Unimplemented copy constructor, prevents copying of <a class="el" href="class_game.html" title="The object that controls the flow of the game, and the launch point of the game.">Game</a> objects. <a href="#a22c1dee02ec8e0050a66eb851f2cf212"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_game.html">Game</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game.html#abf375a1957b6fdb5cbe67ef70fa818f5">operator=</a> (const <a class="el" href="class_game.html">Game</a> &amp;rhs)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Unimplemented assignment operator. <a href="#abf375a1957b6fdb5cbe67ef70fa818f5"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game.html#a2bd8589c18470f644445d97c1c35d169">initLevel</a> (const string &amp;levelFile)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialises all of the <a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> lists using a file. <a href="#a2bd8589c18470f644445d97c1c35d169"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game.html#a069837f5f3f3b91b581e41dd74667211">runloop</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Main part of the game, performs the actions in each frame FPS times per second until the game is over. <a href="#a069837f5f3f3b91b581e41dd74667211"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game.html#a79df6376b332d63c9eca0dcee30305c3">update</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls the update method on each of the GameObjects in the game. <a href="#a79df6376b332d63c9eca0dcee30305c3"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game.html#a961f632fbe7f4ba08d23fe9edc7711be">cleanup</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes any GameObjects that have been destroyed from their lists. <a href="#a961f632fbe7f4ba08d23fe9edc7711be"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game.html#a03cf795e9aaa4c5950b4b5e918ab9ab6">clearLists</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys all GameObjects in the game, resetting the lists for a new level to be loaded. <a href="#a03cf795e9aaa4c5950b4b5e918ab9ab6"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_allegro_init.html">AllegroInit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game.html#a3bbe8c0dadbdf9e9e1d499f10509ef4e">_allegro</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles dependencies on Allegro being installed. <a href="#a3bbe8c0dadbdf9e9e1d499f10509ef4e"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_config.html">Config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game.html#aa60fe2dc0d1d53ebf49c2d87af6ee2d5">_config</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads configuration from file on construction, used to set resolution of screen. <a href="#aa60fe2dc0d1d53ebf49c2d87af6ee2d5"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_screen.html">Screen</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game.html#a9bc904a37fe9b3e85a597b6b5c6a66d5">_screen</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles all drawing operations. <a href="#a9bc904a37fe9b3e85a597b6b5c6a66d5"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ALLEGRO_TIMER *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game.html#af153fc1d94c473114cfbd63728d21f91">_timer</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates FPS events per second, that are put into _timerEvents. <a href="#af153fc1d94c473114cfbd63728d21f91"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ALLEGRO_EVENT_QUEUE *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game.html#a2b7303df1b6d0163b78c2c306164859f">_timerEvents</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Catches events from _timer, used to regulate speed of runloop. <a href="#a2b7303df1b6d0163b78c2c306164859f"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_maze.html">Maze</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game.html#a33457b2c7fa4f43b89e54ce9c5ac6f83">_maze</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The environment that confines the movements of GameObjects, specifically Cars. <a href="#a33457b2c7fa4f43b89e54ce9c5ac6f83"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">list&lt; <a class="el" href="class_player_car.html">PlayerCar</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game.html#a75bf3282da1519766a6b75e2d83293ac">_players</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Typically a single <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>, controlled by the person playing the game. <a href="#a75bf3282da1519766a6b75e2d83293ac"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">list&lt; <a class="el" href="class_enemy_car.html">EnemyCar</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game.html#afbd3e358076a6cf2e72faefe1c202df9">_enemies</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">List of all EnemyCars chasing the player. <a href="#afbd3e358076a6cf2e72faefe1c202df9"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">list&lt; <a class="el" href="class_checkpoint.html">Checkpoint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game.html#a856252e94c580f59b926affc7d45b4bf">_checkpoints</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">List of checkpoints that the player needs to collect. <a href="#a856252e94c580f59b926affc7d45b4bf"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">list&lt; <a class="el" href="class_rock.html">Rock</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game.html#a9f14643bfc4d595dc7dfa3160a59d71b">_rocks</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">List of rocks that the player and EnemyCars need to avoid. <a href="#a9f14643bfc4d595dc7dfa3160a59d71b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">list&lt; <a class="el" href="class_smokescreen.html">Smokescreen</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game.html#a88916ad9e8095b99a9c870a053180c1c">_smokescreens</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">List of <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> objects that are currently able to delay EnemyCars. <a href="#a88916ad9e8095b99a9c870a053180c1c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">list&lt; <a class="el" href="class_destroyed_object_popup.html">DestroyedObjectPopup</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game.html#a9bea5a0ee430443effa418d42a903f83">_popups</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">List of purely visual DestroyedObjectPopups that need to be drawn. <a href="#a9bea5a0ee430443effa418d42a903f83"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_collision_detector.html">CollisionDetector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game.html#ab88620fda0d1fa729dcab6013e8f1efc">_collisionDetector</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Object that checks for collisions each frame. <a href="#ab88620fda0d1fa729dcab6013e8f1efc"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>The object that controls the flow of the game, and the launch point of the game. </p>
+<p><a class="el" href="class_game.html" title="The object that controls the flow of the game, and the launch point of the game.">Game</a> contains the various components, including the screen, the maze, and all of the objects in the maze. The timing of the gameloop also falls under Game's control. Essencially, <a class="el" href="class_game.html" title="The object that controls the flow of the game, and the launch point of the game.">Game</a> is the central point that everything connects to.</p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_game_8h_source.html#l00036">36</a> of file <a class="el" href="_game_8h_source.html">Game.h</a>.</p>
+</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="ad59df6562a58a614fda24622d3715b65"></a><!-- doxytag: member="Game::Game" ref="ad59df6562a58a614fda24622d3715b65" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Game::Game </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Constructor, that creates the relevant Allegro entities. </p>
+
+<p>Definition at line <a class="el" href="_game_8cpp_source.html#l00003">3</a> of file <a class="el" href="_game_8cpp_source.html">Game.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae3d112ca6e0e55150d2fdbc704474530"></a><!-- doxytag: member="Game::~Game" ref="ae3d112ca6e0e55150d2fdbc704474530" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Game::~Game </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Constructor, that destroys the relevant Allegro entities. </p>
+
+<p>Definition at line <a class="el" href="_game_8cpp_source.html#l00012">12</a> of file <a class="el" href="_game_8cpp_source.html">Game.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a22c1dee02ec8e0050a66eb851f2cf212"></a><!-- doxytag: member="Game::Game" ref="a22c1dee02ec8e0050a66eb851f2cf212" args="(const Game &amp;ref)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Game::Game </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_game.html">Game</a> &amp;&#160;</td>
+ <td class="paramname"><em>ref</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Unimplemented copy constructor, prevents copying of <a class="el" href="class_game.html" title="The object that controls the flow of the game, and the launch point of the game.">Game</a> objects. </p>
+<p>Copying a <a class="el" href="class_game.html" title="The object that controls the flow of the game, and the launch point of the game.">Game</a> is unneccesary as there should only be a single <a class="el" href="class_game.html" title="The object that controls the flow of the game, and the launch point of the game.">Game</a> object. </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a961f632fbe7f4ba08d23fe9edc7711be"></a><!-- doxytag: member="Game::cleanup" ref="a961f632fbe7f4ba08d23fe9edc7711be" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Game::cleanup </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Removes any GameObjects that have been destroyed from their lists. </p>
+
+<p>Definition at line <a class="el" href="_game_8cpp_source.html#l00104">104</a> of file <a class="el" href="_game_8cpp_source.html">Game.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a03cf795e9aaa4c5950b4b5e918ab9ab6"></a><!-- doxytag: member="Game::clearLists" ref="a03cf795e9aaa4c5950b4b5e918ab9ab6" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Game::clearLists </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Destroys all GameObjects in the game, resetting the lists for a new level to be loaded. </p>
+<p>This should always be called before a new level is loaded. </p>
+
+<p>Definition at line <a class="el" href="_game_8cpp_source.html#l00177">177</a> of file <a class="el" href="_game_8cpp_source.html">Game.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2bd8589c18470f644445d97c1c35d169"></a><!-- doxytag: member="Game::initLevel" ref="a2bd8589c18470f644445d97c1c35d169" args="(const string &amp;levelFile)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Game::initLevel </td>
+ <td>(</td>
+ <td class="paramtype">const string &amp;&#160;</td>
+ <td class="paramname"><em>levelFile</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Initialises all of the <a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> lists using a file. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">levelFile</td><td>The path of the file that contains the level layout. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_game_8cpp_source.html#l00032">32</a> of file <a class="el" href="_game_8cpp_source.html">Game.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abf375a1957b6fdb5cbe67ef70fa818f5"></a><!-- doxytag: member="Game::operator=" ref="abf375a1957b6fdb5cbe67ef70fa818f5" args="(const Game &amp;rhs)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_game.html">Game</a>&amp; Game::operator= </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_game.html">Game</a> &amp;&#160;</td>
+ <td class="paramname"><em>rhs</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Unimplemented assignment operator. </p>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="class_game.html#a22c1dee02ec8e0050a66eb851f2cf212" title="Unimplemented copy constructor, prevents copying of Game objects.">Game::Game(const Game&amp; ref)</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a069837f5f3f3b91b581e41dd74667211"></a><!-- doxytag: member="Game::runloop" ref="a069837f5f3f3b91b581e41dd74667211" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Game::runloop </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Main part of the game, performs the actions in each frame FPS times per second until the game is over. </p>
+<p>Each frame runs the update methods of each of the GameObjects in the lists. The <a class="el" href="class_collision_detector.html" title="Object for handling collisions between GameObjects.">CollisionDetector</a> then checks for collisions between objects. Any GameObjects that have been destroyed are then removed from their lists. Finally, the <a class="el" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a> is called to draw all of the GameObjects that still exist in their new positions.</p>
+<p>Before the next iteration begins, a check is done for the victory and loss conditions. The loop is ended if either of these are met, or if the player has quit the game. </p>
+
+<p>Definition at line <a class="el" href="_game_8cpp_source.html#l00039">39</a> of file <a class="el" href="_game_8cpp_source.html">Game.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3d9b98f7c4a96ecf578f75b96c9f0e90"></a><!-- doxytag: member="Game::start" ref="a3d9b98f7c4a96ecf578f75b96c9f0e90" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Game::start </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Entry point for the program. This should be called from main. </p>
+
+<p>Definition at line <a class="el" href="_game_8cpp_source.html#l00019">19</a> of file <a class="el" href="_game_8cpp_source.html">Game.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a79df6376b332d63c9eca0dcee30305c3"></a><!-- doxytag: member="Game::update" ref="a79df6376b332d63c9eca0dcee30305c3" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Game::update </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Calls the update method on each of the GameObjects in the game. </p>
+
+<p>Definition at line <a class="el" href="_game_8cpp_source.html#l00082">82</a> of file <a class="el" href="_game_8cpp_source.html">Game.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a3bbe8c0dadbdf9e9e1d499f10509ef4e"></a><!-- doxytag: member="Game::_allegro" ref="a3bbe8c0dadbdf9e9e1d499f10509ef4e" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_allegro_init.html">AllegroInit</a> <a class="el" href="class_game.html#a3bbe8c0dadbdf9e9e1d499f10509ef4e">Game::_allegro</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Handles dependencies on Allegro being installed. </p>
+
+<p>Definition at line <a class="el" href="_game_8h_source.html#l00106">106</a> of file <a class="el" href="_game_8h_source.html">Game.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a856252e94c580f59b926affc7d45b4bf"></a><!-- doxytag: member="Game::_checkpoints" ref="a856252e94c580f59b926affc7d45b4bf" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">list&lt;<a class="el" href="class_checkpoint.html">Checkpoint</a>&gt; <a class="el" href="class_game.html#a856252e94c580f59b926affc7d45b4bf">Game::_checkpoints</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>List of checkpoints that the player needs to collect. </p>
+
+<p>Definition at line <a class="el" href="_game_8h_source.html#l00127">127</a> of file <a class="el" href="_game_8h_source.html">Game.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab88620fda0d1fa729dcab6013e8f1efc"></a><!-- doxytag: member="Game::_collisionDetector" ref="ab88620fda0d1fa729dcab6013e8f1efc" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_collision_detector.html">CollisionDetector</a> <a class="el" href="class_game.html#ab88620fda0d1fa729dcab6013e8f1efc">Game::_collisionDetector</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Object that checks for collisions each frame. </p>
+
+<p>Definition at line <a class="el" href="_game_8h_source.html#l00132">132</a> of file <a class="el" href="_game_8h_source.html">Game.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa60fe2dc0d1d53ebf49c2d87af6ee2d5"></a><!-- doxytag: member="Game::_config" ref="aa60fe2dc0d1d53ebf49c2d87af6ee2d5" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_config.html">Config</a> <a class="el" href="class_game.html#aa60fe2dc0d1d53ebf49c2d87af6ee2d5">Game::_config</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Loads configuration from file on construction, used to set resolution of screen. </p>
+
+<p>Definition at line <a class="el" href="_game_8h_source.html#l00108">108</a> of file <a class="el" href="_game_8h_source.html">Game.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afbd3e358076a6cf2e72faefe1c202df9"></a><!-- doxytag: member="Game::_enemies" ref="afbd3e358076a6cf2e72faefe1c202df9" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">list&lt;<a class="el" href="class_enemy_car.html">EnemyCar</a>&gt; <a class="el" href="class_game.html#afbd3e358076a6cf2e72faefe1c202df9">Game::_enemies</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>List of all EnemyCars chasing the player. </p>
+
+<p>Definition at line <a class="el" href="_game_8h_source.html#l00126">126</a> of file <a class="el" href="_game_8h_source.html">Game.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a33457b2c7fa4f43b89e54ce9c5ac6f83"></a><!-- doxytag: member="Game::_maze" ref="a33457b2c7fa4f43b89e54ce9c5ac6f83" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_maze.html">Maze</a> <a class="el" href="class_game.html#a33457b2c7fa4f43b89e54ce9c5ac6f83">Game::_maze</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The environment that confines the movements of GameObjects, specifically Cars. </p>
+
+<p>Definition at line <a class="el" href="_game_8h_source.html#l00113">113</a> of file <a class="el" href="_game_8h_source.html">Game.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a75bf3282da1519766a6b75e2d83293ac"></a><!-- doxytag: member="Game::_players" ref="a75bf3282da1519766a6b75e2d83293ac" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">list&lt;<a class="el" href="class_player_car.html">PlayerCar</a>&gt; <a class="el" href="class_game.html#a75bf3282da1519766a6b75e2d83293ac">Game::_players</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Typically a single <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>, controlled by the person playing the game. </p>
+<p>A list was used for _players to allow the <a class="el" href="class_game.html" title="The object that controls the flow of the game, and the launch point of the game.">Game</a> object to be constructed without needing to initialise a meaningless <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> object. This also allows the <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> to be destroyed by Rocks or EnemyCars. An added benefit is that it adds the ease of extending the game to allow multiple players. To add multiplayer, the <a class="el" href="class_keyboard_handler.html" title="Class for handling keyboard related game inputs from the player.">KeyboardHandler</a> would need to be modified to allow different sets of input keys, and the <a class="el" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a> would need to be modified to keep all players visible, but the <a class="el" href="class_game.html" title="The object that controls the flow of the game, and the launch point of the game.">Game</a> class would be able to remain largely unchanged. </p>
+
+<p>Definition at line <a class="el" href="_game_8h_source.html#l00124">124</a> of file <a class="el" href="_game_8h_source.html">Game.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9bea5a0ee430443effa418d42a903f83"></a><!-- doxytag: member="Game::_popups" ref="a9bea5a0ee430443effa418d42a903f83" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">list&lt;<a class="el" href="class_destroyed_object_popup.html">DestroyedObjectPopup</a>&gt; <a class="el" href="class_game.html#a9bea5a0ee430443effa418d42a903f83">Game::_popups</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>List of purely visual DestroyedObjectPopups that need to be drawn. </p>
+
+<p>Definition at line <a class="el" href="_game_8h_source.html#l00130">130</a> of file <a class="el" href="_game_8h_source.html">Game.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9f14643bfc4d595dc7dfa3160a59d71b"></a><!-- doxytag: member="Game::_rocks" ref="a9f14643bfc4d595dc7dfa3160a59d71b" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">list&lt;<a class="el" href="class_rock.html">Rock</a>&gt; <a class="el" href="class_game.html#a9f14643bfc4d595dc7dfa3160a59d71b">Game::_rocks</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>List of rocks that the player and EnemyCars need to avoid. </p>
+
+<p>Definition at line <a class="el" href="_game_8h_source.html#l00128">128</a> of file <a class="el" href="_game_8h_source.html">Game.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9bc904a37fe9b3e85a597b6b5c6a66d5"></a><!-- doxytag: member="Game::_screen" ref="a9bc904a37fe9b3e85a597b6b5c6a66d5" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_screen.html">Screen</a> <a class="el" href="class_game.html#a9bc904a37fe9b3e85a597b6b5c6a66d5">Game::_screen</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Handles all drawing operations. </p>
+
+<p>Definition at line <a class="el" href="_game_8h_source.html#l00109">109</a> of file <a class="el" href="_game_8h_source.html">Game.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a88916ad9e8095b99a9c870a053180c1c"></a><!-- doxytag: member="Game::_smokescreens" ref="a88916ad9e8095b99a9c870a053180c1c" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">list&lt;<a class="el" href="class_smokescreen.html">Smokescreen</a>&gt; <a class="el" href="class_game.html#a88916ad9e8095b99a9c870a053180c1c">Game::_smokescreens</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>List of <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> objects that are currently able to delay EnemyCars. </p>
+
+<p>Definition at line <a class="el" href="_game_8h_source.html#l00129">129</a> of file <a class="el" href="_game_8h_source.html">Game.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af153fc1d94c473114cfbd63728d21f91"></a><!-- doxytag: member="Game::_timer" ref="af153fc1d94c473114cfbd63728d21f91" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ALLEGRO_TIMER* <a class="el" href="class_game.html#af153fc1d94c473114cfbd63728d21f91">Game::_timer</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Creates FPS events per second, that are put into _timerEvents. </p>
+
+<p>Definition at line <a class="el" href="_game_8h_source.html#l00110">110</a> of file <a class="el" href="_game_8h_source.html">Game.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2b7303df1b6d0163b78c2c306164859f"></a><!-- doxytag: member="Game::_timerEvents" ref="a2b7303df1b6d0163b78c2c306164859f" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ALLEGRO_EVENT_QUEUE* <a class="el" href="class_game.html#a2b7303df1b6d0163b78c2c306164859f">Game::_timerEvents</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Catches events from _timer, used to regulate speed of runloop. </p>
+
+<p>Definition at line <a class="el" href="_game_8h_source.html#l00111">111</a> of file <a class="el" href="_game_8h_source.html">Game.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a636d6897103fd12d230489d512bf2be1"></a><!-- doxytag: member="Game::FPS" ref="a636d6897103fd12d230489d512bf2be1" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const unsigned int <a class="el" href="class_game.html#a636d6897103fd12d230489d512bf2be1">Game::FPS</a> = 30<code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Frames per second, the number of times the gameloop is run every second. </p>
+
+<p>Definition at line <a class="el" href="_game_8h_source.html#l00039">39</a> of file <a class="el" href="_game_8h_source.html">Game.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>source/logic/<a class="el" href="_game_8h_source.html">Game.h</a></li>
+<li>source/logic/<a class="el" href="_game_8cpp_source.html">Game.cpp</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_game_object-members.html b/docs/html/class_game_object-members.html
new file mode 100644
index 0000000..33da245
--- /dev/null
+++ b/docs/html/class_game_object-members.html
@@ -0,0 +1,121 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Member List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">GameObject Member List</div> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="class_game_object.html">GameObject</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#adc4a399cc59d5706f75748fb3846faec">_destroyed</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a24d36b1a64504298700a7ae7111fad5d">_facing</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a8b0aa105507a8a9559bbc2a66198ccd6">_image</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614">_x</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e">_y</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a266871f6c0220f6b3c902075ebff8eea">destroyed</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a2549066ec4dc8f4ca2d3a8c5d5729324">facing</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a26cba01b9c2d301d4ee89a98b9396d67">GameObject</a>(double x, double y, BitmapStore::Image image, Maze::Direction facing=Maze::UP)</td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a05e352e3e01e774892beee0503fdb349">image</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8">x</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b">y</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+</table></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_game_object.html b/docs/html/class_game_object.html
new file mode 100644
index 0000000..2b41b1a
--- /dev/null
+++ b/docs/html/class_game_object.html
@@ -0,0 +1,421 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: GameObject Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> </div>
+ <div class="headertitle">
+<div class="title">GameObject Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="GameObject" -->
+<p>Parent class for objects that are placed in the maze.
+ <a href="class_game_object.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_game_object_8h_source.html">GameObject.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for GameObject:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="class_game_object.png" usemap="#GameObject_map" alt=""/>
+ <map id="GameObject_map" name="GameObject_map">
+<area href="class_car.html" title="GameObject that moves through the maze and changes direction." alt="Car" shape="rect" coords="76,56,219,80"/>
+<area href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over." alt="Checkpoint" shape="rect" coords="229,56,372,80"/>
+<area href="class_limited_time_object.html" title="Parent class for GameObjects that are created, exist for a given time, and are then destroyed..." alt="LimitedTimeObject" shape="rect" coords="382,56,525,80"/>
+<area href="class_rock.html" title="A game object that acts as an obstacle to the player." alt="Rock" shape="rect" coords="535,56,678,80"/>
+<area href="class_enemy_car.html" title="GameObject that chases the player around the maze." alt="EnemyCar" shape="rect" coords="0,112,143,136"/>
+<area href="class_player_car.html" title="A GameObject that is controlled by the player." alt="PlayerCar" shape="rect" coords="153,112,296,136"/>
+<area href="class_destroyed_object_popup.html" title="Object that appears on the screen for a short time when another object has been destroyed." alt="DestroyedObjectPopup" shape="rect" coords="306,112,449,136"/>
+<area href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it." alt="Smokescreen" shape="rect" coords="459,112,602,136"/>
+</map>
+ </div></div>
+
+<p><a href="class_game_object-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_object.html#a26cba01b9c2d301d4ee89a98b9396d67">GameObject</a> (double x, double y, <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386">BitmapStore::Image</a> image, <a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f">Maze::Direction</a> facing=Maze::UP)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a <a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> with the given parameters. <a href="#a26cba01b9c2d301d4ee89a98b9396d67"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8">x</a> () const </td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides access to the x coordinate of the object. <a href="#a676dd981c2891493782de36fb4618cd8"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b">y</a> () const </td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides access to the y coordinate of the object. <a href="#a293548656551d6aed5f714f8c4a3235b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_object.html#a266871f6c0220f6b3c902075ebff8eea">destroyed</a> () const </td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if an object has been marked for destruction, for example through a collision. <a href="#a266871f6c0220f6b3c902075ebff8eea"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386">BitmapStore::Image</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_object.html#a05e352e3e01e774892beee0503fdb349">image</a> () const </td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides access to the image that should be drawn to represent the object. <a href="#a05e352e3e01e774892beee0503fdb349"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f">Maze::Direction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_object.html#a2549066ec4dc8f4ca2d3a8c5d5729324">facing</a> () const </td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides access to the direction that the object is facing. <a href="#a2549066ec4dc8f4ca2d3a8c5d5729324"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614">_x</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The x coordinate of the object's position. <a href="#acc5b8970ff0036786fdd9af621bd1614"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e">_y</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The y coordinate of the object's position. <a href="#ade9a5568d88963b86547ddcaec465b4e"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_object.html#adc4a399cc59d5706f75748fb3846faec">_destroyed</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">True if the object has been marked for destruction. <a href="#adc4a399cc59d5706f75748fb3846faec"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386">BitmapStore::Image</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_object.html#a8b0aa105507a8a9559bbc2a66198ccd6">_image</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The bitmap that should be drawn on the screen to represent the object. <a href="#a8b0aa105507a8a9559bbc2a66198ccd6"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f">Maze::Direction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_object.html#a24d36b1a64504298700a7ae7111fad5d">_facing</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The direction in which the object is facing, up, down, left, or right. <a href="#a24d36b1a64504298700a7ae7111fad5d"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Parent class for objects that are placed in the maze. </p>
+<p>These objects are one maze block big. The image in the bitmap store will be drawn on the screen every frame at the <a class="el" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a> class's discression, being rotated to face in the 'facing' direction. Coordinates are given in terms of the <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> class's coordinate system. For example, increasing the x coordinate of an object by 1 will move it one maze block to the right. The number of pixels that this corresponds to is handled by the <a class="el" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a> class.</p>
+<p>When an object is in a situation that it should be destroyed, it is marked for destruction. It is then the responsibility of the <a class="el" href="class_game.html" title="The object that controls the flow of the game, and the launch point of the game.">Game</a> class to actually destroy it.</p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_game_object_8h_source.html#l00023">23</a> of file <a class="el" href="_game_object_8h_source.html">GameObject.h</a>.</p>
+</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a26cba01b9c2d301d4ee89a98b9396d67"></a><!-- doxytag: member="GameObject::GameObject" ref="a26cba01b9c2d301d4ee89a98b9396d67" args="(double x, double y, BitmapStore::Image image, Maze::Direction facing=Maze::UP)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GameObject::GameObject </td>
+ <td>(</td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386">BitmapStore::Image</a>&#160;</td>
+ <td class="paramname"><em>image</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f">Maze::Direction</a>&#160;</td>
+ <td class="paramname"><em>facing</em> = <code>Maze::UP</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Creates a <a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> with the given parameters. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>The x coordinate of the new object. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>The y coordinate of the new object. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">image</td><td>The image that is drawn to represent the object. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">facing</td><td>The direction that the object is facing. If the object has no direction, such as with <a class="el" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a> or <a class="el" href="class_rock.html" title="A game object that acts as an obstacle to the player.">Rock</a>, the default value of <a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7">Maze::UP</a> should be used. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_game_object_8cpp_source.html#l00003">3</a> of file <a class="el" href="_game_object_8cpp_source.html">GameObject.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a266871f6c0220f6b3c902075ebff8eea"></a><!-- doxytag: member="GameObject::destroyed" ref="a266871f6c0220f6b3c902075ebff8eea" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool GameObject::destroyed </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Checks if an object has been marked for destruction, for example through a collision. </p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>True is the object has been marked for destruction, false otherwise. </dd></dl>
+
+<p>Definition at line <a class="el" href="_game_object_8cpp_source.html#l00016">16</a> of file <a class="el" href="_game_object_8cpp_source.html">GameObject.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2549066ec4dc8f4ca2d3a8c5d5729324"></a><!-- doxytag: member="GameObject::facing" ref="a2549066ec4dc8f4ca2d3a8c5d5729324" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f">Maze::Direction</a> GameObject::facing </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Provides access to the direction that the object is facing. </p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A direction, corresponding to the rotation that should be done to the drawn image and, in the case of Cars, the direction that they move forward. </dd></dl>
+
+<p>Definition at line <a class="el" href="_game_object_8cpp_source.html#l00024">24</a> of file <a class="el" href="_game_object_8cpp_source.html">GameObject.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a05e352e3e01e774892beee0503fdb349"></a><!-- doxytag: member="GameObject::image" ref="a05e352e3e01e774892beee0503fdb349" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386">BitmapStore::Image</a> GameObject::image </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Provides access to the image that should be drawn to represent the object. </p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An image, corresponding to an enumerated type that can be converted into a bitmap by the <a class="el" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a> class. </dd></dl>
+
+<p>Definition at line <a class="el" href="_game_object_8cpp_source.html#l00020">20</a> of file <a class="el" href="_game_object_8cpp_source.html">GameObject.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a676dd981c2891493782de36fb4618cd8"></a><!-- doxytag: member="GameObject::x" ref="a676dd981c2891493782de36fb4618cd8" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">double GameObject::x </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Provides access to the x coordinate of the object. </p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The x coordinate of the object, in maze blocks, where 0 is the far left column of the maze. </dd></dl>
+
+<p>Definition at line <a class="el" href="_game_object_8cpp_source.html#l00008">8</a> of file <a class="el" href="_game_object_8cpp_source.html">GameObject.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a293548656551d6aed5f714f8c4a3235b"></a><!-- doxytag: member="GameObject::y" ref="a293548656551d6aed5f714f8c4a3235b" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">double GameObject::y </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Provides access to the y coordinate of the object. </p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The y coordinate of the object, in maze blocks, where 0 is the top row of the maze. </dd></dl>
+
+<p>Definition at line <a class="el" href="_game_object_8cpp_source.html#l00012">12</a> of file <a class="el" href="_game_object_8cpp_source.html">GameObject.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="adc4a399cc59d5706f75748fb3846faec"></a><!-- doxytag: member="GameObject::_destroyed" ref="adc4a399cc59d5706f75748fb3846faec" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool <a class="el" href="class_game_object.html#adc4a399cc59d5706f75748fb3846faec">GameObject::_destroyed</a><code> [protected]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>True if the object has been marked for destruction. </p>
+
+<p>Definition at line <a class="el" href="_game_object_8h_source.html#l00077">77</a> of file <a class="el" href="_game_object_8h_source.html">GameObject.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a24d36b1a64504298700a7ae7111fad5d"></a><!-- doxytag: member="GameObject::_facing" ref="a24d36b1a64504298700a7ae7111fad5d" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f">Maze::Direction</a> <a class="el" href="class_game_object.html#a24d36b1a64504298700a7ae7111fad5d">GameObject::_facing</a><code> [protected]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The direction in which the object is facing, up, down, left, or right. </p>
+
+<p>Definition at line <a class="el" href="_game_object_8h_source.html#l00079">79</a> of file <a class="el" href="_game_object_8h_source.html">GameObject.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8b0aa105507a8a9559bbc2a66198ccd6"></a><!-- doxytag: member="GameObject::_image" ref="a8b0aa105507a8a9559bbc2a66198ccd6" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386">BitmapStore::Image</a> <a class="el" href="class_game_object.html#a8b0aa105507a8a9559bbc2a66198ccd6">GameObject::_image</a><code> [protected]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The bitmap that should be drawn on the screen to represent the object. </p>
+
+<p>Definition at line <a class="el" href="_game_object_8h_source.html#l00078">78</a> of file <a class="el" href="_game_object_8h_source.html">GameObject.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acc5b8970ff0036786fdd9af621bd1614"></a><!-- doxytag: member="GameObject::_x" ref="acc5b8970ff0036786fdd9af621bd1614" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">double <a class="el" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614">GameObject::_x</a><code> [protected]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The x coordinate of the object's position. </p>
+
+<p>Definition at line <a class="el" href="_game_object_8h_source.html#l00075">75</a> of file <a class="el" href="_game_object_8h_source.html">GameObject.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ade9a5568d88963b86547ddcaec465b4e"></a><!-- doxytag: member="GameObject::_y" ref="ade9a5568d88963b86547ddcaec465b4e" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">double <a class="el" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e">GameObject::_y</a><code> [protected]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The y coordinate of the object's position. </p>
+
+<p>Definition at line <a class="el" href="_game_object_8h_source.html#l00076">76</a> of file <a class="el" href="_game_object_8h_source.html">GameObject.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>source/logic/<a class="el" href="_game_object_8h_source.html">GameObject.h</a></li>
+<li>source/logic/<a class="el" href="_game_object_8cpp_source.html">GameObject.cpp</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_game_object.png b/docs/html/class_game_object.png
new file mode 100644
index 0000000..c17661d
--- /dev/null
+++ b/docs/html/class_game_object.png
Binary files differ
diff --git a/docs/html/class_game_panel-members.html b/docs/html/class_game_panel-members.html
new file mode 100644
index 0000000..8256ceb
--- /dev/null
+++ b/docs/html/class_game_panel-members.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Member List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">GamePanel Member List</div> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="class_game_panel.html">GamePanel</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="class_game_panel.html#a18c100c8d9ae2601a97083485d937418">_allegro</a></td><td><a class="el" href="class_game_panel.html">GamePanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen_panel.html#a1a3ec8e60be5d5cede210171bda33468">_back</a></td><td><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_panel.html#a0125ff874ffebadc15c7678210914a8c">_bitmapStore</a></td><td><a class="el" href="class_game_panel.html">GamePanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen_panel.html#a4f6dd5c7ca10d51bface7b1ddedc236c">_height</a></td><td><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_panel.html#a4889f5f6e1ad713be455d4f69a2cda96">_mazeblockWidth</a></td><td><a class="el" href="class_game_panel.html">GamePanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_panel.html#afe99f100b68ec2475cb0a509887b63a9">_offsetX</a></td><td><a class="el" href="class_game_panel.html">GamePanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_panel.html#af3354addd707cb42b078dbe2ef29e189">_offsetY</a></td><td><a class="el" href="class_game_panel.html">GamePanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen_panel.html#afbbcad2a101b95869dcdef9bf0898f65">_width</a></td><td><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen_panel.html#a1cc6ea44035f47d77d24b4cee9dc9d85">BLANK</a></td><td><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td><code> [protected, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_panel.html#ae60d3f1c29382ad3c6e6b5c5a56d2160">BLOCKS_PER_ROW</a></td><td><a class="el" href="class_game_panel.html">GamePanel</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_panel.html#ab093fb770fa8b46ee863947259c72abd">draw</a>(const Maze &amp;maze, const list&lt; PlayerCar &gt; &amp;players, const list&lt; EnemyCar &gt; &amp;enemies, const list&lt; Checkpoint &gt; &amp;checkpoints, const list&lt; Rock &gt; &amp;rocks, const list&lt; Smokescreen &gt; &amp;smokescreens, const list&lt; DestroyedObjectPopup &gt; &amp;popups)</td><td><a class="el" href="class_game_panel.html">GamePanel</a></td><td><code> [virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_panel.html#a93395482993b341b1b72fbb256ce9be9">draw</a>(const Maze &amp;maze)</td><td><a class="el" href="class_game_panel.html">GamePanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_panel.html#acff2b430ecad1310a0a36cfe7c994d2f">draw</a>(const GameObject &amp;object)</td><td><a class="el" href="class_game_panel.html">GamePanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen_panel.html#ab701d3888b13463d200be112f0eb4d82">flip</a>()</td><td><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td><code> [virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_panel.html#a3475820b2255da92e247d07248870044">GamePanel</a>(ALLEGRO_BITMAP *back, ALLEGRO_BITMAP *front, int x, int y, int width, int height)</td><td><a class="el" href="class_game_panel.html">GamePanel</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_panel.html#ac7699585182c097daab6aeda844b4edd">GamePanel</a>(const GamePanel &amp;ref)</td><td><a class="el" href="class_game_panel.html">GamePanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_panel.html#a53a4386ab0f60db88b3c638b3880cd91">getPanelX</a>(const double &amp;x) const </td><td><a class="el" href="class_game_panel.html">GamePanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_panel.html#a0e722b67c8ee7fe5f557821adf9b8cc2">getPanelY</a>(const double &amp;y) const </td><td><a class="el" href="class_game_panel.html">GamePanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_panel.html#afa4391feb9b273eb938531a73b1ec7f2">operator=</a>(const GamePanel &amp;rhs)</td><td><a class="el" href="class_game_panel.html">GamePanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen_panel.html#a8c13559489444ea8131066fa5b884645">ScreenPanel</a>(ALLEGRO_BITMAP *back, ALLEGRO_BITMAP *front, int x, int y, int width, int height)</td><td><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen_panel.html#a843296c130c75beb41ada9ba3eddd457">~ScreenPanel</a>()</td><td><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td><code> [virtual]</code></td></tr>
+</table></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_game_panel.html b/docs/html/class_game_panel.html
new file mode 100644
index 0000000..ec424e9
--- /dev/null
+++ b/docs/html/class_game_panel.html
@@ -0,0 +1,580 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: GamePanel Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pri-methods">Private Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> &#124;
+<a href="#pri-static-attribs">Static Private Attributes</a> </div>
+ <div class="headertitle">
+<div class="title">GamePanel Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="GamePanel" --><!-- doxytag: inherits="ScreenPanel" -->
+<p><a class="el" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a> to be drawn on the screen to draw the area where the game takes place.
+ <a href="class_game_panel.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_game_panel_8h_source.html">GamePanel.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for GamePanel:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="class_game_panel.png" usemap="#GamePanel_map" alt=""/>
+ <map id="GamePanel_map" name="GamePanel_map">
+<area href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen." alt="ScreenPanel" shape="rect" coords="0,0,85,24"/>
+</map>
+ </div></div>
+
+<p><a href="class_game_panel-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_panel.html#a3475820b2255da92e247d07248870044">GamePanel</a> (ALLEGRO_BITMAP *back, ALLEGRO_BITMAP *front, int x, int y, int width, int height)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a <a class="el" href="class_game_panel.html" title="ScreenPanel to be drawn on the screen to draw the area where the game takes place.">GamePanel</a> from the given back and front buffers. <a href="#a3475820b2255da92e247d07248870044"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_panel.html#ab093fb770fa8b46ee863947259c72abd">draw</a> (const <a class="el" href="class_maze.html">Maze</a> &amp;maze, const list&lt; <a class="el" href="class_player_car.html">PlayerCar</a> &gt; &amp;players, const list&lt; <a class="el" href="class_enemy_car.html">EnemyCar</a> &gt; &amp;enemies, const list&lt; <a class="el" href="class_checkpoint.html">Checkpoint</a> &gt; &amp;checkpoints, const list&lt; <a class="el" href="class_rock.html">Rock</a> &gt; &amp;rocks, const list&lt; <a class="el" href="class_smokescreen.html">Smokescreen</a> &gt; &amp;smokescreens, const list&lt; <a class="el" href="class_destroyed_object_popup.html">DestroyedObjectPopup</a> &gt; &amp;popups)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws the given objects on the screen. <a href="#ab093fb770fa8b46ee863947259c72abd"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-methods"></a>
+Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_panel.html#ac7699585182c097daab6aeda844b4edd">GamePanel</a> (const <a class="el" href="class_game_panel.html">GamePanel</a> &amp;ref)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor not implemented, ScreenPanels should not be copied. <a href="#ac7699585182c097daab6aeda844b4edd"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_game_panel.html">GamePanel</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_panel.html#afa4391feb9b273eb938531a73b1ec7f2">operator=</a> (const <a class="el" href="class_game_panel.html">GamePanel</a> &amp;rhs)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator not implemented, ScreenPanels should not be copied. <a href="#afa4391feb9b273eb938531a73b1ec7f2"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_panel.html#a53a4386ab0f60db88b3c638b3880cd91">getPanelX</a> (const double &amp;x) const </td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts an x game coordinate value to its equivalent in pixels. <a href="#a53a4386ab0f60db88b3c638b3880cd91"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_panel.html#a0e722b67c8ee7fe5f557821adf9b8cc2">getPanelY</a> (const double &amp;y) const </td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a y game coordinate value to its equivalent in pixels. <a href="#a0e722b67c8ee7fe5f557821adf9b8cc2"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_panel.html#a93395482993b341b1b72fbb256ce9be9">draw</a> (const <a class="el" href="class_maze.html">Maze</a> &amp;maze)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws a <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> on the screen. <a href="#a93395482993b341b1b72fbb256ce9be9"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_panel.html#acff2b430ecad1310a0a36cfe7c994d2f">draw</a> (const <a class="el" href="class_game_object.html">GameObject</a> &amp;object)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws a single <a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> on the screen. <a href="#acff2b430ecad1310a0a36cfe7c994d2f"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_panel.html#a4889f5f6e1ad713be455d4f69a2cda96">_mazeblockWidth</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The width of one (square) <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> block on the screen, in pixels. <a href="#a4889f5f6e1ad713be455d4f69a2cda96"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_panel.html#afe99f100b68ec2475cb0a509887b63a9">_offsetX</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The amount that drawing should be offset to the right, recalculated every frame. <a href="#afe99f100b68ec2475cb0a509887b63a9"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_panel.html#af3354addd707cb42b078dbe2ef29e189">_offsetY</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The amount that drawing should be offset downwards, recalculated every frame. <a href="#af3354addd707cb42b078dbe2ef29e189"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_bitmap_store.html">BitmapStore</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_panel.html#a0125ff874ffebadc15c7678210914a8c">_bitmapStore</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to cache ALLEGRO_BITMAPs, so that they only need to be drawn once. <a href="#a0125ff874ffebadc15c7678210914a8c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_allegro_init.html">AllegroInit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_panel.html#a18c100c8d9ae2601a97083485d937418">_allegro</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles dependencies on Allegro. <a href="#a18c100c8d9ae2601a97083485d937418"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-static-attribs"></a>
+Static Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_panel.html#ae60d3f1c29382ad3c6e6b5c5a56d2160">BLOCKS_PER_ROW</a> = 15</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> blocks in one row shown on the panel at a time. Used to determine the scale. <a href="#ae60d3f1c29382ad3c6e6b5c5a56d2160"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a> to be drawn on the screen to draw the area where the game takes place. </p>
+<p>This includes the scrolling maze and all of the GameObjects.</p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_game_panel_8h_source.html#l00023">23</a> of file <a class="el" href="_game_panel_8h_source.html">GamePanel.h</a>.</p>
+</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a3475820b2255da92e247d07248870044"></a><!-- doxytag: member="GamePanel::GamePanel" ref="a3475820b2255da92e247d07248870044" args="(ALLEGRO_BITMAP *back, ALLEGRO_BITMAP *front, int x, int y, int width, int height)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GamePanel::GamePanel </td>
+ <td>(</td>
+ <td class="paramtype">ALLEGRO_BITMAP *&#160;</td>
+ <td class="paramname"><em>back</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">ALLEGRO_BITMAP *&#160;</td>
+ <td class="paramname"><em>front</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>width</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>height</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Creates a <a class="el" href="class_game_panel.html" title="ScreenPanel to be drawn on the screen to draw the area where the game takes place.">GamePanel</a> from the given back and front buffers. </p>
+<p>The sub-bitmaps that <a class="el" href="class_game_panel.html" title="ScreenPanel to be drawn on the screen to draw the area where the game takes place.">GamePanel</a> uses are created from a rectangular region on back and front that has its top left corner at the coordinate x,y, is width long in the x direction, and height long in the y direction.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">back</td><td>The current back buffer of the display being sub-bitmapped. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">front</td><td>The current front buffer (image currently being displayed) of the display being sub-bitmapped. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>The x coordinate of the left side of the sub-bitmap in pixels. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>The x coordinate of the top of the sub-bitmap in pixels. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">width</td><td>The length in the x direction of the new sub-bitmap in pixels. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">height</td><td>The length in the y direction of the new sub-bitmap in pixels. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_game_panel_8cpp_source.html#l00003">3</a> of file <a class="el" href="_game_panel_8cpp_source.html">GamePanel.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac7699585182c097daab6aeda844b4edd"></a><!-- doxytag: member="GamePanel::GamePanel" ref="ac7699585182c097daab6aeda844b4edd" args="(const GamePanel &amp;ref)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GamePanel::GamePanel </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_game_panel.html">GamePanel</a> &amp;&#160;</td>
+ <td class="paramname"><em>ref</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Copy constructor not implemented, ScreenPanels should not be copied. </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="ab093fb770fa8b46ee863947259c72abd"></a><!-- doxytag: member="GamePanel::draw" ref="ab093fb770fa8b46ee863947259c72abd" args="(const Maze &amp;maze, const list&lt; PlayerCar &gt; &amp;players, const list&lt; EnemyCar &gt; &amp;enemies, const list&lt; Checkpoint &gt; &amp;checkpoints, const list&lt; Rock &gt; &amp;rocks, const list&lt; Smokescreen &gt; &amp;smokescreens, const list&lt; DestroyedObjectPopup &gt; &amp;popups)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void GamePanel::draw </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_maze.html">Maze</a> &amp;&#160;</td>
+ <td class="paramname"><em>maze</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_player_car.html">PlayerCar</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>players</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_enemy_car.html">EnemyCar</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>enemies</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_checkpoint.html">Checkpoint</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>checkpoints</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_rock.html">Rock</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>rocks</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_smokescreen.html">Smokescreen</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>smokescreens</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_destroyed_object_popup.html">DestroyedObjectPopup</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>popups</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td><code> [virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Draws the given objects on the screen. </p>
+<p>The drawing is offset so that the first entry in players is in the middle of the panel. However, the offset will never be such that the drawing area will be outside of the maze.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">maze</td><td>The <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> that all of the objects are in. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">players</td><td>The list of PlayerCars to be drawn. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">enemies</td><td>The list of EnemyCars to be drawn. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">checkpoints</td><td>The list of Checkpoints to be drawn. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">rocks</td><td>The list of Rocks to be drawn. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">smokescreens</td><td>The list of Smokescreens to be drawn. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">popups</td><td>The list of DestroyedObjectPopups to be drawn. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Implements <a class="el" href="class_screen_panel.html#ab4299f065cdf3e344c3b32b484136ada">ScreenPanel</a>.</p>
+
+<p>Definition at line <a class="el" href="_game_panel_8cpp_source.html#l00012">12</a> of file <a class="el" href="_game_panel_8cpp_source.html">GamePanel.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a93395482993b341b1b72fbb256ce9be9"></a><!-- doxytag: member="GamePanel::draw" ref="a93395482993b341b1b72fbb256ce9be9" args="(const Maze &amp;maze)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void GamePanel::draw </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_maze.html">Maze</a> &amp;&#160;</td>
+ <td class="paramname"><em>maze</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Draws a <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> on the screen. </p>
+<p>Bitmaps used to represent solid and non-solid parts of the <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> are stored in the <a class="el" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a>.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">maze</td><td>The <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> to be drawn. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_game_panel_8cpp_source.html#l00063">63</a> of file <a class="el" href="_game_panel_8cpp_source.html">GamePanel.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acff2b430ecad1310a0a36cfe7c994d2f"></a><!-- doxytag: member="GamePanel::draw" ref="acff2b430ecad1310a0a36cfe7c994d2f" args="(const GameObject &amp;object)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void GamePanel::draw </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_game_object.html">GameObject</a> &amp;&#160;</td>
+ <td class="paramname"><em>object</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Draws a single <a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> on the screen. </p>
+<p>The bitmap to be drawn is retrieved from the <a class="el" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a> using the GameObject's image.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">object</td><td>The <a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> to be drawn. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_game_panel_8cpp_source.html#l00092">92</a> of file <a class="el" href="_game_panel_8cpp_source.html">GamePanel.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a53a4386ab0f60db88b3c638b3880cd91"></a><!-- doxytag: member="GamePanel::getPanelX" ref="a53a4386ab0f60db88b3c638b3880cd91" args="(const double &amp;x) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">float GamePanel::getPanelX </td>
+ <td>(</td>
+ <td class="paramtype">const double &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td> const<code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Converts an x game coordinate value to its equivalent in pixels. </p>
+<p>Converting to the pixel coordinates happens for every object every frame. To increase performance, the parameters are passed in by constant reference instead of by value.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>The game coordinate to be converted into pixels. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_game_panel_8cpp_source.html#l00126">126</a> of file <a class="el" href="_game_panel_8cpp_source.html">GamePanel.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0e722b67c8ee7fe5f557821adf9b8cc2"></a><!-- doxytag: member="GamePanel::getPanelY" ref="a0e722b67c8ee7fe5f557821adf9b8cc2" args="(const double &amp;y) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">float GamePanel::getPanelY </td>
+ <td>(</td>
+ <td class="paramtype">const double &amp;&#160;</td>
+ <td class="paramname"><em>y</em></td><td>)</td>
+ <td> const<code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Converts a y game coordinate value to its equivalent in pixels. </p>
+<p>Converting to the pixel coordinates happens for every object every frame. To increase performance, the parameters are passed in by constant reference instead of by value.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>The game coordinate to be converted into pixels. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_game_panel_8cpp_source.html#l00130">130</a> of file <a class="el" href="_game_panel_8cpp_source.html">GamePanel.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afa4391feb9b273eb938531a73b1ec7f2"></a><!-- doxytag: member="GamePanel::operator=" ref="afa4391feb9b273eb938531a73b1ec7f2" args="(const GamePanel &amp;rhs)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_game_panel.html">GamePanel</a>&amp; GamePanel::operator= </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_game_panel.html">GamePanel</a> &amp;&#160;</td>
+ <td class="paramname"><em>rhs</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Assignment operator not implemented, ScreenPanels should not be copied. </p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a18c100c8d9ae2601a97083485d937418"></a><!-- doxytag: member="GamePanel::_allegro" ref="a18c100c8d9ae2601a97083485d937418" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_allegro_init.html">AllegroInit</a> <a class="el" href="class_game_panel.html#a18c100c8d9ae2601a97083485d937418">GamePanel::_allegro</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Handles dependencies on Allegro. </p>
+
+<p>Reimplemented from <a class="el" href="class_screen_panel.html#a3877f04c03866e35588f0b753ee7c485">ScreenPanel</a>.</p>
+
+<p>Definition at line <a class="el" href="_game_panel_8h_source.html#l00114">114</a> of file <a class="el" href="_game_panel_8h_source.html">GamePanel.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0125ff874ffebadc15c7678210914a8c"></a><!-- doxytag: member="GamePanel::_bitmapStore" ref="a0125ff874ffebadc15c7678210914a8c" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_bitmap_store.html">BitmapStore</a> <a class="el" href="class_game_panel.html#a0125ff874ffebadc15c7678210914a8c">GamePanel::_bitmapStore</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Used to cache ALLEGRO_BITMAPs, so that they only need to be drawn once. </p>
+
+<p>Definition at line <a class="el" href="_game_panel_8h_source.html#l00112">112</a> of file <a class="el" href="_game_panel_8h_source.html">GamePanel.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4889f5f6e1ad713be455d4f69a2cda96"></a><!-- doxytag: member="GamePanel::_mazeblockWidth" ref="a4889f5f6e1ad713be455d4f69a2cda96" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">unsigned int <a class="el" href="class_game_panel.html#a4889f5f6e1ad713be455d4f69a2cda96">GamePanel::_mazeblockWidth</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The width of one (square) <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> block on the screen, in pixels. </p>
+
+<p>Definition at line <a class="el" href="_game_panel_8h_source.html#l00107">107</a> of file <a class="el" href="_game_panel_8h_source.html">GamePanel.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afe99f100b68ec2475cb0a509887b63a9"></a><!-- doxytag: member="GamePanel::_offsetX" ref="afe99f100b68ec2475cb0a509887b63a9" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">float <a class="el" href="class_game_panel.html#afe99f100b68ec2475cb0a509887b63a9">GamePanel::_offsetX</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The amount that drawing should be offset to the right, recalculated every frame. </p>
+
+<p>Definition at line <a class="el" href="_game_panel_8h_source.html#l00109">109</a> of file <a class="el" href="_game_panel_8h_source.html">GamePanel.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af3354addd707cb42b078dbe2ef29e189"></a><!-- doxytag: member="GamePanel::_offsetY" ref="af3354addd707cb42b078dbe2ef29e189" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">float <a class="el" href="class_game_panel.html#af3354addd707cb42b078dbe2ef29e189">GamePanel::_offsetY</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The amount that drawing should be offset downwards, recalculated every frame. </p>
+
+<p>Definition at line <a class="el" href="_game_panel_8h_source.html#l00110">110</a> of file <a class="el" href="_game_panel_8h_source.html">GamePanel.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae60d3f1c29382ad3c6e6b5c5a56d2160"></a><!-- doxytag: member="GamePanel::BLOCKS_PER_ROW" ref="ae60d3f1c29382ad3c6e6b5c5a56d2160" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const int <a class="el" href="class_game_panel.html#ae60d3f1c29382ad3c6e6b5c5a56d2160">GamePanel::BLOCKS_PER_ROW</a> = 15<code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The number of <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> blocks in one row shown on the panel at a time. Used to determine the scale. </p>
+
+<p>Definition at line <a class="el" href="_game_panel_8h_source.html#l00105">105</a> of file <a class="el" href="_game_panel_8h_source.html">GamePanel.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>source/presentation/<a class="el" href="_game_panel_8h_source.html">GamePanel.h</a></li>
+<li>source/presentation/<a class="el" href="_game_panel_8cpp_source.html">GamePanel.cpp</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_game_panel.png b/docs/html/class_game_panel.png
new file mode 100644
index 0000000..8d7408e
--- /dev/null
+++ b/docs/html/class_game_panel.png
Binary files differ
diff --git a/docs/html/class_info_panel-members.html b/docs/html/class_info_panel-members.html
new file mode 100644
index 0000000..6a782a6
--- /dev/null
+++ b/docs/html/class_info_panel-members.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Member List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">InfoPanel Member List</div> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="class_info_panel.html">InfoPanel</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="class_screen_panel.html#a1a3ec8e60be5d5cede210171bda33468">_back</a></td><td><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_info_panel.html#a7ec514286dbf2fb43f64acd620397e21">_checkpointHeadingY</a></td><td><a class="el" href="class_info_panel.html">InfoPanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_info_panel.html#ad118b5f123e590a95b3f390fd9597f02">_checkpointValueY</a></td><td><a class="el" href="class_info_panel.html">InfoPanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_info_panel.html#a27ac079ed1a39ae672b6ceb9e0974855">_colourStore</a></td><td><a class="el" href="class_info_panel.html">InfoPanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_info_panel.html#a589359c67b30af50338791f8af0e05e0">_drawing</a></td><td><a class="el" href="class_info_panel.html">InfoPanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen_panel.html#a4f6dd5c7ca10d51bface7b1ddedc236c">_height</a></td><td><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_info_panel.html#abb211fac23293e41f23b86fd70df98f0">_miniMazeblockWidth</a></td><td><a class="el" href="class_info_panel.html">InfoPanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_info_panel.html#ad38206daa42c82b45878e6d0c55f2860">_miniMazeHeight</a></td><td><a class="el" href="class_info_panel.html">InfoPanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_info_panel.html#a7b4bb6cca8549d6a1d1deccc99994b9b">_miniMazeY</a></td><td><a class="el" href="class_info_panel.html">InfoPanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_info_panel.html#a38d023a2b00eafa303de37550cb96817">_panelFont</a></td><td><a class="el" href="class_info_panel.html">InfoPanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_info_panel.html#a0c85348f8471d86da73772f86a62f84c">_petrolGuageHeight</a></td><td><a class="el" href="class_info_panel.html">InfoPanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_info_panel.html#a29976100c8fc5c130be713dfb5c2807e">_petrolGuageY</a></td><td><a class="el" href="class_info_panel.html">InfoPanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_info_panel.html#a5ab76703538ad6e396a21ea8fb47d23d">_petrolHeadingY</a></td><td><a class="el" href="class_info_panel.html">InfoPanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen_panel.html#afbbcad2a101b95869dcdef9bf0898f65">_width</a></td><td><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen_panel.html#a1cc6ea44035f47d77d24b4cee9dc9d85">BLANK</a></td><td><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td><code> [protected, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_info_panel.html#aa9628c14e08ac6573e0191d9d4afa227">draw</a>(const Maze &amp;maze, const list&lt; PlayerCar &gt; &amp;players, const list&lt; EnemyCar &gt; &amp;enemies, const list&lt; Checkpoint &gt; &amp;checkpoints, const list&lt; Rock &gt; &amp;rocks, const list&lt; Smokescreen &gt; &amp;smokescreens, const list&lt; DestroyedObjectPopup &gt; &amp;popups)</td><td><a class="el" href="class_info_panel.html">InfoPanel</a></td><td><code> [virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_info_panel.html#a23a025859397c3e28bbe9dce26563d7c">draw</a>(const Maze &amp;maze)</td><td><a class="el" href="class_info_panel.html">InfoPanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_info_panel.html#abc82d5365a89b3e374dbbdda86b77703">draw</a>(const GameObject &amp;object)</td><td><a class="el" href="class_info_panel.html">InfoPanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen_panel.html#ab701d3888b13463d200be112f0eb4d82">flip</a>()</td><td><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td><code> [virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_info_panel.html#a0accb88b099f412cc3baa7d2bf4690aa">getPanelX</a>(const double &amp;x) const </td><td><a class="el" href="class_info_panel.html">InfoPanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_info_panel.html#ad962eab814441375a8634b67d743d7e6">getPanelY</a>(const double &amp;y) const </td><td><a class="el" href="class_info_panel.html">InfoPanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_info_panel.html#a5a3d0afb5ebd764de04484b1817912b6">InfoPanel</a>(ALLEGRO_BITMAP *back, ALLEGRO_BITMAP *front, int x, int y, int width, int height)</td><td><a class="el" href="class_info_panel.html">InfoPanel</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_info_panel.html#a6eac5bf29b155213dffd60460d299049">InfoPanel</a>(const InfoPanel &amp;ref)</td><td><a class="el" href="class_info_panel.html">InfoPanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_info_panel.html#ab70ce071b189ffe1b7e7a67a6227393f">operator=</a>(const InfoPanel &amp;rhs)</td><td><a class="el" href="class_info_panel.html">InfoPanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen_panel.html#a8c13559489444ea8131066fa5b884645">ScreenPanel</a>(ALLEGRO_BITMAP *back, ALLEGRO_BITMAP *front, int x, int y, int width, int height)</td><td><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_info_panel.html#a052da279d4bf0405ae3735f24cc2e2a2">~InfoPanel</a>()</td><td><a class="el" href="class_info_panel.html">InfoPanel</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen_panel.html#a843296c130c75beb41ada9ba3eddd457">~ScreenPanel</a>()</td><td><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td><code> [virtual]</code></td></tr>
+</table></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_info_panel.html b/docs/html/class_info_panel.html
new file mode 100644
index 0000000..c01e1ad
--- /dev/null
+++ b/docs/html/class_info_panel.html
@@ -0,0 +1,695 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: InfoPanel Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pri-methods">Private Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> </div>
+ <div class="headertitle">
+<div class="title">InfoPanel Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="InfoPanel" --><!-- doxytag: inherits="ScreenPanel" -->
+<p><a class="el" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a> to be drawn on the screen to give the player information.
+ <a href="class_info_panel.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_info_panel_8h_source.html">InfoPanel.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for InfoPanel:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="class_info_panel.png" usemap="#InfoPanel_map" alt=""/>
+ <map id="InfoPanel_map" name="InfoPanel_map">
+<area href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen." alt="ScreenPanel" shape="rect" coords="0,0,85,24"/>
+</map>
+ </div></div>
+
+<p><a href="class_info_panel-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_info_panel.html#a5a3d0afb5ebd764de04484b1817912b6">InfoPanel</a> (ALLEGRO_BITMAP *back, ALLEGRO_BITMAP *front, int x, int y, int width, int height)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an <a class="el" href="class_info_panel.html" title="ScreenPanel to be drawn on the screen to give the player information.">InfoPanel</a> from the given back and front buffers. <a href="#a5a3d0afb5ebd764de04484b1817912b6"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_info_panel.html#a052da279d4bf0405ae3735f24cc2e2a2">~InfoPanel</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor that ensured that the font created is destroyed. <a href="#a052da279d4bf0405ae3735f24cc2e2a2"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_info_panel.html#aa9628c14e08ac6573e0191d9d4afa227">draw</a> (const <a class="el" href="class_maze.html">Maze</a> &amp;maze, const list&lt; <a class="el" href="class_player_car.html">PlayerCar</a> &gt; &amp;players, const list&lt; <a class="el" href="class_enemy_car.html">EnemyCar</a> &gt; &amp;enemies, const list&lt; <a class="el" href="class_checkpoint.html">Checkpoint</a> &gt; &amp;checkpoints, const list&lt; <a class="el" href="class_rock.html">Rock</a> &gt; &amp;rocks, const list&lt; <a class="el" href="class_smokescreen.html">Smokescreen</a> &gt; &amp;smokescreens, const list&lt; <a class="el" href="class_destroyed_object_popup.html">DestroyedObjectPopup</a> &gt; &amp;popups)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws the <a class="el" href="class_info_panel.html" title="ScreenPanel to be drawn on the screen to give the player information.">InfoPanel</a> using the given objects. <a href="#aa9628c14e08ac6573e0191d9d4afa227"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-methods"></a>
+Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_info_panel.html#a6eac5bf29b155213dffd60460d299049">InfoPanel</a> (const <a class="el" href="class_info_panel.html">InfoPanel</a> &amp;ref)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor not implemented, ScreenPanels should not be copied. <a href="#a6eac5bf29b155213dffd60460d299049"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_info_panel.html">InfoPanel</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_info_panel.html#ab70ce071b189ffe1b7e7a67a6227393f">operator=</a> (const <a class="el" href="class_info_panel.html">InfoPanel</a> &amp;rhs)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator not implemented, ScreenPanels should not be copied. <a href="#ab70ce071b189ffe1b7e7a67a6227393f"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_info_panel.html#a0accb88b099f412cc3baa7d2bf4690aa">getPanelX</a> (const double &amp;x) const </td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts an x game coordinate value to its equivalent in pixels. <a href="#a0accb88b099f412cc3baa7d2bf4690aa"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_info_panel.html#ad962eab814441375a8634b67d743d7e6">getPanelY</a> (const double &amp;y) const </td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a y game coordinate value to its equivalent in pixels. <a href="#ad962eab814441375a8634b67d743d7e6"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_info_panel.html#a23a025859397c3e28bbe9dce26563d7c">draw</a> (const <a class="el" href="class_maze.html">Maze</a> &amp;maze)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws a <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> on the panel. <a href="#a23a025859397c3e28bbe9dce26563d7c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_info_panel.html#abc82d5365a89b3e374dbbdda86b77703">draw</a> (const <a class="el" href="class_game_object.html">GameObject</a> &amp;object)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws a single <a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> on the panel. <a href="#abc82d5365a89b3e374dbbdda86b77703"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_allegro_drawing_init.html">AllegroDrawingInit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_info_panel.html#a589359c67b30af50338791f8af0e05e0">_drawing</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles dependencies on Allegro's primitive drawing functions. <a href="#a589359c67b30af50338791f8af0e05e0"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_colour_store.html">ColourStore</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_info_panel.html#a27ac079ed1a39ae672b6ceb9e0974855">_colourStore</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Caches colours for drawing. <a href="#a27ac079ed1a39ae672b6ceb9e0974855"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_info_panel.html#a5ab76703538ad6e396a21ea8fb47d23d">_petrolHeadingY</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The y coordinate of the heading for the petrol guage. <a href="#a5ab76703538ad6e396a21ea8fb47d23d"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_info_panel.html#a29976100c8fc5c130be713dfb5c2807e">_petrolGuageY</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The y coordinate of top of the petrol guage. <a href="#a29976100c8fc5c130be713dfb5c2807e"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_info_panel.html#a0c85348f8471d86da73772f86a62f84c">_petrolGuageHeight</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The height of the rectangle that is the petrol guage. <a href="#a0c85348f8471d86da73772f86a62f84c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_info_panel.html#a7ec514286dbf2fb43f64acd620397e21">_checkpointHeadingY</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The y coordinate of the heading for the number of remaining checkpoints. <a href="#a7ec514286dbf2fb43f64acd620397e21"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_info_panel.html#ad118b5f123e590a95b3f390fd9597f02">_checkpointValueY</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The y coordinate of the text stating the number of remaining checkpoints. <a href="#ad118b5f123e590a95b3f390fd9597f02"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_info_panel.html#a7b4bb6cca8549d6a1d1deccc99994b9b">_miniMazeY</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The y coordinate of the top of the <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>. <a href="#a7b4bb6cca8549d6a1d1deccc99994b9b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_info_panel.html#ad38206daa42c82b45878e6d0c55f2860">_miniMazeHeight</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The height of the <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>. <a href="#ad38206daa42c82b45878e6d0c55f2860"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_info_panel.html#abb211fac23293e41f23b86fd70df98f0">_miniMazeblockWidth</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The width of each <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> block being drawn. <a href="#abb211fac23293e41f23b86fd70df98f0"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ALLEGRO_FONT *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_info_panel.html#a38d023a2b00eafa303de37550cb96817">_panelFont</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The font being used to write the headings and number of checkpoints remaining. <a href="#a38d023a2b00eafa303de37550cb96817"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a> to be drawn on the screen to give the player information. </p>
+<p>This includes the minimap, a scaled down version of the entire maze that does not scroll, with icons to represent the <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>, EnemyCars, and Checkpoints. Text is drawn to show the player the number of Checkpoints that needed to be collected for victory, and a rectangle is drawn representing the amount of petrol that the <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> has left.</p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_info_panel_8h_source.html#l00030">30</a> of file <a class="el" href="_info_panel_8h_source.html">InfoPanel.h</a>.</p>
+</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a5a3d0afb5ebd764de04484b1817912b6"></a><!-- doxytag: member="InfoPanel::InfoPanel" ref="a5a3d0afb5ebd764de04484b1817912b6" args="(ALLEGRO_BITMAP *back, ALLEGRO_BITMAP *front, int x, int y, int width, int height)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">InfoPanel::InfoPanel </td>
+ <td>(</td>
+ <td class="paramtype">ALLEGRO_BITMAP *&#160;</td>
+ <td class="paramname"><em>back</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">ALLEGRO_BITMAP *&#160;</td>
+ <td class="paramname"><em>front</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>width</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>height</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Creates an <a class="el" href="class_info_panel.html" title="ScreenPanel to be drawn on the screen to give the player information.">InfoPanel</a> from the given back and front buffers. </p>
+<p>The sub-bitmaps that <a class="el" href="class_info_panel.html" title="ScreenPanel to be drawn on the screen to give the player information.">InfoPanel</a> uses are created from a rectangular region on back and front that has its top left corner at the coordinate x,y, is width long in the x direction, and height long in the y direction.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">back</td><td>The current back buffer of the display being sub-bitmapped. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">front</td><td>The current front buffer (image currently being displayed) of the display being sub-bitmapped. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>The x coordinate of the left side of the sub-bitmap in pixels. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>The x coordinate of the top of the sub-bitmap in pixels. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">width</td><td>The length in the x direction of the new sub-bitmap in pixels. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">height</td><td>The length in the y direction of the new sub-bitmap in pixels. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_info_panel_8cpp_source.html#l00003">3</a> of file <a class="el" href="_info_panel_8cpp_source.html">InfoPanel.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a052da279d4bf0405ae3735f24cc2e2a2"></a><!-- doxytag: member="InfoPanel::~InfoPanel" ref="a052da279d4bf0405ae3735f24cc2e2a2" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">InfoPanel::~InfoPanel </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Destructor that ensured that the font created is destroyed. </p>
+<p>The memory for the sub-bitmaps are handled by the parent class, <a class="el" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a>. </p>
+
+<p>Definition at line <a class="el" href="_info_panel_8cpp_source.html#l00022">22</a> of file <a class="el" href="_info_panel_8cpp_source.html">InfoPanel.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6eac5bf29b155213dffd60460d299049"></a><!-- doxytag: member="InfoPanel::InfoPanel" ref="a6eac5bf29b155213dffd60460d299049" args="(const InfoPanel &amp;ref)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">InfoPanel::InfoPanel </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_info_panel.html">InfoPanel</a> &amp;&#160;</td>
+ <td class="paramname"><em>ref</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Copy constructor not implemented, ScreenPanels should not be copied. </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="aa9628c14e08ac6573e0191d9d4afa227"></a><!-- doxytag: member="InfoPanel::draw" ref="aa9628c14e08ac6573e0191d9d4afa227" args="(const Maze &amp;maze, const list&lt; PlayerCar &gt; &amp;players, const list&lt; EnemyCar &gt; &amp;enemies, const list&lt; Checkpoint &gt; &amp;checkpoints, const list&lt; Rock &gt; &amp;rocks, const list&lt; Smokescreen &gt; &amp;smokescreens, const list&lt; DestroyedObjectPopup &gt; &amp;popups)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void InfoPanel::draw </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_maze.html">Maze</a> &amp;&#160;</td>
+ <td class="paramname"><em>maze</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_player_car.html">PlayerCar</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>players</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_enemy_car.html">EnemyCar</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>enemies</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_checkpoint.html">Checkpoint</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>checkpoints</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_rock.html">Rock</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>rocks</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_smokescreen.html">Smokescreen</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>smokescreens</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_destroyed_object_popup.html">DestroyedObjectPopup</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>popups</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td><code> [virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Draws the <a class="el" href="class_info_panel.html" title="ScreenPanel to be drawn on the screen to give the player information.">InfoPanel</a> using the given objects. </p>
+<p>Not all of the provided objects are needed for the drawing process, but they are included to give the most general drawing case. This is to support polymorphism, where the <a class="el" href="class_info_panel.html" title="ScreenPanel to be drawn on the screen to give the player information.">InfoPanel</a> can be told to draw its sub-bitmap in the same manner as any other <a class="el" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a>.</p>
+<p>The scale of the minimap is determined at the beginning of each frame, so that it will always fit even if the maze is larger than on the last frame.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">maze</td><td>The <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> that all of the objects are in. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">players</td><td>The list of PlayerCars to be drawn. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">enemies</td><td>The list of EnemyCars to be drawn. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">checkpoints</td><td>The list of Checkpoints to be drawn. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">rocks</td><td>Rocks are not actually drawn. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">smokescreens</td><td>Smokescreens are not actually drawn. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">popups</td><td>DestroyedObjectPopups are not actually drawn. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Implements <a class="el" href="class_screen_panel.html#ab4299f065cdf3e344c3b32b484136ada">ScreenPanel</a>.</p>
+
+<p>Definition at line <a class="el" href="_info_panel_8cpp_source.html#l00027">27</a> of file <a class="el" href="_info_panel_8cpp_source.html">InfoPanel.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a23a025859397c3e28bbe9dce26563d7c"></a><!-- doxytag: member="InfoPanel::draw" ref="a23a025859397c3e28bbe9dce26563d7c" args="(const Maze &amp;maze)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void InfoPanel::draw </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_maze.html">Maze</a> &amp;&#160;</td>
+ <td class="paramname"><em>maze</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Draws a <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> on the panel. </p>
+<p>The <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> is constructed of coloured squares. The colour of the squares is retrieved from the <a class="el" href="class_colour_store.html" title="Class for mapping BitmapStore images to colours for use in the minimap.">ColourStore</a>.</p>
+<p>Unlike in the <a class="el" href="class_game_panel.html" title="ScreenPanel to be drawn on the screen to draw the area where the game takes place.">GamePanel</a>, the entire <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> is drawn.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">maze</td><td>The <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> to be drawn. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_info_panel_8cpp_source.html#l00071">71</a> of file <a class="el" href="_info_panel_8cpp_source.html">InfoPanel.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abc82d5365a89b3e374dbbdda86b77703"></a><!-- doxytag: member="InfoPanel::draw" ref="abc82d5365a89b3e374dbbdda86b77703" args="(const GameObject &amp;object)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void InfoPanel::draw </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_game_object.html">GameObject</a> &amp;&#160;</td>
+ <td class="paramname"><em>object</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Draws a single <a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> on the panel. </p>
+<p>The <a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> is represented by a coloured circle in the <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>. The colour is based on the GameObject's image and is retrieved from the <a class="el" href="class_colour_store.html" title="Class for mapping BitmapStore images to colours for use in the minimap.">ColourStore</a>.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">object</td><td>The <a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> to be drawn. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_info_panel_8cpp_source.html#l00096">96</a> of file <a class="el" href="_info_panel_8cpp_source.html">InfoPanel.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0accb88b099f412cc3baa7d2bf4690aa"></a><!-- doxytag: member="InfoPanel::getPanelX" ref="a0accb88b099f412cc3baa7d2bf4690aa" args="(const double &amp;x) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">float InfoPanel::getPanelX </td>
+ <td>(</td>
+ <td class="paramtype">const double &amp;&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td> const<code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Converts an x game coordinate value to its equivalent in pixels. </p>
+<p>Converting to the pixel coordinates happens for every object every frame. To increase performance, the parameters are passed in by constant reference instead of by value.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>The game coordinate to be converted into pixels. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_info_panel_8cpp_source.html#l00104">104</a> of file <a class="el" href="_info_panel_8cpp_source.html">InfoPanel.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad962eab814441375a8634b67d743d7e6"></a><!-- doxytag: member="InfoPanel::getPanelY" ref="ad962eab814441375a8634b67d743d7e6" args="(const double &amp;y) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">float InfoPanel::getPanelY </td>
+ <td>(</td>
+ <td class="paramtype">const double &amp;&#160;</td>
+ <td class="paramname"><em>y</em></td><td>)</td>
+ <td> const<code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Converts a y game coordinate value to its equivalent in pixels. </p>
+<p>Converting to the pixel coordinates happens for every object every frame. To increase performance, the parameters are passed in by constant reference instead of by value.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>The game coordinate to be converted into pixels. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_info_panel_8cpp_source.html#l00108">108</a> of file <a class="el" href="_info_panel_8cpp_source.html">InfoPanel.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab70ce071b189ffe1b7e7a67a6227393f"></a><!-- doxytag: member="InfoPanel::operator=" ref="ab70ce071b189ffe1b7e7a67a6227393f" args="(const InfoPanel &amp;rhs)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_info_panel.html">InfoPanel</a>&amp; InfoPanel::operator= </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_info_panel.html">InfoPanel</a> &amp;&#160;</td>
+ <td class="paramname"><em>rhs</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Assignment operator not implemented, ScreenPanels should not be copied. </p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a7ec514286dbf2fb43f64acd620397e21"></a><!-- doxytag: member="InfoPanel::_checkpointHeadingY" ref="a7ec514286dbf2fb43f64acd620397e21" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">float <a class="el" href="class_info_panel.html#a7ec514286dbf2fb43f64acd620397e21">InfoPanel::_checkpointHeadingY</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The y coordinate of the heading for the number of remaining checkpoints. </p>
+
+<p>Definition at line <a class="el" href="_info_panel_8h_source.html#l00131">131</a> of file <a class="el" href="_info_panel_8h_source.html">InfoPanel.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad118b5f123e590a95b3f390fd9597f02"></a><!-- doxytag: member="InfoPanel::_checkpointValueY" ref="ad118b5f123e590a95b3f390fd9597f02" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">float <a class="el" href="class_info_panel.html#ad118b5f123e590a95b3f390fd9597f02">InfoPanel::_checkpointValueY</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The y coordinate of the text stating the number of remaining checkpoints. </p>
+
+<p>Definition at line <a class="el" href="_info_panel_8h_source.html#l00132">132</a> of file <a class="el" href="_info_panel_8h_source.html">InfoPanel.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a27ac079ed1a39ae672b6ceb9e0974855"></a><!-- doxytag: member="InfoPanel::_colourStore" ref="a27ac079ed1a39ae672b6ceb9e0974855" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_colour_store.html">ColourStore</a> <a class="el" href="class_info_panel.html#a27ac079ed1a39ae672b6ceb9e0974855">InfoPanel::_colourStore</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Caches colours for drawing. </p>
+
+<p>Definition at line <a class="el" href="_info_panel_8h_source.html#l00126">126</a> of file <a class="el" href="_info_panel_8h_source.html">InfoPanel.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a589359c67b30af50338791f8af0e05e0"></a><!-- doxytag: member="InfoPanel::_drawing" ref="a589359c67b30af50338791f8af0e05e0" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_allegro_drawing_init.html">AllegroDrawingInit</a> <a class="el" href="class_info_panel.html#a589359c67b30af50338791f8af0e05e0">InfoPanel::_drawing</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Handles dependencies on Allegro's primitive drawing functions. </p>
+
+<p>Definition at line <a class="el" href="_info_panel_8h_source.html#l00125">125</a> of file <a class="el" href="_info_panel_8h_source.html">InfoPanel.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abb211fac23293e41f23b86fd70df98f0"></a><!-- doxytag: member="InfoPanel::_miniMazeblockWidth" ref="abb211fac23293e41f23b86fd70df98f0" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">float <a class="el" href="class_info_panel.html#abb211fac23293e41f23b86fd70df98f0">InfoPanel::_miniMazeblockWidth</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The width of each <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> block being drawn. </p>
+
+<p>Definition at line <a class="el" href="_info_panel_8h_source.html#l00135">135</a> of file <a class="el" href="_info_panel_8h_source.html">InfoPanel.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad38206daa42c82b45878e6d0c55f2860"></a><!-- doxytag: member="InfoPanel::_miniMazeHeight" ref="ad38206daa42c82b45878e6d0c55f2860" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">float <a class="el" href="class_info_panel.html#ad38206daa42c82b45878e6d0c55f2860">InfoPanel::_miniMazeHeight</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The height of the <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>. </p>
+
+<p>Definition at line <a class="el" href="_info_panel_8h_source.html#l00134">134</a> of file <a class="el" href="_info_panel_8h_source.html">InfoPanel.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7b4bb6cca8549d6a1d1deccc99994b9b"></a><!-- doxytag: member="InfoPanel::_miniMazeY" ref="a7b4bb6cca8549d6a1d1deccc99994b9b" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">float <a class="el" href="class_info_panel.html#a7b4bb6cca8549d6a1d1deccc99994b9b">InfoPanel::_miniMazeY</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The y coordinate of the top of the <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>. </p>
+
+<p>Definition at line <a class="el" href="_info_panel_8h_source.html#l00133">133</a> of file <a class="el" href="_info_panel_8h_source.html">InfoPanel.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a38d023a2b00eafa303de37550cb96817"></a><!-- doxytag: member="InfoPanel::_panelFont" ref="a38d023a2b00eafa303de37550cb96817" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ALLEGRO_FONT* <a class="el" href="class_info_panel.html#a38d023a2b00eafa303de37550cb96817">InfoPanel::_panelFont</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The font being used to write the headings and number of checkpoints remaining. </p>
+
+<p>Definition at line <a class="el" href="_info_panel_8h_source.html#l00137">137</a> of file <a class="el" href="_info_panel_8h_source.html">InfoPanel.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0c85348f8471d86da73772f86a62f84c"></a><!-- doxytag: member="InfoPanel::_petrolGuageHeight" ref="a0c85348f8471d86da73772f86a62f84c" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">float <a class="el" href="class_info_panel.html#a0c85348f8471d86da73772f86a62f84c">InfoPanel::_petrolGuageHeight</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The height of the rectangle that is the petrol guage. </p>
+
+<p>Definition at line <a class="el" href="_info_panel_8h_source.html#l00130">130</a> of file <a class="el" href="_info_panel_8h_source.html">InfoPanel.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a29976100c8fc5c130be713dfb5c2807e"></a><!-- doxytag: member="InfoPanel::_petrolGuageY" ref="a29976100c8fc5c130be713dfb5c2807e" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">float <a class="el" href="class_info_panel.html#a29976100c8fc5c130be713dfb5c2807e">InfoPanel::_petrolGuageY</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The y coordinate of top of the petrol guage. </p>
+
+<p>Definition at line <a class="el" href="_info_panel_8h_source.html#l00129">129</a> of file <a class="el" href="_info_panel_8h_source.html">InfoPanel.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5ab76703538ad6e396a21ea8fb47d23d"></a><!-- doxytag: member="InfoPanel::_petrolHeadingY" ref="a5ab76703538ad6e396a21ea8fb47d23d" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">float <a class="el" href="class_info_panel.html#a5ab76703538ad6e396a21ea8fb47d23d">InfoPanel::_petrolHeadingY</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The y coordinate of the heading for the petrol guage. </p>
+
+<p>Definition at line <a class="el" href="_info_panel_8h_source.html#l00128">128</a> of file <a class="el" href="_info_panel_8h_source.html">InfoPanel.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>source/presentation/<a class="el" href="_info_panel_8h_source.html">InfoPanel.h</a></li>
+<li>source/presentation/<a class="el" href="_info_panel_8cpp_source.html">InfoPanel.cpp</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_info_panel.png b/docs/html/class_info_panel.png
new file mode 100644
index 0000000..3a03eb5
--- /dev/null
+++ b/docs/html/class_info_panel.png
Binary files differ
diff --git a/docs/html/class_install_failure.html b/docs/html/class_install_failure.html
new file mode 100644
index 0000000..b858839
--- /dev/null
+++ b/docs/html/class_install_failure.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: InstallFailure Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">InstallFailure Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="InstallFailure" -->
+<p>Exception to be thrown if any component of Allegro fails to install at runtime.
+ <a href="class_install_failure.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_allegro_wrappers_8h_source.html">AllegroWrappers.h</a>&gt;</code></p>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Exception to be thrown if any component of Allegro fails to install at runtime. </p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_allegro_wrappers_8h_source.html#l00015">15</a> of file <a class="el" href="_allegro_wrappers_8h_source.html">AllegroWrappers.h</a>.</p>
+</div><hr/>The documentation for this class was generated from the following file:<ul>
+<li>source/logic/<a class="el" href="_allegro_wrappers_8h_source.html">AllegroWrappers.h</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_keyboard_handler-members.html b/docs/html/class_keyboard_handler-members.html
new file mode 100644
index 0000000..e299895
--- /dev/null
+++ b/docs/html/class_keyboard_handler-members.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Member List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">KeyboardHandler Member List</div> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="class_keyboard_handler.html">KeyboardHandler</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="class_keyboard_handler.html#aa6d1c75e1a98d4aae96d8ac1c8aaa539">_down</a></td><td><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_keyboard_handler.html#a0ec33ec0de48e563e9137294fb7577da">_keyboard</a></td><td><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_keyboard_handler.html#a44116ed8745f3a3360e1d7c29ea86d56">_keyboardEvents</a></td><td><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_keyboard_handler.html#a3bc780470d7cbaf9f4ea239e0613ce3c">_left</a></td><td><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_keyboard_handler.html#a90120a85c62481b3a2c0330511cffbac">_previousFacing</a></td><td><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_keyboard_handler.html#a81d37831d958ff21c2ce08cfa97ca420">_right</a></td><td><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_keyboard_handler.html#a7769dc815c493fb5962d52c3d5bc7b16">_smokescreen</a></td><td><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_keyboard_handler.html#ad323844aad47f1bc263ec2fd4a19ac3a">_up</a></td><td><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_keyboard_handler.html#a3d8d985fdc3c3ac543e84647967f78e4">DOWN_KEY</a></td><td><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_keyboard_handler.html#ae17ed4bf0abae7d95f9b772a6d704a70">getFacing</a>()</td><td><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_keyboard_handler.html#ab66797a37a1c54a630187519870d9a5b">getSmokescreen</a>()</td><td><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_keyboard_handler.html#acd0d5781016f792207464bb720d2f994">KeyboardHandler</a>(Maze::Direction currentFacing)</td><td><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_keyboard_handler.html#a8942a24f122f96b2b5d7c91f1c6ff332">KeyboardHandler</a>(const KeyboardHandler &amp;ref)</td><td><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_keyboard_handler.html#ab285a229f4f5c7c1be5504fdb629e10a">LEFT_KEY</a></td><td><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_keyboard_handler.html#a5135c450b82394496457a0a51d5240f5">operator=</a>(const KeyboardHandler &amp;rhs)</td><td><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_keyboard_handler.html#a0822e8b6338b01cb09d08589d778af86">RIGHT_KEY</a></td><td><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_keyboard_handler.html#a2de5780311975180c0b78e7b0457eae1">SMOKESCREEN_KEY</a></td><td><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_keyboard_handler.html#a3ed342ff89f15b752a9957fd435e9094">UP_KEY</a></td><td><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_keyboard_handler.html#a9f53a546420f3d02363c9e1e4e346420">updateFlags</a>()</td><td><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_keyboard_handler.html#ab090fe5afdee856604b0aa0d9eb918a4">~KeyboardHandler</a>()</td><td><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a></td><td></td></tr>
+</table></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_keyboard_handler.html b/docs/html/class_keyboard_handler.html
new file mode 100644
index 0000000..97b0817
--- /dev/null
+++ b/docs/html/class_keyboard_handler.html
@@ -0,0 +1,559 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: KeyboardHandler Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pri-methods">Private Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> &#124;
+<a href="#pri-static-attribs">Static Private Attributes</a> </div>
+ <div class="headertitle">
+<div class="title">KeyboardHandler Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="KeyboardHandler" -->
+<p>Class for handling keyboard related game inputs from the player.
+ <a href="class_keyboard_handler.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_keyboard_handler_8h_source.html">KeyboardHandler.h</a>&gt;</code></p>
+
+<p><a href="class_keyboard_handler-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keyboard_handler.html#acd0d5781016f792207464bb720d2f994">KeyboardHandler</a> (<a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f">Maze::Direction</a> currentFacing)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a <a class="el" href="class_keyboard_handler.html" title="Class for handling keyboard related game inputs from the player.">KeyboardHandler</a> with a given initial state. <a href="#acd0d5781016f792207464bb720d2f994"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keyboard_handler.html#a8942a24f122f96b2b5d7c91f1c6ff332">KeyboardHandler</a> (const <a class="el" href="class_keyboard_handler.html">KeyboardHandler</a> &amp;ref)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor that ensures that a copy of a <a class="el" href="class_keyboard_handler.html" title="Class for handling keyboard related game inputs from the player.">KeyboardHandler</a> will have its own event queue. <a href="#a8942a24f122f96b2b5d7c91f1c6ff332"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keyboard_handler.html#a5135c450b82394496457a0a51d5240f5">operator=</a> (const <a class="el" href="class_keyboard_handler.html">KeyboardHandler</a> &amp;rhs)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator that ensures that an assigned <a class="el" href="class_keyboard_handler.html" title="Class for handling keyboard related game inputs from the player.">KeyboardHandler</a> will have its own event queue. <a href="#a5135c450b82394496457a0a51d5240f5"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keyboard_handler.html#ab090fe5afdee856604b0aa0d9eb918a4">~KeyboardHandler</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Cleans up the keyboard event queue. <a href="#ab090fe5afdee856604b0aa0d9eb918a4"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f">Maze::Direction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keyboard_handler.html#ae17ed4bf0abae7d95f9b772a6d704a70">getFacing</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gives the last direction that the player entered on the keyboard. <a href="#ae17ed4bf0abae7d95f9b772a6d704a70"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keyboard_handler.html#ab66797a37a1c54a630187519870d9a5b">getSmokescreen</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gives whether or not the key for creating a <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> is currently pressed. <a href="#ab66797a37a1c54a630187519870d9a5b"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-methods"></a>
+Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keyboard_handler.html#a9f53a546420f3d02363c9e1e4e346420">updateFlags</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Processes all pending keyboard inputs, and updates flags as appropriate. <a href="#a9f53a546420f3d02363c9e1e4e346420"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_allegro_keyboard_init.html">AllegroKeyboardInit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keyboard_handler.html#a0ec33ec0de48e563e9137294fb7577da">_keyboard</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensures that dependencies on the Allegro keyboard library are installed. <a href="#a0ec33ec0de48e563e9137294fb7577da"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keyboard_handler.html#ad323844aad47f1bc263ec2fd4a19ac3a">_up</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">True if the up arrow key is depressed. <a href="#ad323844aad47f1bc263ec2fd4a19ac3a"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keyboard_handler.html#aa6d1c75e1a98d4aae96d8ac1c8aaa539">_down</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">True if the down arrow key is depressed. <a href="#aa6d1c75e1a98d4aae96d8ac1c8aaa539"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keyboard_handler.html#a3bc780470d7cbaf9f4ea239e0613ce3c">_left</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">True if the left arrow key is depressed. <a href="#a3bc780470d7cbaf9f4ea239e0613ce3c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keyboard_handler.html#a81d37831d958ff21c2ce08cfa97ca420">_right</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">True if the right arrow key is depressed. <a href="#a81d37831d958ff21c2ce08cfa97ca420"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keyboard_handler.html#a7769dc815c493fb5962d52c3d5bc7b16">_smokescreen</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">True if the smokescreen key is depressed. <a href="#a7769dc815c493fb5962d52c3d5bc7b16"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f">Maze::Direction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keyboard_handler.html#a90120a85c62481b3a2c0330511cffbac">_previousFacing</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The direction that was returned on the last call of getFacing. <a href="#a90120a85c62481b3a2c0330511cffbac"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ALLEGRO_EVENT_QUEUE *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keyboard_handler.html#a44116ed8745f3a3360e1d7c29ea86d56">_keyboardEvents</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Queue for all keyboard events. <a href="#a44116ed8745f3a3360e1d7c29ea86d56"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-static-attribs"></a>
+Static Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keyboard_handler.html#a3ed342ff89f15b752a9957fd435e9094">UP_KEY</a> = ALLEGRO_KEY_UP</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Key that must be pressed to turn up. <a href="#a3ed342ff89f15b752a9957fd435e9094"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keyboard_handler.html#a3d8d985fdc3c3ac543e84647967f78e4">DOWN_KEY</a> = ALLEGRO_KEY_DOWN</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Key that must be pressed to turn down. <a href="#a3d8d985fdc3c3ac543e84647967f78e4"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keyboard_handler.html#ab285a229f4f5c7c1be5504fdb629e10a">LEFT_KEY</a> = ALLEGRO_KEY_LEFT</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Key that must be pressed to turn left. <a href="#ab285a229f4f5c7c1be5504fdb629e10a"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keyboard_handler.html#a0822e8b6338b01cb09d08589d778af86">RIGHT_KEY</a> = ALLEGRO_KEY_RIGHT</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Key that must be pressed to turn right. <a href="#a0822e8b6338b01cb09d08589d778af86"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keyboard_handler.html#a2de5780311975180c0b78e7b0457eae1">SMOKESCREEN_KEY</a> = ALLEGRO_KEY_SPACE</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Key that must be pressed to create a smokescreen. <a href="#a2de5780311975180c0b78e7b0457eae1"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Class for handling keyboard related game inputs from the player. </p>
+<p>Written with controlling a <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> in mind. The handler keeps track of the last direction pushed and responds to requests from the <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> for which direction it should face next, and whether the player is pressing the <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> button.</p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_keyboard_handler_8h_source.html#l00019">19</a> of file <a class="el" href="_keyboard_handler_8h_source.html">KeyboardHandler.h</a>.</p>
+</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="acd0d5781016f792207464bb720d2f994"></a><!-- doxytag: member="KeyboardHandler::KeyboardHandler" ref="acd0d5781016f792207464bb720d2f994" args="(Maze::Direction currentFacing)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">KeyboardHandler::KeyboardHandler </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f">Maze::Direction</a>&#160;</td>
+ <td class="paramname"><em>currentFacing</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Creates a <a class="el" href="class_keyboard_handler.html" title="Class for handling keyboard related game inputs from the player.">KeyboardHandler</a> with a given initial state. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">currentFacing</td><td>The initial value for the previous facing of the object being controlled. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_keyboard_handler_8cpp_source.html#l00003">3</a> of file <a class="el" href="_keyboard_handler_8cpp_source.html">KeyboardHandler.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8942a24f122f96b2b5d7c91f1c6ff332"></a><!-- doxytag: member="KeyboardHandler::KeyboardHandler" ref="a8942a24f122f96b2b5d7c91f1c6ff332" args="(const KeyboardHandler &amp;ref)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">KeyboardHandler::KeyboardHandler </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_keyboard_handler.html">KeyboardHandler</a> &amp;&#160;</td>
+ <td class="paramname"><em>ref</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Copy constructor that ensures that a copy of a <a class="el" href="class_keyboard_handler.html" title="Class for handling keyboard related game inputs from the player.">KeyboardHandler</a> will have its own event queue. </p>
+
+<p>Definition at line <a class="el" href="_keyboard_handler_8cpp_source.html#l00015">15</a> of file <a class="el" href="_keyboard_handler_8cpp_source.html">KeyboardHandler.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab090fe5afdee856604b0aa0d9eb918a4"></a><!-- doxytag: member="KeyboardHandler::~KeyboardHandler" ref="ab090fe5afdee856604b0aa0d9eb918a4" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">KeyboardHandler::~KeyboardHandler </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Cleans up the keyboard event queue. </p>
+
+<p>Definition at line <a class="el" href="_keyboard_handler_8cpp_source.html#l00044">44</a> of file <a class="el" href="_keyboard_handler_8cpp_source.html">KeyboardHandler.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="ae17ed4bf0abae7d95f9b772a6d704a70"></a><!-- doxytag: member="KeyboardHandler::getFacing" ref="ae17ed4bf0abae7d95f9b772a6d704a70" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f">Maze::Direction</a> KeyboardHandler::getFacing </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Gives the last direction that the player entered on the keyboard. </p>
+<p>All pending keyboard events are processed, then a key out of those currently depressed is returned. The precendence for keys held down (up, down, left, then right) is arbitrary, since the player should not be holding down more than one arrow key at a time. If no keys are currently depressed, the value returned on the last call is returned again.</p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The direction that the player has chosen through pressing arrow keys. </dd></dl>
+
+<p>Definition at line <a class="el" href="_keyboard_handler_8cpp_source.html#l00099">99</a> of file <a class="el" href="_keyboard_handler_8cpp_source.html">KeyboardHandler.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab66797a37a1c54a630187519870d9a5b"></a><!-- doxytag: member="KeyboardHandler::getSmokescreen" ref="ab66797a37a1c54a630187519870d9a5b" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool KeyboardHandler::getSmokescreen </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Gives whether or not the key for creating a <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> is currently pressed. </p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>True if a <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> should be created. </dd></dl>
+
+<p>Definition at line <a class="el" href="_keyboard_handler_8cpp_source.html#l00111">111</a> of file <a class="el" href="_keyboard_handler_8cpp_source.html">KeyboardHandler.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5135c450b82394496457a0a51d5240f5"></a><!-- doxytag: member="KeyboardHandler::operator=" ref="a5135c450b82394496457a0a51d5240f5" args="(const KeyboardHandler &amp;rhs)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a> &amp; KeyboardHandler::operator= </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_keyboard_handler.html">KeyboardHandler</a> &amp;&#160;</td>
+ <td class="paramname"><em>rhs</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Assignment operator that ensures that an assigned <a class="el" href="class_keyboard_handler.html" title="Class for handling keyboard related game inputs from the player.">KeyboardHandler</a> will have its own event queue. </p>
+
+<p>Definition at line <a class="el" href="_keyboard_handler_8cpp_source.html#l00027">27</a> of file <a class="el" href="_keyboard_handler_8cpp_source.html">KeyboardHandler.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9f53a546420f3d02363c9e1e4e346420"></a><!-- doxytag: member="KeyboardHandler::updateFlags" ref="a9f53a546420f3d02363c9e1e4e346420" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void KeyboardHandler::updateFlags </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Processes all pending keyboard inputs, and updates flags as appropriate. </p>
+
+<p>Definition at line <a class="el" href="_keyboard_handler_8cpp_source.html#l00049">49</a> of file <a class="el" href="_keyboard_handler_8cpp_source.html">KeyboardHandler.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="aa6d1c75e1a98d4aae96d8ac1c8aaa539"></a><!-- doxytag: member="KeyboardHandler::_down" ref="aa6d1c75e1a98d4aae96d8ac1c8aaa539" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool <a class="el" href="class_keyboard_handler.html#aa6d1c75e1a98d4aae96d8ac1c8aaa539">KeyboardHandler::_down</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>True if the down arrow key is depressed. </p>
+
+<p>Definition at line <a class="el" href="_keyboard_handler_8h_source.html#l00069">69</a> of file <a class="el" href="_keyboard_handler_8h_source.html">KeyboardHandler.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0ec33ec0de48e563e9137294fb7577da"></a><!-- doxytag: member="KeyboardHandler::_keyboard" ref="a0ec33ec0de48e563e9137294fb7577da" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_allegro_keyboard_init.html">AllegroKeyboardInit</a> <a class="el" href="class_keyboard_handler.html#a0ec33ec0de48e563e9137294fb7577da">KeyboardHandler::_keyboard</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Ensures that dependencies on the Allegro keyboard library are installed. </p>
+
+<p>Definition at line <a class="el" href="_keyboard_handler_8h_source.html#l00061">61</a> of file <a class="el" href="_keyboard_handler_8h_source.html">KeyboardHandler.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a44116ed8745f3a3360e1d7c29ea86d56"></a><!-- doxytag: member="KeyboardHandler::_keyboardEvents" ref="a44116ed8745f3a3360e1d7c29ea86d56" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ALLEGRO_EVENT_QUEUE* <a class="el" href="class_keyboard_handler.html#a44116ed8745f3a3360e1d7c29ea86d56">KeyboardHandler::_keyboardEvents</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Queue for all keyboard events. </p>
+
+<p>Definition at line <a class="el" href="_keyboard_handler_8h_source.html#l00074">74</a> of file <a class="el" href="_keyboard_handler_8h_source.html">KeyboardHandler.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3bc780470d7cbaf9f4ea239e0613ce3c"></a><!-- doxytag: member="KeyboardHandler::_left" ref="a3bc780470d7cbaf9f4ea239e0613ce3c" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool <a class="el" href="class_keyboard_handler.html#a3bc780470d7cbaf9f4ea239e0613ce3c">KeyboardHandler::_left</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>True if the left arrow key is depressed. </p>
+
+<p>Definition at line <a class="el" href="_keyboard_handler_8h_source.html#l00070">70</a> of file <a class="el" href="_keyboard_handler_8h_source.html">KeyboardHandler.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a90120a85c62481b3a2c0330511cffbac"></a><!-- doxytag: member="KeyboardHandler::_previousFacing" ref="a90120a85c62481b3a2c0330511cffbac" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f">Maze::Direction</a> <a class="el" href="class_keyboard_handler.html#a90120a85c62481b3a2c0330511cffbac">KeyboardHandler::_previousFacing</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The direction that was returned on the last call of getFacing. </p>
+
+<p>Definition at line <a class="el" href="_keyboard_handler_8h_source.html#l00073">73</a> of file <a class="el" href="_keyboard_handler_8h_source.html">KeyboardHandler.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a81d37831d958ff21c2ce08cfa97ca420"></a><!-- doxytag: member="KeyboardHandler::_right" ref="a81d37831d958ff21c2ce08cfa97ca420" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool <a class="el" href="class_keyboard_handler.html#a81d37831d958ff21c2ce08cfa97ca420">KeyboardHandler::_right</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>True if the right arrow key is depressed. </p>
+
+<p>Definition at line <a class="el" href="_keyboard_handler_8h_source.html#l00071">71</a> of file <a class="el" href="_keyboard_handler_8h_source.html">KeyboardHandler.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7769dc815c493fb5962d52c3d5bc7b16"></a><!-- doxytag: member="KeyboardHandler::_smokescreen" ref="a7769dc815c493fb5962d52c3d5bc7b16" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool <a class="el" href="class_keyboard_handler.html#a7769dc815c493fb5962d52c3d5bc7b16">KeyboardHandler::_smokescreen</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>True if the smokescreen key is depressed. </p>
+
+<p>Definition at line <a class="el" href="_keyboard_handler_8h_source.html#l00072">72</a> of file <a class="el" href="_keyboard_handler_8h_source.html">KeyboardHandler.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad323844aad47f1bc263ec2fd4a19ac3a"></a><!-- doxytag: member="KeyboardHandler::_up" ref="ad323844aad47f1bc263ec2fd4a19ac3a" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool <a class="el" href="class_keyboard_handler.html#ad323844aad47f1bc263ec2fd4a19ac3a">KeyboardHandler::_up</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>True if the up arrow key is depressed. </p>
+
+<p>Definition at line <a class="el" href="_keyboard_handler_8h_source.html#l00068">68</a> of file <a class="el" href="_keyboard_handler_8h_source.html">KeyboardHandler.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3d8d985fdc3c3ac543e84647967f78e4"></a><!-- doxytag: member="KeyboardHandler::DOWN_KEY" ref="a3d8d985fdc3c3ac543e84647967f78e4" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const int <a class="el" href="class_keyboard_handler.html#a3d8d985fdc3c3ac543e84647967f78e4">KeyboardHandler::DOWN_KEY</a> = ALLEGRO_KEY_DOWN<code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Key that must be pressed to turn down. </p>
+
+<p>Definition at line <a class="el" href="_keyboard_handler_8h_source.html#l00077">77</a> of file <a class="el" href="_keyboard_handler_8h_source.html">KeyboardHandler.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab285a229f4f5c7c1be5504fdb629e10a"></a><!-- doxytag: member="KeyboardHandler::LEFT_KEY" ref="ab285a229f4f5c7c1be5504fdb629e10a" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const int <a class="el" href="class_keyboard_handler.html#ab285a229f4f5c7c1be5504fdb629e10a">KeyboardHandler::LEFT_KEY</a> = ALLEGRO_KEY_LEFT<code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Key that must be pressed to turn left. </p>
+
+<p>Definition at line <a class="el" href="_keyboard_handler_8h_source.html#l00078">78</a> of file <a class="el" href="_keyboard_handler_8h_source.html">KeyboardHandler.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0822e8b6338b01cb09d08589d778af86"></a><!-- doxytag: member="KeyboardHandler::RIGHT_KEY" ref="a0822e8b6338b01cb09d08589d778af86" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const int <a class="el" href="class_keyboard_handler.html#a0822e8b6338b01cb09d08589d778af86">KeyboardHandler::RIGHT_KEY</a> = ALLEGRO_KEY_RIGHT<code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Key that must be pressed to turn right. </p>
+
+<p>Definition at line <a class="el" href="_keyboard_handler_8h_source.html#l00079">79</a> of file <a class="el" href="_keyboard_handler_8h_source.html">KeyboardHandler.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2de5780311975180c0b78e7b0457eae1"></a><!-- doxytag: member="KeyboardHandler::SMOKESCREEN_KEY" ref="a2de5780311975180c0b78e7b0457eae1" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const int <a class="el" href="class_keyboard_handler.html#a2de5780311975180c0b78e7b0457eae1">KeyboardHandler::SMOKESCREEN_KEY</a> = ALLEGRO_KEY_SPACE<code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Key that must be pressed to create a smokescreen. </p>
+
+<p>Definition at line <a class="el" href="_keyboard_handler_8h_source.html#l00080">80</a> of file <a class="el" href="_keyboard_handler_8h_source.html">KeyboardHandler.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3ed342ff89f15b752a9957fd435e9094"></a><!-- doxytag: member="KeyboardHandler::UP_KEY" ref="a3ed342ff89f15b752a9957fd435e9094" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const int <a class="el" href="class_keyboard_handler.html#a3ed342ff89f15b752a9957fd435e9094">KeyboardHandler::UP_KEY</a> = ALLEGRO_KEY_UP<code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Key that must be pressed to turn up. </p>
+
+<p>Definition at line <a class="el" href="_keyboard_handler_8h_source.html#l00076">76</a> of file <a class="el" href="_keyboard_handler_8h_source.html">KeyboardHandler.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>source/presentation/<a class="el" href="_keyboard_handler_8h_source.html">KeyboardHandler.h</a></li>
+<li>source/presentation/<a class="el" href="_keyboard_handler_8cpp_source.html">KeyboardHandler.cpp</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_level_reader-members.html b/docs/html/class_level_reader-members.html
new file mode 100644
index 0000000..d53251c
--- /dev/null
+++ b/docs/html/class_level_reader-members.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Member List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">LevelReader Member List</div> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="class_level_reader.html">LevelReader</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="class_level_reader.html#a233910d4cd16ff624d76b06ca8071f7e">_filename</a></td><td><a class="el" href="class_level_reader.html">LevelReader</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_level_reader.html#ad401a0f48a3eac678c0f53e95ea1f354">CHECKPOINT_CHAR</a></td><td><a class="el" href="class_level_reader.html">LevelReader</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_level_reader.html#a67d3735d6a3e40fa61527dd1ff7cfa22">ENEMY_CHAR</a></td><td><a class="el" href="class_level_reader.html">LevelReader</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_level_reader.html#ad093a54f9753a22dd66748b82a08c1fd">LevelReader</a>(string filename)</td><td><a class="el" href="class_level_reader.html">LevelReader</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_level_reader.html#a8de3d894f4e67a7a0f66f6dfc3a7fbe1">PLAYER_CHAR</a></td><td><a class="el" href="class_level_reader.html">LevelReader</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_level_reader.html#a27277149f3270e040c8ffeadbca79758">readLevel</a>(Maze &amp;maze, list&lt; PlayerCar &gt; &amp;players, list&lt; EnemyCar &gt; &amp;enemies, list&lt; Checkpoint &gt; &amp;checkpoints, list&lt; Rock &gt; &amp;rocks)</td><td><a class="el" href="class_level_reader.html">LevelReader</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_level_reader.html#a321a0fcc5a9ae36a394782be4c71bd7d">ROCK_CHAR</a></td><td><a class="el" href="class_level_reader.html">LevelReader</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_level_reader.html#a250f9fede6584dc196acce86a8e217f9">WALL_CHAR</a></td><td><a class="el" href="class_level_reader.html">LevelReader</a></td><td><code> [private, static]</code></td></tr>
+</table></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_level_reader.html b/docs/html/class_level_reader.html
new file mode 100644
index 0000000..07bc827
--- /dev/null
+++ b/docs/html/class_level_reader.html
@@ -0,0 +1,347 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: LevelReader Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> &#124;
+<a href="#pri-static-attribs">Static Private Attributes</a> </div>
+ <div class="headertitle">
+<div class="title">LevelReader Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="LevelReader" -->
+<p>Reads the game objects from a text file and calls relevant constructors.
+ <a href="class_level_reader.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_level_reader_8h_source.html">LevelReader.h</a>&gt;</code></p>
+
+<p><a href="class_level_reader-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_level_reader.html#ad093a54f9753a22dd66748b82a08c1fd">LevelReader</a> (string filename)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor that stores the path of the file containing the level to be read with the readLevel function. <a href="#ad093a54f9753a22dd66748b82a08c1fd"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_level_reader.html#a27277149f3270e040c8ffeadbca79758">readLevel</a> (<a class="el" href="class_maze.html">Maze</a> &amp;maze, list&lt; <a class="el" href="class_player_car.html">PlayerCar</a> &gt; &amp;players, list&lt; <a class="el" href="class_enemy_car.html">EnemyCar</a> &gt; &amp;enemies, list&lt; <a class="el" href="class_checkpoint.html">Checkpoint</a> &gt; &amp;checkpoints, list&lt; <a class="el" href="class_rock.html">Rock</a> &gt; &amp;rocks)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to read the chosen file into the data structures used in the game. <a href="#a27277149f3270e040c8ffeadbca79758"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_level_reader.html#a233910d4cd16ff624d76b06ca8071f7e">_filename</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Path of the file containing the level. <a href="#a233910d4cd16ff624d76b06ca8071f7e"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-static-attribs"></a>
+Static Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_level_reader.html#a8de3d894f4e67a7a0f66f6dfc3a7fbe1">PLAYER_CHAR</a> = '@'</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Character represented a <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> in the level file. <a href="#a8de3d894f4e67a7a0f66f6dfc3a7fbe1"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_level_reader.html#a67d3735d6a3e40fa61527dd1ff7cfa22">ENEMY_CHAR</a> = 'X'</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Character represented an <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> in the level file. <a href="#a67d3735d6a3e40fa61527dd1ff7cfa22"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_level_reader.html#ad401a0f48a3eac678c0f53e95ea1f354">CHECKPOINT_CHAR</a> = 'P'</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Character represented a <a class="el" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a> in the level file. <a href="#ad401a0f48a3eac678c0f53e95ea1f354"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_level_reader.html#a321a0fcc5a9ae36a394782be4c71bd7d">ROCK_CHAR</a> = 'O'</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Character represented a <a class="el" href="class_rock.html" title="A game object that acts as an obstacle to the player.">Rock</a> in the level file. <a href="#a321a0fcc5a9ae36a394782be4c71bd7d"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_level_reader.html#a250f9fede6584dc196acce86a8e217f9">WALL_CHAR</a> = '#'</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Character represented a solid part of the maze in the level file. <a href="#a250f9fede6584dc196acce86a8e217f9"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Reads the game objects from a text file and calls relevant constructors. </p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_level_reader_8h_source.html#l00035">35</a> of file <a class="el" href="_level_reader_8h_source.html">LevelReader.h</a>.</p>
+</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="ad093a54f9753a22dd66748b82a08c1fd"></a><!-- doxytag: member="LevelReader::LevelReader" ref="ad093a54f9753a22dd66748b82a08c1fd" args="(string filename)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LevelReader::LevelReader </td>
+ <td>(</td>
+ <td class="paramtype">string&#160;</td>
+ <td class="paramname"><em>filename</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Constructor that stores the path of the file containing the level to be read with the readLevel function. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">filename</td><td>The path of the file containing the level. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_level_reader_8cpp_source.html#l00003">3</a> of file <a class="el" href="_level_reader_8cpp_source.html">LevelReader.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a27277149f3270e040c8ffeadbca79758"></a><!-- doxytag: member="LevelReader::readLevel" ref="a27277149f3270e040c8ffeadbca79758" args="(Maze &amp;maze, list&lt; PlayerCar &gt; &amp;players, list&lt; EnemyCar &gt; &amp;enemies, list&lt; Checkpoint &gt; &amp;checkpoints, list&lt; Rock &gt; &amp;rocks)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void LevelReader::readLevel </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_maze.html">Maze</a> &amp;&#160;</td>
+ <td class="paramname"><em>maze</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">list&lt; <a class="el" href="class_player_car.html">PlayerCar</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>players</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">list&lt; <a class="el" href="class_enemy_car.html">EnemyCar</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>enemies</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">list&lt; <a class="el" href="class_checkpoint.html">Checkpoint</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>checkpoints</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">list&lt; <a class="el" href="class_rock.html">Rock</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>rocks</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Function to read the chosen file into the data structures used in the game. </p>
+<p>Each character in the file is iterated through, and added to the appropriate data structure if it matches one of the defined constants. Lists should be cleared prior to calling this function.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">maze</td><td>Object representing the walls, populated with a vector of x,y pairs. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">players</td><td>List representing the player(s) in the game. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">enemies</td><td>List representing the enemies in the game. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">checkpoints</td><td>List representing the checkpoints in the game. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">rocks</td><td>List representing the rocks in the game. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_level_reader_8cpp_source.html#l00007">7</a> of file <a class="el" href="_level_reader_8cpp_source.html">LevelReader.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a233910d4cd16ff624d76b06ca8071f7e"></a><!-- doxytag: member="LevelReader::_filename" ref="a233910d4cd16ff624d76b06ca8071f7e" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">string <a class="el" href="class_level_reader.html#a233910d4cd16ff624d76b06ca8071f7e">LevelReader::_filename</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Path of the file containing the level. </p>
+
+<p>Definition at line <a class="el" href="_level_reader_8h_source.html#l00068">68</a> of file <a class="el" href="_level_reader_8h_source.html">LevelReader.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad401a0f48a3eac678c0f53e95ea1f354"></a><!-- doxytag: member="LevelReader::CHECKPOINT_CHAR" ref="ad401a0f48a3eac678c0f53e95ea1f354" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const char <a class="el" href="class_level_reader.html#ad401a0f48a3eac678c0f53e95ea1f354">LevelReader::CHECKPOINT_CHAR</a> = 'P'<code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Character represented a <a class="el" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a> in the level file. </p>
+
+<p>Definition at line <a class="el" href="_level_reader_8h_source.html#l00064">64</a> of file <a class="el" href="_level_reader_8h_source.html">LevelReader.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a67d3735d6a3e40fa61527dd1ff7cfa22"></a><!-- doxytag: member="LevelReader::ENEMY_CHAR" ref="a67d3735d6a3e40fa61527dd1ff7cfa22" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const char <a class="el" href="class_level_reader.html#a67d3735d6a3e40fa61527dd1ff7cfa22">LevelReader::ENEMY_CHAR</a> = 'X'<code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Character represented an <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> in the level file. </p>
+
+<p>Definition at line <a class="el" href="_level_reader_8h_source.html#l00063">63</a> of file <a class="el" href="_level_reader_8h_source.html">LevelReader.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8de3d894f4e67a7a0f66f6dfc3a7fbe1"></a><!-- doxytag: member="LevelReader::PLAYER_CHAR" ref="a8de3d894f4e67a7a0f66f6dfc3a7fbe1" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const char <a class="el" href="class_level_reader.html#a8de3d894f4e67a7a0f66f6dfc3a7fbe1">LevelReader::PLAYER_CHAR</a> = '@'<code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Character represented a <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> in the level file. </p>
+
+<p>Definition at line <a class="el" href="_level_reader_8h_source.html#l00062">62</a> of file <a class="el" href="_level_reader_8h_source.html">LevelReader.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a321a0fcc5a9ae36a394782be4c71bd7d"></a><!-- doxytag: member="LevelReader::ROCK_CHAR" ref="a321a0fcc5a9ae36a394782be4c71bd7d" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const char <a class="el" href="class_level_reader.html#a321a0fcc5a9ae36a394782be4c71bd7d">LevelReader::ROCK_CHAR</a> = 'O'<code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Character represented a <a class="el" href="class_rock.html" title="A game object that acts as an obstacle to the player.">Rock</a> in the level file. </p>
+
+<p>Definition at line <a class="el" href="_level_reader_8h_source.html#l00065">65</a> of file <a class="el" href="_level_reader_8h_source.html">LevelReader.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a250f9fede6584dc196acce86a8e217f9"></a><!-- doxytag: member="LevelReader::WALL_CHAR" ref="a250f9fede6584dc196acce86a8e217f9" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const char <a class="el" href="class_level_reader.html#a250f9fede6584dc196acce86a8e217f9">LevelReader::WALL_CHAR</a> = '#'<code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Character represented a solid part of the maze in the level file. </p>
+
+<p>Definition at line <a class="el" href="_level_reader_8h_source.html#l00066">66</a> of file <a class="el" href="_level_reader_8h_source.html">LevelReader.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>source/data/<a class="el" href="_level_reader_8h_source.html">LevelReader.h</a></li>
+<li>source/data/<a class="el" href="_level_reader_8cpp_source.html">LevelReader.cpp</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_limited_time_object-members.html b/docs/html/class_limited_time_object-members.html
new file mode 100644
index 0000000..4461dce
--- /dev/null
+++ b/docs/html/class_limited_time_object-members.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Member List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">LimitedTimeObject Member List</div> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="class_limited_time_object.html">LimitedTimeObject</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#adc4a399cc59d5706f75748fb3846faec">_destroyed</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a24d36b1a64504298700a7ae7111fad5d">_facing</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a8b0aa105507a8a9559bbc2a66198ccd6">_image</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_limited_time_object.html#a0b6a4bb0c76b637fba1db498ce084d3a">_remainingTime</a></td><td><a class="el" href="class_limited_time_object.html">LimitedTimeObject</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614">_x</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e">_y</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a266871f6c0220f6b3c902075ebff8eea">destroyed</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a2549066ec4dc8f4ca2d3a8c5d5729324">facing</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a26cba01b9c2d301d4ee89a98b9396d67">GameObject</a>(double x, double y, BitmapStore::Image image, Maze::Direction facing=Maze::UP)</td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a05e352e3e01e774892beee0503fdb349">image</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_limited_time_object.html#a0993f1696ed62abc3ef7856e4da7ae0e">LimitedTimeObject</a>(double x, double y, BitmapStore::Image image, int time)</td><td><a class="el" href="class_limited_time_object.html">LimitedTimeObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_limited_time_object.html#ad81a1c9aba4e21dfa40b9e6d881aba4e">update</a>()</td><td><a class="el" href="class_limited_time_object.html">LimitedTimeObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8">x</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b">y</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+</table></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_limited_time_object.html b/docs/html/class_limited_time_object.html
new file mode 100644
index 0000000..7c34b4b
--- /dev/null
+++ b/docs/html/class_limited_time_object.html
@@ -0,0 +1,247 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: LimitedTimeObject Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> </div>
+ <div class="headertitle">
+<div class="title">LimitedTimeObject Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="LimitedTimeObject" --><!-- doxytag: inherits="GameObject" -->
+<p>Parent class for GameObjects that are created, exist for a given time, and are then destroyed.
+ <a href="class_limited_time_object.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_limited_time_object_8h_source.html">LimitedTimeObject.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for LimitedTimeObject:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="class_limited_time_object.png" usemap="#LimitedTimeObject_map" alt=""/>
+ <map id="LimitedTimeObject_map" name="LimitedTimeObject_map">
+<area href="class_game_object.html" title="Parent class for objects that are placed in the maze." alt="GameObject" shape="rect" coords="76,0,219,24"/>
+<area href="class_destroyed_object_popup.html" title="Object that appears on the screen for a short time when another object has been destroyed." alt="DestroyedObjectPopup" shape="rect" coords="0,112,143,136"/>
+<area href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it." alt="Smokescreen" shape="rect" coords="153,112,296,136"/>
+</map>
+ </div></div>
+
+<p><a href="class_limited_time_object-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_limited_time_object.html#a0993f1696ed62abc3ef7856e4da7ae0e">LimitedTimeObject</a> (double x, double y, <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386">BitmapStore::Image</a> image, int time)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a <a class="el" href="class_limited_time_object.html" title="Parent class for GameObjects that are created, exist for a given time, and are then destroyed...">LimitedTimeObject</a> with the given parameters. <a href="#a0993f1696ed62abc3ef7856e4da7ae0e"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_limited_time_object.html#ad81a1c9aba4e21dfa40b9e6d881aba4e">update</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Function that should be run on every iteration of the gameloop. <a href="#ad81a1c9aba4e21dfa40b9e6d881aba4e"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_limited_time_object.html#a0b6a4bb0c76b637fba1db498ce084d3a">_remainingTime</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of times that update still needs to be run before the object is marked for destruction. <a href="#a0b6a4bb0c76b637fba1db498ce084d3a"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Parent class for GameObjects that are created, exist for a given time, and are then destroyed. </p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_limited_time_object_8h_source.html#l00014">14</a> of file <a class="el" href="_limited_time_object_8h_source.html">LimitedTimeObject.h</a>.</p>
+</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a0993f1696ed62abc3ef7856e4da7ae0e"></a><!-- doxytag: member="LimitedTimeObject::LimitedTimeObject" ref="a0993f1696ed62abc3ef7856e4da7ae0e" args="(double x, double y, BitmapStore::Image image, int time)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LimitedTimeObject::LimitedTimeObject </td>
+ <td>(</td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386">BitmapStore::Image</a>&#160;</td>
+ <td class="paramname"><em>image</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>time</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Creates a <a class="el" href="class_limited_time_object.html" title="Parent class for GameObjects that are created, exist for a given time, and are then destroyed...">LimitedTimeObject</a> with the given parameters. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>The x coordinate of the new object. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>The y coordinate of the new object. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">image</td><td>The image that is drawn to represent the object. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">time</td><td>The number of times that the update function is run before the object is destroyed. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_limited_time_object_8cpp_source.html#l00003">3</a> of file <a class="el" href="_limited_time_object_8cpp_source.html">LimitedTimeObject.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="ad81a1c9aba4e21dfa40b9e6d881aba4e"></a><!-- doxytag: member="LimitedTimeObject::update" ref="ad81a1c9aba4e21dfa40b9e6d881aba4e" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void LimitedTimeObject::update </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Function that should be run on every iteration of the gameloop. </p>
+<p>The time remaining is decremented, and the object is marked for destruction when it reaches zero. </p>
+
+<p>Definition at line <a class="el" href="_limited_time_object_8cpp_source.html#l00009">9</a> of file <a class="el" href="_limited_time_object_8cpp_source.html">LimitedTimeObject.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a0b6a4bb0c76b637fba1db498ce084d3a"></a><!-- doxytag: member="LimitedTimeObject::_remainingTime" ref="a0b6a4bb0c76b637fba1db498ce084d3a" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int <a class="el" href="class_limited_time_object.html#a0b6a4bb0c76b637fba1db498ce084d3a">LimitedTimeObject::_remainingTime</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The number of times that update still needs to be run before the object is marked for destruction. </p>
+<p>For example, if the remaining time is 1, then the object is marked on the next update. </p>
+
+<p>Definition at line <a class="el" href="_limited_time_object_8h_source.html#l00042">42</a> of file <a class="el" href="_limited_time_object_8h_source.html">LimitedTimeObject.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>source/logic/<a class="el" href="_limited_time_object_8h_source.html">LimitedTimeObject.h</a></li>
+<li>source/logic/<a class="el" href="_limited_time_object_8cpp_source.html">LimitedTimeObject.cpp</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_limited_time_object.png b/docs/html/class_limited_time_object.png
new file mode 100644
index 0000000..e3d5438
--- /dev/null
+++ b/docs/html/class_limited_time_object.png
Binary files differ
diff --git a/docs/html/class_maze-members.html b/docs/html/class_maze-members.html
new file mode 100644
index 0000000..dfae67a
--- /dev/null
+++ b/docs/html/class_maze-members.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Member List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">Maze Member List</div> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="class_maze.html">Maze</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="class_maze.html#a02f1ff55e76161495bbe11bc4c0e5f54">_height</a></td><td><a class="el" href="class_maze.html">Maze</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_maze.html#a3f0247841ddb8a6b5b8b5eeff86b754a">_wallLocations</a></td><td><a class="el" href="class_maze.html">Maze</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_maze.html#a981c764d7ad04ca06bd8dee472578ce4">_width</a></td><td><a class="el" href="class_maze.html">Maze</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_maze.html#a79cf362b55c21634a93ef6b7d192b77c">backwards</a>(Direction forwards)</td><td><a class="el" href="class_maze.html">Maze</a></td><td><code> [static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_maze.html#aea392ab34f271f56b1746b30aed9588a">BoolGrid</a> typedef</td><td><a class="el" href="class_maze.html">Maze</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f">Direction</a> enum name</td><td><a class="el" href="class_maze.html">Maze</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa89ab143d020541957ab5e0e9cfdd3e23">DOWN</a> enum value</td><td><a class="el" href="class_maze.html">Maze</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8">generateMaze</a>(const vector&lt; pair&lt; int, int &gt; &gt; &amp;walls, int maxObjectX=0, int maxObjectY=0)</td><td><a class="el" href="class_maze.html">Maze</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1">getSolid</a>(const int &amp;x, const int &amp;y) const </td><td><a class="el" href="class_maze.html">Maze</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_maze.html#a53de30abea69713225ab77703e753d81">height</a>() const </td><td><a class="el" href="class_maze.html">Maze</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28faab1a1fe0274cd139b3c0116d8caf458c">LEFT</a> enum value</td><td><a class="el" href="class_maze.html">Maze</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_maze.html#a7ecf1da4b9685f97bf3110a8479e724b">Maze</a>()</td><td><a class="el" href="class_maze.html">Maze</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa699ae3e1d989e9b12bd200aa86e29e9d">RIGHT</a> enum value</td><td><a class="el" href="class_maze.html">Maze</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7">UP</a> enum value</td><td><a class="el" href="class_maze.html">Maze</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_maze.html#a6963ffbb8e10f5ca72ddc749b3f29419">width</a>() const </td><td><a class="el" href="class_maze.html">Maze</a></td><td></td></tr>
+</table></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_maze.html b/docs/html/class_maze.html
new file mode 100644
index 0000000..873efac
--- /dev/null
+++ b/docs/html/class_maze.html
@@ -0,0 +1,450 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Maze Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#pub-types">Public Types</a> &#124;
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pri-types">Private Types</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> </div>
+ <div class="headertitle">
+<div class="title">Maze Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="Maze" -->
+<p>A rectangular 2D boolean array, representing where cars can drive and where they cannot.
+ <a href="class_maze.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_maze_8h_source.html">Maze.h</a>&gt;</code></p>
+
+<p><a href="class_maze-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f">Direction</a> { <a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7">UP</a>,
+<a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa89ab143d020541957ab5e0e9cfdd3e23">DOWN</a>,
+<a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28faab1a1fe0274cd139b3c0116d8caf458c">LEFT</a>,
+<a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa699ae3e1d989e9b12bd200aa86e29e9d">RIGHT</a>
+ }</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the directions in which movement can happen in the maze. <a href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f">More...</a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_maze.html#a7ecf1da4b9685f97bf3110a8479e724b">Maze</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an empty <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> with width and height of zero. <a href="#a7ecf1da4b9685f97bf3110a8479e724b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8">generateMaze</a> (const vector&lt; pair&lt; int, int &gt; &gt; &amp;walls, int maxObjectX=0, int maxObjectY=0)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a new <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> from the vector of wall coordinates. <a href="#ae238f9a5dbae9418f78f158ced6decf8"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1">getSolid</a> (const int &amp;x, const int &amp;y) const </td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if a given position contains a wall or not. <a href="#a1bbdfece82c4ba90ffcf2fea52e5fef1"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_maze.html#a6963ffbb8e10f5ca72ddc749b3f29419">width</a> () const </td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides access to the width of the <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> object. <a href="#a6963ffbb8e10f5ca72ddc749b3f29419"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_maze.html#a53de30abea69713225ab77703e753d81">height</a> () const </td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides access to the height of the <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> object. <a href="#a53de30abea69713225ab77703e753d81"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f">Direction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_maze.html#a79cf362b55c21634a93ef6b7d192b77c">backwards</a> (<a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f">Direction</a> forwards)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inverts a given direction, to give the value to face in the opposite direction. <a href="#a79cf362b55c21634a93ef6b7d192b77c"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-types"></a>
+Private Types</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef vector&lt; vector&lt; bool &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_maze.html#aea392ab34f271f56b1746b30aed9588a">BoolGrid</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides an easier to read pseudonym for a 2 dimensional boolean vector. <a href="#aea392ab34f271f56b1746b30aed9588a"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_maze.html#aea392ab34f271f56b1746b30aed9588a">BoolGrid</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_maze.html#a3f0247841ddb8a6b5b8b5eeff86b754a">_wallLocations</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The 2 dimensional vector that stores the locations of walls. <a href="#a3f0247841ddb8a6b5b8b5eeff86b754a"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_maze.html#a981c764d7ad04ca06bd8dee472578ce4">_width</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of blocks in each row. <a href="#a981c764d7ad04ca06bd8dee472578ce4"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_maze.html#a02f1ff55e76161495bbe11bc4c0e5f54">_height</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of blocks in each column. <a href="#a02f1ff55e76161495bbe11bc4c0e5f54"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>A rectangular 2D boolean array, representing where cars can drive and where they cannot. </p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_maze_8h_source.html#l00014">14</a> of file <a class="el" href="_maze_8h_source.html">Maze.h</a>.</p>
+</div><hr/><h2>Member Typedef Documentation</h2>
+<a class="anchor" id="aea392ab34f271f56b1746b30aed9588a"></a><!-- doxytag: member="Maze::BoolGrid" ref="aea392ab34f271f56b1746b30aed9588a" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef vector&lt;vector&lt;bool&gt; &gt; <a class="el" href="class_maze.html#aea392ab34f271f56b1746b30aed9588a">Maze::BoolGrid</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Provides an easier to read pseudonym for a 2 dimensional boolean vector. </p>
+
+<p>Definition at line <a class="el" href="_maze_8h_source.html#l00085">85</a> of file <a class="el" href="_maze_8h_source.html">Maze.h</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Enumeration Documentation</h2>
+<a class="anchor" id="ad12c28d50f4d7457160a70a94acfe28f"></a><!-- doxytag: member="Maze::Direction" ref="ad12c28d50f4d7457160a70a94acfe28f" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f">Maze::Direction</a></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Defines the directions in which movement can happen in the maze. </p>
+<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" id="ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7"></a><!-- doxytag: member="UP" ref="ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7" args="" -->UP</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ad12c28d50f4d7457160a70a94acfe28fa89ab143d020541957ab5e0e9cfdd3e23"></a><!-- doxytag: member="DOWN" ref="ad12c28d50f4d7457160a70a94acfe28fa89ab143d020541957ab5e0e9cfdd3e23" args="" -->DOWN</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ad12c28d50f4d7457160a70a94acfe28faab1a1fe0274cd139b3c0116d8caf458c"></a><!-- doxytag: member="LEFT" ref="ad12c28d50f4d7457160a70a94acfe28faab1a1fe0274cd139b3c0116d8caf458c" args="" -->LEFT</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" id="ad12c28d50f4d7457160a70a94acfe28fa699ae3e1d989e9b12bd200aa86e29e9d"></a><!-- doxytag: member="RIGHT" ref="ad12c28d50f4d7457160a70a94acfe28fa699ae3e1d989e9b12bd200aa86e29e9d" args="" -->RIGHT</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_maze_8h_source.html#l00020">20</a> of file <a class="el" href="_maze_8h_source.html">Maze.h</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a7ecf1da4b9685f97bf3110a8479e724b"></a><!-- doxytag: member="Maze::Maze" ref="a7ecf1da4b9685f97bf3110a8479e724b" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Maze::Maze </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Creates an empty <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> with width and height of zero. </p>
+
+<p>Definition at line <a class="el" href="_maze_8cpp_source.html#l00003">3</a> of file <a class="el" href="_maze_8cpp_source.html">Maze.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a79cf362b55c21634a93ef6b7d192b77c"></a><!-- doxytag: member="Maze::backwards" ref="a79cf362b55c21634a93ef6b7d192b77c" args="(Direction forwards)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f">Maze::Direction</a> Maze::backwards </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f">Direction</a>&#160;</td>
+ <td class="paramname"><em>forwards</em></td><td>)</td>
+ <td><code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Inverts a given direction, to give the value to face in the opposite direction. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">forwards</td><td>The direction to be inverted.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The inverse of the given direction. </dd></dl>
+
+<p>Definition at line <a class="el" href="_maze_8cpp_source.html#l00057">57</a> of file <a class="el" href="_maze_8cpp_source.html">Maze.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae238f9a5dbae9418f78f158ced6decf8"></a><!-- doxytag: member="Maze::generateMaze" ref="ae238f9a5dbae9418f78f158ced6decf8" args="(const vector&lt; pair&lt; int, int &gt; &gt; &amp;walls, int maxObjectX=0, int maxObjectY=0)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Maze::generateMaze </td>
+ <td>(</td>
+ <td class="paramtype">const vector&lt; pair&lt; int, int &gt; &gt; &amp;&#160;</td>
+ <td class="paramname"><em>walls</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>maxObjectX</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>maxObjectY</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Generates a new <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> from the vector of wall coordinates. </p>
+<p>The size of the <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> is chosen to just fit all of the walls. If objects exist outside of the walls, the x of the rightmost object and the y of the bottommost object can be passed in to make the <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> at least reach those coordinates.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">walls</td><td>A vector of x,y coordinate pairs representing the locations of each wall block. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">maxObjectX</td><td>The minimum x value that the <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> must be able to index. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">maxObjectY</td><td>The minimum y value that the <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> must be able to index. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_maze_8cpp_source.html#l00009">9</a> of file <a class="el" href="_maze_8cpp_source.html">Maze.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1bbdfece82c4ba90ffcf2fea52e5fef1"></a><!-- doxytag: member="Maze::getSolid" ref="a1bbdfece82c4ba90ffcf2fea52e5fef1" args="(const int &amp;x, const int &amp;y) const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool Maze::getSolid </td>
+ <td>(</td>
+ <td class="paramtype">const int &amp;&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const int &amp;&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Checks if a given position contains a wall or not. </p>
+<p>This function is one of the most called as it is called for each block drawing the <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> on the <a class="el" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a>, by any <a class="el" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a> checking if it can move, and by the <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> to choose a viable direction to face. As such, it has been optimised by passing the parameters by constant reference, even though they are primitives. Further, the vector class's bounds checking is bypassed, with bounds checking performed manually with the assumption that the 2D vector is rectangular, to increase performance. Neither of these changes impare readability.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>The x coordinate being queried. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>The y coordinate being queried.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>True if the location contains a wall. Also returns true if the coordinate is outside of the <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>. </dd></dl>
+
+<p>Definition at line <a class="el" href="_maze_8cpp_source.html#l00040">40</a> of file <a class="el" href="_maze_8cpp_source.html">Maze.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a53de30abea69713225ab77703e753d81"></a><!-- doxytag: member="Maze::height" ref="a53de30abea69713225ab77703e753d81" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int Maze::height </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Provides access to the height of the <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> object. </p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The amount of blocks in each column of the maze. </dd></dl>
+
+<p>Definition at line <a class="el" href="_maze_8cpp_source.html#l00052">52</a> of file <a class="el" href="_maze_8cpp_source.html">Maze.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6963ffbb8e10f5ca72ddc749b3f29419"></a><!-- doxytag: member="Maze::width" ref="a6963ffbb8e10f5ca72ddc749b3f29419" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int Maze::width </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Provides access to the width of the <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> object. </p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The amount of blocks in each row of the maze. </dd></dl>
+
+<p>Definition at line <a class="el" href="_maze_8cpp_source.html#l00048">48</a> of file <a class="el" href="_maze_8cpp_source.html">Maze.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a02f1ff55e76161495bbe11bc4c0e5f54"></a><!-- doxytag: member="Maze::_height" ref="a02f1ff55e76161495bbe11bc4c0e5f54" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int <a class="el" href="class_maze.html#a02f1ff55e76161495bbe11bc4c0e5f54">Maze::_height</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The number of blocks in each column. </p>
+
+<p>Definition at line <a class="el" href="_maze_8h_source.html#l00097">97</a> of file <a class="el" href="_maze_8h_source.html">Maze.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3f0247841ddb8a6b5b8b5eeff86b754a"></a><!-- doxytag: member="Maze::_wallLocations" ref="a3f0247841ddb8a6b5b8b5eeff86b754a" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_maze.html#aea392ab34f271f56b1746b30aed9588a">BoolGrid</a> <a class="el" href="class_maze.html#a3f0247841ddb8a6b5b8b5eeff86b754a">Maze::_wallLocations</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The 2 dimensional vector that stores the locations of walls. </p>
+<p>The outer vector is columns, indexed with the x coordinate, and the inner vectors are the vertical positions in the column, indexed with the y coordinate. This results in a vector that is acced with _wallLocations.at(x).at(y). </p>
+
+<p>Definition at line <a class="el" href="_maze_8h_source.html#l00094">94</a> of file <a class="el" href="_maze_8h_source.html">Maze.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a981c764d7ad04ca06bd8dee472578ce4"></a><!-- doxytag: member="Maze::_width" ref="a981c764d7ad04ca06bd8dee472578ce4" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int <a class="el" href="class_maze.html#a981c764d7ad04ca06bd8dee472578ce4">Maze::_width</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The number of blocks in each row. </p>
+
+<p>Definition at line <a class="el" href="_maze_8h_source.html#l00096">96</a> of file <a class="el" href="_maze_8h_source.html">Maze.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>source/logic/<a class="el" href="_maze_8h_source.html">Maze.h</a></li>
+<li>source/logic/<a class="el" href="_maze_8cpp_source.html">Maze.cpp</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_maze_math-members.html b/docs/html/class_maze_math-members.html
new file mode 100644
index 0000000..0916c33
--- /dev/null
+++ b/docs/html/class_maze_math-members.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Member List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">MazeMath Member List</div> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="class_maze_math.html">MazeMath</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="class_maze_math.html#a5735276fb4c76f25944f2c02d622c3f6">distance</a>(double x1, double y1, double x2, double y2)</td><td><a class="el" href="class_maze_math.html">MazeMath</a></td><td><code> [static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_maze_math.html#ac85f1216ce8dc44bc2fb4483b3f4a128">MazeMath</a>()</td><td><a class="el" href="class_maze_math.html">MazeMath</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_maze_math.html#a8e1499b201cd7034b4a73ed180a87eda">MazeMath</a>(const MazeMath &amp;ref)</td><td><a class="el" href="class_maze_math.html">MazeMath</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_maze_math.html#ac7cf69d865cf69b82c991241fa39cd59">operator=</a>(const MazeMath &amp;rhs)</td><td><a class="el" href="class_maze_math.html">MazeMath</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_maze_math.html#a2314f211065f4dc7cb11469770fd2f1c">round</a>(double value)</td><td><a class="el" href="class_maze_math.html">MazeMath</a></td><td><code> [static]</code></td></tr>
+</table></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_maze_math.html b/docs/html/class_maze_math.html
new file mode 100644
index 0000000..1f53f7f
--- /dev/null
+++ b/docs/html/class_maze_math.html
@@ -0,0 +1,288 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: MazeMath Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pri-methods">Private Member Functions</a> </div>
+ <div class="headertitle">
+<div class="title">MazeMath Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="MazeMath" -->
+<p>Class of static methods for common math functions that occur in the 2D maze setting.
+ <a href="class_maze_math.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_maze_math_8h_source.html">MazeMath.h</a>&gt;</code></p>
+
+<p><a href="class_maze_math-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_maze_math.html#a2314f211065f4dc7cb11469770fd2f1c">round</a> (double value)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Rounds a value to the nearest integer. <a href="#a2314f211065f4dc7cb11469770fd2f1c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_maze_math.html#a5735276fb4c76f25944f2c02d622c3f6">distance</a> (double x1, double y1, double x2, double y2)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds the straight line distance between two points on a 2D plane. <a href="#a5735276fb4c76f25944f2c02d622c3f6"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-methods"></a>
+Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_maze_math.html#ac85f1216ce8dc44bc2fb4483b3f4a128">MazeMath</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Unimplemented constructor. <a href="#ac85f1216ce8dc44bc2fb4483b3f4a128"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_maze_math.html#a8e1499b201cd7034b4a73ed180a87eda">MazeMath</a> (const <a class="el" href="class_maze_math.html">MazeMath</a> &amp;ref)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Unimplemented copy constructor. <a href="#a8e1499b201cd7034b4a73ed180a87eda"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_maze_math.html">MazeMath</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_maze_math.html#ac7cf69d865cf69b82c991241fa39cd59">operator=</a> (const <a class="el" href="class_maze_math.html">MazeMath</a> &amp;rhs)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Unimplemented assignment operator. <a href="#ac7cf69d865cf69b82c991241fa39cd59"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Class of static methods for common math functions that occur in the 2D maze setting. </p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_maze_math_8h_source.html#l00012">12</a> of file <a class="el" href="_maze_math_8h_source.html">MazeMath.h</a>.</p>
+</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="ac85f1216ce8dc44bc2fb4483b3f4a128"></a><!-- doxytag: member="MazeMath::MazeMath" ref="ac85f1216ce8dc44bc2fb4483b3f4a128" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">MazeMath::MazeMath </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Unimplemented constructor. </p>
+<p>being a grouping of static functions, construction and destruction of <a class="el" href="class_maze_math.html" title="Class of static methods for common math functions that occur in the 2D maze setting.">MazeMath</a> objects is unneccesary. </p>
+
+</div>
+</div>
+<a class="anchor" id="a8e1499b201cd7034b4a73ed180a87eda"></a><!-- doxytag: member="MazeMath::MazeMath" ref="a8e1499b201cd7034b4a73ed180a87eda" args="(const MazeMath &amp;ref)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">MazeMath::MazeMath </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_maze_math.html">MazeMath</a> &amp;&#160;</td>
+ <td class="paramname"><em>ref</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Unimplemented copy constructor. </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a5735276fb4c76f25944f2c02d622c3f6"></a><!-- doxytag: member="MazeMath::distance" ref="a5735276fb4c76f25944f2c02d622c3f6" args="(double x1, double y1, double x2, double y2)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">double MazeMath::distance </td>
+ <td>(</td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>x1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>y1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>x2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>y2</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td><code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Finds the straight line distance between two points on a 2D plane. </p>
+<p>Implemented using Pythagoras' Theorem.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">x1</td><td>The x coordinate of the first point. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">y1</td><td>The y coordinate of the first point. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">x2</td><td>The x coordinate of the second point. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">y2</td><td>The y coordinate of the second point.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The distance between the two given points. </dd></dl>
+
+<p>Definition at line <a class="el" href="_maze_math_8cpp_source.html#l00015">15</a> of file <a class="el" href="_maze_math_8cpp_source.html">MazeMath.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac7cf69d865cf69b82c991241fa39cd59"></a><!-- doxytag: member="MazeMath::operator=" ref="ac7cf69d865cf69b82c991241fa39cd59" args="(const MazeMath &amp;rhs)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_maze_math.html">MazeMath</a>&amp; MazeMath::operator= </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_maze_math.html">MazeMath</a> &amp;&#160;</td>
+ <td class="paramname"><em>rhs</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Unimplemented assignment operator. </p>
+
+</div>
+</div>
+<a class="anchor" id="a2314f211065f4dc7cb11469770fd2f1c"></a><!-- doxytag: member="MazeMath::round" ref="a2314f211065f4dc7cb11469770fd2f1c" args="(double value)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">double MazeMath::round </td>
+ <td>(</td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>value</em></td><td>)</td>
+ <td><code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Rounds a value to the nearest integer. </p>
+<p>Values with a decimal fraction less than 0.5 are floored, while values with a decimal fraction greater than or eqaul to 0.5 are ceiled.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>The number to be rounded off.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The rounded off version of the given value. </dd></dl>
+
+<p>Definition at line <a class="el" href="_maze_math_8cpp_source.html#l00003">3</a> of file <a class="el" href="_maze_math_8cpp_source.html">MazeMath.cpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>source/logic/<a class="el" href="_maze_math_8h_source.html">MazeMath.h</a></li>
+<li>source/logic/<a class="el" href="_maze_math_8cpp_source.html">MazeMath.cpp</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_player_car-members.html b/docs/html/class_player_car-members.html
new file mode 100644
index 0000000..c7fa29a
--- /dev/null
+++ b/docs/html/class_player_car-members.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Member List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">PlayerCar Member List</div> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="class_player_car.html">PlayerCar</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="class_car.html#a7b942584de02f8af6f571a60a1cf32ba">_baseSpeed</a></td><td><a class="el" href="class_car.html">Car</a></td><td><code> [protected, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#adc4a399cc59d5706f75748fb3846faec">_destroyed</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a24d36b1a64504298700a7ae7111fad5d">_facing</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a8b0aa105507a8a9559bbc2a66198ccd6">_image</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_player_car.html#a5f8477ebd7de6298151ed70fbb9ffa4f">_input</a></td><td><a class="el" href="class_player_car.html">PlayerCar</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_player_car.html#a51f836c3619c42df7762d440e8007010">_petrol</a></td><td><a class="el" href="class_player_car.html">PlayerCar</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_car.html#a84b3d05e98d66f358942193ff54dee51">_speed</a></td><td><a class="el" href="class_car.html">Car</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614">_x</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e">_y</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_car.html#a3bd1dc6b75af9dc5bbe4354e0b3161d0">Car</a>(double x, double y, BitmapStore::Image image, Maze::Direction facing)</td><td><a class="el" href="class_car.html">Car</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_player_car.html#a1bdd1dbdf1158b740cd1bcb757f8c578">crash</a>()</td><td><a class="el" href="class_player_car.html">PlayerCar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a266871f6c0220f6b3c902075ebff8eea">destroyed</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a2549066ec4dc8f4ca2d3a8c5d5729324">facing</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a26cba01b9c2d301d4ee89a98b9396d67">GameObject</a>(double x, double y, BitmapStore::Image image, Maze::Direction facing=Maze::UP)</td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_player_car.html#aaa8b9d66c0c4e4eab5a303dd0a4e5f39">gotCheckpoint</a>()</td><td><a class="el" href="class_player_car.html">PlayerCar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a05e352e3e01e774892beee0503fdb349">image</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_player_car.html#aafbb292597e0e4648a52444b25e0c5d1">makeSmoke</a>(list&lt; Smokescreen &gt; &amp;currentSmoke)</td><td><a class="el" href="class_player_car.html">PlayerCar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_car.html#a85e8699362bb5206e4142dbd5d20dcb9">move</a>(const Maze &amp;maze)</td><td><a class="el" href="class_car.html">Car</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_player_car.html#af32c01166e92d567202c8415cb3e7c88">petrol</a>() const </td><td><a class="el" href="class_player_car.html">PlayerCar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_player_car.html#aa51ff0da924f9f9b2ea95907a7a26784">PETROL_FROM_CHECKPOINT</a></td><td><a class="el" href="class_player_car.html">PlayerCar</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_player_car.html#a1f0b0226242250bd470f48b73defe3be">PETROL_USE_RATE</a></td><td><a class="el" href="class_player_car.html">PlayerCar</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_player_car.html#af4d042839afea10b0947837040eab12c">PETROL_USE_SMOKESCREEN</a></td><td><a class="el" href="class_player_car.html">PlayerCar</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_player_car.html#a59864f7746f6b96364cc5cc87f9b70e0">PlayerCar</a>(double x, double y, Maze::Direction facing=Maze::UP)</td><td><a class="el" href="class_player_car.html">PlayerCar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_car.html#a68b59187e1520a5d016b0894b4c116b9">speed</a>() const </td><td><a class="el" href="class_car.html">Car</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907">update</a>(const Maze &amp;maze, list&lt; Smokescreen &gt; &amp;currentSmoke)</td><td><a class="el" href="class_player_car.html">PlayerCar</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8">x</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b">y</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+</table></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_player_car.html b/docs/html/class_player_car.html
new file mode 100644
index 0000000..09bf834
--- /dev/null
+++ b/docs/html/class_player_car.html
@@ -0,0 +1,435 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: PlayerCar Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> &#124;
+<a href="#pri-static-attribs">Static Private Attributes</a> </div>
+ <div class="headertitle">
+<div class="title">PlayerCar Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="PlayerCar" --><!-- doxytag: inherits="Car" -->
+<p>A <a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> that is controlled by the player.
+ <a href="class_player_car.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_player_car_8h_source.html">PlayerCar.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for PlayerCar:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="class_player_car.png" usemap="#PlayerCar_map" alt=""/>
+ <map id="PlayerCar_map" name="PlayerCar_map">
+<area href="class_car.html" title="GameObject that moves through the maze and changes direction." alt="Car" shape="rect" coords="0,56,81,80"/>
+<area href="class_game_object.html" title="Parent class for objects that are placed in the maze." alt="GameObject" shape="rect" coords="0,0,81,24"/>
+</map>
+ </div></div>
+
+<p><a href="class_player_car-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_player_car.html#a59864f7746f6b96364cc5cc87f9b70e0">PlayerCar</a> (double x, double y, <a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f">Maze::Direction</a> facing=Maze::UP)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> at the given location facing in the given direction. <a href="#a59864f7746f6b96364cc5cc87f9b70e0"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907">update</a> (const <a class="el" href="class_maze.html">Maze</a> &amp;maze, list&lt; <a class="el" href="class_smokescreen.html">Smokescreen</a> &gt; &amp;currentSmoke)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Processes one frame's worth of activity for the object, called every frame. <a href="#ae8c5ef8fb59e015c17ddad6ed9ebf907"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_player_car.html#aafbb292597e0e4648a52444b25e0c5d1">makeSmoke</a> (list&lt; <a class="el" href="class_smokescreen.html">Smokescreen</a> &gt; &amp;currentSmoke)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> one block behind the player if the action is viable. <a href="#aafbb292597e0e4648a52444b25e0c5d1"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_player_car.html#aaa8b9d66c0c4e4eab5a303dd0a4e5f39">gotCheckpoint</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Function that is called when the <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> collides with a <a class="el" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>. <a href="#aaa8b9d66c0c4e4eab5a303dd0a4e5f39"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_player_car.html#a1bdd1dbdf1158b740cd1bcb757f8c578">crash</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Function that is called when the <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> collides with an <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>. <a href="#a1bdd1dbdf1158b740cd1bcb757f8c578"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_player_car.html#af32c01166e92d567202c8415cb3e7c88">petrol</a> () const </td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to allow access to the amount of petrol that the <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> still has. <a href="#af32c01166e92d567202c8415cb3e7c88"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_player_car.html#a5f8477ebd7de6298151ed70fbb9ffa4f">_input</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Object that handles all interaction with the player. <a href="#a5f8477ebd7de6298151ed70fbb9ffa4f"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_player_car.html#a51f836c3619c42df7762d440e8007010">_petrol</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The amount of petrol that the <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> still has. <a href="#a51f836c3619c42df7762d440e8007010"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-static-attribs"></a>
+Static Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_player_car.html#a1f0b0226242250bd470f48b73defe3be">PETROL_USE_RATE</a> = 0.0007</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The amount of petrol used every frame. <a href="#a1f0b0226242250bd470f48b73defe3be"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_player_car.html#af4d042839afea10b0947837040eab12c">PETROL_USE_SMOKESCREEN</a> = 0.05</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The amount of petrol used to create a <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a>. <a href="#af4d042839afea10b0947837040eab12c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_player_car.html#aa51ff0da924f9f9b2ea95907a7a26784">PETROL_FROM_CHECKPOINT</a> = 0.2</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The amount of petrol gained from collecting a <a class="el" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>. <a href="#aa51ff0da924f9f9b2ea95907a7a26784"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>A <a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> that is controlled by the player. </p>
+<p>Contains a <a class="el" href="class_keyboard_handler.html" title="Class for handling keyboard related game inputs from the player.">KeyboardHandler</a> to accept user input.</p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_player_car_8h_source.html#l00023">23</a> of file <a class="el" href="_player_car_8h_source.html">PlayerCar.h</a>.</p>
+</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a59864f7746f6b96364cc5cc87f9b70e0"></a><!-- doxytag: member="PlayerCar::PlayerCar" ref="a59864f7746f6b96364cc5cc87f9b70e0" args="(double x, double y, Maze::Direction facing=Maze::UP)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">PlayerCar::PlayerCar </td>
+ <td>(</td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f">Maze::Direction</a>&#160;</td>
+ <td class="paramname"><em>facing</em> = <code>Maze::UP</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Creates a <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> at the given location facing in the given direction. </p>
+<p>In the current form of the level files, there is no way to distinguish the direction that the player is facing, so the default of UP is used. However, the ability to pass in a facing is useful in the unit tests.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>The x coordinate of the object's initial position. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>The y coordinate of the object's initial position. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">facing</td><td>The direction that the object is initially facing. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_player_car_8cpp_source.html#l00003">3</a> of file <a class="el" href="_player_car_8cpp_source.html">PlayerCar.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a1bdd1dbdf1158b740cd1bcb757f8c578"></a><!-- doxytag: member="PlayerCar::crash" ref="a1bdd1dbdf1158b740cd1bcb757f8c578" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void PlayerCar::crash </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Function that is called when the <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> collides with an <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>. </p>
+
+<p>Definition at line <a class="el" href="_player_car_8cpp_source.html#l00073">73</a> of file <a class="el" href="_player_car_8cpp_source.html">PlayerCar.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aaa8b9d66c0c4e4eab5a303dd0a4e5f39"></a><!-- doxytag: member="PlayerCar::gotCheckpoint" ref="aaa8b9d66c0c4e4eab5a303dd0a4e5f39" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void PlayerCar::gotCheckpoint </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Function that is called when the <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> collides with a <a class="el" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>. </p>
+<p>Increases the amount of petrol by PETROL_FROM_CHECKPOINT. </p>
+
+<p>Definition at line <a class="el" href="_player_car_8cpp_source.html#l00078">78</a> of file <a class="el" href="_player_car_8cpp_source.html">PlayerCar.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aafbb292597e0e4648a52444b25e0c5d1"></a><!-- doxytag: member="PlayerCar::makeSmoke" ref="aafbb292597e0e4648a52444b25e0c5d1" args="(list&lt; Smokescreen &gt; &amp;currentSmoke)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void PlayerCar::makeSmoke </td>
+ <td>(</td>
+ <td class="paramtype">list&lt; <a class="el" href="class_smokescreen.html">Smokescreen</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>currentSmoke</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Creates a <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> one block behind the player if the action is viable. </p>
+<p>The action is viable if the object has more than PETROL_USE_SMOKESCREEN petrol. Further, the position must not overlap with existing Smokescreens. This allows the player to hold down the <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> button without creating a new <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> every frame. Creating a <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> decreases the petrol by PETROL_USE_SMOKESCREEN.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in,out]</td><td class="paramname">currentSmoke</td><td>The list of Smokescreens being drawn, that the new Smokescreens will be added to the back of. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_player_car_8cpp_source.html#l00028">28</a> of file <a class="el" href="_player_car_8cpp_source.html">PlayerCar.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af32c01166e92d567202c8415cb3e7c88"></a><!-- doxytag: member="PlayerCar::petrol" ref="af32c01166e92d567202c8415cb3e7c88" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">double PlayerCar::petrol </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Function to allow access to the amount of petrol that the <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> still has. </p>
+
+<p>Definition at line <a class="el" href="_player_car_8cpp_source.html#l00084">84</a> of file <a class="el" href="_player_car_8cpp_source.html">PlayerCar.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae8c5ef8fb59e015c17ddad6ed9ebf907"></a><!-- doxytag: member="PlayerCar::update" ref="ae8c5ef8fb59e015c17ddad6ed9ebf907" args="(const Maze &amp;maze, list&lt; Smokescreen &gt; &amp;currentSmoke)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void PlayerCar::update </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_maze.html">Maze</a> &amp;&#160;</td>
+ <td class="paramname"><em>maze</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">list&lt; <a class="el" href="class_smokescreen.html">Smokescreen</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>currentSmoke</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Processes one frame's worth of activity for the object, called every frame. </p>
+<p>The Keyboard handler is called for the user's input. Based on this, the direction can be changed, and a <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> can be created and added to the list of already existing Smokescreens. The <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> is then moved. Petrol is decreased by PETROL_USE_RATE on every update.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">maze</td><td>The <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> that confines the PlayerCar's movement. </td></tr>
+ <tr><td class="paramdir">[in,out]</td><td class="paramname">currentSmoke</td><td>The list of Smokescreens being drawn, that the new Smokescreens will be added to the back of. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_player_car_8cpp_source.html#l00010">10</a> of file <a class="el" href="_player_car_8cpp_source.html">PlayerCar.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a5f8477ebd7de6298151ed70fbb9ffa4f"></a><!-- doxytag: member="PlayerCar::_input" ref="a5f8477ebd7de6298151ed70fbb9ffa4f" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a> <a class="el" href="class_player_car.html#a5f8477ebd7de6298151ed70fbb9ffa4f">PlayerCar::_input</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Object that handles all interaction with the player. </p>
+
+<p>Definition at line <a class="el" href="_player_car_8h_source.html#l00084">84</a> of file <a class="el" href="_player_car_8h_source.html">PlayerCar.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a51f836c3619c42df7762d440e8007010"></a><!-- doxytag: member="PlayerCar::_petrol" ref="a51f836c3619c42df7762d440e8007010" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">double <a class="el" href="class_player_car.html#a51f836c3619c42df7762d440e8007010">PlayerCar::_petrol</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The amount of petrol that the <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> still has. </p>
+<p>Measured as a fraction, with 1 being a full tank and 0 being empty. When the petrol reaches 0, it is kept at zero and the PlayerCar's speed is halved. </p>
+
+<p>Definition at line <a class="el" href="_player_car_8h_source.html#l00092">92</a> of file <a class="el" href="_player_car_8h_source.html">PlayerCar.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa51ff0da924f9f9b2ea95907a7a26784"></a><!-- doxytag: member="PlayerCar::PETROL_FROM_CHECKPOINT" ref="aa51ff0da924f9f9b2ea95907a7a26784" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const double <a class="el" href="class_player_car.html#aa51ff0da924f9f9b2ea95907a7a26784">PlayerCar::PETROL_FROM_CHECKPOINT</a> = 0.2<code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The amount of petrol gained from collecting a <a class="el" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>. </p>
+
+<p>Definition at line <a class="el" href="_player_car_8h_source.html#l00096">96</a> of file <a class="el" href="_player_car_8h_source.html">PlayerCar.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1f0b0226242250bd470f48b73defe3be"></a><!-- doxytag: member="PlayerCar::PETROL_USE_RATE" ref="a1f0b0226242250bd470f48b73defe3be" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const double <a class="el" href="class_player_car.html#a1f0b0226242250bd470f48b73defe3be">PlayerCar::PETROL_USE_RATE</a> = 0.0007<code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The amount of petrol used every frame. </p>
+
+<p>Definition at line <a class="el" href="_player_car_8h_source.html#l00094">94</a> of file <a class="el" href="_player_car_8h_source.html">PlayerCar.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af4d042839afea10b0947837040eab12c"></a><!-- doxytag: member="PlayerCar::PETROL_USE_SMOKESCREEN" ref="af4d042839afea10b0947837040eab12c" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const double <a class="el" href="class_player_car.html#af4d042839afea10b0947837040eab12c">PlayerCar::PETROL_USE_SMOKESCREEN</a> = 0.05<code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The amount of petrol used to create a <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a>. </p>
+
+<p>Definition at line <a class="el" href="_player_car_8h_source.html#l00095">95</a> of file <a class="el" href="_player_car_8h_source.html">PlayerCar.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>source/logic/<a class="el" href="_player_car_8h_source.html">PlayerCar.h</a></li>
+<li>source/logic/<a class="el" href="_player_car_8cpp_source.html">PlayerCar.cpp</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_player_car.png b/docs/html/class_player_car.png
new file mode 100644
index 0000000..83a5c68
--- /dev/null
+++ b/docs/html/class_player_car.png
Binary files differ
diff --git a/docs/html/class_rock-members.html b/docs/html/class_rock-members.html
new file mode 100644
index 0000000..1dcae3a
--- /dev/null
+++ b/docs/html/class_rock-members.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Member List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">Rock Member List</div> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="class_rock.html">Rock</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#adc4a399cc59d5706f75748fb3846faec">_destroyed</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a24d36b1a64504298700a7ae7111fad5d">_facing</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a8b0aa105507a8a9559bbc2a66198ccd6">_image</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614">_x</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e">_y</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a266871f6c0220f6b3c902075ebff8eea">destroyed</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a2549066ec4dc8f4ca2d3a8c5d5729324">facing</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a26cba01b9c2d301d4ee89a98b9396d67">GameObject</a>(double x, double y, BitmapStore::Image image, Maze::Direction facing=Maze::UP)</td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a05e352e3e01e774892beee0503fdb349">image</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_rock.html#af8a54b6f7458d83cf27753f53c8c0c19">Rock</a>(double x, double y)</td><td><a class="el" href="class_rock.html">Rock</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8">x</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b">y</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+</table></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_rock.html b/docs/html/class_rock.html
new file mode 100644
index 0000000..0c6f5f1
--- /dev/null
+++ b/docs/html/class_rock.html
@@ -0,0 +1,184 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Rock Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Rock Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="Rock" --><!-- doxytag: inherits="GameObject" -->
+<p>A game object that acts as an obstacle to the player.
+ <a href="class_rock.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_rock_8h_source.html">Rock.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for Rock:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="class_rock.png" usemap="#Rock_map" alt=""/>
+ <map id="Rock_map" name="Rock_map">
+<area href="class_game_object.html" title="Parent class for objects that are placed in the maze." alt="GameObject" shape="rect" coords="0,0,81,24"/>
+</map>
+ </div></div>
+
+<p><a href="class_rock-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_rock.html#af8a54b6f7458d83cf27753f53c8c0c19">Rock</a> (double x, double y)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a <a class="el" href="class_rock.html" title="A game object that acts as an obstacle to the player.">Rock</a> at the given coordinates. <a href="#af8a54b6f7458d83cf27753f53c8c0c19"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>A game object that acts as an obstacle to the player. </p>
+<p>Does nothing actively.</p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_rock_8h_source.html#l00015">15</a> of file <a class="el" href="_rock_8h_source.html">Rock.h</a>.</p>
+</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="af8a54b6f7458d83cf27753f53c8c0c19"></a><!-- doxytag: member="Rock::Rock" ref="af8a54b6f7458d83cf27753f53c8c0c19" args="(double x, double y)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Rock::Rock </td>
+ <td>(</td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Creates a <a class="el" href="class_rock.html" title="A game object that acts as an obstacle to the player.">Rock</a> at the given coordinates. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>The x coordinate of the Rock's position. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>The y coordinate of the Rock's position. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_rock_8cpp_source.html#l00003">3</a> of file <a class="el" href="_rock_8cpp_source.html">Rock.cpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>source/logic/<a class="el" href="_rock_8h_source.html">Rock.h</a></li>
+<li>source/logic/<a class="el" href="_rock_8cpp_source.html">Rock.cpp</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_rock.png b/docs/html/class_rock.png
new file mode 100644
index 0000000..c550ff4
--- /dev/null
+++ b/docs/html/class_rock.png
Binary files differ
diff --git a/docs/html/class_screen-members.html b/docs/html/class_screen-members.html
new file mode 100644
index 0000000..6797c75
--- /dev/null
+++ b/docs/html/class_screen-members.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Member List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">Screen Member List</div> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="class_screen.html">Screen</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="class_screen.html#ae0863416022fcb59189d2aefd3345621">_allegro</a></td><td><a class="el" href="class_screen.html">Screen</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen.html#a4972e24cf3677e51b18feac34a563ba0">_display</a></td><td><a class="el" href="class_screen.html">Screen</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen.html#a2dafde8aecbd3bc3c4394f36df913b64">_drawing</a></td><td><a class="el" href="class_screen.html">Screen</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen.html#ae7f213f79bf9680e0ff3f4b52ebf051f">_exitClicked</a></td><td><a class="el" href="class_screen.html">Screen</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen.html#a42a627863a8f9d1529278cb060d4102b">_font</a></td><td><a class="el" href="class_screen.html">Screen</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen.html#a7cba9fb0069d763055ef351452a15227">_gameAreaWidth</a></td><td><a class="el" href="class_screen.html">Screen</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen.html#ab895e588a89e1943303487d47a2b9216">_infoPanelWidth</a></td><td><a class="el" href="class_screen.html">Screen</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen.html#a0c5cff1b93dae4d559a81d261a8bcee6">_keyboard</a></td><td><a class="el" href="class_screen.html">Screen</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen.html#a30ba66122613181e312e0d7586d2a814">_panels</a></td><td><a class="el" href="class_screen.html">Screen</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen.html#a8784c86e10d2b6af0dd99d710f3955e9">_screenHeight</a></td><td><a class="el" href="class_screen.html">Screen</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen.html#a5931238a3eb8cf1a14b0f8b8d7044b65">_screenWidth</a></td><td><a class="el" href="class_screen.html">Screen</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen.html#aa4ea622368bdf47a3b22d026048ee83a">_windowEvents</a></td><td><a class="el" href="class_screen.html">Screen</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen.html#aec3c5c20e14d6ef033c8a6a559a84872">draw</a>(const Maze &amp;maze, const list&lt; PlayerCar &gt; &amp;players, const list&lt; EnemyCar &gt; &amp;enemies, const list&lt; Checkpoint &gt; &amp;checkpoints, const list&lt; Rock &gt; &amp;rocks, const list&lt; Smokescreen &gt; &amp;smokescreens, const list&lt; DestroyedObjectPopup &gt; &amp;popups)</td><td><a class="el" href="class_screen.html">Screen</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen.html#aab9ab8447df2b526985970d2ac80c919">drawLoss</a>()</td><td><a class="el" href="class_screen.html">Screen</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen.html#ad4c1281e4d59eb89377dd87bba8a310e">drawWin</a>()</td><td><a class="el" href="class_screen.html">Screen</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen.html#acca34443ba0ad97922069658d688ea9a">exitClicked</a>()</td><td><a class="el" href="class_screen.html">Screen</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen.html#abd12bddd241c8d214d2423804fe20ffb">flip</a>()</td><td><a class="el" href="class_screen.html">Screen</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen.html#a45d06e513491e40f76013fb670c6c6cc">getLevel</a>()</td><td><a class="el" href="class_screen.html">Screen</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen.html#a0e36165c330af54d9786b2c6dadbadb5">operator=</a>(const Screen &amp;rhs)</td><td><a class="el" href="class_screen.html">Screen</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen.html#a6480d57328a39c579f312774b5fbf571">resolutionSupported</a>()</td><td><a class="el" href="class_screen.html">Screen</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen.html#aa430a980cb3dcca13c837f70bf801511">Screen</a>(unsigned int screenWidth, unsigned int screenHeight, bool fullscreen)</td><td><a class="el" href="class_screen.html">Screen</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen.html#af46d7f95b577627f99af02f241026f4c">Screen</a>(const Screen &amp;ref)</td><td><a class="el" href="class_screen.html">Screen</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen.html#a4243bc17596af96415b09ac48205676d">~Screen</a>()</td><td><a class="el" href="class_screen.html">Screen</a></td><td></td></tr>
+</table></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_screen.html b/docs/html/class_screen.html
new file mode 100644
index 0000000..581ce34
--- /dev/null
+++ b/docs/html/class_screen.html
@@ -0,0 +1,699 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Screen Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pri-methods">Private Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> </div>
+ <div class="headertitle">
+<div class="title">Screen Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="Screen" -->
+<p>Class for creating a window on the screen.
+ <a href="class_screen.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_screen_8h_source.html">Screen.h</a>&gt;</code></p>
+
+<p><a href="class_screen-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen.html#aa430a980cb3dcca13c837f70bf801511">Screen</a> (unsigned int screenWidth, unsigned int screenHeight, bool fullscreen)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a <a class="el" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a> with the given width and height in pixels, and the given fullscreen setting. <a href="#aa430a980cb3dcca13c837f70bf801511"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen.html#a4243bc17596af96415b09ac48205676d">~Screen</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor to ensure that the display and any ScreenPanels are destroyed properly. <a href="#a4243bc17596af96415b09ac48205676d"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen.html#a45d06e513491e40f76013fb670c6c6cc">getLevel</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Presents the player with a file dialog, requesting a level file to be selected. <a href="#a45d06e513491e40f76013fb670c6c6cc"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen.html#aec3c5c20e14d6ef033c8a6a559a84872">draw</a> (const <a class="el" href="class_maze.html">Maze</a> &amp;maze, const list&lt; <a class="el" href="class_player_car.html">PlayerCar</a> &gt; &amp;players, const list&lt; <a class="el" href="class_enemy_car.html">EnemyCar</a> &gt; &amp;enemies, const list&lt; <a class="el" href="class_checkpoint.html">Checkpoint</a> &gt; &amp;checkpoints, const list&lt; <a class="el" href="class_rock.html">Rock</a> &gt; &amp;rocks, const list&lt; <a class="el" href="class_smokescreen.html">Smokescreen</a> &gt; &amp;smokescreens, const list&lt; <a class="el" href="class_destroyed_object_popup.html">DestroyedObjectPopup</a> &gt; &amp;popups)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws the given objects on the screen. <a href="#aec3c5c20e14d6ef033c8a6a559a84872"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen.html#acca34443ba0ad97922069658d688ea9a">exitClicked</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to find if the player has chosen to exit the game. <a href="#acca34443ba0ad97922069658d688ea9a"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen.html#ad4c1281e4d59eb89377dd87bba8a310e">drawWin</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws a splash screen when the level has been won. <a href="#ad4c1281e4d59eb89377dd87bba8a310e"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen.html#aab9ab8447df2b526985970d2ac80c919">drawLoss</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws a splash screen when the level has been lost. <a href="#aab9ab8447df2b526985970d2ac80c919"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-methods"></a>
+Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen.html#af46d7f95b577627f99af02f241026f4c">Screen</a> (const <a class="el" href="class_screen.html">Screen</a> &amp;ref)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Unimplemented copy constructor, prevents copying of <a class="el" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a> objects. <a href="#af46d7f95b577627f99af02f241026f4c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_screen.html">Screen</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen.html#a0e36165c330af54d9786b2c6dadbadb5">operator=</a> (const <a class="el" href="class_screen.html">Screen</a> &amp;rhs)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Unimplemented assignment operator. <a href="#a0e36165c330af54d9786b2c6dadbadb5"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen.html#abd12bddd241c8d214d2423804fe20ffb">flip</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Flips the display's buffers, as well as those for all of the ScreenPanels. <a href="#abd12bddd241c8d214d2423804fe20ffb"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen.html#a6480d57328a39c579f312774b5fbf571">resolutionSupported</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks the current resolution (_screenWidth and _screenHeight) against the screen's supported resolutions. <a href="#a6480d57328a39c579f312774b5fbf571"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_allegro_init.html">AllegroInit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen.html#ae0863416022fcb59189d2aefd3345621">_allegro</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensures that Allegro has been installed, for event queues and creating the display. <a href="#ae0863416022fcb59189d2aefd3345621"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_allegro_keyboard_init.html">AllegroKeyboardInit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen.html#a0c5cff1b93dae4d559a81d261a8bcee6">_keyboard</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensures that the keyboard has been installed, for checking for the ESC key. <a href="#a0c5cff1b93dae4d559a81d261a8bcee6"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_allegro_drawing_init.html">AllegroDrawingInit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen.html#a2dafde8aecbd3bc3c4394f36df913b64">_drawing</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensures that drawing operations have been installed, for drawing splash screens. <a href="#a2dafde8aecbd3bc3c4394f36df913b64"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen.html#ae7f213f79bf9680e0ff3f4b52ebf051f">_exitClicked</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to true when the user chooses to quit the game. <a href="#ae7f213f79bf9680e0ff3f4b52ebf051f"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen.html#a5931238a3eb8cf1a14b0f8b8d7044b65">_screenWidth</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Horizontal number of pixels per row on the screen. <a href="#a5931238a3eb8cf1a14b0f8b8d7044b65"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen.html#a8784c86e10d2b6af0dd99d710f3955e9">_screenHeight</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Vertical number of pixels per column on the screen. <a href="#a8784c86e10d2b6af0dd99d710f3955e9"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen.html#a7cba9fb0069d763055ef351452a15227">_gameAreaWidth</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Width of the <a class="el" href="class_game_panel.html" title="ScreenPanel to be drawn on the screen to draw the area where the game takes place.">GamePanel</a> created. <a href="#a7cba9fb0069d763055ef351452a15227"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen.html#ab895e588a89e1943303487d47a2b9216">_infoPanelWidth</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Width of the <a class="el" href="class_info_panel.html" title="ScreenPanel to be drawn on the screen to give the player information.">InfoPanel</a> created. The <a class="el" href="class_info_panel.html" title="ScreenPanel to be drawn on the screen to give the player information.">InfoPanel</a> is placed directly to the right of the <a class="el" href="class_game_panel.html" title="ScreenPanel to be drawn on the screen to draw the area where the game takes place.">GamePanel</a>. <a href="#ab895e588a89e1943303487d47a2b9216"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ALLEGRO_DISPLAY *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen.html#a4972e24cf3677e51b18feac34a563ba0">_display</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The window created on the player's monitor to see the game. <a href="#a4972e24cf3677e51b18feac34a563ba0"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ALLEGRO_EVENT_QUEUE *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen.html#aa4ea622368bdf47a3b22d026048ee83a">_windowEvents</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Events caught by the screen, checked for an exit command. <a href="#aa4ea622368bdf47a3b22d026048ee83a"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ALLEGRO_FONT *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen.html#a42a627863a8f9d1529278cb060d4102b">_font</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Font used in drawing splash screens. <a href="#a42a627863a8f9d1529278cb060d4102b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">vector&lt; <a class="el" href="class_screen_panel.html">ScreenPanel</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen.html#a30ba66122613181e312e0d7586d2a814">_panels</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Polymorphic container used to encapsulate the different types of drawing to the screen. <a href="#a30ba66122613181e312e0d7586d2a814"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Class for creating a window on the screen. </p>
+<p>Anything involving drawing on the screen is the responsibility of this class. Most of these responsibilities are outsourced through creating ScreenPanels with more specialised tasks, such as drawing specifically the area where the gameplay takes place (<a class="el" href="class_game_panel.html" title="ScreenPanel to be drawn on the screen to draw the area where the game takes place.">GamePanel</a>) or the providing the player with information (<a class="el" href="class_info_panel.html" title="ScreenPanel to be drawn on the screen to give the player information.">InfoPanel</a>).</p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_screen_8h_source.html#l00044">44</a> of file <a class="el" href="_screen_8h_source.html">Screen.h</a>.</p>
+</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="aa430a980cb3dcca13c837f70bf801511"></a><!-- doxytag: member="Screen::Screen" ref="aa430a980cb3dcca13c837f70bf801511" args="(unsigned int screenWidth, unsigned int screenHeight, bool fullscreen)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Screen::Screen </td>
+ <td>(</td>
+ <td class="paramtype">unsigned int&#160;</td>
+ <td class="paramname"><em>screenWidth</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">unsigned int&#160;</td>
+ <td class="paramname"><em>screenHeight</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool&#160;</td>
+ <td class="paramname"><em>fullscreen</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Creates a <a class="el" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a> with the given width and height in pixels, and the given fullscreen setting. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">screenWidth</td><td>The width of the display that will be created in pixels. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">screenHeight</td><td>The height of the display that will be created in pixels. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">fullscreen</td><td>True if the game should be in fullscreen mode. False otherwise. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_screen_8cpp_source.html#l00003">3</a> of file <a class="el" href="_screen_8cpp_source.html">Screen.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4243bc17596af96415b09ac48205676d"></a><!-- doxytag: member="Screen::~Screen" ref="a4243bc17596af96415b09ac48205676d" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Screen::~Screen </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Destructor to ensure that the display and any ScreenPanels are destroyed properly. </p>
+
+<p>Definition at line <a class="el" href="_screen_8cpp_source.html#l00052">52</a> of file <a class="el" href="_screen_8cpp_source.html">Screen.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af46d7f95b577627f99af02f241026f4c"></a><!-- doxytag: member="Screen::Screen" ref="af46d7f95b577627f99af02f241026f4c" args="(const Screen &amp;ref)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Screen::Screen </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_screen.html">Screen</a> &amp;&#160;</td>
+ <td class="paramname"><em>ref</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Unimplemented copy constructor, prevents copying of <a class="el" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a> objects. </p>
+<p>Copying a <a class="el" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a> is unneccesary as there should only be a single <a class="el" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a> object. </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="aec3c5c20e14d6ef033c8a6a559a84872"></a><!-- doxytag: member="Screen::draw" ref="aec3c5c20e14d6ef033c8a6a559a84872" args="(const Maze &amp;maze, const list&lt; PlayerCar &gt; &amp;players, const list&lt; EnemyCar &gt; &amp;enemies, const list&lt; Checkpoint &gt; &amp;checkpoints, const list&lt; Rock &gt; &amp;rocks, const list&lt; Smokescreen &gt; &amp;smokescreens, const list&lt; DestroyedObjectPopup &gt; &amp;popups)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Screen::draw </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_maze.html">Maze</a> &amp;&#160;</td>
+ <td class="paramname"><em>maze</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_player_car.html">PlayerCar</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>players</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_enemy_car.html">EnemyCar</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>enemies</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_checkpoint.html">Checkpoint</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>checkpoints</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_rock.html">Rock</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>rocks</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_smokescreen.html">Smokescreen</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>smokescreens</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_destroyed_object_popup.html">DestroyedObjectPopup</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>popups</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Draws the given objects on the screen. </p>
+<p>The objects are passed to each of the ScreenPanels in turn, and then the buffers are flipped.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">maze</td><td>The <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> that all of the objects are in. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">players</td><td>The list of PlayerCars to be drawn. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">enemies</td><td>The list of EnemyCars to be drawn. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">checkpoints</td><td>The list of Checkpoints to be drawn. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">rocks</td><td>The list of Rocks to be drawn. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">smokescreens</td><td>The list of Smokescreens to be drawn. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">popups</td><td>The list of DestroyedObjectPopups to be drawn. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_screen_8cpp_source.html#l00083">83</a> of file <a class="el" href="_screen_8cpp_source.html">Screen.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aab9ab8447df2b526985970d2ac80c919"></a><!-- doxytag: member="Screen::drawLoss" ref="aab9ab8447df2b526985970d2ac80c919" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Screen::drawLoss </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Draws a splash screen when the level has been lost. </p>
+
+<p>Definition at line <a class="el" href="_screen_8cpp_source.html#l00114">114</a> of file <a class="el" href="_screen_8cpp_source.html">Screen.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad4c1281e4d59eb89377dd87bba8a310e"></a><!-- doxytag: member="Screen::drawWin" ref="ad4c1281e4d59eb89377dd87bba8a310e" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Screen::drawWin </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Draws a splash screen when the level has been won. </p>
+
+<p>Definition at line <a class="el" href="_screen_8cpp_source.html#l00101">101</a> of file <a class="el" href="_screen_8cpp_source.html">Screen.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acca34443ba0ad97922069658d688ea9a"></a><!-- doxytag: member="Screen::exitClicked" ref="acca34443ba0ad97922069658d688ea9a" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool Screen::exitClicked </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Function to find if the player has chosen to exit the game. </p>
+<p>The game can be exited by clicking the x in the corner of the window, pressing the ESC key during the game, or by clicking 'cancel' on the file selection dialog.</p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>True if the game should be quit. </dd></dl>
+
+<p>Definition at line <a class="el" href="_screen_8cpp_source.html#l00127">127</a> of file <a class="el" href="_screen_8cpp_source.html">Screen.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abd12bddd241c8d214d2423804fe20ffb"></a><!-- doxytag: member="Screen::flip" ref="abd12bddd241c8d214d2423804fe20ffb" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void Screen::flip </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Flips the display's buffers, as well as those for all of the ScreenPanels. </p>
+
+<p>Definition at line <a class="el" href="_screen_8cpp_source.html#l00092">92</a> of file <a class="el" href="_screen_8cpp_source.html">Screen.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a45d06e513491e40f76013fb670c6c6cc"></a><!-- doxytag: member="Screen::getLevel" ref="a45d06e513491e40f76013fb670c6c6cc" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">string Screen::getLevel </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Presents the player with a file dialog, requesting a level file to be selected. </p>
+<p>If the cancel button is clicked, and empty string is returned and <a class="el" href="class_screen.html#acca34443ba0ad97922069658d688ea9a" title="Function to find if the player has chosen to exit the game.">exitClicked()</a> will return true on its next call.</p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The path of the level file, or an empty string if no file was selected. </dd></dl>
+
+<p>Definition at line <a class="el" href="_screen_8cpp_source.html#l00065">65</a> of file <a class="el" href="_screen_8cpp_source.html">Screen.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0e36165c330af54d9786b2c6dadbadb5"></a><!-- doxytag: member="Screen::operator=" ref="a0e36165c330af54d9786b2c6dadbadb5" args="(const Screen &amp;rhs)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_screen.html">Screen</a>&amp; Screen::operator= </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_screen.html">Screen</a> &amp;&#160;</td>
+ <td class="paramname"><em>rhs</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Unimplemented assignment operator. </p>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="class_screen.html#af46d7f95b577627f99af02f241026f4c" title="Unimplemented copy constructor, prevents copying of Screen objects.">Screen(const Screen&amp; ref)</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a6480d57328a39c579f312774b5fbf571"></a><!-- doxytag: member="Screen::resolutionSupported" ref="a6480d57328a39c579f312774b5fbf571" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool Screen::resolutionSupported </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Checks the current resolution (_screenWidth and _screenHeight) against the screen's supported resolutions. </p>
+<p>Used to test if a fullscreen mode selection will launch without issue.</p>
+<dl class="return"><dt><b>Returns:</b></dt><dd>True if the current resolution is supported. </dd></dl>
+
+<p>Definition at line <a class="el" href="_screen_8cpp_source.html#l00145">145</a> of file <a class="el" href="_screen_8cpp_source.html">Screen.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="ae0863416022fcb59189d2aefd3345621"></a><!-- doxytag: member="Screen::_allegro" ref="ae0863416022fcb59189d2aefd3345621" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_allegro_init.html">AllegroInit</a> <a class="el" href="class_screen.html#ae0863416022fcb59189d2aefd3345621">Screen::_allegro</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Ensures that Allegro has been installed, for event queues and creating the display. </p>
+
+<p>Definition at line <a class="el" href="_screen_8h_source.html#l00134">134</a> of file <a class="el" href="_screen_8h_source.html">Screen.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4972e24cf3677e51b18feac34a563ba0"></a><!-- doxytag: member="Screen::_display" ref="a4972e24cf3677e51b18feac34a563ba0" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ALLEGRO_DISPLAY* <a class="el" href="class_screen.html#a4972e24cf3677e51b18feac34a563ba0">Screen::_display</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The window created on the player's monitor to see the game. </p>
+
+<p>Definition at line <a class="el" href="_screen_8h_source.html#l00146">146</a> of file <a class="el" href="_screen_8h_source.html">Screen.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2dafde8aecbd3bc3c4394f36df913b64"></a><!-- doxytag: member="Screen::_drawing" ref="a2dafde8aecbd3bc3c4394f36df913b64" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_allegro_drawing_init.html">AllegroDrawingInit</a> <a class="el" href="class_screen.html#a2dafde8aecbd3bc3c4394f36df913b64">Screen::_drawing</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Ensures that drawing operations have been installed, for drawing splash screens. </p>
+
+<p>Definition at line <a class="el" href="_screen_8h_source.html#l00136">136</a> of file <a class="el" href="_screen_8h_source.html">Screen.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae7f213f79bf9680e0ff3f4b52ebf051f"></a><!-- doxytag: member="Screen::_exitClicked" ref="ae7f213f79bf9680e0ff3f4b52ebf051f" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool <a class="el" href="class_screen.html#ae7f213f79bf9680e0ff3f4b52ebf051f">Screen::_exitClicked</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Set to true when the user chooses to quit the game. </p>
+
+<p>Definition at line <a class="el" href="_screen_8h_source.html#l00138">138</a> of file <a class="el" href="_screen_8h_source.html">Screen.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a42a627863a8f9d1529278cb060d4102b"></a><!-- doxytag: member="Screen::_font" ref="a42a627863a8f9d1529278cb060d4102b" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ALLEGRO_FONT* <a class="el" href="class_screen.html#a42a627863a8f9d1529278cb060d4102b">Screen::_font</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Font used in drawing splash screens. </p>
+
+<p>Definition at line <a class="el" href="_screen_8h_source.html#l00148">148</a> of file <a class="el" href="_screen_8h_source.html">Screen.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7cba9fb0069d763055ef351452a15227"></a><!-- doxytag: member="Screen::_gameAreaWidth" ref="a7cba9fb0069d763055ef351452a15227" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">unsigned int <a class="el" href="class_screen.html#a7cba9fb0069d763055ef351452a15227">Screen::_gameAreaWidth</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Width of the <a class="el" href="class_game_panel.html" title="ScreenPanel to be drawn on the screen to draw the area where the game takes place.">GamePanel</a> created. </p>
+
+<p>Definition at line <a class="el" href="_screen_8h_source.html#l00143">143</a> of file <a class="el" href="_screen_8h_source.html">Screen.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab895e588a89e1943303487d47a2b9216"></a><!-- doxytag: member="Screen::_infoPanelWidth" ref="ab895e588a89e1943303487d47a2b9216" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">unsigned int <a class="el" href="class_screen.html#ab895e588a89e1943303487d47a2b9216">Screen::_infoPanelWidth</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Width of the <a class="el" href="class_info_panel.html" title="ScreenPanel to be drawn on the screen to give the player information.">InfoPanel</a> created. The <a class="el" href="class_info_panel.html" title="ScreenPanel to be drawn on the screen to give the player information.">InfoPanel</a> is placed directly to the right of the <a class="el" href="class_game_panel.html" title="ScreenPanel to be drawn on the screen to draw the area where the game takes place.">GamePanel</a>. </p>
+
+<p>Definition at line <a class="el" href="_screen_8h_source.html#l00144">144</a> of file <a class="el" href="_screen_8h_source.html">Screen.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0c5cff1b93dae4d559a81d261a8bcee6"></a><!-- doxytag: member="Screen::_keyboard" ref="a0c5cff1b93dae4d559a81d261a8bcee6" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_allegro_keyboard_init.html">AllegroKeyboardInit</a> <a class="el" href="class_screen.html#a0c5cff1b93dae4d559a81d261a8bcee6">Screen::_keyboard</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Ensures that the keyboard has been installed, for checking for the ESC key. </p>
+
+<p>Definition at line <a class="el" href="_screen_8h_source.html#l00135">135</a> of file <a class="el" href="_screen_8h_source.html">Screen.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a30ba66122613181e312e0d7586d2a814"></a><!-- doxytag: member="Screen::_panels" ref="a30ba66122613181e312e0d7586d2a814" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">vector&lt;<a class="el" href="class_screen_panel.html">ScreenPanel</a>*&gt; <a class="el" href="class_screen.html#a30ba66122613181e312e0d7586d2a814">Screen::_panels</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Polymorphic container used to encapsulate the different types of drawing to the screen. </p>
+<p>Since the memory of the ScreenPanels in the vector is allocated dynamically, it must be deallocated in the destructor. </p>
+
+<p>Definition at line <a class="el" href="_screen_8h_source.html#l00156">156</a> of file <a class="el" href="_screen_8h_source.html">Screen.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8784c86e10d2b6af0dd99d710f3955e9"></a><!-- doxytag: member="Screen::_screenHeight" ref="a8784c86e10d2b6af0dd99d710f3955e9" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">unsigned int <a class="el" href="class_screen.html#a8784c86e10d2b6af0dd99d710f3955e9">Screen::_screenHeight</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Vertical number of pixels per column on the screen. </p>
+
+<p>Definition at line <a class="el" href="_screen_8h_source.html#l00141">141</a> of file <a class="el" href="_screen_8h_source.html">Screen.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5931238a3eb8cf1a14b0f8b8d7044b65"></a><!-- doxytag: member="Screen::_screenWidth" ref="a5931238a3eb8cf1a14b0f8b8d7044b65" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">unsigned int <a class="el" href="class_screen.html#a5931238a3eb8cf1a14b0f8b8d7044b65">Screen::_screenWidth</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Horizontal number of pixels per row on the screen. </p>
+
+<p>Definition at line <a class="el" href="_screen_8h_source.html#l00140">140</a> of file <a class="el" href="_screen_8h_source.html">Screen.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa4ea622368bdf47a3b22d026048ee83a"></a><!-- doxytag: member="Screen::_windowEvents" ref="aa4ea622368bdf47a3b22d026048ee83a" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ALLEGRO_EVENT_QUEUE* <a class="el" href="class_screen.html#aa4ea622368bdf47a3b22d026048ee83a">Screen::_windowEvents</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Events caught by the screen, checked for an exit command. </p>
+
+<p>Definition at line <a class="el" href="_screen_8h_source.html#l00147">147</a> of file <a class="el" href="_screen_8h_source.html">Screen.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>source/presentation/<a class="el" href="_screen_8h_source.html">Screen.h</a></li>
+<li>source/presentation/<a class="el" href="_screen_8cpp_source.html">Screen.cpp</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_screen_panel-members.html b/docs/html/class_screen_panel-members.html
new file mode 100644
index 0000000..2ffc48b
--- /dev/null
+++ b/docs/html/class_screen_panel-members.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Member List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">ScreenPanel Member List</div> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="class_screen_panel.html">ScreenPanel</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="class_screen_panel.html#a3877f04c03866e35588f0b753ee7c485">_allegro</a></td><td><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen_panel.html#a1a3ec8e60be5d5cede210171bda33468">_back</a></td><td><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen_panel.html#a0a3232c41ca107b2cceee73aa0e0d7fe">_front</a></td><td><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen_panel.html#a4f6dd5c7ca10d51bface7b1ddedc236c">_height</a></td><td><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen_panel.html#afbbcad2a101b95869dcdef9bf0898f65">_width</a></td><td><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen_panel.html#a1cc6ea44035f47d77d24b4cee9dc9d85">BLANK</a></td><td><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td><code> [protected, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen_panel.html#ab4299f065cdf3e344c3b32b484136ada">draw</a>(const Maze &amp;maze, const list&lt; PlayerCar &gt; &amp;players, const list&lt; EnemyCar &gt; &amp;enemies, const list&lt; Checkpoint &gt; &amp;checkpoints, const list&lt; Rock &gt; &amp;rocks, const list&lt; Smokescreen &gt; &amp;smokescreens, const list&lt; DestroyedObjectPopup &gt; &amp;popups)=0</td><td><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td><code> [pure virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen_panel.html#ab701d3888b13463d200be112f0eb4d82">flip</a>()</td><td><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td><code> [virtual]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen_panel.html#a896035d9c68aecd6ca802e2223d26ec5">operator=</a>(const ScreenPanel &amp;rhs)</td><td><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen_panel.html#a8c13559489444ea8131066fa5b884645">ScreenPanel</a>(ALLEGRO_BITMAP *back, ALLEGRO_BITMAP *front, int x, int y, int width, int height)</td><td><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen_panel.html#a60c670cbb4930adcb77dc3002fdeb4df">ScreenPanel</a>(const ScreenPanel &amp;ref)</td><td><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td><code> [private]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_screen_panel.html#a843296c130c75beb41ada9ba3eddd457">~ScreenPanel</a>()</td><td><a class="el" href="class_screen_panel.html">ScreenPanel</a></td><td><code> [virtual]</code></td></tr>
+</table></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_screen_panel.html b/docs/html/class_screen_panel.html
new file mode 100644
index 0000000..cc72a9f
--- /dev/null
+++ b/docs/html/class_screen_panel.html
@@ -0,0 +1,508 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: ScreenPanel Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="#pro-static-attribs">Static Protected Attributes</a> &#124;
+<a href="#pri-methods">Private Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> </div>
+ <div class="headertitle">
+<div class="title">ScreenPanel Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="ScreenPanel" -->
+<p>Parent class for panels that are drawn on the screen.
+ <a href="class_screen_panel.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_screen_panel_8h_source.html">ScreenPanel.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for ScreenPanel:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="class_screen_panel.png" usemap="#ScreenPanel_map" alt=""/>
+ <map id="ScreenPanel_map" name="ScreenPanel_map">
+<area href="class_game_panel.html" title="ScreenPanel to be drawn on the screen to draw the area where the game takes place." alt="GamePanel" shape="rect" coords="0,56,85,80"/>
+<area href="class_info_panel.html" title="ScreenPanel to be drawn on the screen to give the player information." alt="InfoPanel" shape="rect" coords="95,56,180,80"/>
+</map>
+ </div></div>
+
+<p><a href="class_screen_panel-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen_panel.html#a8c13559489444ea8131066fa5b884645">ScreenPanel</a> (ALLEGRO_BITMAP *back, ALLEGRO_BITMAP *front, int x, int y, int width, int height)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a <a class="el" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a> from the given back and front buffers. <a href="#a8c13559489444ea8131066fa5b884645"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen_panel.html#a843296c130c75beb41ada9ba3eddd457">~ScreenPanel</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor to ensure that sub-bitmap memory is deallocated. <a href="#a843296c130c75beb41ada9ba3eddd457"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen_panel.html#ab4299f065cdf3e344c3b32b484136ada">draw</a> (const <a class="el" href="class_maze.html">Maze</a> &amp;maze, const list&lt; <a class="el" href="class_player_car.html">PlayerCar</a> &gt; &amp;players, const list&lt; <a class="el" href="class_enemy_car.html">EnemyCar</a> &gt; &amp;enemies, const list&lt; <a class="el" href="class_checkpoint.html">Checkpoint</a> &gt; &amp;checkpoints, const list&lt; <a class="el" href="class_rock.html">Rock</a> &gt; &amp;rocks, const list&lt; <a class="el" href="class_smokescreen.html">Smokescreen</a> &gt; &amp;smokescreens, const list&lt; <a class="el" href="class_destroyed_object_popup.html">DestroyedObjectPopup</a> &gt; &amp;popups)=0</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Pure virtual method for drawing a collection of objects onto the panel. <a href="#ab4299f065cdf3e344c3b32b484136ada"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen_panel.html#ab701d3888b13463d200be112f0eb4d82">flip</a> ()</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Swaps the front and back buffers. <a href="#ab701d3888b13463d200be112f0eb4d82"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ALLEGRO_BITMAP *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen_panel.html#a1a3ec8e60be5d5cede210171bda33468">_back</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The back buffer. Only the back buffer can be drawn to. <a href="#a1a3ec8e60be5d5cede210171bda33468"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen_panel.html#afbbcad2a101b95869dcdef9bf0898f65">_width</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The width of the sub-bitmaps being drawn to in pixels. <a href="#afbbcad2a101b95869dcdef9bf0898f65"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen_panel.html#a4f6dd5c7ca10d51bface7b1ddedc236c">_height</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The height of the sub-bitmaps being drawn to in pixels. <a href="#a4f6dd5c7ca10d51bface7b1ddedc236c"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pro-static-attribs"></a>
+Static Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const ALLEGRO_COLOR&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen_panel.html#a1cc6ea44035f47d77d24b4cee9dc9d85">BLANK</a> = al_map_rgb(0,0,0)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Colour used to clear the screen at the beginning of drawing operations. <a href="#a1cc6ea44035f47d77d24b4cee9dc9d85"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-methods"></a>
+Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen_panel.html#a60c670cbb4930adcb77dc3002fdeb4df">ScreenPanel</a> (const <a class="el" href="class_screen_panel.html">ScreenPanel</a> &amp;ref)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor not implemented, ScreenPanels should not be copied. <a href="#a60c670cbb4930adcb77dc3002fdeb4df"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_screen_panel.html">ScreenPanel</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen_panel.html#a896035d9c68aecd6ca802e2223d26ec5">operator=</a> (const <a class="el" href="class_screen_panel.html">ScreenPanel</a> &amp;rhs)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator not implemented, ScreenPanels should not be copied. <a href="#a896035d9c68aecd6ca802e2223d26ec5"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_allegro_init.html">AllegroInit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen_panel.html#a3877f04c03866e35588f0b753ee7c485">_allegro</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles dependencies on Allegro being initialised. <a href="#a3877f04c03866e35588f0b753ee7c485"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">ALLEGRO_BITMAP *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_screen_panel.html#a0a3232c41ca107b2cceee73aa0e0d7fe">_front</a></td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The front buffer, that is currently being shown on the screen. <a href="#a0a3232c41ca107b2cceee73aa0e0d7fe"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Parent class for panels that are drawn on the screen. </p>
+<p>Panels are given a sub-bitmap of the <a class="el" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a> bitmap, which they draw their panel specific outputs on. The <a class="el" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a> class is subclassed to give specific drawing functions, like drawing the <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> and GameObjects on the screen.</p>
+<p>When the object is created, the back bitmap and front bitmap should correspond to the back and front buffers of the display respectively. This should be kept in sync by calling flip every time the display is flipped.</p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_screen_panel_8h_source.html#l00029">29</a> of file <a class="el" href="_screen_panel_8h_source.html">ScreenPanel.h</a>.</p>
+</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a8c13559489444ea8131066fa5b884645"></a><!-- doxytag: member="ScreenPanel::ScreenPanel" ref="a8c13559489444ea8131066fa5b884645" args="(ALLEGRO_BITMAP *back, ALLEGRO_BITMAP *front, int x, int y, int width, int height)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ScreenPanel::ScreenPanel </td>
+ <td>(</td>
+ <td class="paramtype">ALLEGRO_BITMAP *&#160;</td>
+ <td class="paramname"><em>back</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">ALLEGRO_BITMAP *&#160;</td>
+ <td class="paramname"><em>front</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>width</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>height</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Creates a <a class="el" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a> from the given back and front buffers. </p>
+<p>The sub-bitmaps that <a class="el" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a> uses are created from a rectangular region on back and front that has its top left corner at the coordinate x,y, is width long in the x direction, and height long in the y direction.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">back</td><td>The current back buffer of the display being sub-bitmapped. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">front</td><td>The current front buffer (image currently being displayed) of the display being sub-bitmapped. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>The x coordinate of the left side of the sub-bitmap in pixels. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>The x coordinate of the top of the sub-bitmap in pixels. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">width</td><td>The length in the x direction of the new sub-bitmap in pixels. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">height</td><td>The length in the y direction of the new sub-bitmap in pixels. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_screen_panel_8cpp_source.html#l00005">5</a> of file <a class="el" href="_screen_panel_8cpp_source.html">ScreenPanel.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a843296c130c75beb41ada9ba3eddd457"></a><!-- doxytag: member="ScreenPanel::~ScreenPanel" ref="a843296c130c75beb41ada9ba3eddd457" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ScreenPanel::~ScreenPanel </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td><code> [virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Destructor to ensure that sub-bitmap memory is deallocated. </p>
+
+<p>Definition at line <a class="el" href="_screen_panel_8cpp_source.html#l00013">13</a> of file <a class="el" href="_screen_panel_8cpp_source.html">ScreenPanel.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a60c670cbb4930adcb77dc3002fdeb4df"></a><!-- doxytag: member="ScreenPanel::ScreenPanel" ref="a60c670cbb4930adcb77dc3002fdeb4df" args="(const ScreenPanel &amp;ref)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ScreenPanel::ScreenPanel </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_screen_panel.html">ScreenPanel</a> &amp;&#160;</td>
+ <td class="paramname"><em>ref</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Copy constructor not implemented, ScreenPanels should not be copied. </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="ab4299f065cdf3e344c3b32b484136ada"></a><!-- doxytag: member="ScreenPanel::draw" ref="ab4299f065cdf3e344c3b32b484136ada" args="(const Maze &amp;maze, const list&lt; PlayerCar &gt; &amp;players, const list&lt; EnemyCar &gt; &amp;enemies, const list&lt; Checkpoint &gt; &amp;checkpoints, const list&lt; Rock &gt; &amp;rocks, const list&lt; Smokescreen &gt; &amp;smokescreens, const list&lt; DestroyedObjectPopup &gt; &amp;popups)=0" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void ScreenPanel::draw </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_maze.html">Maze</a> &amp;&#160;</td>
+ <td class="paramname"><em>maze</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_player_car.html">PlayerCar</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>players</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_enemy_car.html">EnemyCar</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>enemies</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_checkpoint.html">Checkpoint</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>checkpoints</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_rock.html">Rock</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>rocks</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_smokescreen.html">Smokescreen</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>smokescreens</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const list&lt; <a class="el" href="class_destroyed_object_popup.html">DestroyedObjectPopup</a> &gt; &amp;&#160;</td>
+ <td class="paramname"><em>popups</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td><code> [pure virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Pure virtual method for drawing a collection of objects onto the panel. </p>
+<p>Implementations do not need to draw all of the objects if it is not neccesary for the type of panel, but the interface accepts all of them to be general.</p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">maze</td><td>The <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> that all of the objects are in. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">players</td><td>The list of PlayerCars to be drawn. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">enemies</td><td>The list of EnemyCars to be drawn. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">checkpoints</td><td>The list of Checkpoints to be drawn. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">rocks</td><td>The list of Rocks to be drawn. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">smokescreens</td><td>The list of Smokescreens to be drawn. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">popups</td><td>The list of DestroyedObjectPopups to be drawn. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Implemented in <a class="el" href="class_info_panel.html#aa9628c14e08ac6573e0191d9d4afa227">InfoPanel</a>, and <a class="el" href="class_game_panel.html#ab093fb770fa8b46ee863947259c72abd">GamePanel</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab701d3888b13463d200be112f0eb4d82"></a><!-- doxytag: member="ScreenPanel::flip" ref="ab701d3888b13463d200be112f0eb4d82" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void ScreenPanel::flip </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td><code> [virtual]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Swaps the front and back buffers. </p>
+<p>This function should be called every time the display is flipped. </p>
+
+<p>Definition at line <a class="el" href="_screen_panel_8cpp_source.html#l00019">19</a> of file <a class="el" href="_screen_panel_8cpp_source.html">ScreenPanel.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a896035d9c68aecd6ca802e2223d26ec5"></a><!-- doxytag: member="ScreenPanel::operator=" ref="a896035d9c68aecd6ca802e2223d26ec5" args="(const ScreenPanel &amp;rhs)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_screen_panel.html">ScreenPanel</a>&amp; ScreenPanel::operator= </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="class_screen_panel.html">ScreenPanel</a> &amp;&#160;</td>
+ <td class="paramname"><em>rhs</em></td><td>)</td>
+ <td><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Assignment operator not implemented, ScreenPanels should not be copied. </p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="a3877f04c03866e35588f0b753ee7c485"></a><!-- doxytag: member="ScreenPanel::_allegro" ref="a3877f04c03866e35588f0b753ee7c485" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="class_allegro_init.html">AllegroInit</a> <a class="el" href="class_screen_panel.html#a3877f04c03866e35588f0b753ee7c485">ScreenPanel::_allegro</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Handles dependencies on Allegro being initialised. </p>
+
+<p>Reimplemented in <a class="el" href="class_game_panel.html#a18c100c8d9ae2601a97083485d937418">GamePanel</a>.</p>
+
+<p>Definition at line <a class="el" href="_screen_panel_8h_source.html#l00093">93</a> of file <a class="el" href="_screen_panel_8h_source.html">ScreenPanel.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1a3ec8e60be5d5cede210171bda33468"></a><!-- doxytag: member="ScreenPanel::_back" ref="a1a3ec8e60be5d5cede210171bda33468" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ALLEGRO_BITMAP* <a class="el" href="class_screen_panel.html#a1a3ec8e60be5d5cede210171bda33468">ScreenPanel::_back</a><code> [protected]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The back buffer. Only the back buffer can be drawn to. </p>
+
+<p>Definition at line <a class="el" href="_screen_panel_8h_source.html#l00079">79</a> of file <a class="el" href="_screen_panel_8h_source.html">ScreenPanel.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0a3232c41ca107b2cceee73aa0e0d7fe"></a><!-- doxytag: member="ScreenPanel::_front" ref="a0a3232c41ca107b2cceee73aa0e0d7fe" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">ALLEGRO_BITMAP* <a class="el" href="class_screen_panel.html#a0a3232c41ca107b2cceee73aa0e0d7fe">ScreenPanel::_front</a><code> [private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The front buffer, that is currently being shown on the screen. </p>
+
+<p>Definition at line <a class="el" href="_screen_panel_8h_source.html#l00095">95</a> of file <a class="el" href="_screen_panel_8h_source.html">ScreenPanel.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4f6dd5c7ca10d51bface7b1ddedc236c"></a><!-- doxytag: member="ScreenPanel::_height" ref="a4f6dd5c7ca10d51bface7b1ddedc236c" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int <a class="el" href="class_screen_panel.html#a4f6dd5c7ca10d51bface7b1ddedc236c">ScreenPanel::_height</a><code> [protected]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The height of the sub-bitmaps being drawn to in pixels. </p>
+
+<p>Definition at line <a class="el" href="_screen_panel_8h_source.html#l00082">82</a> of file <a class="el" href="_screen_panel_8h_source.html">ScreenPanel.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afbbcad2a101b95869dcdef9bf0898f65"></a><!-- doxytag: member="ScreenPanel::_width" ref="afbbcad2a101b95869dcdef9bf0898f65" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int <a class="el" href="class_screen_panel.html#afbbcad2a101b95869dcdef9bf0898f65">ScreenPanel::_width</a><code> [protected]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The width of the sub-bitmaps being drawn to in pixels. </p>
+
+<p>Definition at line <a class="el" href="_screen_panel_8h_source.html#l00081">81</a> of file <a class="el" href="_screen_panel_8h_source.html">ScreenPanel.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1cc6ea44035f47d77d24b4cee9dc9d85"></a><!-- doxytag: member="ScreenPanel::BLANK" ref="a1cc6ea44035f47d77d24b4cee9dc9d85" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ALLEGRO_COLOR <a class="el" href="class_screen_panel.html#a1cc6ea44035f47d77d24b4cee9dc9d85">ScreenPanel::BLANK</a> = al_map_rgb(0,0,0)<code> [static, protected]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Colour used to clear the screen at the beginning of drawing operations. </p>
+
+<p>Definition at line <a class="el" href="_screen_panel_8h_source.html#l00077">77</a> of file <a class="el" href="_screen_panel_8h_source.html">ScreenPanel.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>source/presentation/<a class="el" href="_screen_panel_8h_source.html">ScreenPanel.h</a></li>
+<li>source/presentation/<a class="el" href="_screen_panel_8cpp_source.html">ScreenPanel.cpp</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_screen_panel.png b/docs/html/class_screen_panel.png
new file mode 100644
index 0000000..75173be
--- /dev/null
+++ b/docs/html/class_screen_panel.png
Binary files differ
diff --git a/docs/html/class_smokescreen-members.html b/docs/html/class_smokescreen-members.html
new file mode 100644
index 0000000..7217351
--- /dev/null
+++ b/docs/html/class_smokescreen-members.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Member List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">Smokescreen Member List</div> </div>
+</div>
+<div class="contents">
+This is the complete list of members for <a class="el" href="class_smokescreen.html">Smokescreen</a>, including all inherited members.<table>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#adc4a399cc59d5706f75748fb3846faec">_destroyed</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a24d36b1a64504298700a7ae7111fad5d">_facing</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a8b0aa105507a8a9559bbc2a66198ccd6">_image</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614">_x</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e">_y</a></td><td><a class="el" href="class_game_object.html">GameObject</a></td><td><code> [protected]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a266871f6c0220f6b3c902075ebff8eea">destroyed</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a2549066ec4dc8f4ca2d3a8c5d5729324">facing</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a26cba01b9c2d301d4ee89a98b9396d67">GameObject</a>(double x, double y, BitmapStore::Image image, Maze::Direction facing=Maze::UP)</td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a05e352e3e01e774892beee0503fdb349">image</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_limited_time_object.html#a0993f1696ed62abc3ef7856e4da7ae0e">LimitedTimeObject</a>(double x, double y, BitmapStore::Image image, int time)</td><td><a class="el" href="class_limited_time_object.html">LimitedTimeObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_smokescreen.html#aca053d39fcca8d45096512e92fb0f4d8">SMOKE_TIME</a></td><td><a class="el" href="class_smokescreen.html">Smokescreen</a></td><td><code> [private, static]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_smokescreen.html#ad112d610ab5b88da319e0cf46a5a1344">Smokescreen</a>(double x, double y)</td><td><a class="el" href="class_smokescreen.html">Smokescreen</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_limited_time_object.html#ad81a1c9aba4e21dfa40b9e6d881aba4e">update</a>()</td><td><a class="el" href="class_limited_time_object.html">LimitedTimeObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8">x</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b">y</a>() const </td><td><a class="el" href="class_game_object.html">GameObject</a></td><td></td></tr>
+</table></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_smokescreen.html b/docs/html/class_smokescreen.html
new file mode 100644
index 0000000..f8ff14a
--- /dev/null
+++ b/docs/html/class_smokescreen.html
@@ -0,0 +1,208 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Smokescreen Class Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pri-static-attribs">Static Private Attributes</a> </div>
+ <div class="headertitle">
+<div class="title">Smokescreen Class Reference</div> </div>
+</div>
+<div class="contents">
+<!-- doxytag: class="Smokescreen" --><!-- doxytag: inherits="LimitedTimeObject" -->
+<p><a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> that causes the <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> to be delayed if they crash into it.
+ <a href="class_smokescreen.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_smokescreen_8h_source.html">Smokescreen.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for Smokescreen:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="class_smokescreen.png" usemap="#Smokescreen_map" alt=""/>
+ <map id="Smokescreen_map" name="Smokescreen_map">
+<area href="class_limited_time_object.html" title="Parent class for GameObjects that are created, exist for a given time, and are then destroyed..." alt="LimitedTimeObject" shape="rect" coords="0,56,114,80"/>
+<area href="class_game_object.html" title="Parent class for objects that are placed in the maze." alt="GameObject" shape="rect" coords="0,0,114,24"/>
+</map>
+ </div></div>
+
+<p><a href="class_smokescreen-members.html">List of all members.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_smokescreen.html#ad112d610ab5b88da319e0cf46a5a1344">Smokescreen</a> (double x, double y)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> at the given location. <a href="#ad112d610ab5b88da319e0cf46a5a1344"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="pri-static-attribs"></a>
+Static Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_smokescreen.html#aca053d39fcca8d45096512e92fb0f4d8">SMOKE_TIME</a> = 60</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of frames that the <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> exists before it is destroyed. 2 second at FPS=30. <a href="#aca053d39fcca8d45096512e92fb0f4d8"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> that causes the <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> to be delayed if they crash into it. </p>
+<p>After a short time, the SmokeScreen dissipates.</p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition at line <a class="el" href="_smokescreen_8h_source.html#l00015">15</a> of file <a class="el" href="_smokescreen_8h_source.html">Smokescreen.h</a>.</p>
+</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="ad112d610ab5b88da319e0cf46a5a1344"></a><!-- doxytag: member="Smokescreen::Smokescreen" ref="ad112d610ab5b88da319e0cf46a5a1344" args="(double x, double y)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Smokescreen::Smokescreen </td>
+ <td>(</td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>y</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Creates a <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> at the given location. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>The x coordinate of the object's position. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>The y coordinate of the object's position. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_smokescreen_8cpp_source.html#l00003">3</a> of file <a class="el" href="_smokescreen_8cpp_source.html">Smokescreen.cpp</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Member Data Documentation</h2>
+<a class="anchor" id="aca053d39fcca8d45096512e92fb0f4d8"></a><!-- doxytag: member="Smokescreen::SMOKE_TIME" ref="aca053d39fcca8d45096512e92fb0f4d8" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const int <a class="el" href="class_smokescreen.html#aca053d39fcca8d45096512e92fb0f4d8">Smokescreen::SMOKE_TIME</a> = 60<code> [static, private]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The number of frames that the <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> exists before it is destroyed. 2 second at FPS=30. </p>
+
+<p>Definition at line <a class="el" href="_smokescreen_8h_source.html#l00028">28</a> of file <a class="el" href="_smokescreen_8h_source.html">Smokescreen.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>source/logic/<a class="el" href="_smokescreen_8h_source.html">Smokescreen.h</a></li>
+<li>source/logic/<a class="el" href="_smokescreen_8cpp_source.html">Smokescreen.cpp</a></li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/class_smokescreen.png b/docs/html/class_smokescreen.png
new file mode 100644
index 0000000..c097b4d
--- /dev/null
+++ b/docs/html/class_smokescreen.png
Binary files differ
diff --git a/docs/html/classes.html b/docs/html/classes.html
new file mode 100644
index 0000000..360b072
--- /dev/null
+++ b/docs/html/classes.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Index</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li class="current"><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">Class Index</div> </div>
+</div>
+<div class="contents">
+<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_E">E</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_G">G</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_K">K</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a></div>
+<table style="margin: 10px;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
+<tr><td rowspan="2" valign="bottom"><a name="letter_A"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;A&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="class_checkpoint.html">Checkpoint</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_G"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;G&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_L"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;L&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;S&#160;&#160;</div></td></tr></table>
+</td></tr>
+<tr><td valign="top"><a class="el" href="class_collision_detector.html">CollisionDetector</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_allegro_drawing_init.html">AllegroDrawingInit</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_colour_store.html">ColourStore</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_game.html">Game</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_level_reader.html">LevelReader</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_screen.html">Screen</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_allegro_init.html">AllegroInit</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_config.html">Config</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_game_object.html">GameObject</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_limited_time_object.html">LimitedTimeObject</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_screen_panel.html">ScreenPanel</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_allegro_keyboard_init.html">AllegroKeyboardInit</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;D&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="class_game_panel.html">GamePanel</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;M&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="class_smokescreen.html">Smokescreen</a>&#160;&#160;&#160;</td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_B"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;B&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;I&#160;&#160;</div></td></tr></table>
+</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="class_destroyed_object_popup.html">DestroyedObjectPopup</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_maze.html">Maze</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="class_bad_resolution.html">BadResolution</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_E"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;E&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="class_info_panel.html">InfoPanel</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_maze_math.html">MazeMath</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="class_bitmap_store.html">BitmapStore</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_install_failure.html">InstallFailure</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_P"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;P&#160;&#160;</div></td></tr></table>
+</td><td></td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;C&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="class_enemy_car.html">EnemyCar</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_K"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;K&#160;&#160;</div></td></tr></table>
+</td><td></td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_F"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;F&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="class_player_car.html">PlayerCar</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="class_car.html">Car</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;R&#160;&#160;</div></td></tr></table>
+</td><td></td></tr>
+<tr><td></td><td valign="top"><a class="el" href="class_file_open_error.html">FileOpenError</a>&#160;&#160;&#160;</td><td></td><td></td></tr>
+<tr><td></td><td></td><td></td><td valign="top"><a class="el" href="class_rock.html">Rock</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td></td><td></td><td></td><td></td><td></td></tr>
+</table>
+<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_E">E</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_G">G</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_K">K</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/closed.png b/docs/html/closed.png
new file mode 100644
index 0000000..b7d4bd9
--- /dev/null
+++ b/docs/html/closed.png
Binary files differ
diff --git a/docs/html/data_tests_8cpp.html b/docs/html/data_tests_8cpp.html
new file mode 100644
index 0000000..2aba791
--- /dev/null
+++ b/docs/html/data_tests_8cpp.html
@@ -0,0 +1,305 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: tests/dataTests.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">tests/dataTests.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+
+<p>Unit tests for the data layer of a Rally-X game.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &lt;cstdio&gt;</code><br/>
+<code>#include &lt;fstream&gt;</code><br/>
+<code>#include &lt;gtest/gtest.h&gt;</code><br/>
+<code>#include &quot;../source/data/Config.h&quot;</code><br/>
+<code>#include &quot;../source/data/LevelReader.h&quot;</code><br/>
+<code>#include &quot;../source/logic/PlayerCar.h&quot;</code><br/>
+<code>#include &quot;../source/logic/EnemyCar.h&quot;</code><br/>
+<code>#include &quot;../source/logic/Checkpoint.h&quot;</code><br/>
+<code>#include &quot;../source/logic/Rock.h&quot;</code><br/>
+<code>#include &quot;../source/logic/Smokescreen.h&quot;</code><br/>
+<code>#include &quot;../source/logic/Maze.h&quot;</code><br/>
+</div>
+<p><a href="data_tests_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8">TEST</a> (<a class="el" href="class_config.html">Config</a>, readsSettingsCorrectly)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that a normal complete config file can be read. <a href="#a7612e068db66f415f3b230260450eba8"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="data_tests_8cpp.html#a2159abeac0546de95bbdd68b1e10c56c">TEST</a> (<a class="el" href="class_config.html">Config</a>, createsFileIfNeeded)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that, if the config file does not exist, it is created with default values. <a href="#a2159abeac0546de95bbdd68b1e10c56c"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="data_tests_8cpp.html#a49403434f62b3318444eff742d2b2231">TEST</a> (<a class="el" href="class_config.html">Config</a>, incompleteFileFilled)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that an incomplete config file is loaded, with defaults for the missing values. <a href="#a49403434f62b3318444eff742d2b2231"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="data_tests_8cpp.html#afc4fdfbf4ea1ef87d266b9b67cc665d1">TEST</a> (<a class="el" href="class_level_reader.html">LevelReader</a>, readsFileInfoObjects)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that a level can be loaded correctly from a file. <a href="#afc4fdfbf4ea1ef87d266b9b67cc665d1"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="data_tests_8cpp.html#a63083af852f9dfa8036f327f6fa84328">TEST</a> (<a class="el" href="class_level_reader.html">LevelReader</a>, throwsExceptionOnBadFilename)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that an exception is throws if the selected file does not exist. <a href="#a63083af852f9dfa8036f327f6fa84328"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Unit tests for the data layer of a Rally-X game. </p>
+<p>The functionality of each class in the data layer was tested.</p>
+<p>The <a class="el" href="class_config.html" title="Object for handling user settings loaded from a file.">Config</a> class was tested in terms of its ability to read an existing config file, as well as its ability to create a new file with default values, or fill missing parameters with default values.</p>
+<p>The <a class="el" href="class_level_reader.html" title="Reads the game objects from a text file and calls relevant constructors.">LevelReader</a> class was tested in the normal case, where a correct level file is given, and in the case where a file that does not exist is given.</p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition in file <a class="el" href="data_tests_8cpp_source.html">dataTests.cpp</a>.</p>
+</div><hr/><h2>Function Documentation</h2>
+<a class="anchor" id="a7612e068db66f415f3b230260450eba8"></a><!-- doxytag: member="dataTests.cpp::TEST" ref="a7612e068db66f415f3b230260450eba8" args="(Config, readsSettingsCorrectly)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_config.html">Config</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">readsSettingsCorrectly&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that a normal complete config file can be read. </p>
+
+<p>Definition at line <a class="el" href="data_tests_8cpp_source.html#l00035">35</a> of file <a class="el" href="data_tests_8cpp_source.html">dataTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2159abeac0546de95bbdd68b1e10c56c"></a><!-- doxytag: member="dataTests.cpp::TEST" ref="a2159abeac0546de95bbdd68b1e10c56c" args="(Config, createsFileIfNeeded)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_config.html">Config</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">createsFileIfNeeded&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that, if the config file does not exist, it is created with default values. </p>
+
+<p>Definition at line <a class="el" href="data_tests_8cpp_source.html#l00058">58</a> of file <a class="el" href="data_tests_8cpp_source.html">dataTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a49403434f62b3318444eff742d2b2231"></a><!-- doxytag: member="dataTests.cpp::TEST" ref="a49403434f62b3318444eff742d2b2231" args="(Config, incompleteFileFilled)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_config.html">Config</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">incompleteFileFilled&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that an incomplete config file is loaded, with defaults for the missing values. </p>
+
+<p>Definition at line <a class="el" href="data_tests_8cpp_source.html#l00078">78</a> of file <a class="el" href="data_tests_8cpp_source.html">dataTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afc4fdfbf4ea1ef87d266b9b67cc665d1"></a><!-- doxytag: member="dataTests.cpp::TEST" ref="afc4fdfbf4ea1ef87d266b9b67cc665d1" args="(LevelReader, readsFileInfoObjects)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_level_reader.html">LevelReader</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">readsFileInfoObjects&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that a level can be loaded correctly from a file. </p>
+
+<p>Definition at line <a class="el" href="data_tests_8cpp_source.html#l00099">99</a> of file <a class="el" href="data_tests_8cpp_source.html">dataTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a63083af852f9dfa8036f327f6fa84328"></a><!-- doxytag: member="dataTests.cpp::TEST" ref="a63083af852f9dfa8036f327f6fa84328" args="(LevelReader, throwsExceptionOnBadFilename)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_level_reader.html">LevelReader</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">throwsExceptionOnBadFilename&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that an exception is throws if the selected file does not exist. </p>
+
+<p>Definition at line <a class="el" href="data_tests_8cpp_source.html#l00174">174</a> of file <a class="el" href="data_tests_8cpp_source.html">dataTests.cpp</a>.</p>
+
+</div>
+</div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/data_tests_8cpp_source.html b/docs/html/data_tests_8cpp_source.html
new file mode 100644
index 0000000..163697e
--- /dev/null
+++ b/docs/html/data_tests_8cpp_source.html
@@ -0,0 +1,261 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: tests/dataTests.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">tests/dataTests.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="data_tests_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
+<a name="l00017"></a>00017 <span class="preprocessor">#include &lt;cstdio&gt;</span>
+<a name="l00018"></a>00018 <span class="preprocessor">#include &lt;fstream&gt;</span>
+<a name="l00019"></a>00019 <span class="keyword">using namespace </span>std;
+<a name="l00020"></a>00020
+<a name="l00021"></a>00021 <span class="preprocessor">#include &lt;gtest/gtest.h&gt;</span>
+<a name="l00022"></a>00022
+<a name="l00023"></a>00023 <span class="preprocessor">#include &quot;../source/data/Config.h&quot;</span>
+<a name="l00024"></a>00024 <span class="preprocessor">#include &quot;../source/data/LevelReader.h&quot;</span>
+<a name="l00025"></a>00025 <span class="preprocessor">#include &quot;../source/logic/PlayerCar.h&quot;</span>
+<a name="l00026"></a>00026 <span class="preprocessor">#include &quot;../source/logic/EnemyCar.h&quot;</span>
+<a name="l00027"></a>00027 <span class="preprocessor">#include &quot;../source/logic/Checkpoint.h&quot;</span>
+<a name="l00028"></a>00028 <span class="preprocessor">#include &quot;../source/logic/Rock.h&quot;</span>
+<a name="l00029"></a>00029 <span class="preprocessor">#include &quot;../source/logic/Smokescreen.h&quot;</span>
+<a name="l00030"></a>00030 <span class="preprocessor">#include &quot;../source/logic/Maze.h&quot;</span>
+<a name="l00031"></a>00031
+<a name="l00035"></a><a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8">00035</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_config.html" title="Object for handling user settings loaded from a file.">Config</a>, readsSettingsCorrectly)
+<a name="l00036"></a>00036 {
+<a name="l00037"></a>00037 <span class="keywordtype">string</span> testFilepath = <span class="stringliteral">&quot;testConfig.txt&quot;</span>;
+<a name="l00038"></a>00038 ofstream testFile(testFilepath.c_str());
+<a name="l00039"></a>00039
+<a name="l00040"></a>00040 testFile &lt;&lt; <span class="stringliteral">&quot;screen_width=123&quot;</span> &lt;&lt; endl;
+<a name="l00041"></a>00041 testFile &lt;&lt; <span class="stringliteral">&quot;screen_height=345&quot;</span> &lt;&lt; endl;
+<a name="l00042"></a>00042 testFile &lt;&lt; <span class="stringliteral">&quot;fullscreen=true&quot;</span> &lt;&lt; endl;
+<a name="l00043"></a>00043
+<a name="l00044"></a>00044 testFile.close();
+<a name="l00045"></a>00045
+<a name="l00046"></a>00046 <a class="code" href="class_config.html" title="Object for handling user settings loaded from a file.">Config</a> testConfig(testFilepath);
+<a name="l00047"></a>00047
+<a name="l00048"></a>00048 EXPECT_EQ((<span class="keywordtype">unsigned</span>)(123), testConfig.<a class="code" href="class_config.html#a3bb73797396d2d5ba8c9956730dfc4db" title="Function for accessing the screen width setting in pixels.">screenWidth</a>());
+<a name="l00049"></a>00049 EXPECT_EQ((<span class="keywordtype">unsigned</span>)(345), testConfig.<a class="code" href="class_config.html#a53d63c52aa51b5231b9ea8e412086773" title="Function for accessing the screen height setting in pixels.">screenHeight</a>());
+<a name="l00050"></a>00050 EXPECT_TRUE(testConfig.<a class="code" href="class_config.html#a8a401add779f2b74732ade9e515bf0cd" title="Function for accessing whether the game should be displayed in fullscreen or windowed mode...">fullscreen</a>());
+<a name="l00051"></a>00051
+<a name="l00052"></a>00052 <span class="keyword">remove</span>(testFilepath.c_str());
+<a name="l00053"></a>00053 }
+<a name="l00054"></a>00054
+<a name="l00058"></a><a class="code" href="data_tests_8cpp.html#a2159abeac0546de95bbdd68b1e10c56c">00058</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_config.html" title="Object for handling user settings loaded from a file.">Config</a>, createsFileIfNeeded)
+<a name="l00059"></a>00059 {
+<a name="l00060"></a>00060 <span class="keywordtype">string</span> testFilepath = <span class="stringliteral">&quot;testConfig.txt&quot;</span>;
+<a name="l00061"></a>00061 <a class="code" href="class_config.html" title="Object for handling user settings loaded from a file.">Config</a> testConfig(testFilepath);
+<a name="l00062"></a>00062
+<a name="l00063"></a>00063 ifstream testFile(testFilepath.c_str());
+<a name="l00064"></a>00064 EXPECT_TRUE(testFile);
+<a name="l00065"></a>00065 testFile.close();
+<a name="l00066"></a>00066
+<a name="l00067"></a>00067 <span class="comment">//test for default values</span>
+<a name="l00068"></a>00068 EXPECT_EQ((<span class="keywordtype">unsigned</span>)(800), testConfig.<a class="code" href="class_config.html#a3bb73797396d2d5ba8c9956730dfc4db" title="Function for accessing the screen width setting in pixels.">screenWidth</a>());
+<a name="l00069"></a>00069 EXPECT_EQ((<span class="keywordtype">unsigned</span>)(600), testConfig.<a class="code" href="class_config.html#a53d63c52aa51b5231b9ea8e412086773" title="Function for accessing the screen height setting in pixels.">screenHeight</a>());
+<a name="l00070"></a>00070 EXPECT_FALSE(testConfig.<a class="code" href="class_config.html#a8a401add779f2b74732ade9e515bf0cd" title="Function for accessing whether the game should be displayed in fullscreen or windowed mode...">fullscreen</a>());
+<a name="l00071"></a>00071
+<a name="l00072"></a>00072 <span class="keyword">remove</span>(testFilepath.c_str());
+<a name="l00073"></a>00073 }
+<a name="l00074"></a>00074
+<a name="l00078"></a><a class="code" href="data_tests_8cpp.html#a49403434f62b3318444eff742d2b2231">00078</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_config.html" title="Object for handling user settings loaded from a file.">Config</a>, incompleteFileFilled)
+<a name="l00079"></a>00079 {
+<a name="l00080"></a>00080 <span class="keywordtype">string</span> testFilepath = <span class="stringliteral">&quot;testConfig.txt&quot;</span>;
+<a name="l00081"></a>00081 ofstream testFile(testFilepath.c_str());
+<a name="l00082"></a>00082
+<a name="l00083"></a>00083 testFile &lt;&lt; <span class="stringliteral">&quot;screen_height=345&quot;</span> &lt;&lt; endl;
+<a name="l00084"></a>00084
+<a name="l00085"></a>00085 testFile.close();
+<a name="l00086"></a>00086
+<a name="l00087"></a>00087 <a class="code" href="class_config.html" title="Object for handling user settings loaded from a file.">Config</a> testConfig(testFilepath);
+<a name="l00088"></a>00088
+<a name="l00089"></a>00089 EXPECT_EQ((<span class="keywordtype">unsigned</span>)(800), testConfig.<a class="code" href="class_config.html#a3bb73797396d2d5ba8c9956730dfc4db" title="Function for accessing the screen width setting in pixels.">screenWidth</a>());
+<a name="l00090"></a>00090 EXPECT_EQ((<span class="keywordtype">unsigned</span>)(345), testConfig.<a class="code" href="class_config.html#a53d63c52aa51b5231b9ea8e412086773" title="Function for accessing the screen height setting in pixels.">screenHeight</a>());
+<a name="l00091"></a>00091 EXPECT_FALSE(testConfig.<a class="code" href="class_config.html#a8a401add779f2b74732ade9e515bf0cd" title="Function for accessing whether the game should be displayed in fullscreen or windowed mode...">fullscreen</a>());
+<a name="l00092"></a>00092
+<a name="l00093"></a>00093 <span class="keyword">remove</span>(testFilepath.c_str());
+<a name="l00094"></a>00094 }
+<a name="l00095"></a>00095
+<a name="l00099"></a><a class="code" href="data_tests_8cpp.html#afc4fdfbf4ea1ef87d266b9b67cc665d1">00099</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_level_reader.html" title="Reads the game objects from a text file and calls relevant constructors.">LevelReader</a>, readsFileInfoObjects)
+<a name="l00100"></a>00100 {
+<a name="l00101"></a>00101 <span class="keywordtype">string</span> testFilepath = <span class="stringliteral">&quot;testMaze.lvl&quot;</span>;
+<a name="l00102"></a>00102 ofstream testFile(testFilepath.c_str());
+<a name="l00103"></a>00103
+<a name="l00104"></a>00104 testFile &lt;&lt; <span class="stringliteral">&quot; P X &quot;</span> &lt;&lt; endl;
+<a name="l00105"></a>00105 testFile &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; endl;
+<a name="l00106"></a>00106 testFile &lt;&lt; <span class="stringliteral">&quot; @ &quot;</span> &lt;&lt; endl;
+<a name="l00107"></a>00107 testFile &lt;&lt; <span class="stringliteral">&quot; X&quot;</span> &lt;&lt; endl;
+<a name="l00108"></a>00108 testFile &lt;&lt; <span class="stringliteral">&quot;## &quot;</span> &lt;&lt; endl;
+<a name="l00109"></a>00109 testFile &lt;&lt; <span class="stringliteral">&quot; P &quot;</span> &lt;&lt; endl;
+<a name="l00110"></a>00110 testFile &lt;&lt; <span class="stringliteral">&quot; O &quot;</span> &lt;&lt; endl;
+<a name="l00111"></a>00111
+<a name="l00112"></a>00112 testFile.close();
+<a name="l00113"></a>00113
+<a name="l00114"></a>00114 <a class="code" href="class_level_reader.html" title="Reads the game objects from a text file and calls relevant constructors.">LevelReader</a> testReader(testFilepath);
+<a name="l00115"></a>00115 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> maze;
+<a name="l00116"></a>00116 list&lt;PlayerCar&gt; players;
+<a name="l00117"></a>00117 list&lt;EnemyCar&gt; enemies;
+<a name="l00118"></a>00118 list&lt;Checkpoint&gt; checkpoints;
+<a name="l00119"></a>00119 list&lt;Rock&gt; rocks;
+<a name="l00120"></a>00120 testReader.<a class="code" href="class_level_reader.html#a27277149f3270e040c8ffeadbca79758" title="Function to read the chosen file into the data structures used in the game.">readLevel</a>(maze, players, enemies, checkpoints, rocks);
+<a name="l00121"></a>00121
+<a name="l00122"></a>00122 list&lt;PlayerCar&gt; expectedPlayers;
+<a name="l00123"></a>00123 list&lt;EnemyCar&gt; expectedEnemies;
+<a name="l00124"></a>00124 list&lt;Checkpoint&gt; expectedCheckpoints;
+<a name="l00125"></a>00125 list&lt;Rock&gt; expectedRocks;
+<a name="l00126"></a>00126
+<a name="l00127"></a>00127 expectedPlayers.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(3,2));
+<a name="l00128"></a>00128 expectedEnemies.push_back(<a class="code" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>(3,0));
+<a name="l00129"></a>00129 expectedEnemies.push_back(<a class="code" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>(5,3));
+<a name="l00130"></a>00130 expectedCheckpoints.push_back(<a class="code" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>(2,0));
+<a name="l00131"></a>00131 expectedCheckpoints.push_back(<a class="code" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>(3,5));
+<a name="l00132"></a>00132 expectedRocks.push_back(<a class="code" href="class_rock.html" title="A game object that acts as an obstacle to the player.">Rock</a>(2,6));
+<a name="l00133"></a>00133
+<a name="l00134"></a>00134 <span class="comment">//eqality operator was not implemented for the GameObject class or its subclasses</span>
+<a name="l00135"></a>00135 <span class="comment">//because it would not be meaningful. Two objects with the same position, type, and facing</span>
+<a name="l00136"></a>00136 <span class="comment">//are still two different objects.</span>
+<a name="l00137"></a>00137 <span class="comment">//iterators were used because the list type does not have an &#39;at&#39; function.</span>
+<a name="l00138"></a>00138 list&lt;PlayerCar&gt;::const_iterator playIter = players.begin();
+<a name="l00139"></a>00139 EXPECT_FLOAT_EQ(playIter-&gt;x(), 3);
+<a name="l00140"></a>00140 EXPECT_FLOAT_EQ(playIter-&gt;y(), 2);
+<a name="l00141"></a>00141 ++playIter;
+<a name="l00142"></a>00142 EXPECT_EQ(playIter, players.end());
+<a name="l00143"></a>00143
+<a name="l00144"></a>00144 list&lt;EnemyCar&gt;::const_iterator enemyIter = enemies.begin();
+<a name="l00145"></a>00145 EXPECT_FLOAT_EQ(enemyIter-&gt;x(), 3);
+<a name="l00146"></a>00146 EXPECT_FLOAT_EQ(enemyIter-&gt;y(), 0);
+<a name="l00147"></a>00147 ++enemyIter;
+<a name="l00148"></a>00148 EXPECT_FLOAT_EQ(enemyIter-&gt;x(), 5);
+<a name="l00149"></a>00149 EXPECT_FLOAT_EQ(enemyIter-&gt;y(), 3);
+<a name="l00150"></a>00150 ++enemyIter;
+<a name="l00151"></a>00151 EXPECT_EQ(enemyIter, enemies.end());
+<a name="l00152"></a>00152
+<a name="l00153"></a>00153 list&lt;Checkpoint&gt;::const_iterator checkIter = checkpoints.begin();
+<a name="l00154"></a>00154 EXPECT_FLOAT_EQ(checkIter-&gt;x(), 1);
+<a name="l00155"></a>00155 EXPECT_FLOAT_EQ(checkIter-&gt;y(), 0);
+<a name="l00156"></a>00156 ++checkIter;
+<a name="l00157"></a>00157 EXPECT_FLOAT_EQ(checkIter-&gt;x(), 3);
+<a name="l00158"></a>00158 EXPECT_FLOAT_EQ(checkIter-&gt;y(), 5);
+<a name="l00159"></a>00159 ++checkIter;
+<a name="l00160"></a>00160 EXPECT_EQ(checkIter, checkpoints.end());
+<a name="l00161"></a>00161
+<a name="l00162"></a>00162 list&lt;Rock&gt;::const_iterator rockIter = rocks.begin();
+<a name="l00163"></a>00163 EXPECT_FLOAT_EQ(rockIter-&gt;x(), 2);
+<a name="l00164"></a>00164 EXPECT_FLOAT_EQ(rockIter-&gt;y(), 6);
+<a name="l00165"></a>00165 ++rockIter;
+<a name="l00166"></a>00166 EXPECT_EQ(rockIter, rocks.end());
+<a name="l00167"></a>00167
+<a name="l00168"></a>00168 <span class="keyword">remove</span>(testFilepath.c_str());
+<a name="l00169"></a>00169 }
+<a name="l00170"></a>00170
+<a name="l00174"></a><a class="code" href="data_tests_8cpp.html#a63083af852f9dfa8036f327f6fa84328">00174</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_level_reader.html" title="Reads the game objects from a text file and calls relevant constructors.">LevelReader</a>, throwsExceptionOnBadFilename)
+<a name="l00175"></a>00175 {
+<a name="l00176"></a>00176 <span class="keywordtype">string</span> testFilepath = <span class="stringliteral">&quot;testLevel.lvl&quot;</span>;
+<a name="l00177"></a>00177 <a class="code" href="class_level_reader.html" title="Reads the game objects from a text file and calls relevant constructors.">LevelReader</a> testReader(testFilepath);
+<a name="l00178"></a>00178 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> maze;
+<a name="l00179"></a>00179 list&lt;PlayerCar&gt; players;
+<a name="l00180"></a>00180 list&lt;EnemyCar&gt; enemies;
+<a name="l00181"></a>00181 list&lt;Checkpoint&gt; checkpoints;
+<a name="l00182"></a>00182 list&lt;Rock&gt; rocks;
+<a name="l00183"></a>00183 EXPECT_ANY_THROW(testReader.<a class="code" href="class_level_reader.html#a27277149f3270e040c8ffeadbca79758" title="Function to read the chosen file into the data structures used in the game.">readLevel</a>(maze, players, enemies, checkpoints, rocks));
+<a name="l00184"></a>00184 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/doxygen.css b/docs/html/doxygen.css
new file mode 100644
index 0000000..22c7b5c
--- /dev/null
+++ b/docs/html/doxygen.css
@@ -0,0 +1,946 @@
+/* The standard CSS for doxygen */
+
+body, table, div, p, dl {
+ font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
+ font-size: 12px;
+}
+
+/* @group Heading Levels */
+
+h1 {
+ font-size: 150%;
+}
+
+.title {
+ font-size: 150%;
+ font-weight: bold;
+ margin: 10px 2px;
+}
+
+h2 {
+ font-size: 120%;
+}
+
+h3 {
+ font-size: 100%;
+}
+
+dt {
+ font-weight: bold;
+}
+
+div.multicol {
+ -moz-column-gap: 1em;
+ -webkit-column-gap: 1em;
+ -moz-column-count: 3;
+ -webkit-column-count: 3;
+}
+
+p.startli, p.startdd, p.starttd {
+ margin-top: 2px;
+}
+
+p.endli {
+ margin-bottom: 0px;
+}
+
+p.enddd {
+ margin-bottom: 4px;
+}
+
+p.endtd {
+ margin-bottom: 2px;
+}
+
+/* @end */
+
+caption {
+ font-weight: bold;
+}
+
+span.legend {
+ font-size: 70%;
+ text-align: center;
+}
+
+h3.version {
+ font-size: 90%;
+ text-align: center;
+}
+
+div.qindex, div.navtab{
+ background-color: #EBEFF6;
+ border: 1px solid #A3B4D7;
+ text-align: center;
+}
+
+div.qindex, div.navpath {
+ width: 100%;
+ line-height: 140%;
+}
+
+div.navtab {
+ margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+ color: #3D578C;
+ font-weight: normal;
+ text-decoration: none;
+}
+
+.contents a:visited {
+ color: #4665A2;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+a.qindex {
+ font-weight: bold;
+}
+
+a.qindexHL {
+ font-weight: bold;
+ background-color: #9CAFD4;
+ color: #ffffff;
+ border: 1px double #869DCA;
+}
+
+.contents a.qindexHL:visited {
+ color: #ffffff;
+}
+
+a.el {
+ font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code {
+ color: #4665A2;
+}
+
+a.codeRef {
+ color: #4665A2;
+}
+
+/* @end */
+
+dl.el {
+ margin-left: -1cm;
+}
+
+.fragment {
+ font-family: monospace, fixed;
+ font-size: 105%;
+}
+
+pre.fragment {
+ border: 1px solid #C4CFE5;
+ background-color: #FBFCFD;
+ padding: 4px 6px;
+ margin: 4px 8px 4px 2px;
+ overflow: auto;
+ word-wrap: break-word;
+ font-size: 9pt;
+ line-height: 125%;
+}
+
+div.ah {
+ background-color: black;
+ font-weight: bold;
+ color: #ffffff;
+ margin-bottom: 3px;
+ margin-top: 3px;
+ padding: 0.2em;
+ border: solid thin #333;
+ border-radius: 0.5em;
+ -webkit-border-radius: .5em;
+ -moz-border-radius: .5em;
+ box-shadow: 2px 2px 3px #999;
+ -webkit-box-shadow: 2px 2px 3px #999;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+ background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
+}
+
+div.groupHeader {
+ margin-left: 16px;
+ margin-top: 12px;
+ font-weight: bold;
+}
+
+div.groupText {
+ margin-left: 16px;
+ font-style: italic;
+}
+
+body {
+ background-color: white;
+ color: black;
+ margin: 0;
+}
+
+div.contents {
+ margin-top: 10px;
+ margin-left: 8px;
+ margin-right: 8px;
+}
+
+td.indexkey {
+ background-color: #EBEFF6;
+ font-weight: bold;
+ border: 1px solid #C4CFE5;
+ margin: 2px 0px 2px 0;
+ padding: 2px 10px;
+}
+
+td.indexvalue {
+ background-color: #EBEFF6;
+ border: 1px solid #C4CFE5;
+ padding: 2px 10px;
+ margin: 2px 0px;
+}
+
+tr.memlist {
+ background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+ text-align: center;
+}
+
+img.formulaDsp {
+
+}
+
+img.formulaInl {
+ vertical-align: middle;
+}
+
+div.center {
+ text-align: center;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding: 0px;
+}
+
+div.center img {
+ border: 0px;
+}
+
+address.footer {
+ text-align: right;
+ padding-right: 12px;
+}
+
+img.footer {
+ border: 0px;
+ vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+ color: #008000
+}
+
+span.keywordtype {
+ color: #604020
+}
+
+span.keywordflow {
+ color: #e08000
+}
+
+span.comment {
+ color: #800000
+}
+
+span.preprocessor {
+ color: #806020
+}
+
+span.stringliteral {
+ color: #002080
+}
+
+span.charliteral {
+ color: #008080
+}
+
+span.vhdldigit {
+ color: #ff00ff
+}
+
+span.vhdlchar {
+ color: #000000
+}
+
+span.vhdlkeyword {
+ color: #700070
+}
+
+span.vhdllogic {
+ color: #ff0000
+}
+
+/* @end */
+
+/*
+.search {
+ color: #003399;
+ font-weight: bold;
+}
+
+form.search {
+ margin-bottom: 0px;
+ margin-top: 0px;
+}
+
+input.search {
+ font-size: 75%;
+ color: #000080;
+ font-weight: normal;
+ background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+ font-size: 75%;
+}
+
+.dirtab {
+ padding: 4px;
+ border-collapse: collapse;
+ border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+ background: #EBEFF6;
+ font-weight: bold;
+}
+
+hr {
+ height: 0px;
+ border: none;
+ border-top: 1px solid #4A6AAA;
+}
+
+hr.footer {
+ height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+ border-spacing: 0px;
+ padding: 0px;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+ background-color: #F9FAFC;
+ border: none;
+ margin: 4px;
+ padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+ padding: 0px 8px 4px 8px;
+ color: #555;
+}
+
+.memItemLeft, .memItemRight, .memTemplParams {
+ border-top: 1px solid #C4CFE5;
+}
+
+.memItemLeft, .memTemplItemLeft {
+ white-space: nowrap;
+}
+
+.memItemRight {
+ width: 100%;
+}
+
+.memTemplParams {
+ color: #4665A2;
+ white-space: nowrap;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtemplate {
+ font-size: 80%;
+ color: #4665A2;
+ font-weight: normal;
+ margin-left: 9px;
+}
+
+.memnav {
+ background-color: #EBEFF6;
+ border: 1px solid #A3B4D7;
+ text-align: center;
+ margin: 2px;
+ margin-right: 15px;
+ padding: 2px;
+}
+
+.mempage {
+ width: 100%;
+}
+
+.memitem {
+ padding: 0;
+ margin-bottom: 10px;
+ margin-right: 5px;
+}
+
+.memname {
+ white-space: nowrap;
+ font-weight: bold;
+ margin-left: 6px;
+}
+
+.memproto, dl.reflist dt {
+ border-top: 1px solid #A8B8D9;
+ border-left: 1px solid #A8B8D9;
+ border-right: 1px solid #A8B8D9;
+ padding: 6px 0px 6px 0px;
+ color: #253555;
+ font-weight: bold;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ /* opera specific markup */
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ border-top-right-radius: 8px;
+ border-top-left-radius: 8px;
+ /* firefox specific markup */
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ -moz-border-radius-topright: 8px;
+ -moz-border-radius-topleft: 8px;
+ /* webkit specific markup */
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ -webkit-border-top-right-radius: 8px;
+ -webkit-border-top-left-radius: 8px;
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E8F2;
+
+}
+
+.memdoc, dl.reflist dd {
+ border-bottom: 1px solid #A8B8D9;
+ border-left: 1px solid #A8B8D9;
+ border-right: 1px solid #A8B8D9;
+ padding: 2px 5px;
+ background-color: #FBFCFD;
+ border-top-width: 0;
+ /* opera specific markup */
+ border-bottom-left-radius: 8px;
+ border-bottom-right-radius: 8px;
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ /* firefox specific markup */
+ -moz-border-radius-bottomleft: 8px;
+ -moz-border-radius-bottomright: 8px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7);
+ /* webkit specific markup */
+ -webkit-border-bottom-left-radius: 8px;
+ -webkit-border-bottom-right-radius: 8px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7));
+}
+
+dl.reflist dt {
+ padding: 5px;
+}
+
+dl.reflist dd {
+ margin: 0px 0px 10px 0px;
+ padding: 5px;
+}
+
+.paramkey {
+ text-align: right;
+}
+
+.paramtype {
+ white-space: nowrap;
+}
+
+.paramname {
+ color: #602020;
+ white-space: nowrap;
+}
+.paramname em {
+ font-style: normal;
+}
+
+.params, .retval, .exception, .tparams {
+ border-spacing: 6px 2px;
+}
+
+.params .paramname, .retval .paramname {
+ font-weight: bold;
+ vertical-align: top;
+}
+
+.params .paramtype {
+ font-style: italic;
+ vertical-align: top;
+}
+
+.params .paramdir {
+ font-family: "courier new",courier,monospace;
+ vertical-align: top;
+}
+
+
+
+
+/* @end */
+
+/* @group Directory (tree) */
+
+/* for the tree view */
+
+.ftvtree {
+ font-family: sans-serif;
+ margin: 0px;
+}
+
+/* these are for tree view when used as main index */
+
+.directory {
+ font-size: 9pt;
+ font-weight: bold;
+ margin: 5px;
+}
+
+.directory h3 {
+ margin: 0px;
+ margin-top: 1em;
+ font-size: 11pt;
+}
+
+/*
+The following two styles can be used to replace the root node title
+with an image of your choice. Simply uncomment the next two styles,
+specify the name of your image and be sure to set 'height' to the
+proper pixel height of your image.
+*/
+
+/*
+.directory h3.swap {
+ height: 61px;
+ background-repeat: no-repeat;
+ background-image: url("yourimage.gif");
+}
+.directory h3.swap span {
+ display: none;
+}
+*/
+
+.directory > h3 {
+ margin-top: 0;
+}
+
+.directory p {
+ margin: 0px;
+ white-space: nowrap;
+}
+
+.directory div {
+ display: none;
+ margin: 0px;
+}
+
+.directory img {
+ vertical-align: -30%;
+}
+
+/* these are for tree view when not used as main index */
+
+.directory-alt {
+ font-size: 100%;
+ font-weight: bold;
+}
+
+.directory-alt h3 {
+ margin: 0px;
+ margin-top: 1em;
+ font-size: 11pt;
+}
+
+.directory-alt > h3 {
+ margin-top: 0;
+}
+
+.directory-alt p {
+ margin: 0px;
+ white-space: nowrap;
+}
+
+.directory-alt div {
+ display: none;
+ margin: 0px;
+}
+
+.directory-alt img {
+ vertical-align: -30%;
+}
+
+/* @end */
+
+div.dynheader {
+ margin-top: 8px;
+}
+
+address {
+ font-style: normal;
+ color: #2A3D61;
+}
+
+table.doxtable {
+ border-collapse:collapse;
+}
+
+table.doxtable td, table.doxtable th {
+ border: 1px solid #2D4068;
+ padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+ background-color: #374F7F;
+ color: #FFFFFF;
+ font-size: 110%;
+ padding-bottom: 4px;
+ padding-top: 5px;
+ text-align:left;
+}
+
+table.fieldtable {
+ width: 100%;
+ margin-bottom: 10px;
+ border: 1px solid #A8B8D9;
+ border-spacing: 0px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+ box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+ padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+ white-space: nowrap;
+ border-right: 1px solid #A8B8D9;
+ border-bottom: 1px solid #A8B8D9;
+ vertical-align: top;
+}
+
+.fieldtable td.fielddoc {
+ border-bottom: 1px solid #A8B8D9;
+ width: 100%;
+}
+
+.fieldtable tr:last-child td {
+ border-bottom: none;
+}
+
+.fieldtable th {
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E8F2;
+ font-size: 90%;
+ color: #253555;
+ padding-bottom: 4px;
+ padding-top: 5px;
+ text-align:left;
+ -moz-border-radius-topleft: 4px;
+ -moz-border-radius-topright: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom: 1px solid #A8B8D9;
+}
+
+
+.tabsearch {
+ top: 0px;
+ left: 10px;
+ height: 36px;
+ background-image: url('tab_b.png');
+ z-index: 101;
+ overflow: hidden;
+ font-size: 13px;
+}
+
+.navpath ul
+{
+ font-size: 11px;
+ background-image:url('tab_b.png');
+ background-repeat:repeat-x;
+ height:30px;
+ line-height:30px;
+ color:#8AA0CC;
+ border:solid 1px #C2CDE4;
+ overflow:hidden;
+ margin:0px;
+ padding:0px;
+}
+
+.navpath li
+{
+ list-style-type:none;
+ float:left;
+ padding-left:10px;
+ padding-right:15px;
+ background-image:url('bc_s.png');
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#364D7C;
+}
+
+.navpath li.navelem a
+{
+ height:32px;
+ display:block;
+ text-decoration: none;
+ outline: none;
+}
+
+.navpath li.navelem a:hover
+{
+ color:#6884BD;
+}
+
+.navpath li.footer
+{
+ list-style-type:none;
+ float:right;
+ padding-left:10px;
+ padding-right:15px;
+ background-image:none;
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#364D7C;
+ font-size: 8pt;
+}
+
+
+div.summary
+{
+ float: right;
+ font-size: 8pt;
+ padding-right: 5px;
+ width: 50%;
+ text-align: right;
+}
+
+div.summary a
+{
+ white-space: nowrap;
+}
+
+div.ingroups
+{
+ margin-left: 5px;
+ font-size: 8pt;
+ padding-left: 5px;
+ width: 50%;
+ text-align: left;
+}
+
+div.ingroups a
+{
+ white-space: nowrap;
+}
+
+div.header
+{
+ background-image:url('nav_h.png');
+ background-repeat:repeat-x;
+ background-color: #F9FAFC;
+ margin: 0px;
+ border-bottom: 1px solid #C4CFE5;
+}
+
+div.headertitle
+{
+ padding: 5px 5px 5px 7px;
+}
+
+dl
+{
+ padding: 0 0 0 10px;
+}
+
+dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug
+{
+ border-left:4px solid;
+ padding: 0 0 0 6px;
+}
+
+dl.note
+{
+ border-color: #D0C000;
+}
+
+dl.warning, dl.attention
+{
+ border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant
+{
+ border-color: #00D000;
+}
+
+dl.deprecated
+{
+ border-color: #505050;
+}
+
+dl.todo
+{
+ border-color: #00C0E0;
+}
+
+dl.test
+{
+ border-color: #3030E0;
+}
+
+dl.bug
+{
+ border-color: #C08050;
+}
+
+#projectlogo
+{
+ text-align: center;
+ vertical-align: bottom;
+ border-collapse: separate;
+}
+
+#projectlogo img
+{
+ border: 0px none;
+}
+
+#projectname
+{
+ font: 300% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 2px 0px;
+}
+
+#projectbrief
+{
+ font: 120% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 0px;
+}
+
+#projectnumber
+{
+ font: 50% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 0px;
+}
+
+#titlearea
+{
+ padding: 0px;
+ margin: 0px;
+ width: 100%;
+ border-bottom: 1px solid #5373B4;
+}
+
+.image
+{
+ text-align: center;
+}
+
+.dotgraph
+{
+ text-align: center;
+}
+
+.mscgraph
+{
+ text-align: center;
+}
+
+.caption
+{
+ font-weight: bold;
+}
+
+div.zoom
+{
+ border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+ margin-bottom:50px;
+}
+
+dl.citelist dt {
+ color:#334975;
+ float:left;
+ font-weight:bold;
+ margin-right:10px;
+ padding:5px;
+}
+
+dl.citelist dd {
+ margin:2px 0;
+ padding:5px 0;
+}
+
+@media print
+{
+ #top { display: none; }
+ #side-nav { display: none; }
+ #nav-path { display: none; }
+ body { overflow:visible; }
+ h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+ .summary { display: none; }
+ .memitem { page-break-inside: avoid; }
+ #doc-content
+ {
+ margin-left:0 !important;
+ height:auto !important;
+ width:auto !important;
+ overflow:inherit;
+ display:inline;
+ }
+ pre.fragment
+ {
+ overflow: visible;
+ text-wrap: unrestricted;
+ white-space: -moz-pre-wrap; /* Moz */
+ white-space: -pre-wrap; /* Opera 4-6 */
+ white-space: -o-pre-wrap; /* Opera 7 */
+ white-space: pre-wrap; /* CSS3 */
+ word-wrap: break-word; /* IE 5.5+ */
+ }
+}
+
diff --git a/docs/html/doxygen.png b/docs/html/doxygen.png
new file mode 100644
index 0000000..635ed52
--- /dev/null
+++ b/docs/html/doxygen.png
Binary files differ
diff --git a/docs/html/files.html b/docs/html/files.html
new file mode 100644
index 0000000..c820370
--- /dev/null
+++ b/docs/html/files.html
@@ -0,0 +1,159 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: File List</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">File List</div> </div>
+</div>
+<div class="contents">
+<div class="textblock">Here is a list of all files with brief descriptions:</div><table>
+ <tr><td class="indexkey">source/<a class="el" href="main_8cpp.html">main.cpp</a> <a href="main_8cpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/data/<a class="el" href="_config_8cpp.html">Config.cpp</a> <a href="_config_8cpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/data/<a class="el" href="_config_8h.html">Config.h</a> <a href="_config_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/data/<a class="el" href="_level_reader_8cpp.html">LevelReader.cpp</a> <a href="_level_reader_8cpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/data/<a class="el" href="_level_reader_8h.html">LevelReader.h</a> <a href="_level_reader_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_allegro_wrappers_8cpp.html">AllegroWrappers.cpp</a> <a href="_allegro_wrappers_8cpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_allegro_wrappers_8h.html">AllegroWrappers.h</a> <a href="_allegro_wrappers_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_car_8cpp.html">Car.cpp</a> <a href="_car_8cpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_car_8h.html">Car.h</a> <a href="_car_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_checkpoint_8cpp.html">Checkpoint.cpp</a> <a href="_checkpoint_8cpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_checkpoint_8h.html">Checkpoint.h</a> <a href="_checkpoint_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_collision_detector_8cpp.html">CollisionDetector.cpp</a> <a href="_collision_detector_8cpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_collision_detector_8h.html">CollisionDetector.h</a> <a href="_collision_detector_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_destroyed_object_popup_8cpp.html">DestroyedObjectPopup.cpp</a> <a href="_destroyed_object_popup_8cpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_destroyed_object_popup_8h.html">DestroyedObjectPopup.h</a> <a href="_destroyed_object_popup_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_enemy_car_8cpp.html">EnemyCar.cpp</a> <a href="_enemy_car_8cpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_enemy_car_8h.html">EnemyCar.h</a> <a href="_enemy_car_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_game_8cpp.html">Game.cpp</a> <a href="_game_8cpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_game_8h.html">Game.h</a> <a href="_game_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_game_object_8cpp.html">GameObject.cpp</a> <a href="_game_object_8cpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_game_object_8h.html">GameObject.h</a> <a href="_game_object_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_limited_time_object_8cpp.html">LimitedTimeObject.cpp</a> <a href="_limited_time_object_8cpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_limited_time_object_8h.html">LimitedTimeObject.h</a> <a href="_limited_time_object_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_maze_8cpp.html">Maze.cpp</a> <a href="_maze_8cpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_maze_8h.html">Maze.h</a> <a href="_maze_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_maze_math_8cpp.html">MazeMath.cpp</a> <a href="_maze_math_8cpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_maze_math_8h.html">MazeMath.h</a> <a href="_maze_math_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_player_car_8cpp.html">PlayerCar.cpp</a> <a href="_player_car_8cpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_player_car_8h.html">PlayerCar.h</a> <a href="_player_car_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_rock_8cpp.html">Rock.cpp</a> <a href="_rock_8cpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_rock_8h.html">Rock.h</a> <a href="_rock_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_smokescreen_8cpp.html">Smokescreen.cpp</a> <a href="_smokescreen_8cpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/logic/<a class="el" href="_smokescreen_8h.html">Smokescreen.h</a> <a href="_smokescreen_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/presentation/<a class="el" href="_bitmap_store_8cpp.html">BitmapStore.cpp</a> <a href="_bitmap_store_8cpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/presentation/<a class="el" href="_bitmap_store_8h.html">BitmapStore.h</a> <a href="_bitmap_store_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/presentation/<a class="el" href="_colour_store_8cpp.html">ColourStore.cpp</a> <a href="_colour_store_8cpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/presentation/<a class="el" href="_colour_store_8h.html">ColourStore.h</a> <a href="_colour_store_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/presentation/<a class="el" href="_game_panel_8cpp.html">GamePanel.cpp</a> <a href="_game_panel_8cpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/presentation/<a class="el" href="_game_panel_8h.html">GamePanel.h</a> <a href="_game_panel_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/presentation/<a class="el" href="_info_panel_8cpp.html">InfoPanel.cpp</a> <a href="_info_panel_8cpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/presentation/<a class="el" href="_info_panel_8h.html">InfoPanel.h</a> <a href="_info_panel_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/presentation/<a class="el" href="_keyboard_handler_8cpp.html">KeyboardHandler.cpp</a> <a href="_keyboard_handler_8cpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/presentation/<a class="el" href="_keyboard_handler_8h.html">KeyboardHandler.h</a> <a href="_keyboard_handler_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/presentation/<a class="el" href="_screen_8cpp.html">Screen.cpp</a> <a href="_screen_8cpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/presentation/<a class="el" href="_screen_8h.html">Screen.h</a> <a href="_screen_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/presentation/<a class="el" href="_screen_panel_8cpp.html">ScreenPanel.cpp</a> <a href="_screen_panel_8cpp_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">source/presentation/<a class="el" href="_screen_panel_8h.html">ScreenPanel.h</a> <a href="_screen_panel_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">tests/<a class="el" href="data_tests_8cpp.html">dataTests.cpp</a> <a href="data_tests_8cpp_source.html">[code]</a></td><td class="indexvalue">Unit tests for the data layer of a Rally-X game </td></tr>
+ <tr><td class="indexkey">tests/<a class="el" href="logic_tests_8cpp.html">logicTests.cpp</a> <a href="logic_tests_8cpp_source.html">[code]</a></td><td class="indexvalue">Unit tests for the logic layer of a Rally-X game </td></tr>
+ <tr><td class="indexkey">tests/<a class="el" href="presentation_tests_8cpp.html">presentationTests.cpp</a> <a href="presentation_tests_8cpp_source.html">[code]</a></td><td class="indexvalue">Unit tests for the presentation layer of a Rally-X game </td></tr>
+</table>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions.html b/docs/html/functions.html
new file mode 100644
index 0000000..b88cd0a
--- /dev/null
+++ b/docs/html/functions.html
@@ -0,0 +1,377 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
+<li>_allegro
+: <a class="el" href="class_allegro_keyboard_init.html#af8655fcd2e20750f965e55304500bc3b">AllegroKeyboardInit</a>
+, <a class="el" href="class_allegro_drawing_init.html#a8254ecb9b3ad13409ff1ec1cfeee66ef">AllegroDrawingInit</a>
+, <a class="el" href="class_game_panel.html#a18c100c8d9ae2601a97083485d937418">GamePanel</a>
+, <a class="el" href="class_screen.html#ae0863416022fcb59189d2aefd3345621">Screen</a>
+, <a class="el" href="class_game.html#a3bbe8c0dadbdf9e9e1d499f10509ef4e">Game</a>
+, <a class="el" href="class_screen_panel.html#a3877f04c03866e35588f0b753ee7c485">ScreenPanel</a>
+</li>
+<li>_back
+: <a class="el" href="class_screen_panel.html#a1a3ec8e60be5d5cede210171bda33468">ScreenPanel</a>
+</li>
+<li>_baseSpeed
+: <a class="el" href="class_car.html#a7b942584de02f8af6f571a60a1cf32ba">Car</a>
+</li>
+<li>_bitmapFont
+: <a class="el" href="class_bitmap_store.html#a0c73c3c20f8093c83707cde15c4fed5f">BitmapStore</a>
+</li>
+<li>_bitmaps
+: <a class="el" href="class_bitmap_store.html#ae3d18969f61f97fce6622cb6f7004711">BitmapStore</a>
+</li>
+<li>_bitmapStore
+: <a class="el" href="class_game_panel.html#a0125ff874ffebadc15c7678210914a8c">GamePanel</a>
+</li>
+<li>_blockWidth
+: <a class="el" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff">BitmapStore</a>
+</li>
+<li>_checkpointCount
+: <a class="el" href="class_checkpoint.html#acb3ffc612d2a496b6b95752878818ff6">Checkpoint</a>
+</li>
+<li>_checkpointHeadingY
+: <a class="el" href="class_info_panel.html#a7ec514286dbf2fb43f64acd620397e21">InfoPanel</a>
+</li>
+<li>_checkpoints
+: <a class="el" href="class_game.html#a856252e94c580f59b926affc7d45b4bf">Game</a>
+</li>
+<li>_checkpointValueY
+: <a class="el" href="class_info_panel.html#ad118b5f123e590a95b3f390fd9597f02">InfoPanel</a>
+</li>
+<li>_collisionDetector
+: <a class="el" href="class_game.html#ab88620fda0d1fa729dcab6013e8f1efc">Game</a>
+</li>
+<li>_colours
+: <a class="el" href="class_colour_store.html#acb64b1ffc465fa752a2f282da4c9afba">ColourStore</a>
+</li>
+<li>_colourStore
+: <a class="el" href="class_info_panel.html#a27ac079ed1a39ae672b6ceb9e0974855">InfoPanel</a>
+</li>
+<li>_config
+: <a class="el" href="class_game.html#aa60fe2dc0d1d53ebf49c2d87af6ee2d5">Game</a>
+</li>
+<li>_destroyed
+: <a class="el" href="class_game_object.html#adc4a399cc59d5706f75748fb3846faec">GameObject</a>
+</li>
+<li>_display
+: <a class="el" href="class_screen.html#a4972e24cf3677e51b18feac34a563ba0">Screen</a>
+</li>
+<li>_down
+: <a class="el" href="class_keyboard_handler.html#aa6d1c75e1a98d4aae96d8ac1c8aaa539">KeyboardHandler</a>
+</li>
+<li>_drawing
+: <a class="el" href="class_info_panel.html#a589359c67b30af50338791f8af0e05e0">InfoPanel</a>
+, <a class="el" href="class_screen.html#a2dafde8aecbd3bc3c4394f36df913b64">Screen</a>
+</li>
+<li>_drawingInstalls
+: <a class="el" href="class_bitmap_store.html#a12f738a24033673278a496c1aa5abcc8">BitmapStore</a>
+</li>
+<li>_enemies
+: <a class="el" href="class_game.html#afbd3e358076a6cf2e72faefe1c202df9">Game</a>
+</li>
+<li>_exitClicked
+: <a class="el" href="class_screen.html#ae7f213f79bf9680e0ff3f4b52ebf051f">Screen</a>
+</li>
+<li>_facing
+: <a class="el" href="class_game_object.html#a24d36b1a64504298700a7ae7111fad5d">GameObject</a>
+</li>
+<li>_filename
+: <a class="el" href="class_level_reader.html#a233910d4cd16ff624d76b06ca8071f7e">LevelReader</a>
+</li>
+<li>_font
+: <a class="el" href="class_screen.html#a42a627863a8f9d1529278cb060d4102b">Screen</a>
+</li>
+<li>_front
+: <a class="el" href="class_screen_panel.html#a0a3232c41ca107b2cceee73aa0e0d7fe">ScreenPanel</a>
+</li>
+<li>_fullscreen
+: <a class="el" href="class_config.html#ad6fddaaf52742adcba95155b3635e807">Config</a>
+</li>
+<li>_gameAreaWidth
+: <a class="el" href="class_screen.html#a7cba9fb0069d763055ef351452a15227">Screen</a>
+</li>
+<li>_height
+: <a class="el" href="class_maze.html#a02f1ff55e76161495bbe11bc4c0e5f54">Maze</a>
+, <a class="el" href="class_screen_panel.html#a4f6dd5c7ca10d51bface7b1ddedc236c">ScreenPanel</a>
+</li>
+<li>_image
+: <a class="el" href="class_game_object.html#a8b0aa105507a8a9559bbc2a66198ccd6">GameObject</a>
+</li>
+<li>_infoPanelWidth
+: <a class="el" href="class_screen.html#ab895e588a89e1943303487d47a2b9216">Screen</a>
+</li>
+<li>_initCount
+: <a class="el" href="class_allegro_init.html#ab8d20b549d0b996dde5cdbe8acd7186c">AllegroInit</a>
+, <a class="el" href="class_allegro_keyboard_init.html#ac7f75bcc5cb56a1c2f4e9ce653d9dfd7">AllegroKeyboardInit</a>
+, <a class="el" href="class_allegro_drawing_init.html#a78e8f792c6dba89eddf42e74d4a3d577">AllegroDrawingInit</a>
+</li>
+<li>_input
+: <a class="el" href="class_player_car.html#a5f8477ebd7de6298151ed70fbb9ffa4f">PlayerCar</a>
+</li>
+<li>_keyboard
+: <a class="el" href="class_keyboard_handler.html#a0ec33ec0de48e563e9137294fb7577da">KeyboardHandler</a>
+, <a class="el" href="class_screen.html#a0c5cff1b93dae4d559a81d261a8bcee6">Screen</a>
+</li>
+<li>_keyboardEvents
+: <a class="el" href="class_keyboard_handler.html#a44116ed8745f3a3360e1d7c29ea86d56">KeyboardHandler</a>
+</li>
+<li>_left
+: <a class="el" href="class_keyboard_handler.html#a3bc780470d7cbaf9f4ea239e0613ce3c">KeyboardHandler</a>
+</li>
+<li>_maze
+: <a class="el" href="class_game.html#a33457b2c7fa4f43b89e54ce9c5ac6f83">Game</a>
+</li>
+<li>_mazeblockWidth
+: <a class="el" href="class_game_panel.html#a4889f5f6e1ad713be455d4f69a2cda96">GamePanel</a>
+</li>
+<li>_miniMazeblockWidth
+: <a class="el" href="class_info_panel.html#abb211fac23293e41f23b86fd70df98f0">InfoPanel</a>
+</li>
+<li>_miniMazeHeight
+: <a class="el" href="class_info_panel.html#ad38206daa42c82b45878e6d0c55f2860">InfoPanel</a>
+</li>
+<li>_miniMazeY
+: <a class="el" href="class_info_panel.html#a7b4bb6cca8549d6a1d1deccc99994b9b">InfoPanel</a>
+</li>
+<li>_offsetX
+: <a class="el" href="class_game_panel.html#afe99f100b68ec2475cb0a509887b63a9">GamePanel</a>
+</li>
+<li>_offsetY
+: <a class="el" href="class_game_panel.html#af3354addd707cb42b078dbe2ef29e189">GamePanel</a>
+</li>
+<li>_panelFont
+: <a class="el" href="class_info_panel.html#a38d023a2b00eafa303de37550cb96817">InfoPanel</a>
+</li>
+<li>_panels
+: <a class="el" href="class_screen.html#a30ba66122613181e312e0d7586d2a814">Screen</a>
+</li>
+<li>_petrol
+: <a class="el" href="class_player_car.html#a51f836c3619c42df7762d440e8007010">PlayerCar</a>
+</li>
+<li>_petrolGuageHeight
+: <a class="el" href="class_info_panel.html#a0c85348f8471d86da73772f86a62f84c">InfoPanel</a>
+</li>
+<li>_petrolGuageY
+: <a class="el" href="class_info_panel.html#a29976100c8fc5c130be713dfb5c2807e">InfoPanel</a>
+</li>
+<li>_petrolHeadingY
+: <a class="el" href="class_info_panel.html#a5ab76703538ad6e396a21ea8fb47d23d">InfoPanel</a>
+</li>
+<li>_players
+: <a class="el" href="class_game.html#a75bf3282da1519766a6b75e2d83293ac">Game</a>
+</li>
+<li>_popups
+: <a class="el" href="class_game.html#a9bea5a0ee430443effa418d42a903f83">Game</a>
+</li>
+<li>_previousFacing
+: <a class="el" href="class_keyboard_handler.html#a90120a85c62481b3a2c0330511cffbac">KeyboardHandler</a>
+</li>
+<li>_remainingTime
+: <a class="el" href="class_limited_time_object.html#a0b6a4bb0c76b637fba1db498ce084d3a">LimitedTimeObject</a>
+</li>
+<li>_right
+: <a class="el" href="class_keyboard_handler.html#a81d37831d958ff21c2ce08cfa97ca420">KeyboardHandler</a>
+</li>
+<li>_rocks
+: <a class="el" href="class_game.html#a9f14643bfc4d595dc7dfa3160a59d71b">Game</a>
+</li>
+<li>_screen
+: <a class="el" href="class_game.html#a9bc904a37fe9b3e85a597b6b5c6a66d5">Game</a>
+</li>
+<li>_screenHeight
+: <a class="el" href="class_screen.html#a8784c86e10d2b6af0dd99d710f3955e9">Screen</a>
+, <a class="el" href="class_config.html#ac27364c75bc8d5e82119988df85c1599">Config</a>
+</li>
+<li>_screenWidth
+: <a class="el" href="class_config.html#a46dce43903bb24bac8c2ffc92f2ee4da">Config</a>
+, <a class="el" href="class_screen.html#a5931238a3eb8cf1a14b0f8b8d7044b65">Screen</a>
+</li>
+<li>_smokescreen
+: <a class="el" href="class_keyboard_handler.html#a7769dc815c493fb5962d52c3d5bc7b16">KeyboardHandler</a>
+</li>
+<li>_smokescreens
+: <a class="el" href="class_game.html#a88916ad9e8095b99a9c870a053180c1c">Game</a>
+</li>
+<li>_speed
+: <a class="el" href="class_car.html#a84b3d05e98d66f358942193ff54dee51">Car</a>
+</li>
+<li>_state
+: <a class="el" href="class_enemy_car.html#a65a1c7b520f043aae27800ced9e8d543">EnemyCar</a>
+</li>
+<li>_targetX
+: <a class="el" href="class_enemy_car.html#aa84ac6485311c535526ea14d02d98cc9">EnemyCar</a>
+</li>
+<li>_targetY
+: <a class="el" href="class_enemy_car.html#a61ff3751123febe8bc9ab24d0763245c">EnemyCar</a>
+</li>
+<li>_timer
+: <a class="el" href="class_game.html#af153fc1d94c473114cfbd63728d21f91">Game</a>
+</li>
+<li>_timerEvents
+: <a class="el" href="class_game.html#a2b7303df1b6d0163b78c2c306164859f">Game</a>
+</li>
+<li>_transparent
+: <a class="el" href="class_colour_store.html#acadd8e6ed32fe6535252c94124df04ca">ColourStore</a>
+</li>
+<li>_up
+: <a class="el" href="class_keyboard_handler.html#ad323844aad47f1bc263ec2fd4a19ac3a">KeyboardHandler</a>
+</li>
+<li>_wallLocations
+: <a class="el" href="class_maze.html#a3f0247841ddb8a6b5b8b5eeff86b754a">Maze</a>
+</li>
+<li>_width
+: <a class="el" href="class_maze.html#a981c764d7ad04ca06bd8dee472578ce4">Maze</a>
+, <a class="el" href="class_screen_panel.html#afbbcad2a101b95869dcdef9bf0898f65">ScreenPanel</a>
+</li>
+<li>_windowEvents
+: <a class="el" href="class_screen.html#aa4ea622368bdf47a3b22d026048ee83a">Screen</a>
+</li>
+<li>_x
+: <a class="el" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614">GameObject</a>
+</li>
+<li>_y
+: <a class="el" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e">GameObject</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions_0x61.html b/docs/html/functions_0x61.html
new file mode 100644
index 0000000..ebe7268
--- /dev/null
+++ b/docs/html/functions_0x61.html
@@ -0,0 +1,154 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index__"><span>_</span></a></li>
+ <li class="current"><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>AllegroDrawingInit()
+: <a class="el" href="class_allegro_drawing_init.html#ab7cf79c71bf662f897bd8cba32f42cda">AllegroDrawingInit</a>
+</li>
+<li>AllegroInit()
+: <a class="el" href="class_allegro_init.html#a81588c1ce0fe3646a188683f1598a66b">AllegroInit</a>
+</li>
+<li>AllegroKeyboardInit()
+: <a class="el" href="class_allegro_keyboard_init.html#ae28cb5cbafdba3372f21ddb95a9ed134">AllegroKeyboardInit</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions_0x62.html b/docs/html/functions_0x62.html
new file mode 100644
index 0000000..7ec2816
--- /dev/null
+++ b/docs/html/functions_0x62.html
@@ -0,0 +1,166 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li class="current"><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>backwards()
+: <a class="el" href="class_maze.html#a79cf362b55c21634a93ef6b7d192b77c">Maze</a>
+</li>
+<li>BitmapStore()
+: <a class="el" href="class_bitmap_store.html#abca96ce53be18eb07150745871a3165c">BitmapStore</a>
+</li>
+<li>BLANK
+: <a class="el" href="class_screen_panel.html#a1cc6ea44035f47d77d24b4cee9dc9d85">ScreenPanel</a>
+</li>
+<li>blind()
+: <a class="el" href="class_enemy_car.html#aeb8bf92c965ab33f793b0274a02f142c">EnemyCar</a>
+</li>
+<li>BLINDED
+: <a class="el" href="class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87af45d8b201d7334e42651b262a03d631c">EnemyCar</a>
+</li>
+<li>BLOCKS_PER_ROW
+: <a class="el" href="class_game_panel.html#ae60d3f1c29382ad3c6e6b5c5a56d2160">GamePanel</a>
+</li>
+<li>BoolGrid
+: <a class="el" href="class_maze.html#aea392ab34f271f56b1746b30aed9588a">Maze</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions_0x63.html b/docs/html/functions_0x63.html
new file mode 100644
index 0000000..43bd007
--- /dev/null
+++ b/docs/html/functions_0x63.html
@@ -0,0 +1,197 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li class="current"><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>Car()
+: <a class="el" href="class_car.html#a3bd1dc6b75af9dc5bbe4354e0b3161d0">Car</a>
+</li>
+<li>CHASING
+: <a class="el" href="class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87a28df0785e03156c97ddeb81da5e0770c">EnemyCar</a>
+</li>
+<li>checkCollisions()
+: <a class="el" href="class_collision_detector.html#a6ee96032c26ceeab038d2702d7064c7b">CollisionDetector</a>
+</li>
+<li>checkFacing()
+: <a class="el" href="class_enemy_car.html#afa61cecf7df51e26edd632303c18945c">EnemyCar</a>
+</li>
+<li>CHECKPOINT
+: <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a780d6b9e20ec37fbaf5a40ca846795d9">BitmapStore</a>
+</li>
+<li>Checkpoint()
+: <a class="el" href="class_checkpoint.html#a20c371a9e21ac0092b652a7d63f46f85">Checkpoint</a>
+</li>
+<li>CHECKPOINT_CHAR
+: <a class="el" href="class_level_reader.html#ad401a0f48a3eac678c0f53e95ea1f354">LevelReader</a>
+</li>
+<li>checkpointCount()
+: <a class="el" href="class_checkpoint.html#a872d8574b6f0a7960854fb1175e05f13">Checkpoint</a>
+</li>
+<li>CLAIMED_CHECKPOINT
+: <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a824f0021358b88c7f1172d7dece95948">BitmapStore</a>
+</li>
+<li>cleanup()
+: <a class="el" href="class_game.html#a961f632fbe7f4ba08d23fe9edc7711be">Game</a>
+</li>
+<li>clearLists()
+: <a class="el" href="class_game.html#a03cf795e9aaa4c5950b4b5e918ab9ab6">Game</a>
+</li>
+<li>collect()
+: <a class="el" href="class_checkpoint.html#ad8f4b9da968e6b1f07080dc6f61282f7">Checkpoint</a>
+</li>
+<li>collision()
+: <a class="el" href="class_collision_detector.html#a68572f5ec6cf32f28f07bda7a7b96452">CollisionDetector</a>
+</li>
+<li>ColourStore()
+: <a class="el" href="class_colour_store.html#a667f2e3c6d5b6eb553f58724e58bbed0">ColourStore</a>
+</li>
+<li>Config()
+: <a class="el" href="class_config.html#aab967ce080511b4ae5bf578cba5237d3">Config</a>
+</li>
+<li>crash()
+: <a class="el" href="class_player_car.html#a1bdd1dbdf1158b740cd1bcb757f8c578">PlayerCar</a>
+, <a class="el" href="class_enemy_car.html#ac5836046e802a749abb2308886b34060">EnemyCar</a>
+</li>
+<li>CRASHED_CAR
+: <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a8b9eb5b79abe467982784ea2227d67e0">BitmapStore</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions_0x64.html b/docs/html/functions_0x64.html
new file mode 100644
index 0000000..b21060a
--- /dev/null
+++ b/docs/html/functions_0x64.html
@@ -0,0 +1,203 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li class="current"><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>destroyed()
+: <a class="el" href="class_game_object.html#a266871f6c0220f6b3c902075ebff8eea">GameObject</a>
+</li>
+<li>DestroyedObjectPopup()
+: <a class="el" href="class_destroyed_object_popup.html#af34a9f7421a49953f6bd86233a6a44bc">DestroyedObjectPopup</a>
+</li>
+<li>Direction
+: <a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f">Maze</a>
+</li>
+<li>distance()
+: <a class="el" href="class_maze_math.html#a5735276fb4c76f25944f2c02d622c3f6">MazeMath</a>
+</li>
+<li>DOWN
+: <a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa89ab143d020541957ab5e0e9cfdd3e23">Maze</a>
+</li>
+<li>DOWN_KEY
+: <a class="el" href="class_keyboard_handler.html#a3d8d985fdc3c3ac543e84647967f78e4">KeyboardHandler</a>
+</li>
+<li>draw()
+: <a class="el" href="class_game_panel.html#a93395482993b341b1b72fbb256ce9be9">GamePanel</a>
+, <a class="el" href="class_info_panel.html#aa9628c14e08ac6573e0191d9d4afa227">InfoPanel</a>
+, <a class="el" href="class_screen.html#aec3c5c20e14d6ef033c8a6a559a84872">Screen</a>
+, <a class="el" href="class_game_panel.html#ab093fb770fa8b46ee863947259c72abd">GamePanel</a>
+, <a class="el" href="class_screen_panel.html#ab4299f065cdf3e344c3b32b484136ada">ScreenPanel</a>
+</li>
+<li>drawCheckpoint()
+: <a class="el" href="class_bitmap_store.html#ae5d12fa60b03a7ea2119c67938650352">BitmapStore</a>
+</li>
+<li>drawClaimedCheckpoint()
+: <a class="el" href="class_bitmap_store.html#a07f505192ccf0717d6aed29761934a5c">BitmapStore</a>
+</li>
+<li>drawCrashedCar()
+: <a class="el" href="class_bitmap_store.html#abb0a062e5cb3170786a6c202a53c145b">BitmapStore</a>
+</li>
+<li>drawEnemyCar()
+: <a class="el" href="class_bitmap_store.html#aff7a6fc2b35ff6cd38ef74730523f5a9">BitmapStore</a>
+</li>
+<li>drawLoss()
+: <a class="el" href="class_screen.html#aab9ab8447df2b526985970d2ac80c919">Screen</a>
+</li>
+<li>drawMazeFloor()
+: <a class="el" href="class_bitmap_store.html#a8a7d5fe7cc38ddb3c651152654226201">BitmapStore</a>
+</li>
+<li>drawMazeWall()
+: <a class="el" href="class_bitmap_store.html#a90680d174c1d77e19ace8c2ba0eef6ac">BitmapStore</a>
+</li>
+<li>drawPlayerCar()
+: <a class="el" href="class_bitmap_store.html#af645b30d96761f401770336a555b6429">BitmapStore</a>
+</li>
+<li>drawRock()
+: <a class="el" href="class_bitmap_store.html#a2132a5ec8dfb43f06f75accf8bb9a50e">BitmapStore</a>
+</li>
+<li>drawSmoke()
+: <a class="el" href="class_bitmap_store.html#a1a346a06675a7257ca8a7879aeb27e48">BitmapStore</a>
+</li>
+<li>drawWin()
+: <a class="el" href="class_screen.html#ad4c1281e4d59eb89377dd87bba8a310e">Screen</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions_0x65.html b/docs/html/functions_0x65.html
new file mode 100644
index 0000000..4ac8571
--- /dev/null
+++ b/docs/html/functions_0x65.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li class="current"><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>ENEMY
+: <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a8a7d9a89e243914ca702660237d4f81d">BitmapStore</a>
+</li>
+<li>ENEMY_CHAR
+: <a class="el" href="class_level_reader.html#a67d3735d6a3e40fa61527dd1ff7cfa22">LevelReader</a>
+</li>
+<li>EnemyCar()
+: <a class="el" href="class_enemy_car.html#a8af7d3c56fa9dad09992ce6fbd7389d2">EnemyCar</a>
+</li>
+<li>exitClicked()
+: <a class="el" href="class_screen.html#acca34443ba0ad97922069658d688ea9a">Screen</a>
+</li>
+<li>extractValue()
+: <a class="el" href="class_config.html#a38dee1d0fe4e962aedcee79faad2691c">Config</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions_0x66.html b/docs/html/functions_0x66.html
new file mode 100644
index 0000000..78b4423
--- /dev/null
+++ b/docs/html/functions_0x66.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li class="current"><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>facing()
+: <a class="el" href="class_game_object.html#a2549066ec4dc8f4ca2d3a8c5d5729324">GameObject</a>
+</li>
+<li>fillValues()
+: <a class="el" href="class_config.html#ac31c5164b58f86c2a9ecaf21ac1f2202">Config</a>
+</li>
+<li>flip()
+: <a class="el" href="class_screen_panel.html#ab701d3888b13463d200be112f0eb4d82">ScreenPanel</a>
+, <a class="el" href="class_screen.html#abd12bddd241c8d214d2423804fe20ffb">Screen</a>
+</li>
+<li>FPS
+: <a class="el" href="class_game.html#a636d6897103fd12d230489d512bf2be1">Game</a>
+</li>
+<li>fullscreen()
+: <a class="el" href="class_config.html#a8a401add779f2b74732ade9e515bf0cd">Config</a>
+</li>
+<li>FULLSCREEN_DEFAULT
+: <a class="el" href="class_config.html#a3195b4273ebe9ac691167bff71394720">Config</a>
+</li>
+<li>FULLSCREEN_KEY
+: <a class="el" href="class_config.html#ae2dd20bca46b767d2a30c32de7ab78cb">Config</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions_0x67.html b/docs/html/functions_0x67.html
new file mode 100644
index 0000000..c36fa61
--- /dev/null
+++ b/docs/html/functions_0x67.html
@@ -0,0 +1,186 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li class="current"><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<li>Game()
+: <a class="el" href="class_game.html#ad59df6562a58a614fda24622d3715b65">Game</a>
+</li>
+<li>GameObject()
+: <a class="el" href="class_game_object.html#a26cba01b9c2d301d4ee89a98b9396d67">GameObject</a>
+</li>
+<li>GamePanel()
+: <a class="el" href="class_game_panel.html#a3475820b2255da92e247d07248870044">GamePanel</a>
+</li>
+<li>generateMaze()
+: <a class="el" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8">Maze</a>
+</li>
+<li>getBitmap()
+: <a class="el" href="class_bitmap_store.html#aadd437c869c5856c36d920dfafbc6ee4">BitmapStore</a>
+</li>
+<li>getColour()
+: <a class="el" href="class_colour_store.html#ac8474c4e9b335215f03ec2c749847ad2">ColourStore</a>
+</li>
+<li>getFacing()
+: <a class="el" href="class_keyboard_handler.html#ae17ed4bf0abae7d95f9b772a6d704a70">KeyboardHandler</a>
+</li>
+<li>getLevel()
+: <a class="el" href="class_screen.html#a45d06e513491e40f76013fb670c6c6cc">Screen</a>
+</li>
+<li>getPanelX()
+: <a class="el" href="class_game_panel.html#a53a4386ab0f60db88b3c638b3880cd91">GamePanel</a>
+, <a class="el" href="class_info_panel.html#a0accb88b099f412cc3baa7d2bf4690aa">InfoPanel</a>
+</li>
+<li>getPanelY()
+: <a class="el" href="class_info_panel.html#ad962eab814441375a8634b67d743d7e6">InfoPanel</a>
+, <a class="el" href="class_game_panel.html#a0e722b67c8ee7fe5f557821adf9b8cc2">GamePanel</a>
+</li>
+<li>getSmokescreen()
+: <a class="el" href="class_keyboard_handler.html#ab66797a37a1c54a630187519870d9a5b">KeyboardHandler</a>
+</li>
+<li>getSolid()
+: <a class="el" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1">Maze</a>
+</li>
+<li>gotCheckpoint()
+: <a class="el" href="class_player_car.html#aaa8b9d66c0c4e4eab5a303dd0a4e5f39">PlayerCar</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions_0x68.html b/docs/html/functions_0x68.html
new file mode 100644
index 0000000..c9d2857
--- /dev/null
+++ b/docs/html/functions_0x68.html
@@ -0,0 +1,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li class="current"><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
+<li>height()
+: <a class="el" href="class_maze.html#a53de30abea69713225ab77703e753d81">Maze</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions_0x69.html b/docs/html/functions_0x69.html
new file mode 100644
index 0000000..178c837
--- /dev/null
+++ b/docs/html/functions_0x69.html
@@ -0,0 +1,157 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li class="current"><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>image()
+: <a class="el" href="class_game_object.html#a05e352e3e01e774892beee0503fdb349">GameObject</a>
+</li>
+<li>Image
+: <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386">BitmapStore</a>
+</li>
+<li>InfoPanel()
+: <a class="el" href="class_info_panel.html#a6eac5bf29b155213dffd60460d299049">InfoPanel</a>
+</li>
+<li>initLevel()
+: <a class="el" href="class_game.html#a2bd8589c18470f644445d97c1c35d169">Game</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions_0x6b.html b/docs/html/functions_0x6b.html
new file mode 100644
index 0000000..5a06e24
--- /dev/null
+++ b/docs/html/functions_0x6b.html
@@ -0,0 +1,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li class="current"><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
+<li>KeyboardHandler()
+: <a class="el" href="class_keyboard_handler.html#acd0d5781016f792207464bb720d2f994">KeyboardHandler</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions_0x6c.html b/docs/html/functions_0x6c.html
new file mode 100644
index 0000000..56b1122
--- /dev/null
+++ b/docs/html/functions_0x6c.html
@@ -0,0 +1,157 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+ <li class="current"><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>LEFT
+: <a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28faab1a1fe0274cd139b3c0116d8caf458c">Maze</a>
+</li>
+<li>LEFT_KEY
+: <a class="el" href="class_keyboard_handler.html#ab285a229f4f5c7c1be5504fdb629e10a">KeyboardHandler</a>
+</li>
+<li>LevelReader()
+: <a class="el" href="class_level_reader.html#ad093a54f9753a22dd66748b82a08c1fd">LevelReader</a>
+</li>
+<li>LimitedTimeObject()
+: <a class="el" href="class_limited_time_object.html#a0993f1696ed62abc3ef7856e4da7ae0e">LimitedTimeObject</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions_0x6d.html b/docs/html/functions_0x6d.html
new file mode 100644
index 0000000..38b3401
--- /dev/null
+++ b/docs/html/functions_0x6d.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li class="current"><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>makeSmoke()
+: <a class="el" href="class_player_car.html#aafbb292597e0e4648a52444b25e0c5d1">PlayerCar</a>
+</li>
+<li>Maze()
+: <a class="el" href="class_maze.html#a7ecf1da4b9685f97bf3110a8479e724b">Maze</a>
+</li>
+<li>MAZE_FLOOR
+: <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a4e2a075dff2c02bf40b134c9090d1f02">BitmapStore</a>
+</li>
+<li>MAZE_WALL
+: <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386ae662e77b349a8e22c5826ef35b1b5d9a">BitmapStore</a>
+</li>
+<li>MazeMath()
+: <a class="el" href="class_maze_math.html#ac85f1216ce8dc44bc2fb4483b3f4a128">MazeMath</a>
+</li>
+<li>move()
+: <a class="el" href="class_car.html#a85e8699362bb5206e4142dbd5d20dcb9">Car</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions_0x6f.html b/docs/html/functions_0x6f.html
new file mode 100644
index 0000000..9e4c60e
--- /dev/null
+++ b/docs/html/functions_0x6f.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+ <li class="current"><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>operator=()
+: <a class="el" href="class_game.html#abf375a1957b6fdb5cbe67ef70fa818f5">Game</a>
+, <a class="el" href="class_screen_panel.html#a896035d9c68aecd6ca802e2223d26ec5">ScreenPanel</a>
+, <a class="el" href="class_screen.html#a0e36165c330af54d9786b2c6dadbadb5">Screen</a>
+, <a class="el" href="class_keyboard_handler.html#a5135c450b82394496457a0a51d5240f5">KeyboardHandler</a>
+, <a class="el" href="class_info_panel.html#ab70ce071b189ffe1b7e7a67a6227393f">InfoPanel</a>
+, <a class="el" href="class_game_panel.html#afa4391feb9b273eb938531a73b1ec7f2">GamePanel</a>
+, <a class="el" href="class_colour_store.html#a2d3688dbcdf5f9f9b82ef50709c2f286">ColourStore</a>
+, <a class="el" href="class_bitmap_store.html#a3c1092d55aaf1c9c5b7424d7eb2f1576">BitmapStore</a>
+, <a class="el" href="class_maze_math.html#ac7cf69d865cf69b82c991241fa39cd59">MazeMath</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions_0x70.html b/docs/html/functions_0x70.html
new file mode 100644
index 0000000..3adc8ce
--- /dev/null
+++ b/docs/html/functions_0x70.html
@@ -0,0 +1,172 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li class="current"><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>petrol()
+: <a class="el" href="class_player_car.html#af32c01166e92d567202c8415cb3e7c88">PlayerCar</a>
+</li>
+<li>PETROL_FROM_CHECKPOINT
+: <a class="el" href="class_player_car.html#aa51ff0da924f9f9b2ea95907a7a26784">PlayerCar</a>
+</li>
+<li>PETROL_USE_RATE
+: <a class="el" href="class_player_car.html#a1f0b0226242250bd470f48b73defe3be">PlayerCar</a>
+</li>
+<li>PETROL_USE_SMOKESCREEN
+: <a class="el" href="class_player_car.html#af4d042839afea10b0947837040eab12c">PlayerCar</a>
+</li>
+<li>PLAYER
+: <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386acdaf29947fecd91b452e554a75fb9e92">BitmapStore</a>
+</li>
+<li>PLAYER_CHAR
+: <a class="el" href="class_level_reader.html#a8de3d894f4e67a7a0f66f6dfc3a7fbe1">LevelReader</a>
+</li>
+<li>PlayerCar()
+: <a class="el" href="class_player_car.html#a59864f7746f6b96364cc5cc87f9b70e0">PlayerCar</a>
+</li>
+<li>populateColours()
+: <a class="el" href="class_colour_store.html#ad3f729c8e9f6a94bacd85e6db47e2e82">ColourStore</a>
+</li>
+<li>POPUP_TIME
+: <a class="el" href="class_destroyed_object_popup.html#a883845e614aba9d292eb85afa9423f31">DestroyedObjectPopup</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions_0x72.html b/docs/html/functions_0x72.html
new file mode 100644
index 0000000..9bfaa84
--- /dev/null
+++ b/docs/html/functions_0x72.html
@@ -0,0 +1,178 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li class="current"><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>readFile()
+: <a class="el" href="class_config.html#aa9656bf85fa15fd4e90a99558f880602">Config</a>
+</li>
+<li>readLevel()
+: <a class="el" href="class_level_reader.html#a27277149f3270e040c8ffeadbca79758">LevelReader</a>
+</li>
+<li>resolutionSupported()
+: <a class="el" href="class_screen.html#a6480d57328a39c579f312774b5fbf571">Screen</a>
+</li>
+<li>RIGHT
+: <a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa699ae3e1d989e9b12bd200aa86e29e9d">Maze</a>
+</li>
+<li>RIGHT_KEY
+: <a class="el" href="class_keyboard_handler.html#a0822e8b6338b01cb09d08589d778af86">KeyboardHandler</a>
+</li>
+<li>ROCK
+: <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386abf3851dc0110fc83020981fcbb5773eb">BitmapStore</a>
+</li>
+<li>Rock()
+: <a class="el" href="class_rock.html#af8a54b6f7458d83cf27753f53c8c0c19">Rock</a>
+</li>
+<li>ROCK_CHAR
+: <a class="el" href="class_level_reader.html#a321a0fcc5a9ae36a394782be4c71bd7d">LevelReader</a>
+</li>
+<li>rockAtLocation()
+: <a class="el" href="class_enemy_car.html#af0dca9b89448557020ef02a18cffb682">EnemyCar</a>
+</li>
+<li>round()
+: <a class="el" href="class_maze_math.html#a2314f211065f4dc7cb11469770fd2f1c">MazeMath</a>
+</li>
+<li>runloop()
+: <a class="el" href="class_game.html#a069837f5f3f3b91b581e41dd74667211">Game</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions_0x73.html b/docs/html/functions_0x73.html
new file mode 100644
index 0000000..f720544
--- /dev/null
+++ b/docs/html/functions_0x73.html
@@ -0,0 +1,199 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li class="current"><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>Screen()
+: <a class="el" href="class_screen.html#aa430a980cb3dcca13c837f70bf801511">Screen</a>
+</li>
+<li>SCREEN_HEIGHT_DEFAULT
+: <a class="el" href="class_config.html#a2382c43dd0d51b3d52bf88d18438c579">Config</a>
+</li>
+<li>SCREEN_HEIGHT_KEY
+: <a class="el" href="class_config.html#a5dd914d11bd6f43c06ad4682be0efaba">Config</a>
+</li>
+<li>SCREEN_WIDTH_DEFAULT
+: <a class="el" href="class_config.html#ad6f88b173db3508eaeb7b569655b5cf2">Config</a>
+</li>
+<li>SCREEN_WIDTH_KEY
+: <a class="el" href="class_config.html#abebfdbe6033183421dcdb4cdb6fc9549">Config</a>
+</li>
+<li>screenHeight()
+: <a class="el" href="class_config.html#a53d63c52aa51b5231b9ea8e412086773">Config</a>
+</li>
+<li>ScreenPanel()
+: <a class="el" href="class_screen_panel.html#a8c13559489444ea8131066fa5b884645">ScreenPanel</a>
+</li>
+<li>screenWidth()
+: <a class="el" href="class_config.html#a3bb73797396d2d5ba8c9956730dfc4db">Config</a>
+</li>
+<li>setFullscreen()
+: <a class="el" href="class_config.html#a5ce32c242ca037105a2430a122249a0a">Config</a>
+</li>
+<li>setScreenHeight()
+: <a class="el" href="class_config.html#a8e960645b79f31c39ee0cecc89ed6060">Config</a>
+</li>
+<li>setScreenWidth()
+: <a class="el" href="class_config.html#ac0fd2f7c14b9f26339862da74215bf01">Config</a>
+</li>
+<li>SMOKE
+: <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a91fec244d29999552e93ecb7578713fb">BitmapStore</a>
+</li>
+<li>SMOKE_TIME
+: <a class="el" href="class_smokescreen.html#aca053d39fcca8d45096512e92fb0f4d8">Smokescreen</a>
+</li>
+<li>Smokescreen()
+: <a class="el" href="class_smokescreen.html#ad112d610ab5b88da319e0cf46a5a1344">Smokescreen</a>
+</li>
+<li>SMOKESCREEN_KEY
+: <a class="el" href="class_keyboard_handler.html#a2de5780311975180c0b78e7b0457eae1">KeyboardHandler</a>
+</li>
+<li>speed()
+: <a class="el" href="class_car.html#a68b59187e1520a5d016b0894b4c116b9">Car</a>
+</li>
+<li>start()
+: <a class="el" href="class_game.html#a3d9b98f7c4a96ecf578f75b96c9f0e90">Game</a>
+</li>
+<li>States
+: <a class="el" href="class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87">EnemyCar</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions_0x75.html b/docs/html/functions_0x75.html
new file mode 100644
index 0000000..b1ac8f2
--- /dev/null
+++ b/docs/html/functions_0x75.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li class="current"><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>UP
+: <a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7">Maze</a>
+</li>
+<li>UP_KEY
+: <a class="el" href="class_keyboard_handler.html#a3ed342ff89f15b752a9957fd435e9094">KeyboardHandler</a>
+</li>
+<li>update()
+: <a class="el" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907">PlayerCar</a>
+, <a class="el" href="class_limited_time_object.html#ad81a1c9aba4e21dfa40b9e6d881aba4e">LimitedTimeObject</a>
+, <a class="el" href="class_game.html#a79df6376b332d63c9eca0dcee30305c3">Game</a>
+, <a class="el" href="class_enemy_car.html#a9f08f73a076e48a0bc0092e72e15e7e4">EnemyCar</a>
+</li>
+<li>updateFlags()
+: <a class="el" href="class_keyboard_handler.html#a9f53a546420f3d02363c9e1e4e346420">KeyboardHandler</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions_0x77.html b/docs/html/functions_0x77.html
new file mode 100644
index 0000000..0c9a602
--- /dev/null
+++ b/docs/html/functions_0x77.html
@@ -0,0 +1,154 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+ <li class="current"><a href="functions_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>WALL_CHAR
+: <a class="el" href="class_level_reader.html#a250f9fede6584dc196acce86a8e217f9">LevelReader</a>
+</li>
+<li>width()
+: <a class="el" href="class_maze.html#a6963ffbb8e10f5ca72ddc749b3f29419">Maze</a>
+</li>
+<li>writeUnfoundValues()
+: <a class="el" href="class_config.html#a54612c3ce193bea917d3088175e16d43">Config</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions_0x78.html b/docs/html/functions_0x78.html
new file mode 100644
index 0000000..2127635
--- /dev/null
+++ b/docs/html/functions_0x78.html
@@ -0,0 +1,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
+ <li class="current"><a href="functions_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_x"></a>- x -</h3><ul>
+<li>x()
+: <a class="el" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8">GameObject</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions_0x79.html b/docs/html/functions_0x79.html
new file mode 100644
index 0000000..8a74950
--- /dev/null
+++ b/docs/html/functions_0x79.html
@@ -0,0 +1,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
+ <li class="current"><a href="functions_0x79.html#index_y"><span>y</span></a></li>
+ <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_y"></a>- y -</h3><ul>
+<li>y()
+: <a class="el" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b">GameObject</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions_0x7e.html b/docs/html/functions_0x7e.html
new file mode 100644
index 0000000..34e3fa5
--- /dev/null
+++ b/docs/html/functions_0x7e.html
@@ -0,0 +1,175 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="functions.html#index__"><span>_</span></a></li>
+ <li><a href="functions_0x61.html#index_a"><span>a</span></a></li>
+ <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
+ <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
+ <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
+ <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
+ <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
+ <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
+ <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
+ <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
+ <li><a href="functions_0x6b.html#index_k"><span>k</span></a></li>
+ <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
+ <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
+ <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
+ <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
+ <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
+ <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
+ <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
+ <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
+ <li><a href="functions_0x78.html#index_x"><span>x</span></a></li>
+ <li><a href="functions_0x79.html#index_y"><span>y</span></a></li>
+ <li class="current"><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a class="anchor" id="index_0x7e"></a>- ~ -</h3><ul>
+<li>~AllegroDrawingInit()
+: <a class="el" href="class_allegro_drawing_init.html#aa1c05a296b0c63f8f20276cce6472e6b">AllegroDrawingInit</a>
+</li>
+<li>~AllegroInit()
+: <a class="el" href="class_allegro_init.html#a41fb85a1de21168ec2a93e79e0e20b89">AllegroInit</a>
+</li>
+<li>~AllegroKeyboardInit()
+: <a class="el" href="class_allegro_keyboard_init.html#a7d1b1cda1d2220ad522ee955ba8a2c5d">AllegroKeyboardInit</a>
+</li>
+<li>~BitmapStore()
+: <a class="el" href="class_bitmap_store.html#a1e34f2fb55475f16ade380fa1e8829f7">BitmapStore</a>
+</li>
+<li>~Checkpoint()
+: <a class="el" href="class_checkpoint.html#a7fff1a4a6a71c2150a969fbe40d01c34">Checkpoint</a>
+</li>
+<li>~Game()
+: <a class="el" href="class_game.html#ae3d112ca6e0e55150d2fdbc704474530">Game</a>
+</li>
+<li>~InfoPanel()
+: <a class="el" href="class_info_panel.html#a052da279d4bf0405ae3735f24cc2e2a2">InfoPanel</a>
+</li>
+<li>~KeyboardHandler()
+: <a class="el" href="class_keyboard_handler.html#ab090fe5afdee856604b0aa0d9eb918a4">KeyboardHandler</a>
+</li>
+<li>~Screen()
+: <a class="el" href="class_screen.html#a4243bc17596af96415b09ac48205676d">Screen</a>
+</li>
+<li>~ScreenPanel()
+: <a class="el" href="class_screen_panel.html#a843296c130c75beb41ada9ba3eddd457">ScreenPanel</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions_enum.html b/docs/html/functions_enum.html
new file mode 100644
index 0000000..a8354a8
--- /dev/null
+++ b/docs/html/functions_enum.html
@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members - Enumerations</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li class="current"><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&#160;<ul>
+<li>Direction
+: <a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28f">Maze</a>
+</li>
+<li>Image
+: <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386">BitmapStore</a>
+</li>
+<li>States
+: <a class="el" href="class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87">EnemyCar</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions_eval.html b/docs/html/functions_eval.html
new file mode 100644
index 0000000..4e6fca5
--- /dev/null
+++ b/docs/html/functions_eval.html
@@ -0,0 +1,162 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members - Enumerator</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li class="current"><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&#160;<ul>
+<li>BLINDED
+: <a class="el" href="class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87af45d8b201d7334e42651b262a03d631c">EnemyCar</a>
+</li>
+<li>CHASING
+: <a class="el" href="class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87a28df0785e03156c97ddeb81da5e0770c">EnemyCar</a>
+</li>
+<li>CHECKPOINT
+: <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a780d6b9e20ec37fbaf5a40ca846795d9">BitmapStore</a>
+</li>
+<li>CLAIMED_CHECKPOINT
+: <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a824f0021358b88c7f1172d7dece95948">BitmapStore</a>
+</li>
+<li>CRASHED_CAR
+: <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a8b9eb5b79abe467982784ea2227d67e0">BitmapStore</a>
+</li>
+<li>DOWN
+: <a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa89ab143d020541957ab5e0e9cfdd3e23">Maze</a>
+</li>
+<li>ENEMY
+: <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a8a7d9a89e243914ca702660237d4f81d">BitmapStore</a>
+</li>
+<li>LEFT
+: <a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28faab1a1fe0274cd139b3c0116d8caf458c">Maze</a>
+</li>
+<li>MAZE_FLOOR
+: <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a4e2a075dff2c02bf40b134c9090d1f02">BitmapStore</a>
+</li>
+<li>MAZE_WALL
+: <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386ae662e77b349a8e22c5826ef35b1b5d9a">BitmapStore</a>
+</li>
+<li>PLAYER
+: <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386acdaf29947fecd91b452e554a75fb9e92">BitmapStore</a>
+</li>
+<li>RIGHT
+: <a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa699ae3e1d989e9b12bd200aa86e29e9d">Maze</a>
+</li>
+<li>ROCK
+: <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386abf3851dc0110fc83020981fcbb5773eb">BitmapStore</a>
+</li>
+<li>SMOKE
+: <a class="el" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a91fec244d29999552e93ecb7578713fb">BitmapStore</a>
+</li>
+<li>UP
+: <a class="el" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7">Maze</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions_func.html b/docs/html/functions_func.html
new file mode 100644
index 0000000..67bae61
--- /dev/null
+++ b/docs/html/functions_func.html
@@ -0,0 +1,548 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members - Functions</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="#index_a"><span>a</span></a></li>
+ <li><a href="#index_b"><span>b</span></a></li>
+ <li><a href="#index_c"><span>c</span></a></li>
+ <li><a href="#index_d"><span>d</span></a></li>
+ <li><a href="#index_e"><span>e</span></a></li>
+ <li><a href="#index_f"><span>f</span></a></li>
+ <li><a href="#index_g"><span>g</span></a></li>
+ <li><a href="#index_h"><span>h</span></a></li>
+ <li><a href="#index_i"><span>i</span></a></li>
+ <li><a href="#index_k"><span>k</span></a></li>
+ <li><a href="#index_l"><span>l</span></a></li>
+ <li><a href="#index_m"><span>m</span></a></li>
+ <li><a href="#index_o"><span>o</span></a></li>
+ <li><a href="#index_p"><span>p</span></a></li>
+ <li><a href="#index_r"><span>r</span></a></li>
+ <li><a href="#index_s"><span>s</span></a></li>
+ <li><a href="#index_u"><span>u</span></a></li>
+ <li><a href="#index_w"><span>w</span></a></li>
+ <li><a href="#index_x"><span>x</span></a></li>
+ <li><a href="#index_y"><span>y</span></a></li>
+ <li><a href="#index_0x7e"><span>~</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>AllegroDrawingInit()
+: <a class="el" href="class_allegro_drawing_init.html#ab7cf79c71bf662f897bd8cba32f42cda">AllegroDrawingInit</a>
+</li>
+<li>AllegroInit()
+: <a class="el" href="class_allegro_init.html#a81588c1ce0fe3646a188683f1598a66b">AllegroInit</a>
+</li>
+<li>AllegroKeyboardInit()
+: <a class="el" href="class_allegro_keyboard_init.html#ae28cb5cbafdba3372f21ddb95a9ed134">AllegroKeyboardInit</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>backwards()
+: <a class="el" href="class_maze.html#a79cf362b55c21634a93ef6b7d192b77c">Maze</a>
+</li>
+<li>BitmapStore()
+: <a class="el" href="class_bitmap_store.html#abca96ce53be18eb07150745871a3165c">BitmapStore</a>
+</li>
+<li>blind()
+: <a class="el" href="class_enemy_car.html#aeb8bf92c965ab33f793b0274a02f142c">EnemyCar</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>Car()
+: <a class="el" href="class_car.html#a3bd1dc6b75af9dc5bbe4354e0b3161d0">Car</a>
+</li>
+<li>checkCollisions()
+: <a class="el" href="class_collision_detector.html#a6ee96032c26ceeab038d2702d7064c7b">CollisionDetector</a>
+</li>
+<li>checkFacing()
+: <a class="el" href="class_enemy_car.html#afa61cecf7df51e26edd632303c18945c">EnemyCar</a>
+</li>
+<li>Checkpoint()
+: <a class="el" href="class_checkpoint.html#a20c371a9e21ac0092b652a7d63f46f85">Checkpoint</a>
+</li>
+<li>checkpointCount()
+: <a class="el" href="class_checkpoint.html#a872d8574b6f0a7960854fb1175e05f13">Checkpoint</a>
+</li>
+<li>cleanup()
+: <a class="el" href="class_game.html#a961f632fbe7f4ba08d23fe9edc7711be">Game</a>
+</li>
+<li>clearLists()
+: <a class="el" href="class_game.html#a03cf795e9aaa4c5950b4b5e918ab9ab6">Game</a>
+</li>
+<li>collect()
+: <a class="el" href="class_checkpoint.html#ad8f4b9da968e6b1f07080dc6f61282f7">Checkpoint</a>
+</li>
+<li>collision()
+: <a class="el" href="class_collision_detector.html#a36e9c23d49ee7be68277c7d4e4f27d2a">CollisionDetector</a>
+</li>
+<li>ColourStore()
+: <a class="el" href="class_colour_store.html#a3063a6fce81040a8b840a303b1e08829">ColourStore</a>
+</li>
+<li>Config()
+: <a class="el" href="class_config.html#aab967ce080511b4ae5bf578cba5237d3">Config</a>
+</li>
+<li>crash()
+: <a class="el" href="class_player_car.html#a1bdd1dbdf1158b740cd1bcb757f8c578">PlayerCar</a>
+, <a class="el" href="class_enemy_car.html#ac5836046e802a749abb2308886b34060">EnemyCar</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>destroyed()
+: <a class="el" href="class_game_object.html#a266871f6c0220f6b3c902075ebff8eea">GameObject</a>
+</li>
+<li>DestroyedObjectPopup()
+: <a class="el" href="class_destroyed_object_popup.html#af34a9f7421a49953f6bd86233a6a44bc">DestroyedObjectPopup</a>
+</li>
+<li>distance()
+: <a class="el" href="class_maze_math.html#a5735276fb4c76f25944f2c02d622c3f6">MazeMath</a>
+</li>
+<li>draw()
+: <a class="el" href="class_game_panel.html#ab093fb770fa8b46ee863947259c72abd">GamePanel</a>
+, <a class="el" href="class_info_panel.html#a23a025859397c3e28bbe9dce26563d7c">InfoPanel</a>
+, <a class="el" href="class_game_panel.html#a93395482993b341b1b72fbb256ce9be9">GamePanel</a>
+, <a class="el" href="class_screen.html#aec3c5c20e14d6ef033c8a6a559a84872">Screen</a>
+, <a class="el" href="class_screen_panel.html#ab4299f065cdf3e344c3b32b484136ada">ScreenPanel</a>
+, <a class="el" href="class_game_panel.html#acff2b430ecad1310a0a36cfe7c994d2f">GamePanel</a>
+, <a class="el" href="class_info_panel.html#aa9628c14e08ac6573e0191d9d4afa227">InfoPanel</a>
+</li>
+<li>drawCheckpoint()
+: <a class="el" href="class_bitmap_store.html#ae5d12fa60b03a7ea2119c67938650352">BitmapStore</a>
+</li>
+<li>drawClaimedCheckpoint()
+: <a class="el" href="class_bitmap_store.html#a07f505192ccf0717d6aed29761934a5c">BitmapStore</a>
+</li>
+<li>drawCrashedCar()
+: <a class="el" href="class_bitmap_store.html#abb0a062e5cb3170786a6c202a53c145b">BitmapStore</a>
+</li>
+<li>drawEnemyCar()
+: <a class="el" href="class_bitmap_store.html#aff7a6fc2b35ff6cd38ef74730523f5a9">BitmapStore</a>
+</li>
+<li>drawLoss()
+: <a class="el" href="class_screen.html#aab9ab8447df2b526985970d2ac80c919">Screen</a>
+</li>
+<li>drawMazeFloor()
+: <a class="el" href="class_bitmap_store.html#a8a7d5fe7cc38ddb3c651152654226201">BitmapStore</a>
+</li>
+<li>drawMazeWall()
+: <a class="el" href="class_bitmap_store.html#a90680d174c1d77e19ace8c2ba0eef6ac">BitmapStore</a>
+</li>
+<li>drawPlayerCar()
+: <a class="el" href="class_bitmap_store.html#af645b30d96761f401770336a555b6429">BitmapStore</a>
+</li>
+<li>drawRock()
+: <a class="el" href="class_bitmap_store.html#a2132a5ec8dfb43f06f75accf8bb9a50e">BitmapStore</a>
+</li>
+<li>drawSmoke()
+: <a class="el" href="class_bitmap_store.html#a1a346a06675a7257ca8a7879aeb27e48">BitmapStore</a>
+</li>
+<li>drawWin()
+: <a class="el" href="class_screen.html#ad4c1281e4d59eb89377dd87bba8a310e">Screen</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>EnemyCar()
+: <a class="el" href="class_enemy_car.html#a8af7d3c56fa9dad09992ce6fbd7389d2">EnemyCar</a>
+</li>
+<li>exitClicked()
+: <a class="el" href="class_screen.html#acca34443ba0ad97922069658d688ea9a">Screen</a>
+</li>
+<li>extractValue()
+: <a class="el" href="class_config.html#a38dee1d0fe4e962aedcee79faad2691c">Config</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>facing()
+: <a class="el" href="class_game_object.html#a2549066ec4dc8f4ca2d3a8c5d5729324">GameObject</a>
+</li>
+<li>fillValues()
+: <a class="el" href="class_config.html#ac31c5164b58f86c2a9ecaf21ac1f2202">Config</a>
+</li>
+<li>flip()
+: <a class="el" href="class_screen_panel.html#ab701d3888b13463d200be112f0eb4d82">ScreenPanel</a>
+, <a class="el" href="class_screen.html#abd12bddd241c8d214d2423804fe20ffb">Screen</a>
+</li>
+<li>fullscreen()
+: <a class="el" href="class_config.html#a8a401add779f2b74732ade9e515bf0cd">Config</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<li>Game()
+: <a class="el" href="class_game.html#ad59df6562a58a614fda24622d3715b65">Game</a>
+</li>
+<li>GameObject()
+: <a class="el" href="class_game_object.html#a26cba01b9c2d301d4ee89a98b9396d67">GameObject</a>
+</li>
+<li>GamePanel()
+: <a class="el" href="class_game_panel.html#a3475820b2255da92e247d07248870044">GamePanel</a>
+</li>
+<li>generateMaze()
+: <a class="el" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8">Maze</a>
+</li>
+<li>getBitmap()
+: <a class="el" href="class_bitmap_store.html#aadd437c869c5856c36d920dfafbc6ee4">BitmapStore</a>
+</li>
+<li>getColour()
+: <a class="el" href="class_colour_store.html#ac8474c4e9b335215f03ec2c749847ad2">ColourStore</a>
+</li>
+<li>getFacing()
+: <a class="el" href="class_keyboard_handler.html#ae17ed4bf0abae7d95f9b772a6d704a70">KeyboardHandler</a>
+</li>
+<li>getLevel()
+: <a class="el" href="class_screen.html#a45d06e513491e40f76013fb670c6c6cc">Screen</a>
+</li>
+<li>getPanelX()
+: <a class="el" href="class_game_panel.html#a53a4386ab0f60db88b3c638b3880cd91">GamePanel</a>
+, <a class="el" href="class_info_panel.html#a0accb88b099f412cc3baa7d2bf4690aa">InfoPanel</a>
+</li>
+<li>getPanelY()
+: <a class="el" href="class_info_panel.html#ad962eab814441375a8634b67d743d7e6">InfoPanel</a>
+, <a class="el" href="class_game_panel.html#a0e722b67c8ee7fe5f557821adf9b8cc2">GamePanel</a>
+</li>
+<li>getSmokescreen()
+: <a class="el" href="class_keyboard_handler.html#ab66797a37a1c54a630187519870d9a5b">KeyboardHandler</a>
+</li>
+<li>getSolid()
+: <a class="el" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1">Maze</a>
+</li>
+<li>gotCheckpoint()
+: <a class="el" href="class_player_car.html#aaa8b9d66c0c4e4eab5a303dd0a4e5f39">PlayerCar</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
+<li>height()
+: <a class="el" href="class_maze.html#a53de30abea69713225ab77703e753d81">Maze</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>image()
+: <a class="el" href="class_game_object.html#a05e352e3e01e774892beee0503fdb349">GameObject</a>
+</li>
+<li>InfoPanel()
+: <a class="el" href="class_info_panel.html#a5a3d0afb5ebd764de04484b1817912b6">InfoPanel</a>
+</li>
+<li>initLevel()
+: <a class="el" href="class_game.html#a2bd8589c18470f644445d97c1c35d169">Game</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
+<li>KeyboardHandler()
+: <a class="el" href="class_keyboard_handler.html#acd0d5781016f792207464bb720d2f994">KeyboardHandler</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>LevelReader()
+: <a class="el" href="class_level_reader.html#ad093a54f9753a22dd66748b82a08c1fd">LevelReader</a>
+</li>
+<li>LimitedTimeObject()
+: <a class="el" href="class_limited_time_object.html#a0993f1696ed62abc3ef7856e4da7ae0e">LimitedTimeObject</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>makeSmoke()
+: <a class="el" href="class_player_car.html#aafbb292597e0e4648a52444b25e0c5d1">PlayerCar</a>
+</li>
+<li>Maze()
+: <a class="el" href="class_maze.html#a7ecf1da4b9685f97bf3110a8479e724b">Maze</a>
+</li>
+<li>MazeMath()
+: <a class="el" href="class_maze_math.html#a8e1499b201cd7034b4a73ed180a87eda">MazeMath</a>
+</li>
+<li>move()
+: <a class="el" href="class_car.html#a85e8699362bb5206e4142dbd5d20dcb9">Car</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>operator=()
+: <a class="el" href="class_game.html#abf375a1957b6fdb5cbe67ef70fa818f5">Game</a>
+, <a class="el" href="class_screen_panel.html#a896035d9c68aecd6ca802e2223d26ec5">ScreenPanel</a>
+, <a class="el" href="class_screen.html#a0e36165c330af54d9786b2c6dadbadb5">Screen</a>
+, <a class="el" href="class_keyboard_handler.html#a5135c450b82394496457a0a51d5240f5">KeyboardHandler</a>
+, <a class="el" href="class_info_panel.html#ab70ce071b189ffe1b7e7a67a6227393f">InfoPanel</a>
+, <a class="el" href="class_game_panel.html#afa4391feb9b273eb938531a73b1ec7f2">GamePanel</a>
+, <a class="el" href="class_colour_store.html#a2d3688dbcdf5f9f9b82ef50709c2f286">ColourStore</a>
+, <a class="el" href="class_bitmap_store.html#a3c1092d55aaf1c9c5b7424d7eb2f1576">BitmapStore</a>
+, <a class="el" href="class_maze_math.html#ac7cf69d865cf69b82c991241fa39cd59">MazeMath</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>petrol()
+: <a class="el" href="class_player_car.html#af32c01166e92d567202c8415cb3e7c88">PlayerCar</a>
+</li>
+<li>PlayerCar()
+: <a class="el" href="class_player_car.html#a59864f7746f6b96364cc5cc87f9b70e0">PlayerCar</a>
+</li>
+<li>populateColours()
+: <a class="el" href="class_colour_store.html#ad3f729c8e9f6a94bacd85e6db47e2e82">ColourStore</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>readFile()
+: <a class="el" href="class_config.html#aa9656bf85fa15fd4e90a99558f880602">Config</a>
+</li>
+<li>readLevel()
+: <a class="el" href="class_level_reader.html#a27277149f3270e040c8ffeadbca79758">LevelReader</a>
+</li>
+<li>resolutionSupported()
+: <a class="el" href="class_screen.html#a6480d57328a39c579f312774b5fbf571">Screen</a>
+</li>
+<li>Rock()
+: <a class="el" href="class_rock.html#af8a54b6f7458d83cf27753f53c8c0c19">Rock</a>
+</li>
+<li>rockAtLocation()
+: <a class="el" href="class_enemy_car.html#af0dca9b89448557020ef02a18cffb682">EnemyCar</a>
+</li>
+<li>round()
+: <a class="el" href="class_maze_math.html#a2314f211065f4dc7cb11469770fd2f1c">MazeMath</a>
+</li>
+<li>runloop()
+: <a class="el" href="class_game.html#a069837f5f3f3b91b581e41dd74667211">Game</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>Screen()
+: <a class="el" href="class_screen.html#aa430a980cb3dcca13c837f70bf801511">Screen</a>
+</li>
+<li>screenHeight()
+: <a class="el" href="class_config.html#a53d63c52aa51b5231b9ea8e412086773">Config</a>
+</li>
+<li>ScreenPanel()
+: <a class="el" href="class_screen_panel.html#a8c13559489444ea8131066fa5b884645">ScreenPanel</a>
+</li>
+<li>screenWidth()
+: <a class="el" href="class_config.html#a3bb73797396d2d5ba8c9956730dfc4db">Config</a>
+</li>
+<li>setFullscreen()
+: <a class="el" href="class_config.html#a5ce32c242ca037105a2430a122249a0a">Config</a>
+</li>
+<li>setScreenHeight()
+: <a class="el" href="class_config.html#a8e960645b79f31c39ee0cecc89ed6060">Config</a>
+</li>
+<li>setScreenWidth()
+: <a class="el" href="class_config.html#ac0fd2f7c14b9f26339862da74215bf01">Config</a>
+</li>
+<li>Smokescreen()
+: <a class="el" href="class_smokescreen.html#ad112d610ab5b88da319e0cf46a5a1344">Smokescreen</a>
+</li>
+<li>speed()
+: <a class="el" href="class_car.html#a68b59187e1520a5d016b0894b4c116b9">Car</a>
+</li>
+<li>start()
+: <a class="el" href="class_game.html#a3d9b98f7c4a96ecf578f75b96c9f0e90">Game</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>update()
+: <a class="el" href="class_enemy_car.html#a9f08f73a076e48a0bc0092e72e15e7e4">EnemyCar</a>
+, <a class="el" href="class_game.html#a79df6376b332d63c9eca0dcee30305c3">Game</a>
+, <a class="el" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907">PlayerCar</a>
+, <a class="el" href="class_limited_time_object.html#ad81a1c9aba4e21dfa40b9e6d881aba4e">LimitedTimeObject</a>
+</li>
+<li>updateFlags()
+: <a class="el" href="class_keyboard_handler.html#a9f53a546420f3d02363c9e1e4e346420">KeyboardHandler</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>width()
+: <a class="el" href="class_maze.html#a6963ffbb8e10f5ca72ddc749b3f29419">Maze</a>
+</li>
+<li>writeUnfoundValues()
+: <a class="el" href="class_config.html#a54612c3ce193bea917d3088175e16d43">Config</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_x"></a>- x -</h3><ul>
+<li>x()
+: <a class="el" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8">GameObject</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_y"></a>- y -</h3><ul>
+<li>y()
+: <a class="el" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b">GameObject</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_0x7e"></a>- ~ -</h3><ul>
+<li>~AllegroDrawingInit()
+: <a class="el" href="class_allegro_drawing_init.html#aa1c05a296b0c63f8f20276cce6472e6b">AllegroDrawingInit</a>
+</li>
+<li>~AllegroInit()
+: <a class="el" href="class_allegro_init.html#a41fb85a1de21168ec2a93e79e0e20b89">AllegroInit</a>
+</li>
+<li>~AllegroKeyboardInit()
+: <a class="el" href="class_allegro_keyboard_init.html#a7d1b1cda1d2220ad522ee955ba8a2c5d">AllegroKeyboardInit</a>
+</li>
+<li>~BitmapStore()
+: <a class="el" href="class_bitmap_store.html#a1e34f2fb55475f16ade380fa1e8829f7">BitmapStore</a>
+</li>
+<li>~Checkpoint()
+: <a class="el" href="class_checkpoint.html#a7fff1a4a6a71c2150a969fbe40d01c34">Checkpoint</a>
+</li>
+<li>~Game()
+: <a class="el" href="class_game.html#ae3d112ca6e0e55150d2fdbc704474530">Game</a>
+</li>
+<li>~InfoPanel()
+: <a class="el" href="class_info_panel.html#a052da279d4bf0405ae3735f24cc2e2a2">InfoPanel</a>
+</li>
+<li>~KeyboardHandler()
+: <a class="el" href="class_keyboard_handler.html#ab090fe5afdee856604b0aa0d9eb918a4">KeyboardHandler</a>
+</li>
+<li>~Screen()
+: <a class="el" href="class_screen.html#a4243bc17596af96415b09ac48205676d">Screen</a>
+</li>
+<li>~ScreenPanel()
+: <a class="el" href="class_screen_panel.html#a843296c130c75beb41ada9ba3eddd457">ScreenPanel</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions_type.html b/docs/html/functions_type.html
new file mode 100644
index 0000000..149092b
--- /dev/null
+++ b/docs/html/functions_type.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members - Typedefs</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li class="current"><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&#160;<ul>
+<li>BoolGrid
+: <a class="el" href="class_maze.html#aea392ab34f271f56b1746b30aed9588a">Maze</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/functions_vars.html b/docs/html/functions_vars.html
new file mode 100644
index 0000000..2dbe8df
--- /dev/null
+++ b/docs/html/functions_vars.html
@@ -0,0 +1,483 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Members - Variables</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
+ <li><a href="functions_type.html"><span>Typedefs</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="#index__"><span>_</span></a></li>
+ <li><a href="#index_b"><span>b</span></a></li>
+ <li><a href="#index_c"><span>c</span></a></li>
+ <li><a href="#index_d"><span>d</span></a></li>
+ <li><a href="#index_e"><span>e</span></a></li>
+ <li><a href="#index_f"><span>f</span></a></li>
+ <li><a href="#index_l"><span>l</span></a></li>
+ <li><a href="#index_p"><span>p</span></a></li>
+ <li><a href="#index_r"><span>r</span></a></li>
+ <li><a href="#index_s"><span>s</span></a></li>
+ <li><a href="#index_u"><span>u</span></a></li>
+ <li><a href="#index_w"><span>w</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
+<li>_allegro
+: <a class="el" href="class_allegro_keyboard_init.html#af8655fcd2e20750f965e55304500bc3b">AllegroKeyboardInit</a>
+, <a class="el" href="class_allegro_drawing_init.html#a8254ecb9b3ad13409ff1ec1cfeee66ef">AllegroDrawingInit</a>
+, <a class="el" href="class_game_panel.html#a18c100c8d9ae2601a97083485d937418">GamePanel</a>
+, <a class="el" href="class_screen.html#ae0863416022fcb59189d2aefd3345621">Screen</a>
+, <a class="el" href="class_game.html#a3bbe8c0dadbdf9e9e1d499f10509ef4e">Game</a>
+, <a class="el" href="class_screen_panel.html#a3877f04c03866e35588f0b753ee7c485">ScreenPanel</a>
+</li>
+<li>_back
+: <a class="el" href="class_screen_panel.html#a1a3ec8e60be5d5cede210171bda33468">ScreenPanel</a>
+</li>
+<li>_baseSpeed
+: <a class="el" href="class_car.html#a7b942584de02f8af6f571a60a1cf32ba">Car</a>
+</li>
+<li>_bitmapFont
+: <a class="el" href="class_bitmap_store.html#a0c73c3c20f8093c83707cde15c4fed5f">BitmapStore</a>
+</li>
+<li>_bitmaps
+: <a class="el" href="class_bitmap_store.html#ae3d18969f61f97fce6622cb6f7004711">BitmapStore</a>
+</li>
+<li>_bitmapStore
+: <a class="el" href="class_game_panel.html#a0125ff874ffebadc15c7678210914a8c">GamePanel</a>
+</li>
+<li>_blockWidth
+: <a class="el" href="class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff">BitmapStore</a>
+</li>
+<li>_checkpointCount
+: <a class="el" href="class_checkpoint.html#acb3ffc612d2a496b6b95752878818ff6">Checkpoint</a>
+</li>
+<li>_checkpointHeadingY
+: <a class="el" href="class_info_panel.html#a7ec514286dbf2fb43f64acd620397e21">InfoPanel</a>
+</li>
+<li>_checkpoints
+: <a class="el" href="class_game.html#a856252e94c580f59b926affc7d45b4bf">Game</a>
+</li>
+<li>_checkpointValueY
+: <a class="el" href="class_info_panel.html#ad118b5f123e590a95b3f390fd9597f02">InfoPanel</a>
+</li>
+<li>_collisionDetector
+: <a class="el" href="class_game.html#ab88620fda0d1fa729dcab6013e8f1efc">Game</a>
+</li>
+<li>_colours
+: <a class="el" href="class_colour_store.html#acb64b1ffc465fa752a2f282da4c9afba">ColourStore</a>
+</li>
+<li>_colourStore
+: <a class="el" href="class_info_panel.html#a27ac079ed1a39ae672b6ceb9e0974855">InfoPanel</a>
+</li>
+<li>_config
+: <a class="el" href="class_game.html#aa60fe2dc0d1d53ebf49c2d87af6ee2d5">Game</a>
+</li>
+<li>_destroyed
+: <a class="el" href="class_game_object.html#adc4a399cc59d5706f75748fb3846faec">GameObject</a>
+</li>
+<li>_display
+: <a class="el" href="class_screen.html#a4972e24cf3677e51b18feac34a563ba0">Screen</a>
+</li>
+<li>_down
+: <a class="el" href="class_keyboard_handler.html#aa6d1c75e1a98d4aae96d8ac1c8aaa539">KeyboardHandler</a>
+</li>
+<li>_drawing
+: <a class="el" href="class_info_panel.html#a589359c67b30af50338791f8af0e05e0">InfoPanel</a>
+, <a class="el" href="class_screen.html#a2dafde8aecbd3bc3c4394f36df913b64">Screen</a>
+</li>
+<li>_drawingInstalls
+: <a class="el" href="class_bitmap_store.html#a12f738a24033673278a496c1aa5abcc8">BitmapStore</a>
+</li>
+<li>_enemies
+: <a class="el" href="class_game.html#afbd3e358076a6cf2e72faefe1c202df9">Game</a>
+</li>
+<li>_exitClicked
+: <a class="el" href="class_screen.html#ae7f213f79bf9680e0ff3f4b52ebf051f">Screen</a>
+</li>
+<li>_facing
+: <a class="el" href="class_game_object.html#a24d36b1a64504298700a7ae7111fad5d">GameObject</a>
+</li>
+<li>_filename
+: <a class="el" href="class_level_reader.html#a233910d4cd16ff624d76b06ca8071f7e">LevelReader</a>
+</li>
+<li>_font
+: <a class="el" href="class_screen.html#a42a627863a8f9d1529278cb060d4102b">Screen</a>
+</li>
+<li>_front
+: <a class="el" href="class_screen_panel.html#a0a3232c41ca107b2cceee73aa0e0d7fe">ScreenPanel</a>
+</li>
+<li>_fullscreen
+: <a class="el" href="class_config.html#ad6fddaaf52742adcba95155b3635e807">Config</a>
+</li>
+<li>_gameAreaWidth
+: <a class="el" href="class_screen.html#a7cba9fb0069d763055ef351452a15227">Screen</a>
+</li>
+<li>_height
+: <a class="el" href="class_maze.html#a02f1ff55e76161495bbe11bc4c0e5f54">Maze</a>
+, <a class="el" href="class_screen_panel.html#a4f6dd5c7ca10d51bface7b1ddedc236c">ScreenPanel</a>
+</li>
+<li>_image
+: <a class="el" href="class_game_object.html#a8b0aa105507a8a9559bbc2a66198ccd6">GameObject</a>
+</li>
+<li>_infoPanelWidth
+: <a class="el" href="class_screen.html#ab895e588a89e1943303487d47a2b9216">Screen</a>
+</li>
+<li>_initCount
+: <a class="el" href="class_allegro_init.html#ab8d20b549d0b996dde5cdbe8acd7186c">AllegroInit</a>
+, <a class="el" href="class_allegro_keyboard_init.html#ac7f75bcc5cb56a1c2f4e9ce653d9dfd7">AllegroKeyboardInit</a>
+, <a class="el" href="class_allegro_drawing_init.html#a78e8f792c6dba89eddf42e74d4a3d577">AllegroDrawingInit</a>
+</li>
+<li>_input
+: <a class="el" href="class_player_car.html#a5f8477ebd7de6298151ed70fbb9ffa4f">PlayerCar</a>
+</li>
+<li>_keyboard
+: <a class="el" href="class_keyboard_handler.html#a0ec33ec0de48e563e9137294fb7577da">KeyboardHandler</a>
+, <a class="el" href="class_screen.html#a0c5cff1b93dae4d559a81d261a8bcee6">Screen</a>
+</li>
+<li>_keyboardEvents
+: <a class="el" href="class_keyboard_handler.html#a44116ed8745f3a3360e1d7c29ea86d56">KeyboardHandler</a>
+</li>
+<li>_left
+: <a class="el" href="class_keyboard_handler.html#a3bc780470d7cbaf9f4ea239e0613ce3c">KeyboardHandler</a>
+</li>
+<li>_maze
+: <a class="el" href="class_game.html#a33457b2c7fa4f43b89e54ce9c5ac6f83">Game</a>
+</li>
+<li>_mazeblockWidth
+: <a class="el" href="class_game_panel.html#a4889f5f6e1ad713be455d4f69a2cda96">GamePanel</a>
+</li>
+<li>_miniMazeblockWidth
+: <a class="el" href="class_info_panel.html#abb211fac23293e41f23b86fd70df98f0">InfoPanel</a>
+</li>
+<li>_miniMazeHeight
+: <a class="el" href="class_info_panel.html#ad38206daa42c82b45878e6d0c55f2860">InfoPanel</a>
+</li>
+<li>_miniMazeY
+: <a class="el" href="class_info_panel.html#a7b4bb6cca8549d6a1d1deccc99994b9b">InfoPanel</a>
+</li>
+<li>_offsetX
+: <a class="el" href="class_game_panel.html#afe99f100b68ec2475cb0a509887b63a9">GamePanel</a>
+</li>
+<li>_offsetY
+: <a class="el" href="class_game_panel.html#af3354addd707cb42b078dbe2ef29e189">GamePanel</a>
+</li>
+<li>_panelFont
+: <a class="el" href="class_info_panel.html#a38d023a2b00eafa303de37550cb96817">InfoPanel</a>
+</li>
+<li>_panels
+: <a class="el" href="class_screen.html#a30ba66122613181e312e0d7586d2a814">Screen</a>
+</li>
+<li>_petrol
+: <a class="el" href="class_player_car.html#a51f836c3619c42df7762d440e8007010">PlayerCar</a>
+</li>
+<li>_petrolGuageHeight
+: <a class="el" href="class_info_panel.html#a0c85348f8471d86da73772f86a62f84c">InfoPanel</a>
+</li>
+<li>_petrolGuageY
+: <a class="el" href="class_info_panel.html#a29976100c8fc5c130be713dfb5c2807e">InfoPanel</a>
+</li>
+<li>_petrolHeadingY
+: <a class="el" href="class_info_panel.html#a5ab76703538ad6e396a21ea8fb47d23d">InfoPanel</a>
+</li>
+<li>_players
+: <a class="el" href="class_game.html#a75bf3282da1519766a6b75e2d83293ac">Game</a>
+</li>
+<li>_popups
+: <a class="el" href="class_game.html#a9bea5a0ee430443effa418d42a903f83">Game</a>
+</li>
+<li>_previousFacing
+: <a class="el" href="class_keyboard_handler.html#a90120a85c62481b3a2c0330511cffbac">KeyboardHandler</a>
+</li>
+<li>_remainingTime
+: <a class="el" href="class_limited_time_object.html#a0b6a4bb0c76b637fba1db498ce084d3a">LimitedTimeObject</a>
+</li>
+<li>_right
+: <a class="el" href="class_keyboard_handler.html#a81d37831d958ff21c2ce08cfa97ca420">KeyboardHandler</a>
+</li>
+<li>_rocks
+: <a class="el" href="class_game.html#a9f14643bfc4d595dc7dfa3160a59d71b">Game</a>
+</li>
+<li>_screen
+: <a class="el" href="class_game.html#a9bc904a37fe9b3e85a597b6b5c6a66d5">Game</a>
+</li>
+<li>_screenHeight
+: <a class="el" href="class_screen.html#a8784c86e10d2b6af0dd99d710f3955e9">Screen</a>
+, <a class="el" href="class_config.html#ac27364c75bc8d5e82119988df85c1599">Config</a>
+</li>
+<li>_screenWidth
+: <a class="el" href="class_config.html#a46dce43903bb24bac8c2ffc92f2ee4da">Config</a>
+, <a class="el" href="class_screen.html#a5931238a3eb8cf1a14b0f8b8d7044b65">Screen</a>
+</li>
+<li>_smokescreen
+: <a class="el" href="class_keyboard_handler.html#a7769dc815c493fb5962d52c3d5bc7b16">KeyboardHandler</a>
+</li>
+<li>_smokescreens
+: <a class="el" href="class_game.html#a88916ad9e8095b99a9c870a053180c1c">Game</a>
+</li>
+<li>_speed
+: <a class="el" href="class_car.html#a84b3d05e98d66f358942193ff54dee51">Car</a>
+</li>
+<li>_state
+: <a class="el" href="class_enemy_car.html#a65a1c7b520f043aae27800ced9e8d543">EnemyCar</a>
+</li>
+<li>_targetX
+: <a class="el" href="class_enemy_car.html#aa84ac6485311c535526ea14d02d98cc9">EnemyCar</a>
+</li>
+<li>_targetY
+: <a class="el" href="class_enemy_car.html#a61ff3751123febe8bc9ab24d0763245c">EnemyCar</a>
+</li>
+<li>_timer
+: <a class="el" href="class_game.html#af153fc1d94c473114cfbd63728d21f91">Game</a>
+</li>
+<li>_timerEvents
+: <a class="el" href="class_game.html#a2b7303df1b6d0163b78c2c306164859f">Game</a>
+</li>
+<li>_transparent
+: <a class="el" href="class_colour_store.html#acadd8e6ed32fe6535252c94124df04ca">ColourStore</a>
+</li>
+<li>_up
+: <a class="el" href="class_keyboard_handler.html#ad323844aad47f1bc263ec2fd4a19ac3a">KeyboardHandler</a>
+</li>
+<li>_wallLocations
+: <a class="el" href="class_maze.html#a3f0247841ddb8a6b5b8b5eeff86b754a">Maze</a>
+</li>
+<li>_width
+: <a class="el" href="class_maze.html#a981c764d7ad04ca06bd8dee472578ce4">Maze</a>
+, <a class="el" href="class_screen_panel.html#afbbcad2a101b95869dcdef9bf0898f65">ScreenPanel</a>
+</li>
+<li>_windowEvents
+: <a class="el" href="class_screen.html#aa4ea622368bdf47a3b22d026048ee83a">Screen</a>
+</li>
+<li>_x
+: <a class="el" href="class_game_object.html#acc5b8970ff0036786fdd9af621bd1614">GameObject</a>
+</li>
+<li>_y
+: <a class="el" href="class_game_object.html#ade9a5568d88963b86547ddcaec465b4e">GameObject</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>BLANK
+: <a class="el" href="class_screen_panel.html#a1cc6ea44035f47d77d24b4cee9dc9d85">ScreenPanel</a>
+</li>
+<li>BLOCKS_PER_ROW
+: <a class="el" href="class_game_panel.html#ae60d3f1c29382ad3c6e6b5c5a56d2160">GamePanel</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>CHECKPOINT_CHAR
+: <a class="el" href="class_level_reader.html#ad401a0f48a3eac678c0f53e95ea1f354">LevelReader</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>DOWN_KEY
+: <a class="el" href="class_keyboard_handler.html#a3d8d985fdc3c3ac543e84647967f78e4">KeyboardHandler</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>ENEMY_CHAR
+: <a class="el" href="class_level_reader.html#a67d3735d6a3e40fa61527dd1ff7cfa22">LevelReader</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>FPS
+: <a class="el" href="class_game.html#a636d6897103fd12d230489d512bf2be1">Game</a>
+</li>
+<li>FULLSCREEN_DEFAULT
+: <a class="el" href="class_config.html#a3195b4273ebe9ac691167bff71394720">Config</a>
+</li>
+<li>FULLSCREEN_KEY
+: <a class="el" href="class_config.html#ae2dd20bca46b767d2a30c32de7ab78cb">Config</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>LEFT_KEY
+: <a class="el" href="class_keyboard_handler.html#ab285a229f4f5c7c1be5504fdb629e10a">KeyboardHandler</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>PETROL_FROM_CHECKPOINT
+: <a class="el" href="class_player_car.html#aa51ff0da924f9f9b2ea95907a7a26784">PlayerCar</a>
+</li>
+<li>PETROL_USE_RATE
+: <a class="el" href="class_player_car.html#a1f0b0226242250bd470f48b73defe3be">PlayerCar</a>
+</li>
+<li>PETROL_USE_SMOKESCREEN
+: <a class="el" href="class_player_car.html#af4d042839afea10b0947837040eab12c">PlayerCar</a>
+</li>
+<li>PLAYER_CHAR
+: <a class="el" href="class_level_reader.html#a8de3d894f4e67a7a0f66f6dfc3a7fbe1">LevelReader</a>
+</li>
+<li>POPUP_TIME
+: <a class="el" href="class_destroyed_object_popup.html#a883845e614aba9d292eb85afa9423f31">DestroyedObjectPopup</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>RIGHT_KEY
+: <a class="el" href="class_keyboard_handler.html#a0822e8b6338b01cb09d08589d778af86">KeyboardHandler</a>
+</li>
+<li>ROCK_CHAR
+: <a class="el" href="class_level_reader.html#a321a0fcc5a9ae36a394782be4c71bd7d">LevelReader</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>SCREEN_HEIGHT_DEFAULT
+: <a class="el" href="class_config.html#a2382c43dd0d51b3d52bf88d18438c579">Config</a>
+</li>
+<li>SCREEN_HEIGHT_KEY
+: <a class="el" href="class_config.html#a5dd914d11bd6f43c06ad4682be0efaba">Config</a>
+</li>
+<li>SCREEN_WIDTH_DEFAULT
+: <a class="el" href="class_config.html#ad6f88b173db3508eaeb7b569655b5cf2">Config</a>
+</li>
+<li>SCREEN_WIDTH_KEY
+: <a class="el" href="class_config.html#abebfdbe6033183421dcdb4cdb6fc9549">Config</a>
+</li>
+<li>SMOKE_TIME
+: <a class="el" href="class_smokescreen.html#aca053d39fcca8d45096512e92fb0f4d8">Smokescreen</a>
+</li>
+<li>SMOKESCREEN_KEY
+: <a class="el" href="class_keyboard_handler.html#a2de5780311975180c0b78e7b0457eae1">KeyboardHandler</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>UP_KEY
+: <a class="el" href="class_keyboard_handler.html#a3ed342ff89f15b752a9957fd435e9094">KeyboardHandler</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>WALL_CHAR
+: <a class="el" href="class_level_reader.html#a250f9fede6584dc196acce86a8e217f9">LevelReader</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/globals.html b/docs/html/globals.html
new file mode 100644
index 0000000..0e0f67e
--- /dev/null
+++ b/docs/html/globals.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: File Members</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="#index_m"><span>m</span></a></li>
+ <li><a href="#index_t"><span>t</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>main()
+: <a class="el" href="main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main.cpp</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>TEST()
+: <a class="el" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8">dataTests.cpp</a>
+, <a class="el" href="presentation_tests_8cpp.html#a8b8a615a5a6ef5da97b81d626fba41eb">presentationTests.cpp</a>
+, <a class="el" href="logic_tests_8cpp.html#a2de4a45e984d28048ec0cfcd3199cfc7">logicTests.cpp</a>
+, <a class="el" href="data_tests_8cpp.html#a63083af852f9dfa8036f327f6fa84328">dataTests.cpp</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/globals_func.html b/docs/html/globals_func.html
new file mode 100644
index 0000000..6fb96a3
--- /dev/null
+++ b/docs/html/globals_func.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: File Members</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="#index_m"><span>m</span></a></li>
+ <li><a href="#index_t"><span>t</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>main()
+: <a class="el" href="main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main.cpp</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>TEST()
+: <a class="el" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8">dataTests.cpp</a>
+, <a class="el" href="presentation_tests_8cpp.html#a8b8a615a5a6ef5da97b81d626fba41eb">presentationTests.cpp</a>
+, <a class="el" href="logic_tests_8cpp.html#a2de4a45e984d28048ec0cfcd3199cfc7">logicTests.cpp</a>
+, <a class="el" href="data_tests_8cpp.html#a63083af852f9dfa8036f327f6fa84328">dataTests.cpp</a>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/hierarchy.html b/docs/html/hierarchy.html
new file mode 100644
index 0000000..c961c19
--- /dev/null
+++ b/docs/html/hierarchy.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Class Hierarchy</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li class="current"><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">Class Hierarchy</div> </div>
+</div>
+<div class="contents">
+<div class="textblock">This inheritance list is sorted roughly, but not completely, alphabetically:</div><ul>
+<li><a class="el" href="class_allegro_drawing_init.html">AllegroDrawingInit</a></li>
+<li><a class="el" href="class_allegro_init.html">AllegroInit</a></li>
+<li><a class="el" href="class_allegro_keyboard_init.html">AllegroKeyboardInit</a></li>
+<li><a class="el" href="class_bad_resolution.html">BadResolution</a></li>
+<li><a class="el" href="class_bitmap_store.html">BitmapStore</a></li>
+<li><a class="el" href="class_collision_detector.html">CollisionDetector</a></li>
+<li><a class="el" href="class_colour_store.html">ColourStore</a></li>
+<li><a class="el" href="class_config.html">Config</a></li>
+<li><a class="el" href="class_file_open_error.html">FileOpenError</a></li>
+<li><a class="el" href="class_game.html">Game</a></li>
+<li><a class="el" href="class_game_object.html">GameObject</a><ul>
+<li><a class="el" href="class_car.html">Car</a><ul>
+<li><a class="el" href="class_enemy_car.html">EnemyCar</a></li>
+<li><a class="el" href="class_player_car.html">PlayerCar</a></li>
+</ul>
+</li>
+<li><a class="el" href="class_checkpoint.html">Checkpoint</a></li>
+<li><a class="el" href="class_limited_time_object.html">LimitedTimeObject</a><ul>
+<li><a class="el" href="class_destroyed_object_popup.html">DestroyedObjectPopup</a></li>
+<li><a class="el" href="class_smokescreen.html">Smokescreen</a></li>
+</ul>
+</li>
+<li><a class="el" href="class_rock.html">Rock</a></li>
+</ul>
+</li>
+<li><a class="el" href="class_install_failure.html">InstallFailure</a></li>
+<li><a class="el" href="class_keyboard_handler.html">KeyboardHandler</a></li>
+<li><a class="el" href="class_level_reader.html">LevelReader</a></li>
+<li><a class="el" href="class_maze.html">Maze</a></li>
+<li><a class="el" href="class_maze_math.html">MazeMath</a></li>
+<li><a class="el" href="class_screen.html">Screen</a></li>
+<li><a class="el" href="class_screen_panel.html">ScreenPanel</a><ul>
+<li><a class="el" href="class_game_panel.html">GamePanel</a></li>
+<li><a class="el" href="class_info_panel.html">InfoPanel</a></li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/index.html b/docs/html/index.html
new file mode 100644
index 0000000..9e3eb50
--- /dev/null
+++ b/docs/html/index.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: Main Page</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">Rally X Documentation</div> </div>
+</div>
+<div class="contents">
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/installdox b/docs/html/installdox
new file mode 100644
index 0000000..edf5bbf
--- /dev/null
+++ b/docs/html/installdox
@@ -0,0 +1,112 @@
+#!/usr/bin/perl
+
+%subst = ( );
+$quiet = 0;
+
+while ( @ARGV ) {
+ $_ = shift @ARGV;
+ if ( s/^-// ) {
+ if ( /^l(.*)/ ) {
+ $v = ($1 eq "") ? shift @ARGV : $1;
+ ($v =~ /\/$/) || ($v .= "/");
+ $_ = $v;
+ if ( /(.+)\@(.+)/ ) {
+ if ( exists $subst{$1} ) {
+ $subst{$1} = $2;
+ } else {
+ print STDERR "Unknown tag file $1 given with option -l\n";
+ &usage();
+ }
+ } else {
+ print STDERR "Argument $_ is invalid for option -l\n";
+ &usage();
+ }
+ }
+ elsif ( /^q/ ) {
+ $quiet = 1;
+ }
+ elsif ( /^\?|^h/ ) {
+ &usage();
+ }
+ else {
+ print STDERR "Illegal option -$_\n";
+ &usage();
+ }
+ }
+ else {
+ push (@files, $_ );
+ }
+}
+
+foreach $sub (keys %subst)
+{
+ if ( $subst{$sub} eq "" )
+ {
+ print STDERR "No substitute given for tag file `$sub'\n";
+ &usage();
+ }
+ elsif ( ! $quiet && $sub ne "_doc" && $sub ne "_cgi" )
+ {
+ print "Substituting $subst{$sub} for each occurrence of tag file $sub\n";
+ }
+}
+
+if ( ! @files ) {
+ if (opendir(D,".")) {
+ foreach $file ( readdir(D) ) {
+ $match = ".html";
+ next if ( $file =~ /^\.\.?$/ );
+ ($file =~ /$match/) && (push @files, $file);
+ ($file =~ /\.svg/) && (push @files, $file);
+ ($file =~ "navtree.js") && (push @files, $file);
+ }
+ closedir(D);
+ }
+}
+
+if ( ! @files ) {
+ print STDERR "Warning: No input files given and none found!\n";
+}
+
+foreach $f (@files)
+{
+ if ( ! $quiet ) {
+ print "Editing: $f...\n";
+ }
+ $oldf = $f;
+ $f .= ".bak";
+ unless (rename $oldf,$f) {
+ print STDERR "Error: cannot rename file $oldf\n";
+ exit 1;
+ }
+ if (open(F,"<$f")) {
+ unless (open(G,">$oldf")) {
+ print STDERR "Error: opening file $oldf for writing\n";
+ exit 1;
+ }
+ if ($oldf ne "tree.js") {
+ while (<F>) {
+ s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (xlink:href|href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g;
+ print G "$_";
+ }
+ }
+ else {
+ while (<F>) {
+ s/\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\", \"\2/\"$1:$subst{$1}\" ,\"$subst{$1}/g;
+ print G "$_";
+ }
+ }
+ }
+ else {
+ print STDERR "Warning file $f does not exist\n";
+ }
+ unlink $f;
+}
+
+sub usage {
+ print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n";
+ print STDERR "Options:\n";
+ print STDERR " -l tagfile\@linkName tag file + URL or directory \n";
+ print STDERR " -q Quiet mode\n\n";
+ exit 1;
+}
diff --git a/docs/html/jquery.js b/docs/html/jquery.js
new file mode 100644
index 0000000..c052173
--- /dev/null
+++ b/docs/html/jquery.js
@@ -0,0 +1,54 @@
+/*
+ * jQuery JavaScript Library v1.3.2
+ * http://jquery.com/
+ *
+ * Copyright (c) 2009 John Resig
+ * Dual licensed under the MIT and GPL licenses.
+ * http://docs.jquery.com/License
+ *
+ * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
+ * Revision: 6246
+ */
+(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){
+var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
+/*
+ * Sizzle CSS Selector Engine - v0.9.3
+ * Copyright 2009, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ * More information: http://sizzlejs.com/
+ */
+(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0)
+{I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML=' <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function()
+{G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();
+/*
+ * jQuery UI 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI
+ */
+jQuery.ui||(function(c){var i=c.fn.remove,d=c.browser.mozilla&&(parseFloat(c.browser.version)<1.9);c.ui={version:"1.7.2",plugin:{add:function(k,l,n){var m=c.ui[k].prototype;for(var j in n){m.plugins[j]=m.plugins[j]||[];m.plugins[j].push([l,n[j]])}},call:function(j,l,k){var n=j.plugins[l];if(!n||!j.element[0].parentNode){return}for(var m=0;m<n.length;m++){if(j.options[n[m][0]]){n[m][1].apply(j.element,k)}}}},contains:function(k,j){return document.compareDocumentPosition?k.compareDocumentPosition(j)&16:k!==j&&k.contains(j)},hasScroll:function(m,k){if(c(m).css("overflow")=="hidden"){return false}var j=(k&&k=="left")?"scrollLeft":"scrollTop",l=false;if(m[j]>0){return true}m[j]=1;l=(m[j]>0);m[j]=0;return l},isOverAxis:function(k,j,l){return(k>j)&&(k<(j+l))},isOver:function(o,k,n,m,j,l){return c.ui.isOverAxis(o,n,j)&&c.ui.isOverAxis(k,m,l)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(d){var f=c.attr,e=c.fn.removeAttr,h="http://www.w3.org/2005/07/aaa",a=/^aria-/,b=/^wairole:/;c.attr=function(k,j,l){var m=l!==undefined;return(j=="role"?(m?f.call(this,k,j,"wairole:"+l):(f.apply(this,arguments)||"").replace(b,"")):(a.test(j)?(m?k.setAttributeNS(h,j.replace(a,"aaa:"),l):f.call(this,k,j.replace(a,"aaa:"))):f.apply(this,arguments)))};c.fn.removeAttr=function(j){return(a.test(j)?this.each(function(){this.removeAttributeNS(h,j.replace(a,""))}):e.call(this,j))}}c.fn.extend({remove:function(){c("*",this).add(this).each(function(){c(this).triggerHandler("remove")});return i.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var j;if((c.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){j=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(c.curCSS(this,"position",1))&&(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}else{j=this.parents().filter(function(){return(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!j.length?c(document):j}});c.extend(c.expr[":"],{data:function(l,k,j){return !!c.data(l,j[3])},focusable:function(k){var l=k.nodeName.toLowerCase(),j=c.attr(k,"tabindex");return(/input|select|textarea|button|object/.test(l)?!k.disabled:"a"==l||"area"==l?k.href||!isNaN(j):!isNaN(j))&&!c(k)["area"==l?"parents":"closest"](":hidden").length},tabbable:function(k){var j=c.attr(k,"tabindex");return(isNaN(j)||j>=0)&&c(k).is(":focusable")}});function g(m,n,o,l){function k(q){var p=c[m][n][q]||[];return(typeof p=="string"?p.split(/,?\s+/):p)}var j=k("getter");if(l.length==1&&typeof l[0]=="string"){j=j.concat(k("getterSetter"))}return(c.inArray(o,j)!=-1)}c.widget=function(k,j){var l=k.split(".")[0];k=k.split(".")[1];c.fn[k]=function(p){var n=(typeof p=="string"),o=Array.prototype.slice.call(arguments,1);if(n&&p.substring(0,1)=="_"){return this}if(n&&g(l,k,p,o)){var m=c.data(this[0],k);return(m?m[p].apply(m,o):undefined)}return this.each(function(){var q=c.data(this,k);(!q&&!n&&c.data(this,k,new c[l][k](this,p))._init());(q&&n&&c.isFunction(q[p])&&q[p].apply(q,o))})};c[l]=c[l]||{};c[l][k]=function(o,n){var m=this;this.namespace=l;this.widgetName=k;this.widgetEventPrefix=c[l][k].eventPrefix||k;this.widgetBaseClass=l+"-"+k;this.options=c.extend({},c.widget.defaults,c[l][k].defaults,c.metadata&&c.metadata.get(o)[k],n);this.element=c(o).bind("setData."+k,function(q,p,r){if(q.target==o){return m._setData(p,r)}}).bind("getData."+k,function(q,p){if(q.target==o){return m._getData(p)}}).bind("remove",function(){return m.destroy()})};c[l][k].prototype=c.extend({},c.widget.prototype,j);c[l][k].getterSetter="option"};c.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(l,m){var k=l,j=this;if(typeof l=="string"){if(m===undefined){return this._getData(l)}k={};k[l]=m}c.each(k,function(n,o){j._setData(n,o)})},_getData:function(j){return this.options[j]},_setData:function(j,k){this.options[j]=k;if(j=="disabled"){this.element[k?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",k)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(l,m,n){var p=this.options[l],j=(l==this.widgetEventPrefix?l:this.widgetEventPrefix+l);m=c.Event(m);m.type=j;if(m.originalEvent){for(var k=c.event.props.length,o;k;){o=c.event.props[--k];m[o]=m.originalEvent[o]}}this.element.trigger(m,n);return !(c.isFunction(p)&&p.call(this.element[0],m,n)===false||m.isDefaultPrevented())}};c.widget.defaults={disabled:false};c.ui.mouse={_mouseInit:function(){var j=this;this.element.bind("mousedown."+this.widgetName,function(k){return j._mouseDown(k)}).bind("click."+this.widgetName,function(k){if(j._preventClickEvent){j._preventClickEvent=false;k.stopImmediatePropagation();return false}});if(c.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(c.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(l){l.originalEvent=l.originalEvent||{};if(l.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(l));this._mouseDownEvent=l;var k=this,m=(l.which==1),j=(typeof this.options.cancel=="string"?c(l.target).parents().add(l.target).filter(this.options.cancel).length:false);if(!m||j||!this._mouseCapture(l)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){k.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(l)&&this._mouseDelayMet(l)){this._mouseStarted=(this._mouseStart(l)!==false);if(!this._mouseStarted){l.preventDefault();return true}}this._mouseMoveDelegate=function(n){return k._mouseMove(n)};this._mouseUpDelegate=function(n){return k._mouseUp(n)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(c.browser.safari||l.preventDefault());l.originalEvent.mouseHandled=true;return true},_mouseMove:function(j){if(c.browser.msie&&!j.button){return this._mouseUp(j)}if(this._mouseStarted){this._mouseDrag(j);return j.preventDefault()}if(this._mouseDistanceMet(j)&&this._mouseDelayMet(j)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,j)!==false);(this._mouseStarted?this._mouseDrag(j):this._mouseUp(j))}return !this._mouseStarted},_mouseUp:function(j){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(j.target==this._mouseDownEvent.target);this._mouseStop(j)}return false},_mouseDistanceMet:function(j){return(Math.max(Math.abs(this._mouseDownEvent.pageX-j.pageX),Math.abs(this._mouseDownEvent.pageY-j.pageY))>=this.options.distance)},_mouseDelayMet:function(j){return this.mouseDelayMet},_mouseStart:function(j){},_mouseDrag:function(j){},_mouseStop:function(j){},_mouseCapture:function(j){return true}};c.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);;/* * jQuery UI Resizable 1.7.2
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Resizables
+ *
+ * Depends:
+ * ui.core.js
+ */
+(function(c){c.widget("ui.resizable",c.extend({},c.ui.mouse,{_init:function(){var e=this,j=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(j.aspectRatio),aspectRatio:j.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:j.helper||j.ghost||j.animate?j.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){if(/relative/.test(this.element.css("position"))&&c.browser.opera){this.element.css({position:"relative",top:"auto",left:"auto"})}this.element.wrap(c('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=j.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var k=this.handles.split(",");this.handles={};for(var f=0;f<k.length;f++){var h=c.trim(k[f]),d="ui-resizable-"+h;var g=c('<div class="ui-resizable-handle '+d+'"></div>');if(/sw|se|ne|nw/.test(h)){g.css({zIndex:++j.zIndex})}if("se"==h){g.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[h]=".ui-resizable-"+h;this.element.append(g)}}this._renderAxis=function(p){p=p||this.element;for(var m in this.handles){if(this.handles[m].constructor==String){this.handles[m]=c(this.handles[m],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var n=c(this.handles[m],this.element),o=0;o=/sw|ne|nw|se|n|s/.test(m)?n.outerHeight():n.outerWidth();var l=["padding",/ne|nw|n/.test(m)?"Top":/se|sw|s/.test(m)?"Bottom":/^e$/.test(m)?"Right":"Left"].join("");p.css(l,o);this._proportionallyResize()}if(!c(this.handles[m]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!e.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}e.axis=i&&i[1]?i[1]:"se"}});if(j.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){c(this).removeClass("ui-resizable-autohide");e._handles.show()},function(){if(!e.resizing){c(this).addClass("ui-resizable-autohide");e._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var d=function(f){c(f).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){d(this.element);var e=this.element;e.parent().append(this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")})).end().remove()}this.originalElement.css("resize",this.originalResizeStyle);d(this.originalElement)},_mouseCapture:function(e){var f=false;for(var d in this.handles){if(c(this.handles[d])[0]==e.target){f=true}}return this.options.disabled||!!f},_mouseStart:function(f){var i=this.options,e=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(d.is(".ui-draggable")||(/absolute/).test(d.css("position"))){d.css({position:"absolute",top:e.top,left:e.left})}if(c.browser.opera&&(/relative/).test(d.css("position"))){d.css({position:"relative",top:"auto",left:"auto"})}this._renderProxy();var j=b(this.helper.css("left")),g=b(this.helper.css("top"));if(i.containment){j+=c(i.containment).scrollLeft()||0;g+=c(i.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:j,top:g};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:j,top:g};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:f.pageX,top:f.pageY};this.aspectRatio=(typeof i.aspectRatio=="number")?i.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var h=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",h=="auto"?this.axis+"-resize":h);d.addClass("ui-resizable-resizing");this._propagate("start",f);return true},_mouseDrag:function(d){var g=this.helper,f=this.options,l={},p=this,i=this.originalMousePosition,m=this.axis;var q=(d.pageX-i.left)||0,n=(d.pageY-i.top)||0;var h=this._change[m];if(!h){return false}var k=h.apply(this,[d,q,n]),j=c.browser.msie&&c.browser.version<7,e=this.sizeDiff;if(this._aspectRatio||d.shiftKey){k=this._updateRatio(k,d)}k=this._respectSize(k,d);this._propagate("resize",d);g.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(k);this._trigger("resize",d,this.ui());return false},_mouseStop:function(g){this.resizing=false;var h=this.options,l=this;if(this._helper){var f=this._proportionallyResizeElements,d=f.length&&(/textarea/i).test(f[0].nodeName),e=d&&c.ui.hasScroll(f[0],"left")?0:l.sizeDiff.height,j=d?0:l.sizeDiff.width;var m={width:(l.size.width-j),height:(l.size.height-e)},i=(parseInt(l.element.css("left"),10)+(l.position.left-l.originalPosition.left))||null,k=(parseInt(l.element.css("top"),10)+(l.position.top-l.originalPosition.top))||null;if(!h.animate){this.element.css(c.extend(m,{top:k,left:i}))}l.helper.height(l.size.height);l.helper.width(l.size.width);if(this._helper&&!h.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",g);if(this._helper){this.helper.remove()}return false},_updateCache:function(d){var e=this.options;this.offset=this.helper.offset();if(a(d.left)){this.position.left=d.left}if(a(d.top)){this.position.top=d.top}if(a(d.height)){this.size.height=d.height}if(a(d.width)){this.size.width=d.width}},_updateRatio:function(g,f){var h=this.options,i=this.position,e=this.size,d=this.axis;if(g.height){g.width=(e.height*this.aspectRatio)}else{if(g.width){g.height=(e.width/this.aspectRatio)}}if(d=="sw"){g.left=i.left+(e.width-g.width);g.top=null}if(d=="nw"){g.top=i.top+(e.height-g.height);g.left=i.left+(e.width-g.width)}return g},_respectSize:function(k,f){var i=this.helper,h=this.options,q=this._aspectRatio||f.shiftKey,p=this.axis,s=a(k.width)&&h.maxWidth&&(h.maxWidth<k.width),l=a(k.height)&&h.maxHeight&&(h.maxHeight<k.height),g=a(k.width)&&h.minWidth&&(h.minWidth>k.width),r=a(k.height)&&h.minHeight&&(h.minHeight>k.height);if(g){k.width=h.minWidth}if(r){k.height=h.minHeight}if(s){k.width=h.maxWidth}if(l){k.height=h.maxHeight}var e=this.originalPosition.left+this.originalSize.width,n=this.position.top+this.size.height;var j=/sw|nw|w/.test(p),d=/nw|ne|n/.test(p);if(g&&j){k.left=e-h.minWidth}if(s&&j){k.left=e-h.maxWidth}if(r&&d){k.top=n-h.minHeight}if(l&&d){k.top=n-h.maxHeight}var m=!k.width&&!k.height;if(m&&!k.left&&k.top){k.top=null}else{if(m&&!k.top&&k.left){k.left=null}}return k},_proportionallyResize:function(){var j=this.options;if(!this._proportionallyResizeElements.length){return}var f=this.helper||this.element;for(var e=0;e<this._proportionallyResizeElements.length;e++){var g=this._proportionallyResizeElements[e];if(!this.borderDif){var d=[g.css("borderTopWidth"),g.css("borderRightWidth"),g.css("borderBottomWidth"),g.css("borderLeftWidth")],h=[g.css("paddingTop"),g.css("paddingRight"),g.css("paddingBottom"),g.css("paddingLeft")];this.borderDif=c.map(d,function(k,m){var l=parseInt(k,10)||0,n=parseInt(h[m],10)||0;return l+n})}if(c.browser.msie&&!(!(c(f).is(":hidden")||c(f).parents(":hidden").length))){continue}g.css({height:(f.height()-this.borderDif[0]-this.borderDif[2])||0,width:(f.width()-this.borderDif[1]-this.borderDif[3])||0})}},_renderProxy:function(){var e=this.element,h=this.options;this.elementOffset=e.offset();if(this._helper){this.helper=this.helper||c('<div style="overflow:hidden;"></div>');var d=c.browser.msie&&c.browser.version<7,f=(d?1:0),g=(d?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+g,height:this.element.outerHeight()+g,position:"absolute",left:this.elementOffset.left-f+"px",top:this.elementOffset.top-f+"px",zIndex:++h.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(f,e,d){return{width:this.originalSize.width+e}},w:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{left:h.left+e,width:f.width-e}},n:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{top:h.top+d,height:f.height-d}},s:function(f,e,d){return{height:this.originalSize.height+d}},se:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},sw:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[f,e,d]))},ne:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},nw:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[f,e,d]))}},_propagate:function(e,d){c.ui.plugin.call(this,e,[d,this.ui()]);(e!="resize"&&this._trigger(e,d,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}));c.extend(c.ui.resizable,{version:"1.7.2",eventPrefix:"resize",defaults:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,cancel:":input,option",containment:false,delay:0,distance:1,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000}});c.ui.plugin.add("resizable","alsoResize",{start:function(e,f){var d=c(this).data("resizable"),g=d.options;_store=function(h){c(h).each(function(){c(this).data("resizable-alsoresize",{width:parseInt(c(this).width(),10),height:parseInt(c(this).height(),10),left:parseInt(c(this).css("left"),10),top:parseInt(c(this).css("top"),10)})})};if(typeof(g.alsoResize)=="object"&&!g.alsoResize.parentNode){if(g.alsoResize.length){g.alsoResize=g.alsoResize[0];_store(g.alsoResize)}else{c.each(g.alsoResize,function(h,i){_store(h)})}}else{_store(g.alsoResize)}},resize:function(f,h){var e=c(this).data("resizable"),i=e.options,g=e.originalSize,k=e.originalPosition;var j={height:(e.size.height-g.height)||0,width:(e.size.width-g.width)||0,top:(e.position.top-k.top)||0,left:(e.position.left-k.left)||0},d=function(l,m){c(l).each(function(){var p=c(this),q=c(this).data("resizable-alsoresize"),o={},n=m&&m.length?m:["width","height","top","left"];c.each(n||["width","height","top","left"],function(r,t){var s=(q[t]||0)+(j[t]||0);if(s&&s>=0){o[t]=s||null}});if(/relative/.test(p.css("position"))&&c.browser.opera){e._revertToRelativePosition=true;p.css({position:"absolute",top:"auto",left:"auto"})}p.css(o)})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.nodeType){c.each(i.alsoResize,function(l,m){d(l,m)})}else{d(i.alsoResize)}},stop:function(e,f){var d=c(this).data("resizable");if(d._revertToRelativePosition&&c.browser.opera){d._revertToRelativePosition=false;el.css({position:"relative"})}c(this).removeData("resizable-alsoresize-start")}});c.ui.plugin.add("resizable","animate",{stop:function(h,m){var n=c(this).data("resizable"),i=n.options;var g=n._proportionallyResizeElements,d=g.length&&(/textarea/i).test(g[0].nodeName),e=d&&c.ui.hasScroll(g[0],"left")?0:n.sizeDiff.height,k=d?0:n.sizeDiff.width;var f={width:(n.size.width-k),height:(n.size.height-e)},j=(parseInt(n.element.css("left"),10)+(n.position.left-n.originalPosition.left))||null,l=(parseInt(n.element.css("top"),10)+(n.position.top-n.originalPosition.top))||null;n.element.animate(c.extend(f,l&&j?{top:l,left:j}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var o={width:parseInt(n.element.css("width"),10),height:parseInt(n.element.css("height"),10),top:parseInt(n.element.css("top"),10),left:parseInt(n.element.css("left"),10)};if(g&&g.length){c(g[0]).css({width:o.width,height:o.height})}n._updateCache(o);n._propagate("resize",h)}})}});c.ui.plugin.add("resizable","containment",{start:function(e,q){var s=c(this).data("resizable"),i=s.options,k=s.element;var f=i.containment,j=(f instanceof c)?f.get(0):(/parent/.test(f))?k.parent().get(0):f;if(!j){return}s.containerElement=c(j);if(/document/.test(f)||f==document){s.containerOffset={left:0,top:0};s.containerPosition={left:0,top:0};s.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var m=c(j),h=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){h[p]=b(m.css("padding"+o))});s.containerOffset=m.offset();s.containerPosition=m.position();s.containerSize={height:(m.innerHeight()-h[3]),width:(m.innerWidth()-h[1])};var n=s.containerOffset,d=s.containerSize.height,l=s.containerSize.width,g=(c.ui.hasScroll(j,"left")?j.scrollWidth:l),r=(c.ui.hasScroll(j)?j.scrollHeight:d);s.parentData={element:j,left:n.left,top:n.top,width:g,height:r}}},resize:function(f,p){var s=c(this).data("resizable"),h=s.options,e=s.containerSize,n=s.containerOffset,l=s.size,m=s.position,q=s._aspectRatio||f.shiftKey,d={top:0,left:0},g=s.containerElement;if(g[0]!=document&&(/static/).test(g.css("position"))){d=n}if(m.left<(s._helper?n.left:0)){s.size.width=s.size.width+(s._helper?(s.position.left-n.left):(s.position.left-d.left));if(q){s.size.height=s.size.width/h.aspectRatio}s.position.left=h.helper?n.left:0}if(m.top<(s._helper?n.top:0))
+{s.size.height=s.size.height+(s._helper?(s.position.top-n.top):s.position.top);if(q){s.size.width=s.size.height*h.aspectRatio}s.position.top=s._helper?n.top:0}s.offset.left=s.parentData.left+s.position.left;s.offset.top=s.parentData.top+s.position.top;var k=Math.abs((s._helper?s.offset.left-d.left:(s.offset.left-d.left))+s.sizeDiff.width),r=Math.abs((s._helper?s.offset.top-d.top:(s.offset.top-n.top))+s.sizeDiff.height);var j=s.containerElement.get(0)==s.element.parent().get(0),i=/relative|absolute/.test(s.containerElement.css("position"));if(j&&i){k-=s.parentData.left}if(k+s.size.width>=s.parentData.width){s.size.width=s.parentData.width-k;if(q){s.size.height=s.size.width/s.aspectRatio}}if(r+s.size.height>=s.parentData.height){s.size.height=s.parentData.height-r;if(q){s.size.width=s.size.height*s.aspectRatio}}},stop:function(e,m){var p=c(this).data("resizable"),f=p.options,k=p.position,l=p.containerOffset,d=p.containerPosition,g=p.containerElement;var i=c(p.helper),q=i.offset(),n=i.outerWidth()-p.sizeDiff.width,j=i.outerHeight()-p.sizeDiff.height;if(p._helper&&!f.animate&&(/relative/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}if(p._helper&&!f.animate&&(/static/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}}});c.ui.plugin.add("resizable","ghost",{start:function(f,g){var d=c(this).data("resizable"),h=d.options,e=d.size;d.ghost=d.originalElement.clone();d.ghost.css({opacity:0.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof h.ghost=="string"?h.ghost:"");d.ghost.appendTo(d.helper)},resize:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost){d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})}},stop:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost&&d.helper){d.helper.get(0).removeChild(d.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(d,l){var n=c(this).data("resizable"),g=n.options,j=n.size,h=n.originalSize,i=n.originalPosition,m=n.axis,k=g._aspectRatio||d.shiftKey;g.grid=typeof g.grid=="number"?[g.grid,g.grid]:g.grid;var f=Math.round((j.width-h.width)/(g.grid[0]||1))*(g.grid[0]||1),e=Math.round((j.height-h.height)/(g.grid[1]||1))*(g.grid[1]||1);if(/^(se|s|e)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e}else{if(/^(ne)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e}else{if(/^(sw)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.left=i.left-f}else{n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e;n.position.left=i.left-f}}}}});var b=function(d){return parseInt(d,10)||0};var a=function(d){return !isNaN(parseInt(d,10))}})(jQuery);;
+/**
+ * jQuery.ScrollTo - Easy element scrolling using jQuery.
+ * Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com
+ * Licensed under GPL license (http://www.opensource.org/licenses/gpl-license.php).
+ * Date: 2/8/2008
+ * @author Ariel Flesler
+ * @version 1.3.2
+ */
+;(function($){var o=$.scrollTo=function(a,b,c){o.window().scrollTo(a,b,c)};o.defaults={axis:'y',duration:1};o.window=function(){return $($.browser.safari?'body':'html')};$.fn.scrollTo=function(l,m,n){if(typeof m=='object'){n=m;m=0}n=$.extend({},o.defaults,n);m=m||n.speed||n.duration;n.queue=n.queue&&n.axis.length>1;if(n.queue)m/=2;n.offset=j(n.offset);n.over=j(n.over);return this.each(function(){var a=this,b=$(a),t=l,c,d={},w=b.is('html,body');switch(typeof t){case'number':case'string':if(/^([+-]=)?\d+(px)?$/.test(t)){t=j(t);break}t=$(t,this);case'object':if(t.is||t.style)c=(t=$(t)).offset()}$.each(n.axis.split(''),function(i,f){var P=f=='x'?'Left':'Top',p=P.toLowerCase(),k='scroll'+P,e=a[k],D=f=='x'?'Width':'Height';if(c){d[k]=c[p]+(w?0:e-b.offset()[p]);if(n.margin){d[k]-=parseInt(t.css('margin'+P))||0;d[k]-=parseInt(t.css('border'+P+'Width'))||0}d[k]+=n.offset[p]||0;if(n.over[p])d[k]+=t[D.toLowerCase()]()*n.over[p]}else d[k]=t[p];if(/^\d+$/.test(d[k]))d[k]=d[k]<=0?0:Math.min(d[k],h(D));if(!i&&n.queue){if(e!=d[k])g(n.onAfterFirst);delete d[k]}});g(n.onAfter);function g(a){b.animate(d,m,n.easing,a&&function(){a.call(this,l)})};function h(D){var b=w?$.browser.opera?document.body:document.documentElement:a;return b['scroll'+D]-b['client'+D]}})};function j(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);
+
diff --git a/docs/html/logic_tests_8cpp.html b/docs/html/logic_tests_8cpp.html
new file mode 100644
index 0000000..d97e511
--- /dev/null
+++ b/docs/html/logic_tests_8cpp.html
@@ -0,0 +1,1013 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: tests/logicTests.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">tests/logicTests.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+
+<p>Unit tests for the logic layer of a Rally-X game.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &lt;vector&gt;</code><br/>
+<code>#include &lt;list&gt;</code><br/>
+<code>#include &lt;utility&gt;</code><br/>
+<code>#include &lt;gtest/gtest.h&gt;</code><br/>
+<code>#include &quot;../source/logic/CollisionDetector.h&quot;</code><br/>
+<code>#include &quot;../source/logic/PlayerCar.h&quot;</code><br/>
+<code>#include &quot;../source/logic/EnemyCar.h&quot;</code><br/>
+<code>#include &quot;../source/logic/Checkpoint.h&quot;</code><br/>
+<code>#include &quot;../source/logic/Rock.h&quot;</code><br/>
+<code>#include &quot;../source/logic/Smokescreen.h&quot;</code><br/>
+<code>#include &quot;../source/logic/Maze.h&quot;</code><br/>
+<code>#include &quot;../source/logic/MazeMath.h&quot;</code><br/>
+<code>#include &quot;../source/logic/DestroyedObjectPopup.h&quot;</code><br/>
+</div>
+<p><a href="logic_tests_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#af107924db552c5a66c5bf3aeafe15519">TEST</a> (<a class="el" href="class_car.html">Car</a>, updateMovesPlayerUpInEmptyMaze)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> moves the correct amount in the up direction on each frame without obstacles. <a href="#af107924db552c5a66c5bf3aeafe15519"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a4011469f0a6dfeb25d704d662ce02caf">TEST</a> (<a class="el" href="class_car.html">Car</a>, updateMovesPlayerDownInEmptyMaze)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> moves the correct amount in the down direction on each frame without obstacles. <a href="#a4011469f0a6dfeb25d704d662ce02caf"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#ac7954e0cf27b4044b5b9ba0a7faf747e">TEST</a> (<a class="el" href="class_car.html">Car</a>, updateMovesPlayerLeftInEmptyMaze)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> moves the correct amount in the left direction on each frame without obstacles. <a href="#ac7954e0cf27b4044b5b9ba0a7faf747e"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a1b0625252aae5ca87e0b26e01b7aa506">TEST</a> (<a class="el" href="class_car.html">Car</a>, updateMovesPlayerRightInEmptyMaze)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> moves the correct amount in the right direction on each frame without obstacles. <a href="#a1b0625252aae5ca87e0b26e01b7aa506"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a2c0f1615b9769a4140124c5d6845d50a">TEST</a> (<a class="el" href="class_car.html">Car</a>, carNotMovedWhenPathUpBlocked)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move up if the path is blocked. <a href="#a2c0f1615b9769a4140124c5d6845d50a"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a1a6506ee8e2f21181a26f92098707a9b">TEST</a> (<a class="el" href="class_car.html">Car</a>, carNotMovedWhenPathDownBlocked)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move down if the path is blocked. <a href="#a1a6506ee8e2f21181a26f92098707a9b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#ad2919e050b740fafe3545d279463a4ab">TEST</a> (<a class="el" href="class_car.html">Car</a>, carNotMovedWhenPathLeftBlocked)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move left if the path is blocked. <a href="#ad2919e050b740fafe3545d279463a4ab"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a9ac2e91f3041374b626d08f5ede8b914">TEST</a> (<a class="el" href="class_car.html">Car</a>, carNotMovedWhenPathRightBlocked)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move right if the path is blocked. <a href="#a9ac2e91f3041374b626d08f5ede8b914"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a485e6ab1a085528b7315eebf1ee9d65d">TEST</a> (<a class="el" href="class_car.html">Car</a>, carDoesNotMoveUpOutMaze)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move up if currently on the top row of the maze. <a href="#a485e6ab1a085528b7315eebf1ee9d65d"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a2bf92ba800c8c7190ccd736289fc083a">TEST</a> (<a class="el" href="class_car.html">Car</a>, carDoesNotMoveDownOutMaze)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move down if currently on the bottom row of the maze. <a href="#a2bf92ba800c8c7190ccd736289fc083a"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a6a8767f7e51b8997ce11e56ce5d88b53">TEST</a> (<a class="el" href="class_car.html">Car</a>, carDoesNotMoveLeftOutMaze)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move left if currently on the first column of the maze. <a href="#a6a8767f7e51b8997ce11e56ce5d88b53"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#aa9dba66248eff545a8f6d12943ad9965">TEST</a> (<a class="el" href="class_car.html">Car</a>, carDoesNotMoveRightOutMaze)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move right if currently on the last column of the maze. <a href="#aa9dba66248eff545a8f6d12943ad9965"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a2e89a1385841eacfe13c25e920de6543">TEST</a> (<a class="el" href="class_checkpoint.html">Checkpoint</a>, countIncrementsAndDecrements)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that counting of the number of checkpoints happens correctly. <a href="#a2e89a1385841eacfe13c25e920de6543"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a8f4ecb8511bd9f8da009cce86e7de78f">TEST</a> (<a class="el" href="class_collision_detector.html">CollisionDetector</a>, playerAndEnemyBothDestroyed)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that when a player and enemy overlap, both are marked for destruction. <a href="#a8f4ecb8511bd9f8da009cce86e7de78f"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#abb21ae25f8060ef3dafd386ed054c44f">TEST</a> (<a class="el" href="class_collision_detector.html">CollisionDetector</a>, playerDestroyedByRock)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that when a player and rock overlap, only the player is marked for destruction. <a href="#abb21ae25f8060ef3dafd386ed054c44f"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a115831998a1832f3354e06bdd11c150b">TEST</a> (<a class="el" href="class_collision_detector.html">CollisionDetector</a>, checkpointDestroyedByPlayer)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that when a player and checkpoint overlap, only the checkpoint is marked for destruction. <a href="#a115831998a1832f3354e06bdd11c150b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a9860202068d4e498e238d9d886234ea7">TEST</a> (<a class="el" href="class_collision_detector.html">CollisionDetector</a>, enemyStoppedBySmokescreen)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that when an enemy and smokescreen overlap, the enemy's speed becomes zero. <a href="#a9860202068d4e498e238d9d886234ea7"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a484a53647d1cde5db81c1fdc53bf55c9">TEST</a> (<a class="el" href="class_destroyed_object_popup.html">DestroyedObjectPopup</a>, destroyedAfterSetTime)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that a <a class="el" href="class_destroyed_object_popup.html" title="Object that appears on the screen for a short time when another object has been destroyed.">DestroyedObjectPopup</a> is destroyed 30 frames after it is created. <a href="#a484a53647d1cde5db81c1fdc53bf55c9"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#aa16a32786815a8bb8cb7e8de664ff950">TEST</a> (<a class="el" href="class_maze.html">Maze</a>, queryOutsideBoundsReturnsSolid)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that the maze treats the undefined area outside its bounds as being walls. <a href="#aa16a32786815a8bb8cb7e8de664ff950"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a38676411c83cef750c1e48dd8f1a87ca">TEST</a> (<a class="el" href="class_maze.html">Maze</a>, generationWithWallsWithoutObjectMax)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that a maze can be generated without extending the width and height for objects. <a href="#a38676411c83cef750c1e48dd8f1a87ca"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a0363213c93a0b22e67182dc5af60b78b">TEST</a> (<a class="el" href="class_maze.html">Maze</a>, generationWithWallsWithObjectMax)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that a maze can be generated with extending the width and height for objects. <a href="#a0363213c93a0b22e67182dc5af60b78b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a2b5bbb44002c6d13e3a3811cb3677832">TEST</a> (<a class="el" href="class_maze_math.html">MazeMath</a>, distanceGivesExpectedResult)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that the formula for a straight line distance works as expected. <a href="#a2b5bbb44002c6d13e3a3811cb3677832"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a5a55cf80381ed4c7885fb887427e6118">TEST</a> (<a class="el" href="class_maze_math.html">MazeMath</a>, roundGivesExpectedResult)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that rounding off function works as expected. <a href="#a5a55cf80381ed4c7885fb887427e6118"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a610f20b2b4a1407fa2a8983015dfb81b">TEST</a> (<a class="el" href="class_player_car.html">PlayerCar</a>, creationAndDestructionCanHappen)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that a <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> can be created and destroyed repeatedly without incident. <a href="#a610f20b2b4a1407fa2a8983015dfb81b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a257f2123dddae6d77b7926f48d4e71e2">TEST</a> (<a class="el" href="class_player_car.html">PlayerCar</a>, playerSpeedAffectedByPetrol)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that the player's petrol runs out, and that the player's speed is halved after that. <a href="#a257f2123dddae6d77b7926f48d4e71e2"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a2de4a45e984d28048ec0cfcd3199cfc7">TEST</a> (<a class="el" href="class_smokescreen.html">Smokescreen</a>, destroyedAfterSetTime)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that a <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> is destroyed 60 frames after it is created. <a href="#a2de4a45e984d28048ec0cfcd3199cfc7"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Unit tests for the logic layer of a Rally-X game. </p>
+<p>The classes used to run Allegro's install and uninstall functions were tested indirectly through the use of other classes. If the AllegroWrappers classes are not working, they will result in tests failing, or the program crashing.</p>
+<p>The <a class="el" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a> class's movement is tested through implementing a subclass of <a class="el" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>, <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>, facing in a given direction with and without maze walls in the way, and testing its position after a frame has passed.</p>
+<p>The counting system with the <a class="el" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a> class is tested through repeated creation and destruction of <a class="el" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a> objects.</p>
+<p>The CollisionDetecter class is tested by setting up situations with each type of collision, and checking that they have the desired results on the objects involved.</p>
+<p>The <a class="el" href="class_destroyed_object_popup.html" title="Object that appears on the screen for a short time when another object has been destroyed.">DestroyedObjectPopup</a> class is tested to ensure that it lasts the desired amount of time before being destroyed.</p>
+<p>The intelligence of the <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> class is not unit tested, as it may change as extra states and AI schemes are implemented, possibly including a random element. Therefore, it should be tested manually by playing example levels and monitoring if the enemies appear to behave in a manner that makes gameplay interesting.</p>
+<p>The <a class="el" href="class_game.html" title="The object that controls the flow of the game, and the launch point of the game.">Game</a> class is not tested directly. It pulls all of the units being tested together into a complete game, and so should be tested by running the <a class="el" href="class_game.html" title="The object that controls the flow of the game, and the launch point of the game.">Game</a>.</p>
+<p>The <a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> class is tested indirectly through testing its subclasses.</p>
+<p>The <a class="el" href="class_limited_time_object.html" title="Parent class for GameObjects that are created, exist for a given time, and are then destroyed...">LimitedTimeObject</a> class is tested indirectly through the <a class="el" href="class_destroyed_object_popup.html" title="Object that appears on the screen for a short time when another object has been destroyed.">DestroyedObjectPopup</a> and <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> classes.</p>
+<p>The <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> class is tested in terms of its ability to construct itself correctly from a list of coordinates. It is also tested with the <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> class where the movement of the <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> is tested in a <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>.</p>
+<p>The <a class="el" href="class_maze_math.html" title="Class of static methods for common math functions that occur in the 2D maze setting.">MazeMath</a> class is tested by running each of its functions with expected input and output values.</p>
+<p>The <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> class is tested on its ability to move correctly as part of the tests for the <a class="el" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a> class. The functioning of the PlayerCar's petrol system is also tested. Controlling of the <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> is not tested, and should be tested manually by running the game and verifying that the arrow keys cause the direction of the <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> to change appropriately. Further, the creation of Smokescreens by pressing the spacebar should also be tested manually.</p>
+<p>The <a class="el" href="class_rock.html" title="A game object that acts as an obstacle to the player.">Rock</a> class only has functionality in collisions, and so is tested through the CollisionDetector's tests.</p>
+<p>The <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> class is tested in that it disappears after a set time. Its affect on the <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> class is tested through the CollisionDetector's tests.</p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition in file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+</div><hr/><h2>Function Documentation</h2>
+<a class="anchor" id="af107924db552c5a66c5bf3aeafe15519"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="af107924db552c5a66c5bf3aeafe15519" args="(Car, updateMovesPlayerUpInEmptyMaze)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_car.html">Car</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">updateMovesPlayerUpInEmptyMaze&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> moves the correct amount in the up direction on each frame without obstacles. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00075">75</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4011469f0a6dfeb25d704d662ce02caf"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a4011469f0a6dfeb25d704d662ce02caf" args="(Car, updateMovesPlayerDownInEmptyMaze)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_car.html">Car</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">updateMovesPlayerDownInEmptyMaze&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> moves the correct amount in the down direction on each frame without obstacles. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00095">95</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac7954e0cf27b4044b5b9ba0a7faf747e"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="ac7954e0cf27b4044b5b9ba0a7faf747e" args="(Car, updateMovesPlayerLeftInEmptyMaze)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_car.html">Car</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">updateMovesPlayerLeftInEmptyMaze&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> moves the correct amount in the left direction on each frame without obstacles. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00115">115</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1b0625252aae5ca87e0b26e01b7aa506"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a1b0625252aae5ca87e0b26e01b7aa506" args="(Car, updateMovesPlayerRightInEmptyMaze)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_car.html">Car</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">updateMovesPlayerRightInEmptyMaze&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> moves the correct amount in the right direction on each frame without obstacles. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00135">135</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2c0f1615b9769a4140124c5d6845d50a"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a2c0f1615b9769a4140124c5d6845d50a" args="(Car, carNotMovedWhenPathUpBlocked)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_car.html">Car</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">carNotMovedWhenPathUpBlocked&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move up if the path is blocked. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00155">155</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1a6506ee8e2f21181a26f92098707a9b"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a1a6506ee8e2f21181a26f92098707a9b" args="(Car, carNotMovedWhenPathDownBlocked)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_car.html">Car</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">carNotMovedWhenPathDownBlocked&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move down if the path is blocked. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00175">175</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad2919e050b740fafe3545d279463a4ab"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="ad2919e050b740fafe3545d279463a4ab" args="(Car, carNotMovedWhenPathLeftBlocked)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_car.html">Car</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">carNotMovedWhenPathLeftBlocked&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move left if the path is blocked. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00195">195</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9ac2e91f3041374b626d08f5ede8b914"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a9ac2e91f3041374b626d08f5ede8b914" args="(Car, carNotMovedWhenPathRightBlocked)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_car.html">Car</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">carNotMovedWhenPathRightBlocked&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move right if the path is blocked. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00215">215</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a485e6ab1a085528b7315eebf1ee9d65d"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a485e6ab1a085528b7315eebf1ee9d65d" args="(Car, carDoesNotMoveUpOutMaze)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_car.html">Car</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">carDoesNotMoveUpOutMaze&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move up if currently on the top row of the maze. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00236">236</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2bf92ba800c8c7190ccd736289fc083a"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a2bf92ba800c8c7190ccd736289fc083a" args="(Car, carDoesNotMoveDownOutMaze)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_car.html">Car</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">carDoesNotMoveDownOutMaze&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move down if currently on the bottom row of the maze. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00255">255</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6a8767f7e51b8997ce11e56ce5d88b53"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a6a8767f7e51b8997ce11e56ce5d88b53" args="(Car, carDoesNotMoveLeftOutMaze)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_car.html">Car</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">carDoesNotMoveLeftOutMaze&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move left if currently on the first column of the maze. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00274">274</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa9dba66248eff545a8f6d12943ad9965"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="aa9dba66248eff545a8f6d12943ad9965" args="(Car, carDoesNotMoveRightOutMaze)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_car.html">Car</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">carDoesNotMoveRightOutMaze&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move right if currently on the last column of the maze. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00293">293</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2e89a1385841eacfe13c25e920de6543"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a2e89a1385841eacfe13c25e920de6543" args="(Checkpoint, countIncrementsAndDecrements)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_checkpoint.html">Checkpoint</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">countIncrementsAndDecrements&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that counting of the number of checkpoints happens correctly. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00313">313</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8f4ecb8511bd9f8da009cce86e7de78f"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a8f4ecb8511bd9f8da009cce86e7de78f" args="(CollisionDetector, playerAndEnemyBothDestroyed)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_collision_detector.html">CollisionDetector</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">playerAndEnemyBothDestroyed&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that when a player and enemy overlap, both are marked for destruction. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00344">344</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abb21ae25f8060ef3dafd386ed054c44f"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="abb21ae25f8060ef3dafd386ed054c44f" args="(CollisionDetector, playerDestroyedByRock)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_collision_detector.html">CollisionDetector</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">playerDestroyedByRock&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that when a player and rock overlap, only the player is marked for destruction. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00387">387</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a115831998a1832f3354e06bdd11c150b"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a115831998a1832f3354e06bdd11c150b" args="(CollisionDetector, checkpointDestroyedByPlayer)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_collision_detector.html">CollisionDetector</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">checkpointDestroyedByPlayer&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that when a player and checkpoint overlap, only the checkpoint is marked for destruction. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00430">430</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9860202068d4e498e238d9d886234ea7"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a9860202068d4e498e238d9d886234ea7" args="(CollisionDetector, enemyStoppedBySmokescreen)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_collision_detector.html">CollisionDetector</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">enemyStoppedBySmokescreen&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that when an enemy and smokescreen overlap, the enemy's speed becomes zero. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00473">473</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a484a53647d1cde5db81c1fdc53bf55c9"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a484a53647d1cde5db81c1fdc53bf55c9" args="(DestroyedObjectPopup, destroyedAfterSetTime)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_destroyed_object_popup.html">DestroyedObjectPopup</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">destroyedAfterSetTime&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that a <a class="el" href="class_destroyed_object_popup.html" title="Object that appears on the screen for a short time when another object has been destroyed.">DestroyedObjectPopup</a> is destroyed 30 frames after it is created. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00507">507</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa16a32786815a8bb8cb7e8de664ff950"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="aa16a32786815a8bb8cb7e8de664ff950" args="(Maze, queryOutsideBoundsReturnsSolid)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_maze.html">Maze</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">queryOutsideBoundsReturnsSolid&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that the maze treats the undefined area outside its bounds as being walls. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00524">524</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a38676411c83cef750c1e48dd8f1a87ca"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a38676411c83cef750c1e48dd8f1a87ca" args="(Maze, generationWithWallsWithoutObjectMax)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_maze.html">Maze</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">generationWithWallsWithoutObjectMax&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that a maze can be generated without extending the width and height for objects. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00541">541</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0363213c93a0b22e67182dc5af60b78b"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a0363213c93a0b22e67182dc5af60b78b" args="(Maze, generationWithWallsWithObjectMax)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_maze.html">Maze</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">generationWithWallsWithObjectMax&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that a maze can be generated with extending the width and height for objects. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00565">565</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2b5bbb44002c6d13e3a3811cb3677832"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a2b5bbb44002c6d13e3a3811cb3677832" args="(MazeMath, distanceGivesExpectedResult)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_maze_math.html">MazeMath</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">distanceGivesExpectedResult&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that the formula for a straight line distance works as expected. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00591">591</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5a55cf80381ed4c7885fb887427e6118"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a5a55cf80381ed4c7885fb887427e6118" args="(MazeMath, roundGivesExpectedResult)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_maze_math.html">MazeMath</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">roundGivesExpectedResult&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that rounding off function works as expected. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00607">607</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a610f20b2b4a1407fa2a8983015dfb81b"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a610f20b2b4a1407fa2a8983015dfb81b" args="(PlayerCar, creationAndDestructionCanHappen)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_player_car.html">PlayerCar</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">creationAndDestructionCanHappen&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that a <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> can be created and destroyed repeatedly without incident. </p>
+<p>This tests that the <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> can handle its own dependencies on Allegro, even when copy constructors are used (through vector). </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00626">626</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a257f2123dddae6d77b7926f48d4e71e2"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a257f2123dddae6d77b7926f48d4e71e2" args="(PlayerCar, playerSpeedAffectedByPetrol)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_player_car.html">PlayerCar</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">playerSpeedAffectedByPetrol&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that the player's petrol runs out, and that the player's speed is halved after that. </p>
+<p>Also tests that the speed is recovered if petrol is increased again. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00648">648</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2de4a45e984d28048ec0cfcd3199cfc7"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a2de4a45e984d28048ec0cfcd3199cfc7" args="(Smokescreen, destroyedAfterSetTime)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_smokescreen.html">Smokescreen</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">destroyedAfterSetTime&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that a <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> is destroyed 60 frames after it is created. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00673">673</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/logic_tests_8cpp_source.html b/docs/html/logic_tests_8cpp_source.html
new file mode 100644
index 0000000..e3344b4
--- /dev/null
+++ b/docs/html/logic_tests_8cpp_source.html
@@ -0,0 +1,656 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: tests/logicTests.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">tests/logicTests.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="logic_tests_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
+<a name="l00055"></a>00055 <span class="preprocessor">#include &lt;vector&gt;</span>
+<a name="l00056"></a>00056 <span class="preprocessor">#include &lt;list&gt;</span>
+<a name="l00057"></a>00057 <span class="preprocessor">#include &lt;utility&gt;</span>
+<a name="l00058"></a>00058 <span class="keyword">using namespace </span>std;
+<a name="l00059"></a>00059
+<a name="l00060"></a>00060 <span class="preprocessor">#include &lt;gtest/gtest.h&gt;</span>
+<a name="l00061"></a>00061
+<a name="l00062"></a>00062 <span class="preprocessor">#include &quot;../source/logic/CollisionDetector.h&quot;</span>
+<a name="l00063"></a>00063 <span class="preprocessor">#include &quot;../source/logic/PlayerCar.h&quot;</span>
+<a name="l00064"></a>00064 <span class="preprocessor">#include &quot;../source/logic/EnemyCar.h&quot;</span>
+<a name="l00065"></a>00065 <span class="preprocessor">#include &quot;../source/logic/Checkpoint.h&quot;</span>
+<a name="l00066"></a>00066 <span class="preprocessor">#include &quot;../source/logic/Rock.h&quot;</span>
+<a name="l00067"></a>00067 <span class="preprocessor">#include &quot;../source/logic/Smokescreen.h&quot;</span>
+<a name="l00068"></a>00068 <span class="preprocessor">#include &quot;../source/logic/Maze.h&quot;</span>
+<a name="l00069"></a>00069 <span class="preprocessor">#include &quot;../source/logic/MazeMath.h&quot;</span>
+<a name="l00070"></a>00070 <span class="preprocessor">#include &quot;../source/logic/DestroyedObjectPopup.h&quot;</span>
+<a name="l00071"></a>00071
+<a name="l00075"></a><a class="code" href="logic_tests_8cpp.html#af107924db552c5a66c5bf3aeafe15519">00075</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>, updateMovesPlayerUpInEmptyMaze)
+<a name="l00076"></a>00076 {
+<a name="l00077"></a>00077 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze;
+<a name="l00078"></a>00078 vector&lt;pair&lt;int,int&gt; &gt; walls;
+<a name="l00079"></a>00079 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5);
+<a name="l00080"></a>00080
+<a name="l00081"></a>00081 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> player(2,2,<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7">Maze::UP</a>);
+<a name="l00082"></a>00082
+<a name="l00083"></a>00083 list&lt;Smokescreen&gt; smokescreens;
+<a name="l00084"></a>00084 player.<a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame&#39;s worth of activity for the object, called every frame.">update</a>(testMaze, smokescreens);
+<a name="l00085"></a>00085
+<a name="l00086"></a>00086 <span class="keywordtype">double</span> expectX = 2;
+<a name="l00087"></a>00087 <span class="keywordtype">double</span> expectY = 2-player.<a class="code" href="class_car.html#a68b59187e1520a5d016b0894b4c116b9" title="Function to access the current speed of the car.">speed</a>();
+<a name="l00088"></a>00088 EXPECT_FLOAT_EQ(expectX, player.<a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>());
+<a name="l00089"></a>00089 EXPECT_FLOAT_EQ(expectY, player.<a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>());
+<a name="l00090"></a>00090 }
+<a name="l00091"></a>00091
+<a name="l00095"></a><a class="code" href="logic_tests_8cpp.html#a4011469f0a6dfeb25d704d662ce02caf">00095</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>, updateMovesPlayerDownInEmptyMaze)
+<a name="l00096"></a>00096 {
+<a name="l00097"></a>00097 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze;
+<a name="l00098"></a>00098 vector&lt;pair&lt;int,int&gt; &gt; walls;
+<a name="l00099"></a>00099 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5);
+<a name="l00100"></a>00100
+<a name="l00101"></a>00101 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> player(2,2,<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa89ab143d020541957ab5e0e9cfdd3e23">Maze::DOWN</a>);
+<a name="l00102"></a>00102
+<a name="l00103"></a>00103 list&lt;Smokescreen&gt; smokescreens;
+<a name="l00104"></a>00104 player.<a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame&#39;s worth of activity for the object, called every frame.">update</a>(testMaze, smokescreens);
+<a name="l00105"></a>00105
+<a name="l00106"></a>00106 <span class="keywordtype">double</span> expectX = 2;
+<a name="l00107"></a>00107 <span class="keywordtype">double</span> expectY = 2+player.<a class="code" href="class_car.html#a68b59187e1520a5d016b0894b4c116b9" title="Function to access the current speed of the car.">speed</a>();
+<a name="l00108"></a>00108 EXPECT_FLOAT_EQ(expectX, player.<a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>());
+<a name="l00109"></a>00109 EXPECT_FLOAT_EQ(expectY, player.<a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>());
+<a name="l00110"></a>00110 }
+<a name="l00111"></a>00111
+<a name="l00115"></a><a class="code" href="logic_tests_8cpp.html#ac7954e0cf27b4044b5b9ba0a7faf747e">00115</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>, updateMovesPlayerLeftInEmptyMaze)
+<a name="l00116"></a>00116 {
+<a name="l00117"></a>00117 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze;
+<a name="l00118"></a>00118 vector&lt;pair&lt;int,int&gt; &gt; walls;
+<a name="l00119"></a>00119 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5);
+<a name="l00120"></a>00120
+<a name="l00121"></a>00121 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> player(2,2,<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28faab1a1fe0274cd139b3c0116d8caf458c">Maze::LEFT</a>);
+<a name="l00122"></a>00122
+<a name="l00123"></a>00123 list&lt;Smokescreen&gt; smokescreens;
+<a name="l00124"></a>00124 player.<a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame&#39;s worth of activity for the object, called every frame.">update</a>(testMaze, smokescreens);
+<a name="l00125"></a>00125
+<a name="l00126"></a>00126 <span class="keywordtype">double</span> expectX = 2-player.<a class="code" href="class_car.html#a68b59187e1520a5d016b0894b4c116b9" title="Function to access the current speed of the car.">speed</a>();
+<a name="l00127"></a>00127 <span class="keywordtype">double</span> expectY = 2;
+<a name="l00128"></a>00128 EXPECT_FLOAT_EQ(expectX, player.<a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>());
+<a name="l00129"></a>00129 EXPECT_FLOAT_EQ(expectY, player.<a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>());
+<a name="l00130"></a>00130 }
+<a name="l00131"></a>00131
+<a name="l00135"></a><a class="code" href="logic_tests_8cpp.html#a1b0625252aae5ca87e0b26e01b7aa506">00135</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>, updateMovesPlayerRightInEmptyMaze)
+<a name="l00136"></a>00136 {
+<a name="l00137"></a>00137 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze;
+<a name="l00138"></a>00138 vector&lt;pair&lt;int,int&gt; &gt; walls;
+<a name="l00139"></a>00139 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5);
+<a name="l00140"></a>00140
+<a name="l00141"></a>00141 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> player(2,2,<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa699ae3e1d989e9b12bd200aa86e29e9d">Maze::RIGHT</a>);
+<a name="l00142"></a>00142
+<a name="l00143"></a>00143 list&lt;Smokescreen&gt; smokescreens;
+<a name="l00144"></a>00144 player.<a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame&#39;s worth of activity for the object, called every frame.">update</a>(testMaze, smokescreens);
+<a name="l00145"></a>00145
+<a name="l00146"></a>00146 <span class="keywordtype">double</span> expectX = 2+player.<a class="code" href="class_car.html#a68b59187e1520a5d016b0894b4c116b9" title="Function to access the current speed of the car.">speed</a>();
+<a name="l00147"></a>00147 <span class="keywordtype">double</span> expectY = 2;
+<a name="l00148"></a>00148 EXPECT_FLOAT_EQ(expectX, player.<a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>());
+<a name="l00149"></a>00149 EXPECT_FLOAT_EQ(expectY, player.<a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>());
+<a name="l00150"></a>00150 }
+<a name="l00151"></a>00151
+<a name="l00155"></a><a class="code" href="logic_tests_8cpp.html#a2c0f1615b9769a4140124c5d6845d50a">00155</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>, carNotMovedWhenPathUpBlocked)
+<a name="l00156"></a>00156 {
+<a name="l00157"></a>00157 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze;
+<a name="l00158"></a>00158 vector&lt;pair&lt;int,int&gt; &gt; walls;
+<a name="l00159"></a>00159 walls.push_back(make_pair(3,3));
+<a name="l00160"></a>00160 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5);
+<a name="l00161"></a>00161
+<a name="l00162"></a>00162 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> player(3,4,<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7">Maze::UP</a>);
+<a name="l00163"></a>00163
+<a name="l00164"></a>00164 list&lt;Smokescreen&gt; smokescreens;
+<a name="l00165"></a>00165 player.<a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame&#39;s worth of activity for the object, called every frame.">update</a>(testMaze, smokescreens);
+<a name="l00166"></a>00166
+<a name="l00167"></a>00167 <span class="keywordtype">double</span> expectX = 3;
+<a name="l00168"></a>00168 <span class="keywordtype">double</span> expectY = 4;
+<a name="l00169"></a>00169 EXPECT_FLOAT_EQ(expectX, player.<a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>());
+<a name="l00170"></a>00170 EXPECT_FLOAT_EQ(expectY, player.<a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>());
+<a name="l00171"></a>00171 }
+<a name="l00175"></a><a class="code" href="logic_tests_8cpp.html#a1a6506ee8e2f21181a26f92098707a9b">00175</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>, carNotMovedWhenPathDownBlocked)
+<a name="l00176"></a>00176 {
+<a name="l00177"></a>00177 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze;
+<a name="l00178"></a>00178 vector&lt;pair&lt;int,int&gt; &gt; walls;
+<a name="l00179"></a>00179 walls.push_back(make_pair(3,3));
+<a name="l00180"></a>00180 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5);
+<a name="l00181"></a>00181
+<a name="l00182"></a>00182 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> player(3,2,<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa89ab143d020541957ab5e0e9cfdd3e23">Maze::DOWN</a>);
+<a name="l00183"></a>00183
+<a name="l00184"></a>00184 list&lt;Smokescreen&gt; smokescreens;
+<a name="l00185"></a>00185 player.<a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame&#39;s worth of activity for the object, called every frame.">update</a>(testMaze, smokescreens);
+<a name="l00186"></a>00186
+<a name="l00187"></a>00187 <span class="keywordtype">double</span> expectX = 3;
+<a name="l00188"></a>00188 <span class="keywordtype">double</span> expectY = 2;
+<a name="l00189"></a>00189 EXPECT_FLOAT_EQ(expectX, player.<a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>());
+<a name="l00190"></a>00190 EXPECT_FLOAT_EQ(expectY, player.<a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>());
+<a name="l00191"></a>00191 }
+<a name="l00195"></a><a class="code" href="logic_tests_8cpp.html#ad2919e050b740fafe3545d279463a4ab">00195</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>, carNotMovedWhenPathLeftBlocked)
+<a name="l00196"></a>00196 {
+<a name="l00197"></a>00197 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze;
+<a name="l00198"></a>00198 vector&lt;pair&lt;int,int&gt; &gt; walls;
+<a name="l00199"></a>00199 walls.push_back(make_pair(3,3));
+<a name="l00200"></a>00200 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5);
+<a name="l00201"></a>00201
+<a name="l00202"></a>00202 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> player(4,3,<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28faab1a1fe0274cd139b3c0116d8caf458c">Maze::LEFT</a>);
+<a name="l00203"></a>00203
+<a name="l00204"></a>00204 list&lt;Smokescreen&gt; smokescreens;
+<a name="l00205"></a>00205 player.<a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame&#39;s worth of activity for the object, called every frame.">update</a>(testMaze, smokescreens);
+<a name="l00206"></a>00206
+<a name="l00207"></a>00207 <span class="keywordtype">double</span> expectX = 4;
+<a name="l00208"></a>00208 <span class="keywordtype">double</span> expectY = 3;
+<a name="l00209"></a>00209 EXPECT_FLOAT_EQ(expectX, player.<a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>());
+<a name="l00210"></a>00210 EXPECT_FLOAT_EQ(expectY, player.<a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>());
+<a name="l00211"></a>00211 }
+<a name="l00215"></a><a class="code" href="logic_tests_8cpp.html#a9ac2e91f3041374b626d08f5ede8b914">00215</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>, carNotMovedWhenPathRightBlocked)
+<a name="l00216"></a>00216 {
+<a name="l00217"></a>00217 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze;
+<a name="l00218"></a>00218 vector&lt;pair&lt;int,int&gt; &gt; walls;
+<a name="l00219"></a>00219 walls.push_back(make_pair(3,3));
+<a name="l00220"></a>00220 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5);
+<a name="l00221"></a>00221
+<a name="l00222"></a>00222 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> player(2,3,<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa699ae3e1d989e9b12bd200aa86e29e9d">Maze::RIGHT</a>);
+<a name="l00223"></a>00223
+<a name="l00224"></a>00224 list&lt;Smokescreen&gt; smokescreens;
+<a name="l00225"></a>00225 player.<a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame&#39;s worth of activity for the object, called every frame.">update</a>(testMaze, smokescreens);
+<a name="l00226"></a>00226
+<a name="l00227"></a>00227 <span class="keywordtype">double</span> expectX = 2;
+<a name="l00228"></a>00228 <span class="keywordtype">double</span> expectY = 3;
+<a name="l00229"></a>00229 EXPECT_FLOAT_EQ(expectX, player.<a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>());
+<a name="l00230"></a>00230 EXPECT_FLOAT_EQ(expectY, player.<a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>());
+<a name="l00231"></a>00231 }
+<a name="l00232"></a>00232
+<a name="l00236"></a><a class="code" href="logic_tests_8cpp.html#a485e6ab1a085528b7315eebf1ee9d65d">00236</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>, carDoesNotMoveUpOutMaze)
+<a name="l00237"></a>00237 {
+<a name="l00238"></a>00238 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze;
+<a name="l00239"></a>00239 vector&lt;pair&lt;int,int&gt; &gt; walls;
+<a name="l00240"></a>00240 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5);
+<a name="l00241"></a>00241
+<a name="l00242"></a>00242 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> player(3,0,<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7">Maze::UP</a>);
+<a name="l00243"></a>00243
+<a name="l00244"></a>00244 list&lt;Smokescreen&gt; smokescreens;
+<a name="l00245"></a>00245 player.<a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame&#39;s worth of activity for the object, called every frame.">update</a>(testMaze, smokescreens);
+<a name="l00246"></a>00246
+<a name="l00247"></a>00247 <span class="keywordtype">double</span> expectX = 3;
+<a name="l00248"></a>00248 <span class="keywordtype">double</span> expectY = 0;
+<a name="l00249"></a>00249 EXPECT_FLOAT_EQ(expectX, player.<a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>());
+<a name="l00250"></a>00250 EXPECT_FLOAT_EQ(expectY, player.<a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>());
+<a name="l00251"></a>00251 }
+<a name="l00255"></a><a class="code" href="logic_tests_8cpp.html#a2bf92ba800c8c7190ccd736289fc083a">00255</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>, carDoesNotMoveDownOutMaze)
+<a name="l00256"></a>00256 {
+<a name="l00257"></a>00257 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze;
+<a name="l00258"></a>00258 vector&lt;pair&lt;int,int&gt; &gt; walls;
+<a name="l00259"></a>00259 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5);
+<a name="l00260"></a>00260
+<a name="l00261"></a>00261 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> player(3,5,<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa89ab143d020541957ab5e0e9cfdd3e23">Maze::DOWN</a>);
+<a name="l00262"></a>00262
+<a name="l00263"></a>00263 list&lt;Smokescreen&gt; smokescreens;
+<a name="l00264"></a>00264 player.<a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame&#39;s worth of activity for the object, called every frame.">update</a>(testMaze, smokescreens);
+<a name="l00265"></a>00265
+<a name="l00266"></a>00266 <span class="keywordtype">double</span> expectX = 3;
+<a name="l00267"></a>00267 <span class="keywordtype">double</span> expectY = 5;
+<a name="l00268"></a>00268 EXPECT_FLOAT_EQ(expectX, player.<a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>());
+<a name="l00269"></a>00269 EXPECT_FLOAT_EQ(expectY, player.<a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>());
+<a name="l00270"></a>00270 }
+<a name="l00274"></a><a class="code" href="logic_tests_8cpp.html#a6a8767f7e51b8997ce11e56ce5d88b53">00274</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>, carDoesNotMoveLeftOutMaze)
+<a name="l00275"></a>00275 {
+<a name="l00276"></a>00276 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze;
+<a name="l00277"></a>00277 vector&lt;pair&lt;int,int&gt; &gt; walls;
+<a name="l00278"></a>00278 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5);
+<a name="l00279"></a>00279
+<a name="l00280"></a>00280 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> player(0,3,<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28faab1a1fe0274cd139b3c0116d8caf458c">Maze::LEFT</a>);
+<a name="l00281"></a>00281
+<a name="l00282"></a>00282 list&lt;Smokescreen&gt; smokescreens;
+<a name="l00283"></a>00283 player.<a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame&#39;s worth of activity for the object, called every frame.">update</a>(testMaze, smokescreens);
+<a name="l00284"></a>00284
+<a name="l00285"></a>00285 <span class="keywordtype">double</span> expectX = 0;
+<a name="l00286"></a>00286 <span class="keywordtype">double</span> expectY = 3;
+<a name="l00287"></a>00287 EXPECT_FLOAT_EQ(expectX, player.<a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>());
+<a name="l00288"></a>00288 EXPECT_FLOAT_EQ(expectY, player.<a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>());
+<a name="l00289"></a>00289 }
+<a name="l00293"></a><a class="code" href="logic_tests_8cpp.html#aa9dba66248eff545a8f6d12943ad9965">00293</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>, carDoesNotMoveRightOutMaze)
+<a name="l00294"></a>00294 {
+<a name="l00295"></a>00295 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze;
+<a name="l00296"></a>00296 vector&lt;pair&lt;int,int&gt; &gt; walls;
+<a name="l00297"></a>00297 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5);
+<a name="l00298"></a>00298
+<a name="l00299"></a>00299 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> player(5,3,<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa699ae3e1d989e9b12bd200aa86e29e9d">Maze::RIGHT</a>);
+<a name="l00300"></a>00300
+<a name="l00301"></a>00301 list&lt;Smokescreen&gt; smokescreens;
+<a name="l00302"></a>00302 player.<a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame&#39;s worth of activity for the object, called every frame.">update</a>(testMaze, smokescreens);
+<a name="l00303"></a>00303
+<a name="l00304"></a>00304 <span class="keywordtype">double</span> expectX = 5;
+<a name="l00305"></a>00305 <span class="keywordtype">double</span> expectY = 3;
+<a name="l00306"></a>00306 EXPECT_FLOAT_EQ(expectX, player.<a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>());
+<a name="l00307"></a>00307 EXPECT_FLOAT_EQ(expectY, player.<a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>());
+<a name="l00308"></a>00308 }
+<a name="l00309"></a>00309
+<a name="l00313"></a><a class="code" href="logic_tests_8cpp.html#a2e89a1385841eacfe13c25e920de6543">00313</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>, countIncrementsAndDecrements)
+<a name="l00314"></a>00314 {
+<a name="l00315"></a>00315 vector&lt;Checkpoint&gt; checkpoints;
+<a name="l00316"></a>00316 EXPECT_EQ(0, <a class="code" href="class_checkpoint.html#a872d8574b6f0a7960854fb1175e05f13" title="Function for accessing the number of checkpoints that currently exist.">Checkpoint::checkpointCount</a>());
+<a name="l00317"></a>00317
+<a name="l00318"></a>00318 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i&lt;1000; ++i)
+<a name="l00319"></a>00319 {
+<a name="l00320"></a>00320 checkpoints.push_back(<a class="code" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>(i,i));
+<a name="l00321"></a>00321 }
+<a name="l00322"></a>00322 EXPECT_EQ(1000, <a class="code" href="class_checkpoint.html#a872d8574b6f0a7960854fb1175e05f13" title="Function for accessing the number of checkpoints that currently exist.">Checkpoint::checkpointCount</a>());
+<a name="l00323"></a>00323
+<a name="l00324"></a>00324 <span class="comment">//brackets to limit scope</span>
+<a name="l00325"></a>00325 {
+<a name="l00326"></a>00326 <a class="code" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a> extraCheck1(0,0);
+<a name="l00327"></a>00327 <a class="code" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a> extraCheck2 = extraCheck1;
+<a name="l00328"></a>00328 EXPECT_EQ(1002, <a class="code" href="class_checkpoint.html#a872d8574b6f0a7960854fb1175e05f13" title="Function for accessing the number of checkpoints that currently exist.">Checkpoint::checkpointCount</a>());
+<a name="l00329"></a>00329 extraCheck2 = extraCheck1;
+<a name="l00330"></a>00330 EXPECT_EQ(1002, <a class="code" href="class_checkpoint.html#a872d8574b6f0a7960854fb1175e05f13" title="Function for accessing the number of checkpoints that currently exist.">Checkpoint::checkpointCount</a>());
+<a name="l00331"></a>00331 }
+<a name="l00332"></a>00332 EXPECT_EQ(1000, <a class="code" href="class_checkpoint.html#a872d8574b6f0a7960854fb1175e05f13" title="Function for accessing the number of checkpoints that currently exist.">Checkpoint::checkpointCount</a>());
+<a name="l00333"></a>00333
+<a name="l00334"></a>00334 <span class="keywordflow">while</span>(!checkpoints.empty())
+<a name="l00335"></a>00335 {
+<a name="l00336"></a>00336 checkpoints.pop_back();
+<a name="l00337"></a>00337 }
+<a name="l00338"></a>00338 EXPECT_EQ(0, <a class="code" href="class_checkpoint.html#a872d8574b6f0a7960854fb1175e05f13" title="Function for accessing the number of checkpoints that currently exist.">Checkpoint::checkpointCount</a>());
+<a name="l00339"></a>00339 }
+<a name="l00340"></a>00340
+<a name="l00344"></a><a class="code" href="logic_tests_8cpp.html#a8f4ecb8511bd9f8da009cce86e7de78f">00344</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_collision_detector.html" title="Object for handling collisions between GameObjects.">CollisionDetector</a>, playerAndEnemyBothDestroyed)
+<a name="l00345"></a>00345 {
+<a name="l00346"></a>00346 list&lt;PlayerCar&gt; players;
+<a name="l00347"></a>00347 list&lt;EnemyCar&gt; enemies;
+<a name="l00348"></a>00348 list&lt;Checkpoint&gt; checkpoints;
+<a name="l00349"></a>00349 list&lt;Rock&gt; rocks;
+<a name="l00350"></a>00350 list&lt;Smokescreen&gt; smokescreens;
+<a name="l00351"></a>00351 <a class="code" href="class_collision_detector.html" title="Object for handling collisions between GameObjects.">CollisionDetector</a> detector;
+<a name="l00352"></a>00352
+<a name="l00353"></a>00353 players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(5,5));
+<a name="l00354"></a>00354 players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(5,6));
+<a name="l00355"></a>00355 players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(6,5));
+<a name="l00356"></a>00356 players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(7,7.5));
+<a name="l00357"></a>00357
+<a name="l00358"></a>00358 enemies.push_back(<a class="code" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>(5,6));
+<a name="l00359"></a>00359 enemies.push_back(<a class="code" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>(4,5));
+<a name="l00360"></a>00360 enemies.push_back(<a class="code" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>(6,6));
+<a name="l00361"></a>00361 enemies.push_back(<a class="code" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>(6.5,8));
+<a name="l00362"></a>00362
+<a name="l00363"></a>00363 detector.<a class="code" href="class_collision_detector.html#a6ee96032c26ceeab038d2702d7064c7b" title="Checks for collisions between all relevant pairs of objects, and calls the relevant collision functio...">checkCollisions</a>(players, enemies, checkpoints, rocks, smokescreens);
+<a name="l00364"></a>00364
+<a name="l00365"></a>00365 list&lt;PlayerCar&gt;::const_iterator playerIter = players.begin();
+<a name="l00366"></a>00366 EXPECT_FALSE(playerIter-&gt;destroyed());
+<a name="l00367"></a>00367 ++playerIter;
+<a name="l00368"></a>00368 EXPECT_TRUE(playerIter-&gt;destroyed());
+<a name="l00369"></a>00369 ++playerIter;
+<a name="l00370"></a>00370 EXPECT_FALSE(playerIter-&gt;destroyed());
+<a name="l00371"></a>00371 ++playerIter;
+<a name="l00372"></a>00372 EXPECT_TRUE(playerIter-&gt;destroyed());
+<a name="l00373"></a>00373
+<a name="l00374"></a>00374 list&lt;EnemyCar&gt;::const_iterator enemyIter = enemies.begin();
+<a name="l00375"></a>00375 EXPECT_TRUE(enemyIter-&gt;destroyed());
+<a name="l00376"></a>00376 ++enemyIter;
+<a name="l00377"></a>00377 EXPECT_FALSE(enemyIter-&gt;destroyed());
+<a name="l00378"></a>00378 ++enemyIter;
+<a name="l00379"></a>00379 EXPECT_FALSE(enemyIter-&gt;destroyed());
+<a name="l00380"></a>00380 ++enemyIter;
+<a name="l00381"></a>00381 EXPECT_TRUE(enemyIter-&gt;destroyed());
+<a name="l00382"></a>00382 }
+<a name="l00383"></a>00383
+<a name="l00387"></a><a class="code" href="logic_tests_8cpp.html#abb21ae25f8060ef3dafd386ed054c44f">00387</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_collision_detector.html" title="Object for handling collisions between GameObjects.">CollisionDetector</a>, playerDestroyedByRock)
+<a name="l00388"></a>00388 {
+<a name="l00389"></a>00389 list&lt;PlayerCar&gt; players;
+<a name="l00390"></a>00390 list&lt;EnemyCar&gt; enemies;
+<a name="l00391"></a>00391 list&lt;Checkpoint&gt; checkpoints;
+<a name="l00392"></a>00392 list&lt;Rock&gt; rocks;
+<a name="l00393"></a>00393 list&lt;Smokescreen&gt; smokescreens;
+<a name="l00394"></a>00394 <a class="code" href="class_collision_detector.html" title="Object for handling collisions between GameObjects.">CollisionDetector</a> detector;
+<a name="l00395"></a>00395
+<a name="l00396"></a>00396 players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(5,5));
+<a name="l00397"></a>00397 players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(5,6));
+<a name="l00398"></a>00398 players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(6,5));
+<a name="l00399"></a>00399 players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(7,7.5));
+<a name="l00400"></a>00400
+<a name="l00401"></a>00401 rocks.push_back(<a class="code" href="class_rock.html" title="A game object that acts as an obstacle to the player.">Rock</a>(5,6));
+<a name="l00402"></a>00402 rocks.push_back(<a class="code" href="class_rock.html" title="A game object that acts as an obstacle to the player.">Rock</a>(4,5));
+<a name="l00403"></a>00403 rocks.push_back(<a class="code" href="class_rock.html" title="A game object that acts as an obstacle to the player.">Rock</a>(6,6));
+<a name="l00404"></a>00404 rocks.push_back(<a class="code" href="class_rock.html" title="A game object that acts as an obstacle to the player.">Rock</a>(6.5,8));
+<a name="l00405"></a>00405
+<a name="l00406"></a>00406 detector.<a class="code" href="class_collision_detector.html#a6ee96032c26ceeab038d2702d7064c7b" title="Checks for collisions between all relevant pairs of objects, and calls the relevant collision functio...">checkCollisions</a>(players, enemies, checkpoints, rocks, smokescreens);
+<a name="l00407"></a>00407
+<a name="l00408"></a>00408 list&lt;PlayerCar&gt;::const_iterator playerIter = players.begin();
+<a name="l00409"></a>00409 EXPECT_FALSE(playerIter-&gt;destroyed());
+<a name="l00410"></a>00410 ++playerIter;
+<a name="l00411"></a>00411 EXPECT_TRUE(playerIter-&gt;destroyed());
+<a name="l00412"></a>00412 ++playerIter;
+<a name="l00413"></a>00413 EXPECT_FALSE(playerIter-&gt;destroyed());
+<a name="l00414"></a>00414 ++playerIter;
+<a name="l00415"></a>00415 EXPECT_TRUE(playerIter-&gt;destroyed());
+<a name="l00416"></a>00416
+<a name="l00417"></a>00417 list&lt;Rock&gt;::const_iterator rockIter = rocks.begin();
+<a name="l00418"></a>00418 EXPECT_FALSE(rockIter-&gt;destroyed());
+<a name="l00419"></a>00419 ++rockIter;
+<a name="l00420"></a>00420 EXPECT_FALSE(rockIter-&gt;destroyed());
+<a name="l00421"></a>00421 ++rockIter;
+<a name="l00422"></a>00422 EXPECT_FALSE(rockIter-&gt;destroyed());
+<a name="l00423"></a>00423 ++rockIter;
+<a name="l00424"></a>00424 EXPECT_FALSE(rockIter-&gt;destroyed());
+<a name="l00425"></a>00425 }
+<a name="l00426"></a>00426
+<a name="l00430"></a><a class="code" href="logic_tests_8cpp.html#a115831998a1832f3354e06bdd11c150b">00430</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_collision_detector.html" title="Object for handling collisions between GameObjects.">CollisionDetector</a>, checkpointDestroyedByPlayer)
+<a name="l00431"></a>00431 {
+<a name="l00432"></a>00432 list&lt;PlayerCar&gt; players;
+<a name="l00433"></a>00433 list&lt;EnemyCar&gt; enemies;
+<a name="l00434"></a>00434 list&lt;Checkpoint&gt; checkpoints;
+<a name="l00435"></a>00435 list&lt;Rock&gt; rocks;
+<a name="l00436"></a>00436 list&lt;Smokescreen&gt; smokescreens;
+<a name="l00437"></a>00437 <a class="code" href="class_collision_detector.html" title="Object for handling collisions between GameObjects.">CollisionDetector</a> detector;
+<a name="l00438"></a>00438
+<a name="l00439"></a>00439 players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(5,5));
+<a name="l00440"></a>00440 players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(5,6));
+<a name="l00441"></a>00441 players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(6,5));
+<a name="l00442"></a>00442 players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(7,7.5));
+<a name="l00443"></a>00443
+<a name="l00444"></a>00444 checkpoints.push_back(<a class="code" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>(5,6));
+<a name="l00445"></a>00445 checkpoints.push_back(<a class="code" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>(4,5));
+<a name="l00446"></a>00446 checkpoints.push_back(<a class="code" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>(6,6));
+<a name="l00447"></a>00447 checkpoints.push_back(<a class="code" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>(6.5,8));
+<a name="l00448"></a>00448
+<a name="l00449"></a>00449 detector.<a class="code" href="class_collision_detector.html#a6ee96032c26ceeab038d2702d7064c7b" title="Checks for collisions between all relevant pairs of objects, and calls the relevant collision functio...">checkCollisions</a>(players, enemies, checkpoints, rocks, smokescreens);
+<a name="l00450"></a>00450
+<a name="l00451"></a>00451 list&lt;PlayerCar&gt;::const_iterator playerIter = players.begin();
+<a name="l00452"></a>00452 EXPECT_FALSE(playerIter-&gt;destroyed());
+<a name="l00453"></a>00453 ++playerIter;
+<a name="l00454"></a>00454 EXPECT_FALSE(playerIter-&gt;destroyed());
+<a name="l00455"></a>00455 ++playerIter;
+<a name="l00456"></a>00456 EXPECT_FALSE(playerIter-&gt;destroyed());
+<a name="l00457"></a>00457 ++playerIter;
+<a name="l00458"></a>00458 EXPECT_FALSE(playerIter-&gt;destroyed());
+<a name="l00459"></a>00459
+<a name="l00460"></a>00460 list&lt;Checkpoint&gt;::const_iterator checkpointIter = checkpoints.begin();
+<a name="l00461"></a>00461 EXPECT_TRUE(checkpointIter-&gt;destroyed());
+<a name="l00462"></a>00462 ++checkpointIter;
+<a name="l00463"></a>00463 EXPECT_FALSE(checkpointIter-&gt;destroyed());
+<a name="l00464"></a>00464 ++checkpointIter;
+<a name="l00465"></a>00465 EXPECT_FALSE(checkpointIter-&gt;destroyed());
+<a name="l00466"></a>00466 ++checkpointIter;
+<a name="l00467"></a>00467 EXPECT_TRUE(checkpointIter-&gt;destroyed());
+<a name="l00468"></a>00468 }
+<a name="l00469"></a>00469
+<a name="l00473"></a><a class="code" href="logic_tests_8cpp.html#a9860202068d4e498e238d9d886234ea7">00473</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_collision_detector.html" title="Object for handling collisions between GameObjects.">CollisionDetector</a>, enemyStoppedBySmokescreen)
+<a name="l00474"></a>00474 {
+<a name="l00475"></a>00475 list&lt;PlayerCar&gt; players;
+<a name="l00476"></a>00476 list&lt;EnemyCar&gt; enemies;
+<a name="l00477"></a>00477 list&lt;Checkpoint&gt; checkpoints;
+<a name="l00478"></a>00478 list&lt;Rock&gt; rocks;
+<a name="l00479"></a>00479 list&lt;Smokescreen&gt; smokescreens;
+<a name="l00480"></a>00480 <a class="code" href="class_collision_detector.html" title="Object for handling collisions between GameObjects.">CollisionDetector</a> detector;
+<a name="l00481"></a>00481
+<a name="l00482"></a>00482 enemies.push_back(<a class="code" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>(5,5));
+<a name="l00483"></a>00483 enemies.push_back(<a class="code" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>(5,6));
+<a name="l00484"></a>00484 enemies.push_back(<a class="code" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>(6,5));
+<a name="l00485"></a>00485 enemies.push_back(<a class="code" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>(7,7.5));
+<a name="l00486"></a>00486
+<a name="l00487"></a>00487 smokescreens.push_back(<a class="code" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a>(5,6));
+<a name="l00488"></a>00488 smokescreens.push_back(<a class="code" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a>(4,5));
+<a name="l00489"></a>00489 smokescreens.push_back(<a class="code" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a>(6,6));
+<a name="l00490"></a>00490 smokescreens.push_back(<a class="code" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a>(6.5,8));
+<a name="l00491"></a>00491
+<a name="l00492"></a>00492 detector.<a class="code" href="class_collision_detector.html#a6ee96032c26ceeab038d2702d7064c7b" title="Checks for collisions between all relevant pairs of objects, and calls the relevant collision functio...">checkCollisions</a>(players, enemies, checkpoints, rocks, smokescreens);
+<a name="l00493"></a>00493
+<a name="l00494"></a>00494 list&lt;EnemyCar&gt;::const_iterator enemyIter = enemies.begin();
+<a name="l00495"></a>00495 EXPECT_GT(enemyIter-&gt;speed(),0);
+<a name="l00496"></a>00496 ++enemyIter;
+<a name="l00497"></a>00497 EXPECT_FLOAT_EQ(0, enemyIter-&gt;speed());
+<a name="l00498"></a>00498 ++enemyIter;
+<a name="l00499"></a>00499 EXPECT_GT(enemyIter-&gt;speed(),0);
+<a name="l00500"></a>00500 ++enemyIter;
+<a name="l00501"></a>00501 EXPECT_FLOAT_EQ(0, enemyIter-&gt;speed());
+<a name="l00502"></a>00502 }
+<a name="l00503"></a>00503
+<a name="l00507"></a><a class="code" href="logic_tests_8cpp.html#a484a53647d1cde5db81c1fdc53bf55c9">00507</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_destroyed_object_popup.html" title="Object that appears on the screen for a short time when another object has been destroyed.">DestroyedObjectPopup</a>, destroyedAfterSetTime)
+<a name="l00508"></a>00508 {
+<a name="l00509"></a>00509 <a class="code" href="class_destroyed_object_popup.html" title="Object that appears on the screen for a short time when another object has been destroyed.">DestroyedObjectPopup</a> testPopup(3,2,<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a8b9eb5b79abe467982784ea2227d67e0">BitmapStore::CRASHED_CAR</a>);
+<a name="l00510"></a>00510
+<a name="l00511"></a>00511 <span class="keywordtype">int</span> i=0;
+<a name="l00512"></a>00512 <span class="keywordflow">while</span> (!testPopup.<a class="code" href="class_game_object.html#a266871f6c0220f6b3c902075ebff8eea" title="Checks if an object has been marked for destruction, for example through a collision.">destroyed</a>())
+<a name="l00513"></a>00513 {
+<a name="l00514"></a>00514 testPopup.<a class="code" href="class_limited_time_object.html#ad81a1c9aba4e21dfa40b9e6d881aba4e" title="Function that should be run on every iteration of the gameloop.">update</a>();
+<a name="l00515"></a>00515 ++i;
+<a name="l00516"></a>00516 }
+<a name="l00517"></a>00517
+<a name="l00518"></a>00518 EXPECT_EQ(30,i);
+<a name="l00519"></a>00519 }
+<a name="l00520"></a>00520
+<a name="l00524"></a><a class="code" href="logic_tests_8cpp.html#aa16a32786815a8bb8cb7e8de664ff950">00524</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>, queryOutsideBoundsReturnsSolid)
+<a name="l00525"></a>00525 {
+<a name="l00526"></a>00526 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze;
+<a name="l00527"></a>00527 vector&lt;pair&lt;int,int&gt; &gt; walls;
+<a name="l00528"></a>00528 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5);
+<a name="l00529"></a>00529
+<a name="l00530"></a>00530 EXPECT_FALSE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(5,5));
+<a name="l00531"></a>00531 EXPECT_FALSE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(0,0));
+<a name="l00532"></a>00532 EXPECT_TRUE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(6,5));
+<a name="l00533"></a>00533 EXPECT_TRUE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(5,6));
+<a name="l00534"></a>00534 EXPECT_TRUE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(-1,3));
+<a name="l00535"></a>00535 EXPECT_TRUE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(3,-1));
+<a name="l00536"></a>00536 }
+<a name="l00537"></a>00537
+<a name="l00541"></a><a class="code" href="logic_tests_8cpp.html#a38676411c83cef750c1e48dd8f1a87ca">00541</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>, generationWithWallsWithoutObjectMax)
+<a name="l00542"></a>00542 {
+<a name="l00543"></a>00543 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze;
+<a name="l00544"></a>00544 vector&lt;pair&lt;int,int&gt; &gt; walls;
+<a name="l00545"></a>00545 walls.push_back(make_pair(1,2));
+<a name="l00546"></a>00546 walls.push_back(make_pair(4,3));
+<a name="l00547"></a>00547 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls);
+<a name="l00548"></a>00548
+<a name="l00549"></a>00549 <span class="comment">//test random empty blocks</span>
+<a name="l00550"></a>00550 EXPECT_FALSE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(2,1));
+<a name="l00551"></a>00551 EXPECT_FALSE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(0,0));
+<a name="l00552"></a>00552
+<a name="l00553"></a>00553 <span class="comment">//test wall blocks</span>
+<a name="l00554"></a>00554 EXPECT_TRUE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(1,2));
+<a name="l00555"></a>00555 EXPECT_TRUE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(4,3));
+<a name="l00556"></a>00556
+<a name="l00557"></a>00557 <span class="comment">//test bounds are being set right</span>
+<a name="l00558"></a>00558 EXPECT_TRUE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(4,4));
+<a name="l00559"></a>00559 EXPECT_TRUE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(5,3));
+<a name="l00560"></a>00560 }
+<a name="l00561"></a>00561
+<a name="l00565"></a><a class="code" href="logic_tests_8cpp.html#a0363213c93a0b22e67182dc5af60b78b">00565</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>, generationWithWallsWithObjectMax)
+<a name="l00566"></a>00566 {
+<a name="l00567"></a>00567 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze;
+<a name="l00568"></a>00568 vector&lt;pair&lt;int,int&gt; &gt; walls;
+<a name="l00569"></a>00569 walls.push_back(make_pair(1,2));
+<a name="l00570"></a>00570 walls.push_back(make_pair(4,3));
+<a name="l00571"></a>00571 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,6);
+<a name="l00572"></a>00572
+<a name="l00573"></a>00573 <span class="comment">//test random empty blocks</span>
+<a name="l00574"></a>00574 EXPECT_FALSE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(2,1));
+<a name="l00575"></a>00575 EXPECT_FALSE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(0,0));
+<a name="l00576"></a>00576
+<a name="l00577"></a>00577 <span class="comment">//test wall blocks</span>
+<a name="l00578"></a>00578 EXPECT_TRUE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(1,2));
+<a name="l00579"></a>00579 EXPECT_TRUE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(4,3));
+<a name="l00580"></a>00580
+<a name="l00581"></a>00581 <span class="comment">//test bounds are being set right</span>
+<a name="l00582"></a>00582 EXPECT_FALSE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(4,4));
+<a name="l00583"></a>00583 EXPECT_FALSE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(5,6));
+<a name="l00584"></a>00584 EXPECT_TRUE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(6,6));
+<a name="l00585"></a>00585 EXPECT_TRUE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(5,7));
+<a name="l00586"></a>00586 }
+<a name="l00587"></a>00587
+<a name="l00591"></a><a class="code" href="logic_tests_8cpp.html#a2b5bbb44002c6d13e3a3811cb3677832">00591</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_maze_math.html" title="Class of static methods for common math functions that occur in the 2D maze setting.">MazeMath</a>, distanceGivesExpectedResult)
+<a name="l00592"></a>00592 {
+<a name="l00593"></a>00593 <span class="comment">//right angle triange with sides of length 3, 4, and 5</span>
+<a name="l00594"></a>00594 <span class="keywordtype">double</span> x1 = 1;
+<a name="l00595"></a>00595 <span class="keywordtype">double</span> y1 = 1;
+<a name="l00596"></a>00596 <span class="keywordtype">double</span> x2 = 4;
+<a name="l00597"></a>00597 <span class="keywordtype">double</span> y2 = 5;
+<a name="l00598"></a>00598
+<a name="l00599"></a>00599 <span class="keywordtype">double</span> expectedResult = 5;
+<a name="l00600"></a>00600
+<a name="l00601"></a>00601 EXPECT_DOUBLE_EQ(expectedResult, <a class="code" href="class_maze_math.html#a5735276fb4c76f25944f2c02d622c3f6" title="Finds the straight line distance between two points on a 2D plane.">MazeMath::distance</a>(x1,y1,x2,y2));
+<a name="l00602"></a>00602 }
+<a name="l00603"></a>00603
+<a name="l00607"></a><a class="code" href="logic_tests_8cpp.html#a5a55cf80381ed4c7885fb887427e6118">00607</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_maze_math.html" title="Class of static methods for common math functions that occur in the 2D maze setting.">MazeMath</a>, roundGivesExpectedResult)
+<a name="l00608"></a>00608 {
+<a name="l00609"></a>00609 <span class="comment">//right angle triange with sides of length 3, 4, and 5</span>
+<a name="l00610"></a>00610 <span class="keywordtype">double</span> roundUp = 5.5;
+<a name="l00611"></a>00611 <span class="keywordtype">double</span> roundDown = 5.49;
+<a name="l00612"></a>00612
+<a name="l00613"></a>00613 <span class="keywordtype">double</span> expectUp = 6;
+<a name="l00614"></a>00614 <span class="keywordtype">double</span> expectDown = 5;
+<a name="l00615"></a>00615
+<a name="l00616"></a>00616 EXPECT_DOUBLE_EQ(expectUp, <a class="code" href="class_maze_math.html#a2314f211065f4dc7cb11469770fd2f1c" title="Rounds a value to the nearest integer.">MazeMath::round</a>(roundUp));
+<a name="l00617"></a>00617 EXPECT_DOUBLE_EQ(expectDown, <a class="code" href="class_maze_math.html#a2314f211065f4dc7cb11469770fd2f1c" title="Rounds a value to the nearest integer.">MazeMath::round</a>(roundDown));
+<a name="l00618"></a>00618 }
+<a name="l00619"></a>00619
+<a name="l00626"></a><a class="code" href="logic_tests_8cpp.html#a610f20b2b4a1407fa2a8983015dfb81b">00626</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>, creationAndDestructionCanHappen)
+<a name="l00627"></a>00627 {
+<a name="l00628"></a>00628 EXPECT_NO_THROW({
+<a name="l00629"></a>00629 vector&lt;PlayerCar&gt; players;
+<a name="l00630"></a>00630 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i&lt;10; ++i)
+<a name="l00631"></a>00631 {
+<a name="l00632"></a>00632 players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(i,i));
+<a name="l00633"></a>00633 }
+<a name="l00634"></a>00634 <span class="keywordflow">while</span>(!players.empty())
+<a name="l00635"></a>00635 {
+<a name="l00636"></a>00636 players.pop_back();
+<a name="l00637"></a>00637 }
+<a name="l00638"></a>00638 });
+<a name="l00639"></a>00639
+<a name="l00640"></a>00640 EXPECT_FALSE(al_is_system_installed());
+<a name="l00641"></a>00641 }
+<a name="l00642"></a>00642
+<a name="l00648"></a><a class="code" href="logic_tests_8cpp.html#a257f2123dddae6d77b7926f48d4e71e2">00648</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>, playerSpeedAffectedByPetrol)
+<a name="l00649"></a>00649 {
+<a name="l00650"></a>00650 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze;
+<a name="l00651"></a>00651 vector&lt;pair&lt;int,int&gt; &gt; walls;
+<a name="l00652"></a>00652 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5);
+<a name="l00653"></a>00653
+<a name="l00654"></a>00654 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> player(5,3,<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa699ae3e1d989e9b12bd200aa86e29e9d">Maze::RIGHT</a>);
+<a name="l00655"></a>00655
+<a name="l00656"></a>00656 list&lt;Smokescreen&gt; smokescreens;
+<a name="l00657"></a>00657 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i&lt;1429; ++i)
+<a name="l00658"></a>00658 {
+<a name="l00659"></a>00659 player.<a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame&#39;s worth of activity for the object, called every frame.">update</a>(testMaze, smokescreens);
+<a name="l00660"></a>00660 }
+<a name="l00661"></a>00661
+<a name="l00662"></a>00662 EXPECT_FLOAT_EQ(0, player.<a class="code" href="class_player_car.html#af32c01166e92d567202c8415cb3e7c88" title="Function to allow access to the amount of petrol that the PlayerCar still has.">petrol</a>());
+<a name="l00663"></a>00663 EXPECT_FLOAT_EQ(0.05, player.<a class="code" href="class_car.html#a68b59187e1520a5d016b0894b4c116b9" title="Function to access the current speed of the car.">speed</a>());
+<a name="l00664"></a>00664
+<a name="l00665"></a>00665 player.<a class="code" href="class_player_car.html#aaa8b9d66c0c4e4eab5a303dd0a4e5f39" title="Function that is called when the PlayerCar collides with a Checkpoint.">gotCheckpoint</a>();
+<a name="l00666"></a>00666 EXPECT_GT(player.<a class="code" href="class_player_car.html#af32c01166e92d567202c8415cb3e7c88" title="Function to allow access to the amount of petrol that the PlayerCar still has.">petrol</a>(), 0);
+<a name="l00667"></a>00667 EXPECT_FLOAT_EQ(0.1, player.<a class="code" href="class_car.html#a68b59187e1520a5d016b0894b4c116b9" title="Function to access the current speed of the car.">speed</a>());
+<a name="l00668"></a>00668 }
+<a name="l00669"></a>00669
+<a name="l00673"></a><a class="code" href="logic_tests_8cpp.html#a2de4a45e984d28048ec0cfcd3199cfc7">00673</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a>, destroyedAfterSetTime)
+<a name="l00674"></a>00674 {
+<a name="l00675"></a>00675 <a class="code" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> testSmokescreen(3,2);
+<a name="l00676"></a>00676
+<a name="l00677"></a>00677 <span class="keywordtype">int</span> i=0;
+<a name="l00678"></a>00678 <span class="keywordflow">while</span> (!testSmokescreen.<a class="code" href="class_game_object.html#a266871f6c0220f6b3c902075ebff8eea" title="Checks if an object has been marked for destruction, for example through a collision.">destroyed</a>())
+<a name="l00679"></a>00679 {
+<a name="l00680"></a>00680 testSmokescreen.<a class="code" href="class_limited_time_object.html#ad81a1c9aba4e21dfa40b9e6d881aba4e" title="Function that should be run on every iteration of the gameloop.">update</a>();
+<a name="l00681"></a>00681 ++i;
+<a name="l00682"></a>00682 }
+<a name="l00683"></a>00683
+<a name="l00684"></a>00684 EXPECT_EQ(60,i);
+<a name="l00685"></a>00685 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/main_8cpp.html b/docs/html/main_8cpp.html
new file mode 100644
index 0000000..c841d59
--- /dev/null
+++ b/docs/html/main_8cpp.html
@@ -0,0 +1,136 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/main.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">source/main.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_game_8h_source.html">logic/Game.h</a>&quot;</code><br/>
+</div>
+<p><a href="main_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
+</table>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a><!-- doxytag: member="main.cpp::main" ref="ae66f6b31b5ad750f1fe042a706a4e3d4" args="()" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int main </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="main_8cpp_source.html#l00003">3</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
+
+</div>
+</div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/main_8cpp_source.html b/docs/html/main_8cpp_source.html
new file mode 100644
index 0000000..3573fd0
--- /dev/null
+++ b/docs/html/main_8cpp_source.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: source/main.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">source/main.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="main_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &quot;<a class="code" href="_game_8h.html">logic/Game.h</a>&quot;</span>
+<a name="l00002"></a>00002
+<a name="l00003"></a><a class="code" href="main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">00003</a> <span class="keywordtype">int</span> <a class="code" href="main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a>()
+<a name="l00004"></a>00004 {
+<a name="l00005"></a>00005 <span class="keywordflow">try</span>
+<a name="l00006"></a>00006 {
+<a name="l00007"></a>00007 <a class="code" href="class_game.html" title="The object that controls the flow of the game, and the launch point of the game.">Game</a> game;
+<a name="l00008"></a>00008 game.<a class="code" href="class_game.html#a3d9b98f7c4a96ecf578f75b96c9f0e90" title="Entry point for the program. This should be called from main.">start</a>();
+<a name="l00009"></a>00009 }
+<a name="l00010"></a>00010 <span class="keywordflow">catch</span> (<a class="code" href="class_bad_resolution.html" title="Exception that is thrown if the Config file requests a resolution that can not work.">BadResolution</a>)
+<a name="l00011"></a>00011 {
+<a name="l00012"></a>00012 }
+<a name="l00013"></a>00013 <span class="keywordflow">catch</span> (<a class="code" href="class_install_failure.html" title="Exception to be thrown if any component of Allegro fails to install at runtime.">InstallFailure</a>)
+<a name="l00014"></a>00014 {
+<a name="l00015"></a>00015 }
+<a name="l00016"></a>00016 <span class="keywordflow">catch</span> (<a class="code" href="class_file_open_error.html" title="An exception that is thrown if the file selected for opening does not exist.">FileOpenError</a>)
+<a name="l00017"></a>00017 {
+<a name="l00018"></a>00018 }
+<a name="l00019"></a>00019
+<a name="l00020"></a>00020 <span class="keywordflow">return</span> 0;
+<a name="l00021"></a>00021 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:30 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/nav_f.png b/docs/html/nav_f.png
new file mode 100644
index 0000000..1b07a16
--- /dev/null
+++ b/docs/html/nav_f.png
Binary files differ
diff --git a/docs/html/nav_h.png b/docs/html/nav_h.png
new file mode 100644
index 0000000..01f5fa6
--- /dev/null
+++ b/docs/html/nav_h.png
Binary files differ
diff --git a/docs/html/open.png b/docs/html/open.png
new file mode 100644
index 0000000..7b35d2c
--- /dev/null
+++ b/docs/html/open.png
Binary files differ
diff --git a/docs/html/presentation_tests_8cpp.html b/docs/html/presentation_tests_8cpp.html
new file mode 100644
index 0000000..90e46db
--- /dev/null
+++ b/docs/html/presentation_tests_8cpp.html
@@ -0,0 +1,371 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: tests/presentationTests.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">tests/presentationTests.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+
+<p>Unit tests for the presentation layer of a Rally-X game.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &lt;utility&gt;</code><br/>
+<code>#include &lt;list&gt;</code><br/>
+<code>#include &lt;gtest/gtest.h&gt;</code><br/>
+<code>#include &quot;../source/presentation/BitmapStore.h&quot;</code><br/>
+<code>#include &quot;../source/presentation/ColourStore.h&quot;</code><br/>
+<code>#include &quot;../source/presentation/GamePanel.h&quot;</code><br/>
+<code>#include &quot;../source/presentation/Screen.h&quot;</code><br/>
+<code>#include &quot;../source/logic/PlayerCar.h&quot;</code><br/>
+<code>#include &quot;../source/logic/EnemyCar.h&quot;</code><br/>
+<code>#include &quot;../source/logic/Checkpoint.h&quot;</code><br/>
+<code>#include &quot;../source/logic/Rock.h&quot;</code><br/>
+<code>#include &quot;../source/logic/Smokescreen.h&quot;</code><br/>
+<code>#include &quot;../source/logic/Maze.h&quot;</code><br/>
+<code>#include &quot;../source/logic/DestroyedObjectPopup.h&quot;</code><br/>
+</div>
+<p><a href="presentation_tests_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="presentation_tests_8cpp.html#a1f28e78cfee8247b7031e29d1db8b088">TEST</a> (<a class="el" href="class_bitmap_store.html">BitmapStore</a>, returnsBitmapForAllImages)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that all images can be requested without failure occuring. <a href="#a1f28e78cfee8247b7031e29d1db8b088"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="presentation_tests_8cpp.html#a93e9b8f162d329b2498f62812b5651f9">TEST</a> (<a class="el" href="class_colour_store.html">ColourStore</a>, returnsColourForAllImages)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that all colours can be requested without failure occuring. <a href="#a93e9b8f162d329b2498f62812b5651f9"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="presentation_tests_8cpp.html#a09481990af46ae9fd4cced79cce78953">TEST</a> (<a class="el" href="class_screen.html">Screen</a>, exceptionOnBadResolution)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="presentation_tests_8cpp.html#a52ee17980b74b96293db8c102b8245c0">TEST</a> (<a class="el" href="class_screen.html">Screen</a>, noExceptionOnWindowed)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="presentation_tests_8cpp.html#a2f96180c4b643bba6a3e9c97a9467f8f">TEST</a> (<a class="el" href="class_screen.html">Screen</a>, noExceptionOnGoodResolution)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="presentation_tests_8cpp.html#ac0685cd3085971f9d09b22ed8563d766">TEST</a> (<a class="el" href="class_screen_panel.html">ScreenPanel</a>, drawingToCurrentBackBuffer)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that when a <a class="el" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a> draws to the back buffer provided. <a href="#ac0685cd3085971f9d09b22ed8563d766"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="presentation_tests_8cpp.html#a8b8a615a5a6ef5da97b81d626fba41eb">TEST</a> (<a class="el" href="class_screen_panel.html">ScreenPanel</a>, drawingToCurrentBackBufferAfterFlip)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that when a <a class="el" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a> draws to the front buffer provided after a flip has been called. <a href="#a8b8a615a5a6ef5da97b81d626fba41eb"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Unit tests for the presentation layer of a Rally-X game. </p>
+<p>The <a class="el" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a> class is tested in its ability to return a bitmap for each image. The appearance of the bitmaps need to be tested manually by running the game and inspecting the various objects.</p>
+<p>The <a class="el" href="class_colour_store.html" title="Class for mapping BitmapStore images to colours for use in the minimap.">ColourStore</a> class is tested in its ability to return a colour for each image. The appearance of the colours need to be tested manually by running the game and inspecting the various objects.</p>
+<p>The <a class="el" href="class_game_panel.html" title="ScreenPanel to be drawn on the screen to draw the area where the game takes place.">GamePanel</a> and <a class="el" href="class_info_panel.html" title="ScreenPanel to be drawn on the screen to give the player information.">InfoPanel</a> classes depend on their visual appearance in the game. Therefore, they should be tested manually. The technical part of their functionality, creating the back and front buffers and changing between them, is handled by their superclass, <a class="el" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a>.</p>
+<p>The <a class="el" href="class_keyboard_handler.html" title="Class for handling keyboard related game inputs from the player.">KeyboardHandler</a> depends on user inputs. It should be tested manually by testing that the player's direction can be controlled, and that smokescreens can be created.</p>
+<p>The <a class="el" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a> class's creation with various resolutions and fullscreen settings is tested. An exception should be thrown if the fullscreen resolution is not supported by the current hardware, but not otherwise. The visual appearance and creation of ScreenPanels should be tested manually by running the game.</p>
+<p>The <a class="el" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a> class is tested by creating a false back and front display buffer. The buffer that is being drawn to is tested by sampling a pixel in the middle of the buffer.</p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition in file <a class="el" href="presentation_tests_8cpp_source.html">presentationTests.cpp</a>.</p>
+</div><hr/><h2>Function Documentation</h2>
+<a class="anchor" id="a1f28e78cfee8247b7031e29d1db8b088"></a><!-- doxytag: member="presentationTests.cpp::TEST" ref="a1f28e78cfee8247b7031e29d1db8b088" args="(BitmapStore, returnsBitmapForAllImages)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_bitmap_store.html">BitmapStore</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">returnsBitmapForAllImages&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that all images can be requested without failure occuring. </p>
+
+<p>Definition at line <a class="el" href="presentation_tests_8cpp_source.html#l00055">55</a> of file <a class="el" href="presentation_tests_8cpp_source.html">presentationTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a93e9b8f162d329b2498f62812b5651f9"></a><!-- doxytag: member="presentationTests.cpp::TEST" ref="a93e9b8f162d329b2498f62812b5651f9" args="(ColourStore, returnsColourForAllImages)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_colour_store.html">ColourStore</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">returnsColourForAllImages&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that all colours can be requested without failure occuring. </p>
+
+<p>Definition at line <a class="el" href="presentation_tests_8cpp_source.html#l00075">75</a> of file <a class="el" href="presentation_tests_8cpp_source.html">presentationTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a09481990af46ae9fd4cced79cce78953"></a><!-- doxytag: member="presentationTests.cpp::TEST" ref="a09481990af46ae9fd4cced79cce78953" args="(Screen, exceptionOnBadResolution)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_screen.html">Screen</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">exceptionOnBadResolution&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Tests that an exception is thrown if fullscreen mode is requested on an unsupported monitor resolution. </p>
+
+<p>Definition at line <a class="el" href="presentation_tests_8cpp_source.html#l00095">95</a> of file <a class="el" href="presentation_tests_8cpp_source.html">presentationTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a52ee17980b74b96293db8c102b8245c0"></a><!-- doxytag: member="presentationTests.cpp::TEST" ref="a52ee17980b74b96293db8c102b8245c0" args="(Screen, noExceptionOnWindowed)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_screen.html">Screen</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">noExceptionOnWindowed&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Tests that an exception is not thrown if windowed mode is requested on an unsupported monitor resolution. </p>
+
+<p>Definition at line <a class="el" href="presentation_tests_8cpp_source.html#l00106">106</a> of file <a class="el" href="presentation_tests_8cpp_source.html">presentationTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2f96180c4b643bba6a3e9c97a9467f8f"></a><!-- doxytag: member="presentationTests.cpp::TEST" ref="a2f96180c4b643bba6a3e9c97a9467f8f" args="(Screen, noExceptionOnGoodResolution)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_screen.html">Screen</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">noExceptionOnGoodResolution&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<p>Tests that an exception is not thrown if fullscreen mode is requested on a supported monitor resolution. </p>
+
+<p>Definition at line <a class="el" href="presentation_tests_8cpp_source.html#l00117">117</a> of file <a class="el" href="presentation_tests_8cpp_source.html">presentationTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac0685cd3085971f9d09b22ed8563d766"></a><!-- doxytag: member="presentationTests.cpp::TEST" ref="ac0685cd3085971f9d09b22ed8563d766" args="(ScreenPanel, drawingToCurrentBackBuffer)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_screen_panel.html">ScreenPanel</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">drawingToCurrentBackBuffer&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that when a <a class="el" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a> draws to the back buffer provided. </p>
+
+<p>Definition at line <a class="el" href="presentation_tests_8cpp_source.html#l00129">129</a> of file <a class="el" href="presentation_tests_8cpp_source.html">presentationTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8b8a615a5a6ef5da97b81d626fba41eb"></a><!-- doxytag: member="presentationTests.cpp::TEST" ref="a8b8a615a5a6ef5da97b81d626fba41eb" args="(ScreenPanel, drawingToCurrentBackBufferAfterFlip)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_screen_panel.html">ScreenPanel</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">drawingToCurrentBackBufferAfterFlip&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that when a <a class="el" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a> draws to the front buffer provided after a flip has been called. </p>
+
+<p>Definition at line <a class="el" href="presentation_tests_8cpp_source.html#l00189">189</a> of file <a class="el" href="presentation_tests_8cpp_source.html">presentationTests.cpp</a>.</p>
+
+</div>
+</div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/presentation_tests_8cpp_source.html b/docs/html/presentation_tests_8cpp_source.html
new file mode 100644
index 0000000..2a1d52d
--- /dev/null
+++ b/docs/html/presentation_tests_8cpp_source.html
@@ -0,0 +1,303 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: tests/presentationTests.cpp Source File</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">tests/presentationTests.cpp</div> </div>
+</div>
+<div class="contents">
+<a href="presentation_tests_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
+<a name="l00033"></a>00033 <span class="preprocessor">#include &lt;utility&gt;</span>
+<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;list&gt;</span>
+<a name="l00035"></a>00035 <span class="keyword">using namespace </span>std;
+<a name="l00036"></a>00036
+<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;gtest/gtest.h&gt;</span>
+<a name="l00038"></a>00038
+<a name="l00039"></a>00039 <span class="preprocessor">#include &quot;../source/presentation/BitmapStore.h&quot;</span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include &quot;../source/presentation/ColourStore.h&quot;</span>
+<a name="l00041"></a>00041 <span class="preprocessor">#include &quot;../source/presentation/GamePanel.h&quot;</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include &quot;../source/presentation/Screen.h&quot;</span>
+<a name="l00043"></a>00043
+<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;../source/logic/PlayerCar.h&quot;</span>
+<a name="l00045"></a>00045 <span class="preprocessor">#include &quot;../source/logic/EnemyCar.h&quot;</span>
+<a name="l00046"></a>00046 <span class="preprocessor">#include &quot;../source/logic/Checkpoint.h&quot;</span>
+<a name="l00047"></a>00047 <span class="preprocessor">#include &quot;../source/logic/Rock.h&quot;</span>
+<a name="l00048"></a>00048 <span class="preprocessor">#include &quot;../source/logic/Smokescreen.h&quot;</span>
+<a name="l00049"></a>00049 <span class="preprocessor">#include &quot;../source/logic/Maze.h&quot;</span>
+<a name="l00050"></a>00050 <span class="preprocessor">#include &quot;../source/logic/DestroyedObjectPopup.h&quot;</span>
+<a name="l00051"></a>00051
+<a name="l00055"></a><a class="code" href="presentation_tests_8cpp.html#a1f28e78cfee8247b7031e29d1db8b088">00055</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a>, returnsBitmapForAllImages)
+<a name="l00056"></a>00056 {
+<a name="l00057"></a>00057 <a class="code" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a> testStore(50);
+<a name="l00058"></a>00058
+<a name="l00059"></a>00059 ALLEGRO_BITMAP* testBitmap = NULL;
+<a name="l00060"></a>00060
+<a name="l00061"></a>00061 EXPECT_NO_FATAL_FAILURE(testBitmap = testStore.<a class="code" href="class_bitmap_store.html#aadd437c869c5856c36d920dfafbc6ee4" title="Function to get image for drawing to the screen.">getBitmap</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386acdaf29947fecd91b452e554a75fb9e92">BitmapStore::PLAYER</a>));
+<a name="l00062"></a>00062 EXPECT_NO_FATAL_FAILURE(testBitmap = testStore.<a class="code" href="class_bitmap_store.html#aadd437c869c5856c36d920dfafbc6ee4" title="Function to get image for drawing to the screen.">getBitmap</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a8a7d9a89e243914ca702660237d4f81d">BitmapStore::ENEMY</a>));
+<a name="l00063"></a>00063 EXPECT_NO_FATAL_FAILURE(testBitmap = testStore.<a class="code" href="class_bitmap_store.html#aadd437c869c5856c36d920dfafbc6ee4" title="Function to get image for drawing to the screen.">getBitmap</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a780d6b9e20ec37fbaf5a40ca846795d9">BitmapStore::CHECKPOINT</a>));
+<a name="l00064"></a>00064 EXPECT_NO_FATAL_FAILURE(testBitmap = testStore.<a class="code" href="class_bitmap_store.html#aadd437c869c5856c36d920dfafbc6ee4" title="Function to get image for drawing to the screen.">getBitmap</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386abf3851dc0110fc83020981fcbb5773eb">BitmapStore::ROCK</a>));
+<a name="l00065"></a>00065 EXPECT_NO_FATAL_FAILURE(testBitmap = testStore.<a class="code" href="class_bitmap_store.html#aadd437c869c5856c36d920dfafbc6ee4" title="Function to get image for drawing to the screen.">getBitmap</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386ae662e77b349a8e22c5826ef35b1b5d9a">BitmapStore::MAZE_WALL</a>));
+<a name="l00066"></a>00066 EXPECT_NO_FATAL_FAILURE(testBitmap = testStore.<a class="code" href="class_bitmap_store.html#aadd437c869c5856c36d920dfafbc6ee4" title="Function to get image for drawing to the screen.">getBitmap</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a4e2a075dff2c02bf40b134c9090d1f02">BitmapStore::MAZE_FLOOR</a>));
+<a name="l00067"></a>00067 EXPECT_NO_FATAL_FAILURE(testBitmap = testStore.<a class="code" href="class_bitmap_store.html#aadd437c869c5856c36d920dfafbc6ee4" title="Function to get image for drawing to the screen.">getBitmap</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a91fec244d29999552e93ecb7578713fb">BitmapStore::SMOKE</a>));
+<a name="l00068"></a>00068 EXPECT_NO_FATAL_FAILURE(testBitmap = testStore.<a class="code" href="class_bitmap_store.html#aadd437c869c5856c36d920dfafbc6ee4" title="Function to get image for drawing to the screen.">getBitmap</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a8b9eb5b79abe467982784ea2227d67e0">BitmapStore::CRASHED_CAR</a>));
+<a name="l00069"></a>00069 EXPECT_NO_FATAL_FAILURE(testBitmap = testStore.<a class="code" href="class_bitmap_store.html#aadd437c869c5856c36d920dfafbc6ee4" title="Function to get image for drawing to the screen.">getBitmap</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a824f0021358b88c7f1172d7dece95948">BitmapStore::CLAIMED_CHECKPOINT</a>));
+<a name="l00070"></a>00070 }
+<a name="l00071"></a>00071
+<a name="l00075"></a><a class="code" href="presentation_tests_8cpp.html#a93e9b8f162d329b2498f62812b5651f9">00075</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_colour_store.html" title="Class for mapping BitmapStore images to colours for use in the minimap.">ColourStore</a>, returnsColourForAllImages)
+<a name="l00076"></a>00076 {
+<a name="l00077"></a>00077 <a class="code" href="class_colour_store.html" title="Class for mapping BitmapStore images to colours for use in the minimap.">ColourStore</a> testStore;
+<a name="l00078"></a>00078
+<a name="l00079"></a>00079 ALLEGRO_COLOR testColour;
+<a name="l00080"></a>00080
+<a name="l00081"></a>00081 EXPECT_NO_FATAL_FAILURE(testColour = testStore.<a class="code" href="class_colour_store.html#ac8474c4e9b335215f03ec2c749847ad2" title="Returns the colour associated with a given image.">getColour</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386acdaf29947fecd91b452e554a75fb9e92">BitmapStore::PLAYER</a>));
+<a name="l00082"></a>00082 EXPECT_NO_FATAL_FAILURE(testColour = testStore.<a class="code" href="class_colour_store.html#ac8474c4e9b335215f03ec2c749847ad2" title="Returns the colour associated with a given image.">getColour</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a8a7d9a89e243914ca702660237d4f81d">BitmapStore::ENEMY</a>));
+<a name="l00083"></a>00083 EXPECT_NO_FATAL_FAILURE(testColour = testStore.<a class="code" href="class_colour_store.html#ac8474c4e9b335215f03ec2c749847ad2" title="Returns the colour associated with a given image.">getColour</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a780d6b9e20ec37fbaf5a40ca846795d9">BitmapStore::CHECKPOINT</a>));
+<a name="l00084"></a>00084 EXPECT_NO_FATAL_FAILURE(testColour = testStore.<a class="code" href="class_colour_store.html#ac8474c4e9b335215f03ec2c749847ad2" title="Returns the colour associated with a given image.">getColour</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386abf3851dc0110fc83020981fcbb5773eb">BitmapStore::ROCK</a>));
+<a name="l00085"></a>00085 EXPECT_NO_FATAL_FAILURE(testColour = testStore.<a class="code" href="class_colour_store.html#ac8474c4e9b335215f03ec2c749847ad2" title="Returns the colour associated with a given image.">getColour</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386ae662e77b349a8e22c5826ef35b1b5d9a">BitmapStore::MAZE_WALL</a>));
+<a name="l00086"></a>00086 EXPECT_NO_FATAL_FAILURE(testColour = testStore.<a class="code" href="class_colour_store.html#ac8474c4e9b335215f03ec2c749847ad2" title="Returns the colour associated with a given image.">getColour</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a4e2a075dff2c02bf40b134c9090d1f02">BitmapStore::MAZE_FLOOR</a>));
+<a name="l00087"></a>00087 EXPECT_NO_FATAL_FAILURE(testColour = testStore.<a class="code" href="class_colour_store.html#ac8474c4e9b335215f03ec2c749847ad2" title="Returns the colour associated with a given image.">getColour</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a91fec244d29999552e93ecb7578713fb">BitmapStore::SMOKE</a>));
+<a name="l00088"></a>00088 EXPECT_NO_FATAL_FAILURE(testColour = testStore.<a class="code" href="class_colour_store.html#ac8474c4e9b335215f03ec2c749847ad2" title="Returns the colour associated with a given image.">getColour</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a8b9eb5b79abe467982784ea2227d67e0">BitmapStore::CRASHED_CAR</a>));
+<a name="l00089"></a>00089 EXPECT_NO_FATAL_FAILURE(testColour = testStore.<a class="code" href="class_colour_store.html#ac8474c4e9b335215f03ec2c749847ad2" title="Returns the colour associated with a given image.">getColour</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a824f0021358b88c7f1172d7dece95948">BitmapStore::CLAIMED_CHECKPOINT</a>));
+<a name="l00090"></a>00090 }
+<a name="l00091"></a>00091
+<a name="l00095"></a><a class="code" href="presentation_tests_8cpp.html#a09481990af46ae9fd4cced79cce78953">00095</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a>, exceptionOnBadResolution)
+<a name="l00096"></a>00096 {
+<a name="l00097"></a>00097 <span class="comment">//resolution should be unsupported on most displays</span>
+<a name="l00098"></a>00098 <span class="keywordtype">int</span> badWidth = 1000;
+<a name="l00099"></a>00099 <span class="keywordtype">int</span> badHeight = 5;
+<a name="l00100"></a>00100
+<a name="l00101"></a>00101 EXPECT_ANY_THROW(<a class="code" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a>(badWidth, badHeight, <span class="keyword">true</span>));
+<a name="l00102"></a>00102 }
+<a name="l00106"></a><a class="code" href="presentation_tests_8cpp.html#a52ee17980b74b96293db8c102b8245c0">00106</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a>, noExceptionOnWindowed)
+<a name="l00107"></a>00107 {
+<a name="l00108"></a>00108 <span class="keywordtype">int</span> badWidth = 1000;
+<a name="l00109"></a>00109 <span class="keywordtype">int</span> badHeight = 5;
+<a name="l00110"></a>00110
+<a name="l00111"></a>00111 EXPECT_NO_THROW(<a class="code" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a>(badWidth, badHeight, <span class="keyword">false</span>));
+<a name="l00112"></a>00112
+<a name="l00113"></a>00113 }
+<a name="l00117"></a><a class="code" href="presentation_tests_8cpp.html#a2f96180c4b643bba6a3e9c97a9467f8f">00117</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a>, noExceptionOnGoodResolution)
+<a name="l00118"></a>00118 {
+<a name="l00119"></a>00119 <span class="comment">//resolution should be supported on most monitors</span>
+<a name="l00120"></a>00120 <span class="keywordtype">int</span> goodWidth = 800;
+<a name="l00121"></a>00121 <span class="keywordtype">int</span> goodHeight = 600;
+<a name="l00122"></a>00122
+<a name="l00123"></a>00123 EXPECT_NO_THROW(<a class="code" href="class_screen.html" title="Class for creating a window on the screen.">Screen</a>(goodWidth, goodHeight, <span class="keyword">true</span>));
+<a name="l00124"></a>00124 }
+<a name="l00125"></a>00125
+<a name="l00129"></a><a class="code" href="presentation_tests_8cpp.html#ac0685cd3085971f9d09b22ed8563d766">00129</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a>, drawingToCurrentBackBuffer)
+<a name="l00130"></a>00130 {
+<a name="l00131"></a>00131 al_init();
+<a name="l00132"></a>00132
+<a name="l00133"></a>00133 ALLEGRO_BITMAP* testBitmapBack = al_create_bitmap(500,500);
+<a name="l00134"></a>00134 ALLEGRO_BITMAP* testBitmapFront = al_create_bitmap(500,500);
+<a name="l00135"></a>00135
+<a name="l00136"></a>00136 ALLEGRO_COLOR blankColour = al_map_rgb(0,0,0);
+<a name="l00137"></a>00137 al_set_target_bitmap(testBitmapBack);
+<a name="l00138"></a>00138 al_clear_to_color(blankColour);
+<a name="l00139"></a>00139 al_set_target_bitmap(testBitmapFront);
+<a name="l00140"></a>00140 al_clear_to_color(blankColour);
+<a name="l00141"></a>00141
+<a name="l00142"></a>00142 <a class="code" href="class_game_panel.html" title="ScreenPanel to be drawn on the screen to draw the area where the game takes place.">GamePanel</a> testPanel(testBitmapBack, testBitmapFront, 0, 0, 500, 500);
+<a name="l00143"></a>00143 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze;
+<a name="l00144"></a>00144
+<a name="l00145"></a>00145 vector&lt;pair&lt;int,int&gt; &gt; wallsFull;
+<a name="l00146"></a>00146
+<a name="l00147"></a>00147 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x=0; x&lt;20; ++x)
+<a name="l00148"></a>00148 {
+<a name="l00149"></a>00149 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> y=0; y&lt;20; ++y)
+<a name="l00150"></a>00150 {
+<a name="l00151"></a>00151 wallsFull.push_back(make_pair(x,y));
+<a name="l00152"></a>00152 }
+<a name="l00153"></a>00153 }
+<a name="l00154"></a>00154 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(wallsFull,20,20);
+<a name="l00155"></a>00155
+<a name="l00156"></a>00156 list&lt;PlayerCar&gt; players;
+<a name="l00157"></a>00157 list&lt;EnemyCar&gt; enemies;
+<a name="l00158"></a>00158 list&lt;Checkpoint&gt; checkpoints;
+<a name="l00159"></a>00159 list&lt;Rock&gt; rocks;
+<a name="l00160"></a>00160 list&lt;Smokescreen&gt; smokescreens;
+<a name="l00161"></a>00161 list&lt;DestroyedObjectPopup&gt; popups;
+<a name="l00162"></a>00162
+<a name="l00163"></a>00163 testPanel.<a class="code" href="class_game_panel.html#ab093fb770fa8b46ee863947259c72abd" title="Draws the given objects on the screen.">draw</a>(testMaze, players, enemies, checkpoints, rocks, smokescreens, popups);
+<a name="l00164"></a>00164
+<a name="l00165"></a>00165 <a class="code" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a> bitmapStore(50);
+<a name="l00166"></a>00166 ALLEGRO_BITMAP* wall = bitmapStore.<a class="code" href="class_bitmap_store.html#aadd437c869c5856c36d920dfafbc6ee4" title="Function to get image for drawing to the screen.">getBitmap</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386ae662e77b349a8e22c5826ef35b1b5d9a">BitmapStore::MAZE_WALL</a>);
+<a name="l00167"></a>00167 ALLEGRO_COLOR mazeColour = al_get_pixel(wall, 25, 25);
+<a name="l00168"></a>00168
+<a name="l00169"></a>00169 ALLEGRO_COLOR backSample = al_get_pixel(testBitmapBack, 250, 250);
+<a name="l00170"></a>00170 ALLEGRO_COLOR frontSample = al_get_pixel(testBitmapFront, 250, 250);
+<a name="l00171"></a>00171
+<a name="l00172"></a>00172 EXPECT_FLOAT_EQ(mazeColour.r, backSample.r);
+<a name="l00173"></a>00173 EXPECT_FLOAT_EQ(mazeColour.g, backSample.g);
+<a name="l00174"></a>00174 EXPECT_FLOAT_EQ(mazeColour.b, backSample.b);
+<a name="l00175"></a>00175 EXPECT_FLOAT_EQ(mazeColour.a, backSample.a);
+<a name="l00176"></a>00176
+<a name="l00177"></a>00177 EXPECT_FLOAT_EQ(blankColour.r, frontSample.r);
+<a name="l00178"></a>00178 EXPECT_FLOAT_EQ(blankColour.g, frontSample.g);
+<a name="l00179"></a>00179 EXPECT_FLOAT_EQ(blankColour.b, frontSample.b);
+<a name="l00180"></a>00180 EXPECT_FLOAT_EQ(blankColour.a, frontSample.a);
+<a name="l00181"></a>00181
+<a name="l00182"></a>00182 al_destroy_bitmap(testBitmapBack);
+<a name="l00183"></a>00183 al_destroy_bitmap(testBitmapFront);
+<a name="l00184"></a>00184 }
+<a name="l00185"></a>00185
+<a name="l00189"></a><a class="code" href="presentation_tests_8cpp.html#a8b8a615a5a6ef5da97b81d626fba41eb">00189</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_screen_panel.html" title="Parent class for panels that are drawn on the screen.">ScreenPanel</a>, drawingToCurrentBackBufferAfterFlip)
+<a name="l00190"></a>00190 {
+<a name="l00191"></a>00191 al_init();
+<a name="l00192"></a>00192
+<a name="l00193"></a>00193 al_set_new_bitmap_flags(ALLEGRO_MEMORY_BITMAP); <span class="comment">//removes dependency on display existing</span>
+<a name="l00194"></a>00194
+<a name="l00195"></a>00195 ALLEGRO_BITMAP* testBitmapBack = al_create_bitmap(500,500);
+<a name="l00196"></a>00196 ALLEGRO_BITMAP* testBitmapFront = al_create_bitmap(500,500);
+<a name="l00197"></a>00197
+<a name="l00198"></a>00198 ALLEGRO_COLOR blankColour = al_map_rgb(0,0,0);
+<a name="l00199"></a>00199 al_set_target_bitmap(testBitmapBack);
+<a name="l00200"></a>00200 al_clear_to_color(blankColour);
+<a name="l00201"></a>00201 al_set_target_bitmap(testBitmapFront);
+<a name="l00202"></a>00202 al_clear_to_color(blankColour);
+<a name="l00203"></a>00203
+<a name="l00204"></a>00204 <a class="code" href="class_game_panel.html" title="ScreenPanel to be drawn on the screen to draw the area where the game takes place.">GamePanel</a> testPanel(testBitmapBack, testBitmapFront, 0, 0, 500, 500);
+<a name="l00205"></a>00205 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze;
+<a name="l00206"></a>00206
+<a name="l00207"></a>00207 vector&lt;pair&lt;int,int&gt; &gt; wallsFull;
+<a name="l00208"></a>00208
+<a name="l00209"></a>00209 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x=0; x&lt;20; ++x)
+<a name="l00210"></a>00210 {
+<a name="l00211"></a>00211 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> y=0; y&lt;20; ++y)
+<a name="l00212"></a>00212 {
+<a name="l00213"></a>00213 wallsFull.push_back(make_pair(x,y));
+<a name="l00214"></a>00214 }
+<a name="l00215"></a>00215 }
+<a name="l00216"></a>00216 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(wallsFull,20,20);
+<a name="l00217"></a>00217
+<a name="l00218"></a>00218 list&lt;PlayerCar&gt; players;
+<a name="l00219"></a>00219 list&lt;EnemyCar&gt; enemies;
+<a name="l00220"></a>00220 list&lt;Checkpoint&gt; checkpoints;
+<a name="l00221"></a>00221 list&lt;Rock&gt; rocks;
+<a name="l00222"></a>00222 list&lt;Smokescreen&gt; smokescreens;
+<a name="l00223"></a>00223 list&lt;DestroyedObjectPopup&gt; popups;
+<a name="l00224"></a>00224
+<a name="l00225"></a>00225 testPanel.<a class="code" href="class_screen_panel.html#ab701d3888b13463d200be112f0eb4d82" title="Swaps the front and back buffers.">flip</a>();
+<a name="l00226"></a>00226
+<a name="l00227"></a>00227 testPanel.<a class="code" href="class_game_panel.html#ab093fb770fa8b46ee863947259c72abd" title="Draws the given objects on the screen.">draw</a>(testMaze, players, enemies, checkpoints, rocks, smokescreens, popups);
+<a name="l00228"></a>00228
+<a name="l00229"></a>00229 <a class="code" href="class_bitmap_store.html" title="Class for accessing images in ALLEGRO_BITMAP format and low level drawing.">BitmapStore</a> bitmapStore(50);
+<a name="l00230"></a>00230 ALLEGRO_BITMAP* wall = bitmapStore.<a class="code" href="class_bitmap_store.html#aadd437c869c5856c36d920dfafbc6ee4" title="Function to get image for drawing to the screen.">getBitmap</a>(<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386ae662e77b349a8e22c5826ef35b1b5d9a">BitmapStore::MAZE_WALL</a>);
+<a name="l00231"></a>00231 ALLEGRO_COLOR mazeColour = al_get_pixel(wall, 25, 25);
+<a name="l00232"></a>00232
+<a name="l00233"></a>00233 ALLEGRO_COLOR backSample = al_get_pixel(testBitmapBack, 250, 250);
+<a name="l00234"></a>00234 ALLEGRO_COLOR frontSample = al_get_pixel(testBitmapFront, 250, 250);
+<a name="l00235"></a>00235
+<a name="l00236"></a>00236 EXPECT_FLOAT_EQ(mazeColour.r, frontSample.r);
+<a name="l00237"></a>00237 EXPECT_FLOAT_EQ(mazeColour.g, frontSample.g);
+<a name="l00238"></a>00238 EXPECT_FLOAT_EQ(mazeColour.b, frontSample.b);
+<a name="l00239"></a>00239 EXPECT_FLOAT_EQ(mazeColour.a, frontSample.a);
+<a name="l00240"></a>00240
+<a name="l00241"></a>00241 EXPECT_FLOAT_EQ(blankColour.r, backSample.r);
+<a name="l00242"></a>00242 EXPECT_FLOAT_EQ(blankColour.g, backSample.g);
+<a name="l00243"></a>00243 EXPECT_FLOAT_EQ(blankColour.b, backSample.b);
+<a name="l00244"></a>00244 EXPECT_FLOAT_EQ(blankColour.a, backSample.a);
+<a name="l00245"></a>00245
+<a name="l00246"></a>00246 al_destroy_bitmap(testBitmapBack);
+<a name="l00247"></a>00247 al_destroy_bitmap(testBitmapFront);
+<a name="l00248"></a>00248 }
+</pre></div></div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>
diff --git a/docs/html/search/all_5f.html b/docs/html/search/all_5f.html
new file mode 100644
index 0000000..24a1857
--- /dev/null
+++ b/docs/html/search/all_5f.html
@@ -0,0 +1,487 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR__5fallegro">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR__5fallegro')">_allegro</a>
+ <div class="SRChildren">
+ <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../class_allegro_keyboard_init.html#af8655fcd2e20750f965e55304500bc3b" target="_parent">AllegroKeyboardInit::_allegro()</a>
+ <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../class_allegro_drawing_init.html#a8254ecb9b3ad13409ff1ec1cfeee66ef" target="_parent">AllegroDrawingInit::_allegro()</a>
+ <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../class_game.html#a3bbe8c0dadbdf9e9e1d499f10509ef4e" target="_parent">Game::_allegro()</a>
+ <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../class_game_panel.html#a18c100c8d9ae2601a97083485d937418" target="_parent">GamePanel::_allegro()</a>
+ <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../class_screen.html#ae0863416022fcb59189d2aefd3345621" target="_parent">Screen::_allegro()</a>
+ <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../class_screen_panel.html#a3877f04c03866e35588f0b753ee7c485" target="_parent">ScreenPanel::_allegro()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fback">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_screen_panel.html#a1a3ec8e60be5d5cede210171bda33468" target="_parent">_back</a>
+ <span class="SRScope">ScreenPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fbasespeed">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../class_car.html#a7b942584de02f8af6f571a60a1cf32ba" target="_parent">_baseSpeed</a>
+ <span class="SRScope">Car</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fbitmapfont">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../class_bitmap_store.html#a0c73c3c20f8093c83707cde15c4fed5f" target="_parent">_bitmapFont</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fbitmaps">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../class_bitmap_store.html#ae3d18969f61f97fce6622cb6f7004711" target="_parent">_bitmaps</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fbitmapstore">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../class_game_panel.html#a0125ff874ffebadc15c7678210914a8c" target="_parent">_bitmapStore</a>
+ <span class="SRScope">GamePanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fblockwidth">
+ <div class="SREntry">
+ <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" target="_parent">_blockWidth</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fcheckpointcount">
+ <div class="SREntry">
+ <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../class_checkpoint.html#acb3ffc612d2a496b6b95752878818ff6" target="_parent">_checkpointCount</a>
+ <span class="SRScope">Checkpoint</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fcheckpointheadingy">
+ <div class="SREntry">
+ <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="../class_info_panel.html#a7ec514286dbf2fb43f64acd620397e21" target="_parent">_checkpointHeadingY</a>
+ <span class="SRScope">InfoPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fcheckpoints">
+ <div class="SREntry">
+ <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="../class_game.html#a856252e94c580f59b926affc7d45b4bf" target="_parent">_checkpoints</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fcheckpointvaluey">
+ <div class="SREntry">
+ <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="../class_info_panel.html#ad118b5f123e590a95b3f390fd9597f02" target="_parent">_checkpointValueY</a>
+ <span class="SRScope">InfoPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fcollisiondetector">
+ <div class="SREntry">
+ <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="../class_game.html#ab88620fda0d1fa729dcab6013e8f1efc" target="_parent">_collisionDetector</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fcolours">
+ <div class="SREntry">
+ <a id="Item12" onkeydown="return searchResults.Nav(event,12)" onkeypress="return searchResults.Nav(event,12)" onkeyup="return searchResults.Nav(event,12)" class="SRSymbol" href="../class_colour_store.html#acb64b1ffc465fa752a2f282da4c9afba" target="_parent">_colours</a>
+ <span class="SRScope">ColourStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fcolourstore">
+ <div class="SREntry">
+ <a id="Item13" onkeydown="return searchResults.Nav(event,13)" onkeypress="return searchResults.Nav(event,13)" onkeyup="return searchResults.Nav(event,13)" class="SRSymbol" href="../class_info_panel.html#a27ac079ed1a39ae672b6ceb9e0974855" target="_parent">_colourStore</a>
+ <span class="SRScope">InfoPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fconfig">
+ <div class="SREntry">
+ <a id="Item14" onkeydown="return searchResults.Nav(event,14)" onkeypress="return searchResults.Nav(event,14)" onkeyup="return searchResults.Nav(event,14)" class="SRSymbol" href="../class_game.html#aa60fe2dc0d1d53ebf49c2d87af6ee2d5" target="_parent">_config</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fdestroyed">
+ <div class="SREntry">
+ <a id="Item15" onkeydown="return searchResults.Nav(event,15)" onkeypress="return searchResults.Nav(event,15)" onkeyup="return searchResults.Nav(event,15)" class="SRSymbol" href="../class_game_object.html#adc4a399cc59d5706f75748fb3846faec" target="_parent">_destroyed</a>
+ <span class="SRScope">GameObject</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fdisplay">
+ <div class="SREntry">
+ <a id="Item16" onkeydown="return searchResults.Nav(event,16)" onkeypress="return searchResults.Nav(event,16)" onkeyup="return searchResults.Nav(event,16)" class="SRSymbol" href="../class_screen.html#a4972e24cf3677e51b18feac34a563ba0" target="_parent">_display</a>
+ <span class="SRScope">Screen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fdown">
+ <div class="SREntry">
+ <a id="Item17" onkeydown="return searchResults.Nav(event,17)" onkeypress="return searchResults.Nav(event,17)" onkeyup="return searchResults.Nav(event,17)" class="SRSymbol" href="../class_keyboard_handler.html#aa6d1c75e1a98d4aae96d8ac1c8aaa539" target="_parent">_down</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fdrawing">
+ <div class="SREntry">
+ <a id="Item18" onkeydown="return searchResults.Nav(event,18)" onkeypress="return searchResults.Nav(event,18)" onkeyup="return searchResults.Nav(event,18)" class="SRSymbol" href="javascript:searchResults.Toggle('SR__5fdrawing')">_drawing</a>
+ <div class="SRChildren">
+ <a id="Item18_c0" onkeydown="return searchResults.NavChild(event,18,0)" onkeypress="return searchResults.NavChild(event,18,0)" onkeyup="return searchResults.NavChild(event,18,0)" class="SRScope" href="../class_info_panel.html#a589359c67b30af50338791f8af0e05e0" target="_parent">InfoPanel::_drawing()</a>
+ <a id="Item18_c1" onkeydown="return searchResults.NavChild(event,18,1)" onkeypress="return searchResults.NavChild(event,18,1)" onkeyup="return searchResults.NavChild(event,18,1)" class="SRScope" href="../class_screen.html#a2dafde8aecbd3bc3c4394f36df913b64" target="_parent">Screen::_drawing()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fdrawinginstalls">
+ <div class="SREntry">
+ <a id="Item19" onkeydown="return searchResults.Nav(event,19)" onkeypress="return searchResults.Nav(event,19)" onkeyup="return searchResults.Nav(event,19)" class="SRSymbol" href="../class_bitmap_store.html#a12f738a24033673278a496c1aa5abcc8" target="_parent">_drawingInstalls</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fenemies">
+ <div class="SREntry">
+ <a id="Item20" onkeydown="return searchResults.Nav(event,20)" onkeypress="return searchResults.Nav(event,20)" onkeyup="return searchResults.Nav(event,20)" class="SRSymbol" href="../class_game.html#afbd3e358076a6cf2e72faefe1c202df9" target="_parent">_enemies</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fexitclicked">
+ <div class="SREntry">
+ <a id="Item21" onkeydown="return searchResults.Nav(event,21)" onkeypress="return searchResults.Nav(event,21)" onkeyup="return searchResults.Nav(event,21)" class="SRSymbol" href="../class_screen.html#ae7f213f79bf9680e0ff3f4b52ebf051f" target="_parent">_exitClicked</a>
+ <span class="SRScope">Screen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5ffacing">
+ <div class="SREntry">
+ <a id="Item22" onkeydown="return searchResults.Nav(event,22)" onkeypress="return searchResults.Nav(event,22)" onkeyup="return searchResults.Nav(event,22)" class="SRSymbol" href="../class_game_object.html#a24d36b1a64504298700a7ae7111fad5d" target="_parent">_facing</a>
+ <span class="SRScope">GameObject</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5ffilename">
+ <div class="SREntry">
+ <a id="Item23" onkeydown="return searchResults.Nav(event,23)" onkeypress="return searchResults.Nav(event,23)" onkeyup="return searchResults.Nav(event,23)" class="SRSymbol" href="../class_level_reader.html#a233910d4cd16ff624d76b06ca8071f7e" target="_parent">_filename</a>
+ <span class="SRScope">LevelReader</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5ffont">
+ <div class="SREntry">
+ <a id="Item24" onkeydown="return searchResults.Nav(event,24)" onkeypress="return searchResults.Nav(event,24)" onkeyup="return searchResults.Nav(event,24)" class="SRSymbol" href="../class_screen.html#a42a627863a8f9d1529278cb060d4102b" target="_parent">_font</a>
+ <span class="SRScope">Screen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5ffront">
+ <div class="SREntry">
+ <a id="Item25" onkeydown="return searchResults.Nav(event,25)" onkeypress="return searchResults.Nav(event,25)" onkeyup="return searchResults.Nav(event,25)" class="SRSymbol" href="../class_screen_panel.html#a0a3232c41ca107b2cceee73aa0e0d7fe" target="_parent">_front</a>
+ <span class="SRScope">ScreenPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5ffullscreen">
+ <div class="SREntry">
+ <a id="Item26" onkeydown="return searchResults.Nav(event,26)" onkeypress="return searchResults.Nav(event,26)" onkeyup="return searchResults.Nav(event,26)" class="SRSymbol" href="../class_config.html#ad6fddaaf52742adcba95155b3635e807" target="_parent">_fullscreen</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fgameareawidth">
+ <div class="SREntry">
+ <a id="Item27" onkeydown="return searchResults.Nav(event,27)" onkeypress="return searchResults.Nav(event,27)" onkeyup="return searchResults.Nav(event,27)" class="SRSymbol" href="../class_screen.html#a7cba9fb0069d763055ef351452a15227" target="_parent">_gameAreaWidth</a>
+ <span class="SRScope">Screen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fheight">
+ <div class="SREntry">
+ <a id="Item28" onkeydown="return searchResults.Nav(event,28)" onkeypress="return searchResults.Nav(event,28)" onkeyup="return searchResults.Nav(event,28)" class="SRSymbol" href="javascript:searchResults.Toggle('SR__5fheight')">_height</a>
+ <div class="SRChildren">
+ <a id="Item28_c0" onkeydown="return searchResults.NavChild(event,28,0)" onkeypress="return searchResults.NavChild(event,28,0)" onkeyup="return searchResults.NavChild(event,28,0)" class="SRScope" href="../class_maze.html#a02f1ff55e76161495bbe11bc4c0e5f54" target="_parent">Maze::_height()</a>
+ <a id="Item28_c1" onkeydown="return searchResults.NavChild(event,28,1)" onkeypress="return searchResults.NavChild(event,28,1)" onkeyup="return searchResults.NavChild(event,28,1)" class="SRScope" href="../class_screen_panel.html#a4f6dd5c7ca10d51bface7b1ddedc236c" target="_parent">ScreenPanel::_height()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fimage">
+ <div class="SREntry">
+ <a id="Item29" onkeydown="return searchResults.Nav(event,29)" onkeypress="return searchResults.Nav(event,29)" onkeyup="return searchResults.Nav(event,29)" class="SRSymbol" href="../class_game_object.html#a8b0aa105507a8a9559bbc2a66198ccd6" target="_parent">_image</a>
+ <span class="SRScope">GameObject</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5finfopanelwidth">
+ <div class="SREntry">
+ <a id="Item30" onkeydown="return searchResults.Nav(event,30)" onkeypress="return searchResults.Nav(event,30)" onkeyup="return searchResults.Nav(event,30)" class="SRSymbol" href="../class_screen.html#ab895e588a89e1943303487d47a2b9216" target="_parent">_infoPanelWidth</a>
+ <span class="SRScope">Screen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5finitcount">
+ <div class="SREntry">
+ <a id="Item31" onkeydown="return searchResults.Nav(event,31)" onkeypress="return searchResults.Nav(event,31)" onkeyup="return searchResults.Nav(event,31)" class="SRSymbol" href="javascript:searchResults.Toggle('SR__5finitcount')">_initCount</a>
+ <div class="SRChildren">
+ <a id="Item31_c0" onkeydown="return searchResults.NavChild(event,31,0)" onkeypress="return searchResults.NavChild(event,31,0)" onkeyup="return searchResults.NavChild(event,31,0)" class="SRScope" href="../class_allegro_init.html#ab8d20b549d0b996dde5cdbe8acd7186c" target="_parent">AllegroInit::_initCount()</a>
+ <a id="Item31_c1" onkeydown="return searchResults.NavChild(event,31,1)" onkeypress="return searchResults.NavChild(event,31,1)" onkeyup="return searchResults.NavChild(event,31,1)" class="SRScope" href="../class_allegro_keyboard_init.html#ac7f75bcc5cb56a1c2f4e9ce653d9dfd7" target="_parent">AllegroKeyboardInit::_initCount()</a>
+ <a id="Item31_c2" onkeydown="return searchResults.NavChild(event,31,2)" onkeypress="return searchResults.NavChild(event,31,2)" onkeyup="return searchResults.NavChild(event,31,2)" class="SRScope" href="../class_allegro_drawing_init.html#a78e8f792c6dba89eddf42e74d4a3d577" target="_parent">AllegroDrawingInit::_initCount()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR__5finput">
+ <div class="SREntry">
+ <a id="Item32" onkeydown="return searchResults.Nav(event,32)" onkeypress="return searchResults.Nav(event,32)" onkeyup="return searchResults.Nav(event,32)" class="SRSymbol" href="../class_player_car.html#a5f8477ebd7de6298151ed70fbb9ffa4f" target="_parent">_input</a>
+ <span class="SRScope">PlayerCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fkeyboard">
+ <div class="SREntry">
+ <a id="Item33" onkeydown="return searchResults.Nav(event,33)" onkeypress="return searchResults.Nav(event,33)" onkeyup="return searchResults.Nav(event,33)" class="SRSymbol" href="javascript:searchResults.Toggle('SR__5fkeyboard')">_keyboard</a>
+ <div class="SRChildren">
+ <a id="Item33_c0" onkeydown="return searchResults.NavChild(event,33,0)" onkeypress="return searchResults.NavChild(event,33,0)" onkeyup="return searchResults.NavChild(event,33,0)" class="SRScope" href="../class_keyboard_handler.html#a0ec33ec0de48e563e9137294fb7577da" target="_parent">KeyboardHandler::_keyboard()</a>
+ <a id="Item33_c1" onkeydown="return searchResults.NavChild(event,33,1)" onkeypress="return searchResults.NavChild(event,33,1)" onkeyup="return searchResults.NavChild(event,33,1)" class="SRScope" href="../class_screen.html#a0c5cff1b93dae4d559a81d261a8bcee6" target="_parent">Screen::_keyboard()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fkeyboardevents">
+ <div class="SREntry">
+ <a id="Item34" onkeydown="return searchResults.Nav(event,34)" onkeypress="return searchResults.Nav(event,34)" onkeyup="return searchResults.Nav(event,34)" class="SRSymbol" href="../class_keyboard_handler.html#a44116ed8745f3a3360e1d7c29ea86d56" target="_parent">_keyboardEvents</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fleft">
+ <div class="SREntry">
+ <a id="Item35" onkeydown="return searchResults.Nav(event,35)" onkeypress="return searchResults.Nav(event,35)" onkeyup="return searchResults.Nav(event,35)" class="SRSymbol" href="../class_keyboard_handler.html#a3bc780470d7cbaf9f4ea239e0613ce3c" target="_parent">_left</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fmaze">
+ <div class="SREntry">
+ <a id="Item36" onkeydown="return searchResults.Nav(event,36)" onkeypress="return searchResults.Nav(event,36)" onkeyup="return searchResults.Nav(event,36)" class="SRSymbol" href="../class_game.html#a33457b2c7fa4f43b89e54ce9c5ac6f83" target="_parent">_maze</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fmazeblockwidth">
+ <div class="SREntry">
+ <a id="Item37" onkeydown="return searchResults.Nav(event,37)" onkeypress="return searchResults.Nav(event,37)" onkeyup="return searchResults.Nav(event,37)" class="SRSymbol" href="../class_game_panel.html#a4889f5f6e1ad713be455d4f69a2cda96" target="_parent">_mazeblockWidth</a>
+ <span class="SRScope">GamePanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fminimazeblockwidth">
+ <div class="SREntry">
+ <a id="Item38" onkeydown="return searchResults.Nav(event,38)" onkeypress="return searchResults.Nav(event,38)" onkeyup="return searchResults.Nav(event,38)" class="SRSymbol" href="../class_info_panel.html#abb211fac23293e41f23b86fd70df98f0" target="_parent">_miniMazeblockWidth</a>
+ <span class="SRScope">InfoPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fminimazeheight">
+ <div class="SREntry">
+ <a id="Item39" onkeydown="return searchResults.Nav(event,39)" onkeypress="return searchResults.Nav(event,39)" onkeyup="return searchResults.Nav(event,39)" class="SRSymbol" href="../class_info_panel.html#ad38206daa42c82b45878e6d0c55f2860" target="_parent">_miniMazeHeight</a>
+ <span class="SRScope">InfoPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fminimazey">
+ <div class="SREntry">
+ <a id="Item40" onkeydown="return searchResults.Nav(event,40)" onkeypress="return searchResults.Nav(event,40)" onkeyup="return searchResults.Nav(event,40)" class="SRSymbol" href="../class_info_panel.html#a7b4bb6cca8549d6a1d1deccc99994b9b" target="_parent">_miniMazeY</a>
+ <span class="SRScope">InfoPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5foffsetx">
+ <div class="SREntry">
+ <a id="Item41" onkeydown="return searchResults.Nav(event,41)" onkeypress="return searchResults.Nav(event,41)" onkeyup="return searchResults.Nav(event,41)" class="SRSymbol" href="../class_game_panel.html#afe99f100b68ec2475cb0a509887b63a9" target="_parent">_offsetX</a>
+ <span class="SRScope">GamePanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5foffsety">
+ <div class="SREntry">
+ <a id="Item42" onkeydown="return searchResults.Nav(event,42)" onkeypress="return searchResults.Nav(event,42)" onkeyup="return searchResults.Nav(event,42)" class="SRSymbol" href="../class_game_panel.html#af3354addd707cb42b078dbe2ef29e189" target="_parent">_offsetY</a>
+ <span class="SRScope">GamePanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fpanelfont">
+ <div class="SREntry">
+ <a id="Item43" onkeydown="return searchResults.Nav(event,43)" onkeypress="return searchResults.Nav(event,43)" onkeyup="return searchResults.Nav(event,43)" class="SRSymbol" href="../class_info_panel.html#a38d023a2b00eafa303de37550cb96817" target="_parent">_panelFont</a>
+ <span class="SRScope">InfoPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fpanels">
+ <div class="SREntry">
+ <a id="Item44" onkeydown="return searchResults.Nav(event,44)" onkeypress="return searchResults.Nav(event,44)" onkeyup="return searchResults.Nav(event,44)" class="SRSymbol" href="../class_screen.html#a30ba66122613181e312e0d7586d2a814" target="_parent">_panels</a>
+ <span class="SRScope">Screen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fpetrol">
+ <div class="SREntry">
+ <a id="Item45" onkeydown="return searchResults.Nav(event,45)" onkeypress="return searchResults.Nav(event,45)" onkeyup="return searchResults.Nav(event,45)" class="SRSymbol" href="../class_player_car.html#a51f836c3619c42df7762d440e8007010" target="_parent">_petrol</a>
+ <span class="SRScope">PlayerCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fpetrolguageheight">
+ <div class="SREntry">
+ <a id="Item46" onkeydown="return searchResults.Nav(event,46)" onkeypress="return searchResults.Nav(event,46)" onkeyup="return searchResults.Nav(event,46)" class="SRSymbol" href="../class_info_panel.html#a0c85348f8471d86da73772f86a62f84c" target="_parent">_petrolGuageHeight</a>
+ <span class="SRScope">InfoPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fpetrolguagey">
+ <div class="SREntry">
+ <a id="Item47" onkeydown="return searchResults.Nav(event,47)" onkeypress="return searchResults.Nav(event,47)" onkeyup="return searchResults.Nav(event,47)" class="SRSymbol" href="../class_info_panel.html#a29976100c8fc5c130be713dfb5c2807e" target="_parent">_petrolGuageY</a>
+ <span class="SRScope">InfoPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fpetrolheadingy">
+ <div class="SREntry">
+ <a id="Item48" onkeydown="return searchResults.Nav(event,48)" onkeypress="return searchResults.Nav(event,48)" onkeyup="return searchResults.Nav(event,48)" class="SRSymbol" href="../class_info_panel.html#a5ab76703538ad6e396a21ea8fb47d23d" target="_parent">_petrolHeadingY</a>
+ <span class="SRScope">InfoPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fplayers">
+ <div class="SREntry">
+ <a id="Item49" onkeydown="return searchResults.Nav(event,49)" onkeypress="return searchResults.Nav(event,49)" onkeyup="return searchResults.Nav(event,49)" class="SRSymbol" href="../class_game.html#a75bf3282da1519766a6b75e2d83293ac" target="_parent">_players</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fpopups">
+ <div class="SREntry">
+ <a id="Item50" onkeydown="return searchResults.Nav(event,50)" onkeypress="return searchResults.Nav(event,50)" onkeyup="return searchResults.Nav(event,50)" class="SRSymbol" href="../class_game.html#a9bea5a0ee430443effa418d42a903f83" target="_parent">_popups</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fpreviousfacing">
+ <div class="SREntry">
+ <a id="Item51" onkeydown="return searchResults.Nav(event,51)" onkeypress="return searchResults.Nav(event,51)" onkeyup="return searchResults.Nav(event,51)" class="SRSymbol" href="../class_keyboard_handler.html#a90120a85c62481b3a2c0330511cffbac" target="_parent">_previousFacing</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fremainingtime">
+ <div class="SREntry">
+ <a id="Item52" onkeydown="return searchResults.Nav(event,52)" onkeypress="return searchResults.Nav(event,52)" onkeyup="return searchResults.Nav(event,52)" class="SRSymbol" href="../class_limited_time_object.html#a0b6a4bb0c76b637fba1db498ce084d3a" target="_parent">_remainingTime</a>
+ <span class="SRScope">LimitedTimeObject</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fright">
+ <div class="SREntry">
+ <a id="Item53" onkeydown="return searchResults.Nav(event,53)" onkeypress="return searchResults.Nav(event,53)" onkeyup="return searchResults.Nav(event,53)" class="SRSymbol" href="../class_keyboard_handler.html#a81d37831d958ff21c2ce08cfa97ca420" target="_parent">_right</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5frocks">
+ <div class="SREntry">
+ <a id="Item54" onkeydown="return searchResults.Nav(event,54)" onkeypress="return searchResults.Nav(event,54)" onkeyup="return searchResults.Nav(event,54)" class="SRSymbol" href="../class_game.html#a9f14643bfc4d595dc7dfa3160a59d71b" target="_parent">_rocks</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fscreen">
+ <div class="SREntry">
+ <a id="Item55" onkeydown="return searchResults.Nav(event,55)" onkeypress="return searchResults.Nav(event,55)" onkeyup="return searchResults.Nav(event,55)" class="SRSymbol" href="../class_game.html#a9bc904a37fe9b3e85a597b6b5c6a66d5" target="_parent">_screen</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fscreenheight">
+ <div class="SREntry">
+ <a id="Item56" onkeydown="return searchResults.Nav(event,56)" onkeypress="return searchResults.Nav(event,56)" onkeyup="return searchResults.Nav(event,56)" class="SRSymbol" href="javascript:searchResults.Toggle('SR__5fscreenheight')">_screenHeight</a>
+ <div class="SRChildren">
+ <a id="Item56_c0" onkeydown="return searchResults.NavChild(event,56,0)" onkeypress="return searchResults.NavChild(event,56,0)" onkeyup="return searchResults.NavChild(event,56,0)" class="SRScope" href="../class_config.html#ac27364c75bc8d5e82119988df85c1599" target="_parent">Config::_screenHeight()</a>
+ <a id="Item56_c1" onkeydown="return searchResults.NavChild(event,56,1)" onkeypress="return searchResults.NavChild(event,56,1)" onkeyup="return searchResults.NavChild(event,56,1)" class="SRScope" href="../class_screen.html#a8784c86e10d2b6af0dd99d710f3955e9" target="_parent">Screen::_screenHeight()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fscreenwidth">
+ <div class="SREntry">
+ <a id="Item57" onkeydown="return searchResults.Nav(event,57)" onkeypress="return searchResults.Nav(event,57)" onkeyup="return searchResults.Nav(event,57)" class="SRSymbol" href="javascript:searchResults.Toggle('SR__5fscreenwidth')">_screenWidth</a>
+ <div class="SRChildren">
+ <a id="Item57_c0" onkeydown="return searchResults.NavChild(event,57,0)" onkeypress="return searchResults.NavChild(event,57,0)" onkeyup="return searchResults.NavChild(event,57,0)" class="SRScope" href="../class_config.html#a46dce43903bb24bac8c2ffc92f2ee4da" target="_parent">Config::_screenWidth()</a>
+ <a id="Item57_c1" onkeydown="return searchResults.NavChild(event,57,1)" onkeypress="return searchResults.NavChild(event,57,1)" onkeyup="return searchResults.NavChild(event,57,1)" class="SRScope" href="../class_screen.html#a5931238a3eb8cf1a14b0f8b8d7044b65" target="_parent">Screen::_screenWidth()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fsmokescreen">
+ <div class="SREntry">
+ <a id="Item58" onkeydown="return searchResults.Nav(event,58)" onkeypress="return searchResults.Nav(event,58)" onkeyup="return searchResults.Nav(event,58)" class="SRSymbol" href="../class_keyboard_handler.html#a7769dc815c493fb5962d52c3d5bc7b16" target="_parent">_smokescreen</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fsmokescreens">
+ <div class="SREntry">
+ <a id="Item59" onkeydown="return searchResults.Nav(event,59)" onkeypress="return searchResults.Nav(event,59)" onkeyup="return searchResults.Nav(event,59)" class="SRSymbol" href="../class_game.html#a88916ad9e8095b99a9c870a053180c1c" target="_parent">_smokescreens</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fspeed">
+ <div class="SREntry">
+ <a id="Item60" onkeydown="return searchResults.Nav(event,60)" onkeypress="return searchResults.Nav(event,60)" onkeyup="return searchResults.Nav(event,60)" class="SRSymbol" href="../class_car.html#a84b3d05e98d66f358942193ff54dee51" target="_parent">_speed</a>
+ <span class="SRScope">Car</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fstate">
+ <div class="SREntry">
+ <a id="Item61" onkeydown="return searchResults.Nav(event,61)" onkeypress="return searchResults.Nav(event,61)" onkeyup="return searchResults.Nav(event,61)" class="SRSymbol" href="../class_enemy_car.html#a65a1c7b520f043aae27800ced9e8d543" target="_parent">_state</a>
+ <span class="SRScope">EnemyCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5ftargetx">
+ <div class="SREntry">
+ <a id="Item62" onkeydown="return searchResults.Nav(event,62)" onkeypress="return searchResults.Nav(event,62)" onkeyup="return searchResults.Nav(event,62)" class="SRSymbol" href="../class_enemy_car.html#aa84ac6485311c535526ea14d02d98cc9" target="_parent">_targetX</a>
+ <span class="SRScope">EnemyCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5ftargety">
+ <div class="SREntry">
+ <a id="Item63" onkeydown="return searchResults.Nav(event,63)" onkeypress="return searchResults.Nav(event,63)" onkeyup="return searchResults.Nav(event,63)" class="SRSymbol" href="../class_enemy_car.html#a61ff3751123febe8bc9ab24d0763245c" target="_parent">_targetY</a>
+ <span class="SRScope">EnemyCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5ftimer">
+ <div class="SREntry">
+ <a id="Item64" onkeydown="return searchResults.Nav(event,64)" onkeypress="return searchResults.Nav(event,64)" onkeyup="return searchResults.Nav(event,64)" class="SRSymbol" href="../class_game.html#af153fc1d94c473114cfbd63728d21f91" target="_parent">_timer</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5ftimerevents">
+ <div class="SREntry">
+ <a id="Item65" onkeydown="return searchResults.Nav(event,65)" onkeypress="return searchResults.Nav(event,65)" onkeyup="return searchResults.Nav(event,65)" class="SRSymbol" href="../class_game.html#a2b7303df1b6d0163b78c2c306164859f" target="_parent">_timerEvents</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5ftransparent">
+ <div class="SREntry">
+ <a id="Item66" onkeydown="return searchResults.Nav(event,66)" onkeypress="return searchResults.Nav(event,66)" onkeyup="return searchResults.Nav(event,66)" class="SRSymbol" href="../class_colour_store.html#acadd8e6ed32fe6535252c94124df04ca" target="_parent">_transparent</a>
+ <span class="SRScope">ColourStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fup">
+ <div class="SREntry">
+ <a id="Item67" onkeydown="return searchResults.Nav(event,67)" onkeypress="return searchResults.Nav(event,67)" onkeyup="return searchResults.Nav(event,67)" class="SRSymbol" href="../class_keyboard_handler.html#ad323844aad47f1bc263ec2fd4a19ac3a" target="_parent">_up</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fwalllocations">
+ <div class="SREntry">
+ <a id="Item68" onkeydown="return searchResults.Nav(event,68)" onkeypress="return searchResults.Nav(event,68)" onkeyup="return searchResults.Nav(event,68)" class="SRSymbol" href="../class_maze.html#a3f0247841ddb8a6b5b8b5eeff86b754a" target="_parent">_wallLocations</a>
+ <span class="SRScope">Maze</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fwidth">
+ <div class="SREntry">
+ <a id="Item69" onkeydown="return searchResults.Nav(event,69)" onkeypress="return searchResults.Nav(event,69)" onkeyup="return searchResults.Nav(event,69)" class="SRSymbol" href="javascript:searchResults.Toggle('SR__5fwidth')">_width</a>
+ <div class="SRChildren">
+ <a id="Item69_c0" onkeydown="return searchResults.NavChild(event,69,0)" onkeypress="return searchResults.NavChild(event,69,0)" onkeyup="return searchResults.NavChild(event,69,0)" class="SRScope" href="../class_maze.html#a981c764d7ad04ca06bd8dee472578ce4" target="_parent">Maze::_width()</a>
+ <a id="Item69_c1" onkeydown="return searchResults.NavChild(event,69,1)" onkeypress="return searchResults.NavChild(event,69,1)" onkeyup="return searchResults.NavChild(event,69,1)" class="SRScope" href="../class_screen_panel.html#afbbcad2a101b95869dcdef9bf0898f65" target="_parent">ScreenPanel::_width()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fwindowevents">
+ <div class="SREntry">
+ <a id="Item70" onkeydown="return searchResults.Nav(event,70)" onkeypress="return searchResults.Nav(event,70)" onkeyup="return searchResults.Nav(event,70)" class="SRSymbol" href="../class_screen.html#aa4ea622368bdf47a3b22d026048ee83a" target="_parent">_windowEvents</a>
+ <span class="SRScope">Screen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fx">
+ <div class="SREntry">
+ <a id="Item71" onkeydown="return searchResults.Nav(event,71)" onkeypress="return searchResults.Nav(event,71)" onkeyup="return searchResults.Nav(event,71)" class="SRSymbol" href="../class_game_object.html#acc5b8970ff0036786fdd9af621bd1614" target="_parent">_x</a>
+ <span class="SRScope">GameObject</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fy">
+ <div class="SREntry">
+ <a id="Item72" onkeydown="return searchResults.Nav(event,72)" onkeypress="return searchResults.Nav(event,72)" onkeyup="return searchResults.Nav(event,72)" class="SRSymbol" href="../class_game_object.html#ade9a5568d88963b86547ddcaec465b4e" target="_parent">_y</a>
+ <span class="SRScope">GameObject</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_61.html b/docs/html/search/all_61.html
new file mode 100644
index 0000000..7435343
--- /dev/null
+++ b/docs/html/search/all_61.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_allegrodrawinginit">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_allegrodrawinginit')">AllegroDrawingInit</a>
+ <div class="SRChildren">
+ <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../class_allegro_drawing_init.html" target="_parent">AllegroDrawingInit</a>
+ <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../class_allegro_drawing_init.html#ab7cf79c71bf662f897bd8cba32f42cda" target="_parent">AllegroDrawingInit::AllegroDrawingInit()</a>
+ <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../class_allegro_drawing_init.html#a36fe883267f017f3832feb1f615d7488" target="_parent">AllegroDrawingInit::AllegroDrawingInit(const AllegroDrawingInit &amp;ref)</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_allegroinit">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_allegroinit')">AllegroInit</a>
+ <div class="SRChildren">
+ <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../class_allegro_init.html" target="_parent">AllegroInit</a>
+ <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../class_allegro_init.html#a14e28ffed7456b158cf919d310920af4" target="_parent">AllegroInit::AllegroInit()</a>
+ <a id="Item1_c2" onkeydown="return searchResults.NavChild(event,1,2)" onkeypress="return searchResults.NavChild(event,1,2)" onkeyup="return searchResults.NavChild(event,1,2)" class="SRScope" href="../class_allegro_init.html#a81588c1ce0fe3646a188683f1598a66b" target="_parent">AllegroInit::AllegroInit(const AllegroInit &amp;ref)</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_allegrokeyboardinit">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_allegrokeyboardinit')">AllegroKeyboardInit</a>
+ <div class="SRChildren">
+ <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../class_allegro_keyboard_init.html" target="_parent">AllegroKeyboardInit</a>
+ <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../class_allegro_keyboard_init.html#a42fce2d97b6b7c0c0c666d0f5804a45e" target="_parent">AllegroKeyboardInit::AllegroKeyboardInit()</a>
+ <a id="Item2_c2" onkeydown="return searchResults.NavChild(event,2,2)" onkeypress="return searchResults.NavChild(event,2,2)" onkeyup="return searchResults.NavChild(event,2,2)" class="SRScope" href="../class_allegro_keyboard_init.html#ae28cb5cbafdba3372f21ddb95a9ed134" target="_parent">AllegroKeyboardInit::AllegroKeyboardInit(const AllegroKeyboardInit &amp;ref)</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_allegrowrappers_2ecpp">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../_allegro_wrappers_8cpp.html" target="_parent">AllegroWrappers.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_allegrowrappers_2eh">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../_allegro_wrappers_8h.html" target="_parent">AllegroWrappers.h</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_62.html b/docs/html/search/all_62.html
new file mode 100644
index 0000000..8bd4630
--- /dev/null
+++ b/docs/html/search/all_62.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_backwards">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_maze.html#a79cf362b55c21634a93ef6b7d192b77c" target="_parent">backwards</a>
+ <span class="SRScope">Maze</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_badresolution">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_bad_resolution.html" target="_parent">BadResolution</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_bitmapstore">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_bitmapstore')">BitmapStore</a>
+ <div class="SRChildren">
+ <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../class_bitmap_store.html" target="_parent">BitmapStore</a>
+ <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../class_bitmap_store.html#abca96ce53be18eb07150745871a3165c" target="_parent">BitmapStore::BitmapStore(unsigned int blockWidth)</a>
+ <a id="Item2_c2" onkeydown="return searchResults.NavChild(event,2,2)" onkeypress="return searchResults.NavChild(event,2,2)" onkeyup="return searchResults.NavChild(event,2,2)" class="SRScope" href="../class_bitmap_store.html#a012f7ace750e7964f20a39cbb5fbe321" target="_parent">BitmapStore::BitmapStore(const BitmapStore &amp;ref)</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_bitmapstore_2ecpp">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../_bitmap_store_8cpp.html" target="_parent">BitmapStore.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_bitmapstore_2eh">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../_bitmap_store_8h.html" target="_parent">BitmapStore.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_blank">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../class_screen_panel.html#a1cc6ea44035f47d77d24b4cee9dc9d85" target="_parent">BLANK</a>
+ <span class="SRScope">ScreenPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_blind">
+ <div class="SREntry">
+ <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../class_enemy_car.html#aeb8bf92c965ab33f793b0274a02f142c" target="_parent">blind</a>
+ <span class="SRScope">EnemyCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_blinded">
+ <div class="SREntry">
+ <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87af45d8b201d7334e42651b262a03d631c" target="_parent">BLINDED</a>
+ <span class="SRScope">EnemyCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_blocks_5fper_5frow">
+ <div class="SREntry">
+ <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="../class_game_panel.html#ae60d3f1c29382ad3c6e6b5c5a56d2160" target="_parent">BLOCKS_PER_ROW</a>
+ <span class="SRScope">GamePanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_boolgrid">
+ <div class="SREntry">
+ <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="../class_maze.html#aea392ab34f271f56b1746b30aed9588a" target="_parent">BoolGrid</a>
+ <span class="SRScope">Maze</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_63.html b/docs/html/search/all_63.html
new file mode 100644
index 0000000..91ac042
--- /dev/null
+++ b/docs/html/search/all_63.html
@@ -0,0 +1,194 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_car">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_car')">Car</a>
+ <div class="SRChildren">
+ <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../class_car.html" target="_parent">Car</a>
+ <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../class_car.html#a3bd1dc6b75af9dc5bbe4354e0b3161d0" target="_parent">Car::Car()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_car_2ecpp">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../_car_8cpp.html" target="_parent">Car.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_car_2eh">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../_car_8h.html" target="_parent">Car.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_chasing">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87a28df0785e03156c97ddeb81da5e0770c" target="_parent">CHASING</a>
+ <span class="SRScope">EnemyCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_checkcollisions">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../class_collision_detector.html#a6ee96032c26ceeab038d2702d7064c7b" target="_parent">checkCollisions</a>
+ <span class="SRScope">CollisionDetector</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_checkfacing">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../class_enemy_car.html#afa61cecf7df51e26edd632303c18945c" target="_parent">checkFacing</a>
+ <span class="SRScope">EnemyCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_checkpoint">
+ <div class="SREntry">
+ <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_checkpoint')">Checkpoint</a>
+ <div class="SRChildren">
+ <a id="Item6_c0" onkeydown="return searchResults.NavChild(event,6,0)" onkeypress="return searchResults.NavChild(event,6,0)" onkeyup="return searchResults.NavChild(event,6,0)" class="SRScope" href="../class_checkpoint.html" target="_parent">Checkpoint</a>
+ <a id="Item6_c1" onkeydown="return searchResults.NavChild(event,6,1)" onkeypress="return searchResults.NavChild(event,6,1)" onkeyup="return searchResults.NavChild(event,6,1)" class="SRScope" href="../class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a780d6b9e20ec37fbaf5a40ca846795d9" target="_parent">BitmapStore::CHECKPOINT()</a>
+ <a id="Item6_c2" onkeydown="return searchResults.NavChild(event,6,2)" onkeypress="return searchResults.NavChild(event,6,2)" onkeyup="return searchResults.NavChild(event,6,2)" class="SRScope" href="../class_checkpoint.html#a20c371a9e21ac0092b652a7d63f46f85" target="_parent">Checkpoint::Checkpoint(double x, double y)</a>
+ <a id="Item6_c3" onkeydown="return searchResults.NavChild(event,6,3)" onkeypress="return searchResults.NavChild(event,6,3)" onkeyup="return searchResults.NavChild(event,6,3)" class="SRScope" href="../class_checkpoint.html#ac94e0d92110fc4105bf5bf82ef4a5818" target="_parent">Checkpoint::Checkpoint(const Checkpoint &amp;ref)</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_checkpoint_2ecpp">
+ <div class="SREntry">
+ <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../_checkpoint_8cpp.html" target="_parent">Checkpoint.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_checkpoint_2eh">
+ <div class="SREntry">
+ <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="../_checkpoint_8h.html" target="_parent">Checkpoint.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_checkpoint_5fchar">
+ <div class="SREntry">
+ <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="../class_level_reader.html#ad401a0f48a3eac678c0f53e95ea1f354" target="_parent">CHECKPOINT_CHAR</a>
+ <span class="SRScope">LevelReader</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_checkpointcount">
+ <div class="SREntry">
+ <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="../class_checkpoint.html#a872d8574b6f0a7960854fb1175e05f13" target="_parent">checkpointCount</a>
+ <span class="SRScope">Checkpoint</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_claimed_5fcheckpoint">
+ <div class="SREntry">
+ <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="../class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a824f0021358b88c7f1172d7dece95948" target="_parent">CLAIMED_CHECKPOINT</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_cleanup">
+ <div class="SREntry">
+ <a id="Item12" onkeydown="return searchResults.Nav(event,12)" onkeypress="return searchResults.Nav(event,12)" onkeyup="return searchResults.Nav(event,12)" class="SRSymbol" href="../class_game.html#a961f632fbe7f4ba08d23fe9edc7711be" target="_parent">cleanup</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_clearlists">
+ <div class="SREntry">
+ <a id="Item13" onkeydown="return searchResults.Nav(event,13)" onkeypress="return searchResults.Nav(event,13)" onkeyup="return searchResults.Nav(event,13)" class="SRSymbol" href="../class_game.html#a03cf795e9aaa4c5950b4b5e918ab9ab6" target="_parent">clearLists</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_collect">
+ <div class="SREntry">
+ <a id="Item14" onkeydown="return searchResults.Nav(event,14)" onkeypress="return searchResults.Nav(event,14)" onkeyup="return searchResults.Nav(event,14)" class="SRSymbol" href="../class_checkpoint.html#ad8f4b9da968e6b1f07080dc6f61282f7" target="_parent">collect</a>
+ <span class="SRScope">Checkpoint</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_collision">
+ <div class="SREntry">
+ <a id="Item15" onkeydown="return searchResults.Nav(event,15)" onkeypress="return searchResults.Nav(event,15)" onkeyup="return searchResults.Nav(event,15)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_collision')">collision</a>
+ <div class="SRChildren">
+ <a id="Item15_c0" onkeydown="return searchResults.NavChild(event,15,0)" onkeypress="return searchResults.NavChild(event,15,0)" onkeyup="return searchResults.NavChild(event,15,0)" class="SRScope" href="../class_collision_detector.html#a9d013c0f8e15cbfd4741a0789ba507fe" target="_parent">CollisionDetector::collision(PlayerCar &amp;player, Checkpoint &amp;checkpoint)</a>
+ <a id="Item15_c1" onkeydown="return searchResults.NavChild(event,15,1)" onkeypress="return searchResults.NavChild(event,15,1)" onkeyup="return searchResults.NavChild(event,15,1)" class="SRScope" href="../class_collision_detector.html#a36e9c23d49ee7be68277c7d4e4f27d2a" target="_parent">CollisionDetector::collision(PlayerCar &amp;player, EnemyCar &amp;enemy)</a>
+ <a id="Item15_c2" onkeydown="return searchResults.NavChild(event,15,2)" onkeypress="return searchResults.NavChild(event,15,2)" onkeyup="return searchResults.NavChild(event,15,2)" class="SRScope" href="../class_collision_detector.html#ad9502a42ff9f43804284d0128794edaa" target="_parent">CollisionDetector::collision(PlayerCar &amp;player, Rock &amp;rock)</a>
+ <a id="Item15_c3" onkeydown="return searchResults.NavChild(event,15,3)" onkeypress="return searchResults.NavChild(event,15,3)" onkeyup="return searchResults.NavChild(event,15,3)" class="SRScope" href="../class_collision_detector.html#a68572f5ec6cf32f28f07bda7a7b96452" target="_parent">CollisionDetector::collision(EnemyCar &amp;enemy, Smokescreen &amp;smokescreen)</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_collisiondetector">
+ <div class="SREntry">
+ <a id="Item16" onkeydown="return searchResults.Nav(event,16)" onkeypress="return searchResults.Nav(event,16)" onkeyup="return searchResults.Nav(event,16)" class="SRSymbol" href="../class_collision_detector.html" target="_parent">CollisionDetector</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_collisiondetector_2ecpp">
+ <div class="SREntry">
+ <a id="Item17" onkeydown="return searchResults.Nav(event,17)" onkeypress="return searchResults.Nav(event,17)" onkeyup="return searchResults.Nav(event,17)" class="SRSymbol" href="../_collision_detector_8cpp.html" target="_parent">CollisionDetector.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_collisiondetector_2eh">
+ <div class="SREntry">
+ <a id="Item18" onkeydown="return searchResults.Nav(event,18)" onkeypress="return searchResults.Nav(event,18)" onkeyup="return searchResults.Nav(event,18)" class="SRSymbol" href="../_collision_detector_8h.html" target="_parent">CollisionDetector.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_colourstore">
+ <div class="SREntry">
+ <a id="Item19" onkeydown="return searchResults.Nav(event,19)" onkeypress="return searchResults.Nav(event,19)" onkeyup="return searchResults.Nav(event,19)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_colourstore')">ColourStore</a>
+ <div class="SRChildren">
+ <a id="Item19_c0" onkeydown="return searchResults.NavChild(event,19,0)" onkeypress="return searchResults.NavChild(event,19,0)" onkeyup="return searchResults.NavChild(event,19,0)" class="SRScope" href="../class_colour_store.html" target="_parent">ColourStore</a>
+ <a id="Item19_c1" onkeydown="return searchResults.NavChild(event,19,1)" onkeypress="return searchResults.NavChild(event,19,1)" onkeyup="return searchResults.NavChild(event,19,1)" class="SRScope" href="../class_colour_store.html#a667f2e3c6d5b6eb553f58724e58bbed0" target="_parent">ColourStore::ColourStore()</a>
+ <a id="Item19_c2" onkeydown="return searchResults.NavChild(event,19,2)" onkeypress="return searchResults.NavChild(event,19,2)" onkeyup="return searchResults.NavChild(event,19,2)" class="SRScope" href="../class_colour_store.html#a3063a6fce81040a8b840a303b1e08829" target="_parent">ColourStore::ColourStore(const ColourStore &amp;ref)</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_colourstore_2ecpp">
+ <div class="SREntry">
+ <a id="Item20" onkeydown="return searchResults.Nav(event,20)" onkeypress="return searchResults.Nav(event,20)" onkeyup="return searchResults.Nav(event,20)" class="SRSymbol" href="../_colour_store_8cpp.html" target="_parent">ColourStore.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_colourstore_2eh">
+ <div class="SREntry">
+ <a id="Item21" onkeydown="return searchResults.Nav(event,21)" onkeypress="return searchResults.Nav(event,21)" onkeyup="return searchResults.Nav(event,21)" class="SRSymbol" href="../_colour_store_8h.html" target="_parent">ColourStore.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_config">
+ <div class="SREntry">
+ <a id="Item22" onkeydown="return searchResults.Nav(event,22)" onkeypress="return searchResults.Nav(event,22)" onkeyup="return searchResults.Nav(event,22)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_config')">Config</a>
+ <div class="SRChildren">
+ <a id="Item22_c0" onkeydown="return searchResults.NavChild(event,22,0)" onkeypress="return searchResults.NavChild(event,22,0)" onkeyup="return searchResults.NavChild(event,22,0)" class="SRScope" href="../class_config.html" target="_parent">Config</a>
+ <a id="Item22_c1" onkeydown="return searchResults.NavChild(event,22,1)" onkeypress="return searchResults.NavChild(event,22,1)" onkeyup="return searchResults.NavChild(event,22,1)" class="SRScope" href="../class_config.html#aab967ce080511b4ae5bf578cba5237d3" target="_parent">Config::Config()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_config_2ecpp">
+ <div class="SREntry">
+ <a id="Item23" onkeydown="return searchResults.Nav(event,23)" onkeypress="return searchResults.Nav(event,23)" onkeyup="return searchResults.Nav(event,23)" class="SRSymbol" href="../_config_8cpp.html" target="_parent">Config.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_config_2eh">
+ <div class="SREntry">
+ <a id="Item24" onkeydown="return searchResults.Nav(event,24)" onkeypress="return searchResults.Nav(event,24)" onkeyup="return searchResults.Nav(event,24)" class="SRSymbol" href="../_config_8h.html" target="_parent">Config.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_crash">
+ <div class="SREntry">
+ <a id="Item25" onkeydown="return searchResults.Nav(event,25)" onkeypress="return searchResults.Nav(event,25)" onkeyup="return searchResults.Nav(event,25)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_crash')">crash</a>
+ <div class="SRChildren">
+ <a id="Item25_c0" onkeydown="return searchResults.NavChild(event,25,0)" onkeypress="return searchResults.NavChild(event,25,0)" onkeyup="return searchResults.NavChild(event,25,0)" class="SRScope" href="../class_enemy_car.html#ac5836046e802a749abb2308886b34060" target="_parent">EnemyCar::crash()</a>
+ <a id="Item25_c1" onkeydown="return searchResults.NavChild(event,25,1)" onkeypress="return searchResults.NavChild(event,25,1)" onkeyup="return searchResults.NavChild(event,25,1)" class="SRScope" href="../class_player_car.html#a1bdd1dbdf1158b740cd1bcb757f8c578" target="_parent">PlayerCar::crash()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_crashed_5fcar">
+ <div class="SREntry">
+ <a id="Item26" onkeydown="return searchResults.Nav(event,26)" onkeypress="return searchResults.Nav(event,26)" onkeyup="return searchResults.Nav(event,26)" class="SRSymbol" href="../class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a8b9eb5b79abe467982784ea2227d67e0" target="_parent">CRASHED_CAR</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_64.html b/docs/html/search/all_64.html
new file mode 100644
index 0000000..e67cbc0
--- /dev/null
+++ b/docs/html/search/all_64.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_datatests_2ecpp">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../data_tests_8cpp.html" target="_parent">dataTests.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_destroyed">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_game_object.html#a266871f6c0220f6b3c902075ebff8eea" target="_parent">destroyed</a>
+ <span class="SRScope">GameObject</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_destroyedobjectpopup">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_destroyedobjectpopup')">DestroyedObjectPopup</a>
+ <div class="SRChildren">
+ <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../class_destroyed_object_popup.html" target="_parent">DestroyedObjectPopup</a>
+ <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../class_destroyed_object_popup.html#af34a9f7421a49953f6bd86233a6a44bc" target="_parent">DestroyedObjectPopup::DestroyedObjectPopup()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_destroyedobjectpopup_2ecpp">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../_destroyed_object_popup_8cpp.html" target="_parent">DestroyedObjectPopup.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_destroyedobjectpopup_2eh">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../_destroyed_object_popup_8h.html" target="_parent">DestroyedObjectPopup.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_direction">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../class_maze.html#ad12c28d50f4d7457160a70a94acfe28f" target="_parent">Direction</a>
+ <span class="SRScope">Maze</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_distance">
+ <div class="SREntry">
+ <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../class_maze_math.html#a5735276fb4c76f25944f2c02d622c3f6" target="_parent">distance</a>
+ <span class="SRScope">MazeMath</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_down">
+ <div class="SREntry">
+ <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa89ab143d020541957ab5e0e9cfdd3e23" target="_parent">DOWN</a>
+ <span class="SRScope">Maze</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_down_5fkey">
+ <div class="SREntry">
+ <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="../class_keyboard_handler.html#a3d8d985fdc3c3ac543e84647967f78e4" target="_parent">DOWN_KEY</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_draw">
+ <div class="SREntry">
+ <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_draw')">draw</a>
+ <div class="SRChildren">
+ <a id="Item9_c0" onkeydown="return searchResults.NavChild(event,9,0)" onkeypress="return searchResults.NavChild(event,9,0)" onkeyup="return searchResults.NavChild(event,9,0)" class="SRScope" href="../class_game_panel.html#ab093fb770fa8b46ee863947259c72abd" target="_parent">GamePanel::draw(const Maze &amp;maze, const list&lt; PlayerCar &gt; &amp;players, const list&lt; EnemyCar &gt; &amp;enemies, const list&lt; Checkpoint &gt; &amp;checkpoints, const list&lt; Rock &gt; &amp;rocks, const list&lt; Smokescreen &gt; &amp;smokescreens, const list&lt; DestroyedObjectPopup &gt; &amp;popups)</a>
+ <a id="Item9_c1" onkeydown="return searchResults.NavChild(event,9,1)" onkeypress="return searchResults.NavChild(event,9,1)" onkeyup="return searchResults.NavChild(event,9,1)" class="SRScope" href="../class_game_panel.html#a93395482993b341b1b72fbb256ce9be9" target="_parent">GamePanel::draw(const Maze &amp;maze)</a>
+ <a id="Item9_c2" onkeydown="return searchResults.NavChild(event,9,2)" onkeypress="return searchResults.NavChild(event,9,2)" onkeyup="return searchResults.NavChild(event,9,2)" class="SRScope" href="../class_game_panel.html#acff2b430ecad1310a0a36cfe7c994d2f" target="_parent">GamePanel::draw(const GameObject &amp;object)</a>
+ <a id="Item9_c3" onkeydown="return searchResults.NavChild(event,9,3)" onkeypress="return searchResults.NavChild(event,9,3)" onkeyup="return searchResults.NavChild(event,9,3)" class="SRScope" href="../class_info_panel.html#aa9628c14e08ac6573e0191d9d4afa227" target="_parent">InfoPanel::draw(const Maze &amp;maze, const list&lt; PlayerCar &gt; &amp;players, const list&lt; EnemyCar &gt; &amp;enemies, const list&lt; Checkpoint &gt; &amp;checkpoints, const list&lt; Rock &gt; &amp;rocks, const list&lt; Smokescreen &gt; &amp;smokescreens, const list&lt; DestroyedObjectPopup &gt; &amp;popups)</a>
+ <a id="Item9_c4" onkeydown="return searchResults.NavChild(event,9,4)" onkeypress="return searchResults.NavChild(event,9,4)" onkeyup="return searchResults.NavChild(event,9,4)" class="SRScope" href="../class_info_panel.html#a23a025859397c3e28bbe9dce26563d7c" target="_parent">InfoPanel::draw(const Maze &amp;maze)</a>
+ <a id="Item9_c5" onkeydown="return searchResults.NavChild(event,9,5)" onkeypress="return searchResults.NavChild(event,9,5)" onkeyup="return searchResults.NavChild(event,9,5)" class="SRScope" href="../class_info_panel.html#abc82d5365a89b3e374dbbdda86b77703" target="_parent">InfoPanel::draw(const GameObject &amp;object)</a>
+ <a id="Item9_c6" onkeydown="return searchResults.NavChild(event,9,6)" onkeypress="return searchResults.NavChild(event,9,6)" onkeyup="return searchResults.NavChild(event,9,6)" class="SRScope" href="../class_screen.html#aec3c5c20e14d6ef033c8a6a559a84872" target="_parent">Screen::draw()</a>
+ <a id="Item9_c7" onkeydown="return searchResults.NavChild(event,9,7)" onkeypress="return searchResults.NavChild(event,9,7)" onkeyup="return searchResults.NavChild(event,9,7)" class="SRScope" href="../class_screen_panel.html#ab4299f065cdf3e344c3b32b484136ada" target="_parent">ScreenPanel::draw()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_drawcheckpoint">
+ <div class="SREntry">
+ <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="../class_bitmap_store.html#ae5d12fa60b03a7ea2119c67938650352" target="_parent">drawCheckpoint</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_drawclaimedcheckpoint">
+ <div class="SREntry">
+ <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="../class_bitmap_store.html#a07f505192ccf0717d6aed29761934a5c" target="_parent">drawClaimedCheckpoint</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_drawcrashedcar">
+ <div class="SREntry">
+ <a id="Item12" onkeydown="return searchResults.Nav(event,12)" onkeypress="return searchResults.Nav(event,12)" onkeyup="return searchResults.Nav(event,12)" class="SRSymbol" href="../class_bitmap_store.html#abb0a062e5cb3170786a6c202a53c145b" target="_parent">drawCrashedCar</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_drawenemycar">
+ <div class="SREntry">
+ <a id="Item13" onkeydown="return searchResults.Nav(event,13)" onkeypress="return searchResults.Nav(event,13)" onkeyup="return searchResults.Nav(event,13)" class="SRSymbol" href="../class_bitmap_store.html#aff7a6fc2b35ff6cd38ef74730523f5a9" target="_parent">drawEnemyCar</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_drawloss">
+ <div class="SREntry">
+ <a id="Item14" onkeydown="return searchResults.Nav(event,14)" onkeypress="return searchResults.Nav(event,14)" onkeyup="return searchResults.Nav(event,14)" class="SRSymbol" href="../class_screen.html#aab9ab8447df2b526985970d2ac80c919" target="_parent">drawLoss</a>
+ <span class="SRScope">Screen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_drawmazefloor">
+ <div class="SREntry">
+ <a id="Item15" onkeydown="return searchResults.Nav(event,15)" onkeypress="return searchResults.Nav(event,15)" onkeyup="return searchResults.Nav(event,15)" class="SRSymbol" href="../class_bitmap_store.html#a8a7d5fe7cc38ddb3c651152654226201" target="_parent">drawMazeFloor</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_drawmazewall">
+ <div class="SREntry">
+ <a id="Item16" onkeydown="return searchResults.Nav(event,16)" onkeypress="return searchResults.Nav(event,16)" onkeyup="return searchResults.Nav(event,16)" class="SRSymbol" href="../class_bitmap_store.html#a90680d174c1d77e19ace8c2ba0eef6ac" target="_parent">drawMazeWall</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_drawplayercar">
+ <div class="SREntry">
+ <a id="Item17" onkeydown="return searchResults.Nav(event,17)" onkeypress="return searchResults.Nav(event,17)" onkeyup="return searchResults.Nav(event,17)" class="SRSymbol" href="../class_bitmap_store.html#af645b30d96761f401770336a555b6429" target="_parent">drawPlayerCar</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_drawrock">
+ <div class="SREntry">
+ <a id="Item18" onkeydown="return searchResults.Nav(event,18)" onkeypress="return searchResults.Nav(event,18)" onkeyup="return searchResults.Nav(event,18)" class="SRSymbol" href="../class_bitmap_store.html#a2132a5ec8dfb43f06f75accf8bb9a50e" target="_parent">drawRock</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_drawsmoke">
+ <div class="SREntry">
+ <a id="Item19" onkeydown="return searchResults.Nav(event,19)" onkeypress="return searchResults.Nav(event,19)" onkeyup="return searchResults.Nav(event,19)" class="SRSymbol" href="../class_bitmap_store.html#a1a346a06675a7257ca8a7879aeb27e48" target="_parent">drawSmoke</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_drawwin">
+ <div class="SREntry">
+ <a id="Item20" onkeydown="return searchResults.Nav(event,20)" onkeypress="return searchResults.Nav(event,20)" onkeyup="return searchResults.Nav(event,20)" class="SRSymbol" href="../class_screen.html#ad4c1281e4d59eb89377dd87bba8a310e" target="_parent">drawWin</a>
+ <span class="SRScope">Screen</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_65.html b/docs/html/search/all_65.html
new file mode 100644
index 0000000..6a11cd8
--- /dev/null
+++ b/docs/html/search/all_65.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_enemy">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a8a7d9a89e243914ca702660237d4f81d" target="_parent">ENEMY</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_enemy_5fchar">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_level_reader.html#a67d3735d6a3e40fa61527dd1ff7cfa22" target="_parent">ENEMY_CHAR</a>
+ <span class="SRScope">LevelReader</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_enemycar">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_enemycar')">EnemyCar</a>
+ <div class="SRChildren">
+ <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../class_enemy_car.html" target="_parent">EnemyCar</a>
+ <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../class_enemy_car.html#a8af7d3c56fa9dad09992ce6fbd7389d2" target="_parent">EnemyCar::EnemyCar()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_enemycar_2ecpp">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../_enemy_car_8cpp.html" target="_parent">EnemyCar.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_enemycar_2eh">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../_enemy_car_8h.html" target="_parent">EnemyCar.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_exitclicked">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../class_screen.html#acca34443ba0ad97922069658d688ea9a" target="_parent">exitClicked</a>
+ <span class="SRScope">Screen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_extractvalue">
+ <div class="SREntry">
+ <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../class_config.html#a38dee1d0fe4e962aedcee79faad2691c" target="_parent">extractValue</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_66.html b/docs/html/search/all_66.html
new file mode 100644
index 0000000..033294d
--- /dev/null
+++ b/docs/html/search/all_66.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_facing">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_game_object.html#a2549066ec4dc8f4ca2d3a8c5d5729324" target="_parent">facing</a>
+ <span class="SRScope">GameObject</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_fileopenerror">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_file_open_error.html" target="_parent">FileOpenError</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_fillvalues">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../class_config.html#ac31c5164b58f86c2a9ecaf21ac1f2202" target="_parent">fillValues</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_flip">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_flip')">flip</a>
+ <div class="SRChildren">
+ <a id="Item3_c0" onkeydown="return searchResults.NavChild(event,3,0)" onkeypress="return searchResults.NavChild(event,3,0)" onkeyup="return searchResults.NavChild(event,3,0)" class="SRScope" href="../class_screen.html#abd12bddd241c8d214d2423804fe20ffb" target="_parent">Screen::flip()</a>
+ <a id="Item3_c1" onkeydown="return searchResults.NavChild(event,3,1)" onkeypress="return searchResults.NavChild(event,3,1)" onkeyup="return searchResults.NavChild(event,3,1)" class="SRScope" href="../class_screen_panel.html#ab701d3888b13463d200be112f0eb4d82" target="_parent">ScreenPanel::flip()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_fps">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../class_game.html#a636d6897103fd12d230489d512bf2be1" target="_parent">FPS</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_fullscreen">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../class_config.html#a8a401add779f2b74732ade9e515bf0cd" target="_parent">fullscreen</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_fullscreen_5fdefault">
+ <div class="SREntry">
+ <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../class_config.html#a3195b4273ebe9ac691167bff71394720" target="_parent">FULLSCREEN_DEFAULT</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_fullscreen_5fkey">
+ <div class="SREntry">
+ <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../class_config.html#ae2dd20bca46b767d2a30c32de7ab78cb" target="_parent">FULLSCREEN_KEY</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_67.html b/docs/html/search/all_67.html
new file mode 100644
index 0000000..0adc01a
--- /dev/null
+++ b/docs/html/search/all_67.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_game">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_game')">Game</a>
+ <div class="SRChildren">
+ <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../class_game.html" target="_parent">Game</a>
+ <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../class_game.html#ad59df6562a58a614fda24622d3715b65" target="_parent">Game::Game()</a>
+ <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../class_game.html#a22c1dee02ec8e0050a66eb851f2cf212" target="_parent">Game::Game(const Game &amp;ref)</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_game_2ecpp">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../_game_8cpp.html" target="_parent">Game.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_game_2eh">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../_game_8h.html" target="_parent">Game.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_gameobject">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_gameobject')">GameObject</a>
+ <div class="SRChildren">
+ <a id="Item3_c0" onkeydown="return searchResults.NavChild(event,3,0)" onkeypress="return searchResults.NavChild(event,3,0)" onkeyup="return searchResults.NavChild(event,3,0)" class="SRScope" href="../class_game_object.html" target="_parent">GameObject</a>
+ <a id="Item3_c1" onkeydown="return searchResults.NavChild(event,3,1)" onkeypress="return searchResults.NavChild(event,3,1)" onkeyup="return searchResults.NavChild(event,3,1)" class="SRScope" href="../class_game_object.html#a26cba01b9c2d301d4ee89a98b9396d67" target="_parent">GameObject::GameObject()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_gameobject_2ecpp">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../_game_object_8cpp.html" target="_parent">GameObject.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_gameobject_2eh">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../_game_object_8h.html" target="_parent">GameObject.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_gamepanel">
+ <div class="SREntry">
+ <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_gamepanel')">GamePanel</a>
+ <div class="SRChildren">
+ <a id="Item6_c0" onkeydown="return searchResults.NavChild(event,6,0)" onkeypress="return searchResults.NavChild(event,6,0)" onkeyup="return searchResults.NavChild(event,6,0)" class="SRScope" href="../class_game_panel.html" target="_parent">GamePanel</a>
+ <a id="Item6_c1" onkeydown="return searchResults.NavChild(event,6,1)" onkeypress="return searchResults.NavChild(event,6,1)" onkeyup="return searchResults.NavChild(event,6,1)" class="SRScope" href="../class_game_panel.html#a3475820b2255da92e247d07248870044" target="_parent">GamePanel::GamePanel(ALLEGRO_BITMAP *back, ALLEGRO_BITMAP *front, int x, int y, int width, int height)</a>
+ <a id="Item6_c2" onkeydown="return searchResults.NavChild(event,6,2)" onkeypress="return searchResults.NavChild(event,6,2)" onkeyup="return searchResults.NavChild(event,6,2)" class="SRScope" href="../class_game_panel.html#ac7699585182c097daab6aeda844b4edd" target="_parent">GamePanel::GamePanel(const GamePanel &amp;ref)</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_gamepanel_2ecpp">
+ <div class="SREntry">
+ <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../_game_panel_8cpp.html" target="_parent">GamePanel.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_gamepanel_2eh">
+ <div class="SREntry">
+ <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="../_game_panel_8h.html" target="_parent">GamePanel.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_generatemaze">
+ <div class="SREntry">
+ <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="../class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" target="_parent">generateMaze</a>
+ <span class="SRScope">Maze</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_getbitmap">
+ <div class="SREntry">
+ <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="../class_bitmap_store.html#aadd437c869c5856c36d920dfafbc6ee4" target="_parent">getBitmap</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_getcolour">
+ <div class="SREntry">
+ <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="../class_colour_store.html#ac8474c4e9b335215f03ec2c749847ad2" target="_parent">getColour</a>
+ <span class="SRScope">ColourStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_getfacing">
+ <div class="SREntry">
+ <a id="Item12" onkeydown="return searchResults.Nav(event,12)" onkeypress="return searchResults.Nav(event,12)" onkeyup="return searchResults.Nav(event,12)" class="SRSymbol" href="../class_keyboard_handler.html#ae17ed4bf0abae7d95f9b772a6d704a70" target="_parent">getFacing</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_getlevel">
+ <div class="SREntry">
+ <a id="Item13" onkeydown="return searchResults.Nav(event,13)" onkeypress="return searchResults.Nav(event,13)" onkeyup="return searchResults.Nav(event,13)" class="SRSymbol" href="../class_screen.html#a45d06e513491e40f76013fb670c6c6cc" target="_parent">getLevel</a>
+ <span class="SRScope">Screen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_getpanelx">
+ <div class="SREntry">
+ <a id="Item14" onkeydown="return searchResults.Nav(event,14)" onkeypress="return searchResults.Nav(event,14)" onkeyup="return searchResults.Nav(event,14)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_getpanelx')">getPanelX</a>
+ <div class="SRChildren">
+ <a id="Item14_c0" onkeydown="return searchResults.NavChild(event,14,0)" onkeypress="return searchResults.NavChild(event,14,0)" onkeyup="return searchResults.NavChild(event,14,0)" class="SRScope" href="../class_game_panel.html#a53a4386ab0f60db88b3c638b3880cd91" target="_parent">GamePanel::getPanelX()</a>
+ <a id="Item14_c1" onkeydown="return searchResults.NavChild(event,14,1)" onkeypress="return searchResults.NavChild(event,14,1)" onkeyup="return searchResults.NavChild(event,14,1)" class="SRScope" href="../class_info_panel.html#a0accb88b099f412cc3baa7d2bf4690aa" target="_parent">InfoPanel::getPanelX()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_getpanely">
+ <div class="SREntry">
+ <a id="Item15" onkeydown="return searchResults.Nav(event,15)" onkeypress="return searchResults.Nav(event,15)" onkeyup="return searchResults.Nav(event,15)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_getpanely')">getPanelY</a>
+ <div class="SRChildren">
+ <a id="Item15_c0" onkeydown="return searchResults.NavChild(event,15,0)" onkeypress="return searchResults.NavChild(event,15,0)" onkeyup="return searchResults.NavChild(event,15,0)" class="SRScope" href="../class_game_panel.html#a0e722b67c8ee7fe5f557821adf9b8cc2" target="_parent">GamePanel::getPanelY()</a>
+ <a id="Item15_c1" onkeydown="return searchResults.NavChild(event,15,1)" onkeypress="return searchResults.NavChild(event,15,1)" onkeyup="return searchResults.NavChild(event,15,1)" class="SRScope" href="../class_info_panel.html#ad962eab814441375a8634b67d743d7e6" target="_parent">InfoPanel::getPanelY()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_getsmokescreen">
+ <div class="SREntry">
+ <a id="Item16" onkeydown="return searchResults.Nav(event,16)" onkeypress="return searchResults.Nav(event,16)" onkeyup="return searchResults.Nav(event,16)" class="SRSymbol" href="../class_keyboard_handler.html#ab66797a37a1c54a630187519870d9a5b" target="_parent">getSmokescreen</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_getsolid">
+ <div class="SREntry">
+ <a id="Item17" onkeydown="return searchResults.Nav(event,17)" onkeypress="return searchResults.Nav(event,17)" onkeyup="return searchResults.Nav(event,17)" class="SRSymbol" href="../class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" target="_parent">getSolid</a>
+ <span class="SRScope">Maze</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_gotcheckpoint">
+ <div class="SREntry">
+ <a id="Item18" onkeydown="return searchResults.Nav(event,18)" onkeypress="return searchResults.Nav(event,18)" onkeyup="return searchResults.Nav(event,18)" class="SRSymbol" href="../class_player_car.html#aaa8b9d66c0c4e4eab5a303dd0a4e5f39" target="_parent">gotCheckpoint</a>
+ <span class="SRScope">PlayerCar</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_68.html b/docs/html/search/all_68.html
new file mode 100644
index 0000000..4af788f
--- /dev/null
+++ b/docs/html/search/all_68.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_height">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_maze.html#a53de30abea69713225ab77703e753d81" target="_parent">height</a>
+ <span class="SRScope">Maze</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_69.html b/docs/html/search/all_69.html
new file mode 100644
index 0000000..611c1ca
--- /dev/null
+++ b/docs/html/search/all_69.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_image">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_image')">image</a>
+ <div class="SRChildren">
+ <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../class_game_object.html#a05e352e3e01e774892beee0503fdb349" target="_parent">GameObject::image()</a>
+ <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386" target="_parent">BitmapStore::Image()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_infopanel">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_infopanel')">InfoPanel</a>
+ <div class="SRChildren">
+ <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../class_info_panel.html" target="_parent">InfoPanel</a>
+ <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../class_info_panel.html#a5a3d0afb5ebd764de04484b1817912b6" target="_parent">InfoPanel::InfoPanel(ALLEGRO_BITMAP *back, ALLEGRO_BITMAP *front, int x, int y, int width, int height)</a>
+ <a id="Item1_c2" onkeydown="return searchResults.NavChild(event,1,2)" onkeypress="return searchResults.NavChild(event,1,2)" onkeyup="return searchResults.NavChild(event,1,2)" class="SRScope" href="../class_info_panel.html#a6eac5bf29b155213dffd60460d299049" target="_parent">InfoPanel::InfoPanel(const InfoPanel &amp;ref)</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_infopanel_2ecpp">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../_info_panel_8cpp.html" target="_parent">InfoPanel.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_infopanel_2eh">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../_info_panel_8h.html" target="_parent">InfoPanel.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_initlevel">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../class_game.html#a2bd8589c18470f644445d97c1c35d169" target="_parent">initLevel</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_installfailure">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../class_install_failure.html" target="_parent">InstallFailure</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_6b.html b/docs/html/search/all_6b.html
new file mode 100644
index 0000000..0e1664d
--- /dev/null
+++ b/docs/html/search/all_6b.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_keyboardhandler">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_keyboardhandler')">KeyboardHandler</a>
+ <div class="SRChildren">
+ <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../class_keyboard_handler.html" target="_parent">KeyboardHandler</a>
+ <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../class_keyboard_handler.html#acd0d5781016f792207464bb720d2f994" target="_parent">KeyboardHandler::KeyboardHandler(Maze::Direction currentFacing)</a>
+ <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../class_keyboard_handler.html#a8942a24f122f96b2b5d7c91f1c6ff332" target="_parent">KeyboardHandler::KeyboardHandler(const KeyboardHandler &amp;ref)</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_keyboardhandler_2ecpp">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../_keyboard_handler_8cpp.html" target="_parent">KeyboardHandler.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_keyboardhandler_2eh">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../_keyboard_handler_8h.html" target="_parent">KeyboardHandler.h</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_6c.html b/docs/html/search/all_6c.html
new file mode 100644
index 0000000..e291c17
--- /dev/null
+++ b/docs/html/search/all_6c.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_left">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_maze.html#ad12c28d50f4d7457160a70a94acfe28faab1a1fe0274cd139b3c0116d8caf458c" target="_parent">LEFT</a>
+ <span class="SRScope">Maze</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_left_5fkey">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_keyboard_handler.html#ab285a229f4f5c7c1be5504fdb629e10a" target="_parent">LEFT_KEY</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_levelreader">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_levelreader')">LevelReader</a>
+ <div class="SRChildren">
+ <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../class_level_reader.html" target="_parent">LevelReader</a>
+ <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../class_level_reader.html#ad093a54f9753a22dd66748b82a08c1fd" target="_parent">LevelReader::LevelReader()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_levelreader_2ecpp">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../_level_reader_8cpp.html" target="_parent">LevelReader.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_levelreader_2eh">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../_level_reader_8h.html" target="_parent">LevelReader.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_limitedtimeobject">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_limitedtimeobject')">LimitedTimeObject</a>
+ <div class="SRChildren">
+ <a id="Item5_c0" onkeydown="return searchResults.NavChild(event,5,0)" onkeypress="return searchResults.NavChild(event,5,0)" onkeyup="return searchResults.NavChild(event,5,0)" class="SRScope" href="../class_limited_time_object.html" target="_parent">LimitedTimeObject</a>
+ <a id="Item5_c1" onkeydown="return searchResults.NavChild(event,5,1)" onkeypress="return searchResults.NavChild(event,5,1)" onkeyup="return searchResults.NavChild(event,5,1)" class="SRScope" href="../class_limited_time_object.html#a0993f1696ed62abc3ef7856e4da7ae0e" target="_parent">LimitedTimeObject::LimitedTimeObject()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_limitedtimeobject_2ecpp">
+ <div class="SREntry">
+ <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../_limited_time_object_8cpp.html" target="_parent">LimitedTimeObject.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_limitedtimeobject_2eh">
+ <div class="SREntry">
+ <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../_limited_time_object_8h.html" target="_parent">LimitedTimeObject.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_logictests_2ecpp">
+ <div class="SREntry">
+ <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="../logic_tests_8cpp.html" target="_parent">logicTests.cpp</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_6d.html b/docs/html/search/all_6d.html
new file mode 100644
index 0000000..03af45c
--- /dev/null
+++ b/docs/html/search/all_6d.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_main">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4" target="_parent">main</a>
+ <span class="SRScope">main.cpp</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_main_2ecpp">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../main_8cpp.html" target="_parent">main.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_makesmoke">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../class_player_car.html#aafbb292597e0e4648a52444b25e0c5d1" target="_parent">makeSmoke</a>
+ <span class="SRScope">PlayerCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_maze">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_maze')">Maze</a>
+ <div class="SRChildren">
+ <a id="Item3_c0" onkeydown="return searchResults.NavChild(event,3,0)" onkeypress="return searchResults.NavChild(event,3,0)" onkeyup="return searchResults.NavChild(event,3,0)" class="SRScope" href="../class_maze.html" target="_parent">Maze</a>
+ <a id="Item3_c1" onkeydown="return searchResults.NavChild(event,3,1)" onkeypress="return searchResults.NavChild(event,3,1)" onkeyup="return searchResults.NavChild(event,3,1)" class="SRScope" href="../class_maze.html#a7ecf1da4b9685f97bf3110a8479e724b" target="_parent">Maze::Maze()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_maze_2ecpp">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../_maze_8cpp.html" target="_parent">Maze.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_maze_2eh">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../_maze_8h.html" target="_parent">Maze.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_maze_5ffloor">
+ <div class="SREntry">
+ <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a4e2a075dff2c02bf40b134c9090d1f02" target="_parent">MAZE_FLOOR</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_maze_5fwall">
+ <div class="SREntry">
+ <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386ae662e77b349a8e22c5826ef35b1b5d9a" target="_parent">MAZE_WALL</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_mazemath">
+ <div class="SREntry">
+ <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_mazemath')">MazeMath</a>
+ <div class="SRChildren">
+ <a id="Item8_c0" onkeydown="return searchResults.NavChild(event,8,0)" onkeypress="return searchResults.NavChild(event,8,0)" onkeyup="return searchResults.NavChild(event,8,0)" class="SRScope" href="../class_maze_math.html" target="_parent">MazeMath</a>
+ <a id="Item8_c1" onkeydown="return searchResults.NavChild(event,8,1)" onkeypress="return searchResults.NavChild(event,8,1)" onkeyup="return searchResults.NavChild(event,8,1)" class="SRScope" href="../class_maze_math.html#ac85f1216ce8dc44bc2fb4483b3f4a128" target="_parent">MazeMath::MazeMath()</a>
+ <a id="Item8_c2" onkeydown="return searchResults.NavChild(event,8,2)" onkeypress="return searchResults.NavChild(event,8,2)" onkeyup="return searchResults.NavChild(event,8,2)" class="SRScope" href="../class_maze_math.html#a8e1499b201cd7034b4a73ed180a87eda" target="_parent">MazeMath::MazeMath(const MazeMath &amp;ref)</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_mazemath_2ecpp">
+ <div class="SREntry">
+ <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="../_maze_math_8cpp.html" target="_parent">MazeMath.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_mazemath_2eh">
+ <div class="SREntry">
+ <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="../_maze_math_8h.html" target="_parent">MazeMath.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_move">
+ <div class="SREntry">
+ <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="../class_car.html#a85e8699362bb5206e4142dbd5d20dcb9" target="_parent">move</a>
+ <span class="SRScope">Car</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_6f.html b/docs/html/search/all_6f.html
new file mode 100644
index 0000000..daab4e0
--- /dev/null
+++ b/docs/html/search/all_6f.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_operator_3d">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_operator_3d')">operator=</a>
+ <div class="SRChildren">
+ <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../class_game.html#abf375a1957b6fdb5cbe67ef70fa818f5" target="_parent">Game::operator=()</a>
+ <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../class_maze_math.html#ac7cf69d865cf69b82c991241fa39cd59" target="_parent">MazeMath::operator=()</a>
+ <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../class_bitmap_store.html#a3c1092d55aaf1c9c5b7424d7eb2f1576" target="_parent">BitmapStore::operator=()</a>
+ <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../class_colour_store.html#a2d3688dbcdf5f9f9b82ef50709c2f286" target="_parent">ColourStore::operator=()</a>
+ <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../class_game_panel.html#afa4391feb9b273eb938531a73b1ec7f2" target="_parent">GamePanel::operator=()</a>
+ <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../class_info_panel.html#ab70ce071b189ffe1b7e7a67a6227393f" target="_parent">InfoPanel::operator=()</a>
+ <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../class_keyboard_handler.html#a5135c450b82394496457a0a51d5240f5" target="_parent">KeyboardHandler::operator=()</a>
+ <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../class_screen.html#a0e36165c330af54d9786b2c6dadbadb5" target="_parent">Screen::operator=()</a>
+ <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../class_screen_panel.html#a896035d9c68aecd6ca802e2223d26ec5" target="_parent">ScreenPanel::operator=()</a>
+ </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_70.html b/docs/html/search/all_70.html
new file mode 100644
index 0000000..7563628
--- /dev/null
+++ b/docs/html/search/all_70.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_petrol">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_player_car.html#af32c01166e92d567202c8415cb3e7c88" target="_parent">petrol</a>
+ <span class="SRScope">PlayerCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_petrol_5ffrom_5fcheckpoint">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_player_car.html#aa51ff0da924f9f9b2ea95907a7a26784" target="_parent">PETROL_FROM_CHECKPOINT</a>
+ <span class="SRScope">PlayerCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_petrol_5fuse_5frate">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../class_player_car.html#a1f0b0226242250bd470f48b73defe3be" target="_parent">PETROL_USE_RATE</a>
+ <span class="SRScope">PlayerCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_petrol_5fuse_5fsmokescreen">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../class_player_car.html#af4d042839afea10b0947837040eab12c" target="_parent">PETROL_USE_SMOKESCREEN</a>
+ <span class="SRScope">PlayerCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_player">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386acdaf29947fecd91b452e554a75fb9e92" target="_parent">PLAYER</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_player_5fchar">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../class_level_reader.html#a8de3d894f4e67a7a0f66f6dfc3a7fbe1" target="_parent">PLAYER_CHAR</a>
+ <span class="SRScope">LevelReader</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_playercar">
+ <div class="SREntry">
+ <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_playercar')">PlayerCar</a>
+ <div class="SRChildren">
+ <a id="Item6_c0" onkeydown="return searchResults.NavChild(event,6,0)" onkeypress="return searchResults.NavChild(event,6,0)" onkeyup="return searchResults.NavChild(event,6,0)" class="SRScope" href="../class_player_car.html" target="_parent">PlayerCar</a>
+ <a id="Item6_c1" onkeydown="return searchResults.NavChild(event,6,1)" onkeypress="return searchResults.NavChild(event,6,1)" onkeyup="return searchResults.NavChild(event,6,1)" class="SRScope" href="../class_player_car.html#a59864f7746f6b96364cc5cc87f9b70e0" target="_parent">PlayerCar::PlayerCar()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_playercar_2ecpp">
+ <div class="SREntry">
+ <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../_player_car_8cpp.html" target="_parent">PlayerCar.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_playercar_2eh">
+ <div class="SREntry">
+ <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="../_player_car_8h.html" target="_parent">PlayerCar.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_populatecolours">
+ <div class="SREntry">
+ <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="../class_colour_store.html#ad3f729c8e9f6a94bacd85e6db47e2e82" target="_parent">populateColours</a>
+ <span class="SRScope">ColourStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_popup_5ftime">
+ <div class="SREntry">
+ <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="../class_destroyed_object_popup.html#a883845e614aba9d292eb85afa9423f31" target="_parent">POPUP_TIME</a>
+ <span class="SRScope">DestroyedObjectPopup</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_presentationtests_2ecpp">
+ <div class="SREntry">
+ <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="../presentation_tests_8cpp.html" target="_parent">presentationTests.cpp</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_72.html b/docs/html/search/all_72.html
new file mode 100644
index 0000000..5402ce1
--- /dev/null
+++ b/docs/html/search/all_72.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_readfile">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_config.html#aa9656bf85fa15fd4e90a99558f880602" target="_parent">readFile</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_readlevel">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_level_reader.html#a27277149f3270e040c8ffeadbca79758" target="_parent">readLevel</a>
+ <span class="SRScope">LevelReader</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_resolutionsupported">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../class_screen.html#a6480d57328a39c579f312774b5fbf571" target="_parent">resolutionSupported</a>
+ <span class="SRScope">Screen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_right">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa699ae3e1d989e9b12bd200aa86e29e9d" target="_parent">RIGHT</a>
+ <span class="SRScope">Maze</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_right_5fkey">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../class_keyboard_handler.html#a0822e8b6338b01cb09d08589d778af86" target="_parent">RIGHT_KEY</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_rock">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_rock')">Rock</a>
+ <div class="SRChildren">
+ <a id="Item5_c0" onkeydown="return searchResults.NavChild(event,5,0)" onkeypress="return searchResults.NavChild(event,5,0)" onkeyup="return searchResults.NavChild(event,5,0)" class="SRScope" href="../class_rock.html" target="_parent">Rock</a>
+ <a id="Item5_c1" onkeydown="return searchResults.NavChild(event,5,1)" onkeypress="return searchResults.NavChild(event,5,1)" onkeyup="return searchResults.NavChild(event,5,1)" class="SRScope" href="../class_rock.html#af8a54b6f7458d83cf27753f53c8c0c19" target="_parent">Rock::Rock()</a>
+ <a id="Item5_c2" onkeydown="return searchResults.NavChild(event,5,2)" onkeypress="return searchResults.NavChild(event,5,2)" onkeyup="return searchResults.NavChild(event,5,2)" class="SRScope" href="../class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386abf3851dc0110fc83020981fcbb5773eb" target="_parent">BitmapStore::ROCK()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_rock_2ecpp">
+ <div class="SREntry">
+ <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../_rock_8cpp.html" target="_parent">Rock.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_rock_2eh">
+ <div class="SREntry">
+ <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../_rock_8h.html" target="_parent">Rock.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_rock_5fchar">
+ <div class="SREntry">
+ <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="../class_level_reader.html#a321a0fcc5a9ae36a394782be4c71bd7d" target="_parent">ROCK_CHAR</a>
+ <span class="SRScope">LevelReader</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_rockatlocation">
+ <div class="SREntry">
+ <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="../class_enemy_car.html#af0dca9b89448557020ef02a18cffb682" target="_parent">rockAtLocation</a>
+ <span class="SRScope">EnemyCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_round">
+ <div class="SREntry">
+ <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="../class_maze_math.html#a2314f211065f4dc7cb11469770fd2f1c" target="_parent">round</a>
+ <span class="SRScope">MazeMath</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_runloop">
+ <div class="SREntry">
+ <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="../class_game.html#a069837f5f3f3b91b581e41dd74667211" target="_parent">runloop</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_73.html b/docs/html/search/all_73.html
new file mode 100644
index 0000000..582af0b
--- /dev/null
+++ b/docs/html/search/all_73.html
@@ -0,0 +1,169 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_screen">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_screen')">Screen</a>
+ <div class="SRChildren">
+ <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../class_screen.html" target="_parent">Screen</a>
+ <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../class_screen.html#aa430a980cb3dcca13c837f70bf801511" target="_parent">Screen::Screen(unsigned int screenWidth, unsigned int screenHeight, bool fullscreen)</a>
+ <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../class_screen.html#af46d7f95b577627f99af02f241026f4c" target="_parent">Screen::Screen(const Screen &amp;ref)</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_screen_2ecpp">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../_screen_8cpp.html" target="_parent">Screen.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_screen_2eh">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../_screen_8h.html" target="_parent">Screen.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_screen_5fheight_5fdefault">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../class_config.html#a2382c43dd0d51b3d52bf88d18438c579" target="_parent">SCREEN_HEIGHT_DEFAULT</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_screen_5fheight_5fkey">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../class_config.html#a5dd914d11bd6f43c06ad4682be0efaba" target="_parent">SCREEN_HEIGHT_KEY</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_screen_5fwidth_5fdefault">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../class_config.html#ad6f88b173db3508eaeb7b569655b5cf2" target="_parent">SCREEN_WIDTH_DEFAULT</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_screen_5fwidth_5fkey">
+ <div class="SREntry">
+ <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../class_config.html#abebfdbe6033183421dcdb4cdb6fc9549" target="_parent">SCREEN_WIDTH_KEY</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_screenheight">
+ <div class="SREntry">
+ <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../class_config.html#a53d63c52aa51b5231b9ea8e412086773" target="_parent">screenHeight</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_screenpanel">
+ <div class="SREntry">
+ <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_screenpanel')">ScreenPanel</a>
+ <div class="SRChildren">
+ <a id="Item8_c0" onkeydown="return searchResults.NavChild(event,8,0)" onkeypress="return searchResults.NavChild(event,8,0)" onkeyup="return searchResults.NavChild(event,8,0)" class="SRScope" href="../class_screen_panel.html" target="_parent">ScreenPanel</a>
+ <a id="Item8_c1" onkeydown="return searchResults.NavChild(event,8,1)" onkeypress="return searchResults.NavChild(event,8,1)" onkeyup="return searchResults.NavChild(event,8,1)" class="SRScope" href="../class_screen_panel.html#a8c13559489444ea8131066fa5b884645" target="_parent">ScreenPanel::ScreenPanel(ALLEGRO_BITMAP *back, ALLEGRO_BITMAP *front, int x, int y, int width, int height)</a>
+ <a id="Item8_c2" onkeydown="return searchResults.NavChild(event,8,2)" onkeypress="return searchResults.NavChild(event,8,2)" onkeyup="return searchResults.NavChild(event,8,2)" class="SRScope" href="../class_screen_panel.html#a60c670cbb4930adcb77dc3002fdeb4df" target="_parent">ScreenPanel::ScreenPanel(const ScreenPanel &amp;ref)</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_screenpanel_2ecpp">
+ <div class="SREntry">
+ <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="../_screen_panel_8cpp.html" target="_parent">ScreenPanel.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_screenpanel_2eh">
+ <div class="SREntry">
+ <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="../_screen_panel_8h.html" target="_parent">ScreenPanel.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_screenwidth">
+ <div class="SREntry">
+ <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="../class_config.html#a3bb73797396d2d5ba8c9956730dfc4db" target="_parent">screenWidth</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_setfullscreen">
+ <div class="SREntry">
+ <a id="Item12" onkeydown="return searchResults.Nav(event,12)" onkeypress="return searchResults.Nav(event,12)" onkeyup="return searchResults.Nav(event,12)" class="SRSymbol" href="../class_config.html#a5ce32c242ca037105a2430a122249a0a" target="_parent">setFullscreen</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_setscreenheight">
+ <div class="SREntry">
+ <a id="Item13" onkeydown="return searchResults.Nav(event,13)" onkeypress="return searchResults.Nav(event,13)" onkeyup="return searchResults.Nav(event,13)" class="SRSymbol" href="../class_config.html#a8e960645b79f31c39ee0cecc89ed6060" target="_parent">setScreenHeight</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_setscreenwidth">
+ <div class="SREntry">
+ <a id="Item14" onkeydown="return searchResults.Nav(event,14)" onkeypress="return searchResults.Nav(event,14)" onkeyup="return searchResults.Nav(event,14)" class="SRSymbol" href="../class_config.html#ac0fd2f7c14b9f26339862da74215bf01" target="_parent">setScreenWidth</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_smoke">
+ <div class="SREntry">
+ <a id="Item15" onkeydown="return searchResults.Nav(event,15)" onkeypress="return searchResults.Nav(event,15)" onkeyup="return searchResults.Nav(event,15)" class="SRSymbol" href="../class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a91fec244d29999552e93ecb7578713fb" target="_parent">SMOKE</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_smoke_5ftime">
+ <div class="SREntry">
+ <a id="Item16" onkeydown="return searchResults.Nav(event,16)" onkeypress="return searchResults.Nav(event,16)" onkeyup="return searchResults.Nav(event,16)" class="SRSymbol" href="../class_smokescreen.html#aca053d39fcca8d45096512e92fb0f4d8" target="_parent">SMOKE_TIME</a>
+ <span class="SRScope">Smokescreen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_smokescreen">
+ <div class="SREntry">
+ <a id="Item17" onkeydown="return searchResults.Nav(event,17)" onkeypress="return searchResults.Nav(event,17)" onkeyup="return searchResults.Nav(event,17)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_smokescreen')">Smokescreen</a>
+ <div class="SRChildren">
+ <a id="Item17_c0" onkeydown="return searchResults.NavChild(event,17,0)" onkeypress="return searchResults.NavChild(event,17,0)" onkeyup="return searchResults.NavChild(event,17,0)" class="SRScope" href="../class_smokescreen.html" target="_parent">Smokescreen</a>
+ <a id="Item17_c1" onkeydown="return searchResults.NavChild(event,17,1)" onkeypress="return searchResults.NavChild(event,17,1)" onkeyup="return searchResults.NavChild(event,17,1)" class="SRScope" href="../class_smokescreen.html#ad112d610ab5b88da319e0cf46a5a1344" target="_parent">Smokescreen::Smokescreen()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_smokescreen_2ecpp">
+ <div class="SREntry">
+ <a id="Item18" onkeydown="return searchResults.Nav(event,18)" onkeypress="return searchResults.Nav(event,18)" onkeyup="return searchResults.Nav(event,18)" class="SRSymbol" href="../_smokescreen_8cpp.html" target="_parent">Smokescreen.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_smokescreen_2eh">
+ <div class="SREntry">
+ <a id="Item19" onkeydown="return searchResults.Nav(event,19)" onkeypress="return searchResults.Nav(event,19)" onkeyup="return searchResults.Nav(event,19)" class="SRSymbol" href="../_smokescreen_8h.html" target="_parent">Smokescreen.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_smokescreen_5fkey">
+ <div class="SREntry">
+ <a id="Item20" onkeydown="return searchResults.Nav(event,20)" onkeypress="return searchResults.Nav(event,20)" onkeyup="return searchResults.Nav(event,20)" class="SRSymbol" href="../class_keyboard_handler.html#a2de5780311975180c0b78e7b0457eae1" target="_parent">SMOKESCREEN_KEY</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_speed">
+ <div class="SREntry">
+ <a id="Item21" onkeydown="return searchResults.Nav(event,21)" onkeypress="return searchResults.Nav(event,21)" onkeyup="return searchResults.Nav(event,21)" class="SRSymbol" href="../class_car.html#a68b59187e1520a5d016b0894b4c116b9" target="_parent">speed</a>
+ <span class="SRScope">Car</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_start">
+ <div class="SREntry">
+ <a id="Item22" onkeydown="return searchResults.Nav(event,22)" onkeypress="return searchResults.Nav(event,22)" onkeyup="return searchResults.Nav(event,22)" class="SRSymbol" href="../class_game.html#a3d9b98f7c4a96ecf578f75b96c9f0e90" target="_parent">start</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_states">
+ <div class="SREntry">
+ <a id="Item23" onkeydown="return searchResults.Nav(event,23)" onkeypress="return searchResults.Nav(event,23)" onkeyup="return searchResults.Nav(event,23)" class="SRSymbol" href="../class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87" target="_parent">States</a>
+ <span class="SRScope">EnemyCar</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_74.html b/docs/html/search/all_74.html
new file mode 100644
index 0000000..18c22e8
--- /dev/null
+++ b/docs/html/search/all_74.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_test">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_test')">TEST</a>
+ <div class="SRChildren">
+ <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" target="_parent">TEST(Config, readsSettingsCorrectly):&#160;dataTests.cpp</a>
+ <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../data_tests_8cpp.html#a2159abeac0546de95bbdd68b1e10c56c" target="_parent">TEST(Config, createsFileIfNeeded):&#160;dataTests.cpp</a>
+ <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../data_tests_8cpp.html#a49403434f62b3318444eff742d2b2231" target="_parent">TEST(Config, incompleteFileFilled):&#160;dataTests.cpp</a>
+ <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../data_tests_8cpp.html#afc4fdfbf4ea1ef87d266b9b67cc665d1" target="_parent">TEST(LevelReader, readsFileInfoObjects):&#160;dataTests.cpp</a>
+ <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../data_tests_8cpp.html#a63083af852f9dfa8036f327f6fa84328" target="_parent">TEST(LevelReader, throwsExceptionOnBadFilename):&#160;dataTests.cpp</a>
+ <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../logic_tests_8cpp.html#af107924db552c5a66c5bf3aeafe15519" target="_parent">TEST(Car, updateMovesPlayerUpInEmptyMaze):&#160;logicTests.cpp</a>
+ <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../logic_tests_8cpp.html#a4011469f0a6dfeb25d704d662ce02caf" target="_parent">TEST(Car, updateMovesPlayerDownInEmptyMaze):&#160;logicTests.cpp</a>
+ <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../logic_tests_8cpp.html#ac7954e0cf27b4044b5b9ba0a7faf747e" target="_parent">TEST(Car, updateMovesPlayerLeftInEmptyMaze):&#160;logicTests.cpp</a>
+ <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../logic_tests_8cpp.html#a1b0625252aae5ca87e0b26e01b7aa506" target="_parent">TEST(Car, updateMovesPlayerRightInEmptyMaze):&#160;logicTests.cpp</a>
+ <a id="Item0_c9" onkeydown="return searchResults.NavChild(event,0,9)" onkeypress="return searchResults.NavChild(event,0,9)" onkeyup="return searchResults.NavChild(event,0,9)" class="SRScope" href="../logic_tests_8cpp.html#a2c0f1615b9769a4140124c5d6845d50a" target="_parent">TEST(Car, carNotMovedWhenPathUpBlocked):&#160;logicTests.cpp</a>
+ <a id="Item0_c10" onkeydown="return searchResults.NavChild(event,0,10)" onkeypress="return searchResults.NavChild(event,0,10)" onkeyup="return searchResults.NavChild(event,0,10)" class="SRScope" href="../logic_tests_8cpp.html#a1a6506ee8e2f21181a26f92098707a9b" target="_parent">TEST(Car, carNotMovedWhenPathDownBlocked):&#160;logicTests.cpp</a>
+ <a id="Item0_c11" onkeydown="return searchResults.NavChild(event,0,11)" onkeypress="return searchResults.NavChild(event,0,11)" onkeyup="return searchResults.NavChild(event,0,11)" class="SRScope" href="../logic_tests_8cpp.html#ad2919e050b740fafe3545d279463a4ab" target="_parent">TEST(Car, carNotMovedWhenPathLeftBlocked):&#160;logicTests.cpp</a>
+ <a id="Item0_c12" onkeydown="return searchResults.NavChild(event,0,12)" onkeypress="return searchResults.NavChild(event,0,12)" onkeyup="return searchResults.NavChild(event,0,12)" class="SRScope" href="../logic_tests_8cpp.html#a9ac2e91f3041374b626d08f5ede8b914" target="_parent">TEST(Car, carNotMovedWhenPathRightBlocked):&#160;logicTests.cpp</a>
+ <a id="Item0_c13" onkeydown="return searchResults.NavChild(event,0,13)" onkeypress="return searchResults.NavChild(event,0,13)" onkeyup="return searchResults.NavChild(event,0,13)" class="SRScope" href="../logic_tests_8cpp.html#a485e6ab1a085528b7315eebf1ee9d65d" target="_parent">TEST(Car, carDoesNotMoveUpOutMaze):&#160;logicTests.cpp</a>
+ <a id="Item0_c14" onkeydown="return searchResults.NavChild(event,0,14)" onkeypress="return searchResults.NavChild(event,0,14)" onkeyup="return searchResults.NavChild(event,0,14)" class="SRScope" href="../logic_tests_8cpp.html#a2bf92ba800c8c7190ccd736289fc083a" target="_parent">TEST(Car, carDoesNotMoveDownOutMaze):&#160;logicTests.cpp</a>
+ <a id="Item0_c15" onkeydown="return searchResults.NavChild(event,0,15)" onkeypress="return searchResults.NavChild(event,0,15)" onkeyup="return searchResults.NavChild(event,0,15)" class="SRScope" href="../logic_tests_8cpp.html#a6a8767f7e51b8997ce11e56ce5d88b53" target="_parent">TEST(Car, carDoesNotMoveLeftOutMaze):&#160;logicTests.cpp</a>
+ <a id="Item0_c16" onkeydown="return searchResults.NavChild(event,0,16)" onkeypress="return searchResults.NavChild(event,0,16)" onkeyup="return searchResults.NavChild(event,0,16)" class="SRScope" href="../logic_tests_8cpp.html#aa9dba66248eff545a8f6d12943ad9965" target="_parent">TEST(Car, carDoesNotMoveRightOutMaze):&#160;logicTests.cpp</a>
+ <a id="Item0_c17" onkeydown="return searchResults.NavChild(event,0,17)" onkeypress="return searchResults.NavChild(event,0,17)" onkeyup="return searchResults.NavChild(event,0,17)" class="SRScope" href="../logic_tests_8cpp.html#a2e89a1385841eacfe13c25e920de6543" target="_parent">TEST(Checkpoint, countIncrementsAndDecrements):&#160;logicTests.cpp</a>
+ <a id="Item0_c18" onkeydown="return searchResults.NavChild(event,0,18)" onkeypress="return searchResults.NavChild(event,0,18)" onkeyup="return searchResults.NavChild(event,0,18)" class="SRScope" href="../logic_tests_8cpp.html#a8f4ecb8511bd9f8da009cce86e7de78f" target="_parent">TEST(CollisionDetector, playerAndEnemyBothDestroyed):&#160;logicTests.cpp</a>
+ <a id="Item0_c19" onkeydown="return searchResults.NavChild(event,0,19)" onkeypress="return searchResults.NavChild(event,0,19)" onkeyup="return searchResults.NavChild(event,0,19)" class="SRScope" href="../logic_tests_8cpp.html#abb21ae25f8060ef3dafd386ed054c44f" target="_parent">TEST(CollisionDetector, playerDestroyedByRock):&#160;logicTests.cpp</a>
+ <a id="Item0_c20" onkeydown="return searchResults.NavChild(event,0,20)" onkeypress="return searchResults.NavChild(event,0,20)" onkeyup="return searchResults.NavChild(event,0,20)" class="SRScope" href="../logic_tests_8cpp.html#a115831998a1832f3354e06bdd11c150b" target="_parent">TEST(CollisionDetector, checkpointDestroyedByPlayer):&#160;logicTests.cpp</a>
+ <a id="Item0_c21" onkeydown="return searchResults.NavChild(event,0,21)" onkeypress="return searchResults.NavChild(event,0,21)" onkeyup="return searchResults.NavChild(event,0,21)" class="SRScope" href="../logic_tests_8cpp.html#a9860202068d4e498e238d9d886234ea7" target="_parent">TEST(CollisionDetector, enemyStoppedBySmokescreen):&#160;logicTests.cpp</a>
+ <a id="Item0_c22" onkeydown="return searchResults.NavChild(event,0,22)" onkeypress="return searchResults.NavChild(event,0,22)" onkeyup="return searchResults.NavChild(event,0,22)" class="SRScope" href="../logic_tests_8cpp.html#a484a53647d1cde5db81c1fdc53bf55c9" target="_parent">TEST(DestroyedObjectPopup, destroyedAfterSetTime):&#160;logicTests.cpp</a>
+ <a id="Item0_c23" onkeydown="return searchResults.NavChild(event,0,23)" onkeypress="return searchResults.NavChild(event,0,23)" onkeyup="return searchResults.NavChild(event,0,23)" class="SRScope" href="../logic_tests_8cpp.html#aa16a32786815a8bb8cb7e8de664ff950" target="_parent">TEST(Maze, queryOutsideBoundsReturnsSolid):&#160;logicTests.cpp</a>
+ <a id="Item0_c24" onkeydown="return searchResults.NavChild(event,0,24)" onkeypress="return searchResults.NavChild(event,0,24)" onkeyup="return searchResults.NavChild(event,0,24)" class="SRScope" href="../logic_tests_8cpp.html#a38676411c83cef750c1e48dd8f1a87ca" target="_parent">TEST(Maze, generationWithWallsWithoutObjectMax):&#160;logicTests.cpp</a>
+ <a id="Item0_c25" onkeydown="return searchResults.NavChild(event,0,25)" onkeypress="return searchResults.NavChild(event,0,25)" onkeyup="return searchResults.NavChild(event,0,25)" class="SRScope" href="../logic_tests_8cpp.html#a0363213c93a0b22e67182dc5af60b78b" target="_parent">TEST(Maze, generationWithWallsWithObjectMax):&#160;logicTests.cpp</a>
+ <a id="Item0_c26" onkeydown="return searchResults.NavChild(event,0,26)" onkeypress="return searchResults.NavChild(event,0,26)" onkeyup="return searchResults.NavChild(event,0,26)" class="SRScope" href="../logic_tests_8cpp.html#a2b5bbb44002c6d13e3a3811cb3677832" target="_parent">TEST(MazeMath, distanceGivesExpectedResult):&#160;logicTests.cpp</a>
+ <a id="Item0_c27" onkeydown="return searchResults.NavChild(event,0,27)" onkeypress="return searchResults.NavChild(event,0,27)" onkeyup="return searchResults.NavChild(event,0,27)" class="SRScope" href="../logic_tests_8cpp.html#a5a55cf80381ed4c7885fb887427e6118" target="_parent">TEST(MazeMath, roundGivesExpectedResult):&#160;logicTests.cpp</a>
+ <a id="Item0_c28" onkeydown="return searchResults.NavChild(event,0,28)" onkeypress="return searchResults.NavChild(event,0,28)" onkeyup="return searchResults.NavChild(event,0,28)" class="SRScope" href="../logic_tests_8cpp.html#a610f20b2b4a1407fa2a8983015dfb81b" target="_parent">TEST(PlayerCar, creationAndDestructionCanHappen):&#160;logicTests.cpp</a>
+ <a id="Item0_c29" onkeydown="return searchResults.NavChild(event,0,29)" onkeypress="return searchResults.NavChild(event,0,29)" onkeyup="return searchResults.NavChild(event,0,29)" class="SRScope" href="../logic_tests_8cpp.html#a257f2123dddae6d77b7926f48d4e71e2" target="_parent">TEST(PlayerCar, playerSpeedAffectedByPetrol):&#160;logicTests.cpp</a>
+ <a id="Item0_c30" onkeydown="return searchResults.NavChild(event,0,30)" onkeypress="return searchResults.NavChild(event,0,30)" onkeyup="return searchResults.NavChild(event,0,30)" class="SRScope" href="../logic_tests_8cpp.html#a2de4a45e984d28048ec0cfcd3199cfc7" target="_parent">TEST(Smokescreen, destroyedAfterSetTime):&#160;logicTests.cpp</a>
+ <a id="Item0_c31" onkeydown="return searchResults.NavChild(event,0,31)" onkeypress="return searchResults.NavChild(event,0,31)" onkeyup="return searchResults.NavChild(event,0,31)" class="SRScope" href="../presentation_tests_8cpp.html#a1f28e78cfee8247b7031e29d1db8b088" target="_parent">TEST(BitmapStore, returnsBitmapForAllImages):&#160;presentationTests.cpp</a>
+ <a id="Item0_c32" onkeydown="return searchResults.NavChild(event,0,32)" onkeypress="return searchResults.NavChild(event,0,32)" onkeyup="return searchResults.NavChild(event,0,32)" class="SRScope" href="../presentation_tests_8cpp.html#a93e9b8f162d329b2498f62812b5651f9" target="_parent">TEST(ColourStore, returnsColourForAllImages):&#160;presentationTests.cpp</a>
+ <a id="Item0_c33" onkeydown="return searchResults.NavChild(event,0,33)" onkeypress="return searchResults.NavChild(event,0,33)" onkeyup="return searchResults.NavChild(event,0,33)" class="SRScope" href="../presentation_tests_8cpp.html#a09481990af46ae9fd4cced79cce78953" target="_parent">TEST(Screen, exceptionOnBadResolution):&#160;presentationTests.cpp</a>
+ <a id="Item0_c34" onkeydown="return searchResults.NavChild(event,0,34)" onkeypress="return searchResults.NavChild(event,0,34)" onkeyup="return searchResults.NavChild(event,0,34)" class="SRScope" href="../presentation_tests_8cpp.html#a52ee17980b74b96293db8c102b8245c0" target="_parent">TEST(Screen, noExceptionOnWindowed):&#160;presentationTests.cpp</a>
+ <a id="Item0_c35" onkeydown="return searchResults.NavChild(event,0,35)" onkeypress="return searchResults.NavChild(event,0,35)" onkeyup="return searchResults.NavChild(event,0,35)" class="SRScope" href="../presentation_tests_8cpp.html#a2f96180c4b643bba6a3e9c97a9467f8f" target="_parent">TEST(Screen, noExceptionOnGoodResolution):&#160;presentationTests.cpp</a>
+ <a id="Item0_c36" onkeydown="return searchResults.NavChild(event,0,36)" onkeypress="return searchResults.NavChild(event,0,36)" onkeyup="return searchResults.NavChild(event,0,36)" class="SRScope" href="../presentation_tests_8cpp.html#ac0685cd3085971f9d09b22ed8563d766" target="_parent">TEST(ScreenPanel, drawingToCurrentBackBuffer):&#160;presentationTests.cpp</a>
+ <a id="Item0_c37" onkeydown="return searchResults.NavChild(event,0,37)" onkeypress="return searchResults.NavChild(event,0,37)" onkeyup="return searchResults.NavChild(event,0,37)" class="SRScope" href="../presentation_tests_8cpp.html#a8b8a615a5a6ef5da97b81d626fba41eb" target="_parent">TEST(ScreenPanel, drawingToCurrentBackBufferAfterFlip):&#160;presentationTests.cpp</a>
+ </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_75.html b/docs/html/search/all_75.html
new file mode 100644
index 0000000..4c6a3a0
--- /dev/null
+++ b/docs/html/search/all_75.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_up">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_maze.html#ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7" target="_parent">UP</a>
+ <span class="SRScope">Maze</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_up_5fkey">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_keyboard_handler.html#a3ed342ff89f15b752a9957fd435e9094" target="_parent">UP_KEY</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_update">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_update')">update</a>
+ <div class="SRChildren">
+ <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../class_enemy_car.html#a9f08f73a076e48a0bc0092e72e15e7e4" target="_parent">EnemyCar::update()</a>
+ <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../class_game.html#a79df6376b332d63c9eca0dcee30305c3" target="_parent">Game::update()</a>
+ <a id="Item2_c2" onkeydown="return searchResults.NavChild(event,2,2)" onkeypress="return searchResults.NavChild(event,2,2)" onkeyup="return searchResults.NavChild(event,2,2)" class="SRScope" href="../class_limited_time_object.html#ad81a1c9aba4e21dfa40b9e6d881aba4e" target="_parent">LimitedTimeObject::update()</a>
+ <a id="Item2_c3" onkeydown="return searchResults.NavChild(event,2,3)" onkeypress="return searchResults.NavChild(event,2,3)" onkeyup="return searchResults.NavChild(event,2,3)" class="SRScope" href="../class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" target="_parent">PlayerCar::update()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_updateflags">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../class_keyboard_handler.html#a9f53a546420f3d02363c9e1e4e346420" target="_parent">updateFlags</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_77.html b/docs/html/search/all_77.html
new file mode 100644
index 0000000..f17fa83
--- /dev/null
+++ b/docs/html/search/all_77.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_wall_5fchar">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_level_reader.html#a250f9fede6584dc196acce86a8e217f9" target="_parent">WALL_CHAR</a>
+ <span class="SRScope">LevelReader</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_width">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_maze.html#a6963ffbb8e10f5ca72ddc749b3f29419" target="_parent">width</a>
+ <span class="SRScope">Maze</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_writeunfoundvalues">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../class_config.html#a54612c3ce193bea917d3088175e16d43" target="_parent">writeUnfoundValues</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_78.html b/docs/html/search/all_78.html
new file mode 100644
index 0000000..ff7579d
--- /dev/null
+++ b/docs/html/search/all_78.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_x">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_game_object.html#a676dd981c2891493782de36fb4618cd8" target="_parent">x</a>
+ <span class="SRScope">GameObject</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_79.html b/docs/html/search/all_79.html
new file mode 100644
index 0000000..ae80e5f
--- /dev/null
+++ b/docs/html/search/all_79.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_y">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_game_object.html#a293548656551d6aed5f714f8c4a3235b" target="_parent">y</a>
+ <span class="SRScope">GameObject</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/all_7e.html b/docs/html/search/all_7e.html
new file mode 100644
index 0000000..19a8b8d
--- /dev/null
+++ b/docs/html/search/all_7e.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR__7eallegrodrawinginit">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_allegro_drawing_init.html#aa1c05a296b0c63f8f20276cce6472e6b" target="_parent">~AllegroDrawingInit</a>
+ <span class="SRScope">AllegroDrawingInit</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__7eallegroinit">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_allegro_init.html#a41fb85a1de21168ec2a93e79e0e20b89" target="_parent">~AllegroInit</a>
+ <span class="SRScope">AllegroInit</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__7eallegrokeyboardinit">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../class_allegro_keyboard_init.html#a7d1b1cda1d2220ad522ee955ba8a2c5d" target="_parent">~AllegroKeyboardInit</a>
+ <span class="SRScope">AllegroKeyboardInit</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__7ebitmapstore">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../class_bitmap_store.html#a1e34f2fb55475f16ade380fa1e8829f7" target="_parent">~BitmapStore</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__7echeckpoint">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../class_checkpoint.html#a7fff1a4a6a71c2150a969fbe40d01c34" target="_parent">~Checkpoint</a>
+ <span class="SRScope">Checkpoint</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__7egame">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../class_game.html#ae3d112ca6e0e55150d2fdbc704474530" target="_parent">~Game</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__7einfopanel">
+ <div class="SREntry">
+ <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../class_info_panel.html#a052da279d4bf0405ae3735f24cc2e2a2" target="_parent">~InfoPanel</a>
+ <span class="SRScope">InfoPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__7ekeyboardhandler">
+ <div class="SREntry">
+ <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../class_keyboard_handler.html#ab090fe5afdee856604b0aa0d9eb918a4" target="_parent">~KeyboardHandler</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__7escreen">
+ <div class="SREntry">
+ <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="../class_screen.html#a4243bc17596af96415b09ac48205676d" target="_parent">~Screen</a>
+ <span class="SRScope">Screen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__7escreenpanel">
+ <div class="SREntry">
+ <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="../class_screen_panel.html#a843296c130c75beb41ada9ba3eddd457" target="_parent">~ScreenPanel</a>
+ <span class="SRScope">ScreenPanel</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/classes_61.html b/docs/html/search/classes_61.html
new file mode 100644
index 0000000..ae9f121
--- /dev/null
+++ b/docs/html/search/classes_61.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_allegrodrawinginit">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_allegro_drawing_init.html" target="_parent">AllegroDrawingInit</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_allegroinit">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_allegro_init.html" target="_parent">AllegroInit</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_allegrokeyboardinit">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../class_allegro_keyboard_init.html" target="_parent">AllegroKeyboardInit</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/classes_62.html b/docs/html/search/classes_62.html
new file mode 100644
index 0000000..8a8211d
--- /dev/null
+++ b/docs/html/search/classes_62.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_badresolution">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_bad_resolution.html" target="_parent">BadResolution</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_bitmapstore">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_bitmap_store.html" target="_parent">BitmapStore</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/classes_63.html b/docs/html/search/classes_63.html
new file mode 100644
index 0000000..823371b
--- /dev/null
+++ b/docs/html/search/classes_63.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_car">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_car.html" target="_parent">Car</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_checkpoint">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_checkpoint.html" target="_parent">Checkpoint</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_collisiondetector">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../class_collision_detector.html" target="_parent">CollisionDetector</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_colourstore">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../class_colour_store.html" target="_parent">ColourStore</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_config">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../class_config.html" target="_parent">Config</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/classes_64.html b/docs/html/search/classes_64.html
new file mode 100644
index 0000000..f9c5933
--- /dev/null
+++ b/docs/html/search/classes_64.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_destroyedobjectpopup">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_destroyed_object_popup.html" target="_parent">DestroyedObjectPopup</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/classes_65.html b/docs/html/search/classes_65.html
new file mode 100644
index 0000000..d1c9969
--- /dev/null
+++ b/docs/html/search/classes_65.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_enemycar">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_enemy_car.html" target="_parent">EnemyCar</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/classes_66.html b/docs/html/search/classes_66.html
new file mode 100644
index 0000000..bfec288
--- /dev/null
+++ b/docs/html/search/classes_66.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_fileopenerror">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_file_open_error.html" target="_parent">FileOpenError</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/classes_67.html b/docs/html/search/classes_67.html
new file mode 100644
index 0000000..dfe34c9
--- /dev/null
+++ b/docs/html/search/classes_67.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_game">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_game.html" target="_parent">Game</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_gameobject">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_game_object.html" target="_parent">GameObject</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_gamepanel">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../class_game_panel.html" target="_parent">GamePanel</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/classes_69.html b/docs/html/search/classes_69.html
new file mode 100644
index 0000000..5c2c70c
--- /dev/null
+++ b/docs/html/search/classes_69.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_infopanel">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_info_panel.html" target="_parent">InfoPanel</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_installfailure">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_install_failure.html" target="_parent">InstallFailure</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/classes_6b.html b/docs/html/search/classes_6b.html
new file mode 100644
index 0000000..83c51f5
--- /dev/null
+++ b/docs/html/search/classes_6b.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_keyboardhandler">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_keyboard_handler.html" target="_parent">KeyboardHandler</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/classes_6c.html b/docs/html/search/classes_6c.html
new file mode 100644
index 0000000..5c5affb
--- /dev/null
+++ b/docs/html/search/classes_6c.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_levelreader">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_level_reader.html" target="_parent">LevelReader</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_limitedtimeobject">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_limited_time_object.html" target="_parent">LimitedTimeObject</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/classes_6d.html b/docs/html/search/classes_6d.html
new file mode 100644
index 0000000..caef00a
--- /dev/null
+++ b/docs/html/search/classes_6d.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_maze">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_maze.html" target="_parent">Maze</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_mazemath">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_maze_math.html" target="_parent">MazeMath</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/classes_70.html b/docs/html/search/classes_70.html
new file mode 100644
index 0000000..2c68ad2
--- /dev/null
+++ b/docs/html/search/classes_70.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_playercar">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_player_car.html" target="_parent">PlayerCar</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/classes_72.html b/docs/html/search/classes_72.html
new file mode 100644
index 0000000..87cfb96
--- /dev/null
+++ b/docs/html/search/classes_72.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_rock">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_rock.html" target="_parent">Rock</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/classes_73.html b/docs/html/search/classes_73.html
new file mode 100644
index 0000000..d18c026
--- /dev/null
+++ b/docs/html/search/classes_73.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_screen">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_screen.html" target="_parent">Screen</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_screenpanel">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_screen_panel.html" target="_parent">ScreenPanel</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_smokescreen">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../class_smokescreen.html" target="_parent">Smokescreen</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/close.png b/docs/html/search/close.png
new file mode 100644
index 0000000..9342d3d
--- /dev/null
+++ b/docs/html/search/close.png
Binary files differ
diff --git a/docs/html/search/enums_64.html b/docs/html/search/enums_64.html
new file mode 100644
index 0000000..3e8936c
--- /dev/null
+++ b/docs/html/search/enums_64.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_direction">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_maze.html#ad12c28d50f4d7457160a70a94acfe28f" target="_parent">Direction</a>
+ <span class="SRScope">Maze</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/enums_69.html b/docs/html/search/enums_69.html
new file mode 100644
index 0000000..27c99fb
--- /dev/null
+++ b/docs/html/search/enums_69.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_image">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386" target="_parent">Image</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/enums_73.html b/docs/html/search/enums_73.html
new file mode 100644
index 0000000..33a34da
--- /dev/null
+++ b/docs/html/search/enums_73.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_states">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87" target="_parent">States</a>
+ <span class="SRScope">EnemyCar</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/enumvalues_62.html b/docs/html/search/enumvalues_62.html
new file mode 100644
index 0000000..10e8fd0
--- /dev/null
+++ b/docs/html/search/enumvalues_62.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_blinded">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87af45d8b201d7334e42651b262a03d631c" target="_parent">BLINDED</a>
+ <span class="SRScope">EnemyCar</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/enumvalues_63.html b/docs/html/search/enumvalues_63.html
new file mode 100644
index 0000000..b0bd8b7
--- /dev/null
+++ b/docs/html/search/enumvalues_63.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_chasing">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_enemy_car.html#afdd204c097eda1ff9232743bf216ce87a28df0785e03156c97ddeb81da5e0770c" target="_parent">CHASING</a>
+ <span class="SRScope">EnemyCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_checkpoint">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a780d6b9e20ec37fbaf5a40ca846795d9" target="_parent">CHECKPOINT</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_claimed_5fcheckpoint">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a824f0021358b88c7f1172d7dece95948" target="_parent">CLAIMED_CHECKPOINT</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_crashed_5fcar">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a8b9eb5b79abe467982784ea2227d67e0" target="_parent">CRASHED_CAR</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/enumvalues_64.html b/docs/html/search/enumvalues_64.html
new file mode 100644
index 0000000..f080072
--- /dev/null
+++ b/docs/html/search/enumvalues_64.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_down">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa89ab143d020541957ab5e0e9cfdd3e23" target="_parent">DOWN</a>
+ <span class="SRScope">Maze</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/enumvalues_65.html b/docs/html/search/enumvalues_65.html
new file mode 100644
index 0000000..65e33bb
--- /dev/null
+++ b/docs/html/search/enumvalues_65.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_enemy">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a8a7d9a89e243914ca702660237d4f81d" target="_parent">ENEMY</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/enumvalues_6c.html b/docs/html/search/enumvalues_6c.html
new file mode 100644
index 0000000..d3813bd
--- /dev/null
+++ b/docs/html/search/enumvalues_6c.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_left">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_maze.html#ad12c28d50f4d7457160a70a94acfe28faab1a1fe0274cd139b3c0116d8caf458c" target="_parent">LEFT</a>
+ <span class="SRScope">Maze</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/enumvalues_6d.html b/docs/html/search/enumvalues_6d.html
new file mode 100644
index 0000000..58f5604
--- /dev/null
+++ b/docs/html/search/enumvalues_6d.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_maze_5ffloor">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a4e2a075dff2c02bf40b134c9090d1f02" target="_parent">MAZE_FLOOR</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_maze_5fwall">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386ae662e77b349a8e22c5826ef35b1b5d9a" target="_parent">MAZE_WALL</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/enumvalues_70.html b/docs/html/search/enumvalues_70.html
new file mode 100644
index 0000000..a0bfa22
--- /dev/null
+++ b/docs/html/search/enumvalues_70.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_player">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386acdaf29947fecd91b452e554a75fb9e92" target="_parent">PLAYER</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/enumvalues_72.html b/docs/html/search/enumvalues_72.html
new file mode 100644
index 0000000..ecc9b9a
--- /dev/null
+++ b/docs/html/search/enumvalues_72.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_right">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa699ae3e1d989e9b12bd200aa86e29e9d" target="_parent">RIGHT</a>
+ <span class="SRScope">Maze</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_rock">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386abf3851dc0110fc83020981fcbb5773eb" target="_parent">ROCK</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/enumvalues_73.html b/docs/html/search/enumvalues_73.html
new file mode 100644
index 0000000..710a98d
--- /dev/null
+++ b/docs/html/search/enumvalues_73.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_smoke">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a91fec244d29999552e93ecb7578713fb" target="_parent">SMOKE</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/enumvalues_75.html b/docs/html/search/enumvalues_75.html
new file mode 100644
index 0000000..0734bfe
--- /dev/null
+++ b/docs/html/search/enumvalues_75.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_up">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_maze.html#ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7" target="_parent">UP</a>
+ <span class="SRScope">Maze</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/files_61.html b/docs/html/search/files_61.html
new file mode 100644
index 0000000..a491010
--- /dev/null
+++ b/docs/html/search/files_61.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_allegrowrappers_2ecpp">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../_allegro_wrappers_8cpp.html" target="_parent">AllegroWrappers.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_allegrowrappers_2eh">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../_allegro_wrappers_8h.html" target="_parent">AllegroWrappers.h</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/files_62.html b/docs/html/search/files_62.html
new file mode 100644
index 0000000..ff00283
--- /dev/null
+++ b/docs/html/search/files_62.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_bitmapstore_2ecpp">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../_bitmap_store_8cpp.html" target="_parent">BitmapStore.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_bitmapstore_2eh">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../_bitmap_store_8h.html" target="_parent">BitmapStore.h</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/files_63.html b/docs/html/search/files_63.html
new file mode 100644
index 0000000..5ddc56a
--- /dev/null
+++ b/docs/html/search/files_63.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_car_2ecpp">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../_car_8cpp.html" target="_parent">Car.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_car_2eh">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../_car_8h.html" target="_parent">Car.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_checkpoint_2ecpp">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../_checkpoint_8cpp.html" target="_parent">Checkpoint.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_checkpoint_2eh">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../_checkpoint_8h.html" target="_parent">Checkpoint.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_collisiondetector_2ecpp">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../_collision_detector_8cpp.html" target="_parent">CollisionDetector.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_collisiondetector_2eh">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../_collision_detector_8h.html" target="_parent">CollisionDetector.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_colourstore_2ecpp">
+ <div class="SREntry">
+ <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../_colour_store_8cpp.html" target="_parent">ColourStore.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_colourstore_2eh">
+ <div class="SREntry">
+ <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../_colour_store_8h.html" target="_parent">ColourStore.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_config_2ecpp">
+ <div class="SREntry">
+ <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="../_config_8cpp.html" target="_parent">Config.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_config_2eh">
+ <div class="SREntry">
+ <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="../_config_8h.html" target="_parent">Config.h</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/files_64.html b/docs/html/search/files_64.html
new file mode 100644
index 0000000..f7f39a3
--- /dev/null
+++ b/docs/html/search/files_64.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_datatests_2ecpp">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../data_tests_8cpp.html" target="_parent">dataTests.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_destroyedobjectpopup_2ecpp">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../_destroyed_object_popup_8cpp.html" target="_parent">DestroyedObjectPopup.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_destroyedobjectpopup_2eh">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../_destroyed_object_popup_8h.html" target="_parent">DestroyedObjectPopup.h</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/files_65.html b/docs/html/search/files_65.html
new file mode 100644
index 0000000..8bd7b7b
--- /dev/null
+++ b/docs/html/search/files_65.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_enemycar_2ecpp">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../_enemy_car_8cpp.html" target="_parent">EnemyCar.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_enemycar_2eh">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../_enemy_car_8h.html" target="_parent">EnemyCar.h</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/files_67.html b/docs/html/search/files_67.html
new file mode 100644
index 0000000..95bc570
--- /dev/null
+++ b/docs/html/search/files_67.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_game_2ecpp">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../_game_8cpp.html" target="_parent">Game.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_game_2eh">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../_game_8h.html" target="_parent">Game.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_gameobject_2ecpp">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../_game_object_8cpp.html" target="_parent">GameObject.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_gameobject_2eh">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../_game_object_8h.html" target="_parent">GameObject.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_gamepanel_2ecpp">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../_game_panel_8cpp.html" target="_parent">GamePanel.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_gamepanel_2eh">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../_game_panel_8h.html" target="_parent">GamePanel.h</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/files_69.html b/docs/html/search/files_69.html
new file mode 100644
index 0000000..921bd65
--- /dev/null
+++ b/docs/html/search/files_69.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_infopanel_2ecpp">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../_info_panel_8cpp.html" target="_parent">InfoPanel.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_infopanel_2eh">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../_info_panel_8h.html" target="_parent">InfoPanel.h</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/files_6b.html b/docs/html/search/files_6b.html
new file mode 100644
index 0000000..e1f674d
--- /dev/null
+++ b/docs/html/search/files_6b.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_keyboardhandler_2ecpp">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../_keyboard_handler_8cpp.html" target="_parent">KeyboardHandler.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_keyboardhandler_2eh">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../_keyboard_handler_8h.html" target="_parent">KeyboardHandler.h</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/files_6c.html b/docs/html/search/files_6c.html
new file mode 100644
index 0000000..d14eae0
--- /dev/null
+++ b/docs/html/search/files_6c.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_levelreader_2ecpp">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../_level_reader_8cpp.html" target="_parent">LevelReader.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_levelreader_2eh">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../_level_reader_8h.html" target="_parent">LevelReader.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_limitedtimeobject_2ecpp">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../_limited_time_object_8cpp.html" target="_parent">LimitedTimeObject.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_limitedtimeobject_2eh">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../_limited_time_object_8h.html" target="_parent">LimitedTimeObject.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_logictests_2ecpp">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../logic_tests_8cpp.html" target="_parent">logicTests.cpp</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/files_6d.html b/docs/html/search/files_6d.html
new file mode 100644
index 0000000..97c7f44
--- /dev/null
+++ b/docs/html/search/files_6d.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_main_2ecpp">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../main_8cpp.html" target="_parent">main.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_maze_2ecpp">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../_maze_8cpp.html" target="_parent">Maze.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_maze_2eh">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../_maze_8h.html" target="_parent">Maze.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_mazemath_2ecpp">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../_maze_math_8cpp.html" target="_parent">MazeMath.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_mazemath_2eh">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../_maze_math_8h.html" target="_parent">MazeMath.h</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/files_70.html b/docs/html/search/files_70.html
new file mode 100644
index 0000000..fa4a831
--- /dev/null
+++ b/docs/html/search/files_70.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_playercar_2ecpp">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../_player_car_8cpp.html" target="_parent">PlayerCar.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_playercar_2eh">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../_player_car_8h.html" target="_parent">PlayerCar.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_presentationtests_2ecpp">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../presentation_tests_8cpp.html" target="_parent">presentationTests.cpp</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/files_72.html b/docs/html/search/files_72.html
new file mode 100644
index 0000000..60131e0
--- /dev/null
+++ b/docs/html/search/files_72.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_rock_2ecpp">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../_rock_8cpp.html" target="_parent">Rock.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_rock_2eh">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../_rock_8h.html" target="_parent">Rock.h</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/files_73.html b/docs/html/search/files_73.html
new file mode 100644
index 0000000..adb71a2
--- /dev/null
+++ b/docs/html/search/files_73.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_screen_2ecpp">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../_screen_8cpp.html" target="_parent">Screen.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_screen_2eh">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../_screen_8h.html" target="_parent">Screen.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_screenpanel_2ecpp">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../_screen_panel_8cpp.html" target="_parent">ScreenPanel.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_screenpanel_2eh">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../_screen_panel_8h.html" target="_parent">ScreenPanel.h</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_smokescreen_2ecpp">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../_smokescreen_8cpp.html" target="_parent">Smokescreen.cpp</a>
+ </div>
+</div>
+<div class="SRResult" id="SR_smokescreen_2eh">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../_smokescreen_8h.html" target="_parent">Smokescreen.h</a>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_61.html b/docs/html/search/functions_61.html
new file mode 100644
index 0000000..4a6eac0
--- /dev/null
+++ b/docs/html/search/functions_61.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_allegrodrawinginit">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_allegrodrawinginit')">AllegroDrawingInit</a>
+ <div class="SRChildren">
+ <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../class_allegro_drawing_init.html#ab7cf79c71bf662f897bd8cba32f42cda" target="_parent">AllegroDrawingInit::AllegroDrawingInit()</a>
+ <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../class_allegro_drawing_init.html#a36fe883267f017f3832feb1f615d7488" target="_parent">AllegroDrawingInit::AllegroDrawingInit(const AllegroDrawingInit &amp;ref)</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_allegroinit">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_allegroinit')">AllegroInit</a>
+ <div class="SRChildren">
+ <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../class_allegro_init.html#a14e28ffed7456b158cf919d310920af4" target="_parent">AllegroInit::AllegroInit()</a>
+ <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../class_allegro_init.html#a81588c1ce0fe3646a188683f1598a66b" target="_parent">AllegroInit::AllegroInit(const AllegroInit &amp;ref)</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_allegrokeyboardinit">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_allegrokeyboardinit')">AllegroKeyboardInit</a>
+ <div class="SRChildren">
+ <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../class_allegro_keyboard_init.html#a42fce2d97b6b7c0c0c666d0f5804a45e" target="_parent">AllegroKeyboardInit::AllegroKeyboardInit()</a>
+ <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../class_allegro_keyboard_init.html#ae28cb5cbafdba3372f21ddb95a9ed134" target="_parent">AllegroKeyboardInit::AllegroKeyboardInit(const AllegroKeyboardInit &amp;ref)</a>
+ </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_62.html b/docs/html/search/functions_62.html
new file mode 100644
index 0000000..0c04b25
--- /dev/null
+++ b/docs/html/search/functions_62.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_backwards">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_maze.html#a79cf362b55c21634a93ef6b7d192b77c" target="_parent">backwards</a>
+ <span class="SRScope">Maze</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_bitmapstore">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_bitmapstore')">BitmapStore</a>
+ <div class="SRChildren">
+ <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../class_bitmap_store.html#abca96ce53be18eb07150745871a3165c" target="_parent">BitmapStore::BitmapStore(unsigned int blockWidth)</a>
+ <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../class_bitmap_store.html#a012f7ace750e7964f20a39cbb5fbe321" target="_parent">BitmapStore::BitmapStore(const BitmapStore &amp;ref)</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_blind">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../class_enemy_car.html#aeb8bf92c965ab33f793b0274a02f142c" target="_parent">blind</a>
+ <span class="SRScope">EnemyCar</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_63.html b/docs/html/search/functions_63.html
new file mode 100644
index 0000000..db220d6
--- /dev/null
+++ b/docs/html/search/functions_63.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_car">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_car.html#a3bd1dc6b75af9dc5bbe4354e0b3161d0" target="_parent">Car</a>
+ <span class="SRScope">Car</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_checkcollisions">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_collision_detector.html#a6ee96032c26ceeab038d2702d7064c7b" target="_parent">checkCollisions</a>
+ <span class="SRScope">CollisionDetector</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_checkfacing">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../class_enemy_car.html#afa61cecf7df51e26edd632303c18945c" target="_parent">checkFacing</a>
+ <span class="SRScope">EnemyCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_checkpoint">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_checkpoint')">Checkpoint</a>
+ <div class="SRChildren">
+ <a id="Item3_c0" onkeydown="return searchResults.NavChild(event,3,0)" onkeypress="return searchResults.NavChild(event,3,0)" onkeyup="return searchResults.NavChild(event,3,0)" class="SRScope" href="../class_checkpoint.html#a20c371a9e21ac0092b652a7d63f46f85" target="_parent">Checkpoint::Checkpoint(double x, double y)</a>
+ <a id="Item3_c1" onkeydown="return searchResults.NavChild(event,3,1)" onkeypress="return searchResults.NavChild(event,3,1)" onkeyup="return searchResults.NavChild(event,3,1)" class="SRScope" href="../class_checkpoint.html#ac94e0d92110fc4105bf5bf82ef4a5818" target="_parent">Checkpoint::Checkpoint(const Checkpoint &amp;ref)</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_checkpointcount">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../class_checkpoint.html#a872d8574b6f0a7960854fb1175e05f13" target="_parent">checkpointCount</a>
+ <span class="SRScope">Checkpoint</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_cleanup">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../class_game.html#a961f632fbe7f4ba08d23fe9edc7711be" target="_parent">cleanup</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_clearlists">
+ <div class="SREntry">
+ <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../class_game.html#a03cf795e9aaa4c5950b4b5e918ab9ab6" target="_parent">clearLists</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_collect">
+ <div class="SREntry">
+ <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../class_checkpoint.html#ad8f4b9da968e6b1f07080dc6f61282f7" target="_parent">collect</a>
+ <span class="SRScope">Checkpoint</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_collision">
+ <div class="SREntry">
+ <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_collision')">collision</a>
+ <div class="SRChildren">
+ <a id="Item8_c0" onkeydown="return searchResults.NavChild(event,8,0)" onkeypress="return searchResults.NavChild(event,8,0)" onkeyup="return searchResults.NavChild(event,8,0)" class="SRScope" href="../class_collision_detector.html#a9d013c0f8e15cbfd4741a0789ba507fe" target="_parent">CollisionDetector::collision(PlayerCar &amp;player, Checkpoint &amp;checkpoint)</a>
+ <a id="Item8_c1" onkeydown="return searchResults.NavChild(event,8,1)" onkeypress="return searchResults.NavChild(event,8,1)" onkeyup="return searchResults.NavChild(event,8,1)" class="SRScope" href="../class_collision_detector.html#a36e9c23d49ee7be68277c7d4e4f27d2a" target="_parent">CollisionDetector::collision(PlayerCar &amp;player, EnemyCar &amp;enemy)</a>
+ <a id="Item8_c2" onkeydown="return searchResults.NavChild(event,8,2)" onkeypress="return searchResults.NavChild(event,8,2)" onkeyup="return searchResults.NavChild(event,8,2)" class="SRScope" href="../class_collision_detector.html#ad9502a42ff9f43804284d0128794edaa" target="_parent">CollisionDetector::collision(PlayerCar &amp;player, Rock &amp;rock)</a>
+ <a id="Item8_c3" onkeydown="return searchResults.NavChild(event,8,3)" onkeypress="return searchResults.NavChild(event,8,3)" onkeyup="return searchResults.NavChild(event,8,3)" class="SRScope" href="../class_collision_detector.html#a68572f5ec6cf32f28f07bda7a7b96452" target="_parent">CollisionDetector::collision(EnemyCar &amp;enemy, Smokescreen &amp;smokescreen)</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_colourstore">
+ <div class="SREntry">
+ <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_colourstore')">ColourStore</a>
+ <div class="SRChildren">
+ <a id="Item9_c0" onkeydown="return searchResults.NavChild(event,9,0)" onkeypress="return searchResults.NavChild(event,9,0)" onkeyup="return searchResults.NavChild(event,9,0)" class="SRScope" href="../class_colour_store.html#a667f2e3c6d5b6eb553f58724e58bbed0" target="_parent">ColourStore::ColourStore()</a>
+ <a id="Item9_c1" onkeydown="return searchResults.NavChild(event,9,1)" onkeypress="return searchResults.NavChild(event,9,1)" onkeyup="return searchResults.NavChild(event,9,1)" class="SRScope" href="../class_colour_store.html#a3063a6fce81040a8b840a303b1e08829" target="_parent">ColourStore::ColourStore(const ColourStore &amp;ref)</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_config">
+ <div class="SREntry">
+ <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="../class_config.html#aab967ce080511b4ae5bf578cba5237d3" target="_parent">Config</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_crash">
+ <div class="SREntry">
+ <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_crash')">crash</a>
+ <div class="SRChildren">
+ <a id="Item11_c0" onkeydown="return searchResults.NavChild(event,11,0)" onkeypress="return searchResults.NavChild(event,11,0)" onkeyup="return searchResults.NavChild(event,11,0)" class="SRScope" href="../class_enemy_car.html#ac5836046e802a749abb2308886b34060" target="_parent">EnemyCar::crash()</a>
+ <a id="Item11_c1" onkeydown="return searchResults.NavChild(event,11,1)" onkeypress="return searchResults.NavChild(event,11,1)" onkeyup="return searchResults.NavChild(event,11,1)" class="SRScope" href="../class_player_car.html#a1bdd1dbdf1158b740cd1bcb757f8c578" target="_parent">PlayerCar::crash()</a>
+ </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_64.html b/docs/html/search/functions_64.html
new file mode 100644
index 0000000..613f3e0
--- /dev/null
+++ b/docs/html/search/functions_64.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_destroyed">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_game_object.html#a266871f6c0220f6b3c902075ebff8eea" target="_parent">destroyed</a>
+ <span class="SRScope">GameObject</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_destroyedobjectpopup">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_destroyed_object_popup.html#af34a9f7421a49953f6bd86233a6a44bc" target="_parent">DestroyedObjectPopup</a>
+ <span class="SRScope">DestroyedObjectPopup</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_distance">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../class_maze_math.html#a5735276fb4c76f25944f2c02d622c3f6" target="_parent">distance</a>
+ <span class="SRScope">MazeMath</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_draw">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_draw')">draw</a>
+ <div class="SRChildren">
+ <a id="Item3_c0" onkeydown="return searchResults.NavChild(event,3,0)" onkeypress="return searchResults.NavChild(event,3,0)" onkeyup="return searchResults.NavChild(event,3,0)" class="SRScope" href="../class_game_panel.html#ab093fb770fa8b46ee863947259c72abd" target="_parent">GamePanel::draw(const Maze &amp;maze, const list&lt; PlayerCar &gt; &amp;players, const list&lt; EnemyCar &gt; &amp;enemies, const list&lt; Checkpoint &gt; &amp;checkpoints, const list&lt; Rock &gt; &amp;rocks, const list&lt; Smokescreen &gt; &amp;smokescreens, const list&lt; DestroyedObjectPopup &gt; &amp;popups)</a>
+ <a id="Item3_c1" onkeydown="return searchResults.NavChild(event,3,1)" onkeypress="return searchResults.NavChild(event,3,1)" onkeyup="return searchResults.NavChild(event,3,1)" class="SRScope" href="../class_game_panel.html#a93395482993b341b1b72fbb256ce9be9" target="_parent">GamePanel::draw(const Maze &amp;maze)</a>
+ <a id="Item3_c2" onkeydown="return searchResults.NavChild(event,3,2)" onkeypress="return searchResults.NavChild(event,3,2)" onkeyup="return searchResults.NavChild(event,3,2)" class="SRScope" href="../class_game_panel.html#acff2b430ecad1310a0a36cfe7c994d2f" target="_parent">GamePanel::draw(const GameObject &amp;object)</a>
+ <a id="Item3_c3" onkeydown="return searchResults.NavChild(event,3,3)" onkeypress="return searchResults.NavChild(event,3,3)" onkeyup="return searchResults.NavChild(event,3,3)" class="SRScope" href="../class_info_panel.html#aa9628c14e08ac6573e0191d9d4afa227" target="_parent">InfoPanel::draw(const Maze &amp;maze, const list&lt; PlayerCar &gt; &amp;players, const list&lt; EnemyCar &gt; &amp;enemies, const list&lt; Checkpoint &gt; &amp;checkpoints, const list&lt; Rock &gt; &amp;rocks, const list&lt; Smokescreen &gt; &amp;smokescreens, const list&lt; DestroyedObjectPopup &gt; &amp;popups)</a>
+ <a id="Item3_c4" onkeydown="return searchResults.NavChild(event,3,4)" onkeypress="return searchResults.NavChild(event,3,4)" onkeyup="return searchResults.NavChild(event,3,4)" class="SRScope" href="../class_info_panel.html#a23a025859397c3e28bbe9dce26563d7c" target="_parent">InfoPanel::draw(const Maze &amp;maze)</a>
+ <a id="Item3_c5" onkeydown="return searchResults.NavChild(event,3,5)" onkeypress="return searchResults.NavChild(event,3,5)" onkeyup="return searchResults.NavChild(event,3,5)" class="SRScope" href="../class_info_panel.html#abc82d5365a89b3e374dbbdda86b77703" target="_parent">InfoPanel::draw(const GameObject &amp;object)</a>
+ <a id="Item3_c6" onkeydown="return searchResults.NavChild(event,3,6)" onkeypress="return searchResults.NavChild(event,3,6)" onkeyup="return searchResults.NavChild(event,3,6)" class="SRScope" href="../class_screen.html#aec3c5c20e14d6ef033c8a6a559a84872" target="_parent">Screen::draw()</a>
+ <a id="Item3_c7" onkeydown="return searchResults.NavChild(event,3,7)" onkeypress="return searchResults.NavChild(event,3,7)" onkeyup="return searchResults.NavChild(event,3,7)" class="SRScope" href="../class_screen_panel.html#ab4299f065cdf3e344c3b32b484136ada" target="_parent">ScreenPanel::draw()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_drawcheckpoint">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../class_bitmap_store.html#ae5d12fa60b03a7ea2119c67938650352" target="_parent">drawCheckpoint</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_drawclaimedcheckpoint">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../class_bitmap_store.html#a07f505192ccf0717d6aed29761934a5c" target="_parent">drawClaimedCheckpoint</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_drawcrashedcar">
+ <div class="SREntry">
+ <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../class_bitmap_store.html#abb0a062e5cb3170786a6c202a53c145b" target="_parent">drawCrashedCar</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_drawenemycar">
+ <div class="SREntry">
+ <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../class_bitmap_store.html#aff7a6fc2b35ff6cd38ef74730523f5a9" target="_parent">drawEnemyCar</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_drawloss">
+ <div class="SREntry">
+ <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="../class_screen.html#aab9ab8447df2b526985970d2ac80c919" target="_parent">drawLoss</a>
+ <span class="SRScope">Screen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_drawmazefloor">
+ <div class="SREntry">
+ <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="../class_bitmap_store.html#a8a7d5fe7cc38ddb3c651152654226201" target="_parent">drawMazeFloor</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_drawmazewall">
+ <div class="SREntry">
+ <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="../class_bitmap_store.html#a90680d174c1d77e19ace8c2ba0eef6ac" target="_parent">drawMazeWall</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_drawplayercar">
+ <div class="SREntry">
+ <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="../class_bitmap_store.html#af645b30d96761f401770336a555b6429" target="_parent">drawPlayerCar</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_drawrock">
+ <div class="SREntry">
+ <a id="Item12" onkeydown="return searchResults.Nav(event,12)" onkeypress="return searchResults.Nav(event,12)" onkeyup="return searchResults.Nav(event,12)" class="SRSymbol" href="../class_bitmap_store.html#a2132a5ec8dfb43f06f75accf8bb9a50e" target="_parent">drawRock</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_drawsmoke">
+ <div class="SREntry">
+ <a id="Item13" onkeydown="return searchResults.Nav(event,13)" onkeypress="return searchResults.Nav(event,13)" onkeyup="return searchResults.Nav(event,13)" class="SRSymbol" href="../class_bitmap_store.html#a1a346a06675a7257ca8a7879aeb27e48" target="_parent">drawSmoke</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_drawwin">
+ <div class="SREntry">
+ <a id="Item14" onkeydown="return searchResults.Nav(event,14)" onkeypress="return searchResults.Nav(event,14)" onkeyup="return searchResults.Nav(event,14)" class="SRSymbol" href="../class_screen.html#ad4c1281e4d59eb89377dd87bba8a310e" target="_parent">drawWin</a>
+ <span class="SRScope">Screen</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_65.html b/docs/html/search/functions_65.html
new file mode 100644
index 0000000..f2d7516
--- /dev/null
+++ b/docs/html/search/functions_65.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_enemycar">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_enemy_car.html#a8af7d3c56fa9dad09992ce6fbd7389d2" target="_parent">EnemyCar</a>
+ <span class="SRScope">EnemyCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_exitclicked">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_screen.html#acca34443ba0ad97922069658d688ea9a" target="_parent">exitClicked</a>
+ <span class="SRScope">Screen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_extractvalue">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../class_config.html#a38dee1d0fe4e962aedcee79faad2691c" target="_parent">extractValue</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_66.html b/docs/html/search/functions_66.html
new file mode 100644
index 0000000..1b2cdc1
--- /dev/null
+++ b/docs/html/search/functions_66.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_facing">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_game_object.html#a2549066ec4dc8f4ca2d3a8c5d5729324" target="_parent">facing</a>
+ <span class="SRScope">GameObject</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_fillvalues">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_config.html#ac31c5164b58f86c2a9ecaf21ac1f2202" target="_parent">fillValues</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_flip">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_flip')">flip</a>
+ <div class="SRChildren">
+ <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../class_screen.html#abd12bddd241c8d214d2423804fe20ffb" target="_parent">Screen::flip()</a>
+ <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../class_screen_panel.html#ab701d3888b13463d200be112f0eb4d82" target="_parent">ScreenPanel::flip()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_fullscreen">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../class_config.html#a8a401add779f2b74732ade9e515bf0cd" target="_parent">fullscreen</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_67.html b/docs/html/search/functions_67.html
new file mode 100644
index 0000000..3a15fa4
--- /dev/null
+++ b/docs/html/search/functions_67.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_game">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_game')">Game</a>
+ <div class="SRChildren">
+ <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../class_game.html#ad59df6562a58a614fda24622d3715b65" target="_parent">Game::Game()</a>
+ <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../class_game.html#a22c1dee02ec8e0050a66eb851f2cf212" target="_parent">Game::Game(const Game &amp;ref)</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_gameobject">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_game_object.html#a26cba01b9c2d301d4ee89a98b9396d67" target="_parent">GameObject</a>
+ <span class="SRScope">GameObject</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_gamepanel">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_gamepanel')">GamePanel</a>
+ <div class="SRChildren">
+ <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../class_game_panel.html#a3475820b2255da92e247d07248870044" target="_parent">GamePanel::GamePanel(ALLEGRO_BITMAP *back, ALLEGRO_BITMAP *front, int x, int y, int width, int height)</a>
+ <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../class_game_panel.html#ac7699585182c097daab6aeda844b4edd" target="_parent">GamePanel::GamePanel(const GamePanel &amp;ref)</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_generatemaze">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" target="_parent">generateMaze</a>
+ <span class="SRScope">Maze</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_getbitmap">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../class_bitmap_store.html#aadd437c869c5856c36d920dfafbc6ee4" target="_parent">getBitmap</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_getcolour">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../class_colour_store.html#ac8474c4e9b335215f03ec2c749847ad2" target="_parent">getColour</a>
+ <span class="SRScope">ColourStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_getfacing">
+ <div class="SREntry">
+ <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../class_keyboard_handler.html#ae17ed4bf0abae7d95f9b772a6d704a70" target="_parent">getFacing</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_getlevel">
+ <div class="SREntry">
+ <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../class_screen.html#a45d06e513491e40f76013fb670c6c6cc" target="_parent">getLevel</a>
+ <span class="SRScope">Screen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_getpanelx">
+ <div class="SREntry">
+ <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_getpanelx')">getPanelX</a>
+ <div class="SRChildren">
+ <a id="Item8_c0" onkeydown="return searchResults.NavChild(event,8,0)" onkeypress="return searchResults.NavChild(event,8,0)" onkeyup="return searchResults.NavChild(event,8,0)" class="SRScope" href="../class_game_panel.html#a53a4386ab0f60db88b3c638b3880cd91" target="_parent">GamePanel::getPanelX()</a>
+ <a id="Item8_c1" onkeydown="return searchResults.NavChild(event,8,1)" onkeypress="return searchResults.NavChild(event,8,1)" onkeyup="return searchResults.NavChild(event,8,1)" class="SRScope" href="../class_info_panel.html#a0accb88b099f412cc3baa7d2bf4690aa" target="_parent">InfoPanel::getPanelX()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_getpanely">
+ <div class="SREntry">
+ <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_getpanely')">getPanelY</a>
+ <div class="SRChildren">
+ <a id="Item9_c0" onkeydown="return searchResults.NavChild(event,9,0)" onkeypress="return searchResults.NavChild(event,9,0)" onkeyup="return searchResults.NavChild(event,9,0)" class="SRScope" href="../class_game_panel.html#a0e722b67c8ee7fe5f557821adf9b8cc2" target="_parent">GamePanel::getPanelY()</a>
+ <a id="Item9_c1" onkeydown="return searchResults.NavChild(event,9,1)" onkeypress="return searchResults.NavChild(event,9,1)" onkeyup="return searchResults.NavChild(event,9,1)" class="SRScope" href="../class_info_panel.html#ad962eab814441375a8634b67d743d7e6" target="_parent">InfoPanel::getPanelY()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_getsmokescreen">
+ <div class="SREntry">
+ <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="../class_keyboard_handler.html#ab66797a37a1c54a630187519870d9a5b" target="_parent">getSmokescreen</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_getsolid">
+ <div class="SREntry">
+ <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="../class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" target="_parent">getSolid</a>
+ <span class="SRScope">Maze</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_gotcheckpoint">
+ <div class="SREntry">
+ <a id="Item12" onkeydown="return searchResults.Nav(event,12)" onkeypress="return searchResults.Nav(event,12)" onkeyup="return searchResults.Nav(event,12)" class="SRSymbol" href="../class_player_car.html#aaa8b9d66c0c4e4eab5a303dd0a4e5f39" target="_parent">gotCheckpoint</a>
+ <span class="SRScope">PlayerCar</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_68.html b/docs/html/search/functions_68.html
new file mode 100644
index 0000000..4af788f
--- /dev/null
+++ b/docs/html/search/functions_68.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_height">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_maze.html#a53de30abea69713225ab77703e753d81" target="_parent">height</a>
+ <span class="SRScope">Maze</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_69.html b/docs/html/search/functions_69.html
new file mode 100644
index 0000000..39c5363
--- /dev/null
+++ b/docs/html/search/functions_69.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_image">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_game_object.html#a05e352e3e01e774892beee0503fdb349" target="_parent">image</a>
+ <span class="SRScope">GameObject</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_infopanel">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_infopanel')">InfoPanel</a>
+ <div class="SRChildren">
+ <a id="Item1_c0" onkeydown="return searchResults.NavChild(event,1,0)" onkeypress="return searchResults.NavChild(event,1,0)" onkeyup="return searchResults.NavChild(event,1,0)" class="SRScope" href="../class_info_panel.html#a5a3d0afb5ebd764de04484b1817912b6" target="_parent">InfoPanel::InfoPanel(ALLEGRO_BITMAP *back, ALLEGRO_BITMAP *front, int x, int y, int width, int height)</a>
+ <a id="Item1_c1" onkeydown="return searchResults.NavChild(event,1,1)" onkeypress="return searchResults.NavChild(event,1,1)" onkeyup="return searchResults.NavChild(event,1,1)" class="SRScope" href="../class_info_panel.html#a6eac5bf29b155213dffd60460d299049" target="_parent">InfoPanel::InfoPanel(const InfoPanel &amp;ref)</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_initlevel">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../class_game.html#a2bd8589c18470f644445d97c1c35d169" target="_parent">initLevel</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_6b.html b/docs/html/search/functions_6b.html
new file mode 100644
index 0000000..a1c6ce6
--- /dev/null
+++ b/docs/html/search/functions_6b.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_keyboardhandler">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_keyboardhandler')">KeyboardHandler</a>
+ <div class="SRChildren">
+ <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../class_keyboard_handler.html#acd0d5781016f792207464bb720d2f994" target="_parent">KeyboardHandler::KeyboardHandler(Maze::Direction currentFacing)</a>
+ <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../class_keyboard_handler.html#a8942a24f122f96b2b5d7c91f1c6ff332" target="_parent">KeyboardHandler::KeyboardHandler(const KeyboardHandler &amp;ref)</a>
+ </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_6c.html b/docs/html/search/functions_6c.html
new file mode 100644
index 0000000..f814eba
--- /dev/null
+++ b/docs/html/search/functions_6c.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_levelreader">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_level_reader.html#ad093a54f9753a22dd66748b82a08c1fd" target="_parent">LevelReader</a>
+ <span class="SRScope">LevelReader</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_limitedtimeobject">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_limited_time_object.html#a0993f1696ed62abc3ef7856e4da7ae0e" target="_parent">LimitedTimeObject</a>
+ <span class="SRScope">LimitedTimeObject</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_6d.html b/docs/html/search/functions_6d.html
new file mode 100644
index 0000000..eeaf51b
--- /dev/null
+++ b/docs/html/search/functions_6d.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_main">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4" target="_parent">main</a>
+ <span class="SRScope">main.cpp</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_makesmoke">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_player_car.html#aafbb292597e0e4648a52444b25e0c5d1" target="_parent">makeSmoke</a>
+ <span class="SRScope">PlayerCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_maze">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../class_maze.html#a7ecf1da4b9685f97bf3110a8479e724b" target="_parent">Maze</a>
+ <span class="SRScope">Maze</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_mazemath">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_mazemath')">MazeMath</a>
+ <div class="SRChildren">
+ <a id="Item3_c0" onkeydown="return searchResults.NavChild(event,3,0)" onkeypress="return searchResults.NavChild(event,3,0)" onkeyup="return searchResults.NavChild(event,3,0)" class="SRScope" href="../class_maze_math.html#ac85f1216ce8dc44bc2fb4483b3f4a128" target="_parent">MazeMath::MazeMath()</a>
+ <a id="Item3_c1" onkeydown="return searchResults.NavChild(event,3,1)" onkeypress="return searchResults.NavChild(event,3,1)" onkeyup="return searchResults.NavChild(event,3,1)" class="SRScope" href="../class_maze_math.html#a8e1499b201cd7034b4a73ed180a87eda" target="_parent">MazeMath::MazeMath(const MazeMath &amp;ref)</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_move">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../class_car.html#a85e8699362bb5206e4142dbd5d20dcb9" target="_parent">move</a>
+ <span class="SRScope">Car</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_6f.html b/docs/html/search/functions_6f.html
new file mode 100644
index 0000000..daab4e0
--- /dev/null
+++ b/docs/html/search/functions_6f.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_operator_3d">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_operator_3d')">operator=</a>
+ <div class="SRChildren">
+ <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../class_game.html#abf375a1957b6fdb5cbe67ef70fa818f5" target="_parent">Game::operator=()</a>
+ <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../class_maze_math.html#ac7cf69d865cf69b82c991241fa39cd59" target="_parent">MazeMath::operator=()</a>
+ <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../class_bitmap_store.html#a3c1092d55aaf1c9c5b7424d7eb2f1576" target="_parent">BitmapStore::operator=()</a>
+ <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../class_colour_store.html#a2d3688dbcdf5f9f9b82ef50709c2f286" target="_parent">ColourStore::operator=()</a>
+ <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../class_game_panel.html#afa4391feb9b273eb938531a73b1ec7f2" target="_parent">GamePanel::operator=()</a>
+ <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../class_info_panel.html#ab70ce071b189ffe1b7e7a67a6227393f" target="_parent">InfoPanel::operator=()</a>
+ <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../class_keyboard_handler.html#a5135c450b82394496457a0a51d5240f5" target="_parent">KeyboardHandler::operator=()</a>
+ <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../class_screen.html#a0e36165c330af54d9786b2c6dadbadb5" target="_parent">Screen::operator=()</a>
+ <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../class_screen_panel.html#a896035d9c68aecd6ca802e2223d26ec5" target="_parent">ScreenPanel::operator=()</a>
+ </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_70.html b/docs/html/search/functions_70.html
new file mode 100644
index 0000000..1c49c64
--- /dev/null
+++ b/docs/html/search/functions_70.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_petrol">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_player_car.html#af32c01166e92d567202c8415cb3e7c88" target="_parent">petrol</a>
+ <span class="SRScope">PlayerCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_playercar">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_player_car.html#a59864f7746f6b96364cc5cc87f9b70e0" target="_parent">PlayerCar</a>
+ <span class="SRScope">PlayerCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_populatecolours">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../class_colour_store.html#ad3f729c8e9f6a94bacd85e6db47e2e82" target="_parent">populateColours</a>
+ <span class="SRScope">ColourStore</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_72.html b/docs/html/search/functions_72.html
new file mode 100644
index 0000000..0117f67
--- /dev/null
+++ b/docs/html/search/functions_72.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_readfile">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_config.html#aa9656bf85fa15fd4e90a99558f880602" target="_parent">readFile</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_readlevel">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_level_reader.html#a27277149f3270e040c8ffeadbca79758" target="_parent">readLevel</a>
+ <span class="SRScope">LevelReader</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_resolutionsupported">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../class_screen.html#a6480d57328a39c579f312774b5fbf571" target="_parent">resolutionSupported</a>
+ <span class="SRScope">Screen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_rock">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../class_rock.html#af8a54b6f7458d83cf27753f53c8c0c19" target="_parent">Rock</a>
+ <span class="SRScope">Rock</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_rockatlocation">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../class_enemy_car.html#af0dca9b89448557020ef02a18cffb682" target="_parent">rockAtLocation</a>
+ <span class="SRScope">EnemyCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_round">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../class_maze_math.html#a2314f211065f4dc7cb11469770fd2f1c" target="_parent">round</a>
+ <span class="SRScope">MazeMath</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_runloop">
+ <div class="SREntry">
+ <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../class_game.html#a069837f5f3f3b91b581e41dd74667211" target="_parent">runloop</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_73.html b/docs/html/search/functions_73.html
new file mode 100644
index 0000000..cf812a0
--- /dev/null
+++ b/docs/html/search/functions_73.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_screen">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_screen')">Screen</a>
+ <div class="SRChildren">
+ <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../class_screen.html#aa430a980cb3dcca13c837f70bf801511" target="_parent">Screen::Screen(unsigned int screenWidth, unsigned int screenHeight, bool fullscreen)</a>
+ <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../class_screen.html#af46d7f95b577627f99af02f241026f4c" target="_parent">Screen::Screen(const Screen &amp;ref)</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_screenheight">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_config.html#a53d63c52aa51b5231b9ea8e412086773" target="_parent">screenHeight</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_screenpanel">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_screenpanel')">ScreenPanel</a>
+ <div class="SRChildren">
+ <a id="Item2_c0" onkeydown="return searchResults.NavChild(event,2,0)" onkeypress="return searchResults.NavChild(event,2,0)" onkeyup="return searchResults.NavChild(event,2,0)" class="SRScope" href="../class_screen_panel.html#a8c13559489444ea8131066fa5b884645" target="_parent">ScreenPanel::ScreenPanel(ALLEGRO_BITMAP *back, ALLEGRO_BITMAP *front, int x, int y, int width, int height)</a>
+ <a id="Item2_c1" onkeydown="return searchResults.NavChild(event,2,1)" onkeypress="return searchResults.NavChild(event,2,1)" onkeyup="return searchResults.NavChild(event,2,1)" class="SRScope" href="../class_screen_panel.html#a60c670cbb4930adcb77dc3002fdeb4df" target="_parent">ScreenPanel::ScreenPanel(const ScreenPanel &amp;ref)</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_screenwidth">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../class_config.html#a3bb73797396d2d5ba8c9956730dfc4db" target="_parent">screenWidth</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_setfullscreen">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../class_config.html#a5ce32c242ca037105a2430a122249a0a" target="_parent">setFullscreen</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_setscreenheight">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../class_config.html#a8e960645b79f31c39ee0cecc89ed6060" target="_parent">setScreenHeight</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_setscreenwidth">
+ <div class="SREntry">
+ <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../class_config.html#ac0fd2f7c14b9f26339862da74215bf01" target="_parent">setScreenWidth</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_smokescreen">
+ <div class="SREntry">
+ <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../class_smokescreen.html#ad112d610ab5b88da319e0cf46a5a1344" target="_parent">Smokescreen</a>
+ <span class="SRScope">Smokescreen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_speed">
+ <div class="SREntry">
+ <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="../class_car.html#a68b59187e1520a5d016b0894b4c116b9" target="_parent">speed</a>
+ <span class="SRScope">Car</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_start">
+ <div class="SREntry">
+ <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="../class_game.html#a3d9b98f7c4a96ecf578f75b96c9f0e90" target="_parent">start</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_74.html b/docs/html/search/functions_74.html
new file mode 100644
index 0000000..18c22e8
--- /dev/null
+++ b/docs/html/search/functions_74.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_test">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_test')">TEST</a>
+ <div class="SRChildren">
+ <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" target="_parent">TEST(Config, readsSettingsCorrectly):&#160;dataTests.cpp</a>
+ <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../data_tests_8cpp.html#a2159abeac0546de95bbdd68b1e10c56c" target="_parent">TEST(Config, createsFileIfNeeded):&#160;dataTests.cpp</a>
+ <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../data_tests_8cpp.html#a49403434f62b3318444eff742d2b2231" target="_parent">TEST(Config, incompleteFileFilled):&#160;dataTests.cpp</a>
+ <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../data_tests_8cpp.html#afc4fdfbf4ea1ef87d266b9b67cc665d1" target="_parent">TEST(LevelReader, readsFileInfoObjects):&#160;dataTests.cpp</a>
+ <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../data_tests_8cpp.html#a63083af852f9dfa8036f327f6fa84328" target="_parent">TEST(LevelReader, throwsExceptionOnBadFilename):&#160;dataTests.cpp</a>
+ <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../logic_tests_8cpp.html#af107924db552c5a66c5bf3aeafe15519" target="_parent">TEST(Car, updateMovesPlayerUpInEmptyMaze):&#160;logicTests.cpp</a>
+ <a id="Item0_c6" onkeydown="return searchResults.NavChild(event,0,6)" onkeypress="return searchResults.NavChild(event,0,6)" onkeyup="return searchResults.NavChild(event,0,6)" class="SRScope" href="../logic_tests_8cpp.html#a4011469f0a6dfeb25d704d662ce02caf" target="_parent">TEST(Car, updateMovesPlayerDownInEmptyMaze):&#160;logicTests.cpp</a>
+ <a id="Item0_c7" onkeydown="return searchResults.NavChild(event,0,7)" onkeypress="return searchResults.NavChild(event,0,7)" onkeyup="return searchResults.NavChild(event,0,7)" class="SRScope" href="../logic_tests_8cpp.html#ac7954e0cf27b4044b5b9ba0a7faf747e" target="_parent">TEST(Car, updateMovesPlayerLeftInEmptyMaze):&#160;logicTests.cpp</a>
+ <a id="Item0_c8" onkeydown="return searchResults.NavChild(event,0,8)" onkeypress="return searchResults.NavChild(event,0,8)" onkeyup="return searchResults.NavChild(event,0,8)" class="SRScope" href="../logic_tests_8cpp.html#a1b0625252aae5ca87e0b26e01b7aa506" target="_parent">TEST(Car, updateMovesPlayerRightInEmptyMaze):&#160;logicTests.cpp</a>
+ <a id="Item0_c9" onkeydown="return searchResults.NavChild(event,0,9)" onkeypress="return searchResults.NavChild(event,0,9)" onkeyup="return searchResults.NavChild(event,0,9)" class="SRScope" href="../logic_tests_8cpp.html#a2c0f1615b9769a4140124c5d6845d50a" target="_parent">TEST(Car, carNotMovedWhenPathUpBlocked):&#160;logicTests.cpp</a>
+ <a id="Item0_c10" onkeydown="return searchResults.NavChild(event,0,10)" onkeypress="return searchResults.NavChild(event,0,10)" onkeyup="return searchResults.NavChild(event,0,10)" class="SRScope" href="../logic_tests_8cpp.html#a1a6506ee8e2f21181a26f92098707a9b" target="_parent">TEST(Car, carNotMovedWhenPathDownBlocked):&#160;logicTests.cpp</a>
+ <a id="Item0_c11" onkeydown="return searchResults.NavChild(event,0,11)" onkeypress="return searchResults.NavChild(event,0,11)" onkeyup="return searchResults.NavChild(event,0,11)" class="SRScope" href="../logic_tests_8cpp.html#ad2919e050b740fafe3545d279463a4ab" target="_parent">TEST(Car, carNotMovedWhenPathLeftBlocked):&#160;logicTests.cpp</a>
+ <a id="Item0_c12" onkeydown="return searchResults.NavChild(event,0,12)" onkeypress="return searchResults.NavChild(event,0,12)" onkeyup="return searchResults.NavChild(event,0,12)" class="SRScope" href="../logic_tests_8cpp.html#a9ac2e91f3041374b626d08f5ede8b914" target="_parent">TEST(Car, carNotMovedWhenPathRightBlocked):&#160;logicTests.cpp</a>
+ <a id="Item0_c13" onkeydown="return searchResults.NavChild(event,0,13)" onkeypress="return searchResults.NavChild(event,0,13)" onkeyup="return searchResults.NavChild(event,0,13)" class="SRScope" href="../logic_tests_8cpp.html#a485e6ab1a085528b7315eebf1ee9d65d" target="_parent">TEST(Car, carDoesNotMoveUpOutMaze):&#160;logicTests.cpp</a>
+ <a id="Item0_c14" onkeydown="return searchResults.NavChild(event,0,14)" onkeypress="return searchResults.NavChild(event,0,14)" onkeyup="return searchResults.NavChild(event,0,14)" class="SRScope" href="../logic_tests_8cpp.html#a2bf92ba800c8c7190ccd736289fc083a" target="_parent">TEST(Car, carDoesNotMoveDownOutMaze):&#160;logicTests.cpp</a>
+ <a id="Item0_c15" onkeydown="return searchResults.NavChild(event,0,15)" onkeypress="return searchResults.NavChild(event,0,15)" onkeyup="return searchResults.NavChild(event,0,15)" class="SRScope" href="../logic_tests_8cpp.html#a6a8767f7e51b8997ce11e56ce5d88b53" target="_parent">TEST(Car, carDoesNotMoveLeftOutMaze):&#160;logicTests.cpp</a>
+ <a id="Item0_c16" onkeydown="return searchResults.NavChild(event,0,16)" onkeypress="return searchResults.NavChild(event,0,16)" onkeyup="return searchResults.NavChild(event,0,16)" class="SRScope" href="../logic_tests_8cpp.html#aa9dba66248eff545a8f6d12943ad9965" target="_parent">TEST(Car, carDoesNotMoveRightOutMaze):&#160;logicTests.cpp</a>
+ <a id="Item0_c17" onkeydown="return searchResults.NavChild(event,0,17)" onkeypress="return searchResults.NavChild(event,0,17)" onkeyup="return searchResults.NavChild(event,0,17)" class="SRScope" href="../logic_tests_8cpp.html#a2e89a1385841eacfe13c25e920de6543" target="_parent">TEST(Checkpoint, countIncrementsAndDecrements):&#160;logicTests.cpp</a>
+ <a id="Item0_c18" onkeydown="return searchResults.NavChild(event,0,18)" onkeypress="return searchResults.NavChild(event,0,18)" onkeyup="return searchResults.NavChild(event,0,18)" class="SRScope" href="../logic_tests_8cpp.html#a8f4ecb8511bd9f8da009cce86e7de78f" target="_parent">TEST(CollisionDetector, playerAndEnemyBothDestroyed):&#160;logicTests.cpp</a>
+ <a id="Item0_c19" onkeydown="return searchResults.NavChild(event,0,19)" onkeypress="return searchResults.NavChild(event,0,19)" onkeyup="return searchResults.NavChild(event,0,19)" class="SRScope" href="../logic_tests_8cpp.html#abb21ae25f8060ef3dafd386ed054c44f" target="_parent">TEST(CollisionDetector, playerDestroyedByRock):&#160;logicTests.cpp</a>
+ <a id="Item0_c20" onkeydown="return searchResults.NavChild(event,0,20)" onkeypress="return searchResults.NavChild(event,0,20)" onkeyup="return searchResults.NavChild(event,0,20)" class="SRScope" href="../logic_tests_8cpp.html#a115831998a1832f3354e06bdd11c150b" target="_parent">TEST(CollisionDetector, checkpointDestroyedByPlayer):&#160;logicTests.cpp</a>
+ <a id="Item0_c21" onkeydown="return searchResults.NavChild(event,0,21)" onkeypress="return searchResults.NavChild(event,0,21)" onkeyup="return searchResults.NavChild(event,0,21)" class="SRScope" href="../logic_tests_8cpp.html#a9860202068d4e498e238d9d886234ea7" target="_parent">TEST(CollisionDetector, enemyStoppedBySmokescreen):&#160;logicTests.cpp</a>
+ <a id="Item0_c22" onkeydown="return searchResults.NavChild(event,0,22)" onkeypress="return searchResults.NavChild(event,0,22)" onkeyup="return searchResults.NavChild(event,0,22)" class="SRScope" href="../logic_tests_8cpp.html#a484a53647d1cde5db81c1fdc53bf55c9" target="_parent">TEST(DestroyedObjectPopup, destroyedAfterSetTime):&#160;logicTests.cpp</a>
+ <a id="Item0_c23" onkeydown="return searchResults.NavChild(event,0,23)" onkeypress="return searchResults.NavChild(event,0,23)" onkeyup="return searchResults.NavChild(event,0,23)" class="SRScope" href="../logic_tests_8cpp.html#aa16a32786815a8bb8cb7e8de664ff950" target="_parent">TEST(Maze, queryOutsideBoundsReturnsSolid):&#160;logicTests.cpp</a>
+ <a id="Item0_c24" onkeydown="return searchResults.NavChild(event,0,24)" onkeypress="return searchResults.NavChild(event,0,24)" onkeyup="return searchResults.NavChild(event,0,24)" class="SRScope" href="../logic_tests_8cpp.html#a38676411c83cef750c1e48dd8f1a87ca" target="_parent">TEST(Maze, generationWithWallsWithoutObjectMax):&#160;logicTests.cpp</a>
+ <a id="Item0_c25" onkeydown="return searchResults.NavChild(event,0,25)" onkeypress="return searchResults.NavChild(event,0,25)" onkeyup="return searchResults.NavChild(event,0,25)" class="SRScope" href="../logic_tests_8cpp.html#a0363213c93a0b22e67182dc5af60b78b" target="_parent">TEST(Maze, generationWithWallsWithObjectMax):&#160;logicTests.cpp</a>
+ <a id="Item0_c26" onkeydown="return searchResults.NavChild(event,0,26)" onkeypress="return searchResults.NavChild(event,0,26)" onkeyup="return searchResults.NavChild(event,0,26)" class="SRScope" href="../logic_tests_8cpp.html#a2b5bbb44002c6d13e3a3811cb3677832" target="_parent">TEST(MazeMath, distanceGivesExpectedResult):&#160;logicTests.cpp</a>
+ <a id="Item0_c27" onkeydown="return searchResults.NavChild(event,0,27)" onkeypress="return searchResults.NavChild(event,0,27)" onkeyup="return searchResults.NavChild(event,0,27)" class="SRScope" href="../logic_tests_8cpp.html#a5a55cf80381ed4c7885fb887427e6118" target="_parent">TEST(MazeMath, roundGivesExpectedResult):&#160;logicTests.cpp</a>
+ <a id="Item0_c28" onkeydown="return searchResults.NavChild(event,0,28)" onkeypress="return searchResults.NavChild(event,0,28)" onkeyup="return searchResults.NavChild(event,0,28)" class="SRScope" href="../logic_tests_8cpp.html#a610f20b2b4a1407fa2a8983015dfb81b" target="_parent">TEST(PlayerCar, creationAndDestructionCanHappen):&#160;logicTests.cpp</a>
+ <a id="Item0_c29" onkeydown="return searchResults.NavChild(event,0,29)" onkeypress="return searchResults.NavChild(event,0,29)" onkeyup="return searchResults.NavChild(event,0,29)" class="SRScope" href="../logic_tests_8cpp.html#a257f2123dddae6d77b7926f48d4e71e2" target="_parent">TEST(PlayerCar, playerSpeedAffectedByPetrol):&#160;logicTests.cpp</a>
+ <a id="Item0_c30" onkeydown="return searchResults.NavChild(event,0,30)" onkeypress="return searchResults.NavChild(event,0,30)" onkeyup="return searchResults.NavChild(event,0,30)" class="SRScope" href="../logic_tests_8cpp.html#a2de4a45e984d28048ec0cfcd3199cfc7" target="_parent">TEST(Smokescreen, destroyedAfterSetTime):&#160;logicTests.cpp</a>
+ <a id="Item0_c31" onkeydown="return searchResults.NavChild(event,0,31)" onkeypress="return searchResults.NavChild(event,0,31)" onkeyup="return searchResults.NavChild(event,0,31)" class="SRScope" href="../presentation_tests_8cpp.html#a1f28e78cfee8247b7031e29d1db8b088" target="_parent">TEST(BitmapStore, returnsBitmapForAllImages):&#160;presentationTests.cpp</a>
+ <a id="Item0_c32" onkeydown="return searchResults.NavChild(event,0,32)" onkeypress="return searchResults.NavChild(event,0,32)" onkeyup="return searchResults.NavChild(event,0,32)" class="SRScope" href="../presentation_tests_8cpp.html#a93e9b8f162d329b2498f62812b5651f9" target="_parent">TEST(ColourStore, returnsColourForAllImages):&#160;presentationTests.cpp</a>
+ <a id="Item0_c33" onkeydown="return searchResults.NavChild(event,0,33)" onkeypress="return searchResults.NavChild(event,0,33)" onkeyup="return searchResults.NavChild(event,0,33)" class="SRScope" href="../presentation_tests_8cpp.html#a09481990af46ae9fd4cced79cce78953" target="_parent">TEST(Screen, exceptionOnBadResolution):&#160;presentationTests.cpp</a>
+ <a id="Item0_c34" onkeydown="return searchResults.NavChild(event,0,34)" onkeypress="return searchResults.NavChild(event,0,34)" onkeyup="return searchResults.NavChild(event,0,34)" class="SRScope" href="../presentation_tests_8cpp.html#a52ee17980b74b96293db8c102b8245c0" target="_parent">TEST(Screen, noExceptionOnWindowed):&#160;presentationTests.cpp</a>
+ <a id="Item0_c35" onkeydown="return searchResults.NavChild(event,0,35)" onkeypress="return searchResults.NavChild(event,0,35)" onkeyup="return searchResults.NavChild(event,0,35)" class="SRScope" href="../presentation_tests_8cpp.html#a2f96180c4b643bba6a3e9c97a9467f8f" target="_parent">TEST(Screen, noExceptionOnGoodResolution):&#160;presentationTests.cpp</a>
+ <a id="Item0_c36" onkeydown="return searchResults.NavChild(event,0,36)" onkeypress="return searchResults.NavChild(event,0,36)" onkeyup="return searchResults.NavChild(event,0,36)" class="SRScope" href="../presentation_tests_8cpp.html#ac0685cd3085971f9d09b22ed8563d766" target="_parent">TEST(ScreenPanel, drawingToCurrentBackBuffer):&#160;presentationTests.cpp</a>
+ <a id="Item0_c37" onkeydown="return searchResults.NavChild(event,0,37)" onkeypress="return searchResults.NavChild(event,0,37)" onkeyup="return searchResults.NavChild(event,0,37)" class="SRScope" href="../presentation_tests_8cpp.html#a8b8a615a5a6ef5da97b81d626fba41eb" target="_parent">TEST(ScreenPanel, drawingToCurrentBackBufferAfterFlip):&#160;presentationTests.cpp</a>
+ </div>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_75.html b/docs/html/search/functions_75.html
new file mode 100644
index 0000000..8ff10d7
--- /dev/null
+++ b/docs/html/search/functions_75.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_update">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR_update')">update</a>
+ <div class="SRChildren">
+ <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../class_enemy_car.html#a9f08f73a076e48a0bc0092e72e15e7e4" target="_parent">EnemyCar::update()</a>
+ <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../class_game.html#a79df6376b332d63c9eca0dcee30305c3" target="_parent">Game::update()</a>
+ <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../class_limited_time_object.html#ad81a1c9aba4e21dfa40b9e6d881aba4e" target="_parent">LimitedTimeObject::update()</a>
+ <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" target="_parent">PlayerCar::update()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR_updateflags">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_keyboard_handler.html#a9f53a546420f3d02363c9e1e4e346420" target="_parent">updateFlags</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_77.html b/docs/html/search/functions_77.html
new file mode 100644
index 0000000..cde1b62
--- /dev/null
+++ b/docs/html/search/functions_77.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_width">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_maze.html#a6963ffbb8e10f5ca72ddc749b3f29419" target="_parent">width</a>
+ <span class="SRScope">Maze</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_writeunfoundvalues">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_config.html#a54612c3ce193bea917d3088175e16d43" target="_parent">writeUnfoundValues</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_78.html b/docs/html/search/functions_78.html
new file mode 100644
index 0000000..ff7579d
--- /dev/null
+++ b/docs/html/search/functions_78.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_x">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_game_object.html#a676dd981c2891493782de36fb4618cd8" target="_parent">x</a>
+ <span class="SRScope">GameObject</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_79.html b/docs/html/search/functions_79.html
new file mode 100644
index 0000000..ae80e5f
--- /dev/null
+++ b/docs/html/search/functions_79.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_y">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_game_object.html#a293548656551d6aed5f714f8c4a3235b" target="_parent">y</a>
+ <span class="SRScope">GameObject</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/functions_7e.html b/docs/html/search/functions_7e.html
new file mode 100644
index 0000000..19a8b8d
--- /dev/null
+++ b/docs/html/search/functions_7e.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR__7eallegrodrawinginit">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_allegro_drawing_init.html#aa1c05a296b0c63f8f20276cce6472e6b" target="_parent">~AllegroDrawingInit</a>
+ <span class="SRScope">AllegroDrawingInit</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__7eallegroinit">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_allegro_init.html#a41fb85a1de21168ec2a93e79e0e20b89" target="_parent">~AllegroInit</a>
+ <span class="SRScope">AllegroInit</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__7eallegrokeyboardinit">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../class_allegro_keyboard_init.html#a7d1b1cda1d2220ad522ee955ba8a2c5d" target="_parent">~AllegroKeyboardInit</a>
+ <span class="SRScope">AllegroKeyboardInit</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__7ebitmapstore">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../class_bitmap_store.html#a1e34f2fb55475f16ade380fa1e8829f7" target="_parent">~BitmapStore</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__7echeckpoint">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../class_checkpoint.html#a7fff1a4a6a71c2150a969fbe40d01c34" target="_parent">~Checkpoint</a>
+ <span class="SRScope">Checkpoint</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__7egame">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../class_game.html#ae3d112ca6e0e55150d2fdbc704474530" target="_parent">~Game</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__7einfopanel">
+ <div class="SREntry">
+ <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../class_info_panel.html#a052da279d4bf0405ae3735f24cc2e2a2" target="_parent">~InfoPanel</a>
+ <span class="SRScope">InfoPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__7ekeyboardhandler">
+ <div class="SREntry">
+ <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../class_keyboard_handler.html#ab090fe5afdee856604b0aa0d9eb918a4" target="_parent">~KeyboardHandler</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__7escreen">
+ <div class="SREntry">
+ <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="../class_screen.html#a4243bc17596af96415b09ac48205676d" target="_parent">~Screen</a>
+ <span class="SRScope">Screen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__7escreenpanel">
+ <div class="SREntry">
+ <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="../class_screen_panel.html#a843296c130c75beb41ada9ba3eddd457" target="_parent">~ScreenPanel</a>
+ <span class="SRScope">ScreenPanel</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/mag_sel.png b/docs/html/search/mag_sel.png
new file mode 100644
index 0000000..81f6040
--- /dev/null
+++ b/docs/html/search/mag_sel.png
Binary files differ
diff --git a/docs/html/search/nomatches.html b/docs/html/search/nomatches.html
new file mode 100644
index 0000000..b1ded27
--- /dev/null
+++ b/docs/html/search/nomatches.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/search.css b/docs/html/search/search.css
new file mode 100644
index 0000000..dae426e
--- /dev/null
+++ b/docs/html/search/search.css
@@ -0,0 +1,233 @@
+/*---------------- Search Box */
+
+#FSearchBox {
+ float: left;
+}
+
+#MSearchBox {
+ white-space : nowrap;
+ position: absolute;
+ float: none;
+ display: inline;
+ margin-top: 8px;
+ right: 0px;
+ width: 170px;
+ z-index: 102;
+}
+
+#MSearchBox .left
+{
+ display:block;
+ position:absolute;
+ left:10px;
+ width:20px;
+ height:19px;
+ background:url('search_l.png') no-repeat;
+ background-position:right;
+}
+
+#MSearchSelect {
+ display:block;
+ position:absolute;
+ width:20px;
+ height:19px;
+}
+
+.left #MSearchSelect {
+ left:4px;
+}
+
+.right #MSearchSelect {
+ right:5px;
+}
+
+#MSearchField {
+ display:block;
+ position:absolute;
+ height:19px;
+ background:url('search_m.png') repeat-x;
+ border:none;
+ width:116px;
+ margin-left:20px;
+ padding-left:4px;
+ color: #909090;
+ outline: none;
+ font: 9pt Arial, Verdana, sans-serif;
+}
+
+#FSearchBox #MSearchField {
+ margin-left:15px;
+}
+
+#MSearchBox .right {
+ display:block;
+ position:absolute;
+ right:10px;
+ top:0px;
+ width:20px;
+ height:19px;
+ background:url('search_r.png') no-repeat;
+ background-position:left;
+}
+
+#MSearchClose {
+ display: none;
+ position: absolute;
+ top: 4px;
+ background : none;
+ border: none;
+ margin: 0px 4px 0px 0px;
+ padding: 0px 0px;
+ outline: none;
+}
+
+.left #MSearchClose {
+ left: 6px;
+}
+
+.right #MSearchClose {
+ right: 2px;
+}
+
+.MSearchBoxActive #MSearchField {
+ color: #000000;
+}
+
+/*---------------- Search filter selection */
+
+#MSearchSelectWindow {
+ display: none;
+ position: absolute;
+ left: 0; top: 0;
+ border: 1px solid #90A5CE;
+ background-color: #F9FAFC;
+ z-index: 1;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ -moz-border-radius: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ -webkit-border-bottom-left-radius: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+.SelectItem {
+ font: 8pt Arial, Verdana, sans-serif;
+ padding-left: 2px;
+ padding-right: 12px;
+ border: 0px;
+}
+
+span.SelectionMark {
+ margin-right: 4px;
+ font-family: monospace;
+ outline-style: none;
+ text-decoration: none;
+}
+
+a.SelectItem {
+ display: block;
+ outline-style: none;
+ color: #000000;
+ text-decoration: none;
+ padding-left: 6px;
+ padding-right: 12px;
+}
+
+a.SelectItem:focus,
+a.SelectItem:active {
+ color: #000000;
+ outline-style: none;
+ text-decoration: none;
+}
+
+a.SelectItem:hover {
+ color: #FFFFFF;
+ background-color: #3D578C;
+ outline-style: none;
+ text-decoration: none;
+ cursor: pointer;
+ display: block;
+}
+
+/*---------------- Search results window */
+
+iframe#MSearchResults {
+ width: 60ex;
+ height: 15em;
+}
+
+#MSearchResultsWindow {
+ display: none;
+ position: absolute;
+ left: 0; top: 0;
+ border: 1px solid #000;
+ background-color: #EEF1F7;
+}
+
+/* ----------------------------------- */
+
+
+#SRIndex {
+ clear:both;
+ padding-bottom: 15px;
+}
+
+.SREntry {
+ font-size: 10pt;
+ padding-left: 1ex;
+}
+
+.SRPage .SREntry {
+ font-size: 8pt;
+ padding: 1px 5px;
+}
+
+body.SRPage {
+ margin: 5px 2px;
+}
+
+.SRChildren {
+ padding-left: 3ex; padding-bottom: .5em
+}
+
+.SRPage .SRChildren {
+ display: none;
+}
+
+.SRSymbol {
+ font-weight: bold;
+ color: #425E97;
+ font-family: Arial, Verdana, sans-serif;
+ text-decoration: none;
+ outline: none;
+}
+
+a.SRScope {
+ display: block;
+ color: #425E97;
+ font-family: Arial, Verdana, sans-serif;
+ text-decoration: none;
+ outline: none;
+}
+
+a.SRSymbol:focus, a.SRSymbol:active,
+a.SRScope:focus, a.SRScope:active {
+ text-decoration: underline;
+}
+
+.SRPage .SRStatus {
+ padding: 2px 5px;
+ font-size: 8pt;
+ font-style: italic;
+}
+
+.SRResult {
+ display: none;
+}
+
+DIV.searchresults {
+ margin-left: 10px;
+ margin-right: 10px;
+}
diff --git a/docs/html/search/search.js b/docs/html/search/search.js
new file mode 100644
index 0000000..cf54460
--- /dev/null
+++ b/docs/html/search/search.js
@@ -0,0 +1,740 @@
+// Search script generated by doxygen
+// Copyright (C) 2009 by Dimitri van Heesch.
+
+// The code in this file is loosly based on main.js, part of Natural Docs,
+// which is Copyright (C) 2003-2008 Greg Valure
+// Natural Docs is licensed under the GPL.
+
+var indexSectionsWithContent =
+{
+ 0: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010111111111011101101111011100001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 1: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111101011100101100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 2: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111110101011100101100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 3: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111011101101111011100001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 4: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010011111000001000101101010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 5: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 6: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ 7: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011110000001100101101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+};
+
+var indexSectionNames =
+{
+ 0: "all",
+ 1: "classes",
+ 2: "files",
+ 3: "functions",
+ 4: "variables",
+ 5: "typedefs",
+ 6: "enums",
+ 7: "enumvalues"
+};
+
+function convertToId(search)
+{
+ var result = '';
+ for (i=0;i<search.length;i++)
+ {
+ var c = search.charAt(i);
+ var cn = c.charCodeAt(0);
+ if (c.match(/[a-z0-9]/))
+ {
+ result+=c;
+ }
+ else if (cn<16)
+ {
+ result+="_0"+cn.toString(16);
+ }
+ else
+ {
+ result+="_"+cn.toString(16);
+ }
+ }
+ return result;
+}
+
+function getXPos(item)
+{
+ var x = 0;
+ if (item.offsetWidth)
+ {
+ while (item && item!=document.body)
+ {
+ x += item.offsetLeft;
+ item = item.offsetParent;
+ }
+ }
+ return x;
+}
+
+function getYPos(item)
+{
+ var y = 0;
+ if (item.offsetWidth)
+ {
+ while (item && item!=document.body)
+ {
+ y += item.offsetTop;
+ item = item.offsetParent;
+ }
+ }
+ return y;
+}
+
+/* A class handling everything associated with the search panel.
+
+ Parameters:
+ name - The name of the global variable that will be
+ storing this instance. Is needed to be able to set timeouts.
+ resultPath - path to use for external files
+*/
+function SearchBox(name, resultsPath, inFrame, label)
+{
+ if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); }
+
+ // ---------- Instance variables
+ this.name = name;
+ this.resultsPath = resultsPath;
+ this.keyTimeout = 0;
+ this.keyTimeoutLength = 500;
+ this.closeSelectionTimeout = 300;
+ this.lastSearchValue = "";
+ this.lastResultsPage = "";
+ this.hideTimeout = 0;
+ this.searchIndex = 0;
+ this.searchActive = false;
+ this.insideFrame = inFrame;
+ this.searchLabel = label;
+
+ // ----------- DOM Elements
+
+ this.DOMSearchField = function()
+ { return document.getElementById("MSearchField"); }
+
+ this.DOMSearchSelect = function()
+ { return document.getElementById("MSearchSelect"); }
+
+ this.DOMSearchSelectWindow = function()
+ { return document.getElementById("MSearchSelectWindow"); }
+
+ this.DOMPopupSearchResults = function()
+ { return document.getElementById("MSearchResults"); }
+
+ this.DOMPopupSearchResultsWindow = function()
+ { return document.getElementById("MSearchResultsWindow"); }
+
+ this.DOMSearchClose = function()
+ { return document.getElementById("MSearchClose"); }
+
+ this.DOMSearchBox = function()
+ { return document.getElementById("MSearchBox"); }
+
+ // ------------ Event Handlers
+
+ // Called when focus is added or removed from the search field.
+ this.OnSearchFieldFocus = function(isActive)
+ {
+ this.Activate(isActive);
+ }
+
+ this.OnSearchSelectShow = function()
+ {
+ var searchSelectWindow = this.DOMSearchSelectWindow();
+ var searchField = this.DOMSearchSelect();
+
+ if (this.insideFrame)
+ {
+ var left = getXPos(searchField);
+ var top = getYPos(searchField);
+ left += searchField.offsetWidth + 6;
+ top += searchField.offsetHeight;
+
+ // show search selection popup
+ searchSelectWindow.style.display='block';
+ left -= searchSelectWindow.offsetWidth;
+ searchSelectWindow.style.left = left + 'px';
+ searchSelectWindow.style.top = top + 'px';
+ }
+ else
+ {
+ var left = getXPos(searchField);
+ var top = getYPos(searchField);
+ top += searchField.offsetHeight;
+
+ // show search selection popup
+ searchSelectWindow.style.display='block';
+ searchSelectWindow.style.left = left + 'px';
+ searchSelectWindow.style.top = top + 'px';
+ }
+
+ // stop selection hide timer
+ if (this.hideTimeout)
+ {
+ clearTimeout(this.hideTimeout);
+ this.hideTimeout=0;
+ }
+ return false; // to avoid "image drag" default event
+ }
+
+ this.OnSearchSelectHide = function()
+ {
+ this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
+ this.closeSelectionTimeout);
+ }
+
+ // Called when the content of the search field is changed.
+ this.OnSearchFieldChange = function(evt)
+ {
+ if (this.keyTimeout) // kill running timer
+ {
+ clearTimeout(this.keyTimeout);
+ this.keyTimeout = 0;
+ }
+
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==40 || e.keyCode==13)
+ {
+ if (e.shiftKey==1)
+ {
+ this.OnSearchSelectShow();
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ child.focus();
+ return;
+ }
+ }
+ return;
+ }
+ else if (window.frames.MSearchResults.searchResults)
+ {
+ var elem = window.frames.MSearchResults.searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+ }
+ else if (e.keyCode==27) // Escape out of the search field
+ {
+ this.DOMSearchField().blur();
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.lastSearchValue = '';
+ this.Activate(false);
+ return;
+ }
+
+ // strip whitespaces
+ var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+ if (searchValue != this.lastSearchValue) // search value has changed
+ {
+ if (searchValue != "") // non-empty search
+ {
+ // set timer for search update
+ this.keyTimeout = setTimeout(this.name + '.Search()',
+ this.keyTimeoutLength);
+ }
+ else // empty search field
+ {
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.lastSearchValue = '';
+ }
+ }
+ }
+
+ this.SelectItemCount = function(id)
+ {
+ var count=0;
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ count++;
+ }
+ }
+ return count;
+ }
+
+ this.SelectItemSet = function(id)
+ {
+ var i,j=0;
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ var node = child.firstChild;
+ if (j==id)
+ {
+ node.innerHTML='&#8226;';
+ }
+ else
+ {
+ node.innerHTML='&#160;';
+ }
+ j++;
+ }
+ }
+ }
+
+ // Called when an search filter selection is made.
+ // set item with index id as the active item
+ this.OnSelectItem = function(id)
+ {
+ this.searchIndex = id;
+ this.SelectItemSet(id);
+ var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+ if (searchValue!="" && this.searchActive) // something was found -> do a search
+ {
+ this.Search();
+ }
+ }
+
+ this.OnSearchSelectKey = function(evt)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
+ {
+ this.searchIndex++;
+ this.OnSelectItem(this.searchIndex);
+ }
+ else if (e.keyCode==38 && this.searchIndex>0) // Up
+ {
+ this.searchIndex--;
+ this.OnSelectItem(this.searchIndex);
+ }
+ else if (e.keyCode==13 || e.keyCode==27)
+ {
+ this.OnSelectItem(this.searchIndex);
+ this.CloseSelectionWindow();
+ this.DOMSearchField().focus();
+ }
+ return false;
+ }
+
+ // --------- Actions
+
+ // Closes the results window.
+ this.CloseResultsWindow = function()
+ {
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.Activate(false);
+ }
+
+ this.CloseSelectionWindow = function()
+ {
+ this.DOMSearchSelectWindow().style.display = 'none';
+ }
+
+ // Performs a search.
+ this.Search = function()
+ {
+ this.keyTimeout = 0;
+
+ // strip leading whitespace
+ var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
+
+ var code = searchValue.toLowerCase().charCodeAt(0);
+ var hexCode;
+ if (code<16)
+ {
+ hexCode="0"+code.toString(16);
+ }
+ else
+ {
+ hexCode=code.toString(16);
+ }
+
+ var resultsPage;
+ var resultsPageWithSearch;
+ var hasResultsPage;
+
+ if (indexSectionsWithContent[this.searchIndex].charAt(code) == '1')
+ {
+ resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
+ resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
+ hasResultsPage = true;
+ }
+ else // nothing available for this search term
+ {
+ resultsPage = this.resultsPath + '/nomatches.html';
+ resultsPageWithSearch = resultsPage;
+ hasResultsPage = false;
+ }
+
+ window.frames.MSearchResults.location = resultsPageWithSearch;
+ var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+
+ if (domPopupSearchResultsWindow.style.display!='block')
+ {
+ var domSearchBox = this.DOMSearchBox();
+ this.DOMSearchClose().style.display = 'inline';
+ if (this.insideFrame)
+ {
+ var domPopupSearchResults = this.DOMPopupSearchResults();
+ domPopupSearchResultsWindow.style.position = 'relative';
+ domPopupSearchResultsWindow.style.display = 'block';
+ var width = document.body.clientWidth - 8; // the -8 is for IE :-(
+ domPopupSearchResultsWindow.style.width = width + 'px';
+ domPopupSearchResults.style.width = width + 'px';
+ }
+ else
+ {
+ var domPopupSearchResults = this.DOMPopupSearchResults();
+ var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
+ var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1;
+ domPopupSearchResultsWindow.style.display = 'block';
+ left -= domPopupSearchResults.offsetWidth;
+ domPopupSearchResultsWindow.style.top = top + 'px';
+ domPopupSearchResultsWindow.style.left = left + 'px';
+ }
+ }
+
+ this.lastSearchValue = searchValue;
+ this.lastResultsPage = resultsPage;
+ }
+
+ // -------- Activation Functions
+
+ // Activates or deactivates the search panel, resetting things to
+ // their default values if necessary.
+ this.Activate = function(isActive)
+ {
+ if (isActive || // open it
+ this.DOMPopupSearchResultsWindow().style.display == 'block'
+ )
+ {
+ this.DOMSearchBox().className = 'MSearchBoxActive';
+
+ var searchField = this.DOMSearchField();
+
+ if (searchField.value == this.searchLabel) // clear "Search" term upon entry
+ {
+ searchField.value = '';
+ this.searchActive = true;
+ }
+ }
+ else if (!isActive) // directly remove the panel
+ {
+ this.DOMSearchBox().className = 'MSearchBoxInactive';
+ this.DOMSearchField().value = this.searchLabel;
+ this.searchActive = false;
+ this.lastSearchValue = ''
+ this.lastResultsPage = '';
+ }
+ }
+}
+
+// -----------------------------------------------------------------------
+
+// The class that handles everything on the search results page.
+function SearchResults(name)
+{
+ // The number of matches from the last run of <Search()>.
+ this.lastMatchCount = 0;
+ this.lastKey = 0;
+ this.repeatOn = false;
+
+ // Toggles the visibility of the passed element ID.
+ this.FindChildElement = function(id)
+ {
+ var parentElement = document.getElementById(id);
+ var element = parentElement.firstChild;
+
+ while (element && element!=parentElement)
+ {
+ if (element.nodeName == 'DIV' && element.className == 'SRChildren')
+ {
+ return element;
+ }
+
+ if (element.nodeName == 'DIV' && element.hasChildNodes())
+ {
+ element = element.firstChild;
+ }
+ else if (element.nextSibling)
+ {
+ element = element.nextSibling;
+ }
+ else
+ {
+ do
+ {
+ element = element.parentNode;
+ }
+ while (element && element!=parentElement && !element.nextSibling);
+
+ if (element && element!=parentElement)
+ {
+ element = element.nextSibling;
+ }
+ }
+ }
+ }
+
+ this.Toggle = function(id)
+ {
+ var element = this.FindChildElement(id);
+ if (element)
+ {
+ if (element.style.display == 'block')
+ {
+ element.style.display = 'none';
+ }
+ else
+ {
+ element.style.display = 'block';
+ }
+ }
+ }
+
+ // Searches for the passed string. If there is no parameter,
+ // it takes it from the URL query.
+ //
+ // Always returns true, since other documents may try to call it
+ // and that may or may not be possible.
+ this.Search = function(search)
+ {
+ if (!search) // get search word from URL
+ {
+ search = window.location.search;
+ search = search.substring(1); // Remove the leading '?'
+ search = unescape(search);
+ }
+
+ search = search.replace(/^ +/, ""); // strip leading spaces
+ search = search.replace(/ +$/, ""); // strip trailing spaces
+ search = search.toLowerCase();
+ search = convertToId(search);
+
+ var resultRows = document.getElementsByTagName("div");
+ var matches = 0;
+
+ var i = 0;
+ while (i < resultRows.length)
+ {
+ var row = resultRows.item(i);
+ if (row.className == "SRResult")
+ {
+ var rowMatchName = row.id.toLowerCase();
+ rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
+
+ if (search.length<=rowMatchName.length &&
+ rowMatchName.substr(0, search.length)==search)
+ {
+ row.style.display = 'block';
+ matches++;
+ }
+ else
+ {
+ row.style.display = 'none';
+ }
+ }
+ i++;
+ }
+ document.getElementById("Searching").style.display='none';
+ if (matches == 0) // no results
+ {
+ document.getElementById("NoMatches").style.display='block';
+ }
+ else // at least one result
+ {
+ document.getElementById("NoMatches").style.display='none';
+ }
+ this.lastMatchCount = matches;
+ return true;
+ }
+
+ // return the first item with index index or higher that is visible
+ this.NavNext = function(index)
+ {
+ var focusItem;
+ while (1)
+ {
+ var focusName = 'Item'+index;
+ focusItem = document.getElementById(focusName);
+ if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+ {
+ break;
+ }
+ else if (!focusItem) // last element
+ {
+ break;
+ }
+ focusItem=null;
+ index++;
+ }
+ return focusItem;
+ }
+
+ this.NavPrev = function(index)
+ {
+ var focusItem;
+ while (1)
+ {
+ var focusName = 'Item'+index;
+ focusItem = document.getElementById(focusName);
+ if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+ {
+ break;
+ }
+ else if (!focusItem) // last element
+ {
+ break;
+ }
+ focusItem=null;
+ index--;
+ }
+ return focusItem;
+ }
+
+ this.ProcessKeys = function(e)
+ {
+ if (e.type == "keydown")
+ {
+ this.repeatOn = false;
+ this.lastKey = e.keyCode;
+ }
+ else if (e.type == "keypress")
+ {
+ if (!this.repeatOn)
+ {
+ if (this.lastKey) this.repeatOn = true;
+ return false; // ignore first keypress after keydown
+ }
+ }
+ else if (e.type == "keyup")
+ {
+ this.lastKey = 0;
+ this.repeatOn = false;
+ }
+ return this.lastKey!=0;
+ }
+
+ this.Nav = function(evt,itemIndex)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==13) return true;
+ if (!this.ProcessKeys(e)) return false;
+
+ if (this.lastKey==38) // Up
+ {
+ var newIndex = itemIndex-1;
+ var focusItem = this.NavPrev(newIndex);
+ if (focusItem)
+ {
+ var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
+ if (child && child.style.display == 'block') // children visible
+ {
+ var n=0;
+ var tmpElem;
+ while (1) // search for last child
+ {
+ tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
+ if (tmpElem)
+ {
+ focusItem = tmpElem;
+ }
+ else // found it!
+ {
+ break;
+ }
+ n++;
+ }
+ }
+ }
+ if (focusItem)
+ {
+ focusItem.focus();
+ }
+ else // return focus to search field
+ {
+ parent.document.getElementById("MSearchField").focus();
+ }
+ }
+ else if (this.lastKey==40) // Down
+ {
+ var newIndex = itemIndex+1;
+ var focusItem;
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem && elem.style.display == 'block') // children visible
+ {
+ focusItem = document.getElementById('Item'+itemIndex+'_c0');
+ }
+ if (!focusItem) focusItem = this.NavNext(newIndex);
+ if (focusItem) focusItem.focus();
+ }
+ else if (this.lastKey==39) // Right
+ {
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem) elem.style.display = 'block';
+ }
+ else if (this.lastKey==37) // Left
+ {
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem) elem.style.display = 'none';
+ }
+ else if (this.lastKey==27) // Escape
+ {
+ parent.searchBox.CloseResultsWindow();
+ parent.document.getElementById("MSearchField").focus();
+ }
+ else if (this.lastKey==13) // Enter
+ {
+ return true;
+ }
+ return false;
+ }
+
+ this.NavChild = function(evt,itemIndex,childIndex)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==13) return true;
+ if (!this.ProcessKeys(e)) return false;
+
+ if (this.lastKey==38) // Up
+ {
+ if (childIndex>0)
+ {
+ var newIndex = childIndex-1;
+ document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
+ }
+ else // already at first child, jump to parent
+ {
+ document.getElementById('Item'+itemIndex).focus();
+ }
+ }
+ else if (this.lastKey==40) // Down
+ {
+ var newIndex = childIndex+1;
+ var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
+ if (!elem) // last child, jump to parent next parent
+ {
+ elem = this.NavNext(itemIndex+1);
+ }
+ if (elem)
+ {
+ elem.focus();
+ }
+ }
+ else if (this.lastKey==27) // Escape
+ {
+ parent.searchBox.CloseResultsWindow();
+ parent.document.getElementById("MSearchField").focus();
+ }
+ else if (this.lastKey==13) // Enter
+ {
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/docs/html/search/search_l.png b/docs/html/search/search_l.png
new file mode 100644
index 0000000..c872f4d
--- /dev/null
+++ b/docs/html/search/search_l.png
Binary files differ
diff --git a/docs/html/search/search_m.png b/docs/html/search/search_m.png
new file mode 100644
index 0000000..b429a16
--- /dev/null
+++ b/docs/html/search/search_m.png
Binary files differ
diff --git a/docs/html/search/search_r.png b/docs/html/search/search_r.png
new file mode 100644
index 0000000..97ee8b4
--- /dev/null
+++ b/docs/html/search/search_r.png
Binary files differ
diff --git a/docs/html/search/typedefs_62.html b/docs/html/search/typedefs_62.html
new file mode 100644
index 0000000..526498b
--- /dev/null
+++ b/docs/html/search/typedefs_62.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_boolgrid">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_maze.html#aea392ab34f271f56b1746b30aed9588a" target="_parent">BoolGrid</a>
+ <span class="SRScope">Maze</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/variables_5f.html b/docs/html/search/variables_5f.html
new file mode 100644
index 0000000..24a1857
--- /dev/null
+++ b/docs/html/search/variables_5f.html
@@ -0,0 +1,487 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR__5fallegro">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="javascript:searchResults.Toggle('SR__5fallegro')">_allegro</a>
+ <div class="SRChildren">
+ <a id="Item0_c0" onkeydown="return searchResults.NavChild(event,0,0)" onkeypress="return searchResults.NavChild(event,0,0)" onkeyup="return searchResults.NavChild(event,0,0)" class="SRScope" href="../class_allegro_keyboard_init.html#af8655fcd2e20750f965e55304500bc3b" target="_parent">AllegroKeyboardInit::_allegro()</a>
+ <a id="Item0_c1" onkeydown="return searchResults.NavChild(event,0,1)" onkeypress="return searchResults.NavChild(event,0,1)" onkeyup="return searchResults.NavChild(event,0,1)" class="SRScope" href="../class_allegro_drawing_init.html#a8254ecb9b3ad13409ff1ec1cfeee66ef" target="_parent">AllegroDrawingInit::_allegro()</a>
+ <a id="Item0_c2" onkeydown="return searchResults.NavChild(event,0,2)" onkeypress="return searchResults.NavChild(event,0,2)" onkeyup="return searchResults.NavChild(event,0,2)" class="SRScope" href="../class_game.html#a3bbe8c0dadbdf9e9e1d499f10509ef4e" target="_parent">Game::_allegro()</a>
+ <a id="Item0_c3" onkeydown="return searchResults.NavChild(event,0,3)" onkeypress="return searchResults.NavChild(event,0,3)" onkeyup="return searchResults.NavChild(event,0,3)" class="SRScope" href="../class_game_panel.html#a18c100c8d9ae2601a97083485d937418" target="_parent">GamePanel::_allegro()</a>
+ <a id="Item0_c4" onkeydown="return searchResults.NavChild(event,0,4)" onkeypress="return searchResults.NavChild(event,0,4)" onkeyup="return searchResults.NavChild(event,0,4)" class="SRScope" href="../class_screen.html#ae0863416022fcb59189d2aefd3345621" target="_parent">Screen::_allegro()</a>
+ <a id="Item0_c5" onkeydown="return searchResults.NavChild(event,0,5)" onkeypress="return searchResults.NavChild(event,0,5)" onkeyup="return searchResults.NavChild(event,0,5)" class="SRScope" href="../class_screen_panel.html#a3877f04c03866e35588f0b753ee7c485" target="_parent">ScreenPanel::_allegro()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fback">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_screen_panel.html#a1a3ec8e60be5d5cede210171bda33468" target="_parent">_back</a>
+ <span class="SRScope">ScreenPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fbasespeed">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../class_car.html#a7b942584de02f8af6f571a60a1cf32ba" target="_parent">_baseSpeed</a>
+ <span class="SRScope">Car</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fbitmapfont">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../class_bitmap_store.html#a0c73c3c20f8093c83707cde15c4fed5f" target="_parent">_bitmapFont</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fbitmaps">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../class_bitmap_store.html#ae3d18969f61f97fce6622cb6f7004711" target="_parent">_bitmaps</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fbitmapstore">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../class_game_panel.html#a0125ff874ffebadc15c7678210914a8c" target="_parent">_bitmapStore</a>
+ <span class="SRScope">GamePanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fblockwidth">
+ <div class="SREntry">
+ <a id="Item6" onkeydown="return searchResults.Nav(event,6)" onkeypress="return searchResults.Nav(event,6)" onkeyup="return searchResults.Nav(event,6)" class="SRSymbol" href="../class_bitmap_store.html#a157ce6e07689037e1081ccf87eaa2fff" target="_parent">_blockWidth</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fcheckpointcount">
+ <div class="SREntry">
+ <a id="Item7" onkeydown="return searchResults.Nav(event,7)" onkeypress="return searchResults.Nav(event,7)" onkeyup="return searchResults.Nav(event,7)" class="SRSymbol" href="../class_checkpoint.html#acb3ffc612d2a496b6b95752878818ff6" target="_parent">_checkpointCount</a>
+ <span class="SRScope">Checkpoint</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fcheckpointheadingy">
+ <div class="SREntry">
+ <a id="Item8" onkeydown="return searchResults.Nav(event,8)" onkeypress="return searchResults.Nav(event,8)" onkeyup="return searchResults.Nav(event,8)" class="SRSymbol" href="../class_info_panel.html#a7ec514286dbf2fb43f64acd620397e21" target="_parent">_checkpointHeadingY</a>
+ <span class="SRScope">InfoPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fcheckpoints">
+ <div class="SREntry">
+ <a id="Item9" onkeydown="return searchResults.Nav(event,9)" onkeypress="return searchResults.Nav(event,9)" onkeyup="return searchResults.Nav(event,9)" class="SRSymbol" href="../class_game.html#a856252e94c580f59b926affc7d45b4bf" target="_parent">_checkpoints</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fcheckpointvaluey">
+ <div class="SREntry">
+ <a id="Item10" onkeydown="return searchResults.Nav(event,10)" onkeypress="return searchResults.Nav(event,10)" onkeyup="return searchResults.Nav(event,10)" class="SRSymbol" href="../class_info_panel.html#ad118b5f123e590a95b3f390fd9597f02" target="_parent">_checkpointValueY</a>
+ <span class="SRScope">InfoPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fcollisiondetector">
+ <div class="SREntry">
+ <a id="Item11" onkeydown="return searchResults.Nav(event,11)" onkeypress="return searchResults.Nav(event,11)" onkeyup="return searchResults.Nav(event,11)" class="SRSymbol" href="../class_game.html#ab88620fda0d1fa729dcab6013e8f1efc" target="_parent">_collisionDetector</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fcolours">
+ <div class="SREntry">
+ <a id="Item12" onkeydown="return searchResults.Nav(event,12)" onkeypress="return searchResults.Nav(event,12)" onkeyup="return searchResults.Nav(event,12)" class="SRSymbol" href="../class_colour_store.html#acb64b1ffc465fa752a2f282da4c9afba" target="_parent">_colours</a>
+ <span class="SRScope">ColourStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fcolourstore">
+ <div class="SREntry">
+ <a id="Item13" onkeydown="return searchResults.Nav(event,13)" onkeypress="return searchResults.Nav(event,13)" onkeyup="return searchResults.Nav(event,13)" class="SRSymbol" href="../class_info_panel.html#a27ac079ed1a39ae672b6ceb9e0974855" target="_parent">_colourStore</a>
+ <span class="SRScope">InfoPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fconfig">
+ <div class="SREntry">
+ <a id="Item14" onkeydown="return searchResults.Nav(event,14)" onkeypress="return searchResults.Nav(event,14)" onkeyup="return searchResults.Nav(event,14)" class="SRSymbol" href="../class_game.html#aa60fe2dc0d1d53ebf49c2d87af6ee2d5" target="_parent">_config</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fdestroyed">
+ <div class="SREntry">
+ <a id="Item15" onkeydown="return searchResults.Nav(event,15)" onkeypress="return searchResults.Nav(event,15)" onkeyup="return searchResults.Nav(event,15)" class="SRSymbol" href="../class_game_object.html#adc4a399cc59d5706f75748fb3846faec" target="_parent">_destroyed</a>
+ <span class="SRScope">GameObject</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fdisplay">
+ <div class="SREntry">
+ <a id="Item16" onkeydown="return searchResults.Nav(event,16)" onkeypress="return searchResults.Nav(event,16)" onkeyup="return searchResults.Nav(event,16)" class="SRSymbol" href="../class_screen.html#a4972e24cf3677e51b18feac34a563ba0" target="_parent">_display</a>
+ <span class="SRScope">Screen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fdown">
+ <div class="SREntry">
+ <a id="Item17" onkeydown="return searchResults.Nav(event,17)" onkeypress="return searchResults.Nav(event,17)" onkeyup="return searchResults.Nav(event,17)" class="SRSymbol" href="../class_keyboard_handler.html#aa6d1c75e1a98d4aae96d8ac1c8aaa539" target="_parent">_down</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fdrawing">
+ <div class="SREntry">
+ <a id="Item18" onkeydown="return searchResults.Nav(event,18)" onkeypress="return searchResults.Nav(event,18)" onkeyup="return searchResults.Nav(event,18)" class="SRSymbol" href="javascript:searchResults.Toggle('SR__5fdrawing')">_drawing</a>
+ <div class="SRChildren">
+ <a id="Item18_c0" onkeydown="return searchResults.NavChild(event,18,0)" onkeypress="return searchResults.NavChild(event,18,0)" onkeyup="return searchResults.NavChild(event,18,0)" class="SRScope" href="../class_info_panel.html#a589359c67b30af50338791f8af0e05e0" target="_parent">InfoPanel::_drawing()</a>
+ <a id="Item18_c1" onkeydown="return searchResults.NavChild(event,18,1)" onkeypress="return searchResults.NavChild(event,18,1)" onkeyup="return searchResults.NavChild(event,18,1)" class="SRScope" href="../class_screen.html#a2dafde8aecbd3bc3c4394f36df913b64" target="_parent">Screen::_drawing()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fdrawinginstalls">
+ <div class="SREntry">
+ <a id="Item19" onkeydown="return searchResults.Nav(event,19)" onkeypress="return searchResults.Nav(event,19)" onkeyup="return searchResults.Nav(event,19)" class="SRSymbol" href="../class_bitmap_store.html#a12f738a24033673278a496c1aa5abcc8" target="_parent">_drawingInstalls</a>
+ <span class="SRScope">BitmapStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fenemies">
+ <div class="SREntry">
+ <a id="Item20" onkeydown="return searchResults.Nav(event,20)" onkeypress="return searchResults.Nav(event,20)" onkeyup="return searchResults.Nav(event,20)" class="SRSymbol" href="../class_game.html#afbd3e358076a6cf2e72faefe1c202df9" target="_parent">_enemies</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fexitclicked">
+ <div class="SREntry">
+ <a id="Item21" onkeydown="return searchResults.Nav(event,21)" onkeypress="return searchResults.Nav(event,21)" onkeyup="return searchResults.Nav(event,21)" class="SRSymbol" href="../class_screen.html#ae7f213f79bf9680e0ff3f4b52ebf051f" target="_parent">_exitClicked</a>
+ <span class="SRScope">Screen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5ffacing">
+ <div class="SREntry">
+ <a id="Item22" onkeydown="return searchResults.Nav(event,22)" onkeypress="return searchResults.Nav(event,22)" onkeyup="return searchResults.Nav(event,22)" class="SRSymbol" href="../class_game_object.html#a24d36b1a64504298700a7ae7111fad5d" target="_parent">_facing</a>
+ <span class="SRScope">GameObject</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5ffilename">
+ <div class="SREntry">
+ <a id="Item23" onkeydown="return searchResults.Nav(event,23)" onkeypress="return searchResults.Nav(event,23)" onkeyup="return searchResults.Nav(event,23)" class="SRSymbol" href="../class_level_reader.html#a233910d4cd16ff624d76b06ca8071f7e" target="_parent">_filename</a>
+ <span class="SRScope">LevelReader</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5ffont">
+ <div class="SREntry">
+ <a id="Item24" onkeydown="return searchResults.Nav(event,24)" onkeypress="return searchResults.Nav(event,24)" onkeyup="return searchResults.Nav(event,24)" class="SRSymbol" href="../class_screen.html#a42a627863a8f9d1529278cb060d4102b" target="_parent">_font</a>
+ <span class="SRScope">Screen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5ffront">
+ <div class="SREntry">
+ <a id="Item25" onkeydown="return searchResults.Nav(event,25)" onkeypress="return searchResults.Nav(event,25)" onkeyup="return searchResults.Nav(event,25)" class="SRSymbol" href="../class_screen_panel.html#a0a3232c41ca107b2cceee73aa0e0d7fe" target="_parent">_front</a>
+ <span class="SRScope">ScreenPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5ffullscreen">
+ <div class="SREntry">
+ <a id="Item26" onkeydown="return searchResults.Nav(event,26)" onkeypress="return searchResults.Nav(event,26)" onkeyup="return searchResults.Nav(event,26)" class="SRSymbol" href="../class_config.html#ad6fddaaf52742adcba95155b3635e807" target="_parent">_fullscreen</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fgameareawidth">
+ <div class="SREntry">
+ <a id="Item27" onkeydown="return searchResults.Nav(event,27)" onkeypress="return searchResults.Nav(event,27)" onkeyup="return searchResults.Nav(event,27)" class="SRSymbol" href="../class_screen.html#a7cba9fb0069d763055ef351452a15227" target="_parent">_gameAreaWidth</a>
+ <span class="SRScope">Screen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fheight">
+ <div class="SREntry">
+ <a id="Item28" onkeydown="return searchResults.Nav(event,28)" onkeypress="return searchResults.Nav(event,28)" onkeyup="return searchResults.Nav(event,28)" class="SRSymbol" href="javascript:searchResults.Toggle('SR__5fheight')">_height</a>
+ <div class="SRChildren">
+ <a id="Item28_c0" onkeydown="return searchResults.NavChild(event,28,0)" onkeypress="return searchResults.NavChild(event,28,0)" onkeyup="return searchResults.NavChild(event,28,0)" class="SRScope" href="../class_maze.html#a02f1ff55e76161495bbe11bc4c0e5f54" target="_parent">Maze::_height()</a>
+ <a id="Item28_c1" onkeydown="return searchResults.NavChild(event,28,1)" onkeypress="return searchResults.NavChild(event,28,1)" onkeyup="return searchResults.NavChild(event,28,1)" class="SRScope" href="../class_screen_panel.html#a4f6dd5c7ca10d51bface7b1ddedc236c" target="_parent">ScreenPanel::_height()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fimage">
+ <div class="SREntry">
+ <a id="Item29" onkeydown="return searchResults.Nav(event,29)" onkeypress="return searchResults.Nav(event,29)" onkeyup="return searchResults.Nav(event,29)" class="SRSymbol" href="../class_game_object.html#a8b0aa105507a8a9559bbc2a66198ccd6" target="_parent">_image</a>
+ <span class="SRScope">GameObject</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5finfopanelwidth">
+ <div class="SREntry">
+ <a id="Item30" onkeydown="return searchResults.Nav(event,30)" onkeypress="return searchResults.Nav(event,30)" onkeyup="return searchResults.Nav(event,30)" class="SRSymbol" href="../class_screen.html#ab895e588a89e1943303487d47a2b9216" target="_parent">_infoPanelWidth</a>
+ <span class="SRScope">Screen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5finitcount">
+ <div class="SREntry">
+ <a id="Item31" onkeydown="return searchResults.Nav(event,31)" onkeypress="return searchResults.Nav(event,31)" onkeyup="return searchResults.Nav(event,31)" class="SRSymbol" href="javascript:searchResults.Toggle('SR__5finitcount')">_initCount</a>
+ <div class="SRChildren">
+ <a id="Item31_c0" onkeydown="return searchResults.NavChild(event,31,0)" onkeypress="return searchResults.NavChild(event,31,0)" onkeyup="return searchResults.NavChild(event,31,0)" class="SRScope" href="../class_allegro_init.html#ab8d20b549d0b996dde5cdbe8acd7186c" target="_parent">AllegroInit::_initCount()</a>
+ <a id="Item31_c1" onkeydown="return searchResults.NavChild(event,31,1)" onkeypress="return searchResults.NavChild(event,31,1)" onkeyup="return searchResults.NavChild(event,31,1)" class="SRScope" href="../class_allegro_keyboard_init.html#ac7f75bcc5cb56a1c2f4e9ce653d9dfd7" target="_parent">AllegroKeyboardInit::_initCount()</a>
+ <a id="Item31_c2" onkeydown="return searchResults.NavChild(event,31,2)" onkeypress="return searchResults.NavChild(event,31,2)" onkeyup="return searchResults.NavChild(event,31,2)" class="SRScope" href="../class_allegro_drawing_init.html#a78e8f792c6dba89eddf42e74d4a3d577" target="_parent">AllegroDrawingInit::_initCount()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR__5finput">
+ <div class="SREntry">
+ <a id="Item32" onkeydown="return searchResults.Nav(event,32)" onkeypress="return searchResults.Nav(event,32)" onkeyup="return searchResults.Nav(event,32)" class="SRSymbol" href="../class_player_car.html#a5f8477ebd7de6298151ed70fbb9ffa4f" target="_parent">_input</a>
+ <span class="SRScope">PlayerCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fkeyboard">
+ <div class="SREntry">
+ <a id="Item33" onkeydown="return searchResults.Nav(event,33)" onkeypress="return searchResults.Nav(event,33)" onkeyup="return searchResults.Nav(event,33)" class="SRSymbol" href="javascript:searchResults.Toggle('SR__5fkeyboard')">_keyboard</a>
+ <div class="SRChildren">
+ <a id="Item33_c0" onkeydown="return searchResults.NavChild(event,33,0)" onkeypress="return searchResults.NavChild(event,33,0)" onkeyup="return searchResults.NavChild(event,33,0)" class="SRScope" href="../class_keyboard_handler.html#a0ec33ec0de48e563e9137294fb7577da" target="_parent">KeyboardHandler::_keyboard()</a>
+ <a id="Item33_c1" onkeydown="return searchResults.NavChild(event,33,1)" onkeypress="return searchResults.NavChild(event,33,1)" onkeyup="return searchResults.NavChild(event,33,1)" class="SRScope" href="../class_screen.html#a0c5cff1b93dae4d559a81d261a8bcee6" target="_parent">Screen::_keyboard()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fkeyboardevents">
+ <div class="SREntry">
+ <a id="Item34" onkeydown="return searchResults.Nav(event,34)" onkeypress="return searchResults.Nav(event,34)" onkeyup="return searchResults.Nav(event,34)" class="SRSymbol" href="../class_keyboard_handler.html#a44116ed8745f3a3360e1d7c29ea86d56" target="_parent">_keyboardEvents</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fleft">
+ <div class="SREntry">
+ <a id="Item35" onkeydown="return searchResults.Nav(event,35)" onkeypress="return searchResults.Nav(event,35)" onkeyup="return searchResults.Nav(event,35)" class="SRSymbol" href="../class_keyboard_handler.html#a3bc780470d7cbaf9f4ea239e0613ce3c" target="_parent">_left</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fmaze">
+ <div class="SREntry">
+ <a id="Item36" onkeydown="return searchResults.Nav(event,36)" onkeypress="return searchResults.Nav(event,36)" onkeyup="return searchResults.Nav(event,36)" class="SRSymbol" href="../class_game.html#a33457b2c7fa4f43b89e54ce9c5ac6f83" target="_parent">_maze</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fmazeblockwidth">
+ <div class="SREntry">
+ <a id="Item37" onkeydown="return searchResults.Nav(event,37)" onkeypress="return searchResults.Nav(event,37)" onkeyup="return searchResults.Nav(event,37)" class="SRSymbol" href="../class_game_panel.html#a4889f5f6e1ad713be455d4f69a2cda96" target="_parent">_mazeblockWidth</a>
+ <span class="SRScope">GamePanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fminimazeblockwidth">
+ <div class="SREntry">
+ <a id="Item38" onkeydown="return searchResults.Nav(event,38)" onkeypress="return searchResults.Nav(event,38)" onkeyup="return searchResults.Nav(event,38)" class="SRSymbol" href="../class_info_panel.html#abb211fac23293e41f23b86fd70df98f0" target="_parent">_miniMazeblockWidth</a>
+ <span class="SRScope">InfoPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fminimazeheight">
+ <div class="SREntry">
+ <a id="Item39" onkeydown="return searchResults.Nav(event,39)" onkeypress="return searchResults.Nav(event,39)" onkeyup="return searchResults.Nav(event,39)" class="SRSymbol" href="../class_info_panel.html#ad38206daa42c82b45878e6d0c55f2860" target="_parent">_miniMazeHeight</a>
+ <span class="SRScope">InfoPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fminimazey">
+ <div class="SREntry">
+ <a id="Item40" onkeydown="return searchResults.Nav(event,40)" onkeypress="return searchResults.Nav(event,40)" onkeyup="return searchResults.Nav(event,40)" class="SRSymbol" href="../class_info_panel.html#a7b4bb6cca8549d6a1d1deccc99994b9b" target="_parent">_miniMazeY</a>
+ <span class="SRScope">InfoPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5foffsetx">
+ <div class="SREntry">
+ <a id="Item41" onkeydown="return searchResults.Nav(event,41)" onkeypress="return searchResults.Nav(event,41)" onkeyup="return searchResults.Nav(event,41)" class="SRSymbol" href="../class_game_panel.html#afe99f100b68ec2475cb0a509887b63a9" target="_parent">_offsetX</a>
+ <span class="SRScope">GamePanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5foffsety">
+ <div class="SREntry">
+ <a id="Item42" onkeydown="return searchResults.Nav(event,42)" onkeypress="return searchResults.Nav(event,42)" onkeyup="return searchResults.Nav(event,42)" class="SRSymbol" href="../class_game_panel.html#af3354addd707cb42b078dbe2ef29e189" target="_parent">_offsetY</a>
+ <span class="SRScope">GamePanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fpanelfont">
+ <div class="SREntry">
+ <a id="Item43" onkeydown="return searchResults.Nav(event,43)" onkeypress="return searchResults.Nav(event,43)" onkeyup="return searchResults.Nav(event,43)" class="SRSymbol" href="../class_info_panel.html#a38d023a2b00eafa303de37550cb96817" target="_parent">_panelFont</a>
+ <span class="SRScope">InfoPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fpanels">
+ <div class="SREntry">
+ <a id="Item44" onkeydown="return searchResults.Nav(event,44)" onkeypress="return searchResults.Nav(event,44)" onkeyup="return searchResults.Nav(event,44)" class="SRSymbol" href="../class_screen.html#a30ba66122613181e312e0d7586d2a814" target="_parent">_panels</a>
+ <span class="SRScope">Screen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fpetrol">
+ <div class="SREntry">
+ <a id="Item45" onkeydown="return searchResults.Nav(event,45)" onkeypress="return searchResults.Nav(event,45)" onkeyup="return searchResults.Nav(event,45)" class="SRSymbol" href="../class_player_car.html#a51f836c3619c42df7762d440e8007010" target="_parent">_petrol</a>
+ <span class="SRScope">PlayerCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fpetrolguageheight">
+ <div class="SREntry">
+ <a id="Item46" onkeydown="return searchResults.Nav(event,46)" onkeypress="return searchResults.Nav(event,46)" onkeyup="return searchResults.Nav(event,46)" class="SRSymbol" href="../class_info_panel.html#a0c85348f8471d86da73772f86a62f84c" target="_parent">_petrolGuageHeight</a>
+ <span class="SRScope">InfoPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fpetrolguagey">
+ <div class="SREntry">
+ <a id="Item47" onkeydown="return searchResults.Nav(event,47)" onkeypress="return searchResults.Nav(event,47)" onkeyup="return searchResults.Nav(event,47)" class="SRSymbol" href="../class_info_panel.html#a29976100c8fc5c130be713dfb5c2807e" target="_parent">_petrolGuageY</a>
+ <span class="SRScope">InfoPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fpetrolheadingy">
+ <div class="SREntry">
+ <a id="Item48" onkeydown="return searchResults.Nav(event,48)" onkeypress="return searchResults.Nav(event,48)" onkeyup="return searchResults.Nav(event,48)" class="SRSymbol" href="../class_info_panel.html#a5ab76703538ad6e396a21ea8fb47d23d" target="_parent">_petrolHeadingY</a>
+ <span class="SRScope">InfoPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fplayers">
+ <div class="SREntry">
+ <a id="Item49" onkeydown="return searchResults.Nav(event,49)" onkeypress="return searchResults.Nav(event,49)" onkeyup="return searchResults.Nav(event,49)" class="SRSymbol" href="../class_game.html#a75bf3282da1519766a6b75e2d83293ac" target="_parent">_players</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fpopups">
+ <div class="SREntry">
+ <a id="Item50" onkeydown="return searchResults.Nav(event,50)" onkeypress="return searchResults.Nav(event,50)" onkeyup="return searchResults.Nav(event,50)" class="SRSymbol" href="../class_game.html#a9bea5a0ee430443effa418d42a903f83" target="_parent">_popups</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fpreviousfacing">
+ <div class="SREntry">
+ <a id="Item51" onkeydown="return searchResults.Nav(event,51)" onkeypress="return searchResults.Nav(event,51)" onkeyup="return searchResults.Nav(event,51)" class="SRSymbol" href="../class_keyboard_handler.html#a90120a85c62481b3a2c0330511cffbac" target="_parent">_previousFacing</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fremainingtime">
+ <div class="SREntry">
+ <a id="Item52" onkeydown="return searchResults.Nav(event,52)" onkeypress="return searchResults.Nav(event,52)" onkeyup="return searchResults.Nav(event,52)" class="SRSymbol" href="../class_limited_time_object.html#a0b6a4bb0c76b637fba1db498ce084d3a" target="_parent">_remainingTime</a>
+ <span class="SRScope">LimitedTimeObject</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fright">
+ <div class="SREntry">
+ <a id="Item53" onkeydown="return searchResults.Nav(event,53)" onkeypress="return searchResults.Nav(event,53)" onkeyup="return searchResults.Nav(event,53)" class="SRSymbol" href="../class_keyboard_handler.html#a81d37831d958ff21c2ce08cfa97ca420" target="_parent">_right</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5frocks">
+ <div class="SREntry">
+ <a id="Item54" onkeydown="return searchResults.Nav(event,54)" onkeypress="return searchResults.Nav(event,54)" onkeyup="return searchResults.Nav(event,54)" class="SRSymbol" href="../class_game.html#a9f14643bfc4d595dc7dfa3160a59d71b" target="_parent">_rocks</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fscreen">
+ <div class="SREntry">
+ <a id="Item55" onkeydown="return searchResults.Nav(event,55)" onkeypress="return searchResults.Nav(event,55)" onkeyup="return searchResults.Nav(event,55)" class="SRSymbol" href="../class_game.html#a9bc904a37fe9b3e85a597b6b5c6a66d5" target="_parent">_screen</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fscreenheight">
+ <div class="SREntry">
+ <a id="Item56" onkeydown="return searchResults.Nav(event,56)" onkeypress="return searchResults.Nav(event,56)" onkeyup="return searchResults.Nav(event,56)" class="SRSymbol" href="javascript:searchResults.Toggle('SR__5fscreenheight')">_screenHeight</a>
+ <div class="SRChildren">
+ <a id="Item56_c0" onkeydown="return searchResults.NavChild(event,56,0)" onkeypress="return searchResults.NavChild(event,56,0)" onkeyup="return searchResults.NavChild(event,56,0)" class="SRScope" href="../class_config.html#ac27364c75bc8d5e82119988df85c1599" target="_parent">Config::_screenHeight()</a>
+ <a id="Item56_c1" onkeydown="return searchResults.NavChild(event,56,1)" onkeypress="return searchResults.NavChild(event,56,1)" onkeyup="return searchResults.NavChild(event,56,1)" class="SRScope" href="../class_screen.html#a8784c86e10d2b6af0dd99d710f3955e9" target="_parent">Screen::_screenHeight()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fscreenwidth">
+ <div class="SREntry">
+ <a id="Item57" onkeydown="return searchResults.Nav(event,57)" onkeypress="return searchResults.Nav(event,57)" onkeyup="return searchResults.Nav(event,57)" class="SRSymbol" href="javascript:searchResults.Toggle('SR__5fscreenwidth')">_screenWidth</a>
+ <div class="SRChildren">
+ <a id="Item57_c0" onkeydown="return searchResults.NavChild(event,57,0)" onkeypress="return searchResults.NavChild(event,57,0)" onkeyup="return searchResults.NavChild(event,57,0)" class="SRScope" href="../class_config.html#a46dce43903bb24bac8c2ffc92f2ee4da" target="_parent">Config::_screenWidth()</a>
+ <a id="Item57_c1" onkeydown="return searchResults.NavChild(event,57,1)" onkeypress="return searchResults.NavChild(event,57,1)" onkeyup="return searchResults.NavChild(event,57,1)" class="SRScope" href="../class_screen.html#a5931238a3eb8cf1a14b0f8b8d7044b65" target="_parent">Screen::_screenWidth()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fsmokescreen">
+ <div class="SREntry">
+ <a id="Item58" onkeydown="return searchResults.Nav(event,58)" onkeypress="return searchResults.Nav(event,58)" onkeyup="return searchResults.Nav(event,58)" class="SRSymbol" href="../class_keyboard_handler.html#a7769dc815c493fb5962d52c3d5bc7b16" target="_parent">_smokescreen</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fsmokescreens">
+ <div class="SREntry">
+ <a id="Item59" onkeydown="return searchResults.Nav(event,59)" onkeypress="return searchResults.Nav(event,59)" onkeyup="return searchResults.Nav(event,59)" class="SRSymbol" href="../class_game.html#a88916ad9e8095b99a9c870a053180c1c" target="_parent">_smokescreens</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fspeed">
+ <div class="SREntry">
+ <a id="Item60" onkeydown="return searchResults.Nav(event,60)" onkeypress="return searchResults.Nav(event,60)" onkeyup="return searchResults.Nav(event,60)" class="SRSymbol" href="../class_car.html#a84b3d05e98d66f358942193ff54dee51" target="_parent">_speed</a>
+ <span class="SRScope">Car</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fstate">
+ <div class="SREntry">
+ <a id="Item61" onkeydown="return searchResults.Nav(event,61)" onkeypress="return searchResults.Nav(event,61)" onkeyup="return searchResults.Nav(event,61)" class="SRSymbol" href="../class_enemy_car.html#a65a1c7b520f043aae27800ced9e8d543" target="_parent">_state</a>
+ <span class="SRScope">EnemyCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5ftargetx">
+ <div class="SREntry">
+ <a id="Item62" onkeydown="return searchResults.Nav(event,62)" onkeypress="return searchResults.Nav(event,62)" onkeyup="return searchResults.Nav(event,62)" class="SRSymbol" href="../class_enemy_car.html#aa84ac6485311c535526ea14d02d98cc9" target="_parent">_targetX</a>
+ <span class="SRScope">EnemyCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5ftargety">
+ <div class="SREntry">
+ <a id="Item63" onkeydown="return searchResults.Nav(event,63)" onkeypress="return searchResults.Nav(event,63)" onkeyup="return searchResults.Nav(event,63)" class="SRSymbol" href="../class_enemy_car.html#a61ff3751123febe8bc9ab24d0763245c" target="_parent">_targetY</a>
+ <span class="SRScope">EnemyCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5ftimer">
+ <div class="SREntry">
+ <a id="Item64" onkeydown="return searchResults.Nav(event,64)" onkeypress="return searchResults.Nav(event,64)" onkeyup="return searchResults.Nav(event,64)" class="SRSymbol" href="../class_game.html#af153fc1d94c473114cfbd63728d21f91" target="_parent">_timer</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5ftimerevents">
+ <div class="SREntry">
+ <a id="Item65" onkeydown="return searchResults.Nav(event,65)" onkeypress="return searchResults.Nav(event,65)" onkeyup="return searchResults.Nav(event,65)" class="SRSymbol" href="../class_game.html#a2b7303df1b6d0163b78c2c306164859f" target="_parent">_timerEvents</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5ftransparent">
+ <div class="SREntry">
+ <a id="Item66" onkeydown="return searchResults.Nav(event,66)" onkeypress="return searchResults.Nav(event,66)" onkeyup="return searchResults.Nav(event,66)" class="SRSymbol" href="../class_colour_store.html#acadd8e6ed32fe6535252c94124df04ca" target="_parent">_transparent</a>
+ <span class="SRScope">ColourStore</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fup">
+ <div class="SREntry">
+ <a id="Item67" onkeydown="return searchResults.Nav(event,67)" onkeypress="return searchResults.Nav(event,67)" onkeyup="return searchResults.Nav(event,67)" class="SRSymbol" href="../class_keyboard_handler.html#ad323844aad47f1bc263ec2fd4a19ac3a" target="_parent">_up</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fwalllocations">
+ <div class="SREntry">
+ <a id="Item68" onkeydown="return searchResults.Nav(event,68)" onkeypress="return searchResults.Nav(event,68)" onkeyup="return searchResults.Nav(event,68)" class="SRSymbol" href="../class_maze.html#a3f0247841ddb8a6b5b8b5eeff86b754a" target="_parent">_wallLocations</a>
+ <span class="SRScope">Maze</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fwidth">
+ <div class="SREntry">
+ <a id="Item69" onkeydown="return searchResults.Nav(event,69)" onkeypress="return searchResults.Nav(event,69)" onkeyup="return searchResults.Nav(event,69)" class="SRSymbol" href="javascript:searchResults.Toggle('SR__5fwidth')">_width</a>
+ <div class="SRChildren">
+ <a id="Item69_c0" onkeydown="return searchResults.NavChild(event,69,0)" onkeypress="return searchResults.NavChild(event,69,0)" onkeyup="return searchResults.NavChild(event,69,0)" class="SRScope" href="../class_maze.html#a981c764d7ad04ca06bd8dee472578ce4" target="_parent">Maze::_width()</a>
+ <a id="Item69_c1" onkeydown="return searchResults.NavChild(event,69,1)" onkeypress="return searchResults.NavChild(event,69,1)" onkeyup="return searchResults.NavChild(event,69,1)" class="SRScope" href="../class_screen_panel.html#afbbcad2a101b95869dcdef9bf0898f65" target="_parent">ScreenPanel::_width()</a>
+ </div>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fwindowevents">
+ <div class="SREntry">
+ <a id="Item70" onkeydown="return searchResults.Nav(event,70)" onkeypress="return searchResults.Nav(event,70)" onkeyup="return searchResults.Nav(event,70)" class="SRSymbol" href="../class_screen.html#aa4ea622368bdf47a3b22d026048ee83a" target="_parent">_windowEvents</a>
+ <span class="SRScope">Screen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fx">
+ <div class="SREntry">
+ <a id="Item71" onkeydown="return searchResults.Nav(event,71)" onkeypress="return searchResults.Nav(event,71)" onkeyup="return searchResults.Nav(event,71)" class="SRSymbol" href="../class_game_object.html#acc5b8970ff0036786fdd9af621bd1614" target="_parent">_x</a>
+ <span class="SRScope">GameObject</span>
+ </div>
+</div>
+<div class="SRResult" id="SR__5fy">
+ <div class="SREntry">
+ <a id="Item72" onkeydown="return searchResults.Nav(event,72)" onkeypress="return searchResults.Nav(event,72)" onkeyup="return searchResults.Nav(event,72)" class="SRSymbol" href="../class_game_object.html#ade9a5568d88963b86547ddcaec465b4e" target="_parent">_y</a>
+ <span class="SRScope">GameObject</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/variables_62.html b/docs/html/search/variables_62.html
new file mode 100644
index 0000000..3e07075
--- /dev/null
+++ b/docs/html/search/variables_62.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_blank">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_screen_panel.html#a1cc6ea44035f47d77d24b4cee9dc9d85" target="_parent">BLANK</a>
+ <span class="SRScope">ScreenPanel</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_blocks_5fper_5frow">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_game_panel.html#ae60d3f1c29382ad3c6e6b5c5a56d2160" target="_parent">BLOCKS_PER_ROW</a>
+ <span class="SRScope">GamePanel</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/variables_63.html b/docs/html/search/variables_63.html
new file mode 100644
index 0000000..f9415b9
--- /dev/null
+++ b/docs/html/search/variables_63.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_checkpoint_5fchar">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_level_reader.html#ad401a0f48a3eac678c0f53e95ea1f354" target="_parent">CHECKPOINT_CHAR</a>
+ <span class="SRScope">LevelReader</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/variables_64.html b/docs/html/search/variables_64.html
new file mode 100644
index 0000000..061bb3f
--- /dev/null
+++ b/docs/html/search/variables_64.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_down_5fkey">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_keyboard_handler.html#a3d8d985fdc3c3ac543e84647967f78e4" target="_parent">DOWN_KEY</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/variables_65.html b/docs/html/search/variables_65.html
new file mode 100644
index 0000000..c28fe29
--- /dev/null
+++ b/docs/html/search/variables_65.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_enemy_5fchar">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_level_reader.html#a67d3735d6a3e40fa61527dd1ff7cfa22" target="_parent">ENEMY_CHAR</a>
+ <span class="SRScope">LevelReader</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/variables_66.html b/docs/html/search/variables_66.html
new file mode 100644
index 0000000..71d264c
--- /dev/null
+++ b/docs/html/search/variables_66.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_fps">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_game.html#a636d6897103fd12d230489d512bf2be1" target="_parent">FPS</a>
+ <span class="SRScope">Game</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_fullscreen_5fdefault">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_config.html#a3195b4273ebe9ac691167bff71394720" target="_parent">FULLSCREEN_DEFAULT</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_fullscreen_5fkey">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../class_config.html#ae2dd20bca46b767d2a30c32de7ab78cb" target="_parent">FULLSCREEN_KEY</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/variables_6c.html b/docs/html/search/variables_6c.html
new file mode 100644
index 0000000..cd1c8d6
--- /dev/null
+++ b/docs/html/search/variables_6c.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_left_5fkey">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_keyboard_handler.html#ab285a229f4f5c7c1be5504fdb629e10a" target="_parent">LEFT_KEY</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/variables_70.html b/docs/html/search/variables_70.html
new file mode 100644
index 0000000..4aac788
--- /dev/null
+++ b/docs/html/search/variables_70.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_petrol_5ffrom_5fcheckpoint">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_player_car.html#aa51ff0da924f9f9b2ea95907a7a26784" target="_parent">PETROL_FROM_CHECKPOINT</a>
+ <span class="SRScope">PlayerCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_petrol_5fuse_5frate">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_player_car.html#a1f0b0226242250bd470f48b73defe3be" target="_parent">PETROL_USE_RATE</a>
+ <span class="SRScope">PlayerCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_petrol_5fuse_5fsmokescreen">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../class_player_car.html#af4d042839afea10b0947837040eab12c" target="_parent">PETROL_USE_SMOKESCREEN</a>
+ <span class="SRScope">PlayerCar</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_player_5fchar">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../class_level_reader.html#a8de3d894f4e67a7a0f66f6dfc3a7fbe1" target="_parent">PLAYER_CHAR</a>
+ <span class="SRScope">LevelReader</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_popup_5ftime">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../class_destroyed_object_popup.html#a883845e614aba9d292eb85afa9423f31" target="_parent">POPUP_TIME</a>
+ <span class="SRScope">DestroyedObjectPopup</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/variables_72.html b/docs/html/search/variables_72.html
new file mode 100644
index 0000000..2d3c244
--- /dev/null
+++ b/docs/html/search/variables_72.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_right_5fkey">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_keyboard_handler.html#a0822e8b6338b01cb09d08589d778af86" target="_parent">RIGHT_KEY</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_rock_5fchar">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_level_reader.html#a321a0fcc5a9ae36a394782be4c71bd7d" target="_parent">ROCK_CHAR</a>
+ <span class="SRScope">LevelReader</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/variables_73.html b/docs/html/search/variables_73.html
new file mode 100644
index 0000000..002ceeb
--- /dev/null
+++ b/docs/html/search/variables_73.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_screen_5fheight_5fdefault">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_config.html#a2382c43dd0d51b3d52bf88d18438c579" target="_parent">SCREEN_HEIGHT_DEFAULT</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_screen_5fheight_5fkey">
+ <div class="SREntry">
+ <a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../class_config.html#a5dd914d11bd6f43c06ad4682be0efaba" target="_parent">SCREEN_HEIGHT_KEY</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_screen_5fwidth_5fdefault">
+ <div class="SREntry">
+ <a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../class_config.html#ad6f88b173db3508eaeb7b569655b5cf2" target="_parent">SCREEN_WIDTH_DEFAULT</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_screen_5fwidth_5fkey">
+ <div class="SREntry">
+ <a id="Item3" onkeydown="return searchResults.Nav(event,3)" onkeypress="return searchResults.Nav(event,3)" onkeyup="return searchResults.Nav(event,3)" class="SRSymbol" href="../class_config.html#abebfdbe6033183421dcdb4cdb6fc9549" target="_parent">SCREEN_WIDTH_KEY</a>
+ <span class="SRScope">Config</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_smoke_5ftime">
+ <div class="SREntry">
+ <a id="Item4" onkeydown="return searchResults.Nav(event,4)" onkeypress="return searchResults.Nav(event,4)" onkeyup="return searchResults.Nav(event,4)" class="SRSymbol" href="../class_smokescreen.html#aca053d39fcca8d45096512e92fb0f4d8" target="_parent">SMOKE_TIME</a>
+ <span class="SRScope">Smokescreen</span>
+ </div>
+</div>
+<div class="SRResult" id="SR_smokescreen_5fkey">
+ <div class="SREntry">
+ <a id="Item5" onkeydown="return searchResults.Nav(event,5)" onkeypress="return searchResults.Nav(event,5)" onkeyup="return searchResults.Nav(event,5)" class="SRSymbol" href="../class_keyboard_handler.html#a2de5780311975180c0b78e7b0457eae1" target="_parent">SMOKESCREEN_KEY</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/variables_75.html b/docs/html/search/variables_75.html
new file mode 100644
index 0000000..72bec15
--- /dev/null
+++ b/docs/html/search/variables_75.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_up_5fkey">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_keyboard_handler.html#a3ed342ff89f15b752a9957fd435e9094" target="_parent">UP_KEY</a>
+ <span class="SRScope">KeyboardHandler</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/search/variables_77.html b/docs/html/search/variables_77.html
new file mode 100644
index 0000000..3af4371
--- /dev/null
+++ b/docs/html/search/variables_77.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRResult" id="SR_wall_5fchar">
+ <div class="SREntry">
+ <a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../class_level_reader.html#a250f9fede6584dc196acce86a8e217f9" target="_parent">WALL_CHAR</a>
+ <span class="SRScope">LevelReader</span>
+ </div>
+</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/html/tab_a.png b/docs/html/tab_a.png
new file mode 100644
index 0000000..2d99ef2
--- /dev/null
+++ b/docs/html/tab_a.png
Binary files differ
diff --git a/docs/html/tab_b.png b/docs/html/tab_b.png
new file mode 100644
index 0000000..b2c3d2b
--- /dev/null
+++ b/docs/html/tab_b.png
Binary files differ
diff --git a/docs/html/tab_h.png b/docs/html/tab_h.png
new file mode 100644
index 0000000..c11f48f
--- /dev/null
+++ b/docs/html/tab_h.png
Binary files differ
diff --git a/docs/html/tab_s.png b/docs/html/tab_s.png
new file mode 100644
index 0000000..978943a
--- /dev/null
+++ b/docs/html/tab_s.png
Binary files differ
diff --git a/docs/html/tabs.css b/docs/html/tabs.css
new file mode 100644
index 0000000..2192056
--- /dev/null
+++ b/docs/html/tabs.css
@@ -0,0 +1,59 @@
+.tabs, .tabs2, .tabs3 {
+ background-image: url('tab_b.png');
+ width: 100%;
+ z-index: 101;
+ font-size: 13px;
+}
+
+.tabs2 {
+ font-size: 10px;
+}
+.tabs3 {
+ font-size: 9px;
+}
+
+.tablist {
+ margin: 0;
+ padding: 0;
+ display: table;
+}
+
+.tablist li {
+ float: left;
+ display: table-cell;
+ background-image: url('tab_b.png');
+ line-height: 36px;
+ list-style: none;
+}
+
+.tablist a {
+ display: block;
+ padding: 0 20px;
+ font-weight: bold;
+ background-image:url('tab_s.png');
+ background-repeat:no-repeat;
+ background-position:right;
+ color: #283A5D;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ text-decoration: none;
+ outline: none;
+}
+
+.tabs3 .tablist a {
+ padding: 0 10px;
+}
+
+.tablist a:hover {
+ background-image: url('tab_h.png');
+ background-repeat:repeat-x;
+ color: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+ text-decoration: none;
+}
+
+.tablist li.current a {
+ background-image: url('tab_a.png');
+ background-repeat:repeat-x;
+ color: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}
diff --git a/exe/Junction 02.ttf b/exe/Junction 02.ttf
new file mode 100644
index 0000000..cd8877e
--- /dev/null
+++ b/exe/Junction 02.ttf
Binary files differ
diff --git a/exe/Junction FONTLOG.txt b/exe/Junction FONTLOG.txt
new file mode 100644
index 0000000..4461408
--- /dev/null
+++ b/exe/Junction FONTLOG.txt
@@ -0,0 +1,32 @@
+FONTLOG for Junction
+This file provides detailed information on the Junction Font Software.
+This information should be distributed along with the Junction fonts
+and any derivative works.
+
+Licence: Open Font Licence
+
+Basic Font Information:
+Junction is an open source humanist san serif typeface.
+
+
+ChangeLog
+This is a list of both major and minor changes, most recent first:
+
+2. Feb 2010 (Caroline Hadilaksono) Junction Version 2.0
+- Added ISO 8859-1 Latin 1 (Western) glyphs
+- Added OpenType ligatures (liga) & lining numerals (lnum) features
+- Re-released as "Junction"
+
+1. Feb 2009 (Caroline Hadilaksono) Junction Version 1.0
+- Initial release of font Junction
+
+
+Acknowledgements
+If you make modifications be sure to add your name (N), email (E),
+web-address (W) and description (D). This list is sorted by last name in
+alphabetical order:
+
+N: Caroline Hadilaksono
+E: caroline@hadilaksono.com
+W: www.hadilaksono.com
+D: Designer - original font & the extended Latin 1 (Western) glyphs
diff --git a/exe/RallyX.exe b/exe/RallyX.exe
new file mode 100644
index 0000000..a3f7211
--- /dev/null
+++ b/exe/RallyX.exe
Binary files differ
diff --git a/exe/allegro-5.0.3-monolith-md-debug.dll b/exe/allegro-5.0.3-monolith-md-debug.dll
new file mode 100644
index 0000000..a17ee48
--- /dev/null
+++ b/exe/allegro-5.0.3-monolith-md-debug.dll
Binary files differ
diff --git a/exe/config.txt b/exe/config.txt
new file mode 100644
index 0000000..b5759cb
--- /dev/null
+++ b/exe/config.txt
@@ -0,0 +1,3 @@
+screen_width=1366
+screen_height=768
+fullscreen=true \ No newline at end of file
diff --git a/exe/level1.lvl b/exe/level1.lvl
new file mode 100644
index 0000000..3023154
--- /dev/null
+++ b/exe/level1.lvl
@@ -0,0 +1,31 @@
+############################
+# ## #
+# #### ##### ## ##### #### #
+#P#### ##### ## ##### ####P#
+# #### ##### ## ##### #### #
+# #
+# #### ## ######## ## #### #
+# #### ## ######## ## #### #
+# ## ## ## #
+###### ##### ## ##### ######
+###### ##### ## ##### ######
+###### ## ## ######
+###### ## ###XX### ## ######
+###### ## # OO # ## ######
+###### # # ######
+###### ## # X # ## ######
+###### ## ######## ## ######
+###### ## ## ######
+###### ## ######## ## ######
+###### ## ######## ## ######
+# ## ## ## #
+# #### ##### ## ##### #### #
+# #### ##### ## ##### #### #
+#P ## @ ## P#
+### ## ## ######## ## ## ###
+### ## ## ######## ## ## ###
+# ## ## ## #
+# ########## ## ########## #
+# ########## ## ########## #
+# #
+############################
diff --git a/exe/level2.lvl b/exe/level2.lvl
new file mode 100644
index 0000000..d147ffe
--- /dev/null
+++ b/exe/level2.lvl
@@ -0,0 +1,25 @@
+########################################################
+# O ## P X ## # X#
+#### ########## # # ##O###### ## # ###### # # ## #
+# #P # # ## ##O###### ## ## # # # # P# #
+# # # # # # # # # # # # #
+# X# # ########## ###### ###### # # ### # #
+# ## # # # # # # # # # # #
+# ## ## ## ### # # # ## #### ## # # # # # # #### #
+#### ## ### # # # # # # # # # #### #
+#### ## ## # # # ## ## # # ###### #
+# # O# # # # # # # # # # # # O# #
+# ######## # # # # # # # # @ # # # # # # # # ########
+# # # # # # O OO O # # # # #
+# # ######## # # # #P# # # # # #P# # # # ######## #
+# #O # # # # # # # # # # # #O # #
+#### ## ## # # # ## ## # # ###### #
+#### ## ### # # # # # # # # ###### #
+# ## ## ## ### # # # ## #### ## # # # # # #### #
+# ## # # # # # # # # # # #
+# X# ########## # ###### ###### # # ### # #
+# # #P # # # # # # # # # #
+# # # # ## ## ######O## ## # # # # P# #
+#### # ########## # ## ######O## # ###### # # ## #
+# O ## P ## X#
+########################################################
diff --git a/exe/level3.lvl b/exe/level3.lvl
new file mode 100644
index 0000000..dfb67eb
--- /dev/null
+++ b/exe/level3.lvl
@@ -0,0 +1,57 @@
+########################################################
+# # #O# # # #O# #
+# ##### # # # #O# # # ###### # # #O# ####### ### #
+# #OOO# # # # #O# # # # # #O# # #O# #
+# #O### # # # #O# # # # ## # # #O# # POX #O# #
+# #O#P # # # #O# ### # # ## # ####### #O# # #O# #
+# ### ### # # ### # P # ### # ##### #O# #
+# # # ##### ###### ##### # #OO## #O# #
+# ### # ### # ### ### # # #### #O# #
+# #O# # #O##### ### ## ### #####O# # #O# #
+# #O# # ##### ####### ### ## ### ####### # ####### #O# #
+# #O# # # # ## # # # #O# #
+# ### # # X #P####### ### ## ### ####### # # X # ### #
+# # # # #O##### ### ## ### #####O# # # # #
+##### # ##### ### ### # ####### #####
+# ###### #### ###### P #
+#X############### ################# #
+# # ## ############ ## # #
+#### ############ # #OOOOOOOOOO# X# ###### # #### #
+# # X # # ## ############ ## # # # # # #
+# # # # # #P # # # O # # # #
+# # ############ ###### ####### # O # ### # #
+# ##P ### # # ### # O # # X# #
+# ## ## ## ### #O# # ## #### ## # #O# # P# ###### #
+#### ## ### #O# # # # # #O# # #### #
+#### ## ## # #O# # ## ## # #O# ###### #
+# #### #O# # # # # # # #O# #### #
+# ########## #OO# #O# # # # # #O# #OO# ##########
+# ########## #OO# #O# # #@ # # #O# #OO# ##########
+# #### #O# # # # # # # #O# #### P#
+#### ## ## # #O# # ## ## # #O# ###### #
+#### ## ### #O# # # # # #O# ###### #
+# ## ## ## ### #O# # ## #### ## # #O# # ###### #
+# ## ### # # ### # O # # X# #
+# P# ############ ####### ###### # O # ### # #
+# # # # # # P# # # O # # # #
+# # X # # ## ############ ## # # # # # #
+#### ############ #X #OOOOOOOOOO# # ###### # #### #
+# # ## ############ ## # #
+# ############### #################X#
+# P ###### #### ###### #
+##### ####### ### ### # ##### # #####
+# # # #O##### ### ## ### #####O# # # # # #
+# ### # X # ####### ### ## ### ####### #P# X # # ### #
+# #O# # # ## # # # # #O# #
+# #O# ####### ####### ### ## ### ####### # ##### # #O# #
+# #O# #O##### ### ## ### #####O# # # #O# #
+# #O# #### # ### ### # # ### # ### #
+# #O# ##OO# # ##### ###### ##### # # #
+# #O# ##### # ### # P # ### # # ### ### #
+# #O# # #O# ### # # ## # ####### #O# # # # P#O# #
+# #O# XOP # #O# # # # ## # # #O# # # # ###O# #
+# #O# # #O# # # # # #O# # # # #OOO# #
+# ### ####### #O# # # ###### # # #O# # # # ##### #
+# #O# # # #O# # #
+########################################################
+
diff --git a/exe/libgcc_s_dw2-1.dll b/exe/libgcc_s_dw2-1.dll
new file mode 100644
index 0000000..9e32dc2
--- /dev/null
+++ b/exe/libgcc_s_dw2-1.dll
Binary files differ
diff --git a/exe/rallyx-test.exe b/exe/rallyx-test.exe
new file mode 100644
index 0000000..a4b8eba
--- /dev/null
+++ b/exe/rallyx-test.exe
Binary files differ
diff --git a/source/data/Config.cpp b/source/data/Config.cpp
new file mode 100644
index 0000000..6cdda2f
--- /dev/null
+++ b/source/data/Config.cpp
@@ -0,0 +1,105 @@
+#include "Config.h"
+
+const string Config::SCREEN_WIDTH_KEY("screen_width");
+const string Config::SCREEN_HEIGHT_KEY("screen_height");
+const string Config::FULLSCREEN_KEY("fullscreen");
+
+const string Config::SCREEN_WIDTH_DEFAULT("800");
+const string Config::SCREEN_HEIGHT_DEFAULT("600");
+const string Config::FULLSCREEN_DEFAULT("false");
+
+
+Config::Config(const string& filename)
+ :_screenWidth(0),
+ _screenHeight(0)
+{
+ ifstream inStream(filename.c_str(), fstream::in);
+
+ map<string, string> readValues;
+ map<string, string> unfoundValues;
+ readFile(inStream, readValues);
+ fillValues(readValues, unfoundValues);
+
+ inStream.close();
+
+ ofstream outStream(filename.c_str(), fstream::app);
+
+ writeUnfoundValues(outStream, unfoundValues);
+
+ outStream.close();
+}
+
+unsigned int Config::screenWidth() const
+{
+ return _screenWidth;
+}
+unsigned int Config::screenHeight() const
+{
+ return _screenHeight;
+}
+bool Config::fullscreen() const
+{
+ return _fullscreen;
+}
+
+void Config::readFile(ifstream& file, map<string,string>& map)
+{
+ if (!file.is_open()) return;
+
+ string nextEntry;
+ while(!file.eof())
+ {
+ file >> nextEntry;
+
+ string::size_type equalsIndex = nextEntry.find("=",0);
+ if (equalsIndex!=string::npos)
+ {
+ string key = nextEntry.substr(0,equalsIndex);
+ string value = nextEntry.substr(equalsIndex+1);
+
+ map[key] = value;
+ }
+ }
+}
+
+void Config::fillValues(const map<string, string>& readValues, map<string, string>& unfoundValues)
+{
+ setScreenWidth(extractValue(readValues, unfoundValues, SCREEN_WIDTH_KEY, SCREEN_WIDTH_DEFAULT));
+ setScreenHeight(extractValue(readValues, unfoundValues, SCREEN_HEIGHT_KEY, SCREEN_HEIGHT_DEFAULT));
+ setFullscreen(extractValue(readValues, unfoundValues, FULLSCREEN_KEY, FULLSCREEN_DEFAULT));
+}
+
+string Config::extractValue(const map<string, string>& readValues, map<string, string>& unfoundValues, const string& key, const string& defaultValue)
+{
+ map<string, string>::const_iterator findIter = readValues.find(key);
+ if (findIter != readValues.end())
+ {
+ return findIter->second;
+ }
+ else
+ {
+ unfoundValues[key] = defaultValue;
+ return defaultValue;
+ }
+}
+
+void Config::writeUnfoundValues(ofstream& file, const map<string, string>& unfoundValues)
+{
+ for (map<string, string>::const_iterator iter = unfoundValues.begin(); iter!=unfoundValues.end(); ++iter)
+ {
+ file << iter->first << "=" << iter->second << endl;
+ }
+}
+
+void Config::setScreenWidth(const string& screenWidthStr)
+{
+ _screenWidth = atoi(screenWidthStr.c_str());
+}
+void Config::setScreenHeight(const string& screenHeightStr)
+{
+ _screenHeight = atoi(screenHeightStr.c_str());
+}
+void Config::setFullscreen(const string& fullscreenStr)
+{
+ _fullscreen = fullscreenStr=="true";
+}
diff --git a/source/data/Config.h b/source/data/Config.h
new file mode 100644
index 0000000..8fdf5aa
--- /dev/null
+++ b/source/data/Config.h
@@ -0,0 +1,136 @@
+#ifndef CONFIG_H
+#define CONFIG_H
+
+#include <cstdlib>
+#include <string>
+#include <fstream>
+#include <map>
+using namespace std;
+
+/**
+* @brief Object for handling user settings loaded from a file.
+*
+* These settings are currently all related to the screen (resolution and windowed or fullscreen).
+* If custom controls are implemented in a later release, they will be loaded here. If a setting exists
+* but is not found in the config file, it is set to a default value and written to the file.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class Config
+{
+ public:
+ /**
+ * @brief Constructs a Config object from a file with the given path.
+ *
+ * Opens the file and reads all of the settings in the file. The read settings are
+ * bound to the settings that have keys defined in the class. And settings missing from
+ * the file are set to default values, and the default values are written to the file.
+ *
+ * @param [in] filename The path of the file in which the settings are stored.
+ */
+ Config(const string& filename);
+
+ //Assignment and copy operations are handled by the compiler generated versions
+
+ /**
+ * @brief Function for accessing the screen width setting in pixels.
+ *
+ * @return The desired width of the screen in pixels.
+ */
+ unsigned int screenWidth() const;
+
+ /**
+ * @brief Function for accessing the screen height setting in pixels.
+ *
+ * @return The desired height of the screen in pixels.
+ */
+ unsigned int screenHeight() const;
+
+ /**
+ * @brief Function for accessing whether the game should be displayed in fullscreen or windowed mode.
+ *
+ * @return The desired fullscreen setting. A result of true means fullscreen mode, while a result of false means windowed mode.
+ */
+ bool fullscreen() const;
+
+ private:
+ /**
+ * @brief Reads all of the settings defined in a file into a map.
+ *
+ * Reads each line that is in the format "key=value" in a file into a map.
+ * Lines that do not contain a '=' are ignored.
+ *
+ * @param [in] file An opened filestream object at the beginning of the file to be read. After the function call, file will be at the end of the file.
+ * @param [out] map The map that is populated with settings.
+ */
+ void readFile(ifstream& file, map<string,string>& map);
+
+ /**
+ * @brief Initialises the Config option's parameters to those in the readValues map.
+ *
+ * Parameters with a key that does not appear in readValues are initialised to a default value.
+ * The default value, and its key, are then added to the unfoundValues map.
+ *
+ * @param [in] readValues A map containing all of the settings read in from a config file.
+ * @param [out] unfoundValues A map that is populated with and settings not found in readValues.
+ */
+ void fillValues(const map<string, string>& readValues, map<string, string>& unfoundValues);
+
+ /**
+ * @brief Helper function for fillValues. Finds the value for a single key.
+ *
+ * If the given key does not appear, it is added to the unfoundValues map with the given default
+ *
+ * @param [in] readValues A map containing all of the settings read in from a config file.
+ * @param [out] unfoundValues A map that is populated with and settings not found in readValues.
+ * @param [in] key The key of the setting to be found in readValues.
+ * @param [in] defaultValue The value to return and add to unfoundValues if the setting is not found in readValues.
+ *
+ * @return The value corresponding to the requested key.
+ */
+ string extractValue(const map<string, string>& readValues, map<string, string>& unfoundValues, const string& key, const string& defaultValue);
+
+ /**
+ * @brief Writes settings that were not found in the file to the file with default values.
+ *
+ * @param [in] file The opened filestream to which the key=value pairs are written.
+ * @param [in] unfoundValues The map of key value pairs to be written to the file.
+ */
+ void writeUnfoundValues(ofstream& file, const map<string, string>& unfoundValues);
+
+ /**
+ * @brief Initializes the screen width in pixels from a given string.
+ *
+ * @param [in] screenWidthStr A string representing the desired screen width, read from a file.
+ */
+ void setScreenWidth(const string& screenWidthStr);
+
+ /**
+ * @brief Initializes the screen height in pixels from a given string.
+ *
+ * @param [in] screenHeightStr A string representing the desired screen height, read from a file.
+ */
+ void setScreenHeight(const string& screenHeightStr);
+
+ /**
+ * @brief Initializes the fullscreen setting from a given string.
+ *
+ * @param [in] fullscreenStr A string representing whether the screen should be in fullscreen mode ("true") or windowed mode (anything else).
+ */
+ void setFullscreen(const string& fullscreenStr);
+
+ unsigned int _screenWidth; ///< The desired width of the screen in pixels.
+ unsigned int _screenHeight; ///< The desired height of the screen in pixels.
+ bool _fullscreen; ///< The desired fullscreen or windowed setting.
+
+ static const string SCREEN_WIDTH_KEY; ///< The key for the screen width setting, initialized to "screen_width".
+ static const string SCREEN_HEIGHT_KEY; ///< The key for the screen height setting, initialized to "screen_height".
+ static const string FULLSCREEN_KEY; ///< The key for the fullscreen setting, initialized to "fullscreen".
+
+ static const string SCREEN_WIDTH_DEFAULT; ///< The default value for the screen width setting, initialized to 800.
+ static const string SCREEN_HEIGHT_DEFAULT; ///< The default value for the screen height setting, initialized to 600.
+ static const string FULLSCREEN_DEFAULT; ///< The default value for the fullscreen setting, initialized to false.
+};
+
+#endif // CONFIG_H
diff --git a/source/data/LevelReader.cpp b/source/data/LevelReader.cpp
new file mode 100644
index 0000000..e5364d8
--- /dev/null
+++ b/source/data/LevelReader.cpp
@@ -0,0 +1,54 @@
+#include "LevelReader.h"
+
+LevelReader::LevelReader(string filename)
+ :_filename(filename)
+{}
+
+void LevelReader::readLevel(Maze& maze, list<PlayerCar>& players, list<EnemyCar>& enemies, list<Checkpoint>& checkpoints, list<Rock>& rocks)
+{
+ ifstream file(_filename.c_str());
+ if (!file)
+ {
+ al_show_native_message_box(NULL, "Fatal error", "Fatal error", "The requested level file could not be opened.", NULL, ALLEGRO_MESSAGEBOX_ERROR);
+ throw FileOpenError();
+ }
+
+ int maxX = 0;
+ int maxY = 0;
+
+ string line;
+ char element;
+ int y = 0;
+ vector <pair<int, int> > walls;
+
+ while (!file.eof())
+ {
+ getline (file, line);
+
+ for (int x = 0; x < static_cast<int>(line.length()); ++x)
+ {
+ element = line.at(x);
+ switch (element)
+ {
+ case PLAYER_CHAR: players.push_back(PlayerCar(x,y));
+ break;
+ case ENEMY_CHAR: enemies.push_back (EnemyCar(x,y));
+ break;
+ case CHECKPOINT_CHAR: checkpoints.push_back(Checkpoint(x,y));
+ break;
+ case ROCK_CHAR: rocks.push_back(Rock(x,y));
+ break;
+ case WALL_CHAR: walls.push_back (make_pair(x,y));
+ break;
+ }
+ if (maxX < x) maxX = x;
+ if (maxY < y) maxY = y;
+ }
+
+ ++y;
+ }
+
+ maze.generateMaze (walls, maxX, maxY);
+
+ file.close();
+}
diff --git a/source/data/LevelReader.h b/source/data/LevelReader.h
new file mode 100644
index 0000000..293d820
--- /dev/null
+++ b/source/data/LevelReader.h
@@ -0,0 +1,71 @@
+#ifndef MAZEREADER_H
+#define MAZEREADER_H
+
+#include <vector>
+#include <list>
+#include <string>
+#include <fstream>
+using namespace std;
+
+#include <allegro5/allegro_native_dialog.h>
+
+#include "../logic/Maze.h"
+#include "../logic/PlayerCar.h"
+#include "../logic/EnemyCar.h"
+#include "../logic/Checkpoint.h"
+#include "../logic/Rock.h"
+
+/**
+* @brief An exception that is thrown if the file selected for opening does not exist.
+*
+* This should never be thrown, since the Allegro native file dialog is being used to select
+* this file, and it only allows one to select existing files.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class FileOpenError{};
+
+/**
+* @brief Reads the game objects from a text file and calls relevant constructors.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class LevelReader
+{
+ public:
+ /**
+ * @brief Constructor that stores the path of the file containing the level to be read with the readLevel function.
+ *
+ * @param [in] filename The path of the file containing the level.
+ */
+ LevelReader(string filename);
+
+ //Assignment and copy operations are handled by the compiler generated versions
+
+ /**
+ * @brief Function to read the chosen file into the data structures used in the game.
+ *
+ * Each character in the file is iterated through, and added to the appropriate data structure if it matches
+ * one of the defined constants. Lists should be cleared prior to calling this function.
+ *
+ * @param [out] maze Object representing the walls, populated with a vector of x,y pairs.
+ * @param [out] players List representing the player(s) in the game.
+ * @param [out] enemies List representing the enemies in the game.
+ * @param [out] checkpoints List representing the checkpoints in the game.
+ * @param [out] rocks List representing the rocks in the game.
+ */
+ void readLevel(Maze& maze, list<PlayerCar>& players, list<EnemyCar>& enemies, list<Checkpoint>& checkpoints, list<Rock>& rocks);
+
+ private:
+ static const char PLAYER_CHAR = '@'; ///< Character represented a PlayerCar in the level file.
+ static const char ENEMY_CHAR = 'X'; ///< Character represented an EnemyCar in the level file.
+ static const char CHECKPOINT_CHAR = 'P'; ///< Character represented a Checkpoint in the level file.
+ static const char ROCK_CHAR = 'O'; ///< Character represented a Rock in the level file.
+ static const char WALL_CHAR = '#'; ///< Character represented a solid part of the maze in the level file.
+
+ string _filename; ///< Path of the file containing the level.
+};
+
+#endif // MAZEREADER_H
diff --git a/source/logic/AllegroWrappers.cpp b/source/logic/AllegroWrappers.cpp
new file mode 100644
index 0000000..4094cfe
--- /dev/null
+++ b/source/logic/AllegroWrappers.cpp
@@ -0,0 +1,116 @@
+#include "AllegroWrappers.h"
+
+int AllegroInit::_initCount = 0;
+
+AllegroInit::AllegroInit()
+{
+ if (_initCount==0)
+ {
+ if (!al_init())
+ {
+ throw InstallFailure();
+ }
+ }
+ ++_initCount;
+}
+
+AllegroInit::AllegroInit(const AllegroInit& ref)
+{
+ if (_initCount==0)
+ {
+ if (!al_init())
+ {
+ throw InstallFailure();
+ }
+ }
+ ++_initCount;
+}
+
+AllegroInit::~AllegroInit()
+{
+ --_initCount;
+ if (_initCount==0)
+ {
+ al_uninstall_system();
+ }
+}
+
+
+int AllegroKeyboardInit::_initCount = 0;
+
+AllegroKeyboardInit::AllegroKeyboardInit()
+{
+ if (_initCount==0)
+ {
+ if (!al_install_keyboard())
+ {
+ throw InstallFailure();
+ }
+ }
+ ++_initCount;
+}
+
+AllegroKeyboardInit::AllegroKeyboardInit(const AllegroKeyboardInit& ref)
+{
+ if (_initCount==0)
+ {
+ if (!al_install_keyboard())
+ {
+ throw InstallFailure();
+ }
+ }
+ ++_initCount;
+}
+
+AllegroKeyboardInit::~AllegroKeyboardInit()
+{
+ --_initCount;
+ if (_initCount==0) al_uninstall_keyboard();
+}
+
+int AllegroDrawingInit::_initCount = 0;
+
+AllegroDrawingInit::AllegroDrawingInit()
+{
+ if (_initCount==0)
+ {
+ if (!al_init_primitives_addon())
+ {
+ throw InstallFailure();
+ }
+ al_init_font_addon();
+ if (!al_init_ttf_addon())
+ {
+ throw InstallFailure();
+ }
+ }
+ ++_initCount;
+}
+
+AllegroDrawingInit::AllegroDrawingInit(const AllegroDrawingInit& ref)
+{
+ if (_initCount==0)
+ {
+ if (!al_init_primitives_addon())
+ {
+ throw InstallFailure();
+ }
+ al_init_font_addon();
+ if (!al_init_ttf_addon())
+ {
+ throw InstallFailure();
+ }
+ }
+ ++_initCount;
+}
+
+AllegroDrawingInit::~AllegroDrawingInit()
+{
+ --_initCount;
+ if (_initCount==0)
+ {
+ al_shutdown_ttf_addon();
+ al_shutdown_font_addon();
+ al_shutdown_primitives_addon();
+ }
+}
diff --git a/source/logic/AllegroWrappers.h b/source/logic/AllegroWrappers.h
new file mode 100644
index 0000000..851f219
--- /dev/null
+++ b/source/logic/AllegroWrappers.h
@@ -0,0 +1,112 @@
+#ifndef ALLEGRO_WRAPPERS_H
+#define ALLEGRO_WRAPPERS_H
+
+#include <allegro5/allegro.h>
+#include <allegro5/allegro_primitives.h>
+#include <allegro5/allegro_font.h>
+#include <allegro5/allegro_ttf.h>
+
+/**
+* @brief Exception to be thrown if any component of Allegro fails to install at runtime.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class InstallFailure {};
+
+/**
+* @brief Class ensures that Allegro is initialized and uninstalled when appropriate.
+*
+* Any classes that use Allegro should include this class as a data member.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class AllegroInit
+{
+ public:
+ /**
+ * @brief Constructor calls al_init() if it is the first instance.
+ */
+ AllegroInit();
+ /**
+ * @brief Copy constructor, implemented to be included in instance count.
+ */
+ AllegroInit(const AllegroInit& ref);
+ /**
+ * @brief Destructor calls al_uninstall_system() if it is the last instant.
+ */
+
+ //assignment operator provided by compiler. _initCount does not need incrementing on assignment,
+ //because assignment does not make a new instance, just changes one.
+
+ ~AllegroInit();
+ private:
+ static int _initCount; ///< Count of the current number of initialised AllegroInit objects.
+};
+
+/**
+* @brief Class ensures that Allegro's keyboard is installed and uninstalled when appropriate.
+*
+* Any classes that use the keyboard for input should include this class as a data member.
+* This class includes AllegroInit, so both of them do not need to be included.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class AllegroKeyboardInit
+{
+ public:
+ /**
+ * @brief Constructor calls al_install_keyboard() if it is the first instance.
+ */
+ AllegroKeyboardInit();
+ /**
+ * @brief Copy constructor, implemented to be included in instance count.
+ */
+ AllegroKeyboardInit(const AllegroKeyboardInit& ref);
+ /**
+ * @brief Destructor calls al_uninstall_keyboard() if it is the last instant.
+ */
+ ~AllegroKeyboardInit();
+ private:
+ static int _initCount; ///< Count of the current number of initialised AllegroKeyboardInit objects.
+ AllegroInit _allegro; ///< Depends on Allegro being initialised.
+
+ //assignment operator provided by compiler. _initCount does not need incrementing on assignment,
+ //because assignment does not make a new instance, just changes one.
+};
+
+/**
+* @brief Class ensures that Allegro's primitive and text drawing is installed and uninstalled when appropriate.
+*
+* Any classes that draw primitives should include this class as a data member.
+* This class includes AllegroInit, so both of them do not need to be included.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class AllegroDrawingInit
+{
+ public:
+ /**
+ * @brief Constructor calls al_init_primitives_addon(), al_init_font_addon(), and al_init_ttf_addon() if it is the first instance.
+ */
+ AllegroDrawingInit();
+ /**
+ * @brief Copy constructor, implemented to be included in instance count.
+ */
+ AllegroDrawingInit(const AllegroDrawingInit& ref);
+ /**
+ * @brief Destructor calls al_shutdown_primitives_addon(), al_shutdown_font_addon(), and al_shutdown_ttf_addon() if it is the last instant.
+ */
+ ~AllegroDrawingInit();
+ private:
+ static int _initCount;
+ AllegroInit _allegro;
+
+ //assignment operator provided by compiler. _initCount does not need incrementing on assignment,
+ //because assignment does not make a new instance, just changes one.
+};
+
+#endif
diff --git a/source/logic/Car.cpp b/source/logic/Car.cpp
new file mode 100644
index 0000000..3e531a3
--- /dev/null
+++ b/source/logic/Car.cpp
@@ -0,0 +1,75 @@
+#include "Car.h"
+
+Car::Car(double x, double y, BitmapStore::Image image, Maze::Direction facing)
+ :GameObject(x,y,image,facing),
+ _speed(_baseSpeed)
+{
+}
+
+double Car::speed() const
+{
+ return _speed;
+}
+
+void Car::move(const Maze& maze)
+{
+ double targetX = 0;
+ double targetY = 0;
+
+ int checkX = 0;
+ int checkY = 0;
+
+ switch(_facing)
+ {
+ case Maze::UP:
+ targetX = MazeMath::round(_x);
+ targetY = _y - _speed;
+ checkX = floor(targetX);
+ checkY = floor(targetY);
+ break;
+ case Maze::DOWN:
+ targetX = MazeMath::round(_x);
+ targetY = _y + _speed;
+ checkX = floor(targetX);
+ checkY = ceil(targetY);
+ break;
+ case Maze::LEFT:
+ targetX = _x - _speed;
+ targetY = MazeMath::round(_y);
+ checkX = floor(targetX);
+ checkY = floor(targetY);
+ break;
+ case Maze::RIGHT:
+ targetX = _x + _speed;
+ targetY = MazeMath::round(_y);
+ checkX = ceil(targetX);
+ checkY = floor(targetY);
+ break;
+ }
+
+ if (!maze.getSolid(checkX, checkY))
+ {
+ //can move that way
+ _x = targetX;
+ _y = targetY;
+ }
+ else
+ {
+ //can not move to targetX and targetY, but move to the edge of current block
+ switch(_facing)
+ {
+ case Maze::UP:
+ _y = floor(_y);
+ break;
+ case Maze::DOWN:
+ _y = ceil(_y);
+ break;
+ case Maze::LEFT:
+ _x = floor(_x);
+ break;
+ case Maze::RIGHT:
+ _x = ceil(_x);
+ break;
+ }
+ }
+}
diff --git a/source/logic/Car.h b/source/logic/Car.h
new file mode 100644
index 0000000..4b8d16c
--- /dev/null
+++ b/source/logic/Car.h
@@ -0,0 +1,57 @@
+#ifndef CAR_H
+#define CAR_H
+
+#include <cmath>
+using namespace std;
+
+#include "../presentation/BitmapStore.h"
+#include "../logic/GameObject.h"
+#include "../logic/MazeMath.h"
+
+/**
+* @brief GameObject that moves through the maze and changes direction.
+*
+* Should not be instantiated directly, but rather instantiated through one of the subclasses,
+* PlayerCar or EnemyCar.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class Car : public GameObject
+{
+ public:
+ /**
+ * @brief Creates a Car at the given position, with the given image, facing in the given direction.
+ *
+ * @param [in] x x coordinate of initial position.
+ * @param [in] y y coordinate of initial position.
+ * @param [in] image Bitmap to be drawn on the screen to represent the car.
+ * @param [in] facing Direction in which the Car is initially facing.
+ */
+ Car(double x, double y, BitmapStore::Image image, Maze::Direction facing);
+
+ //assignment and copy constructors have been left with the compiler generated versions
+
+ /**
+ * @brief Function to access the current speed of the car.
+ *
+ * @return The current speed of the car, in pixels per update.
+ */
+ double speed() const;
+
+ protected:
+ /**
+ * @brief Moves the car by its current speed in the direction of its facing.
+ *
+ * Only moves along the x or y axis, and snaps to the grid in the other direction.
+ * Does not allow movement through solid parts of the maze.
+ *
+ * @param [in] maze The maze in which the Car is moving, confining its movements.
+ */
+ void move(const Maze& maze);
+
+ double _speed; ///< The current speed that the Car is moving at.
+ static const double _baseSpeed = 0.1; ///< The speed that a Car moves at in normal conditions.
+};
+
+#endif // CAR_H
diff --git a/source/logic/Checkpoint.cpp b/source/logic/Checkpoint.cpp
new file mode 100644
index 0000000..8a6406c
--- /dev/null
+++ b/source/logic/Checkpoint.cpp
@@ -0,0 +1,30 @@
+#include "Checkpoint.h"
+
+int Checkpoint::_checkpointCount = 0;
+
+Checkpoint::Checkpoint(double x, double y)
+ :GameObject(x,y,BitmapStore::CHECKPOINT)
+{
+ ++_checkpointCount;
+}
+
+Checkpoint::Checkpoint(const Checkpoint& ref)
+ :GameObject(ref._x,ref._y,ref._image)
+{
+ ++_checkpointCount;
+}
+
+Checkpoint::~Checkpoint()
+{
+ --_checkpointCount;
+}
+
+int Checkpoint::checkpointCount()
+{
+ return _checkpointCount;
+}
+
+void Checkpoint::collect()
+{
+ _destroyed = true;
+}
diff --git a/source/logic/Checkpoint.h b/source/logic/Checkpoint.h
new file mode 100644
index 0000000..f6dfeb3
--- /dev/null
+++ b/source/logic/Checkpoint.h
@@ -0,0 +1,53 @@
+#ifndef CHECKPOINT_H
+#define CHECKPOINT_H
+
+#include "../logic/GameObject.h"
+#include "../presentation/BitmapStore.h"
+
+/**
+* @brief GameObject that the player needs to pick up by driving over.
+*
+* The level is complete when all checkpoints have been collected.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class Checkpoint: public GameObject
+{
+ public:
+ /**
+ * @brief Function for accessing the number of checkpoints that currently exist.
+ *
+ * @return The number of checkpoints that currently exist.
+ */
+ static int checkpointCount();
+
+ /**
+ * @brief Creates a checkpoint at the given coordinates.
+ *
+ * @param [in] x x coordinate of Checkpoint's position.
+ * @param [in] y y coordinate of Checkpoint's position.
+ */
+ Checkpoint(double x, double y);
+ /**
+ * @brief Copy constuctor, overwritten to include in the counting of Checkpoints.
+ */
+ Checkpoint(const Checkpoint& ref);
+
+ //assignment operator has been left with the compiler generated version.
+
+ /**
+ * @brief Destructor, decreases the number of Checkpoints in existence.
+ */
+ ~Checkpoint();
+
+ /**
+ * @brief Function to be called when a PlayerCar collects the Checkpoint.
+ */
+ void collect();
+
+ private:
+ static int _checkpointCount; ///< Count of the number of Checkpoints currently in existence.
+};
+
+#endif // CHECKPOINT_H
diff --git a/source/logic/CollisionDetector.cpp b/source/logic/CollisionDetector.cpp
new file mode 100644
index 0000000..85ebaa8
--- /dev/null
+++ b/source/logic/CollisionDetector.cpp
@@ -0,0 +1,64 @@
+#include "CollisionDetector.h"
+
+void CollisionDetector::checkCollisions(list<PlayerCar>& players, list<EnemyCar>& enemies, list<Checkpoint>& checkpoints, list<Rock>& rocks, list<Smokescreen>& smokescreens)
+{
+ for (list<PlayerCar>::iterator playIter = players.begin(); playIter!=players.end(); ++playIter)
+ {
+ for (list<EnemyCar>::iterator enemyIter = enemies.begin(); enemyIter!=enemies.end(); ++enemyIter)
+ {
+ if ((abs(playIter->x() - enemyIter->x())<1)&&(abs(playIter->y() - enemyIter->y())<1))
+ {
+ collision(*playIter, *enemyIter);
+ }
+ }
+
+ for (list<Checkpoint>::iterator checkIter = checkpoints.begin(); checkIter!=checkpoints.end(); ++checkIter)
+ {
+ if ((abs(playIter->x() - checkIter->x())<1)&&(abs(playIter->y() - checkIter->y())<1))
+ {
+ collision(*playIter, *checkIter);
+ }
+ }
+
+ for (list<Rock>::iterator rockIter = rocks.begin(); rockIter!=rocks.end(); ++rockIter)
+ {
+ if ((abs(playIter->x() - rockIter->x())<1)&&(abs(playIter->y() - rockIter->y())<1))
+ {
+ collision(*playIter, *rockIter);
+ }
+ }
+ }
+
+ for (list<EnemyCar>::iterator enemyIter = enemies.begin(); enemyIter!=enemies.end(); ++enemyIter)
+ {
+ for (list<Smokescreen>::iterator smokeIter = smokescreens.begin(); smokeIter!=smokescreens.end(); ++smokeIter)
+ {
+ if ((abs(enemyIter->x() - smokeIter->x())<1)&&(abs(enemyIter->y() - smokeIter->y())<1))
+ {
+ collision(*enemyIter, *smokeIter);
+ }
+ }
+ }
+}
+
+void CollisionDetector::collision(PlayerCar& player, Checkpoint& checkpoint)
+{
+ player.gotCheckpoint();
+ checkpoint.collect();
+}
+
+void CollisionDetector::collision(PlayerCar& player, Rock& rock)
+{
+ player.crash();
+}
+
+void CollisionDetector::collision(PlayerCar& player, EnemyCar& enemy)
+{
+ player.crash();
+ enemy.crash();
+}
+
+void CollisionDetector::collision(EnemyCar& enemy, Smokescreen& smokescreen)
+{
+ enemy.blind();
+}
diff --git a/source/logic/CollisionDetector.h b/source/logic/CollisionDetector.h
new file mode 100644
index 0000000..294852d
--- /dev/null
+++ b/source/logic/CollisionDetector.h
@@ -0,0 +1,75 @@
+#ifndef COLLISIONDETECTOR_H
+#define COLLISIONDETECTOR_H
+
+#include <list>
+using namespace std;
+
+#include "../logic/PlayerCar.h"
+#include "../logic/EnemyCar.h"
+#include "../logic/Checkpoint.h"
+#include "../logic/Rock.h"
+#include "../logic/Smokescreen.h"
+
+/**
+* @brief Object for handling collisions between GameObjects.
+*
+* Collisions between all relevant objects are checked and the appropriate methods on the GameObjects
+* are called when a collision occurs.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class CollisionDetector
+{
+ public:
+ /**
+ * @brief Checks for collisions between all relevant pairs of objects, and calls the relevant collision function if one is found.
+ *
+ * A collision occurs if the distance between two object's x values is less than 1,
+ * and the distance between their y values is also less than 1.
+ *
+ * @param [in,out] players List of PlayerCars, that can collide with EnemieCars, Checkpoints, or Rocks.
+ * @param [in,out] enemies List of EnemyCars, that can collide with PlayerCars, or Smokescreens.
+ * @param [in,out] checkpoints List of Checkpoints, that can collide with PlayerCars.
+ * @param [in,out] rocks List of Rocks, that can collide with PlayerCars.
+ * @param [in,out] smokescreens List of Smokescreens, that can collide with EnemyCars.
+ */
+ void checkCollisions(list<PlayerCar>& players, list<EnemyCar>& enemies, list<Checkpoint>& checkpoints, list<Rock>& rocks, list<Smokescreen>& smokescreens);
+
+ //assignment and copy constructors have been left with the compiler generated versions
+
+ private:
+ /**
+ * @brief Collision between a PlayerCar and a Checkpoint.
+ *
+ * @param [in,out] player PlayerCar involved in the collision.
+ * @param [in,out] checkpoint Checkpoint involved in the collision.
+ */
+ void collision(PlayerCar& player, Checkpoint& checkpoint);
+
+ /**
+ * @brief Collision between a PlayerCar and an EnemyCar.
+ *
+ * @param [in,out] player PlayerCar involved in the collision.
+ * @param [in,out] enemy EnemyCar involved in the collision.
+ */
+ void collision(PlayerCar& player, EnemyCar& enemy);
+
+ /**
+ * @brief Collision between a PlayerCar and a Rock.
+ *
+ * @param [in,out] player PlayerCar involved in the collision.
+ * @param [in,out] rock Rock involved in the collision.
+ */
+ void collision(PlayerCar& player, Rock& rock);
+
+ /**
+ * @brief Collision between an EnemyCar and a Smokescreen.
+ *
+ * @param [in,out] enemy EnemyCar involved in the collision.
+ * @param [in,out] smokescreen Smokescreen involved in the collision.
+ */
+ void collision(EnemyCar& enemy, Smokescreen& smokescreen);
+};
+
+#endif // COLLISIONDETECTOR_H
diff --git a/source/logic/DestroyedObjectPopup.cpp b/source/logic/DestroyedObjectPopup.cpp
new file mode 100644
index 0000000..42ce08d
--- /dev/null
+++ b/source/logic/DestroyedObjectPopup.cpp
@@ -0,0 +1,6 @@
+#include "DestroyedObjectPopup.h"
+
+DestroyedObjectPopup::DestroyedObjectPopup(double x, double y, BitmapStore::Image image)
+ :LimitedTimeObject(x, y, image, POPUP_TIME)
+{
+}
diff --git a/source/logic/DestroyedObjectPopup.h b/source/logic/DestroyedObjectPopup.h
new file mode 100644
index 0000000..3e694f5
--- /dev/null
+++ b/source/logic/DestroyedObjectPopup.h
@@ -0,0 +1,33 @@
+#ifndef DESTROYEDOBJECTPOPUP_H
+#define DESTROYEDOBJECTPOPUP_H
+
+#include "../logic/LimitedTimeObject.h"
+#include "../presentation/BitmapStore.h"
+
+/**
+* @brief Object that appears on the screen for a short time when another object has been destroyed.
+*
+* Used to give extra visual feedback when a checkpoint has been collected or a Car crashes.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class DestroyedObjectPopup : public LimitedTimeObject
+{
+ public:
+ /**
+ * @brief Creates the popup at the given location, with the given image.
+ *
+ * @param [in] x The x coordinate of the object's position.
+ * @param [in] y The y coordinate of the object's position.
+ * @param [in] image The bitmap to be shown until the popup disappears.
+ */
+ DestroyedObjectPopup(double x, double y, BitmapStore::Image image);
+
+ //assignment and copy constructors have been left with the compiler generated versions
+
+ private:
+ static const int POPUP_TIME = 30; ///< The number of frames that the DestroyedObjectPopup exists before it is destroyed. 1 second at FPS=30.
+};
+
+#endif // DESTROYEDOBJECTPOPUP_H
diff --git a/source/logic/EnemyCar.cpp b/source/logic/EnemyCar.cpp
new file mode 100644
index 0000000..ce455a6
--- /dev/null
+++ b/source/logic/EnemyCar.cpp
@@ -0,0 +1,104 @@
+#include "EnemyCar.h"
+
+EnemyCar::EnemyCar(double x, double y)
+ :Car(x,y,BitmapStore::ENEMY,Maze::UP),
+ _state(CHASING),
+ _targetX(x),
+ _targetY(y)
+{
+}
+
+void EnemyCar::update(const Maze& maze, const list<PlayerCar>& players, const list<Rock>& rocks)
+{
+ if (!players.empty()) checkFacing(maze, players.front().x(), players.front().y(), rocks);
+
+ if (_state!=BLINDED)
+ {
+ move(maze);
+ }
+ else
+ {
+ _state = CHASING;
+ _speed = _baseSpeed;
+ }
+}
+
+void EnemyCar::checkFacing(const Maze& maze, double chasingX, double chasingY, const list<Rock>& rocks)
+{
+ if (abs(_x - _targetX)>_speed || abs(_y - _targetY)>_speed) return;
+
+ map<Maze::Direction, pair<double, double> > adjacentBlocks;
+ pair<double, double> evaluatingTarget;
+
+ adjacentBlocks[Maze::LEFT] = make_pair(MazeMath::round(_x-1), MazeMath::round(_y));
+ adjacentBlocks[Maze::RIGHT] = make_pair(MazeMath::round(_x+1), MazeMath::round(_y));
+ adjacentBlocks[Maze::UP] = make_pair(MazeMath::round(_x), MazeMath::round(_y-1));
+ adjacentBlocks[Maze::DOWN] = make_pair(MazeMath::round(_x), MazeMath::round(_y+1));
+
+ //remove adjacent blocks that would result in crashing into a rock or a wall
+ for (map<Maze::Direction, pair<double, double> >::iterator iter=adjacentBlocks.begin(); iter!=adjacentBlocks.end(); )
+ {
+ if (rockAtLocation(iter->second.first, iter->second.second, rocks) || maze.getSolid(static_cast<int>(iter->second.first),static_cast<int>(iter->second.second)))
+ {
+ adjacentBlocks.erase(iter);
+ iter = adjacentBlocks.begin();
+ }
+ else
+ {
+ ++iter;
+ }
+ }
+
+ if (adjacentBlocks.empty())
+ {
+ _speed = 0;
+ return;
+ }
+ else
+ {
+ _speed = _baseSpeed;
+ }
+
+ map<Maze::Direction, pair<double, double> >::iterator reverseFacing = adjacentBlocks.find(Maze::backwards(_facing));
+ if ((reverseFacing != adjacentBlocks.end()) && (adjacentBlocks.size()>1))
+ {
+ adjacentBlocks.erase(reverseFacing);
+ }
+
+ map<Maze::Direction, pair<double, double> >::const_iterator closestAdjacent = adjacentBlocks.begin();
+ double closestDistance = MazeMath::distance(closestAdjacent->second.first, closestAdjacent->second.second, chasingX, chasingY);
+
+ for (map<Maze::Direction, pair<double, double> >::const_iterator iter = ++adjacentBlocks.begin(); iter!=adjacentBlocks.end(); ++iter)
+ {
+ double newDistance = MazeMath::distance(iter->second.first, iter->second.second, chasingX, chasingY);
+ if (newDistance < closestDistance)
+ {
+ closestDistance = newDistance;
+ closestAdjacent = iter;
+ }
+ }
+
+ _targetX = closestAdjacent->second.first;
+ _targetY = closestAdjacent->second.second;
+ _facing = closestAdjacent->first;
+}
+
+bool EnemyCar::rockAtLocation(double x, double y, const list<Rock>& rocks)
+{
+ for (list<Rock>::const_iterator iter = rocks.begin(); iter!=rocks.end(); ++iter)
+ {
+ if (abs(x - iter->x())<1 && abs(y - iter->y())<1) return true;
+ }
+ return false;
+}
+
+void EnemyCar::crash()
+{
+ _destroyed = true;
+}
+
+void EnemyCar::blind()
+{
+ _state = BLINDED;
+ _speed = 0;
+}
diff --git a/source/logic/EnemyCar.h b/source/logic/EnemyCar.h
new file mode 100644
index 0000000..b56c9d3
--- /dev/null
+++ b/source/logic/EnemyCar.h
@@ -0,0 +1,97 @@
+#ifndef ENEMYCAR_H
+#define ENEMYCAR_H
+
+#include <cmath>
+
+#include "../presentation/BitmapStore.h"
+
+#include "../logic/Car.h"
+#include "../logic/PlayerCar.h"
+#include "../logic/Rock.h"
+#include "../logic/MazeMath.h"
+
+/**
+* @brief GameObject that chases the player around the maze.
+*
+* Attempts to collide with the player, causing the player to lose.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class EnemyCar: public Car
+{
+ public:
+ /**
+ * @brief Creates an EnemyCar at the given coordinates.
+ *
+ * @param [in] x The x coordinate of the EnemyCar's initial position.
+ * @param [in] y The y coordinate of the EnemyCar's initial position.
+ */
+ EnemyCar(double x, double y);
+
+ //assignment and copy constructors have been left with the compiler generated versions
+
+ /**
+ * @brief Processes one frame's worth of activity for the object, called every frame.
+ *
+ * Primarily adjusts the facing if neccesary and then moves using the inhereted move function.
+ *
+ * @param maze The maze that confines the EnemyCar's movements.
+ * @param players The list of PlayerCars that the EnemyCar can chase.
+ * @param rocks The list of Rocks that need to be avoided.
+ */
+ void update(const Maze& maze, const list<PlayerCar>& players, const list<Rock>& rocks);
+
+ /**
+ * @brief Function that is called when an EnemyCar crashes into a PlayerCar.
+ */
+ void crash();
+
+ /**
+ * @brief Function that is called when an EnemyCar drives into a Smokescreen.
+ */
+ void blind();
+
+ private:
+ /**
+ * @brief States that define how the EnemyCar's AI should behave.
+ *
+ * This would need to be expanded to include more states in order to make the enemies appear smarter.
+ */
+ enum States {
+ BLINDED, ///< The EnemyCar can not see, and so does not move.
+ CHASING ///< The EnemyCar tries to drive to the block that the player is currently on.
+ };
+
+ States _state; ///< The state that the object is currently in.
+ double _targetX; ///< The x coordinate that the EnemyCar is driving towards.
+ double _targetY; ///< The y coordinate that the EnemyCar is driving towards.
+
+ /**
+ * @brief Updates the direction that the EnemyCar is facing, if neccesary.
+ *
+ * The facing is only changed once the current _targetX and _targetY are reached. After that, a facing is
+ * chosen that points into an empty block (no maze walls or rocks) that is closest to the chasing x and y
+ * using a straight line. This results in the enemy not always taking the shortest route, but it makes it
+ * possible to escape enemies. _targetX and _targetY are updated to one block in the new facing direction.
+ * The enemy may only turn around and head backwards if there is no other options, so once the enemy starts
+ * driving down narrow a path it will continue to the end of the path.
+ *
+ * @param [in] maze The maze that confines the EnemyCar's movements.
+ * @param [in] chasingX The x coordinate that the EnemyCar is ultimately trying to reach.
+ * @param [in] chasingY The y coordinate that the EnemyCar is ultimately trying to reach.
+ * @param [in] rocks The Rocks that the EnemyCar needs to avoid.
+ */
+ void checkFacing(const Maze& maze, double chasingX, double chasingY, const list<Rock>& rocks);
+
+ /**
+ * @brief Iterates through a list of Rocks and determines if moving to a given position would result in a collision.
+ *
+ * @param [in] x The potential new x coordinate.
+ * @param [in] y The potential new y coordinate.
+ * @param [in] rocks The Rocks that are checked for a collision at x and y.
+ */
+ bool rockAtLocation(double x, double y, const list<Rock>& rocks);
+};
+
+#endif // ENEMYCAR_H
diff --git a/source/logic/Game.cpp b/source/logic/Game.cpp
new file mode 100644
index 0000000..57abd79
--- /dev/null
+++ b/source/logic/Game.cpp
@@ -0,0 +1,185 @@
+#include "Game.h"
+
+Game::Game()
+ :_config("config.txt"),
+ _screen(_config.screenWidth(), _config.screenHeight(), _config.fullscreen())
+{
+ _timer = al_create_timer(1.0/FPS);
+ _timerEvents = al_create_event_queue();
+ al_register_event_source(_timerEvents, al_get_timer_event_source(_timer));
+}
+
+Game::~Game()
+{
+ al_destroy_event_queue(_timerEvents);
+ al_destroy_timer(_timer);
+
+}
+
+void Game::start()
+{
+ while (!_screen.exitClicked())
+ {
+ string filename = _screen.getLevel();
+ if (!filename.empty())
+ {
+ initLevel(filename);
+ runloop();
+ }
+ }
+}
+
+void Game::initLevel(const string& levelFile)
+{
+ clearLists();
+ LevelReader reader(levelFile);
+ reader.readLevel(_maze, _players, _enemies, _checkpoints, _rocks);
+}
+
+void Game::runloop()
+{
+ bool gameWon = false;
+ bool gameLost = false;
+ al_start_timer(_timer);
+
+ while (!_screen.exitClicked())
+ {
+ al_wait_for_event(_timerEvents, NULL);
+ al_flush_event_queue(_timerEvents);
+
+ update();
+ _collisionDetector.checkCollisions(_players, _enemies, _checkpoints, _rocks, _smokescreens);
+ cleanup();
+ _screen.draw(_maze, _players, _enemies, _checkpoints, _rocks, _smokescreens, _popups);
+
+ gameLost = _players.empty();
+ gameWon = Checkpoint::checkpointCount()==0;
+
+ if (gameLost)
+ {
+ _screen.drawLoss();
+ for (int i=0; i<90; i++)
+ {
+ al_wait_for_event(_timerEvents, NULL);
+ al_drop_next_event(_timerEvents);
+ }
+ break;
+ }
+ else if (gameWon)
+ {
+ _screen.drawWin();
+ for (int i=0; i<90; i++)
+ {
+ al_wait_for_event(_timerEvents, NULL);
+ al_drop_next_event(_timerEvents);
+ }
+ break;
+ }
+ }
+ al_stop_timer(_timer);
+}
+
+void Game::update()
+{
+ for (list<PlayerCar>::iterator iter = _players.begin(); iter!=_players.end(); ++iter)
+ {
+ iter->update(_maze, _smokescreens);
+ }
+
+ for (list<EnemyCar>::iterator iter = _enemies.begin(); iter!=_enemies.end(); ++iter)
+ {
+ iter->update(_maze, _players, _rocks);
+ }
+
+ for (list<Smokescreen>::iterator iter = _smokescreens.begin(); iter!=_smokescreens.end(); ++iter)
+ {
+ iter->update();
+ }
+ for (list<DestroyedObjectPopup>::iterator iter = _popups.begin(); iter!=_popups.end(); ++iter)
+ {
+ iter->update();
+ }
+}
+
+void Game::cleanup()
+{
+ for (list<PlayerCar>::iterator iter = _players.begin(); iter!=_players.end();)
+ {
+ if (iter->destroyed())
+ {
+ _popups.push_back(DestroyedObjectPopup(iter->x(), iter->y(), BitmapStore::CRASHED_CAR));
+ iter = _players.erase(iter);
+ }
+ else
+ {
+ ++iter;
+ }
+ }
+ for (list<EnemyCar>::iterator iter = _enemies.begin(); iter!=_enemies.end();)
+ {
+ if (iter->destroyed())
+ {
+ _popups.push_back(DestroyedObjectPopup(iter->x(), iter->y(), BitmapStore::CRASHED_CAR));
+ iter = _enemies.erase(iter);
+ }
+ else
+ {
+ ++iter;
+ }
+ }
+ for (list<Checkpoint>::iterator iter = _checkpoints.begin(); iter!=_checkpoints.end();)
+ {
+ if (iter->destroyed())
+ {
+ _popups.push_back(DestroyedObjectPopup(iter->x(), iter->y(), BitmapStore::CLAIMED_CHECKPOINT));
+ iter = _checkpoints.erase(iter);
+ }
+ else
+ {
+ ++iter;
+ }
+ }
+ for (list<Rock>::iterator iter = _rocks.begin(); iter!=_rocks.end();)
+ {
+ if (iter->destroyed())
+ {
+ iter = _rocks.erase(iter);
+ }
+ else
+ {
+ ++iter;
+ }
+ }
+ for (list<Smokescreen>::iterator iter = _smokescreens.begin(); iter!=_smokescreens.end();)
+ {
+ if (iter->destroyed())
+ {
+ iter = _smokescreens.erase(iter);
+ }
+ else
+ {
+ ++iter;
+ }
+ }
+ for (list<DestroyedObjectPopup>::iterator iter = _popups.begin(); iter!=_popups.end();)
+ {
+ if (iter->destroyed())
+ {
+ iter = _popups.erase(iter);
+ }
+ else
+ {
+ ++iter;
+ }
+ }
+}
+
+void Game::clearLists()
+{
+ _players.clear();
+ _enemies.clear();
+ _checkpoints.clear();
+ _rocks.clear();
+ _smokescreens.clear();
+ _popups.clear();
+}
diff --git a/source/logic/Game.h b/source/logic/Game.h
new file mode 100644
index 0000000..9adff76
--- /dev/null
+++ b/source/logic/Game.h
@@ -0,0 +1,135 @@
+#ifndef GAME_H
+#define GAME_H
+
+#include <list>
+#include <algorithm>
+using namespace std;
+
+#include <allegro5/allegro.h>
+
+#include "../presentation/Screen.h"
+#include "../presentation/BitmapStore.h"
+
+#include "../logic/Maze.h"
+#include "../logic/PlayerCar.h"
+#include "../logic/EnemyCar.h"
+#include "../logic/Checkpoint.h"
+#include "../logic/Rock.h"
+#include "../logic/Smokescreen.h"
+#include "../logic/DestroyedObjectPopup.h"
+#include "../logic/AllegroWrappers.h"
+#include "../logic/CollisionDetector.h"
+
+#include "../data/LevelReader.h"
+#include "../data/Config.h"
+
+/**
+* @brief The object that controls the flow of the game, and the launch point of the game.
+*
+* Game contains the various components, including the screen, the maze, and all of the
+* objects in the maze. The timing of the gameloop also falls under Game's control.
+* Essencially, Game is the central point that everything connects to.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class Game
+{
+ public:
+ static const unsigned int FPS = 30; ///< Frames per second, the number of times the gameloop is run every second.
+
+ /**
+ * @brief Constructor, that creates the relevant Allegro entities.
+ */
+ Game();
+
+ /**
+ * @brief Constructor, that destroys the relevant Allegro entities.
+ */
+ ~Game();
+
+ /**
+ * @brief Entry point for the program. This should be called from main.
+ */
+ void start();
+
+ private:
+ /**
+ * @brief Unimplemented copy constructor, prevents copying of Game objects.
+ *
+ * Copying a Game is unneccesary as there should only be a single Game object.
+ */
+ Game(const Game& ref);
+ /**
+ * @brief Unimplemented assignment operator.
+ *
+ * @see Game::Game(const Game& ref)
+ */
+ Game& operator=(const Game& rhs);
+
+ /**
+ * @brief Initialises all of the GameObject lists using a file.
+ *
+ * @param [in] levelFile The path of the file that contains the level layout.
+ */
+ void initLevel(const string& levelFile);
+
+ /**
+ * @brief Main part of the game, performs the actions in each frame FPS times per second until the game is over.
+ *
+ * Each frame runs the update methods of each of the GameObjects in the lists. The CollisionDetector
+ * then checks for collisions between objects. Any GameObjects that have been destroyed are then removed
+ * from their lists. Finally, the Screen is called to draw all of the GameObjects that still exist in
+ * their new positions.
+ *
+ * Before the next iteration begins, a check is done for the victory and loss conditions. The loop is
+ * ended if either of these are met, or if the player has quit the game.
+ */
+ void runloop();
+
+ /**
+ * @brief Calls the update method on each of the GameObjects in the game.
+ */
+ void update();
+ /**
+ * @brief Removes any GameObjects that have been destroyed from their lists.
+ */
+ void cleanup();
+
+ /**
+ * @brief Destroys all GameObjects in the game, resetting the lists for a new level to be loaded.
+ *
+ * This should always be called before a new level is loaded.
+ */
+ void clearLists();
+
+ AllegroInit _allegro; ///< Handles dependencies on Allegro being installed.
+
+ Config _config; ///< Loads configuration from file on construction, used to set resolution of screen.
+ Screen _screen; ///< Handles all drawing operations.
+ ALLEGRO_TIMER* _timer; ///< Creates FPS events per second, that are put into _timerEvents.
+ ALLEGRO_EVENT_QUEUE* _timerEvents; ///< Catches events from _timer, used to regulate speed of runloop.
+
+ Maze _maze; ///< The environment that confines the movements of GameObjects, specifically Cars.
+ /**
+ * @brief Typically a single PlayerCar, controlled by the person playing the game.
+ *
+ * A list was used for _players to allow the Game object to be constructed without needing to initialise
+ * a meaningless PlayerCar object. This also allows the PlayerCar to be destroyed by Rocks or EnemyCars.
+ * An added benefit is that it adds the ease of extending the game to allow multiple players. To add
+ * multiplayer, the KeyboardHandler would need to be modified to allow different sets of input keys,
+ * and the Screen would need to be modified to keep all players visible, but the Game class would be
+ * able to remain largely unchanged.
+ */
+ list<PlayerCar> _players;
+
+ list<EnemyCar> _enemies; ///< List of all EnemyCars chasing the player.
+ list<Checkpoint> _checkpoints; ///< List of checkpoints that the player needs to collect.
+ list<Rock> _rocks; ///< List of rocks that the player and EnemyCars need to avoid.
+ list<Smokescreen> _smokescreens; ///< List of Smokescreen objects that are currently able to delay EnemyCars.
+ list<DestroyedObjectPopup> _popups; ///< List of purely visual DestroyedObjectPopups that need to be drawn.
+
+ CollisionDetector _collisionDetector; ///< Object that checks for collisions each frame.
+};
+
+#endif // GAME_H
diff --git a/source/logic/GameObject.cpp b/source/logic/GameObject.cpp
new file mode 100644
index 0000000..07957e5
--- /dev/null
+++ b/source/logic/GameObject.cpp
@@ -0,0 +1,27 @@
+#include "GameObject.h"
+
+GameObject::GameObject(double x, double y, BitmapStore::Image image, Maze::Direction facing)
+ :_x(x), _y(y), _destroyed(false), _image(image), _facing(facing)
+{
+}
+
+double GameObject::x() const
+{
+ return _x;
+}
+double GameObject::y() const
+{
+ return _y;
+}
+bool GameObject::destroyed() const
+{
+ return _destroyed;
+}
+BitmapStore::Image GameObject::image() const
+{
+ return _image;
+}
+Maze::Direction GameObject::facing() const
+{
+ return _facing;
+}
diff --git a/source/logic/GameObject.h b/source/logic/GameObject.h
new file mode 100644
index 0000000..bd7fd0b
--- /dev/null
+++ b/source/logic/GameObject.h
@@ -0,0 +1,82 @@
+#ifndef GAMEOBJECT_H
+#define GAMEOBJECT_H
+
+#include "../presentation/BitmapStore.h"
+#include "../logic/Maze.h"
+
+/**
+* @brief Parent class for objects that are placed in the maze.
+*
+* These objects are one maze block big. The image in the bitmap store will be drawn
+* on the screen every frame at the Screen class's discression, being rotated to face
+* in the 'facing' direction. Coordinates are given in terms of the Maze class's coordinate
+* system. For example, increasing the x coordinate of an object by 1 will move it one maze
+* block to the right. The number of pixels that this corresponds to is handled by the
+* Screen class.
+*
+* When an object is in a situation that it should be destroyed, it is marked for destruction.
+* It is then the responsibility of the Game class to actually destroy it.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class GameObject
+{
+ public:
+ /**
+ * @brief Creates a GameObject with the given parameters.
+ *
+ * @param [in] x The x coordinate of the new object.
+ * @param [in] y The y coordinate of the new object.
+ * @param [in] image The image that is drawn to represent the object.
+ * @param [in] facing The direction that the object is facing. If the object has no direction,
+ * such as with Checkpoint or Rock, the default value of Maze::UP should be used.
+ */
+ GameObject(double x, double y, BitmapStore::Image image, Maze::Direction facing=Maze::UP);
+
+ //assignment and copy constructors have been left with the compiler generated versions
+
+ /**
+ * @brief Provides access to the x coordinate of the object.
+ *
+ * @return The x coordinate of the object, in maze blocks, where 0 is the far left column of the maze.
+ */
+ double x() const;
+
+ /**
+ * @brief Provides access to the y coordinate of the object.
+ *
+ * @return The y coordinate of the object, in maze blocks, where 0 is the top row of the maze.
+ */
+ double y() const;
+
+ /**
+ * @brief Checks if an object has been marked for destruction, for example through a collision.
+ *
+ * @return True is the object has been marked for destruction, false otherwise.
+ */
+ bool destroyed() const;
+
+ /**
+ * @brief Provides access to the image that should be drawn to represent the object.
+ *
+ * @return An image, corresponding to an enumerated type that can be converted into a bitmap by the BitmapStore class.
+ */
+ BitmapStore::Image image() const;
+
+ /**
+ * @brief Provides access to the direction that the object is facing.
+ *
+ * @return A direction, corresponding to the rotation that should be done to the drawn image and, in the case of Cars, the direction that they move forward.
+ */
+ Maze::Direction facing() const;
+
+ protected:
+ double _x; ///< The x coordinate of the object's position.
+ double _y; ///< The y coordinate of the object's position.
+ bool _destroyed; ///< True if the object has been marked for destruction.
+ BitmapStore::Image _image; ///< The bitmap that should be drawn on the screen to represent the object.
+ Maze::Direction _facing; ///< The direction in which the object is facing, up, down, left, or right.
+};
+
+#endif // GAMEOBJECT_H
diff --git a/source/logic/LimitedTimeObject.cpp b/source/logic/LimitedTimeObject.cpp
new file mode 100644
index 0000000..55ff31b
--- /dev/null
+++ b/source/logic/LimitedTimeObject.cpp
@@ -0,0 +1,16 @@
+#include "LimitedTimeObject.h"
+
+LimitedTimeObject::LimitedTimeObject(double x, double y, BitmapStore::Image image, int time)
+ :GameObject(x,y,image),
+ _remainingTime(time)
+{
+}
+
+void LimitedTimeObject::update()
+{
+ --_remainingTime;
+ if (_remainingTime<=0)
+ {
+ _destroyed = true;
+ }
+}
diff --git a/source/logic/LimitedTimeObject.h b/source/logic/LimitedTimeObject.h
new file mode 100644
index 0000000..242965b
--- /dev/null
+++ b/source/logic/LimitedTimeObject.h
@@ -0,0 +1,45 @@
+#ifndef LIMITEDTIMEOBJECT_H
+#define LIMITEDTIMEOBJECT_H
+
+#include "../logic/GameObject.h"
+#include "../logic/Maze.h"
+#include "../presentation/BitmapStore.h"
+
+/**
+* @brief Parent class for GameObjects that are created, exist for a given time, and are then destroyed.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class LimitedTimeObject: public GameObject
+{
+ public:
+ /**
+ * @brief Creates a LimitedTimeObject with the given parameters.
+ *
+ * @param [in] x The x coordinate of the new object.
+ * @param [in] y The y coordinate of the new object.
+ * @param [in] image The image that is drawn to represent the object.
+ * @param [in] time The number of times that the update function is run before the object is destroyed.
+ */
+ LimitedTimeObject(double x, double y, BitmapStore::Image image, int time);
+
+ //assignment and copy constructors have been left with the compiler generated versions
+
+ /**
+ * @brief Function that should be run on every iteration of the gameloop.
+ *
+ * The time remaining is decremented, and the object is marked for destruction when it reaches zero.
+ */
+ void update();
+
+ private:
+ /**
+ * @brief The number of times that update still needs to be run before the object is marked for destruction.
+ *
+ * For example, if the remaining time is 1, then the object is marked on the next update.
+ */
+ int _remainingTime;
+};
+
+#endif // LIMITEDTIMEOBJECT_H
diff --git a/source/logic/Maze.cpp b/source/logic/Maze.cpp
new file mode 100644
index 0000000..ab24035
--- /dev/null
+++ b/source/logic/Maze.cpp
@@ -0,0 +1,77 @@
+#include "Maze.h"
+
+Maze::Maze()
+ :_width(0),
+ _height(0)
+{
+}
+
+void Maze::generateMaze(const vector<pair<int,int> >& walls, int maxObjectX, int maxObjectY)
+{
+ //find bounds so that rectangular vector can be generated
+ int maxX = maxObjectX;
+ int maxY = maxObjectY;
+ for (vector<pair<int,int> >::const_iterator iter = walls.begin(); iter!=walls.end(); ++iter)
+ {
+ if (iter->first > maxX) maxX = iter->first;
+ if (iter->second > maxY) maxY = iter->second;
+ }
+ _width = maxX+1; //need to convert from highest index to required size
+ _height = maxY+1;
+
+
+ _wallLocations.clear();
+
+ for (int x=0; x<_width; ++x)
+ {
+ _wallLocations.push_back(vector<bool>());
+ for (int y=0; y<_height; ++y)
+ {
+ _wallLocations.back().push_back(false);
+ }
+ }
+
+ for (vector<pair<int,int> >::const_iterator iter = walls.begin(); iter!=walls.end(); ++iter)
+ {
+ _wallLocations.at(iter->first).at(iter->second) = true;
+ }
+}
+
+bool Maze::getSolid(const int& x, const int& y) const
+{
+ if (x<0 || y<0) return true;
+ if (x>=width() || y>=height()) return true;
+ //bounds have already been checked, can use more efficient, less safe, indexing
+ return _wallLocations[x][y];
+}
+
+int Maze::width() const
+{
+ return _width;
+}
+int Maze::height() const
+{
+ return _height;
+}
+
+Maze::Direction Maze::backwards(Direction forwards)
+{
+ Direction backwards;
+ switch (forwards)
+ {
+ case LEFT:
+ backwards = RIGHT;
+ break;
+ case RIGHT:
+ backwards = LEFT;
+ break;
+ case UP:
+ backwards = DOWN;
+ break;
+ case DOWN:
+ backwards = UP;
+ break;
+ }
+
+ return backwards;
+}
diff --git a/source/logic/Maze.h b/source/logic/Maze.h
new file mode 100644
index 0000000..245528d
--- /dev/null
+++ b/source/logic/Maze.h
@@ -0,0 +1,100 @@
+#ifndef MAZE_H
+#define MAZE_H
+
+#include <vector>
+#include <utility>
+using namespace std;
+
+/**
+* @brief A rectangular 2D boolean array, representing where cars can drive and where they cannot.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class Maze
+{
+ public:
+ /**
+ * @brief Defines the directions in which movement can happen in the maze.
+ */
+ enum Direction {UP, DOWN, LEFT, RIGHT};
+
+ /**
+ * @brief Creates an empty Maze with width and height of zero.
+ */
+ Maze();
+
+ //assignment and copy constructors have been left with the compiler generated versions
+
+ /**
+ * @brief Generates a new Maze from the vector of wall coordinates.
+ *
+ * The size of the Maze is chosen to just fit all of the walls. If objects exist outside
+ * of the walls, the x of the rightmost object and the y of the bottommost object can be
+ * passed in to make the Maze at least reach those coordinates.
+ *
+ * @param [in] walls A vector of x,y coordinate pairs representing the locations of each wall block.
+ * @param [in] maxObjectX The minimum x value that the Maze must be able to index.
+ * @param [in] maxObjectY The minimum y value that the Maze must be able to index.
+ */
+ void generateMaze(const vector<pair<int,int> >& walls, int maxObjectX=0, int maxObjectY=0);
+
+ /**
+ * @brief Checks if a given position contains a wall or not.
+ *
+ * This function is one of the most called as it is called for each block drawing the
+ * Maze on the Screen, by any Car checking if it can move, and by the EnemyCar to choose a
+ * viable direction to face. As such, it has been optimised by passing the parameters by
+ * constant reference, even though they are primitives. Further, the vector class's bounds
+ * checking is bypassed, with bounds checking performed manually with the assumption that the
+ * 2D vector is rectangular, to increase performance. Neither of these changes impare readability.
+ *
+ * @param [in] x The x coordinate being queried.
+ * @param [in] y The y coordinate being queried.
+ *
+ * @return True if the location contains a wall. Also returns true if the coordinate is outside of the Maze.
+ */
+ bool getSolid(const int& x, const int& y) const;
+
+ /**
+ * @brief Provides access to the width of the Maze object.
+ *
+ * @return The amount of blocks in each row of the maze.
+ */
+ int width() const;
+ /**
+ * @brief Provides access to the height of the Maze object.
+ *
+ * @return The amount of blocks in each column of the maze.
+ */
+ int height() const;
+
+ /**
+ * @brief Inverts a given direction, to give the value to face in the opposite direction.
+ *
+ * @param [in] forwards The direction to be inverted.
+ *
+ * @return The inverse of the given direction.
+ */
+ static Direction backwards(Direction forwards);
+
+ private:
+ /**
+ * @brief Provides an easier to read pseudonym for a 2 dimensional boolean vector.
+ */
+ typedef vector<vector<bool> > BoolGrid;
+
+ /**
+ * @brief The 2 dimensional vector that stores the locations of walls.
+ *
+ * The outer vector is columns, indexed with the x coordinate, and the inner vectors
+ * are the vertical positions in the column, indexed with the y coordinate.
+ * This results in a vector that is acced with _wallLocations.at(x).at(y).
+ */
+ BoolGrid _wallLocations;
+
+ int _width; ///< The number of blocks in each row.
+ int _height; ///< The number of blocks in each column.
+};
+
+#endif // MAZE_H
diff --git a/source/logic/MazeMath.cpp b/source/logic/MazeMath.cpp
new file mode 100644
index 0000000..84b27dd
--- /dev/null
+++ b/source/logic/MazeMath.cpp
@@ -0,0 +1,18 @@
+#include "MazeMath.h"
+
+double MazeMath::round(double value)
+{
+ if (static_cast<int>(value*10)%10 < 5)
+ {
+ return floor(value);
+ }
+ else
+ {
+ return ceil(value);
+ }
+}
+
+double MazeMath::distance(double x1, double y1, double x2, double y2)
+{
+ return sqrt(pow(x1-x2, 2) + pow(y1-y2, 2));
+}
diff --git a/source/logic/MazeMath.h b/source/logic/MazeMath.h
new file mode 100644
index 0000000..d5a2aa9
--- /dev/null
+++ b/source/logic/MazeMath.h
@@ -0,0 +1,59 @@
+#ifndef MAZEMATH_H
+#define MAZEMATH_H
+
+#include <cmath>
+
+/**
+* @brief Class of static methods for common math functions that occur in the 2D maze setting.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class MazeMath
+{
+ public:
+ /**
+ * @brief Rounds a value to the nearest integer.
+ *
+ * Values with a decimal fraction less than 0.5 are floored, while values with
+ * a decimal fraction greater than or eqaul to 0.5 are ceiled.
+ *
+ * @param [in] value The number to be rounded off.
+ *
+ * @return The rounded off version of the given value.
+ */
+ static double round(double value);
+
+ /**
+ * @brief Finds the straight line distance between two points on a 2D plane.
+ *
+ * Implemented using Pythagoras' Theorem.
+ *
+ * @param [in] x1 The x coordinate of the first point.
+ * @param [in] y1 The y coordinate of the first point.
+ * @param [in] x2 The x coordinate of the second point.
+ * @param [in] y2 The y coordinate of the second point.
+ *
+ * @return The distance between the two given points.
+ */
+ static double distance(double x1, double y1, double x2, double y2);
+
+ private:
+ /**
+ * @brief Unimplemented constructor.
+ *
+ * being a grouping of static functions, construction and destruction of MazeMath
+ * objects is unneccesary.
+ */
+ MazeMath();
+ /**
+ * @brief Unimplemented copy constructor.
+ */
+ MazeMath(const MazeMath& ref);
+ /**
+ * @brief Unimplemented assignment operator.
+ */
+ MazeMath& operator=(const MazeMath& rhs);
+};
+
+#endif // MAZEMATH_H
diff --git a/source/logic/PlayerCar.cpp b/source/logic/PlayerCar.cpp
new file mode 100644
index 0000000..5da4ba0
--- /dev/null
+++ b/source/logic/PlayerCar.cpp
@@ -0,0 +1,87 @@
+#include "PlayerCar.h"
+
+PlayerCar::PlayerCar(double x, double y, Maze::Direction facing)
+ :Car(x,y,BitmapStore::PLAYER, facing),
+ _input(_facing),
+ _petrol(1)
+{
+}
+
+void PlayerCar::update(const Maze& maze, list<Smokescreen>& currentSmoke)
+{
+ _petrol -= PETROL_USE_RATE;
+ if (_petrol<0)
+ {
+ _speed = _baseSpeed/2;
+ _petrol = 0;
+ }
+
+ _facing = _input.getFacing();
+ move(maze);
+
+ if (_input.getSmokescreen())
+ {
+ makeSmoke(currentSmoke);
+ }
+}
+
+void PlayerCar::makeSmoke(list<Smokescreen>& currentSmoke)
+{
+ if (_petrol < PETROL_USE_SMOKESCREEN) return;
+
+ double targetX = 0;
+ double targetY = 0;
+
+ switch(_facing)
+ {
+ case Maze::UP:
+ targetX = round(_x);
+ targetY = round(_y+1);
+ break;
+ case Maze::DOWN:
+ targetX = round(_x);
+ targetY = round(_y-1);
+ break;
+ case Maze::LEFT:
+ targetX = round(_x+1);
+ targetY = round(_y);
+ break;
+ case Maze::RIGHT:
+ targetX = round(_x-1);
+ targetY = round(_y);
+ break;
+ }
+
+ bool overlap = false;
+
+ for (list<Smokescreen>::const_iterator iter = currentSmoke.begin(); iter!=currentSmoke.end(); ++iter)
+ {
+ if ((abs(iter->x() - targetX)<1)&&(abs(iter->y() - targetY)<1))
+ {
+ overlap = true;
+ break;
+ }
+ }
+
+ if (!overlap)
+ {
+ currentSmoke.push_back(Smokescreen(targetX, targetY));
+ _petrol -= PETROL_USE_SMOKESCREEN;
+ }
+}
+
+void PlayerCar::crash()
+{
+ _destroyed = true;
+}
+
+void PlayerCar::gotCheckpoint()
+{
+ _petrol+=PETROL_FROM_CHECKPOINT;
+ _speed = _baseSpeed;
+}
+
+double PlayerCar::petrol() const
+{
+ return _petrol;
+}
diff --git a/source/logic/PlayerCar.h b/source/logic/PlayerCar.h
new file mode 100644
index 0000000..8e9338d
--- /dev/null
+++ b/source/logic/PlayerCar.h
@@ -0,0 +1,99 @@
+#ifndef PLAYERCAR_H
+#define PLAYERCAR_H
+
+#include <cmath>
+#include <list>
+using namespace std;
+
+#include "../presentation/KeyboardHandler.h"
+#include "../presentation/BitmapStore.h"
+
+#include "../logic/Car.h"
+#include "../logic/Maze.h"
+#include "../logic/Smokescreen.h"
+
+/**
+* @brief A GameObject that is controlled by the player.
+*
+* Contains a KeyboardHandler to accept user input.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class PlayerCar: public Car
+{
+ public:
+ /**
+ * @brief Creates a PlayerCar at the given location facing in the given direction.
+ *
+ * In the current form of the level files, there is no way to distinguish the direction
+ * that the player is facing, so the default of UP is used. However, the ability to
+ * pass in a facing is useful in the unit tests.
+ *
+ * @param [in] x The x coordinate of the object's initial position.
+ * @param [in] y The y coordinate of the object's initial position.
+ * @param [in] facing The direction that the object is initially facing.
+ */
+ PlayerCar(double x, double y, Maze::Direction facing=Maze::UP);
+
+ //assignment and copy constructors have been left with the compiler generated versions
+
+ /**
+ * @brief Processes one frame's worth of activity for the object, called every frame.
+ *
+ * The Keyboard handler is called for the user's input. Based on this, the direction
+ * can be changed, and a Smokescreen can be created and added to the list of already
+ * existing Smokescreens. The PlayerCar is then moved.
+ * Petrol is decreased by PETROL_USE_RATE on every update.
+ *
+ * @param [in] maze The Maze that confines the PlayerCar's movement.
+ * @param [in,out] currentSmoke The list of Smokescreens being drawn, that the new Smokescreens will be added to the back of.
+ */
+ void update(const Maze& maze, list<Smokescreen>& currentSmoke);
+
+ /**
+ * @brief Creates a Smokescreen one block behind the player if the action is viable.
+ *
+ * The action is viable if the object has more than PETROL_USE_SMOKESCREEN petrol. Further,
+ * the position must not overlap with existing Smokescreens. This allows the player to hold down
+ * the Smokescreen button without creating a new Smokescreen every frame.
+ * Creating a Smokescreen decreases the petrol by PETROL_USE_SMOKESCREEN.
+ *
+ * @param [in,out] currentSmoke The list of Smokescreens being drawn, that the new Smokescreens will be added to the back of.
+ */
+ void makeSmoke(list<Smokescreen>& currentSmoke);
+
+ /**
+ * @brief Function that is called when the PlayerCar collides with a Checkpoint.
+ *
+ * Increases the amount of petrol by PETROL_FROM_CHECKPOINT.
+ */
+ void gotCheckpoint();
+
+ /**
+ * @brief Function that is called when the PlayerCar collides with an EnemyCar.
+ */
+ void crash();
+
+ /**
+ * @brief Function to allow access to the amount of petrol that the PlayerCar still has.
+ */
+ double petrol() const;
+
+ private:
+ KeyboardHandler _input; ///< Object that handles all interaction with the player.
+
+ /**
+ * @brief The amount of petrol that the PlayerCar still has.
+ *
+ * Measured as a fraction, with 1 being a full tank and 0 being empty. When the petrol reaches
+ * 0, it is kept at zero and the PlayerCar's speed is halved.
+ */
+ double _petrol;
+
+ static const double PETROL_USE_RATE = 0.0007; ///< The amount of petrol used every frame.
+ static const double PETROL_USE_SMOKESCREEN = 0.05; ///< The amount of petrol used to create a Smokescreen.
+ static const double PETROL_FROM_CHECKPOINT = 0.2; ///< The amount of petrol gained from collecting a Checkpoint.
+};
+
+#endif // PLAYERCAR_H
diff --git a/source/logic/Rock.cpp b/source/logic/Rock.cpp
new file mode 100644
index 0000000..bb1053a
--- /dev/null
+++ b/source/logic/Rock.cpp
@@ -0,0 +1,6 @@
+#include "Rock.h"
+
+Rock::Rock(double x, double y)
+ :GameObject(x,y,BitmapStore::ROCK)
+{
+}
diff --git a/source/logic/Rock.h b/source/logic/Rock.h
new file mode 100644
index 0000000..106fd18
--- /dev/null
+++ b/source/logic/Rock.h
@@ -0,0 +1,29 @@
+#ifndef ROCK_H
+#define ROCK_H
+
+#include "../logic/GameObject.h"
+#include "../presentation/BitmapStore.h"
+
+/**
+* @brief A game object that acts as an obstacle to the player.
+*
+* Does nothing actively.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class Rock: public GameObject
+{
+ public:
+ /**
+ * @brief Creates a Rock at the given coordinates.
+ *
+ * @param [in] x The x coordinate of the Rock's position.
+ * @param [in] y The y coordinate of the Rock's position.
+ */
+ Rock(double x, double y);
+
+ //assignment and copy constructors have been left with the compiler generated versions
+};
+
+#endif // ROCK_H
diff --git a/source/logic/Smokescreen.cpp b/source/logic/Smokescreen.cpp
new file mode 100644
index 0000000..9ad4316
--- /dev/null
+++ b/source/logic/Smokescreen.cpp
@@ -0,0 +1,6 @@
+#include "Smokescreen.h"
+
+Smokescreen::Smokescreen(double x, double y)
+ :LimitedTimeObject(x,y,BitmapStore::SMOKE,SMOKE_TIME)
+{
+}
diff --git a/source/logic/Smokescreen.h b/source/logic/Smokescreen.h
new file mode 100644
index 0000000..59d1871
--- /dev/null
+++ b/source/logic/Smokescreen.h
@@ -0,0 +1,31 @@
+#ifndef SMOKESCREEN_H
+#define SMOKESCREEN_H
+
+#include "../logic/LimitedTimeObject.h"
+#include "../presentation/BitmapStore.h"
+
+/**
+* @brief GameObject that causes the EnemyCar to be delayed if they crash into it.
+*
+* After a short time, the SmokeScreen dissipates.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class Smokescreen : public LimitedTimeObject
+{
+ public:
+ /**
+ * @brief Creates a Smokescreen at the given location.
+ *
+ * @param [in] x The x coordinate of the object's position.
+ * @param [in] y The y coordinate of the object's position.
+ */
+ Smokescreen(double x, double y);
+
+ //assignment and copy constructors have been left with the compiler generated versions
+ private:
+ static const int SMOKE_TIME = 60; ///< The number of frames that the Smokescreen exists before it is destroyed. 2 second at FPS=30.
+};
+
+#endif // SMOKESCREEN_H
diff --git a/source/main.cpp b/source/main.cpp
new file mode 100644
index 0000000..f990ca4
--- /dev/null
+++ b/source/main.cpp
@@ -0,0 +1,21 @@
+#include "logic/Game.h"
+
+int main()
+{
+ try
+ {
+ Game game;
+ game.start();
+ }
+ catch (BadResolution)
+ {
+ }
+ catch (InstallFailure)
+ {
+ }
+ catch (FileOpenError)
+ {
+ }
+
+ return 0;
+}
diff --git a/source/presentation/BitmapStore.cpp b/source/presentation/BitmapStore.cpp
new file mode 100644
index 0000000..c289ff3
--- /dev/null
+++ b/source/presentation/BitmapStore.cpp
@@ -0,0 +1,238 @@
+#include "BitmapStore.h"
+
+BitmapStore::BitmapStore(unsigned int blockWidth)
+ :_blockWidth(blockWidth)
+{
+ _bitmapFont = al_load_font("junction 02.ttf", blockWidth/6, 0);
+ if (_bitmapFont == NULL)
+ {
+ al_show_native_message_box(NULL, "Fatal error", "Fatal error", "The file 'junction 02.ttf' was not found. Ensure that it is located in the working directory.", NULL, ALLEGRO_MESSAGEBOX_ERROR);
+ throw InstallFailure();
+ }
+}
+
+BitmapStore::~BitmapStore()
+{
+ for (map<Image,ALLEGRO_BITMAP*>::iterator iter = _bitmaps.begin();
+ iter != _bitmaps.end(); ++iter)
+ {
+ al_destroy_bitmap(iter->second);
+ }
+ _bitmaps.clear();
+ al_destroy_font(_bitmapFont);
+}
+
+ALLEGRO_BITMAP* BitmapStore::getBitmap(Image image)
+{
+ map<Image,ALLEGRO_BITMAP*>::const_iterator iter = _bitmaps.find(image);
+ if (iter != _bitmaps.end())
+ {
+ return iter->second;
+ }
+ else
+ {
+ ALLEGRO_BITMAP* newImage = al_create_bitmap(_blockWidth, _blockWidth);
+ switch (image)
+ {
+ case PLAYER:
+ drawPlayerCar(newImage);
+ break;
+ case ENEMY:
+ drawEnemyCar(newImage);
+ break;
+ case CHECKPOINT:
+ drawCheckpoint(newImage);
+ break;
+ case ROCK:
+ drawRock(newImage);
+ break;
+ case MAZE_WALL:
+ drawMazeWall(newImage);
+ break;
+ case MAZE_FLOOR:
+ drawMazeFloor(newImage);
+ break;
+ case SMOKE:
+ drawSmoke(newImage);
+ break;
+ case CRASHED_CAR:
+ drawCrashedCar(newImage);
+ break;
+ case CLAIMED_CHECKPOINT:
+ drawClaimedCheckpoint(newImage);
+ break;
+ }
+
+ _bitmaps.insert(make_pair(image, newImage));
+ return newImage;
+ }
+}
+
+void BitmapStore::drawPlayerCar(ALLEGRO_BITMAP* canvas)
+{
+ ALLEGRO_BITMAP* prev_draw = al_get_target_bitmap();
+ al_set_target_bitmap(canvas);
+
+ //car body
+ al_draw_filled_rounded_rectangle(_blockWidth*0.2, 0, _blockWidth*0.8, _blockWidth*0.96, _blockWidth*0.1, _blockWidth*0.1, al_map_rgb(0,0,255));
+
+ //racing stripes
+ al_draw_filled_rectangle(_blockWidth*0.35, 0, _blockWidth*0.4, _blockWidth*0.3, al_map_rgb(255,255,255));
+ al_draw_filled_rectangle(_blockWidth*0.6, 0, _blockWidth*0.65, _blockWidth*0.3, al_map_rgb(255,255,255));
+
+ //windscreen
+ al_draw_filled_rectangle(_blockWidth*0.3, _blockWidth*0.3, _blockWidth*0.7, _blockWidth*0.5, al_map_rgb (0,0,0));
+
+ //roof
+ al_draw_rounded_rectangle(_blockWidth*0.3, _blockWidth*0.5, _blockWidth*0.7, _blockWidth*0.9, _blockWidth*0.04, _blockWidth*0.04, al_map_rgb (25,25, 112), _blockWidth*0.04);
+
+ //spoiler
+ al_draw_filled_rectangle(_blockWidth*0.2, _blockWidth*0.96, _blockWidth*0.8, _blockWidth, al_map_rgb (0,0, 225));
+ al_draw_rectangle(_blockWidth*0.2, _blockWidth*0.96, _blockWidth*0.8, _blockWidth, al_map_rgb(25,25, 112),_blockWidth*0.04);
+
+ //headlights
+ al_draw_filled_rectangle (_blockWidth*0.3,0,_blockWidth*0.35,_blockWidth*0.06, al_map_rgb(255,225,0));
+ al_draw_filled_rectangle (_blockWidth*0.65,0,_blockWidth*0.7,_blockWidth*0.06, al_map_rgb(255,225,0));
+
+ //tyres
+ al_draw_filled_rounded_rectangle (_blockWidth*0.1,_blockWidth*0.13,_blockWidth*0.2,_blockWidth*0.37,_blockWidth*0.03,_blockWidth*0.03, al_map_rgb(131,139,131));
+ al_draw_filled_rounded_rectangle (_blockWidth*0.8,_blockWidth*0.13,_blockWidth*0.9,_blockWidth*0.37,_blockWidth*0.03,_blockWidth*0.03, al_map_rgb(131,139,131));
+ al_draw_filled_rounded_rectangle (_blockWidth*0.1,_blockWidth*0.63,_blockWidth*0.2,_blockWidth*0.87,_blockWidth*0.03,_blockWidth*0.03, al_map_rgb(131,139,131));
+ al_draw_filled_rounded_rectangle (_blockWidth*0.8,_blockWidth*0.63,_blockWidth*0.9,_blockWidth*0.87,_blockWidth*0.03,_blockWidth*0.03, al_map_rgb(131,139,131));
+
+ al_set_target_bitmap(prev_draw);
+}
+void BitmapStore::drawEnemyCar(ALLEGRO_BITMAP* canvas)
+{
+ ALLEGRO_BITMAP* prev_draw = al_get_target_bitmap();
+ al_set_target_bitmap(canvas);
+
+ //car body
+ al_draw_filled_rounded_rectangle(_blockWidth*0.2, 0, _blockWidth*0.8, _blockWidth*0.96, _blockWidth*0.1, _blockWidth*0.1, al_map_rgb(255,0,0));
+
+ //racing stripes
+ al_draw_filled_rectangle(_blockWidth*0.35, 0, _blockWidth*0.4, _blockWidth*0.3, al_map_rgb(255,255,255));
+ al_draw_filled_rectangle(_blockWidth*0.6, 0, _blockWidth*0.65, _blockWidth*0.3, al_map_rgb(255,255,255));
+
+ //windscreen
+ al_draw_filled_rectangle(_blockWidth*0.3, _blockWidth*0.3, _blockWidth*0.7, _blockWidth*0.5, al_map_rgb (0,0,0));
+
+ //roof
+ al_draw_rounded_rectangle(_blockWidth*0.3, _blockWidth*0.5, _blockWidth*0.7, _blockWidth*0.9, _blockWidth*0.04, _blockWidth*0.04, al_map_rgb (25,25, 112), _blockWidth*0.04);
+
+ //spoiler
+ al_draw_filled_rectangle(_blockWidth*0.2, _blockWidth*0.96, _blockWidth*0.8, _blockWidth, al_map_rgb (0,0, 225));
+ al_draw_rectangle(_blockWidth*0.2, _blockWidth*0.96, _blockWidth*0.8, _blockWidth, al_map_rgb(25,25, 112),_blockWidth*0.04);
+
+ //headlights
+ al_draw_filled_rectangle (_blockWidth*0.3,0,_blockWidth*0.35,_blockWidth*0.06, al_map_rgb(255,225,0));
+ al_draw_filled_rectangle (_blockWidth*0.65,0,_blockWidth*0.7,_blockWidth*0.06, al_map_rgb(255,225,0));
+
+ //tyres
+ al_draw_filled_rounded_rectangle (_blockWidth*0.1,_blockWidth*0.13,_blockWidth*0.2,_blockWidth*0.37,_blockWidth*0.03,_blockWidth*0.03, al_map_rgb(131,139,131));
+ al_draw_filled_rounded_rectangle (_blockWidth*0.8,_blockWidth*0.13,_blockWidth*0.9,_blockWidth*0.37,_blockWidth*0.03,_blockWidth*0.03, al_map_rgb(131,139,131));
+ al_draw_filled_rounded_rectangle (_blockWidth*0.1,_blockWidth*0.63,_blockWidth*0.2,_blockWidth*0.87,_blockWidth*0.03,_blockWidth*0.03, al_map_rgb(131,139,131));
+ al_draw_filled_rounded_rectangle (_blockWidth*0.8,_blockWidth*0.63,_blockWidth*0.9,_blockWidth*0.87,_blockWidth*0.03,_blockWidth*0.03, al_map_rgb(131,139,131));
+
+ al_set_target_bitmap(prev_draw);
+}
+void BitmapStore::drawRock(ALLEGRO_BITMAP* canvas)
+{
+ ALLEGRO_BITMAP* prev_draw = al_get_target_bitmap();
+ al_set_target_bitmap(canvas);
+
+ ALLEGRO_COLOR colour = al_map_rgb(131,139,131);
+ al_draw_filled_circle(_blockWidth/2, _blockWidth/2, _blockWidth/2-1, colour);
+
+ al_draw_filled_circle(_blockWidth/2, _blockWidth/2, _blockWidth/2-6, colour);
+ al_draw_filled_circle(_blockWidth/4, _blockWidth/4, _blockWidth/4-1, al_map_rgb(205,197,191));
+ al_draw_filled_circle(_blockWidth/3.2, _blockWidth/4.2, _blockWidth/4-2, al_map_rgb(205,197,191));
+ al_draw_filled_circle(_blockWidth/1.2, _blockWidth/2, _blockWidth/2-15, al_map_rgb(205,197,191));
+ al_draw_filled_circle(_blockWidth/2, _blockWidth/2, _blockWidth/2-8, al_map_rgb(205,205,193));
+
+ al_set_target_bitmap(prev_draw);
+}
+void BitmapStore::drawCheckpoint(ALLEGRO_BITMAP* canvas)
+{
+ ALLEGRO_BITMAP* prev_draw = al_get_target_bitmap();
+ al_set_target_bitmap(canvas);
+
+ ALLEGRO_COLOR colour = al_map_rgb(255,255,0);
+
+ al_draw_filled_rectangle (_blockWidth*0.44, _blockWidth*0.1, _blockWidth*0.5, _blockWidth*0.9, colour);
+ al_draw_filled_rounded_rectangle (_blockWidth*0.34, _blockWidth*0.9, _blockWidth*0.6, _blockWidth*0.98, _blockWidth*0.01, _blockWidth*0.01, colour);
+ al_draw_filled_circle (_blockWidth*0.47, _blockWidth*0.14, _blockWidth*0.1, colour);
+ al_draw_filled_triangle (_blockWidth*0.44, _blockWidth*0.26, _blockWidth*0.44, _blockWidth*0.58, _blockWidth*0.8, _blockWidth*0.42, colour);
+
+ al_set_target_bitmap(prev_draw);
+}
+void BitmapStore::drawMazeWall(ALLEGRO_BITMAP* canvas)
+{
+ ALLEGRO_BITMAP* prev_draw = al_get_target_bitmap();
+ al_set_target_bitmap(canvas);
+
+ ALLEGRO_COLOR colour = al_map_rgb(203,255,151);
+ al_clear_to_color(colour);
+
+ al_set_target_bitmap(prev_draw);
+}
+void BitmapStore::drawMazeFloor(ALLEGRO_BITMAP* canvas)
+{
+ ALLEGRO_BITMAP* prev_draw = al_get_target_bitmap();
+ al_set_target_bitmap(canvas);
+
+ ALLEGRO_COLOR colour = al_map_rgb(0,0,0);
+ al_clear_to_color(colour);
+
+ al_set_target_bitmap(prev_draw);
+}
+void BitmapStore::drawSmoke(ALLEGRO_BITMAP* canvas)
+{
+ ALLEGRO_BITMAP* prev_draw = al_get_target_bitmap();
+ al_set_target_bitmap(canvas);
+
+ ALLEGRO_COLOR colour = al_map_rgb(255,255,255);
+ al_draw_circle (_blockWidth/2.3, _blockWidth/2.1, _blockWidth/2-1, colour,1);
+ al_draw_circle (_blockWidth/4, _blockWidth/4, _blockWidth/4, colour,2);
+ al_draw_circle (_blockWidth/5, _blockWidth/1.5, _blockWidth/4, colour,4);
+ al_draw_circle (_blockWidth/2.5, _blockWidth/2.7, _blockWidth/3, colour,3);
+ al_draw_circle (_blockWidth/1.2, _blockWidth/1.8, _blockWidth/3.7, colour,2);
+ al_draw_circle (_blockWidth/2.8, _blockWidth/2.2, _blockWidth/6, colour,3);
+ al_draw_circle (_blockWidth/1.1, _blockWidth/1.2, _blockWidth/3, colour,2);
+ al_draw_circle (_blockWidth/1.2, _blockWidth/1.7, _blockWidth/2, colour,3);
+ al_draw_circle (_blockWidth/1.3, _blockWidth/1.3, _blockWidth/5, colour,2);
+
+ al_set_target_bitmap(prev_draw);
+}
+
+void BitmapStore::drawCrashedCar(ALLEGRO_BITMAP* canvas)
+{
+ ALLEGRO_BITMAP* prev_draw = al_get_target_bitmap();
+ al_set_target_bitmap(canvas);
+
+ al_draw_filled_rounded_rectangle(_blockWidth/3.33, _blockWidth/5, _blockWidth/1.25, _blockWidth/1.04, 5, 5, al_map_rgb (200, 200, 200));
+ al_draw_circle (_blockWidth/2.3, _blockWidth/2.1, _blockWidth/2-1, al_map_rgb (255, 0, 0),1);
+ al_draw_circle (_blockWidth/4, _blockWidth/4, _blockWidth/4, al_map_rgb (100, 100, 100),2);
+ al_draw_circle (_blockWidth/5, _blockWidth/1.5, _blockWidth/4, al_map_rgb (255, 0, 0),4);
+ al_draw_filled_rectangle(_blockWidth/2.5, _blockWidth/2, _blockWidth/1.43, _blockWidth/1.7, al_map_rgb (0,0, 0));
+ al_draw_circle (_blockWidth/2.5, _blockWidth/2.7, _blockWidth/3, al_map_rgb (100, 100, 100),3);
+ al_draw_circle (_blockWidth/1.2, _blockWidth/1.8, _blockWidth/3.7, al_map_rgb (255, 0, 0),2);
+ al_draw_rectangle(_blockWidth/3.13, _blockWidth/1.04, _blockWidth/1.25, _blockWidth, al_map_rgb (25,25, 112),1);
+ al_draw_circle (_blockWidth/2.8, _blockWidth/2.2, _blockWidth/6, al_map_rgb (255, 0, 0),3);
+ al_draw_circle (_blockWidth/1.1, _blockWidth/1.2, _blockWidth/3, al_map_rgb (100, 100, 100),2);
+ al_draw_circle (_blockWidth/1.2, _blockWidth/1.7, _blockWidth/2, al_map_rgb (100, 100, 100),3);
+ al_draw_circle (_blockWidth/1.3, _blockWidth/1.3, _blockWidth/5, al_map_rgb (255, 0, 0),2);
+
+ al_set_target_bitmap(prev_draw);
+}
+
+void BitmapStore::drawClaimedCheckpoint(ALLEGRO_BITMAP* canvas)
+{
+ ALLEGRO_BITMAP* prev_draw = al_get_target_bitmap();
+ al_set_target_bitmap(canvas);
+
+ ALLEGRO_COLOR colour = al_map_rgb(255,255,255);
+ al_draw_text(_bitmapFont, colour, _blockWidth/2, _blockWidth/2, ALLEGRO_ALIGN_CENTRE , "GOTCHA");
+
+ al_set_target_bitmap(prev_draw);
+}
diff --git a/source/presentation/BitmapStore.h b/source/presentation/BitmapStore.h
new file mode 100644
index 0000000..b551698
--- /dev/null
+++ b/source/presentation/BitmapStore.h
@@ -0,0 +1,140 @@
+#ifndef BITMAPSTORE_H
+#define BITMAPSTORE_H
+
+#include <string>
+#include <map>
+using namespace std;
+
+#include <allegro5/allegro.h>
+#include <allegro5/allegro_primitives.h>
+#include <allegro5/allegro_font.h>
+#include <allegro5/allegro_ttf.h>
+#include <allegro5/allegro_native_dialog.h>
+
+#include "../logic/AllegroWrappers.h"
+
+/**
+* @brief Class for accessing images in ALLEGRO_BITMAP format and low level drawing.
+*
+* The store ensures that only one copy of identical images are created.
+* This is done through a map, that caches the images that have already been requested.
+* If an uncached image is requested, it is added to the cache before being returned.
+* The store provides an enumerated type, Image, for other classes to reference which image
+* should represent the object on the screen.
+*
+* All images are square, to allow easy rotation and placement on the screen.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class BitmapStore
+{
+ public:
+ /**
+ * @brief Constructor for creating a BitmapStore with a set image size.
+ *
+ * @param [in] blockWidth The width (and height) of an image returned by the store in pixels.
+ */
+ BitmapStore(unsigned int blockWidth);
+ /**
+ * @brief Destructor for clearing cache.
+ */
+ ~BitmapStore();
+
+ /**
+ * @brief Type used to define which image should be returned.
+ */
+ enum Image {PLAYER, ENEMY, ROCK, CHECKPOINT, MAZE_WALL, MAZE_FLOOR, SMOKE, CRASHED_CAR, CLAIMED_CHECKPOINT};
+
+ /**
+ * @brief Function to get image for drawing to the screen.
+ *
+ * @param [in] image Image to be returned.
+ * @return Requested image in ALLEGRO_BITMAP format.
+ */
+ ALLEGRO_BITMAP* getBitmap(Image image);
+
+ private:
+ /**
+ * @brief Unimplemented copy constructor, prevents copying of BitmapStore objects.
+ *
+ * Copying a BitmapStore is unneccesary as there should only be a single BitmapStore object.
+ */
+ BitmapStore(const BitmapStore& ref);
+ /**
+ * @brief Unimplemented assignment operator.
+ *
+ * @see BitmapStore(const BitmapStore& ref);
+ */
+ BitmapStore& operator=(const BitmapStore& rhs);
+
+ /**
+ * @brief Draws the image representing the player.
+ *
+ * @param [out] canvas ALLEGRO_BITMAP onto which the image is drawn.
+ */
+ void drawPlayerCar(ALLEGRO_BITMAP* canvas);
+ /**
+ * @brief Draws the image representing an enemy.
+ *
+ * @param [out] canvas ALLEGRO_BITMAP onto which the image is drawn.
+ */
+ void drawEnemyCar(ALLEGRO_BITMAP* canvas);
+ /**
+ * @brief Draws the image representing a rock.
+ *
+ * @param [out] canvas ALLEGRO_BITMAP onto which the image is drawn.
+ */
+ void drawRock(ALLEGRO_BITMAP* canvas);
+ /**
+ * @brief Draws the image representing a checkpoint.
+ *
+ * @param [out] canvas ALLEGRO_BITMAP onto which the image is drawn.
+ */
+ void drawCheckpoint(ALLEGRO_BITMAP* canvas);
+ /**
+ * @brief Draws the image representing a solid part of the maze.
+ *
+ * @param [out] canvas ALLEGRO_BITMAP onto which the image is drawn.
+ */
+ void drawMazeWall(ALLEGRO_BITMAP* canvas);
+ /**
+ * @brief Draws the image representing a non-solid part of the maze.
+ *
+ * @param [out] canvas ALLEGRO_BITMAP onto which the image is drawn.
+ */
+ void drawMazeFloor(ALLEGRO_BITMAP* canvas);
+ /**
+ * @brief Draws the image representing a smokescreen.
+ *
+ * @param [out] canvas ALLEGRO_BITMAP onto which the image is drawn.
+ */
+ void drawSmoke(ALLEGRO_BITMAP* canvas);
+ /**
+ * @brief Draws the popup that appears when a car crashes.
+ *
+ * @param [out] canvas ALLEGRO_BITMAP onto which the image is drawn.
+ */
+ void drawCrashedCar(ALLEGRO_BITMAP* canvas);
+ /**
+ * @brief Draws the popup that appears when a checkpoint is collected.
+ *
+ * @param [out] canvas ALLEGRO_BITMAP onto which the image is drawn.
+ */
+ void drawClaimedCheckpoint(ALLEGRO_BITMAP* canvas);
+
+ AllegroDrawingInit _drawingInstalls; ///< Ensures that Allegro is initialized while an object of this class exists
+
+ ALLEGRO_FONT* _bitmapFont; ///< Font used for writing text on bitmaps.
+
+ /**
+ * @brief map containing pairs of Images (the enumerated type) and the actual images.
+ *
+ * Creates a cache for images once they have been drawn.
+ */
+ map<Image, ALLEGRO_BITMAP*> _bitmaps;
+
+ unsigned int _blockWidth; ///< The width of a square image in the store
+};
+
+#endif // BITMAPSTORE_H
diff --git a/source/presentation/ColourStore.cpp b/source/presentation/ColourStore.cpp
new file mode 100644
index 0000000..e08b6f8
--- /dev/null
+++ b/source/presentation/ColourStore.cpp
@@ -0,0 +1,25 @@
+#include "ColourStore.h"
+
+ColourStore::ColourStore()
+{
+ populateColours();
+}
+
+void ColourStore::populateColours()
+{
+ _colours[BitmapStore::PLAYER] = al_map_rgb(0,255,255);
+ _colours[BitmapStore::ENEMY] = al_map_rgb(255,0,0);
+ _colours[BitmapStore::CHECKPOINT] = al_map_rgb(0,255,0);
+ _colours[BitmapStore::MAZE_WALL] = al_map_rgb(255,255,255);
+ _colours[BitmapStore::MAZE_FLOOR] = al_map_rgb(0,0,0);
+ _transparent = al_map_rgba(0,0,0,0);
+}
+
+ALLEGRO_COLOR ColourStore::getColour(BitmapStore::Image image)
+{
+ if (_colours.find(image) != _colours.end())
+ {
+ return _colours[image];
+ }
+ else return _transparent;
+}
diff --git a/source/presentation/ColourStore.h b/source/presentation/ColourStore.h
new file mode 100644
index 0000000..8985099
--- /dev/null
+++ b/source/presentation/ColourStore.h
@@ -0,0 +1,60 @@
+#ifndef COLOURSTORE_H
+#define COLOURSTORE_H
+
+#include <allegro5/allegro.h>
+
+#include "../presentation/BitmapStore.h"
+
+/**
+* @brief Class for mapping BitmapStore images to colours for use in the minimap.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class ColourStore
+{
+ public:
+ /**
+ * @brief Creates the ColourStore object and initialises all of the colours.
+ */
+ ColourStore();
+
+ /**
+ * @brief Returns the colour associated with a given image.
+ *
+ * If no colour makes sense for the image, then when it is requested a colour
+ * with an alpha of 0 (completely transparent) is returned.
+ *
+ * @param [in] image The BitmapStore image to be associated with a colour.
+ *
+ * @return The requested colour.
+ */
+ ALLEGRO_COLOR getColour(BitmapStore::Image image);
+ private:
+ /**
+ * @brief Unimplemented copy constructor, prevents copying of ColourStore objects.
+ *
+ * Copying a ColourStore is unneccesary as there should only be a single ColourStore object.
+ */
+ ColourStore(const ColourStore& ref);
+ /**
+ * @brief Unimplemented assignment operator.
+ *
+ * @see ColourStore(const ColourStore& ref);
+ */
+ ColourStore& operator=(const ColourStore& rhs);
+
+ map<BitmapStore::Image, ALLEGRO_COLOR> _colours;
+
+ /**
+ * @brief Initialised to have an alpha of 0, and returned when the colour of an unlisted image is requested.
+ */
+ ALLEGRO_COLOR _transparent;
+
+ /**
+ * @brief Initialises all of the relevant colours.
+ */
+ void populateColours();
+};
+
+#endif // COLOURSTORE_H
diff --git a/source/presentation/GamePanel.cpp b/source/presentation/GamePanel.cpp
new file mode 100644
index 0000000..71ef290
--- /dev/null
+++ b/source/presentation/GamePanel.cpp
@@ -0,0 +1,133 @@
+#include "GamePanel.h"
+
+GamePanel::GamePanel(ALLEGRO_BITMAP* back, ALLEGRO_BITMAP* front, int x, int y, int width, int height)
+ :ScreenPanel(back, front, x, y, width, height),
+ _mazeblockWidth(_width/BLOCKS_PER_ROW),
+ _offsetX(0),
+ _offsetY(0),
+ _bitmapStore(_mazeblockWidth)
+{
+}
+
+void GamePanel::draw(const Maze& maze, const list<PlayerCar>& players, const list<EnemyCar>& enemies, const list<Checkpoint>& checkpoints, const list<Rock>& rocks, const list<Smokescreen>& smokescreens, const list<DestroyedObjectPopup>& popups)
+{
+ ALLEGRO_BITMAP* prev_draw = al_get_target_bitmap();
+ al_set_target_bitmap(_back);
+
+ al_clear_to_color(BLANK);
+
+ float _maxOffsetX = getPanelX(maze.width()) - _width;
+ float _maxOffsetY = getPanelY(maze.height()) - _height;
+
+ if (!players.empty())
+ {
+ _offsetX = getPanelX(players.front().x()) - _width/2;
+ if (_offsetX < 0) _offsetX = 0;
+ else if (_offsetX > _maxOffsetX) _offsetX = _maxOffsetX;
+
+ _offsetY = getPanelY(players.front().y()) - _height/2;
+ if (_offsetY < 0) _offsetY = 0;
+ else if (_offsetY > _maxOffsetY) _offsetY = _maxOffsetY;
+ }
+
+ draw(maze);
+
+ for (list<PlayerCar>::const_iterator iter = players.begin(); iter != players.end(); ++iter)
+ {
+ draw(*iter);
+ }
+ for (list<EnemyCar>::const_iterator iter = enemies.begin(); iter != enemies.end(); ++iter)
+ {
+ draw(*iter);
+ }
+ for (list<Checkpoint>::const_iterator iter = checkpoints.begin(); iter != checkpoints.end(); ++iter)
+ {
+ draw(*iter);
+ }
+ for (list<Rock>::const_iterator iter = rocks.begin(); iter != rocks.end(); ++iter)
+ {
+ draw(*iter);
+ }
+ for (list<Smokescreen>::const_iterator iter = smokescreens.begin(); iter != smokescreens.end(); ++iter)
+ {
+ draw(*iter);
+ }
+ for (list<DestroyedObjectPopup>::const_iterator iter = popups.begin(); iter != popups.end(); ++iter)
+ {
+ draw(*iter);
+ }
+
+ al_set_target_bitmap(prev_draw);
+}
+
+void GamePanel::draw(const Maze& maze)
+{
+ //only draws a parts of the maze that would appear on the screen
+ int minX = floor((_offsetX-_mazeblockWidth)/_mazeblockWidth);
+ int maxX = ceil((_offsetX+_width)/_mazeblockWidth);
+ int minY = floor((_offsetY-_mazeblockWidth)/_mazeblockWidth);
+ int maxY = ceil((_offsetY+_height)/_mazeblockWidth);
+
+ ALLEGRO_BITMAP* wallBitmap = _bitmapStore.getBitmap(BitmapStore::MAZE_WALL);
+ ALLEGRO_BITMAP* floorBitmap = _bitmapStore.getBitmap(BitmapStore::MAZE_FLOOR);
+ //used to only have one al_draw_bitmap command
+ ALLEGRO_BITMAP* currentBitmap = floorBitmap;
+ for (int x=minX; x<maxX&&x<maze.width(); ++x)
+ {
+ for (int y=minY; y<maxY&&y<maze.height(); ++y)
+ {
+ if (maze.getSolid(x,y))
+ {
+ currentBitmap = wallBitmap;
+ }
+ else
+ {
+ currentBitmap = floorBitmap;
+ }
+ al_draw_bitmap(currentBitmap, getPanelX(x)-_offsetX, getPanelY(y)-_offsetY, 0);
+ }
+ }
+}
+
+void GamePanel::draw(const GameObject& object)
+{
+ //only draws a gameobject if it would appear on the screen
+ if (object.x() < (_offsetX-_mazeblockWidth)/_mazeblockWidth) return;
+ if (object.x() > (_offsetX+_width)/_mazeblockWidth) return;
+ if (object.y() < (_offsetY-_mazeblockWidth)/_mazeblockWidth) return;
+ if (object.y() > (_offsetY+_height)/_mazeblockWidth) return;
+
+ ALLEGRO_BITMAP* bitmap = _bitmapStore.getBitmap(object.image());
+
+ float angle = 0;
+ switch(object.facing())
+ {
+ case Maze::UP:
+ angle = 0;
+ break;
+ case Maze::RIGHT:
+ angle = ALLEGRO_PI/2;
+ break;
+ case Maze::DOWN:
+ angle = ALLEGRO_PI;
+ break;
+ case Maze::LEFT:
+ angle = 3*ALLEGRO_PI/2;
+ break;
+ }
+
+ float objectX = getPanelX(object.x());
+ float objectY = getPanelY(object.y());
+ float center = _mazeblockWidth/2;
+
+ al_draw_rotated_bitmap(bitmap, center , center , objectX+center-_offsetX, objectY+center-_offsetY, angle, 0);
+}
+
+float GamePanel::getPanelX(const double& x) const
+{
+ return static_cast<float>(x*_mazeblockWidth);
+}
+float GamePanel::getPanelY(const double& y) const
+{
+ return static_cast<float>(y*_mazeblockWidth);
+}
diff --git a/source/presentation/GamePanel.h b/source/presentation/GamePanel.h
new file mode 100644
index 0000000..916ac13
--- /dev/null
+++ b/source/presentation/GamePanel.h
@@ -0,0 +1,117 @@
+#ifndef GAMEPANEL_H
+#define GAMEPANEL_H
+
+#include "../presentation/ScreenPanel.h"
+#include "../logic/Maze.h"
+#include "../logic/GameObject.h"
+#include "../logic/PlayerCar.h"
+#include "../logic/EnemyCar.h"
+#include "../logic/Checkpoint.h"
+#include "../logic/Rock.h"
+#include "../logic/Smokescreen.h"
+#include "../logic/DestroyedObjectPopup.h"
+#include "../logic/AllegroWrappers.h"
+
+/**
+* @brief ScreenPanel to be drawn on the screen to draw the area where the game takes place.
+*
+* This includes the scrolling maze and all of the GameObjects.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class GamePanel : public ScreenPanel
+{
+ public:
+ /**
+ * @brief Creates a GamePanel from the given back and front buffers.
+ *
+ * The sub-bitmaps that GamePanel uses are created from a rectangular region on back and front
+ * that has its top left corner at the coordinate x,y, is width long in the x direction, and
+ * height long in the y direction.
+ *
+ * @param [in] back The current back buffer of the display being sub-bitmapped.
+ * @param [in] front The current front buffer (image currently being displayed) of the display being sub-bitmapped.
+ * @param [in] x The x coordinate of the left side of the sub-bitmap in pixels.
+ * @param [in] y The x coordinate of the top of the sub-bitmap in pixels.
+ * @param [in] width The length in the x direction of the new sub-bitmap in pixels.
+ * @param [in] height The length in the y direction of the new sub-bitmap in pixels.
+ */
+ GamePanel(ALLEGRO_BITMAP* back, ALLEGRO_BITMAP* front, int x, int y, int width, int height);
+
+
+ /**
+ * @brief Draws the given objects on the screen.
+ *
+ * The drawing is offset so that the first entry in players is in the middle of the panel.
+ * However, the offset will never be such that the drawing area will be outside of the maze.
+ *
+ * @param [in] maze The Maze that all of the objects are in.
+ * @param [in] players The list of PlayerCars to be drawn.
+ * @param [in] enemies The list of EnemyCars to be drawn.
+ * @param [in] checkpoints The list of Checkpoints to be drawn.
+ * @param [in] rocks The list of Rocks to be drawn.
+ * @param [in] smokescreens The list of Smokescreens to be drawn.
+ * @param [in] popups The list of DestroyedObjectPopups to be drawn.
+ */
+ virtual void draw(const Maze& maze, const list<PlayerCar>& players, const list<EnemyCar>& enemies, const list<Checkpoint>& checkpoints, const list<Rock>& rocks, const list<Smokescreen>& smokescreens, const list<DestroyedObjectPopup>& popups);
+ private:
+ /**
+ * @brief Copy constructor not implemented, ScreenPanels should not be copied.
+ */
+ GamePanel(const GamePanel& ref);
+ /**
+ * @brief Assignment operator not implemented, ScreenPanels should not be copied.
+ */
+ GamePanel& operator=(const GamePanel& rhs);
+ /**
+ * @brief Converts an x game coordinate value to its equivalent in pixels.
+ *
+ * Converting to the pixel coordinates happens for every object every frame. To increase
+ * performance, the parameters are passed in by constant reference instead of by value.
+ *
+ * @param [in] x The game coordinate to be converted into pixels.
+ */
+ float getPanelX(const double& x) const;
+ /**
+ * @brief Converts a y game coordinate value to its equivalent in pixels.
+ *
+ * Converting to the pixel coordinates happens for every object every frame. To increase
+ * performance, the parameters are passed in by constant reference instead of by value.
+ *
+ * @param [in] y The game coordinate to be converted into pixels.
+ */
+ float getPanelY(const double& y) const;
+
+ /**
+ * @brief Draws a Maze on the screen.
+ *
+ * Bitmaps used to represent solid and non-solid parts of the Maze are stored in the
+ * BitmapStore.
+ *
+ * @param [in] maze The Maze to be drawn.
+ */
+ void draw(const Maze& maze);
+
+ /**
+ * @brief Draws a single GameObject on the screen.
+ *
+ * The bitmap to be drawn is retrieved from the BitmapStore using the GameObject's image.
+ *
+ * @param [in] object The GameObject to be drawn.
+ */
+ void draw(const GameObject& object);
+
+ const static int BLOCKS_PER_ROW = 15; ///< The number of Maze blocks in one row shown on the panel at a time. Used to determine the scale.
+
+ unsigned int _mazeblockWidth; ///< The width of one (square) Maze block on the screen, in pixels.
+
+ float _offsetX; ///< The amount that drawing should be offset to the right, recalculated every frame.
+ float _offsetY; ///< The amount that drawing should be offset downwards, recalculated every frame.
+
+ BitmapStore _bitmapStore; ///< Used to cache ALLEGRO_BITMAPs, so that they only need to be drawn once.
+
+ AllegroInit _allegro; ///< Handles dependencies on Allegro.
+};
+
+#endif // GAMEPANEL_H
diff --git a/source/presentation/InfoPanel.cpp b/source/presentation/InfoPanel.cpp
new file mode 100644
index 0000000..b4d33fa
--- /dev/null
+++ b/source/presentation/InfoPanel.cpp
@@ -0,0 +1,111 @@
+#include "InfoPanel.h"
+
+InfoPanel::InfoPanel(ALLEGRO_BITMAP* back, ALLEGRO_BITMAP* front, int x, int y, int width, int height)
+ :ScreenPanel(back, front, x, y, width, height),
+ _petrolHeadingY(_width/10),
+ _petrolGuageY(_petrolHeadingY + _width/10),
+ _petrolGuageHeight(_width/10),
+ _checkpointHeadingY(_petrolGuageY + _petrolGuageHeight + _width/10),
+ _checkpointValueY(_checkpointHeadingY + _width/10),
+ _miniMazeY(_checkpointValueY + _width/5),
+ _miniMazeHeight(_height - _miniMazeY),
+ _miniMazeblockWidth(0)
+{
+ _panelFont = al_load_font("junction 02.ttf", _width/10, 0);
+ if (_panelFont == NULL)
+ {
+ al_show_native_message_box(NULL, "Fatal error", "Fatal error", "The file 'junction 02.ttf' was not found. Ensure that it is located in the working directory.", NULL, ALLEGRO_MESSAGEBOX_ERROR);
+ throw InstallFailure();
+ }
+}
+
+InfoPanel::~InfoPanel()
+{
+ al_destroy_font(_panelFont);
+}
+
+void InfoPanel::draw(const Maze& maze, const list<PlayerCar>& players, const list<EnemyCar>& enemies, const list<Checkpoint>& checkpoints, const list<Rock>& rocks, const list<Smokescreen>& smokescreens, const list<DestroyedObjectPopup>& popups)
+{
+ ALLEGRO_BITMAP* prev_draw = al_get_target_bitmap();
+ al_set_target_bitmap(_back);
+
+ double petrol = 0;
+ if (!players.empty())
+ {
+ petrol = players.front().petrol();
+ }
+
+ al_clear_to_color(_colourStore.getColour(BitmapStore::MAZE_FLOOR));
+
+ //gets a mazeblock width the fits the current maze
+ _miniMazeblockWidth = min(static_cast<float>(_width)/maze.width(), static_cast<float>(_miniMazeHeight)/maze.height());
+
+ //draws petrol heading and bar
+ al_draw_text(_panelFont, al_map_rgb(255,255,255), 1, _petrolHeadingY, ALLEGRO_ALIGN_LEFT , "Petrol");
+ al_draw_filled_rectangle(0,_petrolGuageY,_width*petrol, _petrolGuageY+_petrolGuageHeight, al_map_rgb(255,128,0));
+
+ //draws checkpoints remaining heading and value
+ al_draw_text(_panelFont, al_map_rgb(255,255,255), 1, _checkpointHeadingY, ALLEGRO_ALIGN_LEFT , "Checkpoints");
+ stringstream checkpointCountString;
+ checkpointCountString << Checkpoint::checkpointCount();
+ al_draw_text(_panelFont, al_map_rgb(255,255,255), 1, _checkpointValueY, ALLEGRO_ALIGN_LEFT , checkpointCountString.str().c_str());
+
+ draw(maze);
+ for (list<PlayerCar>::const_iterator iter = players.begin(); iter != players.end(); ++iter)
+ {
+ draw(*iter);
+ }
+ for (list<EnemyCar>::const_iterator iter = enemies.begin(); iter != enemies.end(); ++iter)
+ {
+ draw(*iter);
+ }
+ for (list<Checkpoint>::const_iterator iter = checkpoints.begin(); iter != checkpoints.end(); ++iter)
+ {
+ draw(*iter);
+ }
+
+ //restore draw target
+ al_set_target_bitmap(prev_draw);
+}
+
+void InfoPanel::draw(const Maze& maze)
+{
+ ALLEGRO_COLOR wallColour = _colourStore.getColour(BitmapStore::MAZE_WALL);
+ ALLEGRO_COLOR floorColour = _colourStore.getColour(BitmapStore::MAZE_FLOOR);
+
+ for (int x=0; x<maze.width(); ++x)
+ {
+ for (int y=0; y<maze.height(); ++y)
+ {
+ float x1 = getPanelX(x);
+ float x2 = x1 + _miniMazeblockWidth;
+ float y1 = getPanelY(y) + _miniMazeY;
+ float y2 = y1 + _miniMazeblockWidth;
+ if (maze.getSolid(x,y))
+ {
+ al_draw_filled_rectangle(x1, y1, x2, y2, wallColour);
+ }
+ else
+ {
+ al_draw_filled_rectangle(x1, y1, x2, y2, floorColour);
+ }
+ }
+ }
+}
+
+void InfoPanel::draw(const GameObject& object)
+{
+ float r = _miniMazeblockWidth/2;
+ float cx = getPanelX(object.x()) + r;
+ float cy = getPanelY(object.y()) + _miniMazeY + r;
+ al_draw_filled_circle(cx, cy, r, _colourStore.getColour(object.image()));
+}
+
+float InfoPanel::getPanelX(const double& x) const
+{
+ return static_cast<float>(x*_miniMazeblockWidth);
+}
+float InfoPanel::getPanelY(const double& y) const
+{
+ return static_cast<float>(y*_miniMazeblockWidth);
+}
diff --git a/source/presentation/InfoPanel.h b/source/presentation/InfoPanel.h
new file mode 100644
index 0000000..9af6a70
--- /dev/null
+++ b/source/presentation/InfoPanel.h
@@ -0,0 +1,140 @@
+#ifndef INFOPANEL_H
+#define INFOPANEL_H
+
+#include <allegro5/allegro.h>
+#include <allegro5/allegro_primitives.h>
+
+#include <sstream>
+using namespace std;
+
+#include "../presentation/ScreenPanel.h"
+#include "../presentation/ColourStore.h"
+#include "../logic/Maze.h"
+#include "../logic/GameObject.h"
+#include "../logic/PlayerCar.h"
+#include "../logic/EnemyCar.h"
+#include "../logic/Checkpoint.h"
+#include "../logic/AllegroWrappers.h"
+
+/**
+* @brief ScreenPanel to be drawn on the screen to give the player information.
+*
+* This includes the minimap, a scaled down version of the entire maze that does not scroll, with
+* icons to represent the PlayerCar, EnemyCars, and Checkpoints. Text is drawn to show the player the
+* number of Checkpoints that needed to be collected for victory, and a rectangle is drawn representing
+* the amount of petrol that the PlayerCar has left.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class InfoPanel : public ScreenPanel
+{
+ public:
+ /**
+ * @brief Creates an InfoPanel from the given back and front buffers.
+ *
+ * The sub-bitmaps that InfoPanel uses are created from a rectangular region on back and front
+ * that has its top left corner at the coordinate x,y, is width long in the x direction, and
+ * height long in the y direction.
+ *
+ * @param [in] back The current back buffer of the display being sub-bitmapped.
+ * @param [in] front The current front buffer (image currently being displayed) of the display being sub-bitmapped.
+ * @param [in] x The x coordinate of the left side of the sub-bitmap in pixels.
+ * @param [in] y The x coordinate of the top of the sub-bitmap in pixels.
+ * @param [in] width The length in the x direction of the new sub-bitmap in pixels.
+ * @param [in] height The length in the y direction of the new sub-bitmap in pixels.
+ */
+ InfoPanel(ALLEGRO_BITMAP* back, ALLEGRO_BITMAP* front, int x, int y, int width, int height);
+
+ /**
+ * @brief Destructor that ensured that the font created is destroyed.
+ *
+ * The memory for the sub-bitmaps are handled by the parent class, ScreenPanel.
+ */
+ ~InfoPanel();
+
+ /**
+ * @brief Draws the InfoPanel using the given objects.
+ *
+ * Not all of the provided objects are needed for the drawing process, but they are included
+ * to give the most general drawing case. This is to support polymorphism, where the InfoPanel
+ * can be told to draw its sub-bitmap in the same manner as any other ScreenPanel.
+ *
+ * The scale of the minimap is determined at the beginning of each frame, so that it will
+ * always fit even if the maze is larger than on the last frame.
+ *
+ * @param [in] maze The Maze that all of the objects are in.
+ * @param [in] players The list of PlayerCars to be drawn.
+ * @param [in] enemies The list of EnemyCars to be drawn.
+ * @param [in] checkpoints The list of Checkpoints to be drawn.
+ * @param [in] rocks Rocks are not actually drawn.
+ * @param [in] smokescreens Smokescreens are not actually drawn.
+ * @param [in] popups DestroyedObjectPopups are not actually drawn.
+ */
+ virtual void draw(const Maze& maze, const list<PlayerCar>& players, const list<EnemyCar>& enemies, const list<Checkpoint>& checkpoints, const list<Rock>& rocks, const list<Smokescreen>& smokescreens, const list<DestroyedObjectPopup>& popups);
+ private:
+ /**
+ * @brief Copy constructor not implemented, ScreenPanels should not be copied.
+ */
+ InfoPanel(const InfoPanel& ref);
+ /**
+ * @brief Assignment operator not implemented, ScreenPanels should not be copied.
+ */
+ InfoPanel& operator=(const InfoPanel& rhs);
+ /**
+ * @brief Converts an x game coordinate value to its equivalent in pixels.
+ *
+ * Converting to the pixel coordinates happens for every object every frame. To increase
+ * performance, the parameters are passed in by constant reference instead of by value.
+ *
+ * @param [in] x The game coordinate to be converted into pixels.
+ */
+ float getPanelX(const double& x) const;
+ /**
+ * @brief Converts a y game coordinate value to its equivalent in pixels.
+ *
+ * Converting to the pixel coordinates happens for every object every frame. To increase
+ * performance, the parameters are passed in by constant reference instead of by value.
+ *
+ * @param [in] y The game coordinate to be converted into pixels.
+ */
+ float getPanelY(const double& y) const;
+
+ /**
+ * @brief Draws a Maze on the panel.
+ *
+ * The Maze is constructed of coloured squares. The colour of the squares is retrieved from
+ * the ColourStore.
+ *
+ * Unlike in the GamePanel, the entire Maze is drawn.
+ *
+ * @param [in] maze The Maze to be drawn.
+ */
+ void draw(const Maze& maze);
+
+ /**
+ * @brief Draws a single GameObject on the panel.
+ *
+ * The GameObject is represented by a coloured circle in the Maze. The colour is based on
+ * the GameObject's image and is retrieved from the ColourStore.
+ *
+ * @param [in] object The GameObject to be drawn.
+ */
+ void draw(const GameObject& object);
+
+ AllegroDrawingInit _drawing; ///< Handles dependencies on Allegro's primitive drawing functions.
+ ColourStore _colourStore; ///< Caches colours for drawing.
+
+ float _petrolHeadingY; ///< The y coordinate of the heading for the petrol guage.
+ float _petrolGuageY; ///< The y coordinate of top of the petrol guage.
+ float _petrolGuageHeight; ///< The height of the rectangle that is the petrol guage.
+ float _checkpointHeadingY; ///< The y coordinate of the heading for the number of remaining checkpoints.
+ float _checkpointValueY; ///< The y coordinate of the text stating the number of remaining checkpoints.
+ float _miniMazeY; ///< The y coordinate of the top of the Maze.
+ float _miniMazeHeight; ///< The height of the Maze.
+ float _miniMazeblockWidth; ///< The width of each Maze block being drawn.
+
+ ALLEGRO_FONT* _panelFont; ///< The font being used to write the headings and number of checkpoints remaining.
+};
+
+#endif // INFOPANEL_H
diff --git a/source/presentation/KeyboardHandler.cpp b/source/presentation/KeyboardHandler.cpp
new file mode 100644
index 0000000..b588cbe
--- /dev/null
+++ b/source/presentation/KeyboardHandler.cpp
@@ -0,0 +1,114 @@
+#include "KeyboardHandler.h"
+
+KeyboardHandler::KeyboardHandler(Maze::Direction currentFacing)
+ :_up(false),
+ _down(false),
+ _left(false),
+ _right(false),
+ _smokescreen(false),
+ _previousFacing(currentFacing)
+{
+ _keyboardEvents = al_create_event_queue();
+ al_register_event_source(_keyboardEvents, al_get_keyboard_event_source());
+}
+
+KeyboardHandler::KeyboardHandler(const KeyboardHandler& ref)
+ :_up(ref._up),
+ _down(ref._down),
+ _left(ref._left),
+ _right(ref._right),
+ _smokescreen(ref._smokescreen),
+ _previousFacing(ref._previousFacing)
+{
+ _keyboardEvents = al_create_event_queue();
+ al_register_event_source(_keyboardEvents, al_get_keyboard_event_source());
+}
+
+KeyboardHandler& KeyboardHandler::operator=(const KeyboardHandler& rhs)
+{
+ _up = rhs._up;
+ _down = rhs._down;
+ _left = rhs._left;
+ _right = rhs._right;
+ _smokescreen = rhs._smokescreen;
+ _previousFacing = rhs._previousFacing;
+
+ if (_keyboardEvents!=rhs._keyboardEvents) al_destroy_event_queue(_keyboardEvents);
+
+ _keyboardEvents = al_create_event_queue();
+ al_register_event_source(_keyboardEvents, al_get_keyboard_event_source());
+
+ return *this;
+}
+
+KeyboardHandler::~KeyboardHandler()
+{
+ al_destroy_event_queue(_keyboardEvents);
+}
+
+void KeyboardHandler::updateFlags()
+{
+ ALLEGRO_EVENT event;
+ while (al_get_next_event(_keyboardEvents, &event))
+ {
+ if (event.type==ALLEGRO_EVENT_KEY_DOWN)
+ {
+ switch (event.keyboard.keycode)
+ {
+ case UP_KEY:
+ _up = true;
+ break;
+ case DOWN_KEY:
+ _down = true;
+ break;
+ case LEFT_KEY:
+ _left = true;
+ break;
+ case RIGHT_KEY:
+ _right = true;
+ break;
+ case SMOKESCREEN_KEY:
+ _smokescreen = true;
+ break;
+ }
+ }
+ else if (event.type==ALLEGRO_EVENT_KEY_UP)
+ {
+ switch (event.keyboard.keycode)
+ {
+ case UP_KEY:
+ _up = false;
+ break;
+ case DOWN_KEY:
+ _down = false;
+ break;
+ case LEFT_KEY:
+ _left = false;
+ break;
+ case RIGHT_KEY:
+ _right = false;
+ break;
+ case SMOKESCREEN_KEY:
+ _smokescreen = false;
+ break;
+ }
+ }
+ }
+}
+
+Maze::Direction KeyboardHandler::getFacing()
+{
+ updateFlags();
+
+ if (_up) _previousFacing = Maze::UP;
+ else if (_down) _previousFacing = Maze::DOWN;
+ else if (_left) _previousFacing = Maze::LEFT;
+ else if (_right) _previousFacing = Maze::RIGHT;
+
+ return _previousFacing;
+}
+
+bool KeyboardHandler::getSmokescreen()
+{
+ return _smokescreen;
+}
diff --git a/source/presentation/KeyboardHandler.h b/source/presentation/KeyboardHandler.h
new file mode 100644
index 0000000..00d7821
--- /dev/null
+++ b/source/presentation/KeyboardHandler.h
@@ -0,0 +1,83 @@
+#ifndef KEYBOARDHANDLER_H
+#define KEYBOARDHANDLER_H
+
+#include <allegro5/allegro.h>
+
+#include "../logic/Maze.h"
+#include "../logic/AllegroWrappers.h"
+
+/**
+* @brief Class for handling keyboard related game inputs from the player.
+*
+* Written with controlling a PlayerCar in mind. The handler keeps track of the last direction
+* pushed and responds to requests from the PlayerCar for which direction it should face next,
+* and whether the player is pressing the Smokescreen button.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class KeyboardHandler
+{
+ public:
+ /**
+ * @brief Creates a KeyboardHandler with a given initial state.
+ *
+ * @param [in] currentFacing The initial value for the previous facing of the object being controlled.
+ */
+ KeyboardHandler(Maze::Direction currentFacing);
+ /**
+ * @brief Copy constructor that ensures that a copy of a KeyboardHandler will have its own event queue.
+ */
+ KeyboardHandler(const KeyboardHandler& ref);
+ /**
+ * @brief Assignment operator that ensures that an assigned KeyboardHandler will have its own event queue.
+ */
+ KeyboardHandler& operator=(const KeyboardHandler& rhs);
+ /**
+ * @brief Cleans up the keyboard event queue
+ */
+ ~KeyboardHandler();
+
+ /**
+ * @brief Gives the last direction that the player entered on the keyboard.
+ *
+ * All pending keyboard events are processed, then a key out of those currently depressed is returned.
+ * The precendence for keys held down (up, down, left, then right) is arbitrary, since the player
+ * should not be holding down more than one arrow key at a time.
+ * If no keys are currently depressed, the value returned on the last call is returned again.
+ *
+ * @return The direction that the player has chosen through pressing arrow keys.
+ */
+ Maze::Direction getFacing();
+
+ /**
+ * @brief Gives whether or not the key for creating a Smokescreen is currently pressed.
+ *
+ * @return True if a Smokescreen should be created.
+ */
+ bool getSmokescreen();
+
+ private:
+ AllegroKeyboardInit _keyboard; ///< Ensures that dependencies on the Allegro keyboard library are installed.
+
+ /**
+ * @brief Processes all pending keyboard inputs, and updates flags as appropriate.
+ */
+ void updateFlags();
+
+ bool _up; ///< True if the up arrow key is depressed.
+ bool _down; ///< True if the down arrow key is depressed.
+ bool _left; ///< True if the left arrow key is depressed.
+ bool _right; ///< True if the right arrow key is depressed.
+ bool _smokescreen; ///< True if the smokescreen key is depressed.
+ Maze::Direction _previousFacing; ///< The direction that was returned on the last call of getFacing.
+ ALLEGRO_EVENT_QUEUE* _keyboardEvents; ///< Queue for all keyboard events.
+
+ static const int UP_KEY = ALLEGRO_KEY_UP; ///< Key that must be pressed to turn up.
+ static const int DOWN_KEY = ALLEGRO_KEY_DOWN; ///< Key that must be pressed to turn down.
+ static const int LEFT_KEY = ALLEGRO_KEY_LEFT; ///< Key that must be pressed to turn left.
+ static const int RIGHT_KEY = ALLEGRO_KEY_RIGHT; ///< Key that must be pressed to turn right.
+ static const int SMOKESCREEN_KEY = ALLEGRO_KEY_SPACE; ///< Key that must be pressed to create a smokescreen.
+};
+
+#endif // KEYBOARDHANDLER_H
diff --git a/source/presentation/Screen.cpp b/source/presentation/Screen.cpp
new file mode 100644
index 0000000..0f5ba4c
--- /dev/null
+++ b/source/presentation/Screen.cpp
@@ -0,0 +1,159 @@
+#include "Screen.h"
+
+Screen::Screen(unsigned int screenWidth, unsigned int screenHeight, bool fullscreen)
+ :_exitClicked(false),
+ _screenWidth(screenWidth),
+ _screenHeight(screenHeight),
+ _gameAreaWidth(_screenWidth*0.75),
+ _infoPanelWidth(_screenWidth - _gameAreaWidth)
+{
+ if (fullscreen)
+ {
+ al_set_new_display_flags(ALLEGRO_FULLSCREEN_WINDOW);
+ if (!resolutionSupported())
+ {
+ al_show_native_message_box(NULL, "Fatal error", "Fatal error", "The fullscreen resolution specified in config.txt is not supported by your system. Please open config.txt and change the resolution to a supported resolution, or change fullscreen to false.", NULL, ALLEGRO_MESSAGEBOX_ERROR);
+ throw BadResolution();
+ }
+ }
+ else
+ {
+ al_set_new_display_flags(ALLEGRO_WINDOWED);
+ //need to add error checking for windows that are way too big
+ }
+
+ al_set_new_display_option(ALLEGRO_VSYNC, 1, ALLEGRO_SUGGEST);
+
+ _display = al_create_display(_screenWidth, _screenHeight);
+
+ al_hide_mouse_cursor(_display);
+ _windowEvents = al_create_event_queue();
+ al_register_event_source(_windowEvents, al_get_display_event_source(_display));
+ //used so that ESC can be pressed to exit.
+ al_register_event_source(_windowEvents, al_get_keyboard_event_source());
+
+ _font = al_load_font("junction 02.ttf", _screenWidth/10, 0);
+ if (_font == NULL)
+ {
+ al_show_native_message_box(NULL, "Fatal error", "Fatal error", "The file 'junction 02.ttf' was not found. Ensure that it is located in the working directory.", NULL, ALLEGRO_MESSAGEBOX_ERROR);
+ al_destroy_event_queue(_windowEvents);
+ al_destroy_display(_display);
+ throw InstallFailure();
+ }
+
+ ALLEGRO_BITMAP* front = al_get_backbuffer(_display);
+ al_flip_display();
+ ALLEGRO_BITMAP* back = al_get_backbuffer(_display);
+
+ _panels.push_back(new GamePanel(back, front, 0, 0, _gameAreaWidth, _screenHeight));
+ _panels.push_back(new InfoPanel(back, front, _gameAreaWidth, 0, _infoPanelWidth, _screenHeight));
+}
+
+Screen::~Screen()
+{
+ for (vector<ScreenPanel*>::iterator iter = _panels.begin(); iter!=_panels.end(); ++iter)
+ {
+ delete (*iter);
+ }
+ _panels.clear();
+
+ al_destroy_font(_font);
+ al_destroy_event_queue(_windowEvents);
+ al_destroy_display(_display);
+}
+
+string Screen::getLevel()
+{
+ string result("");
+ ALLEGRO_FILECHOOSER* filechooser = al_create_native_file_dialog(".", "Choose your level", "*.lvl",ALLEGRO_FILECHOOSER_FILE_MUST_EXIST);
+ al_show_native_file_dialog(_display, filechooser);
+ if (al_get_native_file_dialog_count(filechooser)==0)
+ {
+ _exitClicked = true;
+ }
+ else
+ {
+ result = al_get_native_file_dialog_path(filechooser, 0);
+ }
+
+ al_destroy_native_file_dialog(filechooser);
+ return result;
+}
+
+void Screen::draw(const Maze& maze, const list<PlayerCar>& players, const list<EnemyCar>& enemies, const list<Checkpoint>& checkpoints, const list<Rock>& rocks, const list<Smokescreen>& smokescreens, const list<DestroyedObjectPopup>& popups)
+{
+ for (vector<ScreenPanel*>::iterator iter = _panels.begin(); iter!=_panels.end(); ++iter)
+ {
+ (*iter)->draw(maze, players, enemies, checkpoints, rocks, smokescreens, popups);
+ }
+ flip();
+}
+
+void Screen::flip()
+{
+ al_flip_display();
+ for (vector<ScreenPanel*>::iterator iter = _panels.begin(); iter!=_panels.end(); ++iter)
+ {
+ (*iter)->flip();
+ }
+}
+
+void Screen::drawWin()
+{
+ flip();
+
+ ALLEGRO_COLOR transBlack = al_map_rgba(0,0,0,200);
+ al_draw_filled_rectangle(0,0,_screenWidth,_screenHeight, transBlack);
+
+ ALLEGRO_COLOR textColour = al_map_rgb(255,255,255);
+ al_draw_text(_font, textColour, _screenWidth/2, _screenHeight/2, ALLEGRO_ALIGN_CENTRE , "You win!");
+
+ flip();
+}
+
+void Screen::drawLoss()
+{
+ flip();
+
+ ALLEGRO_COLOR transBlack = al_map_rgba(0,0,0,200);
+ al_draw_filled_rectangle(0,0,_screenWidth,_screenHeight, transBlack);
+
+ ALLEGRO_COLOR textColour = al_map_rgb(255,255,255);
+ al_draw_text(_font, textColour, _screenWidth/2, _screenHeight/2, ALLEGRO_ALIGN_CENTRE , "You lose!");
+
+ flip();
+}
+
+bool Screen::exitClicked()
+{
+ if (_exitClicked) return true;
+
+ ALLEGRO_EVENT event;
+ while (al_get_next_event(_windowEvents, &event))
+ {
+ if (event.type==ALLEGRO_EVENT_DISPLAY_CLOSE || (event.type==ALLEGRO_EVENT_KEY_CHAR && event.keyboard.keycode==ALLEGRO_KEY_ESCAPE))
+ {
+ al_flush_event_queue(_windowEvents);
+ _exitClicked = true;
+ return true;
+ }
+ }
+
+ return false;
+}
+
+bool Screen::resolutionSupported()
+{
+ ALLEGRO_DISPLAY_MODE mode;
+ for (int i=0; i<al_get_num_display_modes(); ++i)
+ {
+ al_get_display_mode(i, &mode);
+
+ if (static_cast<unsigned int>(mode.width)==_screenWidth && static_cast<unsigned int>(mode.height)==_screenHeight)
+ {
+ return true;
+ }
+ }
+
+ return false;
+}
diff --git a/source/presentation/Screen.h b/source/presentation/Screen.h
new file mode 100644
index 0000000..16d8cee
--- /dev/null
+++ b/source/presentation/Screen.h
@@ -0,0 +1,159 @@
+#ifndef SCREEN_H
+#define SCREEN_H
+
+#include <list>
+#include <algorithm>
+#include <sstream>
+using namespace std;
+
+#include <allegro5/allegro.h>
+#include <allegro5/allegro_native_dialog.h>
+
+#include "../logic/Maze.h"
+#include "../logic/GameObject.h"
+#include "../logic/PlayerCar.h"
+#include "../logic/EnemyCar.h"
+#include "../logic/Checkpoint.h"
+#include "../logic/Rock.h"
+#include "../logic/Smokescreen.h"
+#include "../logic/DestroyedObjectPopup.h"
+#include "../logic/AllegroWrappers.h"
+
+#include "../presentation/GamePanel.h"
+#include "../presentation/InfoPanel.h"
+
+/**
+* @brief Exception that is thrown if the Config file requests a resolution that can not work.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class BadResolution{};
+
+/**
+* @brief Class for creating a window on the screen.
+*
+* Anything involving drawing on the screen is the responsibility of this class. Most of these
+* responsibilities are outsourced through creating ScreenPanels with more specialised tasks,
+* such as drawing specifically the area where the gameplay takes place (GamePanel) or the
+* providing the player with information (InfoPanel).
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class Screen
+{
+ public:
+ /**
+ * @brief Creates a Screen with the given width and height in pixels, and the given fullscreen setting.
+ *
+ * @param [in] screenWidth The width of the display that will be created in pixels.
+ * @param [in] screenHeight The height of the display that will be created in pixels.
+ * @param [in] fullscreen True if the game should be in fullscreen mode. False otherwise.
+ */
+ Screen(unsigned int screenWidth, unsigned int screenHeight, bool fullscreen);
+
+ /**
+ * @brief Destructor to ensure that the display and any ScreenPanels are destroyed properly.
+ */
+ ~Screen();
+
+ /**
+ * @brief Presents the player with a file dialog, requesting a level file to be selected.
+ *
+ * If the cancel button is clicked, and empty string is returned and exitClicked() will return
+ * true on its next call.
+ *
+ * @return The path of the level file, or an empty string if no file was selected.
+ */
+ string getLevel();
+
+ /**
+ * @brief Draws the given objects on the screen.
+ *
+ * The objects are passed to each of the ScreenPanels in turn, and then the buffers
+ * are flipped.
+ *
+ * @param [in] maze The Maze that all of the objects are in.
+ * @param [in] players The list of PlayerCars to be drawn.
+ * @param [in] enemies The list of EnemyCars to be drawn.
+ * @param [in] checkpoints The list of Checkpoints to be drawn.
+ * @param [in] rocks The list of Rocks to be drawn.
+ * @param [in] smokescreens The list of Smokescreens to be drawn.
+ * @param [in] popups The list of DestroyedObjectPopups to be drawn.
+ */
+ void draw(const Maze& maze, const list<PlayerCar>& players, const list<EnemyCar>& enemies, const list<Checkpoint>& checkpoints, const list<Rock>& rocks, const list<Smokescreen>& smokescreens, const list<DestroyedObjectPopup>& popups);
+
+ /**
+ * @brief Function to find if the player has chosen to exit the game.
+ *
+ * The game can be exited by clicking the x in the corner of the window, pressing the ESC key
+ * during the game, or by clicking 'cancel' on the file selection dialog.
+ *
+ * @return True if the game should be quit.
+ */
+ bool exitClicked();
+
+ /**
+ * @brief Draws a splash screen when the level has been won.
+ */
+ void drawWin();
+ /**
+ * @brief Draws a splash screen when the level has been lost.
+ */
+ void drawLoss();
+
+ private:
+ /**
+ * @brief Unimplemented copy constructor, prevents copying of Screen objects.
+ *
+ * Copying a Screen is unneccesary as there should only be a single Screen object.
+ */
+ Screen(const Screen& ref);
+ /**
+ * @brief Unimplemented assignment operator.
+ *
+ * @see Screen(const Screen& ref)
+ */
+ Screen& operator=(const Screen& rhs);
+
+ /**
+ * @brief Flips the display's buffers, as well as those for all of the ScreenPanels.
+ */
+ void flip();
+
+ /**
+ * @brief Checks the current resolution (_screenWidth and _screenHeight) against the screen's supported resolutions.
+ *
+ * Used to test if a fullscreen mode selection will launch without issue.
+ *
+ * @return True if the current resolution is supported.
+ */
+ bool resolutionSupported();
+
+ AllegroInit _allegro; ///< Ensures that Allegro has been installed, for event queues and creating the display.
+ AllegroKeyboardInit _keyboard; ///< Ensures that the keyboard has been installed, for checking for the ESC key.
+ AllegroDrawingInit _drawing; ///< Ensures that drawing operations have been installed, for drawing splash screens.
+
+ bool _exitClicked; ///< Set to true when the user chooses to quit the game.
+
+ unsigned int _screenWidth; ///< Horizontal number of pixels per row on the screen.
+ unsigned int _screenHeight; ///< Vertical number of pixels per column on the screen.
+
+ unsigned int _gameAreaWidth; ///< Width of the GamePanel created.
+ unsigned int _infoPanelWidth; ///< Width of the InfoPanel created. The InfoPanel is placed directly to the right of the GamePanel.
+
+ ALLEGRO_DISPLAY* _display; ///< The window created on the player's monitor to see the game.
+ ALLEGRO_EVENT_QUEUE* _windowEvents; ///< Events caught by the screen, checked for an exit command.
+ ALLEGRO_FONT* _font; ///< Font used in drawing splash screens.
+
+ /**
+ * @brief Polymorphic container used to encapsulate the different types of drawing to the screen.
+ *
+ * Since the memory of the ScreenPanels in the vector is allocated dynamically, it must be deallocated
+ * in the destructor.
+ */
+ vector<ScreenPanel*> _panels;
+};
+
+#endif // SCREEN_H
diff --git a/source/presentation/ScreenPanel.cpp b/source/presentation/ScreenPanel.cpp
new file mode 100644
index 0000000..db2db69
--- /dev/null
+++ b/source/presentation/ScreenPanel.cpp
@@ -0,0 +1,24 @@
+#include "ScreenPanel.h"
+
+const ALLEGRO_COLOR ScreenPanel::BLANK = al_map_rgb(0,0,0);
+
+ScreenPanel::ScreenPanel(ALLEGRO_BITMAP* back, ALLEGRO_BITMAP* front, int x, int y, int width, int height)
+ :_width(width),
+ _height(height)
+{
+ _back = al_create_sub_bitmap(back, x, y, _width, _height);
+ _front = al_create_sub_bitmap(front, x, y, _width, _height);
+}
+
+ScreenPanel::~ScreenPanel()
+{
+ al_destroy_bitmap(_back);
+ al_destroy_bitmap(_front);
+}
+
+void ScreenPanel::flip()
+{
+ ALLEGRO_BITMAP* temp = _back;
+ _back = _front;
+ _front = temp;
+}
diff --git a/source/presentation/ScreenPanel.h b/source/presentation/ScreenPanel.h
new file mode 100644
index 0000000..13b4978
--- /dev/null
+++ b/source/presentation/ScreenPanel.h
@@ -0,0 +1,98 @@
+#ifndef SCREENPANEL_H
+#define SCREENPANEL_H
+
+#include <allegro5/allegro.h>
+
+#include "../logic/Maze.h"
+#include "../logic/GameObject.h"
+#include "../logic/PlayerCar.h"
+#include "../logic/EnemyCar.h"
+#include "../logic/Checkpoint.h"
+#include "../logic/Rock.h"
+#include "../logic/Smokescreen.h"
+#include "../logic/DestroyedObjectPopup.h"
+#include "../logic/AllegroWrappers.h"
+
+/**
+* @brief Parent class for panels that are drawn on the screen.
+*
+* Panels are given a sub-bitmap of the Screen bitmap, which they draw their panel specific outputs on.
+* The ScreenPanel class is subclassed to give specific drawing functions, like drawing the Maze and
+* GameObjects on the screen.
+*
+* When the object is created, the back bitmap and front bitmap should correspond to the back and front buffers
+* of the display respectively. This should be kept in sync by calling flip every time the display is flipped.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+class ScreenPanel
+{
+ public:
+ /**
+ * @brief Creates a ScreenPanel from the given back and front buffers.
+ *
+ * The sub-bitmaps that ScreenPanel uses are created from a rectangular region on back and front
+ * that has its top left corner at the coordinate x,y, is width long in the x direction, and
+ * height long in the y direction.
+ *
+ * @param [in] back The current back buffer of the display being sub-bitmapped.
+ * @param [in] front The current front buffer (image currently being displayed) of the display being sub-bitmapped.
+ * @param [in] x The x coordinate of the left side of the sub-bitmap in pixels.
+ * @param [in] y The x coordinate of the top of the sub-bitmap in pixels.
+ * @param [in] width The length in the x direction of the new sub-bitmap in pixels.
+ * @param [in] height The length in the y direction of the new sub-bitmap in pixels.
+ */
+ ScreenPanel(ALLEGRO_BITMAP* back, ALLEGRO_BITMAP* front, int x, int y, int width, int height);
+
+ /**
+ * @brief Destructor to ensure that sub-bitmap memory is deallocated.
+ */
+ virtual ~ScreenPanel();
+
+ /**
+ * @brief Pure virtual method for drawing a collection of objects onto the panel.
+ *
+ * Implementations do not need to draw all of the objects if it is not neccesary for the
+ * type of panel, but the interface accepts all of them to be general.
+ *
+ * @param [in] maze The Maze that all of the objects are in.
+ * @param [in] players The list of PlayerCars to be drawn.
+ * @param [in] enemies The list of EnemyCars to be drawn.
+ * @param [in] checkpoints The list of Checkpoints to be drawn.
+ * @param [in] rocks The list of Rocks to be drawn.
+ * @param [in] smokescreens The list of Smokescreens to be drawn.
+ * @param [in] popups The list of DestroyedObjectPopups to be drawn.
+ */
+ virtual void draw(const Maze& maze, const list<PlayerCar>& players, const list<EnemyCar>& enemies, const list<Checkpoint>& checkpoints, const list<Rock>& rocks, const list<Smokescreen>& smokescreens, const list<DestroyedObjectPopup>& popups) = 0;
+
+ /**
+ * @brief Swaps the front and back buffers.
+ *
+ * This function should be called every time the display is flipped.
+ */
+ virtual void flip();
+
+ protected:
+ static const ALLEGRO_COLOR BLANK; ///< Colour used to clear the screen at the beginning of drawing operations.
+
+ ALLEGRO_BITMAP* _back; ///< The back buffer. Only the back buffer can be drawn to.
+
+ int _width; ///< The width of the sub-bitmaps being drawn to in pixels.
+ int _height; ///< The height of the sub-bitmaps being drawn to in pixels.
+ private:
+ /**
+ * @brief Copy constructor not implemented, ScreenPanels should not be copied.
+ */
+ ScreenPanel(const ScreenPanel& ref);
+ /**
+ * @brief Assignment operator not implemented, ScreenPanels should not be copied.
+ */
+ ScreenPanel& operator=(const ScreenPanel& rhs);
+
+ AllegroInit _allegro; ///< Handles dependencies on Allegro being initialised.
+
+ ALLEGRO_BITMAP* _front; ///< The front buffer, that is currently being shown on the screen.
+};
+
+#endif // SCREENPANEL_H
diff --git a/tests/dataTests.cpp b/tests/dataTests.cpp
new file mode 100644
index 0000000..6bf553e
--- /dev/null
+++ b/tests/dataTests.cpp
@@ -0,0 +1,184 @@
+/** @file dataTests.cpp
+* @brief Unit tests for the data layer of a Rally-X game.
+*
+* The functionality of each class in the data layer was tested.
+*
+* The Config class was tested in terms of its ability to read an existing config file,
+* as well as its ability to create a new file with default values, or fill missing parameters
+* with default values.
+*
+* The LevelReader class was tested in the normal case, where a correct level file is given,
+* and in the case where a file that does not exist is given.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+
+#include <cstdio>
+#include <fstream>
+using namespace std;
+
+#include <gtest/gtest.h>
+
+#include "../source/data/Config.h"
+#include "../source/data/LevelReader.h"
+#include "../source/logic/PlayerCar.h"
+#include "../source/logic/EnemyCar.h"
+#include "../source/logic/Checkpoint.h"
+#include "../source/logic/Rock.h"
+#include "../source/logic/Smokescreen.h"
+#include "../source/logic/Maze.h"
+
+/**
+* @brief Tests that a normal complete config file can be read.
+*/
+TEST(Config, readsSettingsCorrectly)
+{
+ string testFilepath = "testConfig.txt";
+ ofstream testFile(testFilepath.c_str());
+
+ testFile << "screen_width=123" << endl;
+ testFile << "screen_height=345" << endl;
+ testFile << "fullscreen=true" << endl;
+
+ testFile.close();
+
+ Config testConfig(testFilepath);
+
+ EXPECT_EQ((unsigned)(123), testConfig.screenWidth());
+ EXPECT_EQ((unsigned)(345), testConfig.screenHeight());
+ EXPECT_TRUE(testConfig.fullscreen());
+
+ remove(testFilepath.c_str());
+}
+
+/**
+* @brief Tests that, if the config file does not exist, it is created with default values.
+*/
+TEST(Config, createsFileIfNeeded)
+{
+ string testFilepath = "testConfig.txt";
+ Config testConfig(testFilepath);
+
+ ifstream testFile(testFilepath.c_str());
+ EXPECT_TRUE(testFile);
+ testFile.close();
+
+ //test for default values
+ EXPECT_EQ((unsigned)(800), testConfig.screenWidth());
+ EXPECT_EQ((unsigned)(600), testConfig.screenHeight());
+ EXPECT_FALSE(testConfig.fullscreen());
+
+ remove(testFilepath.c_str());
+}
+
+/**
+* @brief Tests that an incomplete config file is loaded, with defaults for the missing values.
+*/
+TEST(Config, incompleteFileFilled)
+{
+ string testFilepath = "testConfig.txt";
+ ofstream testFile(testFilepath.c_str());
+
+ testFile << "screen_height=345" << endl;
+
+ testFile.close();
+
+ Config testConfig(testFilepath);
+
+ EXPECT_EQ((unsigned)(800), testConfig.screenWidth());
+ EXPECT_EQ((unsigned)(345), testConfig.screenHeight());
+ EXPECT_FALSE(testConfig.fullscreen());
+
+ remove(testFilepath.c_str());
+}
+
+/**
+* @brief Tests that a level can be loaded correctly from a file.
+*/
+TEST(LevelReader, readsFileInfoObjects)
+{
+ string testFilepath = "testMaze.lvl";
+ ofstream testFile(testFilepath.c_str());
+
+ testFile << " P X " << endl;
+ testFile << " " << endl;
+ testFile << " @ " << endl;
+ testFile << " X" << endl;
+ testFile << "## " << endl;
+ testFile << " P " << endl;
+ testFile << " O " << endl;
+
+ testFile.close();
+
+ LevelReader testReader(testFilepath);
+ Maze maze;
+ list<PlayerCar> players;
+ list<EnemyCar> enemies;
+ list<Checkpoint> checkpoints;
+ list<Rock> rocks;
+ testReader.readLevel(maze, players, enemies, checkpoints, rocks);
+
+ list<PlayerCar> expectedPlayers;
+ list<EnemyCar> expectedEnemies;
+ list<Checkpoint> expectedCheckpoints;
+ list<Rock> expectedRocks;
+
+ expectedPlayers.push_back(PlayerCar(3,2));
+ expectedEnemies.push_back(EnemyCar(3,0));
+ expectedEnemies.push_back(EnemyCar(5,3));
+ expectedCheckpoints.push_back(Checkpoint(2,0));
+ expectedCheckpoints.push_back(Checkpoint(3,5));
+ expectedRocks.push_back(Rock(2,6));
+
+ //eqality operator was not implemented for the GameObject class or its subclasses
+ //because it would not be meaningful. Two objects with the same position, type, and facing
+ //are still two different objects.
+ //iterators were used because the list type does not have an 'at' function.
+ list<PlayerCar>::const_iterator playIter = players.begin();
+ EXPECT_FLOAT_EQ(playIter->x(), 3);
+ EXPECT_FLOAT_EQ(playIter->y(), 2);
+ ++playIter;
+ EXPECT_EQ(playIter, players.end());
+
+ list<EnemyCar>::const_iterator enemyIter = enemies.begin();
+ EXPECT_FLOAT_EQ(enemyIter->x(), 3);
+ EXPECT_FLOAT_EQ(enemyIter->y(), 0);
+ ++enemyIter;
+ EXPECT_FLOAT_EQ(enemyIter->x(), 5);
+ EXPECT_FLOAT_EQ(enemyIter->y(), 3);
+ ++enemyIter;
+ EXPECT_EQ(enemyIter, enemies.end());
+
+ list<Checkpoint>::const_iterator checkIter = checkpoints.begin();
+ EXPECT_FLOAT_EQ(checkIter->x(), 1);
+ EXPECT_FLOAT_EQ(checkIter->y(), 0);
+ ++checkIter;
+ EXPECT_FLOAT_EQ(checkIter->x(), 3);
+ EXPECT_FLOAT_EQ(checkIter->y(), 5);
+ ++checkIter;
+ EXPECT_EQ(checkIter, checkpoints.end());
+
+ list<Rock>::const_iterator rockIter = rocks.begin();
+ EXPECT_FLOAT_EQ(rockIter->x(), 2);
+ EXPECT_FLOAT_EQ(rockIter->y(), 6);
+ ++rockIter;
+ EXPECT_EQ(rockIter, rocks.end());
+
+ remove(testFilepath.c_str());
+}
+
+/**
+* @brief Tests that an exception is throws if the selected file does not exist.
+*/
+TEST(LevelReader, throwsExceptionOnBadFilename)
+{
+ string testFilepath = "testLevel.lvl";
+ LevelReader testReader(testFilepath);
+ Maze maze;
+ list<PlayerCar> players;
+ list<EnemyCar> enemies;
+ list<Checkpoint> checkpoints;
+ list<Rock> rocks;
+ EXPECT_ANY_THROW(testReader.readLevel(maze, players, enemies, checkpoints, rocks));
+}
diff --git a/tests/logicTests.cpp b/tests/logicTests.cpp
new file mode 100644
index 0000000..97d9ed9
--- /dev/null
+++ b/tests/logicTests.cpp
@@ -0,0 +1,685 @@
+/** @file logicTests.cpp
+* @brief Unit tests for the logic layer of a Rally-X game.
+*
+* The classes used to run Allegro's install and uninstall functions were tested indirectly
+* through the use of other classes. If the AllegroWrappers classes are not working, they will
+* result in tests failing, or the program crashing.
+*
+* The Car class's movement is tested through implementing a subclass of Car, PlayerCar, facing
+* in a given direction with and without maze walls in the way, and testing its position after
+* a frame has passed.
+*
+* The counting system with the Checkpoint class is tested through repeated creation and
+* destruction of Checkpoint objects.
+*
+* The CollisionDetecter class is tested by setting up situations with each type of collision,
+* and checking that they have the desired results on the objects involved.
+*
+* The DestroyedObjectPopup class is tested to ensure that it lasts the desired amount of time
+* before being destroyed.
+*
+* The intelligence of the EnemyCar class is not unit tested, as it may change as extra states
+* and AI schemes are implemented, possibly including a random element. Therefore, it should be
+* tested manually by playing example levels and monitoring if the enemies appear to behave in
+* a manner that makes gameplay interesting.
+*
+* The Game class is not tested directly. It pulls all of the units being tested together into
+* a complete game, and so should be tested by running the Game.
+*
+* The GameObject class is tested indirectly through testing its subclasses.
+*
+* The LimitedTimeObject class is tested indirectly through the DestroyedObjectPopup and Smokescreen classes.
+*
+* The Maze class is tested in terms of its ability to construct itself correctly from a list of
+* coordinates. It is also tested with the PlayerCar class where the movement of the PlayerCar is
+* tested in a Maze.
+*
+* The MazeMath class is tested by running each of its functions with expected input and output values.
+*
+* The PlayerCar class is tested on its ability to move correctly as part of the tests for the Car class.
+* The functioning of the PlayerCar's petrol system is also tested. Controlling of the PlayerCar
+* is not tested, and should be tested manually by running the game and verifying that the arrow keys
+* cause the direction of the PlayerCar to change appropriately. Further, the creation of Smokescreens
+* by pressing the spacebar should also be tested manually.
+*
+* The Rock class only has functionality in collisions, and so is tested through the CollisionDetector's
+* tests.
+*
+* The Smokescreen class is tested in that it disappears after a set time. Its affect on the EnemyCar class
+* is tested through the CollisionDetector's tests.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+
+#include <vector>
+#include <list>
+#include <utility>
+using namespace std;
+
+#include <gtest/gtest.h>
+
+#include "../source/logic/CollisionDetector.h"
+#include "../source/logic/PlayerCar.h"
+#include "../source/logic/EnemyCar.h"
+#include "../source/logic/Checkpoint.h"
+#include "../source/logic/Rock.h"
+#include "../source/logic/Smokescreen.h"
+#include "../source/logic/Maze.h"
+#include "../source/logic/MazeMath.h"
+#include "../source/logic/DestroyedObjectPopup.h"
+
+/**
+* @brief Tests that PlayerCar moves the correct amount in the up direction on each frame without obstacles.
+*/
+TEST(Car, updateMovesPlayerUpInEmptyMaze)
+{
+ Maze testMaze;
+ vector<pair<int,int> > walls;
+ testMaze.generateMaze(walls,5,5);
+
+ PlayerCar player(2,2,Maze::UP);
+
+ list<Smokescreen> smokescreens;
+ player.update(testMaze, smokescreens);
+
+ double expectX = 2;
+ double expectY = 2-player.speed();
+ EXPECT_FLOAT_EQ(expectX, player.x());
+ EXPECT_FLOAT_EQ(expectY, player.y());
+}
+
+/**
+* @brief Tests that PlayerCar moves the correct amount in the down direction on each frame without obstacles.
+*/
+TEST(Car, updateMovesPlayerDownInEmptyMaze)
+{
+ Maze testMaze;
+ vector<pair<int,int> > walls;
+ testMaze.generateMaze(walls,5,5);
+
+ PlayerCar player(2,2,Maze::DOWN);
+
+ list<Smokescreen> smokescreens;
+ player.update(testMaze, smokescreens);
+
+ double expectX = 2;
+ double expectY = 2+player.speed();
+ EXPECT_FLOAT_EQ(expectX, player.x());
+ EXPECT_FLOAT_EQ(expectY, player.y());
+}
+
+/**
+* @brief Tests that PlayerCar moves the correct amount in the left direction on each frame without obstacles.
+*/
+TEST(Car, updateMovesPlayerLeftInEmptyMaze)
+{
+ Maze testMaze;
+ vector<pair<int,int> > walls;
+ testMaze.generateMaze(walls,5,5);
+
+ PlayerCar player(2,2,Maze::LEFT);
+
+ list<Smokescreen> smokescreens;
+ player.update(testMaze, smokescreens);
+
+ double expectX = 2-player.speed();
+ double expectY = 2;
+ EXPECT_FLOAT_EQ(expectX, player.x());
+ EXPECT_FLOAT_EQ(expectY, player.y());
+}
+
+/**
+* @brief Tests that PlayerCar moves the correct amount in the right direction on each frame without obstacles.
+*/
+TEST(Car, updateMovesPlayerRightInEmptyMaze)
+{
+ Maze testMaze;
+ vector<pair<int,int> > walls;
+ testMaze.generateMaze(walls,5,5);
+
+ PlayerCar player(2,2,Maze::RIGHT);
+
+ list<Smokescreen> smokescreens;
+ player.update(testMaze, smokescreens);
+
+ double expectX = 2+player.speed();
+ double expectY = 2;
+ EXPECT_FLOAT_EQ(expectX, player.x());
+ EXPECT_FLOAT_EQ(expectY, player.y());
+}
+
+/**
+* @brief Tests that PlayerCar does not move up if the path is blocked.
+*/
+TEST(Car, carNotMovedWhenPathUpBlocked)
+{
+ Maze testMaze;
+ vector<pair<int,int> > walls;
+ walls.push_back(make_pair(3,3));
+ testMaze.generateMaze(walls,5,5);
+
+ PlayerCar player(3,4,Maze::UP);
+
+ list<Smokescreen> smokescreens;
+ player.update(testMaze, smokescreens);
+
+ double expectX = 3;
+ double expectY = 4;
+ EXPECT_FLOAT_EQ(expectX, player.x());
+ EXPECT_FLOAT_EQ(expectY, player.y());
+}
+/**
+* @brief Tests that PlayerCar does not move down if the path is blocked.
+*/
+TEST(Car, carNotMovedWhenPathDownBlocked)
+{
+ Maze testMaze;
+ vector<pair<int,int> > walls;
+ walls.push_back(make_pair(3,3));
+ testMaze.generateMaze(walls,5,5);
+
+ PlayerCar player(3,2,Maze::DOWN);
+
+ list<Smokescreen> smokescreens;
+ player.update(testMaze, smokescreens);
+
+ double expectX = 3;
+ double expectY = 2;
+ EXPECT_FLOAT_EQ(expectX, player.x());
+ EXPECT_FLOAT_EQ(expectY, player.y());
+}
+/**
+* @brief Tests that PlayerCar does not move left if the path is blocked.
+*/
+TEST(Car, carNotMovedWhenPathLeftBlocked)
+{
+ Maze testMaze;
+ vector<pair<int,int> > walls;
+ walls.push_back(make_pair(3,3));
+ testMaze.generateMaze(walls,5,5);
+
+ PlayerCar player(4,3,Maze::LEFT);
+
+ list<Smokescreen> smokescreens;
+ player.update(testMaze, smokescreens);
+
+ double expectX = 4;
+ double expectY = 3;
+ EXPECT_FLOAT_EQ(expectX, player.x());
+ EXPECT_FLOAT_EQ(expectY, player.y());
+}
+/**
+* @brief Tests that PlayerCar does not move right if the path is blocked.
+*/
+TEST(Car, carNotMovedWhenPathRightBlocked)
+{
+ Maze testMaze;
+ vector<pair<int,int> > walls;
+ walls.push_back(make_pair(3,3));
+ testMaze.generateMaze(walls,5,5);
+
+ PlayerCar player(2,3,Maze::RIGHT);
+
+ list<Smokescreen> smokescreens;
+ player.update(testMaze, smokescreens);
+
+ double expectX = 2;
+ double expectY = 3;
+ EXPECT_FLOAT_EQ(expectX, player.x());
+ EXPECT_FLOAT_EQ(expectY, player.y());
+}
+
+/**
+* @brief Tests that PlayerCar does not move up if currently on the top row of the maze.
+*/
+TEST(Car, carDoesNotMoveUpOutMaze)
+{
+ Maze testMaze;
+ vector<pair<int,int> > walls;
+ testMaze.generateMaze(walls,5,5);
+
+ PlayerCar player(3,0,Maze::UP);
+
+ list<Smokescreen> smokescreens;
+ player.update(testMaze, smokescreens);
+
+ double expectX = 3;
+ double expectY = 0;
+ EXPECT_FLOAT_EQ(expectX, player.x());
+ EXPECT_FLOAT_EQ(expectY, player.y());
+}
+/**
+* @brief Tests that PlayerCar does not move down if currently on the bottom row of the maze.
+*/
+TEST(Car, carDoesNotMoveDownOutMaze)
+{
+ Maze testMaze;
+ vector<pair<int,int> > walls;
+ testMaze.generateMaze(walls,5,5);
+
+ PlayerCar player(3,5,Maze::DOWN);
+
+ list<Smokescreen> smokescreens;
+ player.update(testMaze, smokescreens);
+
+ double expectX = 3;
+ double expectY = 5;
+ EXPECT_FLOAT_EQ(expectX, player.x());
+ EXPECT_FLOAT_EQ(expectY, player.y());
+}
+/**
+* @brief Tests that PlayerCar does not move left if currently on the first column of the maze.
+*/
+TEST(Car, carDoesNotMoveLeftOutMaze)
+{
+ Maze testMaze;
+ vector<pair<int,int> > walls;
+ testMaze.generateMaze(walls,5,5);
+
+ PlayerCar player(0,3,Maze::LEFT);
+
+ list<Smokescreen> smokescreens;
+ player.update(testMaze, smokescreens);
+
+ double expectX = 0;
+ double expectY = 3;
+ EXPECT_FLOAT_EQ(expectX, player.x());
+ EXPECT_FLOAT_EQ(expectY, player.y());
+}
+/**
+* @brief Tests that PlayerCar does not move right if currently on the last column of the maze.
+*/
+TEST(Car, carDoesNotMoveRightOutMaze)
+{
+ Maze testMaze;
+ vector<pair<int,int> > walls;
+ testMaze.generateMaze(walls,5,5);
+
+ PlayerCar player(5,3,Maze::RIGHT);
+
+ list<Smokescreen> smokescreens;
+ player.update(testMaze, smokescreens);
+
+ double expectX = 5;
+ double expectY = 3;
+ EXPECT_FLOAT_EQ(expectX, player.x());
+ EXPECT_FLOAT_EQ(expectY, player.y());
+}
+
+/**
+* @brief Tests that counting of the number of checkpoints happens correctly.
+*/
+TEST(Checkpoint, countIncrementsAndDecrements)
+{
+ vector<Checkpoint> checkpoints;
+ EXPECT_EQ(0, Checkpoint::checkpointCount());
+
+ for (int i=0; i<1000; ++i)
+ {
+ checkpoints.push_back(Checkpoint(i,i));
+ }
+ EXPECT_EQ(1000, Checkpoint::checkpointCount());
+
+ //brackets to limit scope
+ {
+ Checkpoint extraCheck1(0,0);
+ Checkpoint extraCheck2 = extraCheck1;
+ EXPECT_EQ(1002, Checkpoint::checkpointCount());
+ extraCheck2 = extraCheck1;
+ EXPECT_EQ(1002, Checkpoint::checkpointCount());
+ }
+ EXPECT_EQ(1000, Checkpoint::checkpointCount());
+
+ while(!checkpoints.empty())
+ {
+ checkpoints.pop_back();
+ }
+ EXPECT_EQ(0, Checkpoint::checkpointCount());
+}
+
+/**
+* @brief Tests that when a player and enemy overlap, both are marked for destruction.
+*/
+TEST(CollisionDetector, playerAndEnemyBothDestroyed)
+{
+ list<PlayerCar> players;
+ list<EnemyCar> enemies;
+ list<Checkpoint> checkpoints;
+ list<Rock> rocks;
+ list<Smokescreen> smokescreens;
+ CollisionDetector detector;
+
+ players.push_back(PlayerCar(5,5));
+ players.push_back(PlayerCar(5,6));
+ players.push_back(PlayerCar(6,5));
+ players.push_back(PlayerCar(7,7.5));
+
+ enemies.push_back(EnemyCar(5,6));
+ enemies.push_back(EnemyCar(4,5));
+ enemies.push_back(EnemyCar(6,6));
+ enemies.push_back(EnemyCar(6.5,8));
+
+ detector.checkCollisions(players, enemies, checkpoints, rocks, smokescreens);
+
+ list<PlayerCar>::const_iterator playerIter = players.begin();
+ EXPECT_FALSE(playerIter->destroyed());
+ ++playerIter;
+ EXPECT_TRUE(playerIter->destroyed());
+ ++playerIter;
+ EXPECT_FALSE(playerIter->destroyed());
+ ++playerIter;
+ EXPECT_TRUE(playerIter->destroyed());
+
+ list<EnemyCar>::const_iterator enemyIter = enemies.begin();
+ EXPECT_TRUE(enemyIter->destroyed());
+ ++enemyIter;
+ EXPECT_FALSE(enemyIter->destroyed());
+ ++enemyIter;
+ EXPECT_FALSE(enemyIter->destroyed());
+ ++enemyIter;
+ EXPECT_TRUE(enemyIter->destroyed());
+}
+
+/**
+* @brief Tests that when a player and rock overlap, only the player is marked for destruction.
+*/
+TEST(CollisionDetector, playerDestroyedByRock)
+{
+ list<PlayerCar> players;
+ list<EnemyCar> enemies;
+ list<Checkpoint> checkpoints;
+ list<Rock> rocks;
+ list<Smokescreen> smokescreens;
+ CollisionDetector detector;
+
+ players.push_back(PlayerCar(5,5));
+ players.push_back(PlayerCar(5,6));
+ players.push_back(PlayerCar(6,5));
+ players.push_back(PlayerCar(7,7.5));
+
+ rocks.push_back(Rock(5,6));
+ rocks.push_back(Rock(4,5));
+ rocks.push_back(Rock(6,6));
+ rocks.push_back(Rock(6.5,8));
+
+ detector.checkCollisions(players, enemies, checkpoints, rocks, smokescreens);
+
+ list<PlayerCar>::const_iterator playerIter = players.begin();
+ EXPECT_FALSE(playerIter->destroyed());
+ ++playerIter;
+ EXPECT_TRUE(playerIter->destroyed());
+ ++playerIter;
+ EXPECT_FALSE(playerIter->destroyed());
+ ++playerIter;
+ EXPECT_TRUE(playerIter->destroyed());
+
+ list<Rock>::const_iterator rockIter = rocks.begin();
+ EXPECT_FALSE(rockIter->destroyed());
+ ++rockIter;
+ EXPECT_FALSE(rockIter->destroyed());
+ ++rockIter;
+ EXPECT_FALSE(rockIter->destroyed());
+ ++rockIter;
+ EXPECT_FALSE(rockIter->destroyed());
+}
+
+/**
+* @brief Tests that when a player and checkpoint overlap, only the checkpoint is marked for destruction.
+*/
+TEST(CollisionDetector, checkpointDestroyedByPlayer)
+{
+ list<PlayerCar> players;
+ list<EnemyCar> enemies;
+ list<Checkpoint> checkpoints;
+ list<Rock> rocks;
+ list<Smokescreen> smokescreens;
+ CollisionDetector detector;
+
+ players.push_back(PlayerCar(5,5));
+ players.push_back(PlayerCar(5,6));
+ players.push_back(PlayerCar(6,5));
+ players.push_back(PlayerCar(7,7.5));
+
+ checkpoints.push_back(Checkpoint(5,6));
+ checkpoints.push_back(Checkpoint(4,5));
+ checkpoints.push_back(Checkpoint(6,6));
+ checkpoints.push_back(Checkpoint(6.5,8));
+
+ detector.checkCollisions(players, enemies, checkpoints, rocks, smokescreens);
+
+ list<PlayerCar>::const_iterator playerIter = players.begin();
+ EXPECT_FALSE(playerIter->destroyed());
+ ++playerIter;
+ EXPECT_FALSE(playerIter->destroyed());
+ ++playerIter;
+ EXPECT_FALSE(playerIter->destroyed());
+ ++playerIter;
+ EXPECT_FALSE(playerIter->destroyed());
+
+ list<Checkpoint>::const_iterator checkpointIter = checkpoints.begin();
+ EXPECT_TRUE(checkpointIter->destroyed());
+ ++checkpointIter;
+ EXPECT_FALSE(checkpointIter->destroyed());
+ ++checkpointIter;
+ EXPECT_FALSE(checkpointIter->destroyed());
+ ++checkpointIter;
+ EXPECT_TRUE(checkpointIter->destroyed());
+}
+
+/**
+* @brief Tests that when an enemy and smokescreen overlap, the enemy's speed becomes zero.
+*/
+TEST(CollisionDetector, enemyStoppedBySmokescreen)
+{
+ list<PlayerCar> players;
+ list<EnemyCar> enemies;
+ list<Checkpoint> checkpoints;
+ list<Rock> rocks;
+ list<Smokescreen> smokescreens;
+ CollisionDetector detector;
+
+ enemies.push_back(EnemyCar(5,5));
+ enemies.push_back(EnemyCar(5,6));
+ enemies.push_back(EnemyCar(6,5));
+ enemies.push_back(EnemyCar(7,7.5));
+
+ smokescreens.push_back(Smokescreen(5,6));
+ smokescreens.push_back(Smokescreen(4,5));
+ smokescreens.push_back(Smokescreen(6,6));
+ smokescreens.push_back(Smokescreen(6.5,8));
+
+ detector.checkCollisions(players, enemies, checkpoints, rocks, smokescreens);
+
+ list<EnemyCar>::const_iterator enemyIter = enemies.begin();
+ EXPECT_GT(enemyIter->speed(),0);
+ ++enemyIter;
+ EXPECT_FLOAT_EQ(0, enemyIter->speed());
+ ++enemyIter;
+ EXPECT_GT(enemyIter->speed(),0);
+ ++enemyIter;
+ EXPECT_FLOAT_EQ(0, enemyIter->speed());
+}
+
+/**
+* @brief Tests that a DestroyedObjectPopup is destroyed 30 frames after it is created.
+*/
+TEST(DestroyedObjectPopup, destroyedAfterSetTime)
+{
+ DestroyedObjectPopup testPopup(3,2,BitmapStore::CRASHED_CAR);
+
+ int i=0;
+ while (!testPopup.destroyed())
+ {
+ testPopup.update();
+ ++i;
+ }
+
+ EXPECT_EQ(30,i);
+}
+
+/**
+* @brief Tests that the maze treats the undefined area outside its bounds as being walls.
+*/
+TEST(Maze, queryOutsideBoundsReturnsSolid)
+{
+ Maze testMaze;
+ vector<pair<int,int> > walls;
+ testMaze.generateMaze(walls,5,5);
+
+ EXPECT_FALSE(testMaze.getSolid(5,5));
+ EXPECT_FALSE(testMaze.getSolid(0,0));
+ EXPECT_TRUE(testMaze.getSolid(6,5));
+ EXPECT_TRUE(testMaze.getSolid(5,6));
+ EXPECT_TRUE(testMaze.getSolid(-1,3));
+ EXPECT_TRUE(testMaze.getSolid(3,-1));
+}
+
+/**
+* @brief Tests that a maze can be generated without extending the width and height for objects.
+*/
+TEST(Maze, generationWithWallsWithoutObjectMax)
+{
+ Maze testMaze;
+ vector<pair<int,int> > walls;
+ walls.push_back(make_pair(1,2));
+ walls.push_back(make_pair(4,3));
+ testMaze.generateMaze(walls);
+
+ //test random empty blocks
+ EXPECT_FALSE(testMaze.getSolid(2,1));
+ EXPECT_FALSE(testMaze.getSolid(0,0));
+
+ //test wall blocks
+ EXPECT_TRUE(testMaze.getSolid(1,2));
+ EXPECT_TRUE(testMaze.getSolid(4,3));
+
+ //test bounds are being set right
+ EXPECT_TRUE(testMaze.getSolid(4,4));
+ EXPECT_TRUE(testMaze.getSolid(5,3));
+}
+
+/**
+* @brief Tests that a maze can be generated with extending the width and height for objects.
+*/
+TEST(Maze, generationWithWallsWithObjectMax)
+{
+ Maze testMaze;
+ vector<pair<int,int> > walls;
+ walls.push_back(make_pair(1,2));
+ walls.push_back(make_pair(4,3));
+ testMaze.generateMaze(walls,5,6);
+
+ //test random empty blocks
+ EXPECT_FALSE(testMaze.getSolid(2,1));
+ EXPECT_FALSE(testMaze.getSolid(0,0));
+
+ //test wall blocks
+ EXPECT_TRUE(testMaze.getSolid(1,2));
+ EXPECT_TRUE(testMaze.getSolid(4,3));
+
+ //test bounds are being set right
+ EXPECT_FALSE(testMaze.getSolid(4,4));
+ EXPECT_FALSE(testMaze.getSolid(5,6));
+ EXPECT_TRUE(testMaze.getSolid(6,6));
+ EXPECT_TRUE(testMaze.getSolid(5,7));
+}
+
+/**
+* @brief Tests that the formula for a straight line distance works as expected.
+*/
+TEST(MazeMath, distanceGivesExpectedResult)
+{
+ //right angle triange with sides of length 3, 4, and 5
+ double x1 = 1;
+ double y1 = 1;
+ double x2 = 4;
+ double y2 = 5;
+
+ double expectedResult = 5;
+
+ EXPECT_DOUBLE_EQ(expectedResult, MazeMath::distance(x1,y1,x2,y2));
+}
+
+/**
+* @brief Tests that rounding off function works as expected.
+*/
+TEST(MazeMath, roundGivesExpectedResult)
+{
+ //right angle triange with sides of length 3, 4, and 5
+ double roundUp = 5.5;
+ double roundDown = 5.49;
+
+ double expectUp = 6;
+ double expectDown = 5;
+
+ EXPECT_DOUBLE_EQ(expectUp, MazeMath::round(roundUp));
+ EXPECT_DOUBLE_EQ(expectDown, MazeMath::round(roundDown));
+}
+
+/**
+* @brief Tests that a PlayerCar can be created and destroyed repeatedly without incident.
+*
+* This tests that the PlayerCar can handle its own dependencies on Allegro, even when
+* copy constructors are used (through vector).
+*/
+TEST(PlayerCar, creationAndDestructionCanHappen)
+{
+ EXPECT_NO_THROW({
+ vector<PlayerCar> players;
+ for (int i=0; i<10; ++i)
+ {
+ players.push_back(PlayerCar(i,i));
+ }
+ while(!players.empty())
+ {
+ players.pop_back();
+ }
+ });
+
+ EXPECT_FALSE(al_is_system_installed());
+}
+
+/**
+* @brief Tests that the player's petrol runs out, and that the player's speed is halved after that.
+*
+* Also tests that the speed is recovered if petrol is increased again.
+*/
+TEST(PlayerCar, playerSpeedAffectedByPetrol)
+{
+ Maze testMaze;
+ vector<pair<int,int> > walls;
+ testMaze.generateMaze(walls,5,5);
+
+ PlayerCar player(5,3,Maze::RIGHT);
+
+ list<Smokescreen> smokescreens;
+ for (int i=0; i<1429; ++i)
+ {
+ player.update(testMaze, smokescreens);
+ }
+
+ EXPECT_FLOAT_EQ(0, player.petrol());
+ EXPECT_FLOAT_EQ(0.05, player.speed());
+
+ player.gotCheckpoint();
+ EXPECT_GT(player.petrol(), 0);
+ EXPECT_FLOAT_EQ(0.1, player.speed());
+}
+
+/**
+* @brief Tests that a Smokescreen is destroyed 60 frames after it is created.
+*/
+TEST(Smokescreen, destroyedAfterSetTime)
+{
+ Smokescreen testSmokescreen(3,2);
+
+ int i=0;
+ while (!testSmokescreen.destroyed())
+ {
+ testSmokescreen.update();
+ ++i;
+ }
+
+ EXPECT_EQ(60,i);
+}
diff --git a/tests/presentationTests.cpp b/tests/presentationTests.cpp
new file mode 100644
index 0000000..d07ac99
--- /dev/null
+++ b/tests/presentationTests.cpp
@@ -0,0 +1,248 @@
+/** @file presentationTests.cpp
+* @brief Unit tests for the presentation layer of a Rally-X game.
+*
+* The BitmapStore class is tested in its ability to return a bitmap for
+* each image. The appearance of the bitmaps need to be tested manually
+* by running the game and inspecting the various objects.
+*
+* The ColourStore class is tested in its ability to return a colour for
+* each image. The appearance of the colours need to be tested manually
+* by running the game and inspecting the various objects.
+*
+* The GamePanel and InfoPanel classes depend on their visual appearance in
+* the game. Therefore, they should be tested manually. The technical part
+* of their functionality, creating the back and front buffers and changing
+* between them, is handled by their superclass, ScreenPanel.
+*
+* The KeyboardHandler depends on user inputs. It should be tested manually
+* by testing that the player's direction can be controlled, and that smokescreens
+* can be created.
+*
+* The Screen class's creation with various resolutions and fullscreen settings is
+* tested. An exception should be thrown if the fullscreen resolution is not supported
+* by the current hardware, but not otherwise. The visual appearance and creation of
+* ScreenPanels should be tested manually by running the game.
+*
+* The ScreenPanel class is tested by creating a false back and front display buffer. The buffer
+* that is being drawn to is tested by sampling a pixel in the middle of the buffer.
+*
+* @author Justin Wernick
+* @author David Schneider
+*/
+
+#include <utility>
+#include <list>
+using namespace std;
+
+#include <gtest/gtest.h>
+
+#include "../source/presentation/BitmapStore.h"
+#include "../source/presentation/ColourStore.h"
+#include "../source/presentation/GamePanel.h"
+#include "../source/presentation/Screen.h"
+
+#include "../source/logic/PlayerCar.h"
+#include "../source/logic/EnemyCar.h"
+#include "../source/logic/Checkpoint.h"
+#include "../source/logic/Rock.h"
+#include "../source/logic/Smokescreen.h"
+#include "../source/logic/Maze.h"
+#include "../source/logic/DestroyedObjectPopup.h"
+
+/**
+* @brief Tests that all images can be requested without failure occuring.
+*/
+TEST(BitmapStore, returnsBitmapForAllImages)
+{
+ BitmapStore testStore(50);
+
+ ALLEGRO_BITMAP* testBitmap = NULL;
+
+ EXPECT_NO_FATAL_FAILURE(testBitmap = testStore.getBitmap(BitmapStore::PLAYER));
+ EXPECT_NO_FATAL_FAILURE(testBitmap = testStore.getBitmap(BitmapStore::ENEMY));
+ EXPECT_NO_FATAL_FAILURE(testBitmap = testStore.getBitmap(BitmapStore::CHECKPOINT));
+ EXPECT_NO_FATAL_FAILURE(testBitmap = testStore.getBitmap(BitmapStore::ROCK));
+ EXPECT_NO_FATAL_FAILURE(testBitmap = testStore.getBitmap(BitmapStore::MAZE_WALL));
+ EXPECT_NO_FATAL_FAILURE(testBitmap = testStore.getBitmap(BitmapStore::MAZE_FLOOR));
+ EXPECT_NO_FATAL_FAILURE(testBitmap = testStore.getBitmap(BitmapStore::SMOKE));
+ EXPECT_NO_FATAL_FAILURE(testBitmap = testStore.getBitmap(BitmapStore::CRASHED_CAR));
+ EXPECT_NO_FATAL_FAILURE(testBitmap = testStore.getBitmap(BitmapStore::CLAIMED_CHECKPOINT));
+}
+
+/**
+* @brief Tests that all colours can be requested without failure occuring.
+*/
+TEST(ColourStore, returnsColourForAllImages)
+{
+ ColourStore testStore;
+
+ ALLEGRO_COLOR testColour;
+
+ EXPECT_NO_FATAL_FAILURE(testColour = testStore.getColour(BitmapStore::PLAYER));
+ EXPECT_NO_FATAL_FAILURE(testColour = testStore.getColour(BitmapStore::ENEMY));
+ EXPECT_NO_FATAL_FAILURE(testColour = testStore.getColour(BitmapStore::CHECKPOINT));
+ EXPECT_NO_FATAL_FAILURE(testColour = testStore.getColour(BitmapStore::ROCK));
+ EXPECT_NO_FATAL_FAILURE(testColour = testStore.getColour(BitmapStore::MAZE_WALL));
+ EXPECT_NO_FATAL_FAILURE(testColour = testStore.getColour(BitmapStore::MAZE_FLOOR));
+ EXPECT_NO_FATAL_FAILURE(testColour = testStore.getColour(BitmapStore::SMOKE));
+ EXPECT_NO_FATAL_FAILURE(testColour = testStore.getColour(BitmapStore::CRASHED_CAR));
+ EXPECT_NO_FATAL_FAILURE(testColour = testStore.getColour(BitmapStore::CLAIMED_CHECKPOINT));
+}
+
+/**
+* Tests that an exception is thrown if fullscreen mode is requested on an unsupported monitor resolution.
+*/
+TEST(Screen, exceptionOnBadResolution)
+{
+ //resolution should be unsupported on most displays
+ int badWidth = 1000;
+ int badHeight = 5;
+
+ EXPECT_ANY_THROW(Screen(badWidth, badHeight, true));
+}
+/**
+* Tests that an exception is not thrown if windowed mode is requested on an unsupported monitor resolution.
+*/
+TEST(Screen, noExceptionOnWindowed)
+{
+ int badWidth = 1000;
+ int badHeight = 5;
+
+ EXPECT_NO_THROW(Screen(badWidth, badHeight, false));
+
+}
+/**
+* Tests that an exception is not thrown if fullscreen mode is requested on a supported monitor resolution.
+*/
+TEST(Screen, noExceptionOnGoodResolution)
+{
+ //resolution should be supported on most monitors
+ int goodWidth = 800;
+ int goodHeight = 600;
+
+ EXPECT_NO_THROW(Screen(goodWidth, goodHeight, true));
+}
+
+/**
+* @brief Tests that when a ScreenPanel draws to the back buffer provided.
+*/
+TEST(ScreenPanel, drawingToCurrentBackBuffer)
+{
+ al_init();
+
+ ALLEGRO_BITMAP* testBitmapBack = al_create_bitmap(500,500);
+ ALLEGRO_BITMAP* testBitmapFront = al_create_bitmap(500,500);
+
+ ALLEGRO_COLOR blankColour = al_map_rgb(0,0,0);
+ al_set_target_bitmap(testBitmapBack);
+ al_clear_to_color(blankColour);
+ al_set_target_bitmap(testBitmapFront);
+ al_clear_to_color(blankColour);
+
+ GamePanel testPanel(testBitmapBack, testBitmapFront, 0, 0, 500, 500);
+ Maze testMaze;
+
+ vector<pair<int,int> > wallsFull;
+
+ for (int x=0; x<20; ++x)
+ {
+ for (int y=0; y<20; ++y)
+ {
+ wallsFull.push_back(make_pair(x,y));
+ }
+ }
+ testMaze.generateMaze(wallsFull,20,20);
+
+ list<PlayerCar> players;
+ list<EnemyCar> enemies;
+ list<Checkpoint> checkpoints;
+ list<Rock> rocks;
+ list<Smokescreen> smokescreens;
+ list<DestroyedObjectPopup> popups;
+
+ testPanel.draw(testMaze, players, enemies, checkpoints, rocks, smokescreens, popups);
+
+ BitmapStore bitmapStore(50);
+ ALLEGRO_BITMAP* wall = bitmapStore.getBitmap(BitmapStore::MAZE_WALL);
+ ALLEGRO_COLOR mazeColour = al_get_pixel(wall, 25, 25);
+
+ ALLEGRO_COLOR backSample = al_get_pixel(testBitmapBack, 250, 250);
+ ALLEGRO_COLOR frontSample = al_get_pixel(testBitmapFront, 250, 250);
+
+ EXPECT_FLOAT_EQ(mazeColour.r, backSample.r);
+ EXPECT_FLOAT_EQ(mazeColour.g, backSample.g);
+ EXPECT_FLOAT_EQ(mazeColour.b, backSample.b);
+ EXPECT_FLOAT_EQ(mazeColour.a, backSample.a);
+
+ EXPECT_FLOAT_EQ(blankColour.r, frontSample.r);
+ EXPECT_FLOAT_EQ(blankColour.g, frontSample.g);
+ EXPECT_FLOAT_EQ(blankColour.b, frontSample.b);
+ EXPECT_FLOAT_EQ(blankColour.a, frontSample.a);
+
+ al_destroy_bitmap(testBitmapBack);
+ al_destroy_bitmap(testBitmapFront);
+}
+
+/**
+* @brief Tests that when a ScreenPanel draws to the front buffer provided after a flip has been called.
+*/
+TEST(ScreenPanel, drawingToCurrentBackBufferAfterFlip)
+{
+ al_init();
+
+ al_set_new_bitmap_flags(ALLEGRO_MEMORY_BITMAP); //removes dependency on display existing
+
+ ALLEGRO_BITMAP* testBitmapBack = al_create_bitmap(500,500);
+ ALLEGRO_BITMAP* testBitmapFront = al_create_bitmap(500,500);
+
+ ALLEGRO_COLOR blankColour = al_map_rgb(0,0,0);
+ al_set_target_bitmap(testBitmapBack);
+ al_clear_to_color(blankColour);
+ al_set_target_bitmap(testBitmapFront);
+ al_clear_to_color(blankColour);
+
+ GamePanel testPanel(testBitmapBack, testBitmapFront, 0, 0, 500, 500);
+ Maze testMaze;
+
+ vector<pair<int,int> > wallsFull;
+
+ for (int x=0; x<20; ++x)
+ {
+ for (int y=0; y<20; ++y)
+ {
+ wallsFull.push_back(make_pair(x,y));
+ }
+ }
+ testMaze.generateMaze(wallsFull,20,20);
+
+ list<PlayerCar> players;
+ list<EnemyCar> enemies;
+ list<Checkpoint> checkpoints;
+ list<Rock> rocks;
+ list<Smokescreen> smokescreens;
+ list<DestroyedObjectPopup> popups;
+
+ testPanel.flip();
+
+ testPanel.draw(testMaze, players, enemies, checkpoints, rocks, smokescreens, popups);
+
+ BitmapStore bitmapStore(50);
+ ALLEGRO_BITMAP* wall = bitmapStore.getBitmap(BitmapStore::MAZE_WALL);
+ ALLEGRO_COLOR mazeColour = al_get_pixel(wall, 25, 25);
+
+ ALLEGRO_COLOR backSample = al_get_pixel(testBitmapBack, 250, 250);
+ ALLEGRO_COLOR frontSample = al_get_pixel(testBitmapFront, 250, 250);
+
+ EXPECT_FLOAT_EQ(mazeColour.r, frontSample.r);
+ EXPECT_FLOAT_EQ(mazeColour.g, frontSample.g);
+ EXPECT_FLOAT_EQ(mazeColour.b, frontSample.b);
+ EXPECT_FLOAT_EQ(mazeColour.a, frontSample.a);
+
+ EXPECT_FLOAT_EQ(blankColour.r, backSample.r);
+ EXPECT_FLOAT_EQ(blankColour.g, backSample.g);
+ EXPECT_FLOAT_EQ(blankColour.b, backSample.b);
+ EXPECT_FLOAT_EQ(blankColour.a, backSample.a);
+
+ al_destroy_bitmap(testBitmapBack);
+ al_destroy_bitmap(testBitmapFront);
+}