aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/titanic/carry/arm.cpp75
-rw-r--r--engines/titanic/carry/arm.h63
-rw-r--r--engines/titanic/carry/auditory_centre.cpp37
-rw-r--r--engines/titanic/carry/auditory_centre.h47
-rw-r--r--engines/titanic/carry/bowl_ear.cpp37
-rw-r--r--engines/titanic/carry/bowl_ear.h47
-rw-r--r--engines/titanic/carry/brain.cpp48
-rw-r--r--engines/titanic/carry/brain.h52
-rw-r--r--engines/titanic/carry/bridge_piece.cpp48
-rw-r--r--engines/titanic/carry/bridge_piece.h52
-rw-r--r--engines/titanic/carry/carry.cpp80
-rw-r--r--engines/titanic/carry/carry.h66
-rw-r--r--engines/titanic/carry/carry_parrot.cpp52
-rw-r--r--engines/titanic/carry/carry_parrot.h57
-rw-r--r--engines/titanic/carry/central_core.cpp37
-rw-r--r--engines/titanic/carry/central_core.h47
-rw-r--r--engines/titanic/carry/chicken.cpp55
-rw-r--r--engines/titanic/carry/chicken.h55
-rw-r--r--engines/titanic/carry/crushed_tv.cpp40
-rw-r--r--engines/titanic/carry/crushed_tv.h48
-rw-r--r--engines/titanic/carry/ear.cpp40
-rw-r--r--engines/titanic/carry/ear.h48
-rw-r--r--engines/titanic/carry/eye.cpp42
-rw-r--r--engines/titanic/carry/eye.h50
-rw-r--r--engines/titanic/carry/feathers.cpp40
-rw-r--r--engines/titanic/carry/feathers.h48
-rw-r--r--engines/titanic/carry/fruit.cpp51
-rw-r--r--engines/titanic/carry/fruit.h53
-rw-r--r--engines/titanic/carry/glass.cpp42
-rw-r--r--engines/titanic/carry/glass.h50
-rw-r--r--engines/titanic/carry/hammer.cpp40
-rw-r--r--engines/titanic/carry/hammer.h48
-rw-r--r--engines/titanic/carry/head_piece.cpp49
-rw-r--r--engines/titanic/carry/head_piece.h52
-rw-r--r--engines/titanic/carry/hose.cpp57
-rw-r--r--engines/titanic/carry/hose.h59
-rw-r--r--engines/titanic/carry/hose_end.cpp43
-rw-r--r--engines/titanic/carry/hose_end.h48
-rw-r--r--engines/titanic/carry/key.cpp40
-rw-r--r--engines/titanic/carry/key.h48
-rw-r--r--engines/titanic/carry/liftbot_head.cpp42
-rw-r--r--engines/titanic/carry/liftbot_head.h50
-rw-r--r--engines/titanic/carry/long_stick.cpp40
-rw-r--r--engines/titanic/carry/long_stick.h48
-rw-r--r--engines/titanic/carry/magazine.cpp46
-rw-r--r--engines/titanic/carry/magazine.h51
-rw-r--r--engines/titanic/carry/maitred_left_arm.cpp39
-rw-r--r--engines/titanic/carry/maitred_left_arm.h50
-rw-r--r--engines/titanic/carry/maitred_right_arm.cpp37
-rw-r--r--engines/titanic/carry/maitred_right_arm.h47
-rw-r--r--engines/titanic/carry/mouth.cpp40
-rw-r--r--engines/titanic/carry/mouth.h48
-rw-r--r--engines/titanic/carry/napkin.cpp40
-rw-r--r--engines/titanic/carry/napkin.h48
-rw-r--r--engines/titanic/carry/nose.cpp40
-rw-r--r--engines/titanic/carry/nose.h48
-rw-r--r--engines/titanic/carry/note.cpp46
-rw-r--r--engines/titanic/carry/note.h51
-rw-r--r--engines/titanic/carry/parcel.cpp40
-rw-r--r--engines/titanic/carry/parcel.h48
-rw-r--r--engines/titanic/carry/perch.cpp37
-rw-r--r--engines/titanic/carry/perch.h47
-rw-r--r--engines/titanic/carry/phonograph_cylinder.cpp89
-rw-r--r--engines/titanic/carry/phonograph_cylinder.h70
-rw-r--r--engines/titanic/carry/phonograph_ear.cpp39
-rw-r--r--engines/titanic/carry/phonograph_ear.h50
-rw-r--r--engines/titanic/carry/photograph.cpp50
-rw-r--r--engines/titanic/carry/photograph.h53
-rw-r--r--engines/titanic/carry/plug_in.cpp40
-rw-r--r--engines/titanic/carry/plug_in.h50
-rw-r--r--engines/titanic/carry/speech_centre.cpp45
-rw-r--r--engines/titanic/carry/speech_centre.h53
-rw-r--r--engines/titanic/carry/sweets.cpp40
-rw-r--r--engines/titanic/carry/sweets.h48
-rw-r--r--engines/titanic/carry/test_carry.cpp43
-rw-r--r--engines/titanic/carry/test_carry.h50
-rw-r--r--engines/titanic/carry/vision_centre.cpp37
-rw-r--r--engines/titanic/carry/vision_centre.h47
-rw-r--r--engines/titanic/configure.engine3
-rw-r--r--engines/titanic/core/background.cpp52
-rw-r--r--engines/titanic/core/background.h54
-rw-r--r--engines/titanic/core/click_responder.cpp43
-rw-r--r--engines/titanic/core/click_responder.h49
-rw-r--r--engines/titanic/core/dont_save_file_item.cpp35
-rw-r--r--engines/titanic/core/dont_save_file_item.h47
-rw-r--r--engines/titanic/core/drop_target.cpp72
-rw-r--r--engines/titanic/core/drop_target.h63
-rw-r--r--engines/titanic/core/file_item.cpp47
-rw-r--r--engines/titanic/core/file_item.h66
-rw-r--r--engines/titanic/core/game_object.cpp130
-rw-r--r--engines/titanic/core/game_object.h83
-rw-r--r--engines/titanic/core/game_object_desc_item.cpp57
-rw-r--r--engines/titanic/core/game_object_desc_item.h56
-rw-r--r--engines/titanic/core/link_item.cpp137
-rw-r--r--engines/titanic/core/link_item.h93
-rw-r--r--engines/titanic/core/list.cpp35
-rw-r--r--engines/titanic/core/list.h152
-rw-r--r--engines/titanic/core/message_target.cpp37
-rw-r--r--engines/titanic/core/message_target.h48
-rw-r--r--engines/titanic/core/movie_clip.cpp79
-rw-r--r--engines/titanic/core/movie_clip.h71
-rw-r--r--engines/titanic/core/multi_drop_target.cpp43
-rw-r--r--engines/titanic/core/multi_drop_target.h51
-rw-r--r--engines/titanic/core/named_item.cpp90
-rw-r--r--engines/titanic/core/named_item.h83
-rw-r--r--engines/titanic/core/node_item.cpp54
-rw-r--r--engines/titanic/core/node_item.h53
-rw-r--r--engines/titanic/core/project_item.cpp414
-rw-r--r--engines/titanic/core/project_item.h202
-rw-r--r--engines/titanic/core/resource_key.cpp89
-rw-r--r--engines/titanic/core/resource_key.h79
-rw-r--r--engines/titanic/core/room_item.cpp106
-rw-r--r--engines/titanic/core/room_item.h66
-rw-r--r--engines/titanic/core/saveable_object.cpp1620
-rw-r--r--engines/titanic/core/saveable_object.h110
-rw-r--r--engines/titanic/core/static_image.cpp37
-rw-r--r--engines/titanic/core/static_image.h47
-rw-r--r--engines/titanic/core/tree_item.cpp258
-rw-r--r--engines/titanic/core/tree_item.h221
-rw-r--r--engines/titanic/core/turn_on_object.cpp44
-rw-r--r--engines/titanic/core/turn_on_object.h50
-rw-r--r--engines/titanic/core/turn_on_play_sound.cpp49
-rw-r--r--engines/titanic/core/turn_on_play_sound.h52
-rw-r--r--engines/titanic/core/turn_on_turn_off.cpp53
-rw-r--r--engines/titanic/core/turn_on_turn_off.h54
-rw-r--r--engines/titanic/core/view_item.cpp246
-rw-r--r--engines/titanic/core/view_item.h94
-rw-r--r--engines/titanic/debugger.cpp177
-rw-r--r--engines/titanic/debugger.h91
-rw-r--r--engines/titanic/detection.cpp129
-rw-r--r--engines/titanic/detection_tables.h41
-rw-r--r--engines/titanic/direct_draw.cpp140
-rw-r--r--engines/titanic/direct_draw.h138
-rw-r--r--engines/titanic/events.cpp208
-rw-r--r--engines/titanic/events.h105
-rw-r--r--engines/titanic/files_manager.cpp84
-rw-r--r--engines/titanic/files_manager.h83
-rw-r--r--engines/titanic/font.cpp34
-rw-r--r--engines/titanic/font.h40
-rw-r--r--engines/titanic/game/announce.cpp50
-rw-r--r--engines/titanic/game/announce.h53
-rw-r--r--engines/titanic/game/annoy_barbot.cpp41
-rw-r--r--engines/titanic/game/annoy_barbot.h49
-rw-r--r--engines/titanic/game/arb_background.cpp51
-rw-r--r--engines/titanic/game/arb_background.h53
-rw-r--r--engines/titanic/game/arboretum_gate.cpp149
-rw-r--r--engines/titanic/game/arboretum_gate.h96
-rw-r--r--engines/titanic/game/auto_animate.cpp48
-rw-r--r--engines/titanic/game/auto_animate.h55
-rw-r--r--engines/titanic/game/bar_bell.cpp58
-rw-r--r--engines/titanic/game/bar_bell.h57
-rw-r--r--engines/titanic/game/bar_menu.cpp48
-rw-r--r--engines/titanic/game/bar_menu.h52
-rw-r--r--engines/titanic/game/bar_menu_button.cpp39
-rw-r--r--engines/titanic/game/bar_menu_button.h50
-rw-r--r--engines/titanic/game/belbot_get_light.cpp39
-rw-r--r--engines/titanic/game/belbot_get_light.h49
-rw-r--r--engines/titanic/game/bilge_succubus.cpp51
-rw-r--r--engines/titanic/game/bilge_succubus.h53
-rw-r--r--engines/titanic/game/bomb.cpp81
-rw-r--r--engines/titanic/game/bomb.h62
-rw-r--r--engines/titanic/game/bottom_of_well_monitor.cpp46
-rw-r--r--engines/titanic/game/bottom_of_well_monitor.h51
-rw-r--r--engines/titanic/game/bowl_unlocker.cpp39
-rw-r--r--engines/titanic/game/bowl_unlocker.h50
-rw-r--r--engines/titanic/game/brain_slot.cpp50
-rw-r--r--engines/titanic/game/brain_slot.h53
-rw-r--r--engines/titanic/game/bridge_door.cpp37
-rw-r--r--engines/titanic/game/bridge_door.h47
-rw-r--r--engines/titanic/game/bridge_view.cpp39
-rw-r--r--engines/titanic/game/bridge_view.h50
-rw-r--r--engines/titanic/game/broken_pell_base.cpp46
-rw-r--r--engines/titanic/game/broken_pell_base.h53
-rw-r--r--engines/titanic/game/broken_pellerator.cpp47
-rw-r--r--engines/titanic/game/broken_pellerator.h52
-rw-r--r--engines/titanic/game/broken_pellerator_froz.cpp47
-rw-r--r--engines/titanic/game/broken_pellerator_froz.h52
-rw-r--r--engines/titanic/game/cage.cpp46
-rw-r--r--engines/titanic/game/cage.h50
-rw-r--r--engines/titanic/game/call_pellerator.cpp37
-rw-r--r--engines/titanic/game/call_pellerator.h47
-rw-r--r--engines/titanic/game/captains_wheel.cpp56
-rw-r--r--engines/titanic/game/captains_wheel.h55
-rw-r--r--engines/titanic/game/cdrom.cpp42
-rw-r--r--engines/titanic/game/cdrom.h50
-rw-r--r--engines/titanic/game/cdrom_computer.cpp51
-rw-r--r--engines/titanic/game/cdrom_computer.h53
-rw-r--r--engines/titanic/game/cdrom_tray.cpp46
-rw-r--r--engines/titanic/game/cdrom_tray.h51
-rw-r--r--engines/titanic/game/cell_point_button.cpp79
-rw-r--r--engines/titanic/game/cell_point_button.h62
-rw-r--r--engines/titanic/game/chev_code.cpp39
-rw-r--r--engines/titanic/game/chev_code.h50
-rw-r--r--engines/titanic/game/chev_panel.cpp45
-rw-r--r--engines/titanic/game/chev_panel.h52
-rw-r--r--engines/titanic/game/chicken_cooler.cpp48
-rw-r--r--engines/titanic/game/chicken_cooler.h54
-rw-r--r--engines/titanic/game/chicken_dispensor.cpp48
-rw-r--r--engines/titanic/game/chicken_dispensor.h52
-rw-r--r--engines/titanic/game/close_broken_pel.cpp39
-rw-r--r--engines/titanic/game/close_broken_pel.h49
-rw-r--r--engines/titanic/game/code_wheel.cpp48
-rw-r--r--engines/titanic/game/code_wheel.h52
-rw-r--r--engines/titanic/game/computer.cpp41
-rw-r--r--engines/titanic/game/computer.h51
-rw-r--r--engines/titanic/game/computer_screen.cpp40
-rw-r--r--engines/titanic/game/computer_screen.h48
-rw-r--r--engines/titanic/game/cookie.cpp43
-rw-r--r--engines/titanic/game/cookie.h51
-rw-r--r--engines/titanic/game/credits.cpp46
-rw-r--r--engines/titanic/game/credits.h50
-rw-r--r--engines/titanic/game/credits_button.cpp42
-rw-r--r--engines/titanic/game/credits_button.h50
-rw-r--r--engines/titanic/game/dead_area.cpp40
-rw-r--r--engines/titanic/game/dead_area.h48
-rw-r--r--engines/titanic/game/desk_click_responder.cpp43
-rw-r--r--engines/titanic/game/desk_click_responder.h50
-rw-r--r--engines/titanic/game/doorbot_elevator_handler.cpp48
-rw-r--r--engines/titanic/game/doorbot_elevator_handler.h53
-rw-r--r--engines/titanic/game/doorbot_home_handler.cpp40
-rw-r--r--engines/titanic/game/doorbot_home_handler.h48
-rw-r--r--engines/titanic/game/ear_sweet_bowl.cpp37
-rw-r--r--engines/titanic/game/ear_sweet_bowl.h47
-rw-r--r--engines/titanic/game/eject_phonograph_button.cpp47
-rw-r--r--engines/titanic/game/eject_phonograph_button.h53
-rw-r--r--engines/titanic/game/elevator_action_area.cpp39
-rw-r--r--engines/titanic/game/elevator_action_area.h50
-rw-r--r--engines/titanic/game/emma_control.cpp47
-rw-r--r--engines/titanic/game/emma_control.h52
-rw-r--r--engines/titanic/game/empty_nut_bowl.cpp39
-rw-r--r--engines/titanic/game/empty_nut_bowl.h50
-rw-r--r--engines/titanic/game/end_credit_text.cpp39
-rw-r--r--engines/titanic/game/end_credit_text.h50
-rw-r--r--engines/titanic/game/end_credits.cpp39
-rw-r--r--engines/titanic/game/end_credits.h50
-rw-r--r--engines/titanic/game/end_explode_ship.cpp43
-rw-r--r--engines/titanic/game/end_explode_ship.h50
-rw-r--r--engines/titanic/game/end_game_credits.cpp46
-rw-r--r--engines/titanic/game/end_game_credits.h51
-rw-r--r--engines/titanic/game/end_sequence_control.cpp42
-rw-r--r--engines/titanic/game/end_sequence_control.h50
-rw-r--r--engines/titanic/game/fan.cpp43
-rw-r--r--engines/titanic/game/fan.h50
-rw-r--r--engines/titanic/game/fan_control.cpp53
-rw-r--r--engines/titanic/game/fan_control.h54
-rw-r--r--engines/titanic/game/fan_decrease.cpp37
-rw-r--r--engines/titanic/game/fan_decrease.h47
-rw-r--r--engines/titanic/game/fan_increase.cpp37
-rw-r--r--engines/titanic/game/fan_increase.h47
-rw-r--r--engines/titanic/game/fan_noises.cpp63
-rw-r--r--engines/titanic/game/fan_noises.h59
-rw-r--r--engines/titanic/game/floor_indicator.cpp37
-rw-r--r--engines/titanic/game/floor_indicator.h47
-rw-r--r--engines/titanic/game/games_console.cpp39
-rw-r--r--engines/titanic/game/games_console.h50
-rw-r--r--engines/titanic/game/get_lift_eye2.cpp54
-rw-r--r--engines/titanic/game/get_lift_eye2.h53
-rw-r--r--engines/titanic/game/glass_smasher.cpp37
-rw-r--r--engines/titanic/game/glass_smasher.h47
-rw-r--r--engines/titanic/game/gondolier/gondolier_base.cpp70
-rw-r--r--engines/titanic/game/gondolier/gondolier_base.h58
-rw-r--r--engines/titanic/game/gondolier/gondolier_chest.cpp37
-rw-r--r--engines/titanic/game/gondolier/gondolier_chest.h47
-rw-r--r--engines/titanic/game/gondolier/gondolier_face.cpp39
-rw-r--r--engines/titanic/game/gondolier/gondolier_face.h50
-rw-r--r--engines/titanic/game/gondolier/gondolier_mixer.cpp68
-rw-r--r--engines/titanic/game/gondolier/gondolier_mixer.h59
-rw-r--r--engines/titanic/game/gondolier/gondolier_slider.cpp82
-rw-r--r--engines/titanic/game/gondolier/gondolier_slider.h67
-rw-r--r--engines/titanic/game/hammer_clip.cpp39
-rw-r--r--engines/titanic/game/hammer_clip.h50
-rw-r--r--engines/titanic/game/hammer_dispensor.cpp49
-rw-r--r--engines/titanic/game/hammer_dispensor.h52
-rw-r--r--engines/titanic/game/hammer_dispensor_button.cpp56
-rw-r--r--engines/titanic/game/hammer_dispensor_button.h56
-rw-r--r--engines/titanic/game/head_slot.cpp66
-rw-r--r--engines/titanic/game/head_slot.h60
-rw-r--r--engines/titanic/game/head_smash_event.cpp37
-rw-r--r--engines/titanic/game/head_smash_event.h47
-rw-r--r--engines/titanic/game/head_smash_lever.cpp48
-rw-r--r--engines/titanic/game/head_smash_lever.h52
-rw-r--r--engines/titanic/game/head_spinner.cpp43
-rw-r--r--engines/titanic/game/head_spinner.h50
-rw-r--r--engines/titanic/game/idle_summoner.cpp63
-rw-r--r--engines/titanic/game/idle_summoner.h58
-rw-r--r--engines/titanic/game/leave_sec_class_state.cpp37
-rw-r--r--engines/titanic/game/leave_sec_class_state.h47
-rw-r--r--engines/titanic/game/lemon_dispensor.cpp61
-rw-r--r--engines/titanic/game/lemon_dispensor.h57
-rw-r--r--engines/titanic/game/light.cpp65
-rw-r--r--engines/titanic/game/light.h60
-rw-r--r--engines/titanic/game/light_switch.cpp58
-rw-r--r--engines/titanic/game/light_switch.h57
-rw-r--r--engines/titanic/game/little_lift_button.cpp39
-rw-r--r--engines/titanic/game/little_lift_button.h50
-rw-r--r--engines/titanic/game/long_stick_dispenser.cpp51
-rw-r--r--engines/titanic/game/long_stick_dispenser.h56
-rw-r--r--engines/titanic/game/mail_man.cpp39
-rw-r--r--engines/titanic/game/mail_man.h50
-rw-r--r--engines/titanic/game/maitred/maitred_arm_holder.cpp37
-rw-r--r--engines/titanic/game/maitred/maitred_arm_holder.h47
-rw-r--r--engines/titanic/game/maitred/maitred_body.cpp39
-rw-r--r--engines/titanic/game/maitred/maitred_body.h50
-rw-r--r--engines/titanic/game/maitred/maitred_legs.cpp39
-rw-r--r--engines/titanic/game/maitred/maitred_legs.h50
-rw-r--r--engines/titanic/game/maitred/maitred_prod_receptor.cpp45
-rw-r--r--engines/titanic/game/maitred/maitred_prod_receptor.h53
-rw-r--r--engines/titanic/game/missiveomat.cpp55
-rw-r--r--engines/titanic/game/missiveomat.h55
-rw-r--r--engines/titanic/game/missiveomat_button.cpp41
-rw-r--r--engines/titanic/game/missiveomat_button.h50
-rw-r--r--engines/titanic/game/movie_tester.cpp41
-rw-r--r--engines/titanic/game/movie_tester.h50
-rw-r--r--engines/titanic/game/music_console_button.cpp37
-rw-r--r--engines/titanic/game/music_console_button.h47
-rw-r--r--engines/titanic/game/music_room_phonograph.cpp39
-rw-r--r--engines/titanic/game/music_room_phonograph.h50
-rw-r--r--engines/titanic/game/music_room_stop_phonograph_button.cpp39
-rw-r--r--engines/titanic/game/music_room_stop_phonograph_button.h50
-rw-r--r--engines/titanic/game/music_system_lock.cpp39
-rw-r--r--engines/titanic/game/music_system_lock.h50
-rw-r--r--engines/titanic/game/musical_instrument.cpp37
-rw-r--r--engines/titanic/game/musical_instrument.h47
-rw-r--r--engines/titanic/game/nav_helmet.cpp39
-rw-r--r--engines/titanic/game/nav_helmet.h50
-rw-r--r--engines/titanic/game/navigation_computer.cpp37
-rw-r--r--engines/titanic/game/navigation_computer.h47
-rw-r--r--engines/titanic/game/no_nut_bowl.cpp37
-rw-r--r--engines/titanic/game/no_nut_bowl.h47
-rw-r--r--engines/titanic/game/nose_holder.cpp44
-rw-r--r--engines/titanic/game/nose_holder.h51
-rw-r--r--engines/titanic/game/null_port_hole.cpp48
-rw-r--r--engines/titanic/game/null_port_hole.h48
-rw-r--r--engines/titanic/game/nut_replacer.cpp37
-rw-r--r--engines/titanic/game/nut_replacer.h47
-rw-r--r--engines/titanic/game/parrot/parrot_lobby_controller.cpp37
-rw-r--r--engines/titanic/game/parrot/parrot_lobby_controller.h47
-rw-r--r--engines/titanic/game/parrot/parrot_lobby_link_updater.cpp37
-rw-r--r--engines/titanic/game/parrot/parrot_lobby_link_updater.h50
-rw-r--r--engines/titanic/game/parrot/parrot_lobby_object.cpp59
-rw-r--r--engines/titanic/game/parrot/parrot_lobby_object.h54
-rw-r--r--engines/titanic/game/parrot/parrot_lobby_view_object.cpp39
-rw-r--r--engines/titanic/game/parrot/parrot_lobby_view_object.h50
-rw-r--r--engines/titanic/game/parrot/parrot_loser.cpp37
-rw-r--r--engines/titanic/game/parrot/parrot_loser.h47
-rw-r--r--engines/titanic/game/parrot/parrot_nut_bowl_actor.cpp47
-rw-r--r--engines/titanic/game/parrot/parrot_nut_bowl_actor.h50
-rw-r--r--engines/titanic/game/parrot/parrot_nut_eater.cpp45
-rw-r--r--engines/titanic/game/parrot/parrot_nut_eater.h54
-rw-r--r--engines/titanic/game/parrot/parrot_perch_holder.cpp37
-rw-r--r--engines/titanic/game/parrot/parrot_perch_holder.h47
-rw-r--r--engines/titanic/game/parrot/parrot_succubus.cpp49
-rw-r--r--engines/titanic/game/parrot/parrot_succubus.h54
-rw-r--r--engines/titanic/game/parrot/parrot_trigger.cpp39
-rw-r--r--engines/titanic/game/parrot/parrot_trigger.h50
-rw-r--r--engines/titanic/game/parrot/player_meets_parrot.cpp42
-rw-r--r--engines/titanic/game/parrot/player_meets_parrot.h50
-rw-r--r--engines/titanic/game/pet/pet.cpp57
-rw-r--r--engines/titanic/game/pet/pet.h56
-rw-r--r--engines/titanic/game/pet/pet_class1.cpp37
-rw-r--r--engines/titanic/game/pet/pet_class1.h47
-rw-r--r--engines/titanic/game/pet/pet_class2.cpp37
-rw-r--r--engines/titanic/game/pet/pet_class2.h47
-rw-r--r--engines/titanic/game/pet/pet_class3.cpp37
-rw-r--r--engines/titanic/game/pet/pet_class3.h47
-rw-r--r--engines/titanic/game/pet/pet_lift.cpp37
-rw-r--r--engines/titanic/game/pet/pet_lift.h47
-rw-r--r--engines/titanic/game/pet/pet_monitor.cpp42
-rw-r--r--engines/titanic/game/pet/pet_monitor.h50
-rw-r--r--engines/titanic/game/pet/pet_pellerator.cpp37
-rw-r--r--engines/titanic/game/pet/pet_pellerator.h47
-rw-r--r--engines/titanic/game/pet/pet_position.cpp42
-rw-r--r--engines/titanic/game/pet/pet_position.h50
-rw-r--r--engines/titanic/game/pet/pet_sentinal.cpp37
-rw-r--r--engines/titanic/game/pet/pet_sentinal.h47
-rw-r--r--engines/titanic/game/pet/pet_sounds.cpp39
-rw-r--r--engines/titanic/game/pet/pet_sounds.h50
-rw-r--r--engines/titanic/game/pet/pet_transition.cpp37
-rw-r--r--engines/titanic/game/pet/pet_transition.h47
-rw-r--r--engines/titanic/game/pet/pet_transport.cpp42
-rw-r--r--engines/titanic/game/pet/pet_transport.h50
-rw-r--r--engines/titanic/game/pet/pet_val_base.cpp31
-rw-r--r--engines/titanic/game/pet/pet_val_base.h61
-rw-r--r--engines/titanic/game/pet_disabler.cpp39
-rw-r--r--engines/titanic/game/pet_disabler.h50
-rw-r--r--engines/titanic/game/phonograph.cpp63
-rw-r--r--engines/titanic/game/phonograph.h59
-rw-r--r--engines/titanic/game/phonograph_lid.cpp39
-rw-r--r--engines/titanic/game/phonograph_lid.h50
-rw-r--r--engines/titanic/game/pickup/pick_up.cpp39
-rw-r--r--engines/titanic/game/pickup/pick_up.h50
-rw-r--r--engines/titanic/game/pickup/pick_up_bar_glass.cpp37
-rw-r--r--engines/titanic/game/pickup/pick_up_bar_glass.h47
-rw-r--r--engines/titanic/game/pickup/pick_up_hose.cpp45
-rw-r--r--engines/titanic/game/pickup/pick_up_hose.h51
-rw-r--r--engines/titanic/game/pickup/pick_up_lemon.cpp37
-rw-r--r--engines/titanic/game/pickup/pick_up_lemon.h47
-rw-r--r--engines/titanic/game/pickup/pick_up_speech_centre.cpp37
-rw-r--r--engines/titanic/game/pickup/pick_up_speech_centre.h47
-rw-r--r--engines/titanic/game/pickup/pick_up_vis_centre.cpp37
-rw-r--r--engines/titanic/game/pickup/pick_up_vis_centre.h47
-rw-r--r--engines/titanic/game/placeholder/bar_shelf_vis_centre.cpp39
-rw-r--r--engines/titanic/game/placeholder/bar_shelf_vis_centre.h50
-rw-r--r--engines/titanic/game/placeholder/lemon_on_bar.cpp39
-rw-r--r--engines/titanic/game/placeholder/lemon_on_bar.h49
-rw-r--r--engines/titanic/game/placeholder/place_holder.cpp37
-rw-r--r--engines/titanic/game/placeholder/place_holder.h47
-rw-r--r--engines/titanic/game/placeholder/tv_on_bar.cpp39
-rw-r--r--engines/titanic/game/placeholder/tv_on_bar.h49
-rw-r--r--engines/titanic/game/play_music_button.cpp43
-rw-r--r--engines/titanic/game/play_music_button.h51
-rw-r--r--engines/titanic/game/play_on_act.cpp37
-rw-r--r--engines/titanic/game/play_on_act.h47
-rw-r--r--engines/titanic/game/port_hole.cpp49
-rw-r--r--engines/titanic/game/port_hole.h51
-rw-r--r--engines/titanic/game/record_phonograph_button.cpp39
-rw-r--r--engines/titanic/game/record_phonograph_button.h50
-rw-r--r--engines/titanic/game/replacement_ear.cpp37
-rw-r--r--engines/titanic/game/replacement_ear.h47
-rw-r--r--engines/titanic/game/reserved_table.cpp42
-rw-r--r--engines/titanic/game/reserved_table.h50
-rw-r--r--engines/titanic/game/restaurant_cylinder_holder.cpp58
-rw-r--r--engines/titanic/game/restaurant_cylinder_holder.h56
-rw-r--r--engines/titanic/game/restaurant_phonograph.cpp51
-rw-r--r--engines/titanic/game/restaurant_phonograph.h53
-rw-r--r--engines/titanic/game/sauce_dispensor.cpp57
-rw-r--r--engines/titanic/game/sauce_dispensor.h56
-rw-r--r--engines/titanic/game/search_point.cpp39
-rw-r--r--engines/titanic/game/search_point.h50
-rw-r--r--engines/titanic/game/season_background.cpp51
-rw-r--r--engines/titanic/game/season_background.h53
-rw-r--r--engines/titanic/game/season_barrel.cpp42
-rw-r--r--engines/titanic/game/season_barrel.h51
-rw-r--r--engines/titanic/game/seasonal_adjustment.cpp43
-rw-r--r--engines/titanic/game/seasonal_adjustment.h51
-rw-r--r--engines/titanic/game/service_elevator_window.cpp51
-rw-r--r--engines/titanic/game/service_elevator_window.h53
-rw-r--r--engines/titanic/game/sgt/armchair.cpp37
-rw-r--r--engines/titanic/game/sgt/armchair.h47
-rw-r--r--engines/titanic/game/sgt/basin.cpp37
-rw-r--r--engines/titanic/game/sgt/basin.h47
-rw-r--r--engines/titanic/game/sgt/bedfoot.cpp37
-rw-r--r--engines/titanic/game/sgt/bedfoot.h47
-rw-r--r--engines/titanic/game/sgt/bedhead.cpp37
-rw-r--r--engines/titanic/game/sgt/bedhead.h47
-rw-r--r--engines/titanic/game/sgt/chest_of_drawers.cpp37
-rw-r--r--engines/titanic/game/sgt/chest_of_drawers.h47
-rw-r--r--engines/titanic/game/sgt/desk.cpp37
-rw-r--r--engines/titanic/game/sgt/desk.h47
-rw-r--r--engines/titanic/game/sgt/deskchair.cpp37
-rw-r--r--engines/titanic/game/sgt/deskchair.h47
-rw-r--r--engines/titanic/game/sgt/drawer.cpp42
-rw-r--r--engines/titanic/game/sgt/drawer.h50
-rw-r--r--engines/titanic/game/sgt/sgt_doors.cpp43
-rw-r--r--engines/titanic/game/sgt/sgt_doors.h50
-rw-r--r--engines/titanic/game/sgt/sgt_nav.cpp37
-rw-r--r--engines/titanic/game/sgt/sgt_nav.h47
-rw-r--r--engines/titanic/game/sgt/sgt_navigation.cpp55
-rw-r--r--engines/titanic/game/sgt/sgt_navigation.h57
-rw-r--r--engines/titanic/game/sgt/sgt_restaurant_doors.cpp39
-rw-r--r--engines/titanic/game/sgt/sgt_restaurant_doors.h50
-rw-r--r--engines/titanic/game/sgt/sgt_state_control.cpp39
-rw-r--r--engines/titanic/game/sgt/sgt_state_control.h50
-rw-r--r--engines/titanic/game/sgt/sgt_state_room.cpp98
-rw-r--r--engines/titanic/game/sgt/sgt_state_room.h78
-rw-r--r--engines/titanic/game/sgt/sgt_tv.cpp37
-rw-r--r--engines/titanic/game/sgt/sgt_tv.h47
-rw-r--r--engines/titanic/game/sgt/sgt_upper_doors_sound.cpp45
-rw-r--r--engines/titanic/game/sgt/sgt_upper_doors_sound.h48
-rw-r--r--engines/titanic/game/sgt/toilet.cpp37
-rw-r--r--engines/titanic/game/sgt/toilet.h47
-rw-r--r--engines/titanic/game/sgt/vase.cpp37
-rw-r--r--engines/titanic/game/sgt/vase.h47
-rw-r--r--engines/titanic/game/sgt/washstand.cpp37
-rw-r--r--engines/titanic/game/sgt/washstand.h47
-rw-r--r--engines/titanic/game/ship_setting.cpp56
-rw-r--r--engines/titanic/game/ship_setting.h56
-rw-r--r--engines/titanic/game/ship_setting_button.cpp48
-rw-r--r--engines/titanic/game/ship_setting_button.h52
-rw-r--r--engines/titanic/game/show_cell_points.cpp41
-rw-r--r--engines/titanic/game/show_cell_points.h51
-rw-r--r--engines/titanic/game/speech_dispensor.cpp53
-rw-r--r--engines/titanic/game/speech_dispensor.h56
-rw-r--r--engines/titanic/game/splash_animation.cpp37
-rw-r--r--engines/titanic/game/splash_animation.h47
-rw-r--r--engines/titanic/game/starling_puret.cpp39
-rw-r--r--engines/titanic/game/starling_puret.h50
-rw-r--r--engines/titanic/game/start_action.cpp46
-rw-r--r--engines/titanic/game/start_action.h51
-rw-r--r--engines/titanic/game/stop_phonograph_button.cpp37
-rw-r--r--engines/titanic/game/stop_phonograph_button.h47
-rw-r--r--engines/titanic/game/sub_glass.cpp54
-rw-r--r--engines/titanic/game/sub_glass.h55
-rw-r--r--engines/titanic/game/sub_wrapper.cpp39
-rw-r--r--engines/titanic/game/sub_wrapper.h50
-rw-r--r--engines/titanic/game/sweet_bowl.cpp37
-rw-r--r--engines/titanic/game/sweet_bowl.h47
-rw-r--r--engines/titanic/game/television.cpp72
-rw-r--r--engines/titanic/game/television.h61
-rw-r--r--engines/titanic/game/third_class_canal.cpp37
-rw-r--r--engines/titanic/game/third_class_canal.h47
-rw-r--r--engines/titanic/game/throw_tv_down_well.cpp41
-rw-r--r--engines/titanic/game/throw_tv_down_well.h51
-rw-r--r--engines/titanic/game/titania_still_control.cpp37
-rw-r--r--engines/titanic/game/titania_still_control.h47
-rw-r--r--engines/titanic/game/tow_parrot_nav.cpp37
-rw-r--r--engines/titanic/game/tow_parrot_nav.h47
-rw-r--r--engines/titanic/game/transport/exit_pellerator.cpp46
-rw-r--r--engines/titanic/game/transport/exit_pellerator.h50
-rw-r--r--engines/titanic/game/transport/gondolier.cpp37
-rw-r--r--engines/titanic/game/transport/gondolier.h47
-rw-r--r--engines/titanic/game/transport/lift.cpp65
-rw-r--r--engines/titanic/game/transport/lift.h60
-rw-r--r--engines/titanic/game/transport/lift_indicator.cpp51
-rw-r--r--engines/titanic/game/transport/lift_indicator.h56
-rw-r--r--engines/titanic/game/transport/pellerator.cpp51
-rw-r--r--engines/titanic/game/transport/pellerator.h53
-rw-r--r--engines/titanic/game/transport/service_elevator.cpp61
-rw-r--r--engines/titanic/game/transport/service_elevator.h57
-rw-r--r--engines/titanic/game/transport/transport.cpp46
-rw-r--r--engines/titanic/game/transport/transport.h51
-rw-r--r--engines/titanic/game/up_lighter.cpp56
-rw-r--r--engines/titanic/game/up_lighter.h56
-rw-r--r--engines/titanic/game/useless_lever.cpp37
-rw-r--r--engines/titanic/game/useless_lever.h47
-rw-r--r--engines/titanic/game/volume_control.cpp53
-rw-r--r--engines/titanic/game/volume_control.h55
-rw-r--r--engines/titanic/game/wheel_button.cpp49
-rw-r--r--engines/titanic/game/wheel_button.h52
-rw-r--r--engines/titanic/game/wheel_hotspot.cpp43
-rw-r--r--engines/titanic/game/wheel_hotspot.h51
-rw-r--r--engines/titanic/game/wheel_spin.cpp39
-rw-r--r--engines/titanic/game/wheel_spin.h50
-rw-r--r--engines/titanic/game/wheel_spin_horn.cpp43
-rw-r--r--engines/titanic/game/wheel_spin_horn.h50
-rw-r--r--engines/titanic/game_location.cpp115
-rw-r--r--engines/titanic/game_location.h79
-rw-r--r--engines/titanic/game_manager.cpp238
-rw-r--r--engines/titanic/game_manager.h199
-rw-r--r--engines/titanic/game_state.cpp157
-rw-r--r--engines/titanic/game_state.h115
-rw-r--r--engines/titanic/game_view.cpp74
-rw-r--r--engines/titanic/game_view.h87
-rw-r--r--engines/titanic/gfx/act_button.cpp40
-rw-r--r--engines/titanic/gfx/act_button.h48
-rw-r--r--engines/titanic/gfx/changes_season_button.cpp40
-rw-r--r--engines/titanic/gfx/changes_season_button.h48
-rw-r--r--engines/titanic/gfx/chev_left_off.cpp40
-rw-r--r--engines/titanic/gfx/chev_left_off.h48
-rw-r--r--engines/titanic/gfx/chev_left_on.cpp40
-rw-r--r--engines/titanic/gfx/chev_left_on.h48
-rw-r--r--engines/titanic/gfx/chev_right_off.cpp40
-rw-r--r--engines/titanic/gfx/chev_right_off.h48
-rw-r--r--engines/titanic/gfx/chev_right_on.cpp40
-rw-r--r--engines/titanic/gfx/chev_right_on.h48
-rw-r--r--engines/titanic/gfx/chev_send_rec_switch.cpp40
-rw-r--r--engines/titanic/gfx/chev_send_rec_switch.h48
-rw-r--r--engines/titanic/gfx/chev_switch.cpp40
-rw-r--r--engines/titanic/gfx/chev_switch.h48
-rw-r--r--engines/titanic/gfx/edit_control.cpp72
-rw-r--r--engines/titanic/gfx/edit_control.h62
-rw-r--r--engines/titanic/gfx/elevator_button.cpp40
-rw-r--r--engines/titanic/gfx/elevator_button.h48
-rw-r--r--engines/titanic/gfx/get_from_succ.cpp40
-rw-r--r--engines/titanic/gfx/get_from_succ.h48
-rw-r--r--engines/titanic/gfx/helmet_on_off.cpp40
-rw-r--r--engines/titanic/gfx/helmet_on_off.h48
-rw-r--r--engines/titanic/gfx/home_photo.cpp40
-rw-r--r--engines/titanic/gfx/home_photo.h48
-rw-r--r--engines/titanic/gfx/icon_nav_action.cpp40
-rw-r--r--engines/titanic/gfx/icon_nav_action.h48
-rw-r--r--engines/titanic/gfx/icon_nav_butt.cpp37
-rw-r--r--engines/titanic/gfx/icon_nav_butt.h47
-rw-r--r--engines/titanic/gfx/icon_nav_down.cpp40
-rw-r--r--engines/titanic/gfx/icon_nav_down.h48
-rw-r--r--engines/titanic/gfx/icon_nav_image.cpp37
-rw-r--r--engines/titanic/gfx/icon_nav_image.h47
-rw-r--r--engines/titanic/gfx/icon_nav_left.cpp40
-rw-r--r--engines/titanic/gfx/icon_nav_left.h48
-rw-r--r--engines/titanic/gfx/icon_nav_receive.cpp37
-rw-r--r--engines/titanic/gfx/icon_nav_receive.h47
-rw-r--r--engines/titanic/gfx/icon_nav_right.cpp40
-rw-r--r--engines/titanic/gfx/icon_nav_right.h48
-rw-r--r--engines/titanic/gfx/icon_nav_send.cpp37
-rw-r--r--engines/titanic/gfx/icon_nav_send.h47
-rw-r--r--engines/titanic/gfx/icon_nav_up.cpp40
-rw-r--r--engines/titanic/gfx/icon_nav_up.h48
-rw-r--r--engines/titanic/gfx/keybrd_butt.cpp40
-rw-r--r--engines/titanic/gfx/keybrd_butt.h48
-rw-r--r--engines/titanic/gfx/move_object_button.cpp46
-rw-r--r--engines/titanic/gfx/move_object_button.h51
-rw-r--r--engines/titanic/gfx/music_control.cpp51
-rw-r--r--engines/titanic/gfx/music_control.h53
-rw-r--r--engines/titanic/gfx/music_slider.h53
-rw-r--r--engines/titanic/gfx/music_slider_pitch.h53
-rw-r--r--engines/titanic/gfx/music_slider_speed.h53
-rw-r--r--engines/titanic/gfx/music_switch.h53
-rw-r--r--engines/titanic/gfx/music_switch_inversion.h53
-rw-r--r--engines/titanic/gfx/music_switch_reverse.h53
-rw-r--r--engines/titanic/gfx/music_voice_mute.h53
-rw-r--r--engines/titanic/gfx/pet_drag_chev.cpp37
-rw-r--r--engines/titanic/gfx/pet_drag_chev.h47
-rw-r--r--engines/titanic/gfx/pet_graphic.cpp37
-rw-r--r--engines/titanic/gfx/pet_graphic.h47
-rw-r--r--engines/titanic/gfx/pet_graphic2.cpp37
-rw-r--r--engines/titanic/gfx/pet_graphic2.h47
-rw-r--r--engines/titanic/gfx/pet_leaf.cpp37
-rw-r--r--engines/titanic/gfx/pet_leaf.h47
-rw-r--r--engines/titanic/gfx/pet_mode_off.cpp40
-rw-r--r--engines/titanic/gfx/pet_mode_off.h48
-rw-r--r--engines/titanic/gfx/pet_mode_on.cpp40
-rw-r--r--engines/titanic/gfx/pet_mode_on.h48
-rw-r--r--engines/titanic/gfx/pet_mode_panel.cpp40
-rw-r--r--engines/titanic/gfx/pet_mode_panel.h48
-rw-r--r--engines/titanic/gfx/pet_pannel1.cpp37
-rw-r--r--engines/titanic/gfx/pet_pannel1.h47
-rw-r--r--engines/titanic/gfx/pet_pannel2.cpp37
-rw-r--r--engines/titanic/gfx/pet_pannel2.h47
-rw-r--r--engines/titanic/gfx/pet_pannel3.cpp37
-rw-r--r--engines/titanic/gfx/pet_pannel3.h47
-rw-r--r--engines/titanic/gfx/send_to_succ.cpp40
-rw-r--r--engines/titanic/gfx/send_to_succ.h48
-rw-r--r--engines/titanic/gfx/sgt_selector.cpp37
-rw-r--r--engines/titanic/gfx/sgt_selector.h47
-rw-r--r--engines/titanic/gfx/slider_button.cpp51
-rw-r--r--engines/titanic/gfx/slider_button.h53
-rw-r--r--engines/titanic/gfx/small_chev_left_off.cpp40
-rw-r--r--engines/titanic/gfx/small_chev_left_off.h48
-rw-r--r--engines/titanic/gfx/small_chev_left_on.cpp40
-rw-r--r--engines/titanic/gfx/small_chev_left_on.h48
-rw-r--r--engines/titanic/gfx/small_chev_right_off.cpp40
-rw-r--r--engines/titanic/gfx/small_chev_right_off.h48
-rw-r--r--engines/titanic/gfx/small_chev_right_on.cpp40
-rw-r--r--engines/titanic/gfx/small_chev_right_on.h48
-rw-r--r--engines/titanic/gfx/st_button.cpp63
-rw-r--r--engines/titanic/gfx/st_button.h56
-rw-r--r--engines/titanic/gfx/status_change_button.cpp40
-rw-r--r--engines/titanic/gfx/status_change_button.h48
-rw-r--r--engines/titanic/gfx/text_down.cpp37
-rw-r--r--engines/titanic/gfx/text_down.h47
-rw-r--r--engines/titanic/gfx/text_skrew.cpp37
-rw-r--r--engines/titanic/gfx/text_skrew.h47
-rw-r--r--engines/titanic/gfx/text_up.cpp37
-rw-r--r--engines/titanic/gfx/text_up.h47
-rw-r--r--engines/titanic/gfx/toggle_button.cpp41
-rw-r--r--engines/titanic/gfx/toggle_button.h50
-rw-r--r--engines/titanic/gfx/toggle_switch.cpp46
-rw-r--r--engines/titanic/gfx/toggle_switch.h51
-rw-r--r--engines/titanic/image.cpp121
-rw-r--r--engines/titanic/image.h82
-rw-r--r--engines/titanic/image_decoders.cpp79
-rw-r--r--engines/titanic/image_decoders.h52
-rw-r--r--engines/titanic/input_handler.cpp141
-rw-r--r--engines/titanic/input_handler.h83
-rw-r--r--engines/titanic/input_translator.cpp97
-rw-r--r--engines/titanic/input_translator.h57
-rw-r--r--engines/titanic/main_game_window.cpp146
-rw-r--r--engines/titanic/main_game_window.h90
-rw-r--r--engines/titanic/messages/auto_sound_event.cpp46
-rw-r--r--engines/titanic/messages/auto_sound_event.h51
-rw-r--r--engines/titanic/messages/bilge_auto_sound_event.cpp37
-rw-r--r--engines/titanic/messages/bilge_auto_sound_event.h47
-rw-r--r--engines/titanic/messages/bilge_dispensor_event.cpp42
-rw-r--r--engines/titanic/messages/bilge_dispensor_event.h50
-rw-r--r--engines/titanic/messages/door_auto_sound_event.cpp47
-rw-r--r--engines/titanic/messages/door_auto_sound_event.h55
-rw-r--r--engines/titanic/messages/messages.cpp126
-rw-r--r--engines/titanic/messages/messages.h420
-rw-r--r--engines/titanic/messages/mouse_messages.h198
-rw-r--r--engines/titanic/messages/pet_messages.h47
-rw-r--r--engines/titanic/messages/service_elevator_door.cpp48
-rw-r--r--engines/titanic/messages/service_elevator_door.h48
-rw-r--r--engines/titanic/module.mk458
-rw-r--r--engines/titanic/mouse_cursor.cpp44
-rw-r--r--engines/titanic/mouse_cursor.h45
-rw-r--r--engines/titanic/moves/enter_bomb_room.cpp40
-rw-r--r--engines/titanic/moves/enter_bomb_room.h50
-rw-r--r--engines/titanic/moves/enter_bridge.cpp44
-rw-r--r--engines/titanic/moves/enter_bridge.h53
-rw-r--r--engines/titanic/moves/enter_exit_first_class_state.cpp49
-rw-r--r--engines/titanic/moves/enter_exit_first_class_state.h59
-rw-r--r--engines/titanic/moves/enter_exit_mini_lift.cpp43
-rw-r--r--engines/titanic/moves/enter_exit_mini_lift.h51
-rw-r--r--engines/titanic/moves/enter_exit_sec_class_mini_lift.cpp55
-rw-r--r--engines/titanic/moves/enter_exit_sec_class_mini_lift.h60
-rw-r--r--engines/titanic/moves/enter_exit_view.cpp53
-rw-r--r--engines/titanic/moves/enter_exit_view.h54
-rw-r--r--engines/titanic/moves/enter_sec_class_state.cpp43
-rw-r--r--engines/titanic/moves/enter_sec_class_state.h50
-rw-r--r--engines/titanic/moves/exit_arboretum.cpp49
-rw-r--r--engines/titanic/moves/exit_arboretum.h52
-rw-r--r--engines/titanic/moves/exit_bridge.cpp42
-rw-r--r--engines/titanic/moves/exit_bridge.h50
-rw-r--r--engines/titanic/moves/exit_lift.cpp39
-rw-r--r--engines/titanic/moves/exit_lift.h49
-rw-r--r--engines/titanic/moves/exit_pellerator.cpp55
-rw-r--r--engines/titanic/moves/exit_pellerator.h57
-rw-r--r--engines/titanic/moves/exit_state_room.cpp40
-rw-r--r--engines/titanic/moves/exit_state_room.h50
-rw-r--r--engines/titanic/moves/exit_tiania.cpp51
-rw-r--r--engines/titanic/moves/exit_tiania.h53
-rw-r--r--engines/titanic/moves/move_player_in_parrot_room.cpp40
-rw-r--r--engines/titanic/moves/move_player_in_parrot_room.h48
-rw-r--r--engines/titanic/moves/move_player_to.cpp44
-rw-r--r--engines/titanic/moves/move_player_to.h50
-rw-r--r--engines/titanic/moves/move_player_to_from.cpp44
-rw-r--r--engines/titanic/moves/move_player_to_from.h50
-rw-r--r--engines/titanic/moves/multi_move.cpp52
-rw-r--r--engines/titanic/moves/multi_move.h54
-rw-r--r--engines/titanic/moves/pan_from_pel.cpp46
-rw-r--r--engines/titanic/moves/pan_from_pel.h51
-rw-r--r--engines/titanic/moves/restaurant_pan_handler.cpp47
-rw-r--r--engines/titanic/moves/restaurant_pan_handler.h52
-rw-r--r--engines/titanic/moves/restricted_move.cpp44
-rw-r--r--engines/titanic/moves/restricted_move.h50
-rw-r--r--engines/titanic/moves/scraliontis_table.cpp51
-rw-r--r--engines/titanic/moves/scraliontis_table.h53
-rw-r--r--engines/titanic/moves/trip_down_canal.cpp40
-rw-r--r--engines/titanic/moves/trip_down_canal.h48
-rw-r--r--engines/titanic/npcs/barbot.cpp241
-rw-r--r--engines/titanic/npcs/barbot.h195
-rw-r--r--engines/titanic/npcs/bellbot.cpp44
-rw-r--r--engines/titanic/npcs/bellbot.h50
-rw-r--r--engines/titanic/npcs/callbot.cpp46
-rw-r--r--engines/titanic/npcs/callbot.h51
-rw-r--r--engines/titanic/npcs/character.cpp50
-rw-r--r--engines/titanic/npcs/character.h53
-rw-r--r--engines/titanic/npcs/deskbot.cpp53
-rw-r--r--engines/titanic/npcs/deskbot.h54
-rw-r--r--engines/titanic/npcs/doorbot.cpp63
-rw-r--r--engines/titanic/npcs/doorbot.h56
-rw-r--r--engines/titanic/npcs/liftbot.cpp56
-rw-r--r--engines/titanic/npcs/liftbot.h56
-rw-r--r--engines/titanic/npcs/maitre_d.cpp68
-rw-r--r--engines/titanic/npcs/maitre_d.h60
-rw-r--r--engines/titanic/npcs/mobile.cpp46
-rw-r--r--engines/titanic/npcs/mobile.h51
-rw-r--r--engines/titanic/npcs/parrot.cpp143
-rw-r--r--engines/titanic/npcs/parrot.h111
-rw-r--r--engines/titanic/npcs/robot_controller.cpp44
-rw-r--r--engines/titanic/npcs/robot_controller.h50
-rw-r--r--engines/titanic/npcs/starlings.cpp46
-rw-r--r--engines/titanic/npcs/starlings.h50
-rw-r--r--engines/titanic/npcs/succubus.cpp215
-rw-r--r--engines/titanic/npcs/succubus.h106
-rw-r--r--engines/titanic/npcs/summon_bots.cpp49
-rw-r--r--engines/titanic/npcs/summon_bots.h52
-rw-r--r--engines/titanic/npcs/titania.cpp77
-rw-r--r--engines/titanic/npcs/titania.h61
-rw-r--r--engines/titanic/npcs/true_talk_npc.cpp66
-rw-r--r--engines/titanic/npcs/true_talk_npc.h60
-rw-r--r--engines/titanic/pet_control/pet_control.cpp96
-rw-r--r--engines/titanic/pet_control/pet_control.h99
-rw-r--r--engines/titanic/pet_control/pet_control_list_item.cpp27
-rw-r--r--engines/titanic/pet_control/pet_control_list_item.h42
-rw-r--r--engines/titanic/pet_control/pet_control_list_item2.cpp37
-rw-r--r--engines/titanic/pet_control/pet_control_list_item2.h51
-rw-r--r--engines/titanic/pet_control/pet_control_sub1.cpp42
-rw-r--r--engines/titanic/pet_control/pet_control_sub1.h69
-rw-r--r--engines/titanic/pet_control/pet_control_sub10.cpp48
-rw-r--r--engines/titanic/pet_control/pet_control_sub10.h54
-rw-r--r--engines/titanic/pet_control/pet_control_sub11.cpp27
-rw-r--r--engines/titanic/pet_control/pet_control_sub11.h36
-rw-r--r--engines/titanic/pet_control/pet_control_sub12.cpp80
-rw-r--r--engines/titanic/pet_control/pet_control_sub12.h76
-rw-r--r--engines/titanic/pet_control/pet_control_sub2.cpp59
-rw-r--r--engines/titanic/pet_control/pet_control_sub2.h69
-rw-r--r--engines/titanic/pet_control/pet_control_sub3.cpp27
-rw-r--r--engines/titanic/pet_control/pet_control_sub3.h55
-rw-r--r--engines/titanic/pet_control/pet_control_sub4.cpp42
-rw-r--r--engines/titanic/pet_control/pet_control_sub4.h59
-rw-r--r--engines/titanic/pet_control/pet_control_sub5.cpp43
-rw-r--r--engines/titanic/pet_control/pet_control_sub5.h63
-rw-r--r--engines/titanic/pet_control/pet_control_sub6.cpp27
-rw-r--r--engines/titanic/pet_control/pet_control_sub6.h42
-rw-r--r--engines/titanic/pet_control/pet_control_sub7.cpp27
-rw-r--r--engines/titanic/pet_control/pet_control_sub7.h41
-rw-r--r--engines/titanic/pet_control/pet_control_sub8.cpp36
-rw-r--r--engines/titanic/pet_control/pet_control_sub8.h49
-rw-r--r--engines/titanic/pet_control/pet_control_sub_base.cpp60
-rw-r--r--engines/titanic/pet_control/pet_control_sub_base.h109
-rw-r--r--engines/titanic/pet_control/pet_val.cpp61
-rw-r--r--engines/titanic/pet_control/pet_val.h50
-rw-r--r--engines/titanic/pet_control/pet_val_base.cpp76
-rw-r--r--engines/titanic/pet_control/pet_val_base.h67
-rw-r--r--engines/titanic/screen_manager.cpp188
-rw-r--r--engines/titanic/screen_manager.h185
-rw-r--r--engines/titanic/simple_file.cpp384
-rw-r--r--engines/titanic/simple_file.h236
-rw-r--r--engines/titanic/sound/auto_music_player.cpp52
-rw-r--r--engines/titanic/sound/auto_music_player.h53
-rw-r--r--engines/titanic/sound/auto_music_player_base.cpp52
-rw-r--r--engines/titanic/sound/auto_music_player_base.h54
-rw-r--r--engines/titanic/sound/auto_sound_player.cpp64
-rw-r--r--engines/titanic/sound/auto_sound_player.h59
-rw-r--r--engines/titanic/sound/auto_sound_player_adsr.cpp43
-rw-r--r--engines/titanic/sound/auto_sound_player_adsr.h51
-rw-r--r--engines/titanic/sound/background_sound_maker.cpp39
-rw-r--r--engines/titanic/sound/background_sound_maker.h50
-rw-r--r--engines/titanic/sound/bird_song.cpp39
-rw-r--r--engines/titanic/sound/bird_song.h50
-rw-r--r--engines/titanic/sound/dome_from_top_of_well.cpp37
-rw-r--r--engines/titanic/sound/dome_from_top_of_well.h47
-rw-r--r--engines/titanic/sound/enter_view_toggles_other_music.cpp44
-rw-r--r--engines/titanic/sound/enter_view_toggles_other_music.h50
-rw-r--r--engines/titanic/sound/gondolier_song.cpp39
-rw-r--r--engines/titanic/sound/gondolier_song.h50
-rw-r--r--engines/titanic/sound/music_player.cpp52
-rw-r--r--engines/titanic/sound/music_player.h57
-rw-r--r--engines/titanic/sound/music_room.cpp36
-rw-r--r--engines/titanic/sound/music_room.h44
-rw-r--r--engines/titanic/sound/node_auto_sound_player.cpp44
-rw-r--r--engines/titanic/sound/node_auto_sound_player.h53
-rw-r--r--engines/titanic/sound/restricted_auto_music_player.cpp52
-rw-r--r--engines/titanic/sound/restricted_auto_music_player.h55
-rw-r--r--engines/titanic/sound/room_auto_sound_player.cpp42
-rw-r--r--engines/titanic/sound/room_auto_sound_player.h50
-rw-r--r--engines/titanic/sound/room_trigger_auto_music_player.cpp42
-rw-r--r--engines/titanic/sound/room_trigger_auto_music_player.h50
-rw-r--r--engines/titanic/sound/season_noises.cpp53
-rw-r--r--engines/titanic/sound/season_noises.h54
-rw-r--r--engines/titanic/sound/seasonal_music_player.cpp66
-rw-r--r--engines/titanic/sound/seasonal_music_player.h57
-rw-r--r--engines/titanic/sound/sound.cpp50
-rw-r--r--engines/titanic/sound/sound.h79
-rw-r--r--engines/titanic/sound/sound_manager.cpp127
-rw-r--r--engines/titanic/sound/sound_manager.h129
-rw-r--r--engines/titanic/sound/titania_speech.cpp48
-rw-r--r--engines/titanic/sound/titania_speech.h53
-rw-r--r--engines/titanic/sound/trigger_auto_music_player.cpp39
-rw-r--r--engines/titanic/sound/trigger_auto_music_player.h49
-rw-r--r--engines/titanic/sound/view_auto_sound_player.cpp39
-rw-r--r--engines/titanic/sound/view_auto_sound_player.h50
-rw-r--r--engines/titanic/sound/view_toggles_other_music.cpp44
-rw-r--r--engines/titanic/sound/view_toggles_other_music.h50
-rw-r--r--engines/titanic/sound/water_lapping_sounds.cpp47
-rw-r--r--engines/titanic/sound/water_lapping_sounds.h50
-rw-r--r--engines/titanic/star_control/star_control.cpp56
-rw-r--r--engines/titanic/star_control/star_control.h59
-rw-r--r--engines/titanic/star_control/star_control_sub1.cpp49
-rw-r--r--engines/titanic/star_control/star_control_sub1.h61
-rw-r--r--engines/titanic/star_control/star_control_sub10.cpp28
-rw-r--r--engines/titanic/star_control/star_control_sub10.h38
-rw-r--r--engines/titanic/star_control/star_control_sub11.cpp51
-rw-r--r--engines/titanic/star_control/star_control_sub11.h63
-rw-r--r--engines/titanic/star_control/star_control_sub12.cpp40
-rw-r--r--engines/titanic/star_control/star_control_sub12.h64
-rw-r--r--engines/titanic/star_control/star_control_sub13.cpp75
-rw-r--r--engines/titanic/star_control/star_control_sub13.h73
-rw-r--r--engines/titanic/star_control/star_control_sub14.cpp50
-rw-r--r--engines/titanic/star_control/star_control_sub14.h58
-rw-r--r--engines/titanic/star_control/star_control_sub15.cpp31
-rw-r--r--engines/titanic/star_control/star_control_sub15.h43
-rw-r--r--engines/titanic/star_control/star_control_sub2.cpp28
-rw-r--r--engines/titanic/star_control/star_control_sub2.h37
-rw-r--r--engines/titanic/star_control/star_control_sub3.cpp35
-rw-r--r--engines/titanic/star_control/star_control_sub3.h58
-rw-r--r--engines/titanic/star_control/star_control_sub4.cpp31
-rw-r--r--engines/titanic/star_control/star_control_sub4.h43
-rw-r--r--engines/titanic/star_control/star_control_sub5.cpp31
-rw-r--r--engines/titanic/star_control/star_control_sub5.h50
-rw-r--r--engines/titanic/star_control/star_control_sub6.cpp33
-rw-r--r--engines/titanic/star_control/star_control_sub6.h48
-rw-r--r--engines/titanic/star_control/star_control_sub7.cpp28
-rw-r--r--engines/titanic/star_control/star_control_sub7.h35
-rw-r--r--engines/titanic/star_control/star_control_sub8.cpp31
-rw-r--r--engines/titanic/star_control/star_control_sub8.h59
-rw-r--r--engines/titanic/star_control/star_control_sub9.cpp28
-rw-r--r--engines/titanic/star_control/star_control_sub9.h42
-rw-r--r--engines/titanic/string.cpp99
-rw-r--r--engines/titanic/string.h99
-rw-r--r--engines/titanic/text_cursor.cpp37
-rw-r--r--engines/titanic/text_cursor.h41
-rw-r--r--engines/titanic/titanic.cpp115
-rw-r--r--engines/titanic/titanic.h115
-rw-r--r--engines/titanic/true_talk/barbot_script.cpp103
-rw-r--r--engines/titanic/true_talk/barbot_script.h56
-rw-r--r--engines/titanic/true_talk/bellbot_script.cpp114
-rw-r--r--engines/titanic/true_talk/bellbot_script.h60
-rw-r--r--engines/titanic/true_talk/deskbot_script.cpp131
-rw-r--r--engines/titanic/true_talk/deskbot_script.h59
-rw-r--r--engines/titanic/true_talk/doorbot_script.cpp103
-rw-r--r--engines/titanic/true_talk/doorbot_script.h58
-rw-r--r--engines/titanic/true_talk/liftbot_script.cpp103
-rw-r--r--engines/titanic/true_talk/liftbot_script.h56
-rw-r--r--engines/titanic/true_talk/maitred_script.cpp103
-rw-r--r--engines/titanic/true_talk/maitred_script.h52
-rw-r--r--engines/titanic/true_talk/parrot_script.cpp69
-rw-r--r--engines/titanic/true_talk/parrot_script.h49
-rw-r--r--engines/titanic/true_talk/succubus_script.cpp74
-rw-r--r--engines/titanic/true_talk/succubus_script.h53
-rw-r--r--engines/titanic/true_talk/title_engine.cpp27
-rw-r--r--engines/titanic/true_talk/title_engine.h33
-rw-r--r--engines/titanic/true_talk/true_talk_manager.cpp194
-rw-r--r--engines/titanic/true_talk/true_talk_manager.h117
-rw-r--r--engines/titanic/true_talk/tt_named_script.cpp240
-rw-r--r--engines/titanic/true_talk/tt_named_script.h115
-rw-r--r--engines/titanic/true_talk/tt_script_base.cpp92
-rw-r--r--engines/titanic/true_talk/tt_script_base.h70
-rw-r--r--engines/titanic/true_talk/tt_scripts.cpp99
-rw-r--r--engines/titanic/true_talk/tt_scripts.h90
-rw-r--r--engines/titanic/true_talk/tt_string.cpp27
-rw-r--r--engines/titanic/true_talk/tt_string.h43
-rw-r--r--engines/titanic/true_talk/tt_unnamed_script.cpp64
-rw-r--r--engines/titanic/true_talk/tt_unnamed_script.h62
-rw-r--r--engines/titanic/video_surface.cpp232
-rw-r--r--engines/titanic/video_surface.h231
907 files changed, 53385 insertions, 0 deletions
diff --git a/engines/titanic/carry/arm.cpp b/engines/titanic/carry/arm.cpp
new file mode 100644
index 0000000000..fdf73e93f3
--- /dev/null
+++ b/engines/titanic/carry/arm.cpp
@@ -0,0 +1,75 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/arm.h"
+
+namespace Titanic {
+
+CArm::CArm() : CCarry(), _string6("Key"),
+ _field138(0), _field13C(0), _field140(0), _field144(0),
+ _field148(0), _field158(0), _field15C(220), _field160(208),
+ _field164(409), _field168(350), _field16C(3), _field170(0) {
+}
+
+void CArm::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string6, indent);
+ file->writeNumberLine(_field138, indent);
+ file->writeNumberLine(_field13C, indent);
+ file->writeNumberLine(_field140, indent);
+ file->writeNumberLine(_field144, indent);
+ file->writeNumberLine(_field148, indent);
+
+ file->writeQuotedLine(_string7, indent);
+ file->writeNumberLine(_field158, indent);
+ file->writeNumberLine(_field15C, indent);
+ file->writeNumberLine(_field160, indent);
+ file->writeNumberLine(_field164, indent);
+ file->writeNumberLine(_field168, indent);
+ file->writeNumberLine(_field16C, indent);
+ file->writeNumberLine(_field170, indent);
+
+ CCarry::save(file, indent);
+}
+
+void CArm::load(SimpleFile *file) {
+ file->readNumber();
+ _string6 = file->readString();
+ _field138 = file->readNumber();
+ _field13C = file->readNumber();
+ _field140 = file->readNumber();
+ _field144 = file->readNumber();
+ _field148 = file->readNumber();
+
+ _string7 = file->readString();
+ _field158 = file->readNumber();
+ _field15C = file->readNumber();
+ _field160 = file->readNumber();
+ _field164 = file->readNumber();
+ _field168 = file->readNumber();
+ _field16C = file->readNumber();
+ _field170 = file->readNumber();
+
+ CCarry::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/arm.h b/engines/titanic/carry/arm.h
new file mode 100644
index 0000000000..1f93009d04
--- /dev/null
+++ b/engines/titanic/carry/arm.h
@@ -0,0 +1,63 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ARM_H
+#define TITANIC_ARM_H
+
+#include "titanic/carry/carry.h"
+
+namespace Titanic {
+
+class CArm : public CCarry {
+private:
+ CString _string6;
+ int _field138;
+ int _field13C;
+ int _field140;
+ int _field144;
+ int _field148;
+ CString _string7;
+ int _field158;
+ int _field15C;
+ int _field160;
+ int _field164;
+ int _field168;
+ int _field16C;
+ int _field170;
+public:
+ CLASSDEF
+ CArm();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ARM_H */
diff --git a/engines/titanic/carry/auditory_centre.cpp b/engines/titanic/carry/auditory_centre.cpp
new file mode 100644
index 0000000000..e5dedcd654
--- /dev/null
+++ b/engines/titanic/carry/auditory_centre.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/auditory_centre.h"
+
+namespace Titanic {
+
+void CAuditoryCentre::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CBrain::save(file, indent);
+}
+
+void CAuditoryCentre::load(SimpleFile *file) {
+ file->readNumber();
+ CBrain::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/auditory_centre.h b/engines/titanic/carry/auditory_centre.h
new file mode 100644
index 0000000000..c429fd78cd
--- /dev/null
+++ b/engines/titanic/carry/auditory_centre.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_AUDITORY_CENTRE_H
+#define TITANIC_AUDITORY_CENTRE_H
+
+#include "titanic/carry/brain.h"
+
+namespace Titanic {
+
+class CAuditoryCentre : public CBrain {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_AUDITORY_CENTRE_H */
diff --git a/engines/titanic/carry/bowl_ear.cpp b/engines/titanic/carry/bowl_ear.cpp
new file mode 100644
index 0000000000..70d2409a05
--- /dev/null
+++ b/engines/titanic/carry/bowl_ear.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/bowl_ear.h"
+
+namespace Titanic {
+
+void CBowlEar::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CEar::save(file, indent);
+}
+
+void CBowlEar::load(SimpleFile *file) {
+ file->readNumber();
+ CEar::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/bowl_ear.h b/engines/titanic/carry/bowl_ear.h
new file mode 100644
index 0000000000..1617ceda8d
--- /dev/null
+++ b/engines/titanic/carry/bowl_ear.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BOWL_EAR_H
+#define TITANIC_BOWL_EAR_H
+
+#include "titanic/carry/ear.h"
+
+namespace Titanic {
+
+class CBowlEar : public CEar {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BOWL_EAR_H */
diff --git a/engines/titanic/carry/brain.cpp b/engines/titanic/carry/brain.cpp
new file mode 100644
index 0000000000..0d1cdf7518
--- /dev/null
+++ b/engines/titanic/carry/brain.cpp
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/brain.h"
+
+namespace Titanic {
+
+CBrain::CBrain() : CCarry(), _field134(0), _field138(0) {
+}
+
+void CBrain::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writePoint(_pos1, indent);
+ file->writeNumberLine(_field134, indent);
+ file->writeNumberLine(_field138, indent);
+
+ CCarry::save(file, indent);
+}
+
+void CBrain::load(SimpleFile *file) {
+ file->readNumber();
+ _pos1 = file->readPoint();
+ _field134 = file->readNumber();
+ _field138 = file->readNumber();
+
+ CCarry::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/brain.h b/engines/titanic/carry/brain.h
new file mode 100644
index 0000000000..8cfd491cea
--- /dev/null
+++ b/engines/titanic/carry/brain.h
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BRAIN_H
+#define TITANIC_BRAIN_H
+
+#include "titanic/carry/carry.h"
+
+namespace Titanic {
+
+class CBrain : public CCarry {
+private:
+ Common::Point _pos1;
+ int _field134;
+ int _field138;
+public:
+ CLASSDEF
+ CBrain();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BRAIN_H */
diff --git a/engines/titanic/carry/bridge_piece.cpp b/engines/titanic/carry/bridge_piece.cpp
new file mode 100644
index 0000000000..e93d3c455a
--- /dev/null
+++ b/engines/titanic/carry/bridge_piece.cpp
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/bridge_piece.h"
+
+namespace Titanic {
+
+CBridgePiece::CBridgePiece() : CCarry(), _field140(0) {
+}
+
+void CBridgePiece::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string6, indent);
+ file->writePoint(_pos3, indent);
+ file->writeNumberLine(_field140, indent);
+
+ CCarry::save(file, indent);
+}
+
+void CBridgePiece::load(SimpleFile *file) {
+ file->readNumber();
+ _string6 = file->readString();
+ _pos3 = file->readPoint();
+ _field140 = file->readNumber();
+
+ CCarry::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/bridge_piece.h b/engines/titanic/carry/bridge_piece.h
new file mode 100644
index 0000000000..b96015a2a9
--- /dev/null
+++ b/engines/titanic/carry/bridge_piece.h
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BRIDGE_PIECE_H
+#define TITANIC_BRIDGE_PIECE_H
+
+#include "titanic/carry/carry.h"
+
+namespace Titanic {
+
+class CBridgePiece : public CCarry {
+private:
+ CString _string6;
+ Common::Point _pos3;
+ int _field140;
+public:
+ CLASSDEF
+ CBridgePiece();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BRIDGE_PIECE_H */
diff --git a/engines/titanic/carry/carry.cpp b/engines/titanic/carry/carry.cpp
new file mode 100644
index 0000000000..74544896dd
--- /dev/null
+++ b/engines/titanic/carry/carry.cpp
@@ -0,0 +1,80 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/carry.h"
+
+namespace Titanic {
+
+CCarry::CCarry() : CGameObject(), _fieldDC(0), _fieldE0(1),
+ _field100(0), _field104(0), _field108(0), _field10C(0),
+ _field110(0), _field120(0), _field124(0), _field128(0),
+ _string1("None"),
+ _string2("NULL"),
+ _string3("That doesn't seem to do anything."),
+ _string4("It doesn't seem to want this.") {
+}
+
+void CCarry::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writePoint(_pos1, indent);
+ file->writeQuotedLine(_string2, indent);
+ file->writeNumberLine(_fieldDC, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeQuotedLine(_string3, indent);
+ file->writeQuotedLine(_string4, indent);
+ file->writePoint(_pos2, indent);
+ file->writeNumberLine(_field104, indent);
+ file->writeNumberLine(_field108, indent);
+ file->writeNumberLine(_field10C, indent);
+ file->writeNumberLine(_field110, indent);
+ file->writeQuotedLine(_string5, indent);
+ file->writeNumberLine(_field120, indent);
+ file->writeNumberLine(_field124, indent);
+ file->writeNumberLine(_field128, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CCarry::load(SimpleFile *file) {
+ file->readNumber();
+ _string1 = file->readString();
+ _pos1 = file->readPoint();
+ _string2 = file->readString();
+ _fieldDC = file->readNumber();
+ _fieldE0 = file->readNumber();
+ _string3 = file->readString();
+ _string4 = file->readString();
+ _pos2 = file->readPoint();
+ _field104 = file->readNumber();
+ _field108 = file->readNumber();
+ _field10C = file->readNumber();
+ _field110 = file->readNumber();
+ _string5 = file->readString();
+ _field120 = file->readNumber();
+ _field124 = file->readNumber();
+ _field128 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/carry.h b/engines/titanic/carry/carry.h
new file mode 100644
index 0000000000..6b3ae2323e
--- /dev/null
+++ b/engines/titanic/carry/carry.h
@@ -0,0 +1,66 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CARRY_H
+#define TITANIC_CARRY_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CCarry : public CGameObject {
+private:
+ CString _string1;
+ Common::Point _pos1;
+ CString _string2;
+ int _fieldDC;
+ int _fieldE0;
+ CString _string3;
+ CString _string4;
+ Common::Point _pos2;
+ int _field100;
+ int _field104;
+ int _field108;
+ int _field10C;
+ int _field110;
+ CString _string5;
+ int _field120;
+ int _field124;
+ int _field128;
+public:
+ CLASSDEF
+ CCarry();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CARRY_H */
diff --git a/engines/titanic/carry/carry_parrot.cpp b/engines/titanic/carry/carry_parrot.cpp
new file mode 100644
index 0000000000..80c833261c
--- /dev/null
+++ b/engines/titanic/carry/carry_parrot.cpp
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/carry_parrot.h"
+
+namespace Titanic {
+
+CCarryParrot::CCarryParrot() : CCarry(), _string6("PerchedParrot"),
+ _field138(0), _field13C(0), _field140(0), _field144(10),
+ _field148(25), _field14C(0), _field150(8) {
+}
+
+void CCarryParrot::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string6, indent);
+ file->writeNumberLine(_field138, indent);
+ file->writeNumberLine(_field13C, indent);
+ file->writeNumberLine(_field140, indent);
+
+ CCarry::save(file, indent);
+}
+
+void CCarryParrot::load(SimpleFile *file) {
+ file->readNumber();
+ _string6 = file->readString();
+ _field138 = file->readNumber();
+ _field13C = file->readNumber();
+ _field140 = file->readNumber();
+
+ CCarry::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/carry_parrot.h b/engines/titanic/carry/carry_parrot.h
new file mode 100644
index 0000000000..a2b17004ac
--- /dev/null
+++ b/engines/titanic/carry/carry_parrot.h
@@ -0,0 +1,57 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CARRY_PARROT_H
+#define TITANIC_CARRY_PARROT_H
+
+#include "titanic/carry/carry.h"
+
+namespace Titanic {
+
+class CCarryParrot : public CCarry {
+private:
+ CString _string6;
+ int _field138;
+ int _field13C;
+ int _field140;
+ int _field144;
+ int _field148;
+ int _field14C;
+ int _field150;
+public:
+ CLASSDEF
+ CCarryParrot();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CARRY_PARROT_H */
diff --git a/engines/titanic/carry/central_core.cpp b/engines/titanic/carry/central_core.cpp
new file mode 100644
index 0000000000..97309e0a86
--- /dev/null
+++ b/engines/titanic/carry/central_core.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/central_core.h"
+
+namespace Titanic {
+
+void CCentralCore::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CBrain::save(file, indent);
+}
+
+void CCentralCore::load(SimpleFile *file) {
+ file->readNumber();
+ CBrain::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/central_core.h b/engines/titanic/carry/central_core.h
new file mode 100644
index 0000000000..b397046088
--- /dev/null
+++ b/engines/titanic/carry/central_core.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CENTRAL_CORE_H
+#define TITANIC_CENTRAL_CORE_H
+
+#include "titanic/carry/brain.h"
+
+namespace Titanic {
+
+class CCentralCore : public CBrain {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CENTRAL_CORE_H */
diff --git a/engines/titanic/carry/chicken.cpp b/engines/titanic/carry/chicken.cpp
new file mode 100644
index 0000000000..52f3c25cef
--- /dev/null
+++ b/engines/titanic/carry/chicken.cpp
@@ -0,0 +1,55 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/chicken.h"
+
+namespace Titanic {
+
+int CChicken::_v1;
+
+CChicken::CChicken() : CCarry(), _string6("None"),
+ _field12C(1), _field13C(0), _field140(0) {
+}
+
+void CChicken::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_field12C, indent);
+ file->writeQuotedLine(_string6, indent);
+ file->writeNumberLine(_v1, indent);
+ file->writeNumberLine(_field13C, indent);
+ file->writeNumberLine(_field140, indent);
+
+ CCarry::save(file, indent);
+}
+
+void CChicken::load(SimpleFile *file) {
+ file->readNumber();
+ _field12C = file->readNumber();
+ _string6 = file->readString();
+ _v1 = file->readNumber();
+ _field13C = file->readNumber();
+ _field140 = file->readNumber();
+
+ CCarry::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/chicken.h b/engines/titanic/carry/chicken.h
new file mode 100644
index 0000000000..a81c27c7e1
--- /dev/null
+++ b/engines/titanic/carry/chicken.h
@@ -0,0 +1,55 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CHICKEN_H
+#define TITANIC_CHICKEN_H
+
+#include "titanic/carry/carry.h"
+
+namespace Titanic {
+
+class CChicken : public CCarry {
+private:
+ static int _v1;
+private:
+ int _field12C;
+ CString _string6;
+ int _field13C;
+ int _field140;
+public:
+ CLASSDEF
+ CChicken();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CHICKEN_H */
diff --git a/engines/titanic/carry/crushed_tv.cpp b/engines/titanic/carry/crushed_tv.cpp
new file mode 100644
index 0000000000..a0a7ee7a43
--- /dev/null
+++ b/engines/titanic/carry/crushed_tv.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/crushed_tv.h"
+
+namespace Titanic {
+
+CCrushedTV::CCrushedTV() : CCarry() {
+}
+
+void CCrushedTV::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CCarry::save(file, indent);
+}
+
+void CCrushedTV::load(SimpleFile *file) {
+ file->readNumber();
+ CCarry::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/crushed_tv.h b/engines/titanic/carry/crushed_tv.h
new file mode 100644
index 0000000000..b2bfd7580e
--- /dev/null
+++ b/engines/titanic/carry/crushed_tv.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CRUSHED_TV_H
+#define TITANIC_CRUSHED_TV_H
+
+#include "titanic/carry/carry.h"
+
+namespace Titanic {
+
+class CCrushedTV : public CCarry {
+public:
+ CLASSDEF
+ CCrushedTV();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CRUSHED_TV_H */
diff --git a/engines/titanic/carry/ear.cpp b/engines/titanic/carry/ear.cpp
new file mode 100644
index 0000000000..d87b09d9b4
--- /dev/null
+++ b/engines/titanic/carry/ear.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/ear.h"
+
+namespace Titanic {
+
+CEar::CEar() : CHeadPiece() {
+}
+
+void CEar::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CHeadPiece::save(file, indent);
+}
+
+void CEar::load(SimpleFile *file) {
+ file->readNumber();
+ CHeadPiece::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/ear.h b/engines/titanic/carry/ear.h
new file mode 100644
index 0000000000..2a20620342
--- /dev/null
+++ b/engines/titanic/carry/ear.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_EAR_H
+#define TITANIC_EAR_H
+
+#include "titanic/carry/head_piece.h"
+
+namespace Titanic {
+
+class CEar : public CHeadPiece {
+public:
+ CLASSDEF
+ CEar();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_EAR_H */
diff --git a/engines/titanic/carry/eye.cpp b/engines/titanic/carry/eye.cpp
new file mode 100644
index 0000000000..21fc3faa7e
--- /dev/null
+++ b/engines/titanic/carry/eye.cpp
@@ -0,0 +1,42 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/eye.h"
+
+namespace Titanic {
+
+CEye::CEye() : CHeadPiece(), _eyeNum(0) {
+}
+
+void CEye::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_eyeNum, indent);
+ CHeadPiece::save(file, indent);
+}
+
+void CEye::load(SimpleFile *file) {
+ file->readNumber();
+ _eyeNum = file->readNumber();
+ CHeadPiece::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/eye.h b/engines/titanic/carry/eye.h
new file mode 100644
index 0000000000..f7e17fa81f
--- /dev/null
+++ b/engines/titanic/carry/eye.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_EYE_H
+#define TITANIC_EYE_H
+
+#include "titanic/carry/head_piece.h"
+
+namespace Titanic {
+
+class CEye : public CHeadPiece {
+private:
+ int _eyeNum;
+public:
+ CLASSDEF
+ CEye();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_EYE_H */
diff --git a/engines/titanic/carry/feathers.cpp b/engines/titanic/carry/feathers.cpp
new file mode 100644
index 0000000000..c03b73859b
--- /dev/null
+++ b/engines/titanic/carry/feathers.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/feathers.h"
+
+namespace Titanic {
+
+CFeathers::CFeathers() : CCarry() {
+}
+
+void CFeathers::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CCarry::save(file, indent);
+}
+
+void CFeathers::load(SimpleFile *file) {
+ file->readNumber();
+ CCarry::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/feathers.h b/engines/titanic/carry/feathers.h
new file mode 100644
index 0000000000..106e9a0620
--- /dev/null
+++ b/engines/titanic/carry/feathers.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_FEATHERS_H
+#define TITANIC_FEATHERS_H
+
+#include "titanic/carry/carry.h"
+
+namespace Titanic {
+
+class CFeathers : public CCarry {
+public:
+ CLASSDEF
+ CFeathers();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_FEATHERS_H */
diff --git a/engines/titanic/carry/fruit.cpp b/engines/titanic/carry/fruit.cpp
new file mode 100644
index 0000000000..3355d6e006
--- /dev/null
+++ b/engines/titanic/carry/fruit.cpp
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/fruit.h"
+
+namespace Titanic {
+
+CFruit::CFruit() : CCarry(), _field12C(0),
+ _field130(0), _field134(0), _field138(0) {
+}
+
+void CFruit::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_field12C, indent);
+ file->writeNumberLine(_field130, indent);
+ file->writeNumberLine(_field134, indent);
+ file->writeNumberLine(_field138, indent);
+
+ CCarry::save(file, indent);
+}
+
+void CFruit::load(SimpleFile *file) {
+ file->readNumber();
+ _field12C = file->readNumber();
+ _field130 = file->readNumber();
+ _field134 = file->readNumber();
+ _field138 = file->readNumber();
+
+ CCarry::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/fruit.h b/engines/titanic/carry/fruit.h
new file mode 100644
index 0000000000..3d23afd389
--- /dev/null
+++ b/engines/titanic/carry/fruit.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_FRUIT_H
+#define TITANIC_FRUIT_H
+
+#include "titanic/carry/carry.h"
+
+namespace Titanic {
+
+class CFruit : public CCarry {
+private:
+ int _field12C;
+ int _field130;
+ int _field134;
+ int _field138;
+public:
+ CLASSDEF
+ CFruit();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_FRUIT_H */
diff --git a/engines/titanic/carry/glass.cpp b/engines/titanic/carry/glass.cpp
new file mode 100644
index 0000000000..1f0e059f54
--- /dev/null
+++ b/engines/titanic/carry/glass.cpp
@@ -0,0 +1,42 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/glass.h"
+
+namespace Titanic {
+
+CGlass::CGlass() : CCarry(), _string6("None") {
+}
+
+void CGlass::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string6, indent);
+ CCarry::save(file, indent);
+}
+
+void CGlass::load(SimpleFile *file) {
+ file->readNumber();
+ _string6 = file->readString();
+ CCarry::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/glass.h b/engines/titanic/carry/glass.h
new file mode 100644
index 0000000000..55c032269a
--- /dev/null
+++ b/engines/titanic/carry/glass.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_GLASS_H
+#define TITANIC_GLASS_H
+
+#include "titanic/carry/carry.h"
+
+namespace Titanic {
+
+class CGlass : public CCarry {
+private:
+ CString _string6;
+public:
+ CLASSDEF
+ CGlass();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_GLASS_H */
diff --git a/engines/titanic/carry/hammer.cpp b/engines/titanic/carry/hammer.cpp
new file mode 100644
index 0000000000..f1dc3b2aa0
--- /dev/null
+++ b/engines/titanic/carry/hammer.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/hammer.h"
+
+namespace Titanic {
+
+CHammer::CHammer() : CCarry() {
+}
+
+void CHammer::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CCarry::save(file, indent);
+}
+
+void CHammer::load(SimpleFile *file) {
+ file->readNumber();
+ CCarry::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/hammer.h b/engines/titanic/carry/hammer.h
new file mode 100644
index 0000000000..e3180e76a0
--- /dev/null
+++ b/engines/titanic/carry/hammer.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_HAMMER_H
+#define TITANIC_HAMMER_H
+
+#include "titanic/carry/carry.h"
+
+namespace Titanic {
+
+class CHammer : public CCarry {
+public:
+ CLASSDEF
+ CHammer();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_HAMMER_H */
diff --git a/engines/titanic/carry/head_piece.cpp b/engines/titanic/carry/head_piece.cpp
new file mode 100644
index 0000000000..1eab585462
--- /dev/null
+++ b/engines/titanic/carry/head_piece.cpp
@@ -0,0 +1,49 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/head_piece.h"
+
+namespace Titanic {
+
+CHeadPiece::CHeadPiece() : CCarry(), _string6("Not Working"),
+ _field12C(0), _field13C(0) {
+}
+
+void CHeadPiece::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_field12C, indent);
+ file->writeQuotedLine(_string6, indent);
+ file->writeNumberLine(_field13C, indent);
+
+ CCarry::save(file, indent);
+}
+
+void CHeadPiece::load(SimpleFile *file) {
+ file->readNumber();
+ _field12C = file->readNumber();
+ _string6 = file->readString();
+ _field13C = file->readNumber();
+
+ CCarry::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/head_piece.h b/engines/titanic/carry/head_piece.h
new file mode 100644
index 0000000000..daa5925530
--- /dev/null
+++ b/engines/titanic/carry/head_piece.h
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_HEAD_PIECE_H
+#define TITANIC_HEAD_PIECE_H
+
+#include "titanic/carry/carry.h"
+
+namespace Titanic {
+
+class CHeadPiece : public CCarry {
+private:
+ int _field12C;
+ CString _string6;
+ int _field13C;
+public:
+ CLASSDEF
+ CHeadPiece();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_HEAD_PIECE_H */
diff --git a/engines/titanic/carry/hose.cpp b/engines/titanic/carry/hose.cpp
new file mode 100644
index 0000000000..1617feffc1
--- /dev/null
+++ b/engines/titanic/carry/hose.cpp
@@ -0,0 +1,57 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/hose.h"
+
+namespace Titanic {
+
+CHoseStatics *CHose::_statics;
+
+void CHose::init() {
+ _statics = new CHoseStatics();
+}
+
+void CHose::deinit() {
+ delete _statics;
+}
+
+CHose::CHose() : CCarry(),
+ _string6("Succ-U-Bus auxiliary hose attachment incompatible with sliding glass cover.") {
+}
+
+void CHose::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_statics->_v1, indent);
+ file->writeQuotedLine(_statics->_v2, indent);
+ file->writeQuotedLine(_string6, indent);
+ CCarry::save(file, indent);
+}
+
+void CHose::load(SimpleFile *file) {
+ file->readNumber();
+ _statics->_v1 = file->readNumber();
+ _statics->_v2 = file->readString();
+ _string6 = file->readString();
+ CCarry::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/hose.h b/engines/titanic/carry/hose.h
new file mode 100644
index 0000000000..c16351b937
--- /dev/null
+++ b/engines/titanic/carry/hose.h
@@ -0,0 +1,59 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_HOSE_H
+#define TITANIC_HOSE_H
+
+#include "titanic/carry/carry.h"
+
+namespace Titanic {
+
+struct CHoseStatics {
+ int _v1;
+ CString _v2;
+};
+
+class CHose : public CCarry {
+protected:
+ static CHoseStatics *_statics;
+
+ CString _string6;
+public:
+ CLASSDEF
+ CHose();
+ static void init();
+ static void deinit();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_HOSE_H */
diff --git a/engines/titanic/carry/hose_end.cpp b/engines/titanic/carry/hose_end.cpp
new file mode 100644
index 0000000000..97d75b0ac4
--- /dev/null
+++ b/engines/titanic/carry/hose_end.cpp
@@ -0,0 +1,43 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/hose_end.h"
+
+namespace Titanic {
+
+CHoseEnd::CHoseEnd() : CHose() {
+ _string6 = "Connection refused by remote hose.";
+}
+
+void CHoseEnd::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string6, indent);
+ CHose::save(file, indent);
+}
+
+void CHoseEnd::load(SimpleFile *file) {
+ file->readNumber();
+ _string6 = file->readString();
+ CHose::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/hose_end.h b/engines/titanic/carry/hose_end.h
new file mode 100644
index 0000000000..d9efb594bc
--- /dev/null
+++ b/engines/titanic/carry/hose_end.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_HOSE_END_H
+#define TITANIC_HOSE_END_H
+
+#include "titanic/carry/hose.h"
+
+namespace Titanic {
+
+class CHoseEnd : public CHose {
+public:
+ CLASSDEF
+ CHoseEnd();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_HOSE_END_H */
diff --git a/engines/titanic/carry/key.cpp b/engines/titanic/carry/key.cpp
new file mode 100644
index 0000000000..2c559bb6c9
--- /dev/null
+++ b/engines/titanic/carry/key.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/key.h"
+
+namespace Titanic {
+
+CKey::CKey() : CCarry() {
+}
+
+void CKey::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CCarry::save(file, indent);
+}
+
+void CKey::load(SimpleFile *file) {
+ file->readNumber();
+ CCarry::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/key.h b/engines/titanic/carry/key.h
new file mode 100644
index 0000000000..e6973b5c7c
--- /dev/null
+++ b/engines/titanic/carry/key.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_KEY_H
+#define TITANIC_KEY_H
+
+#include "titanic/carry/carry.h"
+
+namespace Titanic {
+
+class CKey : public CCarry {
+public:
+ CLASSDEF
+ CKey();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_KEY_H */
diff --git a/engines/titanic/carry/liftbot_head.cpp b/engines/titanic/carry/liftbot_head.cpp
new file mode 100644
index 0000000000..422d88ad0f
--- /dev/null
+++ b/engines/titanic/carry/liftbot_head.cpp
@@ -0,0 +1,42 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/liftbot_head.h"
+
+namespace Titanic {
+
+CLiftbotHead::CLiftbotHead() : CCarry(), _field12C(0) {
+}
+
+void CLiftbotHead::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_field12C, indent);
+ CCarry::save(file, indent);
+}
+
+void CLiftbotHead::load(SimpleFile *file) {
+ file->readNumber();
+ _field12C = file->readNumber();
+ CCarry::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/liftbot_head.h b/engines/titanic/carry/liftbot_head.h
new file mode 100644
index 0000000000..f2b60c1d7e
--- /dev/null
+++ b/engines/titanic/carry/liftbot_head.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_LIFTBOT_HEAD_H
+#define TITANIC_LIFTBOT_HEAD_H
+
+#include "titanic/carry/carry.h"
+
+namespace Titanic {
+
+class CLiftbotHead : public CCarry {
+private:
+ int _field12C;
+public:
+ CLASSDEF
+ CLiftbotHead();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_LIFTBOT_HEAD_H */
diff --git a/engines/titanic/carry/long_stick.cpp b/engines/titanic/carry/long_stick.cpp
new file mode 100644
index 0000000000..d5bf73b9b0
--- /dev/null
+++ b/engines/titanic/carry/long_stick.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/long_stick.h"
+
+namespace Titanic {
+
+CLongStick::CLongStick() : CCarry() {
+}
+
+void CLongStick::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CCarry::save(file, indent);
+}
+
+void CLongStick::load(SimpleFile *file) {
+ file->readNumber();
+ CCarry::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/long_stick.h b/engines/titanic/carry/long_stick.h
new file mode 100644
index 0000000000..e2718a3d2b
--- /dev/null
+++ b/engines/titanic/carry/long_stick.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_LONG_STICK_H
+#define TITANIC_LONG_STICK_H
+
+#include "titanic/carry/carry.h"
+
+namespace Titanic {
+
+class CLongStick : public CCarry {
+public:
+ CLASSDEF
+ CLongStick();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_LONG_STICK_H */
diff --git a/engines/titanic/carry/magazine.cpp b/engines/titanic/carry/magazine.cpp
new file mode 100644
index 0000000000..efb68c1256
--- /dev/null
+++ b/engines/titanic/carry/magazine.cpp
@@ -0,0 +1,46 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/magazine.h"
+
+namespace Titanic {
+
+CMagazine::CMagazine() : CCarry() {
+}
+
+void CMagazine::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_field12C, indent);
+ file->writeNumberLine(_field130, indent);
+
+ CCarry::save(file, indent);
+}
+
+void CMagazine::load(SimpleFile *file) {
+ file->readNumber();
+ _field12C = file->readNumber();
+ _field130 = file->readNumber();
+
+ CCarry::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/magazine.h b/engines/titanic/carry/magazine.h
new file mode 100644
index 0000000000..7621599038
--- /dev/null
+++ b/engines/titanic/carry/magazine.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MAGAZINE_H
+#define TITANIC_MAGAZINE_H
+
+#include "titanic/carry/carry.h"
+
+namespace Titanic {
+
+class CMagazine : public CCarry {
+private:
+ int _field12C;
+ int _field130;
+public:
+ CLASSDEF
+ CMagazine();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MAGAZINE_H */
diff --git a/engines/titanic/carry/maitred_left_arm.cpp b/engines/titanic/carry/maitred_left_arm.cpp
new file mode 100644
index 0000000000..6fb93ecc63
--- /dev/null
+++ b/engines/titanic/carry/maitred_left_arm.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/maitred_left_arm.h"
+
+namespace Titanic {
+
+void CMaitreDLeftArm::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_field174, indent);
+ CArm::save(file, indent);
+}
+
+void CMaitreDLeftArm::load(SimpleFile *file) {
+ file->readNumber();
+ _field174 = file->readNumber();
+ CArm::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/maitred_left_arm.h b/engines/titanic/carry/maitred_left_arm.h
new file mode 100644
index 0000000000..e46485cdac
--- /dev/null
+++ b/engines/titanic/carry/maitred_left_arm.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_LEFT_ARM_H
+#define TITANIC_LEFT_ARM_H
+
+#include "titanic/carry/arm.h"
+
+namespace Titanic {
+
+class CMaitreDLeftArm : public CArm {
+private:
+ int _field174;
+public:
+ CLASSDEF
+ CMaitreDLeftArm() : CArm(), _field174(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_LEFT_ARM_H */
diff --git a/engines/titanic/carry/maitred_right_arm.cpp b/engines/titanic/carry/maitred_right_arm.cpp
new file mode 100644
index 0000000000..15767a2fc2
--- /dev/null
+++ b/engines/titanic/carry/maitred_right_arm.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/maitred_right_arm.h"
+
+namespace Titanic {
+
+void CMaitreDRightArm::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CArm::save(file, indent);
+}
+
+void CMaitreDRightArm::load(SimpleFile *file) {
+ file->readNumber();
+ CArm::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/maitred_right_arm.h b/engines/titanic/carry/maitred_right_arm.h
new file mode 100644
index 0000000000..c89b7e82a3
--- /dev/null
+++ b/engines/titanic/carry/maitred_right_arm.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MAITRED_RIGHT_ARM_H
+#define TITANIC_MAITRED_RIGHT_ARM_H
+
+#include "titanic/carry/arm.h"
+
+namespace Titanic {
+
+class CMaitreDRightArm : public CArm {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MAITRED_RIGHT_ARM_H */
diff --git a/engines/titanic/carry/mouth.cpp b/engines/titanic/carry/mouth.cpp
new file mode 100644
index 0000000000..058ffc42d7
--- /dev/null
+++ b/engines/titanic/carry/mouth.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/mouth.h"
+
+namespace Titanic {
+
+CMouth::CMouth() : CHeadPiece() {
+}
+
+void CMouth::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CHeadPiece::save(file, indent);
+}
+
+void CMouth::load(SimpleFile *file) {
+ file->readNumber();
+ CHeadPiece::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/mouth.h b/engines/titanic/carry/mouth.h
new file mode 100644
index 0000000000..1c446b2296
--- /dev/null
+++ b/engines/titanic/carry/mouth.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MOUTH_H
+#define TITANIC_MOUTH_H
+
+#include "titanic/carry/head_piece.h"
+
+namespace Titanic {
+
+class CMouth : public CHeadPiece {
+public:
+ CLASSDEF
+ CMouth();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MOUTH_H */
diff --git a/engines/titanic/carry/napkin.cpp b/engines/titanic/carry/napkin.cpp
new file mode 100644
index 0000000000..48d03819ee
--- /dev/null
+++ b/engines/titanic/carry/napkin.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/napkin.h"
+
+namespace Titanic {
+
+CNapkin::CNapkin() : CCarry() {
+}
+
+void CNapkin::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CCarry::save(file, indent);
+}
+
+void CNapkin::load(SimpleFile *file) {
+ file->readNumber();
+ CCarry::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/napkin.h b/engines/titanic/carry/napkin.h
new file mode 100644
index 0000000000..144189be5c
--- /dev/null
+++ b/engines/titanic/carry/napkin.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_NAPKIN_H
+#define TITANIC_NAPKIN_H
+
+#include "titanic/carry/carry.h"
+
+namespace Titanic {
+
+class CNapkin : public CCarry {
+public:
+ CLASSDEF
+ CNapkin();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_NAPKIN_H */
diff --git a/engines/titanic/carry/nose.cpp b/engines/titanic/carry/nose.cpp
new file mode 100644
index 0000000000..cd5085db44
--- /dev/null
+++ b/engines/titanic/carry/nose.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/nose.h"
+
+namespace Titanic {
+
+CNose::CNose() : CHeadPiece() {
+}
+
+void CNose::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CHeadPiece::save(file, indent);
+}
+
+void CNose::load(SimpleFile *file) {
+ file->readNumber();
+ CHeadPiece::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/nose.h b/engines/titanic/carry/nose.h
new file mode 100644
index 0000000000..717b639e82
--- /dev/null
+++ b/engines/titanic/carry/nose.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_NOSE_H
+#define TITANIC_NOSE_H
+
+#include "titanic/carry/head_piece.h"
+
+namespace Titanic {
+
+class CNose : public CHeadPiece {
+public:
+ CLASSDEF
+ CNose();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_NOSE_H */
diff --git a/engines/titanic/carry/note.cpp b/engines/titanic/carry/note.cpp
new file mode 100644
index 0000000000..e8400126ac
--- /dev/null
+++ b/engines/titanic/carry/note.cpp
@@ -0,0 +1,46 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/note.h"
+
+namespace Titanic {
+
+CNote::CNote() : CCarry(), _field138(1) {
+}
+
+void CNote::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string6, indent);
+ file->writeNumberLine(_field138, indent);
+
+ CCarry::save(file, indent);
+}
+
+void CNote::load(SimpleFile *file) {
+ file->readNumber();
+ _string6 = file->readString();
+ _field138 = file->readNumber();
+
+ CCarry::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/note.h b/engines/titanic/carry/note.h
new file mode 100644
index 0000000000..b96e2cf855
--- /dev/null
+++ b/engines/titanic/carry/note.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_NOTE_H
+#define TITANIC_NOTE_H
+
+#include "titanic/carry/carry.h"
+
+namespace Titanic {
+
+class CNote : public CCarry {
+private:
+ CString _string6;
+ int _field138;
+public:
+ CLASSDEF
+ CNote();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_NOTE_H */
diff --git a/engines/titanic/carry/parcel.cpp b/engines/titanic/carry/parcel.cpp
new file mode 100644
index 0000000000..b450d887c5
--- /dev/null
+++ b/engines/titanic/carry/parcel.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/parcel.h"
+
+namespace Titanic {
+
+CParcel::CParcel() : CCarry() {
+}
+
+void CParcel::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CCarry::save(file, indent);
+}
+
+void CParcel::load(SimpleFile *file) {
+ file->readNumber();
+ CCarry::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/parcel.h b/engines/titanic/carry/parcel.h
new file mode 100644
index 0000000000..59f3ed9d6c
--- /dev/null
+++ b/engines/titanic/carry/parcel.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PARCEL_H
+#define TITANIC_PARCEL_H
+
+#include "titanic/carry/carry.h"
+
+namespace Titanic {
+
+class CParcel : public CCarry {
+public:
+ CLASSDEF
+ CParcel();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PARCEL_H */
diff --git a/engines/titanic/carry/perch.cpp b/engines/titanic/carry/perch.cpp
new file mode 100644
index 0000000000..976921beb0
--- /dev/null
+++ b/engines/titanic/carry/perch.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/perch.h"
+
+namespace Titanic {
+
+void CPerch::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CCentralCore::save(file, indent);
+}
+
+void CPerch::load(SimpleFile *file) {
+ file->readNumber();
+ CCentralCore::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/perch.h b/engines/titanic/carry/perch.h
new file mode 100644
index 0000000000..1ed2ccaa9f
--- /dev/null
+++ b/engines/titanic/carry/perch.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PERCH_H
+#define TITANIC_PERCH_H
+
+#include "titanic/carry/central_core.h"
+
+namespace Titanic {
+
+class CPerch : public CCentralCore {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PERCH_H */
diff --git a/engines/titanic/carry/phonograph_cylinder.cpp b/engines/titanic/carry/phonograph_cylinder.cpp
new file mode 100644
index 0000000000..fb58c3214f
--- /dev/null
+++ b/engines/titanic/carry/phonograph_cylinder.cpp
@@ -0,0 +1,89 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/phonograph_cylinder.h"
+
+namespace Titanic {
+
+CPhonographCylinder::CPhonographCylinder() : CCarry(),
+ _field138(0), _field13C(0), _field140(0), _field144(0),
+ _field148(0), _field14C(0), _field150(0), _field154(0),
+ _field158(0), _field15C(0), _field160(0), _field164(0),
+ _field168(0), _field16C(0), _field170(0), _field174(0),
+ _field178(0), _field17C(0), _field180(0), _field184(0) {
+}
+
+void CPhonographCylinder::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string6, indent);
+ file->writeNumberLine(_field138, indent);
+ file->writeNumberLine(_field13C, indent);
+ file->writeNumberLine(_field140, indent);
+ file->writeNumberLine(_field144, indent);
+ file->writeNumberLine(_field148, indent);
+ file->writeNumberLine(_field14C, indent);
+ file->writeNumberLine(_field150, indent);
+ file->writeNumberLine(_field154, indent);
+ file->writeNumberLine(_field158, indent);
+ file->writeNumberLine(_field15C, indent);
+ file->writeNumberLine(_field160, indent);
+ file->writeNumberLine(_field164, indent);
+ file->writeNumberLine(_field168, indent);
+ file->writeNumberLine(_field16C, indent);
+ file->writeNumberLine(_field170, indent);
+ file->writeNumberLine(_field174, indent);
+ file->writeNumberLine(_field178, indent);
+ file->writeNumberLine(_field17C, indent);
+ file->writeNumberLine(_field180, indent);
+ file->writeNumberLine(_field184, indent);
+
+ CCarry::save(file, indent);
+}
+
+void CPhonographCylinder::load(SimpleFile *file) {
+ file->readNumber();
+ _string6 = file->readString();
+ _field138 = file->readNumber();
+ _field13C = file->readNumber();
+ _field140 = file->readNumber();
+ _field144 = file->readNumber();
+ _field148 = file->readNumber();
+ _field14C = file->readNumber();
+ _field150 = file->readNumber();
+ _field154 = file->readNumber();
+ _field158 = file->readNumber();
+ _field15C = file->readNumber();
+ _field160 = file->readNumber();
+ _field164 = file->readNumber();
+ _field168 = file->readNumber();
+ _field16C = file->readNumber();
+ _field170 = file->readNumber();
+ _field174 = file->readNumber();
+ _field178 = file->readNumber();
+ _field17C = file->readNumber();
+ _field180 = file->readNumber();
+ _field184 = file->readNumber();
+
+ CCarry::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/phonograph_cylinder.h b/engines/titanic/carry/phonograph_cylinder.h
new file mode 100644
index 0000000000..271ede54b0
--- /dev/null
+++ b/engines/titanic/carry/phonograph_cylinder.h
@@ -0,0 +1,70 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PHONOGRAPH_CYLINDER_H
+#define TITANIC_PHONOGRAPH_CYLINDER_H
+
+#include "titanic/carry/carry.h"
+
+namespace Titanic {
+
+class CPhonographCylinder : public CCarry {
+private:
+ CString _string6;
+ int _field138;
+ int _field13C;
+ int _field140;
+ int _field144;
+ int _field148;
+ int _field14C;
+ int _field150;
+ int _field154;
+ int _field158;
+ int _field15C;
+ int _field160;
+ int _field164;
+ int _field168;
+ int _field16C;
+ int _field170;
+ int _field174;
+ int _field178;
+ int _field17C;
+ int _field180;
+ int _field184;
+public:
+ CLASSDEF
+ CPhonographCylinder();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PHONOGRAPH_CYLINDER_H */
diff --git a/engines/titanic/carry/phonograph_ear.cpp b/engines/titanic/carry/phonograph_ear.cpp
new file mode 100644
index 0000000000..0b4142ca37
--- /dev/null
+++ b/engines/titanic/carry/phonograph_ear.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/phonograph_ear.h"
+
+namespace Titanic {
+
+void CPhonographEar::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_field140, indent);
+ CEar::save(file, indent);
+}
+
+void CPhonographEar::load(SimpleFile *file) {
+ file->readNumber();
+ _field140 = file->readNumber();
+ CEar::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/phonograph_ear.h b/engines/titanic/carry/phonograph_ear.h
new file mode 100644
index 0000000000..71ef38f926
--- /dev/null
+++ b/engines/titanic/carry/phonograph_ear.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PHONOGRAPH_EAR_H
+#define TITANIC_PHONOGRAPH_EAR_H
+
+#include "titanic/carry/ear.h"
+
+namespace Titanic {
+
+class CPhonographEar : public CEar {
+private:
+ int _field140;
+public:
+ CLASSDEF
+ CPhonographEar() : CEar(), _field140(1) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PHONOGRAPH_EYE_H */
diff --git a/engines/titanic/carry/photograph.cpp b/engines/titanic/carry/photograph.cpp
new file mode 100644
index 0000000000..92549b3ce5
--- /dev/null
+++ b/engines/titanic/carry/photograph.cpp
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/photograph.h"
+
+namespace Titanic {
+
+int CPhotograph::_v1;
+
+CPhotograph::CPhotograph() : CCarry(), _field12C(0), _field130(0) {
+}
+
+void CPhotograph::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_field12C, indent);
+ file->writeNumberLine(_v1, indent);
+ file->writeNumberLine(_field130, indent);
+
+ CCarry::save(file, indent);
+}
+
+void CPhotograph::load(SimpleFile *file) {
+ file->readNumber();
+ _field12C = file->readNumber();
+ _v1 = file->readNumber();
+ _field130 = file->readNumber();
+
+ CCarry::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/photograph.h b/engines/titanic/carry/photograph.h
new file mode 100644
index 0000000000..4141280a6b
--- /dev/null
+++ b/engines/titanic/carry/photograph.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PHOTOGRAPH_H
+#define TITANIC_PHOTOGRAPH_H
+
+#include "titanic/carry/carry.h"
+
+namespace Titanic {
+
+class CPhotograph : public CCarry {
+private:
+ static int _v1;
+private:
+ int _field12C;
+ int _field130;
+public:
+ CLASSDEF
+ CPhotograph();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PHOTOGRAPH_H */
diff --git a/engines/titanic/carry/plug_in.cpp b/engines/titanic/carry/plug_in.cpp
new file mode 100644
index 0000000000..ff8d9b158f
--- /dev/null
+++ b/engines/titanic/carry/plug_in.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/plug_in.h"
+
+namespace Titanic {
+
+CPlugIn::CPlugIn() : CCarry(), _field12C(0) {
+}
+
+void CPlugIn::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CCarry::save(file, indent);
+}
+
+void CPlugIn::load(SimpleFile *file) {
+ file->readNumber();
+ CCarry::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/plug_in.h b/engines/titanic/carry/plug_in.h
new file mode 100644
index 0000000000..89a483278d
--- /dev/null
+++ b/engines/titanic/carry/plug_in.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PLUG_IN_H
+#define TITANIC_PLUG_IN_H
+
+#include "titanic/carry/carry.h"
+
+namespace Titanic {
+
+class CPlugIn : public CCarry {
+private:
+ int _field12C;
+public:
+ CLASSDEF
+ CPlugIn();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PLUG_IN_H */
diff --git a/engines/titanic/carry/speech_centre.cpp b/engines/titanic/carry/speech_centre.cpp
new file mode 100644
index 0000000000..86ed730284
--- /dev/null
+++ b/engines/titanic/carry/speech_centre.cpp
@@ -0,0 +1,45 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/speech_centre.h"
+
+namespace Titanic {
+
+void CSpeechCentre::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_field13C, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeNumberLine(_field14C, indent);
+
+ CBrain::save(file, indent);
+}
+
+void CSpeechCentre::load(SimpleFile *file) {
+ file->readNumber();
+ _field13C = file->readNumber();
+ _string1 = file->readString();
+ _field14C = file->readNumber();
+
+ CBrain::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/speech_centre.h b/engines/titanic/carry/speech_centre.h
new file mode 100644
index 0000000000..8f6fdfdcd0
--- /dev/null
+++ b/engines/titanic/carry/speech_centre.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SPEECH_CENTRE_H
+#define TITANIC_SPEECH_CENTRE_H
+
+#include "titanic/carry/brain.h"
+
+namespace Titanic {
+
+class CSpeechCentre : public CBrain {
+private:
+ int _field13C;
+ CString _string1;
+ int _field14C;
+public:
+ CLASSDEF
+ CSpeechCentre() : CBrain(), _string1("Summer"),
+ _field13C(1), _field14C(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SPEECH_CENTRE_H */
diff --git a/engines/titanic/carry/sweets.cpp b/engines/titanic/carry/sweets.cpp
new file mode 100644
index 0000000000..faf3ad9dea
--- /dev/null
+++ b/engines/titanic/carry/sweets.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/sweets.h"
+
+namespace Titanic {
+
+CSweets::CSweets() : CCarry() {
+}
+
+void CSweets::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CCarry::save(file, indent);
+}
+
+void CSweets::load(SimpleFile *file) {
+ file->readNumber();
+ CCarry::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/sweets.h b/engines/titanic/carry/sweets.h
new file mode 100644
index 0000000000..a18a1fbeeb
--- /dev/null
+++ b/engines/titanic/carry/sweets.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SWEETS_H
+#define TITANIC_SWEETS_H
+
+#include "titanic/carry/carry.h"
+
+namespace Titanic {
+
+class CSweets : public CCarry {
+public:
+ CLASSDEF
+ CSweets();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SWEETS_H */
diff --git a/engines/titanic/carry/test_carry.cpp b/engines/titanic/carry/test_carry.cpp
new file mode 100644
index 0000000000..26b4f566e9
--- /dev/null
+++ b/engines/titanic/carry/test_carry.cpp
@@ -0,0 +1,43 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/test_carry.h"
+
+namespace Titanic {
+
+void CTestArray::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value1, indent);
+ file->writeNumberLine(_value2, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CTestArray::load(SimpleFile *file) {
+ file->readNumber();
+ _value1 = file->readNumber();
+ _value2 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/test_carry.h b/engines/titanic/carry/test_carry.h
new file mode 100644
index 0000000000..56526b424e
--- /dev/null
+++ b/engines/titanic/carry/test_carry.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TEST_CARRY_H
+#define TITANIC_TEST_CARRY_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CTestArray : public CGameObject {
+public:
+ int _value1, _value2;
+public:
+ CLASSDEF
+ CTestArray() : CGameObject(), _value1(0), _value2(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TEST_CARRY_H */
diff --git a/engines/titanic/carry/vision_centre.cpp b/engines/titanic/carry/vision_centre.cpp
new file mode 100644
index 0000000000..b85f99fbf1
--- /dev/null
+++ b/engines/titanic/carry/vision_centre.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/vision_centre.h"
+
+namespace Titanic {
+
+void CVisionCentre::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CBrain::save(file, indent);
+}
+
+void CVisionCentre::load(SimpleFile *file) {
+ file->readNumber();
+ CBrain::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/carry/vision_centre.h b/engines/titanic/carry/vision_centre.h
new file mode 100644
index 0000000000..ce1d9599a2
--- /dev/null
+++ b/engines/titanic/carry/vision_centre.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_VISION_CENTRE_H
+#define TITANIC_VISION_CENTRE_H
+
+#include "titanic/carry/brain.h"
+
+namespace Titanic {
+
+class CVisionCentre : public CBrain {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_VISION_CENTRE_H */
diff --git a/engines/titanic/configure.engine b/engines/titanic/configure.engine
new file mode 100644
index 0000000000..781b783cf5
--- /dev/null
+++ b/engines/titanic/configure.engine
@@ -0,0 +1,3 @@
+# This file is included from the main "configure" script
+# add_engine [name] [desc] [build-by-default] [subengines] [base games] [deps]
+add_engine titanic "Starship Titanic" no
diff --git a/engines/titanic/core/background.cpp b/engines/titanic/core/background.cpp
new file mode 100644
index 0000000000..63aaf30ae0
--- /dev/null
+++ b/engines/titanic/core/background.cpp
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+CBackground::CBackground() : CGameObject(), _fieldBC(0), _fieldC0(0), _fieldDC(0) {
+}
+
+void CBackground::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeNumberLine(_fieldC0, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeQuotedLine(_string2, indent);
+ file->writeNumberLine(_fieldDC, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CBackground::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _fieldC0 = file->readNumber();
+ _string1 = file->readString();
+ _string2 = file->readString();
+ _fieldDC = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/core/background.h b/engines/titanic/core/background.h
new file mode 100644
index 0000000000..4ce5651fc4
--- /dev/null
+++ b/engines/titanic/core/background.h
@@ -0,0 +1,54 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BACKGROUND_H
+#define TITANIC_BACKGROUND_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CBackground : public CGameObject {
+protected:
+ int _fieldBC;
+ int _fieldC0;
+ CString _string1;
+ CString _string2;
+ int _fieldDC;
+public:
+ CLASSDEF
+ CBackground();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BACKGROUND_H */
diff --git a/engines/titanic/core/click_responder.cpp b/engines/titanic/core/click_responder.cpp
new file mode 100644
index 0000000000..9e8564b6d5
--- /dev/null
+++ b/engines/titanic/core/click_responder.cpp
@@ -0,0 +1,43 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/core/click_responder.h"
+
+namespace Titanic {
+
+void CClickResponder::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeQuotedLine(_string2, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CClickResponder::load(SimpleFile *file) {
+ file->readNumber();
+ _string1 = file->readString();
+ _string2 = file->readString();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/core/click_responder.h b/engines/titanic/core/click_responder.h
new file mode 100644
index 0000000000..68d3e34cdd
--- /dev/null
+++ b/engines/titanic/core/click_responder.h
@@ -0,0 +1,49 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CLICK_RESPONDER_H
+#define TITANIC_CLICK_RESPONDER_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CClickResponder : public CGameObject {
+protected:
+ CString _string1, _string2;
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CLICK_RESPONDER_H */
diff --git a/engines/titanic/core/dont_save_file_item.cpp b/engines/titanic/core/dont_save_file_item.cpp
new file mode 100644
index 0000000000..389cef5a9c
--- /dev/null
+++ b/engines/titanic/core/dont_save_file_item.cpp
@@ -0,0 +1,35 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/core/dont_save_file_item.h"
+
+namespace Titanic {
+
+void CDontSaveFileItem::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(0, indent);
+}
+
+void CDontSaveFileItem::load(SimpleFile *file) {
+ file->readNumber();
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/core/dont_save_file_item.h b/engines/titanic/core/dont_save_file_item.h
new file mode 100644
index 0000000000..d4d5da2e4b
--- /dev/null
+++ b/engines/titanic/core/dont_save_file_item.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_DONT_SAVE_FILE_ITEM_H
+#define TITANIC_DONT_SAVE_FILE_ITEM_H
+
+#include "titanic/core/file_item.h"
+
+namespace Titanic {
+
+class CDontSaveFileItem : public CFileItem {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_DONT_SAVE_FILE_ITEM_H */
diff --git a/engines/titanic/core/drop_target.cpp b/engines/titanic/core/drop_target.cpp
new file mode 100644
index 0000000000..9782967105
--- /dev/null
+++ b/engines/titanic/core/drop_target.cpp
@@ -0,0 +1,72 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/core/drop_target.h"
+
+namespace Titanic {
+
+CDropTarget::CDropTarget() : CGameObject(), _fieldC4(0),
+ _fieldD4(0), _fieldE4(0), _fieldF4(0), _fieldF8(0),
+ _fieldFC(0), _field10C(1), _field110(8), _field114(20) {
+}
+
+void CDropTarget::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writePoint(_pos1, indent);
+ file->writeNumberLine(_fieldC4, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeNumberLine(_fieldD4, indent);
+ file->writeQuotedLine(_string2, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeQuotedLine(_string3, indent);
+ file->writeNumberLine(_fieldF4, indent);
+ file->writeNumberLine(_fieldF8, indent);
+ file->writeNumberLine(_fieldFC, indent);
+ file->writeQuotedLine(_string4, indent);
+ file->writeNumberLine(_field10C, indent);
+ file->writeNumberLine(_field110, indent);
+ file->writeNumberLine(_field114, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CDropTarget::load(SimpleFile *file) {
+ file->readNumber();
+ _pos1 = file->readPoint();
+ _fieldC4 = file->readNumber();
+ _string1 = file->readString();
+ _fieldD4 = file->readNumber();
+ _string2 = file->readString();
+ _fieldE4 = file->readNumber();
+ _string3 = file->readString();
+ _fieldF4 = file->readNumber();
+ _fieldF8 = file->readNumber();
+ _fieldFC = file->readNumber();
+ _string4 = file->readString();
+ _field10C = file->readNumber();
+ _field110 = file->readNumber();
+ _field114 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/core/drop_target.h b/engines/titanic/core/drop_target.h
new file mode 100644
index 0000000000..22cb057bb7
--- /dev/null
+++ b/engines/titanic/core/drop_target.h
@@ -0,0 +1,63 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_DROP_TARGET_H
+#define TITANIC_DROP_TARGET_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CDropTarget : public CGameObject {
+private:
+ Common::Point _pos1;
+ int _fieldC4;
+ CString _string1;
+ int _fieldD4;
+ CString _string2;
+ int _fieldE4;
+ CString _string3;
+ int _fieldF4;
+ int _fieldF8;
+ int _fieldFC;
+ CString _string4;
+ int _field10C;
+ int _field110;
+ int _field114;
+public:
+ CLASSDEF
+ CDropTarget();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_DROP_TARGET_H */
diff --git a/engines/titanic/core/file_item.cpp b/engines/titanic/core/file_item.cpp
new file mode 100644
index 0000000000..0d3316dbf3
--- /dev/null
+++ b/engines/titanic/core/file_item.cpp
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/core/file_item.h"
+
+namespace Titanic {
+
+void CFileItem::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(0, indent);
+ CTreeItem::save(file, indent);
+}
+
+void CFileItem::load(SimpleFile *file) {
+ file->readNumber();
+
+ CTreeItem::load(file);
+}
+
+CString CFileItem::formFilename() const {
+ return "";
+}
+
+CString CFileItem::getFilename() const {
+ //dynamic_cast<CFileItem *>(getRoot())->formDataPath();
+ return _filename;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/core/file_item.h b/engines/titanic/core/file_item.h
new file mode 100644
index 0000000000..65dbf9d526
--- /dev/null
+++ b/engines/titanic/core/file_item.h
@@ -0,0 +1,66 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_FILE_ITEM_H
+#define TITANIC_FILE_ITEM_H
+
+#include "titanic/string.h"
+#include "titanic/core/list.h"
+#include "titanic/core/tree_item.h"
+
+namespace Titanic {
+
+class CFileItem: public CTreeItem {
+private:
+ CString _filename;
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+
+ /**
+ * Returns true if the item is a file item
+ */
+ virtual bool isFileItem() const { return true; }
+
+ /**
+ * Form a filename for the file item
+ */
+ CString formFilename() const;
+
+ /**
+ * Get a string?
+ */
+ CString getFilename() const;
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_FILE_ITEM_H */
diff --git a/engines/titanic/core/game_object.cpp b/engines/titanic/core/game_object.cpp
new file mode 100644
index 0000000000..884873ec0e
--- /dev/null
+++ b/engines/titanic/core/game_object.cpp
@@ -0,0 +1,130 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/core/game_object.h"
+#include "titanic/core/resource_key.h"
+
+namespace Titanic {
+
+CGameObject::CGameObject(): CNamedItem() {
+ _bounds = Common::Rect(0, 0, 15, 15);
+ _field34 = 0;
+ _field38 = 0;
+ _field3C = 0;
+ _field40 = 0;
+ _field44 = 0xF0;
+ _field48 = 0xF0;
+ _field4C = 0xFF;
+ _field50 = 0;
+ _field54 = 0;
+ _field58 = 0;
+ _field5C = 1;
+ _field60 = 0;
+ _cursorId = 1;
+ _field78 = 0;
+ _field8C = -1;
+ _field90 = 0;
+ _field94 = 0;
+ _field98 = 0;
+ _field9C = 0;
+ _fieldA0 = 0;
+ _fieldA4 = 0;
+ _fieldA8 = nullptr;
+ _fieldB8 = 0;
+}
+
+void CGameObject::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(7, indent);
+ error("TODO: CGameObject::save");
+
+ CNamedItem::save(file, indent);
+}
+
+void CGameObject::load(SimpleFile *file) {
+ int val = file->readNumber();
+ CResourceKey resourceKey;
+
+ switch (val) {
+ case 7:
+ _clipList2.load(file);
+ _field8C = file->readNumber();
+ // Deliberate fall-through
+
+ case 6:
+ val = _cursorId = file->readNumber();
+ // Deliberate fall-through
+
+ case 5:
+ _clipList1.load(file);
+ // Deliberate fall-through
+
+ case 4:
+ _field60 = file->readNumber();
+ // Deliberate fall-through
+
+ case 3:
+ _field40 = file->readNumber();
+ // Deliberate fall-through
+
+ case 2:
+ _string = file->readString();
+ // Deliberate fall-through
+
+ case 1:
+ _bounds = file->readRect();
+ _field34 = file->readFloat();
+ _field38 = file->readFloat();
+ _field3C = file->readFloat();
+ _field44 = file->readNumber();
+ _field48 = file->readNumber();
+ _field4C = file->readNumber();
+ _fieldB8 = file->readNumber();
+ _field5C = file->readNumber();
+ _field50 = file->readNumber();
+ _field54 = file->readNumber();
+ _field58 = file->readNumber();
+
+ resourceKey.load(file);
+ _fieldA8 = nullptr;
+ val = file->readNumber();
+ if (val) {
+ _string = resourceKey.getString();
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ CNamedItem::load(file);
+}
+
+void CGameObject::fn2() {
+ error("TODO");
+}
+
+bool CGameObject::checkPoint(const Common::Point &pt, int v0, int v1) {
+ warning("TODO: CGameObject::checkPoint");
+ return false;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/core/game_object.h b/engines/titanic/core/game_object.h
new file mode 100644
index 0000000000..693f334608
--- /dev/null
+++ b/engines/titanic/core/game_object.h
@@ -0,0 +1,83 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_GAME_OBJECT_H
+#define TITANIC_GAME_OBJECT_H
+
+#include "common/rect.h"
+#include "titanic/core/movie_clip.h"
+#include "titanic/core/named_item.h"
+
+namespace Titanic {
+
+class CGameObject : public CNamedItem {
+protected:
+ Common::Rect _bounds;
+ double _field34;
+ double _field38;
+ double _field3C;
+ int _field40;
+ int _field44;
+ int _field48;
+ int _field4C;
+ int _field50;
+ int _field54;
+ int _field58;
+ int _field5C;
+ CMovieClipList _clipList1;
+ int _field78;
+ CMovieClipList _clipList2;
+ int _field8C;
+ int _field90;
+ int _field94;
+ int _field98;
+ int _field9C;
+ int _fieldA0;
+ int _fieldA4;
+ void *_fieldA8;
+ CString _string;
+ int _fieldB8;
+public:
+ int _field60;
+ int _cursorId;
+public:
+ CLASSDEF
+ CGameObject();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+
+ void fn2();
+
+ bool checkPoint(const Common::Point &pt, int v0, int v1);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_GAME_OBJECT_H */
diff --git a/engines/titanic/core/game_object_desc_item.cpp b/engines/titanic/core/game_object_desc_item.cpp
new file mode 100644
index 0000000000..77174e5d06
--- /dev/null
+++ b/engines/titanic/core/game_object_desc_item.cpp
@@ -0,0 +1,57 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/core/game_object_desc_item.h"
+
+namespace Titanic {
+
+CGameObjectDescItem::CGameObjectDescItem(): CTreeItem() {
+}
+
+void CGameObjectDescItem::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ _clipList.save(file, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeQuotedLine(_string2, indent);
+ _list1.save(file, indent);
+ _list2.save(file, indent);
+
+ CTreeItem::save(file, indent);
+}
+
+void CGameObjectDescItem::load(SimpleFile *file) {
+ int val = file->readNumber();
+
+ if (val != 1) {
+ if (val)
+ _clipList.load(file);
+
+ _string1 = file->readString();
+ _string2 = file->readString();
+ _list1.load(file);
+ _list1.load(file);
+ }
+
+ CTreeItem::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/core/game_object_desc_item.h b/engines/titanic/core/game_object_desc_item.h
new file mode 100644
index 0000000000..4ac5816dbc
--- /dev/null
+++ b/engines/titanic/core/game_object_desc_item.h
@@ -0,0 +1,56 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_GAME_OBJECT_DESK_ITEM_H
+#define TITANIC_GAME_OBJECT_DESK_ITEM_H
+
+#include "titanic/core/movie_clip.h"
+#include "titanic/core/tree_item.h"
+#include "titanic/core/list.h"
+
+namespace Titanic {
+
+class CGameObjectDescItem : public CTreeItem {
+protected:
+ CString _string1;
+ CString _string2;
+ List<ListItem> _list1;
+ List<ListItem> _list2;
+ CMovieClipList _clipList;
+public:
+ CLASSDEF
+ CGameObjectDescItem();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_GAME_OBJECT_DESK_ITEM_H */
diff --git a/engines/titanic/core/link_item.cpp b/engines/titanic/core/link_item.cpp
new file mode 100644
index 0000000000..02b4215cfa
--- /dev/null
+++ b/engines/titanic/core/link_item.cpp
@@ -0,0 +1,137 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/core/link_item.h"
+#include "titanic/core/node_item.h"
+#include "titanic/core/project_item.h"
+#include "titanic/core/view_item.h"
+
+namespace Titanic {
+
+CLinkItem::CLinkItem() : CNamedItem() {
+ _roomNumber = -1;
+ _nodeNumber = -1;
+ _viewNumber = -1;
+ _field30 = 0;
+ _field34 = 1;
+ _name = "Link";
+}
+
+CString CLinkItem::formName() {
+ warning("TODO: CLinkItem::formName");
+ return "";
+}
+
+void CLinkItem::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(2, indent);
+ file->writeQuotedLine("L", indent);
+ file->writeNumberLine(_field34, indent + 1);
+ file->writeNumberLine(_field30, indent + 1);
+ file->writeNumberLine(_roomNumber, indent + 1);
+ file->writeNumberLine(_nodeNumber, indent + 1);
+ file->writeNumberLine(_viewNumber, indent + 1);
+
+ file->writeQuotedLine("Hotspot", indent + 1);
+ file->writeNumberLine(_bounds.left, indent + 2);
+ file->writeNumberLine(_bounds.top, indent + 2);
+ file->writeNumberLine(_bounds.right, indent + 2);
+ file->writeNumberLine(_bounds.bottom, indent + 2);
+
+ CNamedItem::save(file, indent);
+}
+
+void CLinkItem::load(SimpleFile *file) {
+ int val = file->readNumber();
+ file->readBuffer();
+
+ switch (val) {
+ case 2:
+ _field34 = file->readNumber();
+ // Deliberate fall-through
+
+ case 1:
+ _field30 = file->readNumber();
+ // Deliberate fall-through
+
+ case 0:
+ _roomNumber = file->readNumber();
+ _nodeNumber = file->readNumber();
+ _viewNumber = file->readNumber();
+
+ file->readBuffer();
+ _bounds.left = file->readNumber();
+ _bounds.top = file->readNumber();
+ _bounds.right = file->readNumber();
+ _bounds.bottom = file->readNumber();
+ break;
+
+ default:
+ break;
+ }
+
+ CNamedItem::load(file);
+
+ if (val < 2) {
+ switch (_field30) {
+ case 2:
+ _field34 = 2;
+ break;
+ case 3:
+ _field34 = 3;
+ break;
+ case 5:
+ _field34 = 7;
+ break;
+ default:
+ _field34 = 4;
+ break;
+ }
+ }
+}
+
+void CLinkItem::setDestination(int roomNumber, int nodeNumber,
+ int viewNumber, int v) {
+ _roomNumber = roomNumber;
+ _nodeNumber = nodeNumber;
+ _viewNumber = viewNumber;
+ _field30 = v;
+
+ _name = formName();
+}
+
+CViewItem *CLinkItem::getDestView() const {
+ return getRoot()->findView(_roomNumber, _nodeNumber, _viewNumber);
+}
+
+CNodeItem *CLinkItem::getDestNode() const {
+ return getDestView()->findNode();
+}
+
+CRoomItem *CLinkItem::getDestRoom() const {
+ return getDestNode()->findRoom();
+}
+
+CMovieClip *CLinkItem::getClip() const {
+ return findRoom()->findClip(getName());
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/core/link_item.h b/engines/titanic/core/link_item.h
new file mode 100644
index 0000000000..733a4c9bdd
--- /dev/null
+++ b/engines/titanic/core/link_item.h
@@ -0,0 +1,93 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_LINK_ITEM_H
+#define TITANIC_LINK_ITEM_H
+
+#include "titanic/core/named_item.h"
+#include "titanic/core/movie_clip.h"
+
+namespace Titanic {
+
+class CViewItem;
+class CNodeItem;
+class CRoomItem;
+
+class CLinkItem : public CNamedItem {
+private:
+ /**
+ * Returns a new name for the link item, based on the
+ * current values for it's destination
+ */
+ CString formName();
+protected:
+ int _roomNumber;
+ int _nodeNumber;
+ int _viewNumber;
+ int _field30;
+ int _field34;
+public:
+ Common::Rect _bounds;
+public:
+ CLASSDEF
+ CLinkItem();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+
+ /**
+ * Set the destination for the link item
+ */
+ virtual void setDestination(int roomNumber, int nodeNumber,
+ int viewNumber, int v);
+
+ /**
+ * Get the destination view for the link item
+ */
+ virtual CViewItem *getDestView() const;
+
+ /**
+ * Get the destination node for the link item
+ */
+ virtual CNodeItem *getDestNode() const;
+
+ /**
+ * Get the destination view for the link item
+ */
+ virtual CRoomItem *getDestRoom() const;
+
+ /**
+ * Get the movie clip, if any, that's used when the link is used
+ */
+ CMovieClip *getClip() const;
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_LINK_ITEM_H */
diff --git a/engines/titanic/core/list.cpp b/engines/titanic/core/list.cpp
new file mode 100644
index 0000000000..d733ce25c5
--- /dev/null
+++ b/engines/titanic/core/list.cpp
@@ -0,0 +1,35 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/core/list.h"
+
+namespace Titanic {
+
+void ListItem::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(0, indent);
+}
+
+void ListItem::load(SimpleFile *file) {
+ file->readNumber();
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/core/list.h b/engines/titanic/core/list.h
new file mode 100644
index 0000000000..e3623c15b4
--- /dev/null
+++ b/engines/titanic/core/list.h
@@ -0,0 +1,152 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_LIST_H
+#define TITANIC_LIST_H
+
+#include "common/scummsys.h"
+#include "common/list.h"
+#include "titanic/simple_file.h"
+#include "titanic/core/saveable_object.h"
+
+namespace Titanic {
+
+/**
+ * Base list item class
+ */
+class ListItem: public CSaveableObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+/**
+ * List item macro for managed pointers an item
+ */
+#define PTR_LIST_ITEM(T) class T##ListItem : public ListItem { \
+ public: T *_item; \
+ T##ListItem() : _item(nullptr) {} \
+ T##ListItem(T *item) : _item(item) {} \
+ virtual ~T##ListItem() { delete _item; } \
+ }
+
+template<typename T>
+class PtrListItem : public ListItem {
+public:
+ T *_item;
+public:
+ PtrListItem() : _item(nullptr) {}
+ PtrListItem(T *item) : _item(item) {}
+ virtual ~PtrListItem() { delete _item; }
+};
+
+template<typename T>
+class List : public CSaveableObject, public Common::List<T *> {
+public:
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(0, indent);
+
+ // Write out number of items
+ file->writeQuotedLine("L", indent);
+ file->writeNumberLine(Common::List<T *>::size(), indent);
+
+ // Iterate through writing entries
+ typename Common::List<T *>::const_iterator i;
+ for (i = Common::List<T *>::begin(); i != Common::List<T *>::end(); ++i) {
+ const ListItem *item = *i;
+ item->saveHeader(file, indent);
+ item->save(file, indent + 1);
+ item->saveFooter(file, indent);
+ }
+
+ }
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file) {
+ file->readNumber();
+ file->readBuffer();
+
+ Common::List<T *>::clear();
+ uint count = file->readNumber();
+
+ for (uint idx = 0; idx < count; ++idx) {
+ // Validate the class start header
+ if (!file->IsClassStart())
+ error("Unexpected class end");
+
+ // Get item's class name and use it to instantiate an item
+ CString className = file->readString();
+ T *newItem = dynamic_cast<T *>(CSaveableObject::createInstance(className));
+ if (!newItem)
+ error("Could not create instance of %s", className.c_str());
+
+ // Load the item's data and add it to the list
+ newItem->load(file);
+ Common::List<T *>::push_back(newItem);
+
+ // Validate the class end footer
+ if (file->IsClassStart())
+ error("Unexpected class start");
+ }
+ }
+
+ /**
+ * Clear the list and destroy any items in it
+ */
+ void destroyContents() {
+ typename Common::List<T *>::iterator i;
+ for (i = Common::List<T *>::begin();
+ i != Common::List<T *>::end(); ++i) {
+ CSaveableObject *obj = *i;
+ delete obj;
+ }
+
+ Common::List<T *>::clear();
+ }
+
+ /**
+ * Add a new item to the list of the type the list contains
+ */
+ T *add() {
+ T *item = new T();
+ Common::List<T *>::push_back(item);
+ return item;
+ }
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_LIST_H */
diff --git a/engines/titanic/core/message_target.cpp b/engines/titanic/core/message_target.cpp
new file mode 100644
index 0000000000..a7dd3a02a2
--- /dev/null
+++ b/engines/titanic/core/message_target.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/core/message_target.h"
+
+namespace Titanic {
+
+void CMessageTarget::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(0, indent);
+ CSaveableObject::save(file, indent);
+}
+
+void CMessageTarget::load(SimpleFile *file) {
+ file->readNumber();
+ CSaveableObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/core/message_target.h b/engines/titanic/core/message_target.h
new file mode 100644
index 0000000000..b099546852
--- /dev/null
+++ b/engines/titanic/core/message_target.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MESSAGE_TARGET_H
+#define TITANIC_MESSAGE_TARGET_H
+
+#include "titanic/core/saveable_object.h"
+
+namespace Titanic {
+
+class CMessageTarget: public CSaveableObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MESSAGE_TARGET_H */
diff --git a/engines/titanic/core/movie_clip.cpp b/engines/titanic/core/movie_clip.cpp
new file mode 100644
index 0000000000..9a787e2aa9
--- /dev/null
+++ b/engines/titanic/core/movie_clip.cpp
@@ -0,0 +1,79 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/core/movie_clip.h"
+
+namespace Titanic {
+
+CMovieClip::CMovieClip() {
+}
+
+void CMovieClip::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(2, indent);
+ file->writeQuotedLine("Clip", indent);
+ file->writeQuotedLine(_name, indent);
+ file->writeNumberLine(_field18, indent);
+ file->writeNumberLine(_field1C, indent);
+
+ ListItem::save(file, indent);
+}
+
+void CMovieClip::load(SimpleFile *file) {
+ int val = file->readNumber();
+
+ switch (val) {
+ case 1:
+ _name = file->readString();
+ _field18 = file->readNumber();
+ _field1C = file->readNumber();
+ _field20 = file->readNumber();
+ _field24 = file->readNumber();
+ _field28 = file->readNumber();
+ _field2C = file->readNumber();
+ _field30 = file->readNumber();
+ break;
+
+ case 2:
+ file->readString();
+ _name = file->readString();
+ _field18 = file->readNumber();
+ _field1C = file->readNumber();
+ break;
+
+ default:
+ break;
+ }
+
+ ListItem::load(file);
+}
+
+CMovieClip *CMovieClipList::findByName(const Common::String &name) const {
+ for (const_iterator i = begin(); i != end(); ++i) {
+ CMovieClip *clip = *i;
+ if (clip->_name == name)
+ return clip;
+ }
+
+ return nullptr;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/core/movie_clip.h b/engines/titanic/core/movie_clip.h
new file mode 100644
index 0000000000..0abda9453f
--- /dev/null
+++ b/engines/titanic/core/movie_clip.h
@@ -0,0 +1,71 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MOVIE_CLIP_H
+#define TITANIC_MOVIE_CLIP_H
+
+#include "titanic/core/list.h"
+
+namespace Titanic {
+
+/**
+ * Movie clip
+ */
+class CMovieClip : public ListItem {
+private:
+ int _field18;
+ int _field1C;
+ int _field20;
+ int _field24;
+ int _field28;
+ int _field2C;
+ int _field30;
+ CString _string2;
+ CString _string3;
+public:
+ CString _name;
+public:
+ CLASSDEF
+ CMovieClip();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+/**
+ * Movie clip list
+ */
+class CMovieClipList: public List<CMovieClip> {
+public:
+ CMovieClip *findByName(const Common::String &name) const;
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MOVIE_CLIP_H */
diff --git a/engines/titanic/core/multi_drop_target.cpp b/engines/titanic/core/multi_drop_target.cpp
new file mode 100644
index 0000000000..1f6e6cf210
--- /dev/null
+++ b/engines/titanic/core/multi_drop_target.cpp
@@ -0,0 +1,43 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/core/multi_drop_target.h"
+
+namespace Titanic {
+
+void CMultiDropTarget::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string5, indent);
+ file->writeQuotedLine(_string6, indent);
+
+ CDropTarget::save(file, indent);
+}
+
+void CMultiDropTarget::load(SimpleFile *file) {
+ file->readNumber();
+ _string5 = file->readString();
+ _string6 = file->readString();
+
+ CDropTarget::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/core/multi_drop_target.h b/engines/titanic/core/multi_drop_target.h
new file mode 100644
index 0000000000..ddf20e441e
--- /dev/null
+++ b/engines/titanic/core/multi_drop_target.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MULTI_DROP_TARGET_H
+#define TITANIC_MULTI_DROP_TARGET_H
+
+#include "titanic/core/drop_target.h"
+
+namespace Titanic {
+
+class CMultiDropTarget : public CDropTarget {
+public:
+ CString _string5;
+ CString _string6;
+public:
+ CLASSDEF
+ CMultiDropTarget() : CDropTarget(), _string5("1,2") {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CLICK_RESPONDER_H */
diff --git a/engines/titanic/core/named_item.cpp b/engines/titanic/core/named_item.cpp
new file mode 100644
index 0000000000..02e75044aa
--- /dev/null
+++ b/engines/titanic/core/named_item.cpp
@@ -0,0 +1,90 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/core/named_item.h"
+#include "titanic/core/node_item.h"
+#include "titanic/core/room_item.h"
+#include "titanic/core/view_item.h"
+
+namespace Titanic {
+
+CString CNamedItem::dumpItem(int indent) const {
+ CString result = CTreeItem::dumpItem(indent);
+ result += " " + _name;
+
+ return result;
+}
+
+void CNamedItem::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(0, indent);
+ file->writeQuotedLine(_name, indent);
+
+ CTreeItem::save(file, indent);
+}
+
+void CNamedItem::load(SimpleFile *file) {
+ int val = file->readNumber();
+ if (!val)
+ _name = file->readString();
+
+ CTreeItem::load(file);
+}
+
+int CNamedItem::compareTo(const CString &name, int maxLen) const {
+ if (maxLen) {
+ return getName().left(maxLen).compareToIgnoreCase(name);
+ } else {
+ return getName().compareToIgnoreCase(name);
+ }
+}
+
+CViewItem *CNamedItem::findView() const {
+ for (CTreeItem *parent = getParent(); parent; parent = parent->getParent()) {
+ CViewItem *view = dynamic_cast<CViewItem *>(parent);
+ if (view)
+ return view;
+ }
+
+ error("Couldn't find parent view");
+}
+
+CNodeItem *CNamedItem::findNode() const {
+ for (CTreeItem *parent = getParent(); parent; parent = parent->getParent()) {
+ CNodeItem *node = dynamic_cast<CNodeItem *>(parent);
+ if (node)
+ return node;
+ }
+
+ error("Couldn't find parent node");
+}
+
+CRoomItem *CNamedItem::findRoom() const {
+ for (CTreeItem *parent = getParent(); parent; parent = parent->getParent()) {
+ CRoomItem *room = dynamic_cast<CRoomItem *>(parent);
+ if (room)
+ return room;
+ }
+
+ error("Couldn't find parent node");
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/core/named_item.h b/engines/titanic/core/named_item.h
new file mode 100644
index 0000000000..6ee11e960e
--- /dev/null
+++ b/engines/titanic/core/named_item.h
@@ -0,0 +1,83 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_NAMED_ITEM_H
+#define TITANIC_NAMED_ITEM_H
+
+#include "titanic/core/tree_item.h"
+
+namespace Titanic {
+
+class CViewItem;
+class CNodeItem;
+class CRoomItem;
+
+class CNamedItem: public CTreeItem {
+public:
+ CString _name;
+public:
+ CLASSDEF
+
+ /**
+ * Dump the item
+ */
+ virtual CString dumpItem(int indent) const;
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+
+ /**
+ * Gets the name of the item, if any
+ */
+ virtual const CString getName() const { return _name; }
+
+ /**
+ * Compares the name of the item to a passed name
+ */
+ virtual int compareTo(const CString &name, int maxLen) const;
+
+ /**
+ * Find a parent node for the item
+ */
+ virtual CViewItem *findView() const;
+
+ /**
+ * Find a parent node for the item
+ */
+ virtual CNodeItem *findNode() const;
+
+ /**
+ * Find a parent room item for the item
+ */
+ virtual CRoomItem *findRoom() const;
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_NAMED_ITEM_H */
diff --git a/engines/titanic/core/node_item.cpp b/engines/titanic/core/node_item.cpp
new file mode 100644
index 0000000000..22c9b9b37f
--- /dev/null
+++ b/engines/titanic/core/node_item.cpp
@@ -0,0 +1,54 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/core/node_item.h"
+
+namespace Titanic {
+
+CNodeItem::CNodeItem() : CNamedItem(), _field24(0), _field28(0), _nodeNumber(0) {
+}
+
+void CNodeItem::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(0, indent);
+ file->writeQuotedLine("N", indent);
+ file->writeNumberLine(_field24, indent + 1);
+ file->writeNumberLine(_field28, indent + 1);
+
+ file->writeQuotedLine("N", indent);
+ file->writeNumberLine(_nodeNumber, indent + 1);
+
+ CNamedItem::save(file, indent);
+}
+
+void CNodeItem::load(SimpleFile *file) {
+ file->readNumber();
+ file->readBuffer();
+ _field24 = file->readNumber();
+ _field28 = file->readNumber();
+
+ file->readBuffer();
+ _nodeNumber = file->readNumber();
+
+ CNamedItem::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/core/node_item.h b/engines/titanic/core/node_item.h
new file mode 100644
index 0000000000..4f0391ae88
--- /dev/null
+++ b/engines/titanic/core/node_item.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_NODE_ITEM_H
+#define TITANIC_NODE_ITEM_H
+
+#include "titanic/core/named_item.h"
+
+namespace Titanic {
+
+class CNodeItem : public CNamedItem {
+protected:
+ int _field24;
+ int _field28;
+public:
+ int _nodeNumber;
+public:
+ CLASSDEF
+ CNodeItem();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_FILE_ITEM_H */
diff --git a/engines/titanic/core/project_item.cpp b/engines/titanic/core/project_item.cpp
new file mode 100644
index 0000000000..7546f20936
--- /dev/null
+++ b/engines/titanic/core/project_item.cpp
@@ -0,0 +1,414 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/file.h"
+#include "common/savefile.h"
+#include "titanic/game_manager.h"
+#include "titanic/titanic.h"
+#include "titanic/core/dont_save_file_item.h"
+#include "titanic/core/node_item.h"
+#include "titanic/core/project_item.h"
+#include "titanic/core/view_item.h"
+#include "titanic/pet_control/pet_control.h"
+
+namespace Titanic {
+
+void CFileListItem::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(0, indent);
+ file->writeQuotedLine(_name, indent);
+
+ ListItem::save(file, indent);
+}
+
+void CFileListItem::load(SimpleFile *file) {
+ file->readNumber();
+ _name = file->readString();
+
+ ListItem::load(file);
+}
+
+/*------------------------------------------------------------------------*/
+
+CProjectItem::CProjectItem() : _nextRoomNumber(0), _nextMessageNumber(0),
+ _nextObjectNumber(0), _gameManager(nullptr) {
+}
+
+void CProjectItem::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(6, indent);
+ file->writeQuotedLine("Next Avail. Object Number", indent);
+ file->writeNumberLine(_nextObjectNumber, indent);
+ file->writeQuotedLine("Next Avail. Message Number", indent);
+ file->writeNumberLine(_nextMessageNumber, indent);
+ file->writeQuotedLine("Next Avail. Room Number", indent);
+ file->writeNumberLine(_nextRoomNumber, indent);
+
+ CTreeItem::save(file, indent);
+}
+
+void CProjectItem::buildFilesList() {
+ _files.destroyContents();
+
+ CTreeItem *treeItem = getFirstChild();
+ while (treeItem) {
+ if (treeItem->isFileItem()) {
+ CString name = static_cast<CFileItem *>(treeItem)->getFilename();
+ _files.add()->_name = name;
+ }
+
+ treeItem = getNextSibling();
+ }
+}
+
+void CProjectItem::load(SimpleFile *file) {
+ int val = file->readNumber();
+ _files.destroyContents();
+ int count;
+
+ switch (val) {
+ case 1:
+ file->readBuffer();
+ _nextRoomNumber = file->readNumber();
+ // Deliberate fall-through
+
+ case 0:
+ // Load the list of files
+ count = file->readNumber();
+ for (int idx = 0; idx < count; ++idx) {
+ CString name = file->readString();
+ _files.add()->_name = name;
+ }
+ break;
+
+ case 6:
+ file->readBuffer();
+ _nextObjectNumber = file->readNumber();
+ // Deliberate fall-through
+
+ case 5:
+ file->readBuffer();
+ _nextMessageNumber = file->readNumber();
+ // Deliberate fall-through
+
+ case 4:
+ file->readBuffer();
+ // Deliberate fall-through
+
+ case 2:
+ case 3:
+ _files.load(file);
+ file->readBuffer();
+ _nextRoomNumber = file->readNumber();
+ break;
+
+ default:
+ break;
+ }
+
+ CTreeItem::load(file);
+}
+
+CGameManager *CProjectItem::getGameManager() const {
+ return _gameManager;
+}
+
+void CProjectItem::setGameManager(CGameManager *gameManager) {
+ if (!_gameManager)
+ _gameManager = gameManager;
+}
+
+void CProjectItem::resetGameManager() {
+ _gameManager = nullptr;
+}
+
+void CProjectItem::loadGame(int slotId) {
+ CompressedFile file;
+
+ // Clear any existing project contents and call preload code
+ clear();
+ preLoad();
+
+ // Open either an existing savegame slot or the new game template
+ if (slotId >= 0) {
+ Common::InSaveFile *saveFile = g_system->getSavefileManager()->openForLoading(
+ Common::String::format("slot%d.gam", slotId));
+ file.open(saveFile);
+ } else {
+ Common::File *newFile = new Common::File();
+ if (!newFile->open("newgame.st"))
+ error("Could not open newgame.st");
+ file.open(newFile);
+ }
+
+ // Load the contents in
+ CProjectItem *newProject = loadData(&file);
+ file.IsClassStart();
+ getGameManager()->load(&file);
+
+ file.close();
+
+ // Clear existing project
+ clear();
+
+ // Detach each item under the loaded project, and re-attach them
+ // to the existing project instance (this)
+ CTreeItem *item;
+ while ((item = newProject->getFirstChild()) != nullptr) {
+ item->detach();
+ item->addUnder(this);
+ }
+
+ // Loaded project instance is no longer needed
+ newProject->destroyAll();
+
+ // Post-load processing
+ postLoad();
+}
+
+void CProjectItem::saveGame(int slotId) {
+ CompressedFile file;
+ Common::OutSaveFile *saveFile = g_system->getSavefileManager()->openForSaving(
+ Common::String::format("slot%d.gam", slotId));
+ file.open(saveFile);
+
+ // Signal the game is being saved
+ preSave();
+
+ // Save the contents out
+ saveData(&file, this);
+
+ // Close the file and signal that the saving has finished
+ file.close();
+ postSave();
+}
+
+void CProjectItem::clear() {
+ CTreeItem *item;
+ while ((item = getFirstChild()) != nullptr)
+ item->destroyAll();
+}
+
+CProjectItem *CProjectItem::loadData(SimpleFile *file) {
+ if (!file->IsClassStart())
+ return nullptr;
+
+ CProjectItem *root = nullptr;
+ CTreeItem *parent = nullptr;
+ CTreeItem *item = nullptr;
+
+ do {
+ CString entryString = file->readString();
+
+ if (entryString == "ALONG") {
+ // Move along, nothing needed
+ } else if (entryString == "UP") {
+ // Move up
+ if (parent == nullptr ||
+ (parent = parent->getParent()) == nullptr)
+ break;
+ } else if (entryString == "DOWN") {
+ // Move down
+ if (parent == nullptr)
+ parent = item;
+ else
+ parent = parent->getLastChild();
+ } else {
+ // Create new class instance
+ item = dynamic_cast<CTreeItem *>(CSaveableObject::createInstance(entryString));
+ assert(item);
+
+ if (root) {
+ // Already created root project
+ item->addUnder(parent);
+ } else {
+ root = dynamic_cast<CProjectItem *>(item);
+ assert(root);
+ root->_filename = _filename;
+ }
+
+ // Load the data for the item
+ item->load(file);
+ }
+
+ file->IsClassStart();
+ } while (file->IsClassStart());
+
+ return root;
+}
+
+void CProjectItem::saveData(SimpleFile *file, CTreeItem *item) const {
+ while (item) {
+ item->saveHeader(file, 0);
+ item->save(file, 1);
+ item->saveFooter(file, 0);
+
+ CTreeItem *child = item->getFirstChild();
+ if (child) {
+ file->write("\n{\n", 3);
+ file->writeQuotedString("DOWN");
+ file->write("\n}\n", 3);
+ saveData(file, child);
+ file->write("\n{\n", 3);
+ file->writeQuotedString("UP");
+ } else {
+ file->write("\n{\n", 3);
+ file->writeQuotedString("ALONG");
+ }
+
+ file->write("\n}\n", 3);
+ item = item->getNextSibling();
+ }
+}
+
+void CProjectItem::preLoad() {
+ if (_gameManager)
+ _gameManager->preLoad();
+}
+
+void CProjectItem::postLoad() {
+ CGameManager *gameManager = getGameManager();
+ if (gameManager)
+ gameManager->postLoad(this);
+
+ CPetControl *petControl = getPetControl();
+ if (petControl)
+ petControl->postLoad();
+}
+
+void CProjectItem::preSave() {
+ if (_gameManager)
+ _gameManager->preSave(this);
+}
+
+void CProjectItem::postSave() {
+ if (_gameManager)
+ _gameManager->postSave();
+}
+
+CPetControl *CProjectItem::getPetControl() const {
+ CDontSaveFileItem *fileItem = getDontSaveFileItem();
+ CTreeItem *treeItem;
+
+ if (!fileItem || (treeItem = fileItem->getLastChild()) == nullptr)
+ return nullptr;
+
+ while (treeItem) {
+ CPetControl *petControl = dynamic_cast<CPetControl *>(treeItem);
+ if (petControl)
+ return petControl;
+
+ treeItem = treeItem->getPriorSibling();
+ }
+
+ return nullptr;
+}
+
+CRoomItem *CProjectItem::findFirstRoom() const {
+ return dynamic_cast<CRoomItem *>(findChildInstance(CRoomItem::_type));
+}
+
+CTreeItem *CProjectItem::findChildInstance(ClassDef *classDef) const {
+ CTreeItem *treeItem = getFirstChild();
+ if (treeItem == nullptr)
+ return nullptr;
+
+ do {
+ CTreeItem *childItem = treeItem->getFirstChild();
+ if (childItem) {
+ do {
+ if (childItem->isInstanceOf(classDef))
+ return childItem;
+ } while ((childItem = childItem->getNextSibling()) != nullptr);
+ }
+ } while ((treeItem = treeItem->getNextSibling()) != nullptr);
+
+ return nullptr;
+}
+
+CRoomItem *CProjectItem::findNextRoom(CRoomItem *priorRoom) const {
+ return dynamic_cast<CRoomItem *>(findSiblingInstanceOf(CRoomItem::_type, priorRoom));
+}
+
+CTreeItem *CProjectItem::findSiblingInstanceOf(ClassDef *classDef, CTreeItem *startItem) const {
+ CTreeItem *treeItem = startItem->getParent()->getNextSibling();
+ if (treeItem == nullptr)
+ return nullptr;
+
+ return findChildInstance(classDef);
+}
+
+CDontSaveFileItem *CProjectItem::getDontSaveFileItem() const {
+ for (CTreeItem *treeItem = getFirstChild(); treeItem; treeItem = treeItem->getNextSibling()) {
+ if (treeItem->isInstanceOf(CDontSaveFileItem::_type))
+ return dynamic_cast<CDontSaveFileItem *>(treeItem);
+ }
+
+ return nullptr;
+}
+
+CRoomItem *CProjectItem::findHiddenRoom() {
+ return dynamic_cast<CRoomItem *>(findByName("HiddenRoom"));
+}
+
+CViewItem *CProjectItem::findView(int roomNumber, int nodeNumber, int viewNumber) {
+ CTreeItem *treeItem = getFirstChild();
+ CRoomItem *roomItem = nullptr;
+
+ // Scan for the specified room
+ if (treeItem) {
+ do {
+ CTreeItem *childItem = treeItem->getFirstChild();
+ CRoomItem *rItem = dynamic_cast<CRoomItem *>(childItem);
+ if (rItem && rItem->_roomNumber == roomNumber) {
+ roomItem = rItem;
+ break;
+ }
+ } while ((treeItem = treeItem->getNextSibling()) != nullptr);
+ }
+ if (!roomItem)
+ return nullptr;
+
+ // Scan for the specified node within the room
+ CNodeItem *nodeItem = nullptr;
+
+ CNodeItem *nItem = dynamic_cast<CNodeItem *>(
+ roomItem->findChildInstanceOf(CNodeItem::_type));
+ for (; nItem && !nodeItem; nItem = dynamic_cast<CNodeItem *>(
+ findNextInstanceOf(CNodeItem::_type, nItem))) {
+ if (nItem->_nodeNumber == nodeNumber)
+ nodeItem = nItem;
+ }
+ if (!nodeItem)
+ return nullptr;
+
+ // Scan for the specified view within the node
+ CViewItem *viewItem = dynamic_cast<CViewItem *>(
+ nodeItem->findChildInstanceOf(CViewItem::_type));
+ for (; viewItem; viewItem = dynamic_cast<CViewItem *>(
+ findNextInstanceOf(CViewItem::_type, viewItem))) {
+ if (viewItem->_viewNumber == viewNumber)
+ return viewItem;
+ }
+
+ return nullptr;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/core/project_item.h b/engines/titanic/core/project_item.h
new file mode 100644
index 0000000000..ef7ccb65f9
--- /dev/null
+++ b/engines/titanic/core/project_item.h
@@ -0,0 +1,202 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PROJECT_ITEM_H
+#define TITANIC_PROJECT_ITEM_H
+
+#include "common/scummsys.h"
+#include "titanic/simple_file.h"
+#include "titanic/core/dont_save_file_item.h"
+#include "titanic/core/file_item.h"
+#include "titanic/core/list.h"
+#include "titanic/core/room_item.h"
+
+namespace Titanic {
+
+class CGameManager;
+class CPetControl;
+class CViewItem;
+
+/**
+ * File list item
+ */
+class CFileListItem : public ListItem {
+public:
+ CString _name;
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+/**
+ * Filename list
+ */
+class CFileList: public List<CFileListItem> {
+public:
+};
+
+
+class CProjectItem : public CFileItem {
+private:
+ CString _filename;
+ CFileList _files;
+ int _nextRoomNumber;
+ int _nextMessageNumber;
+ int _nextObjectNumber;
+ CGameManager *_gameManager;
+
+ /**
+ * Called during save, iterates through the children to do some stuff
+ */
+ void buildFilesList();
+
+ /**
+ * Called at the beginning of loading a game
+ */
+ void preLoad();
+
+ /**
+ * Does post-loading processing
+ */
+ void postLoad();
+
+ /**
+ * Called when a game is about to be saved
+ */
+ void preSave();
+
+ /**
+ * Called when a game has finished being saved
+ */
+ void postSave();
+
+ /**
+ * Finds the first child instance of a given class type
+ */
+ CTreeItem *findChildInstance(ClassDef *classDef) const;
+
+ /**
+ * Finds the next sibling occurance of a given class type
+ */
+ CTreeItem *findSiblingInstanceOf(ClassDef *classDef, CTreeItem *startItem) const;
+private:
+ /**
+ * Load project data from the passed file
+ */
+ CProjectItem *loadData(SimpleFile *file);
+
+ /**
+ * Save project data to the passed file
+ */
+ void saveData(SimpleFile *file, CTreeItem *item) const;
+public:
+ CLASSDEF
+ CProjectItem();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+
+ /**
+ * Get the game manager for the project
+ */
+ virtual CGameManager *getGameManager() const;
+
+ /**
+ * Sets the game manager for the project, if not already set
+ */
+ void setGameManager(CGameManager *gameManager);
+
+ /**
+ * Get a reference to the PET control
+ */
+ CPetControl *getPetControl() const;
+
+ /**
+ * Resets the game manager field
+ */
+ void resetGameManager();
+
+ /**
+ * Load the entire project data for a given slot Id
+ */
+ void loadGame(int slotId);
+
+ /**
+ * Save the entire project data to a given savegame slot
+ */
+ void saveGame(int slotId);
+
+ /**
+ * Clear any currently loaded project
+ */
+ void clear();
+
+ /**
+ * Set the proejct's name
+ */
+ void setFilename(const CString &name) { _filename = name; }
+
+ /**
+ * Returns a reference to the first room item in the project
+ */
+ CRoomItem *findFirstRoom() const;
+
+ /**
+ * Returns a reference to the next room following the specified room
+ */
+ CRoomItem *findNextRoom(CRoomItem *priorRoom) const;
+
+ /**
+ * Returns the don't save file item, if it exists in the project
+ */
+ CDontSaveFileItem *getDontSaveFileItem() const;
+
+ /**
+ * Finds the hidden room node of the project
+ */
+ CRoomItem *findHiddenRoom();
+
+ /**
+ * Finds a view
+ */
+ CViewItem *findView(int roomNumber, int nodeNumber, int viewNumber);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PROJECT_ITEM_H */
diff --git a/engines/titanic/core/resource_key.cpp b/engines/titanic/core/resource_key.cpp
new file mode 100644
index 0000000000..089df9856a
--- /dev/null
+++ b/engines/titanic/core/resource_key.cpp
@@ -0,0 +1,89 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/file.h"
+#include "titanic/titanic.h"
+#include "titanic/simple_file.h"
+#include "titanic/core/resource_key.h"
+
+namespace Titanic {
+
+void CResourceKey::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine("Resource Key...", indent);
+ file->writeQuotedLine(_key, indent);
+
+ CSaveableObject::save(file, indent);
+}
+
+void CResourceKey::load(SimpleFile *file) {
+ int val = file->readNumber();
+
+ if (val == 0 || val == 1) {
+ file->readBuffer();
+ CString str = file->readString();
+ setValue(str);
+ }
+
+ CSaveableObject::load(file);
+}
+
+void CResourceKey::setValue(const CString &name) {
+ CString nameStr = name;
+ nameStr.toLowercase();
+ _key = nameStr;
+
+ _value = nameStr;
+ int idx = _value.lastIndexOf('\\');
+ if (idx >= 0)
+ _value = _value.mid(idx + 1);
+}
+
+CString CResourceKey::exists() const {
+ CString name = _key;
+
+ // Check for a resource being specified within an ST container
+ int idx = name.indexOf('#');
+ if (idx >= 0) {
+ name = name.left(idx);
+ name += ".st";
+ }
+
+ // The original did tests for the file in the different
+ // asset paths, which aren't needed in ScummVM
+ Common::File f;
+ return f.exists(name) ? name : CString();
+}
+
+bool CResourceKey::scanForFile() const {
+ return g_vm->_filesManager.scanForFile(_value);
+}
+
+FileType CResourceKey::fileTypeSuffix() const {
+ return _value.fileTypeSuffix();
+}
+
+ImageType CResourceKey::imageTypeSuffix() const {
+ return _value.imageTypeSuffix();
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/core/resource_key.h b/engines/titanic/core/resource_key.h
new file mode 100644
index 0000000000..dc4c791cea
--- /dev/null
+++ b/engines/titanic/core/resource_key.h
@@ -0,0 +1,79 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_RESOURCE_KEY_H
+#define TITANIC_RESOURCE_KEY_H
+
+#include "titanic/string.h"
+#include "titanic/core/saveable_object.h"
+
+namespace Titanic {
+
+class CResourceKey: public CSaveableObject {
+private:
+ CString _key;
+ CString _value;
+
+ void setValue(const CString &name);
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+
+ /**
+ * Return the key
+ */
+ const CString &getString() const { return _key; }
+
+ /**
+ * Checks whether a file for the given key exists,
+ * and returns it's filename if it does
+ */
+ CString exists() const;
+
+ /**
+ * Scans for a file with a matching name
+ */
+ bool scanForFile() const;
+
+ /**
+ * Returns the type of the resource based on it's extension
+ */
+ FileType fileTypeSuffix() const;
+
+ /**
+ * Returns the type of the resource based on it's extension
+ */
+ ImageType imageTypeSuffix() const;
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_RESOURCE_KEY_H */
diff --git a/engines/titanic/core/room_item.cpp b/engines/titanic/core/room_item.cpp
new file mode 100644
index 0000000000..b0cefcaf74
--- /dev/null
+++ b/engines/titanic/core/room_item.cpp
@@ -0,0 +1,106 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/core/room_item.h"
+
+namespace Titanic {
+
+CRoomItem::CRoomItem() : CNamedItem(), _roomNumber(0),
+ _roomDimensionX(0.0), _roomDimensionY(0.0) {
+}
+
+void CRoomItem::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(3, indent);
+ file->writeQuotedLine("Exit Movies", indent);
+ _exitMovieKey.save(file, indent);
+
+ file->writeNumberLine(_roomDimensionX * 1000.0, indent + 1);
+ file->writeNumberLine(_roomDimensionY * 1000.0, indent + 1);
+
+ file->writeQuotedLine("Transition Movie", indent);
+ _transitionMovieKey.save(file, indent);
+
+ file->writeQuotedLine("Movie Clip list", indent);
+ _clipList.save(file, indent + 1);
+
+ file->writeQuotedLine("Room Rect", indent);
+ file->writeNumberLine(_roomRect.left, indent + 1);
+ file->writeNumberLine(_roomRect.top, indent + 1);
+ file->writeNumberLine(_roomRect.right, indent + 1);
+ file->writeNumberLine(_roomRect.bottom, indent + 1);
+
+ file->writeQuotedLine("Room Number", indent);
+ file->writeNumberLine(_roomNumber, indent);
+
+ CNamedItem::save(file, indent);
+}
+
+void CRoomItem::load(SimpleFile *file) {
+ int val = file->readNumber();
+
+ switch (val) {
+ case 3:
+ // Read exit movie
+ file->readBuffer();
+ _exitMovieKey.load(file);
+ // Deliberate fall-through
+
+ case 2:
+ // Read room dimensions
+ file->readBuffer();
+ _roomDimensionX = (double)file->readNumber() / 1000.0;
+ _roomDimensionY = (double)file->readNumber() / 1000.0;
+ // Deliberate fall-through
+
+ case 1:
+ // Read transition movie key and clip list
+ file->readBuffer();
+ _transitionMovieKey.load(file);
+
+ file->readBuffer();
+ _clipList.load(file);
+ loading();
+ // Deliberate fall-through
+
+ case 0:
+ // Read room rect
+ file->readBuffer();
+ _roomRect.left = file->readNumber();
+ _roomRect.top = file->readNumber();
+ _roomRect.right = file->readNumber();
+ _roomRect.bottom = file->readNumber();
+ file->readBuffer();
+ _roomNumber = file->readNumber();
+ break;
+
+ default:
+ break;
+ }
+
+ CNamedItem::load(file);
+}
+
+void CRoomItem::loading() {
+ // TODO
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/core/room_item.h b/engines/titanic/core/room_item.h
new file mode 100644
index 0000000000..a42ffab32e
--- /dev/null
+++ b/engines/titanic/core/room_item.h
@@ -0,0 +1,66 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ROOM_ITEM_H
+#define TITANIC_ROOM_ITEM_H
+
+#include "common/rect.h"
+#include "titanic/core/list.h"
+#include "titanic/core/movie_clip.h"
+#include "titanic/core/named_item.h"
+#include "titanic/core/resource_key.h"
+
+namespace Titanic {
+
+class CRoomItem : public CNamedItem {
+public:
+ Common::Rect _roomRect;
+ CMovieClipList _clipList;
+ int _roomNumber;
+ CResourceKey _transitionMovieKey;
+ CResourceKey _exitMovieKey;
+ double _roomDimensionX, _roomDimensionY;
+
+ void loading();
+public:
+ CLASSDEF
+ CRoomItem();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+
+ /**
+ * Return a movie clip for the room by name
+ */
+ CMovieClip *findClip(const CString &name) { return _clipList.findByName(name); }
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ROOM_ITEM_H */
diff --git a/engines/titanic/core/saveable_object.cpp b/engines/titanic/core/saveable_object.cpp
new file mode 100644
index 0000000000..2c4eea5f3c
--- /dev/null
+++ b/engines/titanic/core/saveable_object.cpp
@@ -0,0 +1,1620 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/carry/arm.h"
+#include "titanic/carry/auditory_centre.h"
+#include "titanic/carry/bowl_ear.h"
+#include "titanic/carry/brain.h"
+#include "titanic/carry/bridge_piece.h"
+#include "titanic/carry/carry.h"
+#include "titanic/carry/carry_parrot.h"
+#include "titanic/carry/central_core.h"
+#include "titanic/carry/chicken.h"
+#include "titanic/carry/crushed_tv.h"
+#include "titanic/carry/eye.h"
+#include "titanic/carry/feathers.h"
+#include "titanic/carry/fruit.h"
+#include "titanic/carry/glass.h"
+#include "titanic/carry/hammer.h"
+#include "titanic/carry/head_piece.h"
+#include "titanic/carry/hose.h"
+#include "titanic/carry/hose_end.h"
+#include "titanic/carry/key.h"
+#include "titanic/carry/liftbot_head.h"
+#include "titanic/carry/long_stick.h"
+#include "titanic/carry/magazine.h"
+#include "titanic/carry/maitred_left_arm.h"
+#include "titanic/carry/maitred_right_arm.h"
+#include "titanic/carry/mouth.h"
+#include "titanic/carry/napkin.h"
+#include "titanic/carry/nose.h"
+#include "titanic/carry/note.h"
+#include "titanic/carry/parcel.h"
+#include "titanic/carry/perch.h"
+#include "titanic/carry/phonograph_cylinder.h"
+#include "titanic/carry/phonograph_ear.h"
+#include "titanic/carry/photograph.h"
+#include "titanic/carry/plug_in.h"
+#include "titanic/carry/speech_centre.h"
+#include "titanic/carry/sweets.h"
+#include "titanic/carry/vision_centre.h"
+
+#include "titanic/core/saveable_object.h"
+#include "titanic/core/background.h"
+#include "titanic/core/click_responder.h"
+#include "titanic/core/dont_save_file_item.h"
+#include "titanic/core/drop_target.h"
+#include "titanic/core/file_item.h"
+#include "titanic/core/game_object.h"
+#include "titanic/core/game_object_desc_item.h"
+#include "titanic/core/link_item.h"
+#include "titanic/core/list.h"
+#include "titanic/core/message_target.h"
+#include "titanic/core/movie_clip.h"
+#include "titanic/core/multi_drop_target.h"
+#include "titanic/core/node_item.h"
+#include "titanic/core/project_item.h"
+#include "titanic/core/room_item.h"
+#include "titanic/core/saveable_object.h"
+#include "titanic/core/static_image.h"
+#include "titanic/core/turn_on_object.h"
+#include "titanic/core/turn_on_play_sound.h"
+#include "titanic/core/turn_on_turn_off.h"
+#include "titanic/core/tree_item.h"
+#include "titanic/core/view_item.h"
+
+#include "titanic/game/announce.h"
+#include "titanic/game/annoy_barbot.h"
+#include "titanic/game/arb_background.h"
+#include "titanic/game/arboretum_gate.h"
+#include "titanic/game/auto_animate.h"
+#include "titanic/game/bar_bell.h"
+#include "titanic/game/bar_menu.h"
+#include "titanic/game/bar_menu_button.h"
+#include "titanic/game/belbot_get_light.h"
+#include "titanic/game/bilge_succubus.h"
+#include "titanic/game/bomb.h"
+#include "titanic/game/bottom_of_well_monitor.h"
+#include "titanic/game/bowl_unlocker.h"
+#include "titanic/game/brain_slot.h"
+#include "titanic/game/bridge_door.h"
+#include "titanic/game/bridge_view.h"
+#include "titanic/game/broken_pell_base.h"
+#include "titanic/game/broken_pellerator.h"
+#include "titanic/game/broken_pellerator_froz.h"
+#include "titanic/game/cage.h"
+#include "titanic/game/call_pellerator.h"
+#include "titanic/game/captains_wheel.h"
+#include "titanic/game/cdrom.h"
+#include "titanic/game/cdrom_computer.h"
+#include "titanic/game/cdrom_tray.h"
+#include "titanic/game/cell_point_button.h"
+#include "titanic/game/chev_code.h"
+#include "titanic/game/chev_panel.h"
+#include "titanic/game/chicken_cooler.h"
+#include "titanic/game/chicken_dispensor.h"
+#include "titanic/game/close_broken_pel.h"
+#include "titanic/game/computer.h"
+#include "titanic/game/computer_screen.h"
+#include "titanic/game/code_wheel.h"
+#include "titanic/game/cookie.h"
+#include "titanic/game/credits.h"
+#include "titanic/game/credits_button.h"
+#include "titanic/game/dead_area.h"
+#include "titanic/game/desk_click_responder.h"
+#include "titanic/game/doorbot_elevator_handler.h"
+#include "titanic/game/doorbot_home_handler.h"
+#include "titanic/game/ear_sweet_bowl.h"
+#include "titanic/game/eject_phonograph_button.h"
+#include "titanic/game/elevator_action_area.h"
+#include "titanic/game/emma_control.h"
+#include "titanic/game/empty_nut_bowl.h"
+#include "titanic/game/end_credit_text.h"
+#include "titanic/game/end_credits.h"
+#include "titanic/game/end_explode_ship.h"
+#include "titanic/game/end_game_credits.h"
+#include "titanic/game/end_sequence_control.h"
+#include "titanic/game/fan.h"
+#include "titanic/game/fan_control.h"
+#include "titanic/game/fan_decrease.h"
+#include "titanic/game/fan_increase.h"
+#include "titanic/game/fan_noises.h"
+#include "titanic/game/floor_indicator.h"
+#include "titanic/game/games_console.h"
+#include "titanic/game/get_lift_eye2.h"
+#include "titanic/game/glass_smasher.h"
+#include "titanic/game/hammer_clip.h"
+#include "titanic/game/hammer_dispensor.h"
+#include "titanic/game/hammer_dispensor_button.h"
+#include "titanic/game/head_slot.h"
+#include "titanic/game/head_smash_event.h"
+#include "titanic/game/head_smash_lever.h"
+#include "titanic/game/head_spinner.h"
+#include "titanic/game/idle_summoner.h"
+#include "titanic/game/leave_sec_class_state.h"
+#include "titanic/game/lemon_dispensor.h"
+#include "titanic/game/light.h"
+#include "titanic/game/light_switch.h"
+#include "titanic/game/little_lift_button.h"
+#include "titanic/game/long_stick_dispenser.h"
+#include "titanic/game/mail_man.h"
+#include "titanic/game/missiveomat.h"
+#include "titanic/game/missiveomat_button.h"
+#include "titanic/game/movie_tester.h"
+#include "titanic/game/musical_instrument.h"
+#include "titanic/game/music_console_button.h"
+#include "titanic/game/music_room_phonograph.h"
+#include "titanic/game/music_room_stop_phonograph_button.h"
+#include "titanic/game/music_system_lock.h"
+#include "titanic/game/nav_helmet.h"
+#include "titanic/game/navigation_computer.h"
+#include "titanic/game/no_nut_bowl.h"
+#include "titanic/game/nose_holder.h"
+#include "titanic/game/null_port_hole.h"
+#include "titanic/game/nut_replacer.h"
+#include "titanic/game/pet_disabler.h"
+#include "titanic/game/phonograph.h"
+#include "titanic/game/phonograph_lid.h"
+#include "titanic/game/play_music_button.h"
+#include "titanic/game/play_on_act.h"
+#include "titanic/game/port_hole.h"
+#include "titanic/game/record_phonograph_button.h"
+#include "titanic/game/replacement_ear.h"
+#include "titanic/game/reserved_table.h"
+#include "titanic/game/restaurant_cylinder_holder.h"
+#include "titanic/game/restaurant_phonograph.h"
+#include "titanic/game/sauce_dispensor.h"
+#include "titanic/game/search_point.h"
+#include "titanic/game/season_background.h"
+#include "titanic/game/season_barrel.h"
+#include "titanic/game/seasonal_adjustment.h"
+#include "titanic/game/service_elevator_window.h"
+#include "titanic/game/ship_setting.h"
+#include "titanic/game/ship_setting_button.h"
+#include "titanic/game/show_cell_points.h"
+#include "titanic/game/speech_dispensor.h"
+#include "titanic/game/splash_animation.h"
+#include "titanic/game/starling_puret.h"
+#include "titanic/game/start_action.h"
+#include "titanic/game/stop_phonograph_button.h"
+#include "titanic/game/sub_glass.h"
+#include "titanic/game/sub_wrapper.h"
+#include "titanic/game/sweet_bowl.h"
+#include "titanic/game/television.h"
+#include "titanic/game/third_class_canal.h"
+#include "titanic/game/throw_tv_down_well.h"
+#include "titanic/game/titania_still_control.h"
+#include "titanic/game/tow_parrot_nav.h"
+#include "titanic/game/up_lighter.h"
+#include "titanic/game/useless_lever.h"
+#include "titanic/game/volume_control.h"
+#include "titanic/game/wheel_button.h"
+#include "titanic/game/wheel_hotspot.h"
+#include "titanic/game/wheel_spin.h"
+#include "titanic/game/wheel_spin_horn.h"
+#include "titanic/game/gondolier/gondolier_base.h"
+#include "titanic/game/gondolier/gondolier_chest.h"
+#include "titanic/game/gondolier/gondolier_face.h"
+#include "titanic/game/gondolier/gondolier_mixer.h"
+#include "titanic/game/gondolier/gondolier_slider.h"
+#include "titanic/game/maitred/maitred_arm_holder.h"
+#include "titanic/game/maitred/maitred_body.h"
+#include "titanic/game/maitred/maitred_legs.h"
+#include "titanic/game/maitred/maitred_prod_receptor.h"
+#include "titanic/game/parrot/parrot_lobby_controller.h"
+#include "titanic/game/parrot/parrot_lobby_link_updater.h"
+#include "titanic/game/parrot/parrot_lobby_object.h"
+#include "titanic/game/parrot/parrot_lobby_view_object.h"
+#include "titanic/game/parrot/parrot_loser.h"
+#include "titanic/game/parrot/parrot_nut_bowl_actor.h"
+#include "titanic/game/parrot/parrot_nut_eater.h"
+#include "titanic/game/parrot/parrot_perch_holder.h"
+#include "titanic/game/parrot/parrot_succubus.h"
+#include "titanic/game/parrot/parrot_trigger.h"
+#include "titanic/game/parrot/player_meets_parrot.h"
+#include "titanic/game/pet/pet.h"
+#include "titanic/game/pet/pet_class1.h"
+#include "titanic/game/pet/pet_class2.h"
+#include "titanic/game/pet/pet_class3.h"
+#include "titanic/game/pet/pet_lift.h"
+#include "titanic/game/pet/pet_monitor.h"
+#include "titanic/game/pet/pet_pellerator.h"
+#include "titanic/game/pet/pet_position.h"
+#include "titanic/game/pet/pet_sentinal.h"
+#include "titanic/game/pet/pet_sounds.h"
+#include "titanic/game/pet/pet_transition.h"
+#include "titanic/game/pet/pet_transport.h"
+#include "titanic/game/pickup/pick_up.h"
+#include "titanic/game/pickup/pick_up_bar_glass.h"
+#include "titanic/game/pickup/pick_up_hose.h"
+#include "titanic/game/pickup/pick_up_lemon.h"
+#include "titanic/game/pickup/pick_up_speech_centre.h"
+#include "titanic/game/pickup/pick_up_vis_centre.h"
+#include "titanic/game/placeholder/bar_shelf_vis_centre.h"
+#include "titanic/game/placeholder/lemon_on_bar.h"
+#include "titanic/game/placeholder/place_holder.h"
+#include "titanic/game/placeholder/tv_on_bar.h"
+#include "titanic/game/sgt/armchair.h"
+#include "titanic/game/sgt/basin.h"
+#include "titanic/game/sgt/bedfoot.h"
+#include "titanic/game/sgt/bedhead.h"
+#include "titanic/game/sgt/chest_of_drawers.h"
+#include "titanic/game/sgt/desk.h"
+#include "titanic/game/sgt/deskchair.h"
+#include "titanic/game/sgt/drawer.h"
+#include "titanic/game/sgt/sgt_doors.h"
+#include "titanic/game/sgt/sgt_nav.h"
+#include "titanic/game/sgt/sgt_navigation.h"
+#include "titanic/game/sgt/sgt_restaurant_doors.h"
+#include "titanic/game/sgt/sgt_state_control.h"
+#include "titanic/game/sgt/sgt_state_room.h"
+#include "titanic/game/sgt/sgt_tv.h"
+#include "titanic/game/sgt/sgt_upper_doors_sound.h"
+#include "titanic/game/sgt/toilet.h"
+#include "titanic/game/sgt/vase.h"
+#include "titanic/game/sgt/washstand.h"
+#include "titanic/game/transport/gondolier.h"
+#include "titanic/game/transport/lift.h"
+#include "titanic/game/transport/lift_indicator.h"
+#include "titanic/game/transport/pellerator.h"
+#include "titanic/game/transport/service_elevator.h"
+#include "titanic/game/transport/transport.h"
+#include "titanic/gfx/act_button.h"
+#include "titanic/gfx/changes_season_button.h"
+#include "titanic/gfx/chev_left_off.h"
+#include "titanic/gfx/chev_left_on.h"
+#include "titanic/gfx/chev_right_off.h"
+#include "titanic/gfx/chev_right_on.h"
+#include "titanic/gfx/chev_send_rec_switch.h"
+#include "titanic/gfx/chev_switch.h"
+#include "titanic/gfx/edit_control.h"
+#include "titanic/gfx/elevator_button.h"
+#include "titanic/gfx/get_from_succ.h"
+#include "titanic/gfx/helmet_on_off.h"
+#include "titanic/gfx/home_photo.h"
+#include "titanic/gfx/icon_nav_action.h"
+#include "titanic/gfx/icon_nav_butt.h"
+#include "titanic/gfx/icon_nav_down.h"
+#include "titanic/gfx/icon_nav_image.h"
+#include "titanic/gfx/icon_nav_left.h"
+#include "titanic/gfx/icon_nav_receive.h"
+#include "titanic/gfx/icon_nav_right.h"
+#include "titanic/gfx/icon_nav_send.h"
+#include "titanic/gfx/icon_nav_up.h"
+#include "titanic/gfx/keybrd_butt.h"
+#include "titanic/gfx/move_object_button.h"
+#include "titanic/gfx/music_control.h"
+#include "titanic/gfx/music_slider_pitch.h"
+#include "titanic/gfx/music_slider_speed.h"
+#include "titanic/gfx/music_switch.h"
+#include "titanic/gfx/music_switch_inversion.h"
+#include "titanic/gfx/music_switch_reverse.h"
+#include "titanic/gfx/music_voice_mute.h"
+#include "titanic/gfx/pet_drag_chev.h"
+#include "titanic/gfx/pet_graphic.h"
+#include "titanic/gfx/pet_graphic2.h"
+#include "titanic/gfx/pet_leaf.h"
+#include "titanic/gfx/pet_mode_off.h"
+#include "titanic/gfx/pet_mode_on.h"
+#include "titanic/gfx/pet_mode_panel.h"
+#include "titanic/gfx/pet_pannel1.h"
+#include "titanic/gfx/pet_pannel2.h"
+#include "titanic/gfx/pet_pannel3.h"
+#include "titanic/gfx/send_to_succ.h"
+#include "titanic/gfx/sgt_selector.h"
+#include "titanic/gfx/slider_button.h"
+#include "titanic/gfx/small_chev_left_off.h"
+#include "titanic/gfx/small_chev_left_on.h"
+#include "titanic/gfx/small_chev_right_off.h"
+#include "titanic/gfx/small_chev_right_on.h"
+#include "titanic/gfx/status_change_button.h"
+#include "titanic/gfx/st_button.h"
+#include "titanic/gfx/toggle_button.h"
+#include "titanic/gfx/text_down.h"
+#include "titanic/gfx/text_skrew.h"
+#include "titanic/gfx/text_up.h"
+#include "titanic/gfx/toggle_switch.h"
+
+#include "titanic/messages/messages.h"
+#include "titanic/messages/auto_sound_event.h"
+#include "titanic/messages/bilge_auto_sound_event.h"
+#include "titanic/messages/bilge_dispensor_event.h"
+#include "titanic/messages/door_auto_sound_event.h"
+#include "titanic/messages/mouse_messages.h"
+#include "titanic/messages/pet_messages.h"
+#include "titanic/messages/service_elevator_door.h"
+
+#include "titanic/moves/enter_bomb_room.h"
+#include "titanic/moves/enter_bridge.h"
+#include "titanic/moves/enter_exit_first_class_state.h"
+#include "titanic/moves/enter_exit_mini_lift.h"
+#include "titanic/moves/enter_exit_sec_class_mini_lift.h"
+#include "titanic/moves/enter_exit_view.h"
+#include "titanic/moves/enter_sec_class_state.h"
+#include "titanic/moves/exit_arboretum.h"
+#include "titanic/moves/exit_bridge.h"
+#include "titanic/moves/exit_lift.h"
+#include "titanic/moves/exit_pellerator.h"
+#include "titanic/moves/exit_state_room.h"
+#include "titanic/moves/exit_tiania.h"
+#include "titanic/moves/move_player_in_parrot_room.h"
+#include "titanic/moves/move_player_to.h"
+#include "titanic/moves/move_player_to_from.h"
+#include "titanic/moves/multi_move.h"
+#include "titanic/moves/pan_from_pel.h"
+#include "titanic/moves/restaurant_pan_handler.h"
+#include "titanic/moves/restricted_move.h"
+#include "titanic/moves/scraliontis_table.h"
+#include "titanic/moves/trip_down_canal.h"
+
+#include "titanic/npcs/barbot.h"
+#include "titanic/npcs/bellbot.h"
+#include "titanic/npcs/callbot.h"
+#include "titanic/npcs/deskbot.h"
+#include "titanic/npcs/doorbot.h"
+#include "titanic/npcs/liftbot.h"
+#include "titanic/npcs/maitre_d.h"
+#include "titanic/npcs/mobile.h"
+#include "titanic/npcs/parrot.h"
+#include "titanic/npcs/starlings.h"
+#include "titanic/npcs/succubus.h"
+#include "titanic/npcs/summon_bots.h"
+#include "titanic/npcs/titania.h"
+#include "titanic/npcs/true_talk_npc.h"
+
+#include "titanic/pet_control/pet_control.h"
+
+#include "titanic/sound/auto_music_player.h"
+#include "titanic/sound/auto_music_player_base.h"
+#include "titanic/sound/auto_sound_player.h"
+#include "titanic/sound/auto_sound_player_adsr.h"
+#include "titanic/sound/background_sound_maker.h"
+#include "titanic/sound/bird_song.h"
+#include "titanic/sound/dome_from_top_of_well.h"
+#include "titanic/sound/gondolier_song.h"
+#include "titanic/sound/enter_view_toggles_other_music.h"
+#include "titanic/sound/music_player.h"
+#include "titanic/sound/node_auto_sound_player.h"
+#include "titanic/sound/restricted_auto_music_player.h"
+#include "titanic/sound/room_auto_sound_player.h"
+#include "titanic/sound/room_trigger_auto_music_player.h"
+#include "titanic/sound/season_noises.h"
+#include "titanic/sound/seasonal_music_player.h"
+#include "titanic/sound/titania_speech.h"
+#include "titanic/sound/trigger_auto_music_player.h"
+#include "titanic/sound/view_auto_sound_player.h"
+#include "titanic/sound/view_toggles_other_music.h"
+#include "titanic/sound/water_lapping_sounds.h"
+
+#include "titanic/star_control/star_control.h"
+
+namespace Titanic {
+
+CSaveableObject *ClassDef::create() {
+ return new CSaveableObject();
+}
+
+/*------------------------------------------------------------------------*/
+
+Common::HashMap<Common::String, CSaveableObject::CreateFunction> *
+ CSaveableObject::_classList = nullptr;
+Common::List<ClassDef *> *CSaveableObject::_classDefs;
+
+#define DEFFN(T) ClassDef *T::_type; \
+ CSaveableObject *Function##T() { return new T(); }
+#define ADDFN(CHILD, PARENT) CHILD::_type = new TypeTemplate<CHILD>(#CHILD, nullptr); \
+ (*_classList)[#CHILD] = Function##CHILD
+
+DEFFN(CArm)
+DEFFN(CAuditoryCentre)
+DEFFN(CBowlEar)
+DEFFN(CBrain)
+DEFFN(CBridgePiece)
+DEFFN(CCarry)
+DEFFN(CCarryParrot)
+DEFFN(CCentralCore)
+DEFFN(CChicken)
+DEFFN(CCrushedTV)
+DEFFN(CEar)
+DEFFN(CEye)
+DEFFN(CFeathers)
+DEFFN(CFruit)
+DEFFN(CGlass)
+DEFFN(CHammer)
+DEFFN(CHeadPiece)
+DEFFN(CHose)
+DEFFN(CHoseEnd)
+DEFFN(CKey)
+DEFFN(CLiftbotHead)
+DEFFN(CLongStick)
+DEFFN(CMagazine)
+DEFFN(CMaitreDLeftArm)
+DEFFN(CMaitreDRightArm)
+DEFFN(CMouth)
+DEFFN(CNapkin)
+DEFFN(CNose)
+DEFFN(CNote)
+DEFFN(CParcel)
+DEFFN(CPerch)
+DEFFN(CPhonographCylinder)
+DEFFN(CPhonographEar)
+DEFFN(CPhotograph)
+DEFFN(CPlugIn)
+DEFFN(CSpeechCentre)
+DEFFN(CSweets)
+DEFFN(CVisionCentre)
+
+DEFFN(CBackground)
+DEFFN(CClickResponder)
+DEFFN(CDontSaveFileItem)
+DEFFN(CDropTarget)
+DEFFN(CFileItem)
+DEFFN(CFileListItem)
+DEFFN(CGameObject)
+DEFFN(CGameObjectDescItem)
+DEFFN(CLinkItem)
+DEFFN(ListItem)
+DEFFN(CMessageTarget)
+DEFFN(CMovieClip)
+DEFFN(CMultiDropTarget)
+DEFFN(CNamedItem)
+DEFFN(CNodeItem)
+DEFFN(CProjectItem)
+DEFFN(CResourceKey)
+DEFFN(CRoomItem)
+DEFFN(CSaveableObject)
+DEFFN(CStaticImage)
+DEFFN(CTurnOnObject)
+DEFFN(CTurnOnPlaySound)
+DEFFN(CTurnOnTurnOff)
+DEFFN(CTreeItem)
+DEFFN(CViewItem)
+
+DEFFN(CAnnounce)
+DEFFN(CAnnoyBarbot)
+DEFFN(CArbBackground)
+DEFFN(CArboretumGate)
+DEFFN(CAutoAnimate)
+DEFFN(CBarBell)
+DEFFN(CBarMenu)
+DEFFN(CBarMenuButton)
+DEFFN(CBelbotGetLight)
+DEFFN(CBilgeSuccUBus)
+DEFFN(CBomb)
+DEFFN(CBottomOfWellMonitor)
+DEFFN(CBowlUnlocker)
+DEFFN(CBrainSlot)
+DEFFN(CBridgeDoor)
+DEFFN(CBridgeView)
+DEFFN(CBrokenPellBase)
+DEFFN(CBrokenPellerator)
+DEFFN(CBrokenPelleratorFroz)
+DEFFN(CCage)
+DEFFN(CCallPellerator)
+DEFFN(CCaptainsWheel)
+DEFFN(CCDROM)
+DEFFN(CCDROMComputer)
+DEFFN(CCDROMTray)
+DEFFN(CCellPointButton)
+DEFFN(CChevCode)
+DEFFN(CChevPanel)
+DEFFN(CChickenCooler)
+DEFFN(CChickenDispensor)
+DEFFN(CCloseBrokenPel)
+DEFFN(CodeWheel)
+DEFFN(CComputer)
+DEFFN(CComputerScreen)
+DEFFN(CCookie)
+DEFFN(CCredits)
+DEFFN(CCreditsButton)
+DEFFN(CDeadArea)
+DEFFN(CDeskClickResponder)
+DEFFN(CDoorbotElevatorHandler)
+DEFFN(CDoorbotHomeHandler)
+DEFFN(CEarSweetBowl)
+DEFFN(CEjectPhonographButton)
+DEFFN(CElevatorActionArea)
+DEFFN(CEmmaControl)
+DEFFN(CEmptyNutBowl)
+DEFFN(CEndCreditText)
+DEFFN(CEndCredits)
+DEFFN(CEndExplodeShip)
+DEFFN(CEndGameCredits)
+DEFFN(CEndSequenceControl)
+DEFFN(CFan)
+DEFFN(CFanControl)
+DEFFN(CFanDecrease)
+DEFFN(CFanIncrease)
+DEFFN(CFanNoises)
+DEFFN(CFloorIndicator)
+DEFFN(CGamesConsole)
+DEFFN(CGetLiftEye2)
+DEFFN(CGlassSmasher)
+DEFFN(CHammerClip)
+DEFFN(CHammerDispensor)
+DEFFN(CHammerDispensorButton)
+DEFFN(CHeadSlot)
+DEFFN(CHeadSmashEvent)
+DEFFN(CHeadSmashLever)
+DEFFN(CHeadSpinner)
+DEFFN(CIdleSummoner)
+DEFFN(CLeaveSecClassState)
+DEFFN(CLemonDispensor)
+DEFFN(CLight)
+DEFFN(CLightSwitch)
+DEFFN(CLittleLiftButton)
+DEFFN(CLongStickDispenser)
+DEFFN(CMailMan)
+DEFFN(CMissiveOMat)
+DEFFN(CMissiveOMatButton)
+DEFFN(CMovieTester)
+DEFFN(CMusicalInstrument)
+DEFFN(CMusicConsoleButton)
+DEFFN(CMusicRoomPhonograph)
+DEFFN(CMusicRoomStopPhonographButton)
+DEFFN(CMusicSystemLock)
+DEFFN(CNavHelmet)
+DEFFN(CNavigationComputer)
+DEFFN(CNoNutBowl)
+DEFFN(CNoseHolder)
+DEFFN(CNullPortHole)
+DEFFN(CNutReplacer)
+DEFFN(CPetDisabler)
+DEFFN(CPhonograph)
+DEFFN(CPhonographLid)
+DEFFN(CPlayMusicButton)
+DEFFN(CPlayOnAct)
+DEFFN(CPortHole)
+DEFFN(CRecordPhonographButton)
+DEFFN(CReplacementEar)
+DEFFN(CReservedTable)
+DEFFN(CRestaurantCylinderHolder)
+DEFFN(CRestaurantPhonograph)
+DEFFN(CSauceDispensor)
+DEFFN(CSearchPoint)
+DEFFN(CSeasonBackground)
+DEFFN(CSeasonBarrel)
+DEFFN(CSeasonalAdjustment)
+DEFFN(CServiceElevatorWindow)
+DEFFN(CShipSetting)
+DEFFN(CShipSettingButton)
+DEFFN(CShowCellpoints)
+DEFFN(CSpeechDispensor)
+DEFFN(CSplashAnimation)
+DEFFN(CStarlingPuret)
+DEFFN(CStartAction)
+DEFFN(CStopPhonographButton)
+DEFFN(CSUBGlass)
+DEFFN(CSUBWrapper)
+DEFFN(CSweetBowl)
+DEFFN(CTelevision)
+DEFFN(CThirdClassCanal)
+DEFFN(CThrowTVDownWell)
+DEFFN(CTitaniaStillControl)
+DEFFN(CTOWParrotNav)
+DEFFN(CUpLighter)
+DEFFN(CUselessLever)
+DEFFN(CVolumeControl)
+DEFFN(CWheelButton)
+DEFFN(CWheelHotSpot)
+DEFFN(CWheelSpin)
+DEFFN(CWheelSpinHorn)
+DEFFN(CGondolierBase)
+DEFFN(CGondolierChest)
+DEFFN(CGondolierFace)
+DEFFN(CGondolierMixer)
+DEFFN(CGondolierSlider)
+DEFFN(CMaitreDArmHolder)
+DEFFN(CMaitreDBody)
+DEFFN(CMaitreDLegs)
+DEFFN(CMaitreDProdReceptor)
+DEFFN(CParrotLobbyController)
+DEFFN(CParrotLobbyLinkUpdater)
+DEFFN(CParrotLobbyObject)
+DEFFN(CParrotLobbyViewObject)
+DEFFN(CParrotLoser)
+DEFFN(CParrotNutBowlActor)
+DEFFN(CParrotNutEater)
+DEFFN(CParrotPerchHolder)
+DEFFN(CParrotSuccUBus)
+DEFFN(CParrotTrigger)
+DEFFN(CPlayerMeetsParrot)
+DEFFN(CPET)
+DEFFN(CPETClass1)
+DEFFN(CPETClass2)
+DEFFN(CPETClass3)
+DEFFN(CPetControl)
+DEFFN(CPetDragChev)
+DEFFN(CPetGraphic)
+DEFFN(CPetGraphic2)
+DEFFN(PETLeaf)
+DEFFN(CPETLift)
+DEFFN(CPETMonitor)
+DEFFN(CPETPellerator)
+DEFFN(CPETPosition)
+DEFFN(CPETSentinal)
+DEFFN(CPETSounds)
+DEFFN(CPETTransition)
+DEFFN(CPETTransport)
+DEFFN(CPickUp)
+DEFFN(CPickUpBarGlass)
+DEFFN(CPickUpHose)
+DEFFN(CPickUpLemon)
+DEFFN(CPickUpSpeechCentre)
+DEFFN(CPickUpVisCentre)
+DEFFN(CBarShelfVisCentre)
+DEFFN(CLemonOnBar)
+DEFFN(CPlaceHolder)
+DEFFN(CTVOnBar)
+DEFFN(CArmchair)
+DEFFN(CBasin)
+DEFFN(CBedfoot)
+DEFFN(CBedhead)
+DEFFN(CChestOfDrawers)
+DEFFN(CDesk)
+DEFFN(CDeskchair)
+DEFFN(CDrawer)
+DEFFN(CSGTDoors)
+DEFFN(SGTNav)
+DEFFN(CSGTNavigation)
+DEFFN(CSGTRestaurantDoors)
+DEFFN(CSGTStateControl)
+DEFFN(CSGTStateRoom)
+DEFFN(CSGTTV)
+DEFFN(CSGTUpperDoorsSound)
+DEFFN(CToilet)
+DEFFN(CVase)
+DEFFN(CWashstand)
+
+DEFFN(CGondolier)
+DEFFN(CLift)
+DEFFN(CLiftindicator)
+DEFFN(CPellerator)
+DEFFN(CServiceElevator)
+DEFFN(CTransport)
+
+DEFFN(CActButton)
+DEFFN(CChangesSeasonButton)
+DEFFN(CChevLeftOff)
+DEFFN(CChevLeftOn)
+DEFFN(CChevRightOff)
+DEFFN(CChevRightOn)
+DEFFN(CChevSendRecSwitch)
+DEFFN(CChevSwitch)
+DEFFN(CEditControl)
+DEFFN(CElevatorButton)
+DEFFN(CGetFromSucc)
+DEFFN(CHelmetOnOff)
+DEFFN(CHomePhoto)
+DEFFN(CIconNavAction)
+DEFFN(CIconNavButt)
+DEFFN(CIconNavDown)
+DEFFN(CIconNavImage)
+DEFFN(CIconNavLeft)
+DEFFN(CIconNavReceive)
+DEFFN(CIconNavRight)
+DEFFN(CIconNavSend)
+DEFFN(CIconNavUp)
+DEFFN(CKeybrdButt)
+DEFFN(CMoveObjectButton)
+DEFFN(CMusicControl)
+DEFFN(CMusicSlider)
+DEFFN(CMusicSliderPitch)
+DEFFN(CMusicSliderSpeed)
+DEFFN(CMusicSwitch)
+DEFFN(CMusicSwitchInversion)
+DEFFN(CMusicSwitchReverse)
+DEFFN(CMusicVoiceMute)
+DEFFN(CPetModeOff)
+DEFFN(CPetModeOn)
+DEFFN(CPetModePanel)
+DEFFN(CPetPannel1)
+DEFFN(CPetPannel2)
+DEFFN(CPetPannel3)
+DEFFN(CSendToSucc)
+DEFFN(CSGTSelector)
+DEFFN(CSliderButton)
+DEFFN(CSmallChevLeftOff)
+DEFFN(CSmallChevLeftOn)
+DEFFN(CSmallChevRightOff)
+DEFFN(CSmallChevRightOn)
+DEFFN(CStatusChangeButton)
+DEFFN(CSTButton)
+DEFFN(CTextDown)
+DEFFN(CTextSkrew)
+DEFFN(CTextUp)
+DEFFN(CToggleButton)
+DEFFN(CToggleSwitch)
+
+DEFFN(CActMsg)
+DEFFN(CActivationmsg)
+DEFFN(CAddHeadPieceMsg)
+DEFFN(CAnimateMaitreDMsg)
+DEFFN(CArboretumGateMsg)
+DEFFN(CArmPickedUpFromTableMsg)
+DEFFN(CAutoSoundEvent)
+DEFFN(CBilgeAutoSoundEvent)
+DEFFN(CBilgeDispensorEvent)
+DEFFN(CBodyInBilgeRoomMsg)
+DEFFN(CBowlStateChange)
+DEFFN(CCarryObjectArrivedMsg)
+DEFFN(CChangeSeasonMsg)
+DEFFN(CCheckAllPossibleCodes)
+DEFFN(CCheckChevCode)
+DEFFN(CChildDragEndMsg)
+DEFFN(CChildDragMoveMsg)
+DEFFN(CChildDragStartMsg)
+DEFFN(CClearChevPanelBits)
+DEFFN(CCorrectMusicPlayedMsg)
+DEFFN(CCreateMusicPlayerMsg)
+DEFFN(CCylinderHolderReadyMsg)
+DEFFN(CDeactivationMsg)
+DEFFN(CDeliverCCarryMsg)
+DEFFN(CDisableMaitreDProdReceptor)
+DEFFN(CDismissBotMsg)
+DEFFN(CDoffNavHelmet)
+DEFFN(CDonNavHelmet)
+DEFFN(CDoorAutoSoundEvent)
+DEFFN(CDoorbotNeededInElevatorMsg)
+DEFFN(CDoorbotNeededInHomeMsg)
+DEFFN(CDropobjectMsg)
+DEFFN(CDropZoneGotObjectMsg)
+DEFFN(CDropZoneLostObjectMsg)
+DEFFN(CEditControlMsg)
+DEFFN(CEnterNodeMsg);
+DEFFN(CEnterRoomMsg);
+DEFFN(CEnterViewMsg);
+DEFFN(CEjectCylinderMsg)
+DEFFN(CErasePhonographCylinderMsg)
+DEFFN(CFrameMsg)
+DEFFN(CFreshenCookieMsg)
+DEFFN(CGetChevClassBits)
+DEFFN(CGetChevClassNum)
+DEFFN(CGetChevCodeFromRoomNameMsg)
+DEFFN(CGetChevFloorBits)
+DEFFN(CGetChevFloorNum)
+DEFFN(CGetChevLiftBits)
+DEFFN(CGetChevLiftNum)
+DEFFN(CGetChevRoomBits)
+DEFFN(CGetChevRoomNum)
+DEFFN(CHoseConnectedMsg)
+DEFFN(CInitializeAnimMsg)
+DEFFN(CIsEarBowlPuzzleDone)
+DEFFN(CIsHookedOnMsg)
+DEFFN(CIsParrotPresentMsg)
+DEFFN(CKeyCharMsg)
+DEFFN(CLeaveNodeMsg);
+DEFFN(CLeaveRoomMsg);
+DEFFN(CLeaveViewMsg);
+DEFFN(CLemonFallsFromTreeMsg)
+DEFFN(CLightsMsg)
+DEFFN(CLoadSuccessMsg)
+DEFFN(CLockPhonographMsg)
+DEFFN(CMaitreDDefeatedMsg)
+DEFFN(CMaitreDHappyMsg)
+DEFFN(CMessage)
+DEFFN(CMissiveOMatActionMsg)
+DEFFN(CMouseMsg)
+DEFFN(CMouseMoveMsg)
+DEFFN(CMouseButtonMsg)
+DEFFN(CMouseButtonDownMsg)
+DEFFN(CMouseButtonUpMsg)
+DEFFN(CMouseButtonDoubleClickMsg)
+DEFFN(CMouseDragMsg)
+DEFFN(CMouseDragStartMsg)
+DEFFN(CMouseDragMoveMsg)
+DEFFN(CMouseDragEndMsg)
+DEFFN(CMoveToStartPosMsg)
+DEFFN(CMovieEndMsg)
+DEFFN(CMovieFrameMsg)
+DEFFN(CMusicHasStartedMsg)
+DEFFN(CMusicHasStoppedMsg)
+DEFFN(CMusicSettingChangedMsg)
+DEFFN(CNPCPlayAnimationMsg)
+DEFFN(CNPCPlayIdleAnimationMsg)
+DEFFN(CNPCPlayTalkingAnimationMsg)
+DEFFN(CNPCQueueIdleAnimMsg)
+DEFFN(CNutPuzzleMsg)
+DEFFN(COnSummonBotMsg)
+DEFFN(COpeningCreditsMsg)
+DEFFN(CPETDeliverMsg)
+DEFFN(CPETGainedObjectMsg)
+DEFFN(CPETHelmetOnOffMsg)
+DEFFN(CPETKeyboardOnOffMsg)
+DEFFN(CPETLostObjectMsg)
+DEFFN(CPETObjectSelectedMsg)
+DEFFN(CPETObjectStateMsg)
+DEFFN(CPETPhotoOnOffMsg)
+DEFFN(CPETPlaySoundMsg)
+DEFFN(CPETReceiveMsg)
+DEFFN(CPETSetStarDestinationMsg)
+DEFFN(CPETStarFieldLockMsg)
+DEFFN(CPETStereoFieldOnOffMsg)
+DEFFN(CPETTargetMsg)
+DEFFN(CPanningAwayFromParrotMsg)
+DEFFN(CParrotSpeakMsg)
+DEFFN(CParrotTriesChickenMsg)
+DEFFN(CPassOnDragStartMsg)
+DEFFN(CPhonographPlayMsg)
+DEFFN(CPhonographReadyToPlayMsg)
+DEFFN(CPhonographRecordMsg)
+DEFFN(CPhonographStopMsg)
+DEFFN(CPlayRangeMsg)
+DEFFN(CPlayerTriesRestaurantTableMsg)
+DEFFN(CPreEnterNodeMsg);
+DEFFN(CPreEnterRoomMsg);
+DEFFN(CPreEnterViewMsg);
+DEFFN(CPreSaveMsg)
+DEFFN(CProdMaitreDMsg)
+DEFFN(CPumpingMsg)
+DEFFN(CPutBotBackInHisBoxMsg)
+DEFFN(CPutParrotBackMsg)
+DEFFN(CPuzzleSolvedMsg)
+DEFFN(CQueryCylinderHolderMsg)
+DEFFN(CQueryCylinderMsg)
+DEFFN(CQueryCylinderNameMsg)
+DEFFN(CQueryCylinderTypeMsg)
+DEFFN(CQueryMusicControlSettingMsg)
+DEFFN(CQueryPhonographState)
+DEFFN(CRecordOntoCylinderMsg)
+DEFFN(CRemoveFromGameMsg)
+DEFFN(CReplaceBowlAndNutsMsg)
+DEFFN(CRestaurantMusicChanged)
+DEFFN(CSendCCarryMsg)
+DEFFN(CSenseWorkingMsg)
+DEFFN(CServiceElevatorDoor)
+DEFFN(CServiceElevatorFloorChangeMsg)
+DEFFN(CServiceElevatorFloorRequestMsg)
+DEFFN(CServiceElevatorMsg)
+DEFFN(CSetChevButtonImageMsg)
+DEFFN(CSetChevClassBits)
+DEFFN(CSetChevFloorBits)
+DEFFN(CSetChevLiftBits)
+DEFFN(CSetChevPanelBitMsg)
+DEFFN(CSetChevPanelButtonsMsg)
+DEFFN(CSetChevRoomBits)
+DEFFN(CSetMusicControlsMsg)
+DEFFN(CSetVarMsg)
+DEFFN(CSetVolumeMsg)
+DEFFN(CShipSettingMsg)
+DEFFN(CShowTextMsg)
+DEFFN(CSignalObject)
+DEFFN(CSpeechFallsFromTreeMsg)
+DEFFN(CStartMusicMsg)
+DEFFN(CStatusChangeMsg)
+DEFFN(CStopMusicMsg)
+DEFFN(CSubAcceptCCarryMsg)
+DEFFN(CSubDeliverCCarryMsg)
+DEFFN(CSubSendCCarryMsg)
+DEFFN(CSUBTransition)
+DEFFN(CSubTurnOffMsg)
+DEFFN(CSubTurnOnMsg)
+DEFFN(CSummonBotMsg)
+DEFFN(CSummonBotQuerryMsg)
+DEFFN(CTakeHeadPieceMsg)
+DEFFN(CTextInputMsg)
+DEFFN(CTimeDilationMsg)
+DEFFN(CTimeMsg)
+DEFFN(CTitleSequenceEndedMsg)
+DEFFN(CTransitMsg)
+DEFFN(CTransportMsg)
+DEFFN(CTriggerAutoMusicPlayerMsg)
+DEFFN(CTriggerNPCEvent)
+DEFFN(CTrueTalkGetAnimSetMsg)
+DEFFN(CTrueTalkGetAssetDetailsMsg)
+DEFFN(CTrueTalkGetStateValueMsg)
+DEFFN(CTrueTalkNotifySpeechEndedMsg)
+DEFFN(CTrueTalkNotifySpeechStartedMsg)
+DEFFN(CTrueTalkQueueUpAnimSetMsg)
+DEFFN(CTrueTalkSelfQueueAnimSetMsg)
+DEFFN(CTrueTalkTriggerActionMsg)
+DEFFN(CTurnOff)
+DEFFN(CTurnOn)
+DEFFN(CUse)
+DEFFN(CUseWithCharMsg)
+DEFFN(CUseWithOtherMsg)
+DEFFN(CVirtualKeyCharMsg)
+DEFFN(CVisibleMsg)
+
+DEFFN(CEnterBombRoom)
+DEFFN(CEnterBridge)
+DEFFN(CEnterExitFirstClassState)
+DEFFN(CEnterExitMiniLift)
+DEFFN(CEnterExitSecClassMiniLift)
+DEFFN(CEnterExitView)
+DEFFN(CEnterSecClassState)
+DEFFN(CExitArboretum)
+DEFFN(CExitBridge)
+DEFFN(CExitLift)
+DEFFN(CExitPellerator)
+DEFFN(CExitStateRoom)
+DEFFN(CExitTiania)
+DEFFN(CMovePlayerInParrotRoom)
+DEFFN(CMovePlayerTo)
+DEFFN(CMovePlayerToFrom)
+DEFFN(CMultiMove)
+DEFFN(CPanFromPel)
+DEFFN(CRestaurantPanHandler)
+DEFFN(CScraliontisTable)
+DEFFN(CRestrictedMove)
+DEFFN(CTripDownCanal)
+
+DEFFN(CBarbot)
+DEFFN(CBellBot)
+DEFFN(CCallBot)
+DEFFN(CCharacter)
+DEFFN(CDeskbot)
+DEFFN(CDoorbot)
+DEFFN(CLiftBot)
+DEFFN(CMaitreD)
+DEFFN(CMobile)
+DEFFN(CParrot)
+DEFFN(CRobotController)
+DEFFN(CStarlings)
+DEFFN(CSummonBots)
+DEFFN(CSuccUBus)
+DEFFN(CTitania)
+DEFFN(CTrueTalkNPC)
+DEFFN(CAutoMusicPlayer)
+DEFFN(CAutoMusicPlayerBase)
+DEFFN(CAutoSoundPlayer)
+DEFFN(CAutoSoundPlayerADSR)
+DEFFN(CBackgroundSoundMaker)
+DEFFN(CBirdSong)
+DEFFN(CDomeFromTopOfWell)
+DEFFN(CEnterViewTogglesOtherMusic)
+DEFFN(CGondolierSong)
+DEFFN(CMusicPlayer)
+DEFFN(CNodeAutoSoundPlayer)
+DEFFN(CRestrictedAutoMusicPlayer)
+DEFFN(CRoomAutoSoundPlayer)
+DEFFN(CRoomTriggerAutoMusicPlayer);
+DEFFN(CSeasonNoises)
+DEFFN(CSeasonalMusicPlayer)
+DEFFN(CTitaniaSpeech)
+DEFFN(CTriggerAutoMusicPlayer)
+DEFFN(CViewAutoSoundPlayer)
+DEFFN(CViewTogglesOtherMusic)
+DEFFN(CWaterLappingSounds)
+DEFFN(CStarControl)
+
+void CSaveableObject::initClassList() {
+ _classDefs = new Common::List<ClassDef *>();
+ _classList = new Common::HashMap<Common::String, CreateFunction>();
+ ADDFN(CArm, CCarry);
+ ADDFN(CAuditoryCentre, CBrain);
+ ADDFN(CBowlEar, CEar);
+ ADDFN(CBrain, CCarry);
+ ADDFN(CBridgePiece, CCarry);
+ ADDFN(CCarry, CGameObject);
+ ADDFN(CCarryParrot, CCarry);
+ ADDFN(CCentralCore, CBrain);
+ ADDFN(CChicken, CCarry);
+ ADDFN(CCrushedTV, CCarry);
+ ADDFN(CEar, CHeadPiece);
+ ADDFN(CEye, CHeadPiece);
+ ADDFN(CFeathers, CCarry);
+ ADDFN(CFruit, CCarry);
+ ADDFN(CGlass, CCarry);
+ ADDFN(CHammer, CCarry);
+ ADDFN(CHeadPiece, CCarry);
+ ADDFN(CHose, CCarry);
+ ADDFN(CHoseEnd, CHose);
+ ADDFN(CKey, CCarry);
+ ADDFN(CLiftbotHead, CCarry);
+ ADDFN(CLongStick, CCarry);
+ ADDFN(CMagazine, CCarry);
+ ADDFN(CMaitreDLeftArm, CArm);
+ ADDFN(CMaitreDRightArm, CArm);
+ ADDFN(CMouth, CHeadPiece);
+ ADDFN(CNapkin, CCarry);
+ ADDFN(CNose, CHeadPiece);
+ ADDFN(CNote, CCarry);
+ ADDFN(CParcel, CCarry);
+ ADDFN(CPerch, CCentralCore);
+ ADDFN(CPhonographCylinder, CCarry);
+ ADDFN(CPhonographEar, CEar);
+ ADDFN(CPhotograph, CCarry);
+ ADDFN(CPlugIn, CCarry);
+ ADDFN(CSpeechCentre, CBrain);
+ ADDFN(CSweets, CCarry);
+ ADDFN(CVisionCentre, CBrain);
+
+ ADDFN(CBackground, CGameObject);
+ ADDFN(CClickResponder, CGameObject);
+ ADDFN(CDontSaveFileItem, CFileItem);
+ ADDFN(CDropTarget, CGameObject);
+ ADDFN(CFileItem, CTreeItem);
+ ADDFN(CFileListItem, ListItem);
+ ADDFN(CGameObject, CNamedItem);
+ ADDFN(CGameObjectDescItem, CTreeItem);
+ ADDFN(CLinkItem, CNamedItem);
+ ADDFN(ListItem, CSaveableObject);
+ ADDFN(CMessageTarget, CSaveableObject);
+ ADDFN(CMovieClip, ListItem);
+ ADDFN(CMultiDropTarget, CDropTarget);
+ ADDFN(CNamedItem, CTreeItem);
+ ADDFN(CNodeItem, CNamedItem);
+ ADDFN(CProjectItem, CFileItem);
+ ADDFN(CResourceKey, CSaveableObject);
+ ADDFN(CRoomItem, CNamedItem);
+ ADDFN(CSaveableObject, CSaveableObject);
+ ADDFN(CStaticImage, CGameObject);
+ ADDFN(CTurnOnObject, CBackground);
+ ADDFN(CTreeItem, CMessageTarget);
+ ADDFN(CTurnOnPlaySound, CTurnOnObject);
+ ADDFN(CTurnOnTurnOff, CBackground);
+ ADDFN(CViewItem, CNamedItem);
+
+ ADDFN(CAnnounce, CGameObject);
+ ADDFN(CAnnoyBarbot, CGameObject);
+ ADDFN(CArbBackground, CBackground);
+ ADDFN(CArboretumGate, CBackground);
+ ADDFN(CAutoAnimate, CBackground);
+ ADDFN(CBarBell, CGameObject);
+ ADDFN(CBarMenu, CGameObject);
+ ADDFN(CBarMenuButton, CGameObject);
+ ADDFN(CBelbotGetLight, CGameObject);
+ ADDFN(CBilgeSuccUBus, CSuccUBus);
+ ADDFN(CBomb, CBackground);
+ ADDFN(CBottomOfWellMonitor, CGameObject);
+ ADDFN(CBowlUnlocker, CGameObject);
+ ADDFN(CBrainSlot, CGameObject);
+ ADDFN(CBridgeDoor, CGameObject);
+ ADDFN(CBridgeView, CBackground);
+ ADDFN(CBrokenPellBase, CBackground);
+ ADDFN(CBrokenPellerator, CBrokenPellBase);
+ ADDFN(CBrokenPelleratorFroz, CBrokenPellBase);
+ ADDFN(CCage, CBackground);
+ ADDFN(CCallPellerator, CGameObject);
+ ADDFN(CCaptainsWheel, CBackground);
+ ADDFN(CCDROM, CGameObject);
+ ADDFN(CCDROMComputer, CGameObject);
+ ADDFN(CCDROMTray, CGameObject);
+ ADDFN(CCellPointButton, CBackground);
+ ADDFN(CChevCode, CGameObject);
+ ADDFN(CChevPanel, CGameObject);
+ ADDFN(CChickenCooler, CGameObject);
+ ADDFN(CChickenDispensor, CBackground);
+ ADDFN(CodeWheel, CBomb);
+ ADDFN(CCloseBrokenPel, CBackground);
+ ADDFN(CComputer, CBackground);
+ ADDFN(CComputerScreen, CGameObject);
+ ADDFN(CCookie, CGameObject);
+ ADDFN(CCredits, CGameObject);
+ ADDFN(CCreditsButton, CBackground);
+ ADDFN(CDeadArea, CGameObject);
+ ADDFN(CDeskClickResponder, CClickResponder);
+ ADDFN(CDoorbotElevatorHandler, CGameObject);
+ ADDFN(CDoorbotHomeHandler, CGameObject);
+ ADDFN(CDropTarget, CGameObject);
+ ADDFN(CEarSweetBowl, CSweetBowl);
+ ADDFN(CEjectPhonographButton, CBackground);
+ ADDFN(CElevatorActionArea, CGameObject);
+ ADDFN(CEmmaControl, CBackground);
+ ADDFN(CEmptyNutBowl, CGameObject);
+ ADDFN(CEndCreditText, CGameObject);
+ ADDFN(CEndCredits, CGameObject);
+ ADDFN(CEndExplodeShip, CGameObject);
+ ADDFN(CEndGameCredits, CGameObject);
+ ADDFN(CEndSequenceControl, CGameObject);
+ ADDFN(CFan, CGameObject);
+ ADDFN(CFanControl, CGameObject);
+ ADDFN(CFanDecrease, CGameObject);
+ ADDFN(CFanIncrease, CGameObject);
+ ADDFN(CFanNoises, CGameObject);
+ ADDFN(CFloorIndicator, CGameObject);
+ ADDFN(CGamesConsole, CBackground);
+ ADDFN(CGetLiftEye2, CGameObject);
+ ADDFN(CGlassSmasher, CGameObject);
+ ADDFN(CHammerClip, CGameObject);
+ ADDFN(CHammerDispensor, CBackground);
+ ADDFN(CHammerDispensorButton, CStartAction);
+ ADDFN(CHeadSlot, CGameObject);
+ ADDFN(CHeadSmashEvent, CBackground);
+ ADDFN(CHeadSmashLever, CBackground);
+ ADDFN(CHeadSpinner, CGameObject);
+ ADDFN(CIdleSummoner, CGameObject);
+ ADDFN(CLeaveSecClassState, CGameObject);
+ ADDFN(CLemonDispensor, CBackground);
+ ADDFN(CLight, CBackground);
+ ADDFN(CLightSwitch, CBackground);
+ ADDFN(CLittleLiftButton, CBackground);
+ ADDFN(CLongStickDispenser, CGameObject);
+ ADDFN(CMailMan, CGameObject);
+ ADDFN(CMissiveOMat, CGameObject);
+ ADDFN(CMissiveOMatButton, CEditControl);
+ ADDFN(CMovieTester, CGameObject);
+ ADDFN(CMusicalInstrument, CBackground);
+ ADDFN(CMusicConsoleButton, CMusicPlayer);
+ ADDFN(CMusicRoomPhonograph, CRestaurantPhonograph);
+ ADDFN(CMusicRoomStopPhonographButton, CEjectPhonographButton);
+ ADDFN(CMusicSystemLock, CDropTarget);
+ ADDFN(CNavHelmet, CGameObject);
+ ADDFN(CNavigationComputer, CGameObject);
+ ADDFN(CNoNutBowl, CBackground);
+ ADDFN(CNoseHolder, CDropTarget);
+ ADDFN(CNullPortHole, CClickResponder);
+ ADDFN(CNutReplacer, CGameObject);
+ ADDFN(CPetDisabler, CGameObject);
+ ADDFN(CPhonograph, CMusicPlayer);
+ ADDFN(CPhonographLid, CGameObject);
+ ADDFN(CPlayMusicButton, CBackground);
+ ADDFN(CPlayOnAct, CBackground);
+ ADDFN(CPortHole, CGameObject);
+ ADDFN(CRecordPhonographButton, CBackground);
+ ADDFN(CReplacementEar, CBackground);
+ ADDFN(CReservedTable, CGameObject);
+ ADDFN(CRestaurantCylinderHolder, CDropTarget);
+ ADDFN(CRestaurantPhonograph, CPhonograph);
+ ADDFN(CSauceDispensor, CBackground);
+ ADDFN(CSearchPoint, CGameObject);
+ ADDFN(CSeasonBackground, CBackground);
+ ADDFN(CSeasonBarrel, CBackground);
+ ADDFN(CSeasonalAdjustment, CBackground);
+ ADDFN(CServiceElevatorWindow, CBackground);
+ ADDFN(CShipSetting, CBackground);
+ ADDFN(CShipSettingButton, CGameObject);
+ ADDFN(CShowCellpoints, CGameObject);
+ ADDFN(CSpeechDispensor, CBackground);
+ ADDFN(CSplashAnimation, CGameObject);
+ ADDFN(CStarlingPuret, CGameObject);
+ ADDFN(CStartAction, CBackground);
+ ADDFN(CStopPhonographButton, CBackground);
+ ADDFN(CSUBGlass, CGameObject);
+ ADDFN(CSUBWrapper, CGameObject);
+ ADDFN(CSweetBowl, CGameObject);
+ ADDFN(CTelevision, CBackground);
+ ADDFN(CThirdClassCanal, CBackground);
+ ADDFN(CThrowTVDownWell, CGameObject);
+ ADDFN(CTitaniaStillControl, CGameObject);
+ ADDFN(CTOWParrotNav, CGameObject);
+ ADDFN(CUpLighter, CDropTarget);
+ ADDFN(CUselessLever, CToggleButton);
+ ADDFN(CVolumeControl, CGameObject);
+ ADDFN(CWheelButton, CBackground);
+ ADDFN(CWheelHotSpot, CBackground);
+ ADDFN(CWheelSpin, CBackground);
+ ADDFN(CWheelSpinHorn, CWheelSpin);
+ ADDFN(CGondolierBase, CGameObject);
+ ADDFN(CGondolierChest, CGondolierBase);
+ ADDFN(CGondolierFace, CGondolierBase);
+ ADDFN(CGondolierMixer, CGondolierBase);
+ ADDFN(CGondolierSlider, CGondolierBase);
+ ADDFN(CMaitreDArmHolder, CDropTarget);
+ ADDFN(CMaitreDBody, CMaitreDProdReceptor);
+ ADDFN(CMaitreDLegs, CMaitreDProdReceptor);
+ ADDFN(CMaitreDProdReceptor, CGameObject);
+ ADDFN(CParrotLobbyController, CParrotLobbyObject);
+ ADDFN(CParrotLobbyLinkUpdater, CParrotLobbyObject);
+ ADDFN(CParrotLobbyObject, CGameObject);
+ ADDFN(CParrotLobbyViewObject, CParrotLobbyObject);
+ ADDFN(CParrotLoser, CGameObject);
+ ADDFN(CParrotNutBowlActor, CGameObject);
+ ADDFN(CParrotNutEater, CGameObject);
+ ADDFN(CParrotPerchHolder, CMultiDropTarget);
+ ADDFN(CParrotSuccUBus, CSuccUBus);
+ ADDFN(CParrotTrigger, CGameObject);
+ ADDFN(CPlayerMeetsParrot, CGameObject);
+ ADDFN(CPET, CGameObject);
+ ADDFN(CPETClass1, CGameObject);
+ ADDFN(CPETClass2, CGameObject);
+ ADDFN(CPETClass3, CGameObject);
+ ADDFN(CPETLift, CPETTransport);
+ ADDFN(CPETMonitor, CGameObject);
+ ADDFN(CPETPellerator, CPETTransport);
+ ADDFN(CPETPosition, CGameObject);
+ ADDFN(CPETSentinal, CGameObject);
+ ADDFN(CPETSounds, CGameObject);
+ ADDFN(CPETTransition, CGameObject);
+ ADDFN(CPETTransport, CGameObject);
+ ADDFN(CPickUp, CGameObject);
+ ADDFN(CPickUpBarGlass, CPickUp);
+ ADDFN(CPickUpHose, CPickUp);
+ ADDFN(CPickUpLemon, CPickUp);
+ ADDFN(CPickUpSpeechCentre, CPickUp);
+ ADDFN(CPickUpVisCentre, CPickUp);
+ ADDFN(CBarShelfVisCentre, CPlaceHolder);
+ ADDFN(CLemonOnBar, CPlaceHolder);
+ ADDFN(CPlaceHolder, CGameObject);
+ ADDFN(CTVOnBar, CPlaceHolder);
+ ADDFN(CArmchair, CSGTStateRoom);
+ ADDFN(CBasin, CSGTStateRoom);
+ ADDFN(CBedfoot, CSGTStateRoom);
+ ADDFN(CBedhead, CSGTStateRoom);
+ ADDFN(CChestOfDrawers, CSGTStateRoom);
+ ADDFN(CDesk, CSGTStateRoom);
+ ADDFN(CDeskchair, CSGTStateRoom);
+ ADDFN(CDrawer, CSGTStateRoom);
+ ADDFN(CSGTDoors, CGameObject);
+ ADDFN(SGTNav, CSGTStateRoom);
+ ADDFN(CSGTNavigation, CGameObject);
+ ADDFN(CSGTRestaurantDoors, CGameObject);
+ ADDFN(CSGTStateControl, CBackground);
+ ADDFN(CSGTStateRoom, CBackground);
+ ADDFN(CSGTTV, CSGTStateRoom);
+ ADDFN(CSGTUpperDoorsSound, CClickResponder);
+ ADDFN(CToilet, CSGTStateRoom);
+ ADDFN(CVase, CSGTStateRoom);
+ ADDFN(CWashstand, CSGTStateRoom);
+
+ ADDFN(CGondolier, CTransport);
+ ADDFN(CLift, CTransport);
+ ADDFN(CLiftindicator, CLift);
+ ADDFN(CPellerator, CTransport);
+ ADDFN(CServiceElevator, CTransport);
+ ADDFN(CTransport, CMobile);
+
+ ADDFN(CActButton, CSTButton);
+ ADDFN(CChangesSeasonButton, CSTButton);
+ ADDFN(CChevLeftOff, CToggleSwitch);
+ ADDFN(CChevLeftOn, CToggleSwitch);
+ ADDFN(CChevRightOff, CToggleSwitch);
+ ADDFN(CChevRightOn, CToggleSwitch);
+ ADDFN(CChevSendRecSwitch, CToggleSwitch);
+ ADDFN(CChevSwitch, CToggleSwitch);
+ ADDFN(CEditControl, CGameObject);
+ ADDFN(CElevatorButton, CSTButton);
+ ADDFN(CGetFromSucc, CToggleSwitch);
+ ADDFN(CHelmetOnOff, CToggleSwitch);
+ ADDFN(CHomePhoto, CToggleSwitch);
+ ADDFN(CIconNavAction, CToggleSwitch);
+ ADDFN(CIconNavButt, CPetGraphic);
+ ADDFN(CIconNavDown, CToggleSwitch);
+ ADDFN(CIconNavImage, CPetGraphic);
+ ADDFN(CIconNavLeft, CToggleSwitch);
+ ADDFN(CIconNavReceive, CPetGraphic);
+ ADDFN(CIconNavRight, CToggleSwitch);
+ ADDFN(CIconNavSend, CPetGraphic);
+ ADDFN(CIconNavUp, CToggleSwitch);
+ ADDFN(CKeybrdButt, CToggleSwitch);
+ ADDFN(CMoveObjectButton, CSTButton);
+ ADDFN(CMusicControl, CBackground);
+ ADDFN(CMusicSlider, CMusicControl);
+ ADDFN(CMusicSliderPitch, CMusicSlider);
+ ADDFN(CMusicSliderSpeed, CMusicSlider);
+ ADDFN(CMusicSwitch, CMusicControl);
+ ADDFN(CMusicSwitchInversion, CMusicSwitch);
+ ADDFN(CMusicSwitchReverse, CMusicSwitch);
+ ADDFN(CMusicVoiceMute, CMusicControl);
+ ADDFN(CPetControl, CGameObject);
+ ADDFN(CPetDragChev, CPetGraphic2);
+ ADDFN(CPetGraphic, CGameObject);
+ ADDFN(CPetGraphic2, CGameObject);
+ ADDFN(PETLeaf, CGameObject);
+ ADDFN(CPetModeOff, CToggleSwitch);
+ ADDFN(CPetModeOn, CToggleSwitch);
+ ADDFN(CPetModePanel, CToggleSwitch);
+ ADDFN(CPetPannel1, CPetGraphic);
+ ADDFN(CPetPannel2, CPetGraphic);
+ ADDFN(CPetPannel3, CPetGraphic);
+ ADDFN(CSendToSucc, CToggleSwitch);
+ ADDFN(CSGTSelector, CPetGraphic);
+ ADDFN(CSliderButton, CSTButton);
+ ADDFN(CSmallChevLeftOff, CToggleSwitch);
+ ADDFN(CSmallChevLeftOn, CToggleSwitch);
+ ADDFN(CSmallChevRightOff, CToggleSwitch);
+ ADDFN(CSmallChevRightOn, CToggleSwitch);
+ ADDFN(CStatusChangeButton, CSTButtonClass);
+ ADDFN(CSTButton, CBackground);
+ ADDFN(CTextDown, CPetGraphic);
+ ADDFN(CTextSkrew, CPetGraphic);
+ ADDFN(CTextUp, CPetGraphic);
+ ADDFN(CToggleButton, CBackground);
+ ADDFN(CToggleSwitch, CGameObject);
+
+ ADDFN(CActMsg, CMessage);
+ ADDFN(CActivationmsg, CMessage);
+ ADDFN(CAddHeadPieceMsg, CMessage);
+ ADDFN(CAnimateMaitreDMsg, CMessage);
+ ADDFN(CArboretumGateMsg, CMessage);
+ ADDFN(CArmPickedUpFromTableMsg, CMessage);
+ ADDFN(CAutoSoundEvent, CGameObject);
+ ADDFN(CBilgeAutoSoundEvent, CAutoSoundEvent);
+ ADDFN(CBilgeDispensorEvent, CAutoSoundEvent);
+ ADDFN(CBodyInBilgeRoomMsg, CMessage);
+ ADDFN(CBowlStateChange, CMessage);
+ ADDFN(CCarryObjectArrivedMsg, CMessage);
+ ADDFN(CChangeSeasonMsg, CMessage);
+ ADDFN(CCheckAllPossibleCodes, CMessage);
+ ADDFN(CCheckChevCode, CMessage);
+ ADDFN(CChildDragEndMsg, CMessage);
+ ADDFN(CChildDragMoveMsg, CMessage);
+ ADDFN(CChildDragStartMsg, CMessage);
+ ADDFN(CClearChevPanelBits, CMessage);
+ ADDFN(CCorrectMusicPlayedMsg, CMessage);
+ ADDFN(CCreateMusicPlayerMsg, CMessage);
+ ADDFN(CCylinderHolderReadyMsg, CMessage);
+ ADDFN(CDeactivationMsg, CMessage);
+ ADDFN(CDeliverCCarryMsg, CMessage);
+ ADDFN(CDisableMaitreDProdReceptor, CMessage);
+ ADDFN(CDismissBotMsg, CMessage);
+ ADDFN(CDoffNavHelmet, CMessage);
+ ADDFN(CDonNavHelmet, CMessage);
+ ADDFN(CDoorAutoSoundEvent, CAutoSoundEvent);
+ ADDFN(CDoorbotNeededInElevatorMsg, CMessage);
+ ADDFN(CDoorbotNeededInHomeMsg, CMessage);
+ ADDFN(CDropobjectMsg, CMessage);
+ ADDFN(CDropZoneGotObjectMsg, CMessage);
+ ADDFN(CDropZoneLostObjectMsg, CMessage);
+ ADDFN(CEditControlMsg, CMessage);
+ ADDFN(CEnterNodeMsg, CMessage);
+ ADDFN(CEnterRoomMsg, CMessage);
+ ADDFN(CEnterViewMsg, CMessage);
+ ADDFN(CEjectCylinderMsg, CMessage);
+ ADDFN(CErasePhonographCylinderMsg, CMessage);
+ ADDFN(CFrameMsg, CMessage);
+ ADDFN(CFreshenCookieMsg, CMessage);
+ ADDFN(CGetChevClassBits, CMessage);
+ ADDFN(CGetChevClassNum, CMessage);
+ ADDFN(CGetChevCodeFromRoomNameMsg, CMessage);
+ ADDFN(CGetChevFloorBits, CMessage);
+ ADDFN(CGetChevFloorNum, CMessage);
+ ADDFN(CGetChevLiftBits, CMessage);
+ ADDFN(CGetChevLiftNum, CMessage);
+ ADDFN(CGetChevRoomBits, CMessage);
+ ADDFN(CGetChevRoomNum, CMessage);
+ ADDFN(CHoseConnectedMsg, CMessage);
+ ADDFN(CInitializeAnimMsg, CMessage);
+ ADDFN(CIsEarBowlPuzzleDone, CMessage);
+ ADDFN(CIsHookedOnMsg, CMessage);
+ ADDFN(CIsParrotPresentMsg, CMessage);
+ ADDFN(CKeyCharMsg, CMessage);
+ ADDFN(CLeaveNodeMsg, CMessage);
+ ADDFN(CLeaveRoomMsg, CMessage);
+ ADDFN(CLeaveViewMsg, CMessage);
+ ADDFN(CLemonFallsFromTreeMsg, CMessage);
+ ADDFN(CLightsMsg, CMessage);
+ ADDFN(CLoadSuccessMsg, CMessage);
+ ADDFN(CLockPhonographMsg, CMessage);
+ ADDFN(CMaitreDDefeatedMsg, CMessage);
+ ADDFN(CMaitreDHappyMsg, CMessage);
+ ADDFN(CMessage, CSaveableObject);
+ ADDFN(CMissiveOMatActionMsg, CMessage);
+ ADDFN(CMouseMsg, CMessage);
+ ADDFN(CMouseMoveMsg, CMouseMsg);
+ ADDFN(CMouseButtonMsg, CMouseMsg);
+ ADDFN(CMouseButtonDownMsg, CMouseButtonMsg);
+ ADDFN(CMouseButtonUpMsg, CMouseButtonMsg);
+ ADDFN(CMouseButtonDoubleClickMsg, CMouseButtonMsg);
+ ADDFN(CMouseDragMsg, CMouseMsg);
+ ADDFN(CMouseDragStartMsg, CMouseDragMsg);
+ ADDFN(CMouseDragMoveMsg, CMouseDragMsg);
+ ADDFN(CMouseDragEndMsg, CMouseDragMsg);
+ ADDFN(CMoveToStartPosMsg, CMessage);
+ ADDFN(CMovieEndMsg, CMessage);
+ ADDFN(CMovieFrameMsg, CMessage);
+ ADDFN(CMusicHasStartedMsg, CMessage);
+ ADDFN(CMusicHasStoppedMsg, CMessage);
+ ADDFN(CMusicSettingChangedMsg, CMessage);
+ ADDFN(CNPCPlayAnimationMsg, CMessage);
+ ADDFN(CNPCPlayIdleAnimationMsg, CMessage);
+ ADDFN(CNPCPlayTalkingAnimationMsg, CMessage);
+ ADDFN(CNPCQueueIdleAnimMsg, CMessage);
+ ADDFN(CNutPuzzleMsg, CMessage);
+ ADDFN(COnSummonBotMsg, CMessage);
+ ADDFN(COpeningCreditsMsg, CMessage);
+ ADDFN(CPETDeliverMsg, CMessage);
+ ADDFN(CPETGainedObjectMsg, CMessage);
+ ADDFN(CPETHelmetOnOffMsg, CMessage);
+ ADDFN(CPETKeyboardOnOffMsg, CMessage);
+ ADDFN(CPETLostObjectMsg, CMessage);
+ ADDFN(CPETObjectSelectedMsg, CMessage);
+ ADDFN(CPETObjectStateMsg, CMessage);
+ ADDFN(CPETPhotoOnOffMsg, CMessage);
+ ADDFN(CPETPlaySoundMsg, CMessage);
+ ADDFN(CPETReceiveMsg, CMessage);
+ ADDFN(CPETSetStarDestinationMsg, CMessage);
+ ADDFN(CPETStarFieldLockMsg, CMessage);
+ ADDFN(CPETStereoFieldOnOffMsg, CMessage);
+ ADDFN(CPETTargetMsg, CMessage);
+ ADDFN(CPanningAwayFromParrotMsg, CMessage);
+ ADDFN(CParrotSpeakMsg, CMessage);
+ ADDFN(CParrotTriesChickenMsg, CMessage);
+ ADDFN(CPassOnDragStartMsg, CMessage);
+ ADDFN(CPhonographPlayMsg, CMessage);
+ ADDFN(CPhonographReadyToPlayMsg, CMessage);
+ ADDFN(CPhonographRecordMsg, CMessage);
+ ADDFN(CPhonographStopMsg, CMessage);
+ ADDFN(CPlayRangeMsg, CMessage);
+ ADDFN(CPlayerTriesRestaurantTableMsg, CMessage);
+ ADDFN(CEnterNodeMsg, CMessage);
+ ADDFN(CEnterRoomMsg, CMessage);
+ ADDFN(CEnterViewMsg, CMessage);
+ ADDFN(CPreSaveMsg, CMessage);
+ ADDFN(CProdMaitreDMsg, CMessage);
+ ADDFN(CPumpingMsg, CMessage);
+ ADDFN(CPutBotBackInHisBoxMsg, CMessage);
+ ADDFN(CPutParrotBackMsg, CMessage);
+ ADDFN(CPuzzleSolvedMsg, CMessage);
+ ADDFN(CQueryCylinderHolderMsg, CMessage);
+ ADDFN(CQueryCylinderMsg, CMessage);
+ ADDFN(CQueryCylinderNameMsg, CMessage);
+ ADDFN(CQueryCylinderTypeMsg, CMessage);
+ ADDFN(CQueryMusicControlSettingMsg, CMessage);
+ ADDFN(CQueryPhonographState, CMessage);
+ ADDFN(CRecordOntoCylinderMsg, CMessage);
+ ADDFN(CRemoveFromGameMsg, CMessage);
+ ADDFN(CReplaceBowlAndNutsMsg, CMessage);
+ ADDFN(CRestaurantMusicChanged, CMessage);
+ ADDFN(CSendCCarryMsg, CMessage);
+ ADDFN(CSenseWorkingMsg, CMessage);
+ ADDFN(CServiceElevatorDoor, CMessage);
+ ADDFN(CServiceElevatorFloorChangeMsg, CMessage);
+ ADDFN(CServiceElevatorFloorRequestMsg, CMessage);
+ ADDFN(CServiceElevatorMsg, CMessage);
+ ADDFN(CSetChevButtonImageMsg, CMessage);
+ ADDFN(CSetChevClassBits, CMessage);
+ ADDFN(CSetChevFloorBits, CMessage);
+ ADDFN(CSetChevLiftBits, CMessage);
+ ADDFN(CSetChevPanelBitMsg, CMessage);
+ ADDFN(CSetChevPanelButtonsMsg, CMessage);
+ ADDFN(CSetChevRoomBits, CMessage);
+ ADDFN(CSetMusicControlsMsg, CMessage);
+ ADDFN(CSetVarMsg, CMessage);
+ ADDFN(CSetVolumeMsg, CMessage);
+ ADDFN(CShipSettingMsg, CMessage);
+ ADDFN(CShowTextMsg, CMessage);
+ ADDFN(CSignalObject, CMessage);
+ ADDFN(CSpeechFallsFromTreeMsg, CMessage);
+ ADDFN(CStartMusicMsg, CMessage);
+ ADDFN(CStatusChangeMsg, CMessage);
+ ADDFN(CStopMusicMsg, CMessage);
+ ADDFN(CSubAcceptCCarryMsg, CMessage);
+ ADDFN(CSubDeliverCCarryMsg, CMessage);
+ ADDFN(CSubSendCCarryMsg, CMessage);
+ ADDFN(CSUBTransition, CMessage);
+ ADDFN(CSubTurnOffMsg, CMessage);
+ ADDFN(CSubTurnOnMsg, CMessage);
+ ADDFN(CSummonBotMsg, CMessage);
+ ADDFN(CSummonBotQuerryMsg, CMessage);
+ ADDFN(CTakeHeadPieceMsg, CMessage);
+ ADDFN(CTextInputMsg, CMessage);
+ ADDFN(CTimeDilationMsg, CMessage);
+ ADDFN(CTimeMsg, CMessage);
+ ADDFN(CTitleSequenceEndedMsg, CMessage);
+ ADDFN(CTransitMsg, CMessage);
+ ADDFN(CTransportMsg, CMessage);
+ ADDFN(CTriggerAutoMusicPlayerMsg, CMessage);
+ ADDFN(CTriggerNPCEvent, CMessage);
+ ADDFN(CTrueTalkGetAnimSetMsg, CMessage);
+ ADDFN(CTrueTalkGetAssetDetailsMsg, CMessage);
+ ADDFN(CTrueTalkGetStateValueMsg, CMessage);
+ ADDFN(CTrueTalkNotifySpeechEndedMsg, CMessage);
+ ADDFN(CTrueTalkNotifySpeechStartedMsg, CMessage);
+ ADDFN(CTrueTalkQueueUpAnimSetMsg, CMessage);
+ ADDFN(CTrueTalkSelfQueueAnimSetMsg, CMessage);
+ ADDFN(CTrueTalkTriggerActionMsg, CMessage);
+ ADDFN(CTurnOff, CMessage);
+ ADDFN(CTurnOn, CMessage);
+ ADDFN(CUse, CMessage);
+ ADDFN(CUseWithCharMsg, CMessage);
+ ADDFN(CUseWithOtherMsg, CMessage);
+ ADDFN(CVirtualKeyCharMsg, CMessage);
+ ADDFN(CVisibleMsg, CMessage);
+
+ ADDFN(CEnterBombRoom, CMovePlayerTo);
+ ADDFN(CEnterBridge, CGameObject);
+ ADDFN(CEnterExitFirstClassState, CGameObject);
+ ADDFN(CEnterExitMiniLift, CSGTNavigation);
+ ADDFN(CEnterExitSecClassMiniLift, CGameObject);
+ ADDFN(CEnterExitView, CGameObject);
+ ADDFN(CEnterSecClassState, CGameObject);
+ ADDFN(CExitArboretum, CMovePlayerTo);
+ ADDFN(CExitBridge, CMovePlayerTo);
+ ADDFN(CExitLift, CGameObject);
+ ADDFN(CExitPellerator, CGameObject);
+ ADDFN(CExitStateRoom, CMovePlayerTo);
+ ADDFN(CExitTiania, CMovePlayerTo);
+ ADDFN(CMovePlayerInParrotRoom, CMovePlayerTo);
+ ADDFN(CMovePlayerTo, CGameObject);
+ ADDFN(CMovePlayerToFrom, CGameObject);
+ ADDFN(CMultiMove, CMovePlayerTo);
+ ADDFN(CPanFromPel, CMovePlayerTo);
+ ADDFN(CRestaurantPanHandler, CMovePlayerTo);
+ ADDFN(CScraliontisTable, CRestaurantPanHandler);
+ ADDFN(CRestrictedMove, CMovePlayerTo);
+ ADDFN(CTripDownCanal, CMovePlayerTo);
+
+ ADDFN(CBarbot, CTrueTalkNPC);
+ ADDFN(CBellBot, CTrueTalkNPC);
+ ADDFN(CCallBot, CGameObject);
+ ADDFN(CCharacter, CGameObject);
+ ADDFN(CDeskbot, CTrueTalkNPC);
+ ADDFN(CDoorbot, CTrueTalkNPC);
+ ADDFN(CMaitreD, CTrueTalkNPC);
+ ADDFN(CLiftBot, CTrueTalkNPC);
+ ADDFN(CMobile, CCharacter);
+ ADDFN(CParrot, CTrueTalkNPC);
+ ADDFN(CRobotController, CGameObject);
+ ADDFN(CStarlings, CCharacter);
+ ADDFN(CSuccUBus, CTrueTalkNPC);
+ ADDFN(CSummonBots, CRobotController);
+ ADDFN(CTitania, CCharacter);
+ ADDFN(CTrueTalkNPC, CCharacter);
+
+ ADDFN(CAutoMusicPlayer, CAutoMusicPlayerBase);
+ ADDFN(CAutoMusicPlayerBase, CGameObject);
+ ADDFN(CAutoSoundPlayer, CGameObject);
+ ADDFN(CAutoSoundPlayerADSR, CAutoSoundPlayer);
+ ADDFN(CBackgroundSoundMaker, CGameObject);
+ ADDFN(CBirdSong, CRoomAutoSoundPlayer);
+ ADDFN(CDomeFromTopOfWell, CViewAutoSoundPlayer);
+ ADDFN(CGondolierSong, CGameObject);
+ ADDFN(CEnterViewTogglesOtherMusic, CTriggerAutoMusicPlayer);
+ ADDFN(CGondolierSong, CRoomAutoSoundPlayer);
+ ADDFN(CMusicPlayer, CGameObject);
+ ADDFN(CNodeAutoSoundPlayer, CAutoSoundPlayer);
+ ADDFN(CRestrictedAutoMusicPlayer, CAutoMusicPlayer);
+ ADDFN(CRoomAutoSoundPlayer, CAutoSoundPlayer);
+ ADDFN(CRoomTriggerAutoMusicPlayer, CTriggerAutoMusicPlayer);
+ ADDFN(CSeasonNoises, CViewAutoSoundPlayer);
+ ADDFN(CSeasonalMusicPlayer, CAutoMusicPlayerBase);
+ ADDFN(CAutoMusicPlayer, CAutoMusicPlayerBase);
+ ADDFN(CAutoMusicPlayerBase, CAutoMusicPlayer);
+ ADDFN(CTitaniaSpeech, CGameObject);
+ ADDFN(CTriggerAutoMusicPlayer, CGameObject);
+ ADDFN(CViewAutoSoundPlayer, CAutoSoundPlayer);
+ ADDFN(CViewTogglesOtherMusic, CEnterViewTogglesOtherMusic);
+ ADDFN(CWaterLappingSounds, CRoomAutoSoundPlayer);
+ ADDFN(CStarControl, CGameObject);
+}
+
+void CSaveableObject::freeClassList() {
+ Common::List<ClassDef *>::iterator i;
+ for (i = _classDefs->begin(); i != _classDefs->end(); ++i)
+ delete *i;
+
+ delete _classDefs;
+ delete _classList;
+}
+
+CSaveableObject *CSaveableObject::createInstance(const Common::String &name) {
+ return (*_classList)[name]();
+}
+
+void CSaveableObject::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(0, indent);
+}
+
+void CSaveableObject::load(SimpleFile *file) {
+ file->readNumber();
+}
+
+void CSaveableObject::saveHeader(SimpleFile *file, int indent) const {
+ file->writeClassStart(getType()->_className, indent);
+}
+
+void CSaveableObject::saveFooter(SimpleFile *file, int indent) const {
+ file->writeClassEnd(indent);
+}
+
+bool CSaveableObject::isInstanceOf(const ClassDef *classDef) const {
+ for (ClassDef *def = getType(); def != nullptr; def = def->_parent) {
+ if (def == classDef)
+ return true;
+ }
+
+ return false;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/core/saveable_object.h b/engines/titanic/core/saveable_object.h
new file mode 100644
index 0000000000..5a6e4c999d
--- /dev/null
+++ b/engines/titanic/core/saveable_object.h
@@ -0,0 +1,110 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SAVEABLE_OBJECT_H
+#define TITANIC_SAVEABLE_OBJECT_H
+
+#include "common/scummsys.h"
+#include "common/array.h"
+#include "common/hash-str.h"
+#include "common/list.h"
+#include "titanic/simple_file.h"
+
+namespace Titanic {
+
+class CSaveableObject;
+
+class ClassDef {
+public:
+ const char *_className;
+ ClassDef *_parent;
+public:
+ ClassDef(const char *className, ClassDef *parent) :
+ _className(className), _parent(parent) {}
+ virtual ~ClassDef() {}
+ virtual CSaveableObject *create();
+};
+
+template<typename T>
+class TypeTemplate : public ClassDef {
+public:
+ TypeTemplate(const char *className, ClassDef *parent) :
+ ClassDef(className, parent) {}
+ virtual CSaveableObject *create() { return new T(); }
+};
+
+#define CLASSDEF \
+ static ClassDef *_type; \
+ virtual ClassDef *getType() const { return _type; }
+
+class CSaveableObject {
+ typedef CSaveableObject *(*CreateFunction)();
+private:
+ static Common::List<ClassDef *> *_classDefs;
+ static Common::HashMap<Common::String, CreateFunction> *_classList;
+public:
+ /**
+ * Sets up the list of saveable object classes
+ */
+ static void initClassList();
+
+ /**
+ * Free the list of saveable object classes
+ */
+ static void freeClassList();
+
+ /**
+ * Creates a new instance of a saveable object class
+ */
+ static CSaveableObject *createInstance(const Common::String &name);
+public:
+ CLASSDEF
+ virtual ~CSaveableObject() {}
+
+ bool isInstanceOf(const ClassDef *classDef) const;
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+
+ /**
+ * Write out a header definition for the class to file
+ * prior to saving the actual data for the class
+ */
+ virtual void saveHeader(SimpleFile *file, int indent) const;
+
+ /**
+ * Writes out a footer for the class after it's data has
+ * been written to file
+ */
+ virtual void saveFooter(SimpleFile *file, int indent) const;
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SAVEABLE_OBJECT_H */
diff --git a/engines/titanic/core/static_image.cpp b/engines/titanic/core/static_image.cpp
new file mode 100644
index 0000000000..54a041fff5
--- /dev/null
+++ b/engines/titanic/core/static_image.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/core/static_image.h"
+
+namespace Titanic {
+
+void CStaticImage::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CStaticImage::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/core/static_image.h b/engines/titanic/core/static_image.h
new file mode 100644
index 0000000000..2b0a3ad071
--- /dev/null
+++ b/engines/titanic/core/static_image.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STATIC_IMAGE_H
+#define TITANIC_STATIC_IMAGE_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CStaticImage : public CGameObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STATIC_IMAGE_H */
diff --git a/engines/titanic/core/tree_item.cpp b/engines/titanic/core/tree_item.cpp
new file mode 100644
index 0000000000..a1dcce1abe
--- /dev/null
+++ b/engines/titanic/core/tree_item.cpp
@@ -0,0 +1,258 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/core/tree_item.h"
+#include "titanic/core/dont_save_file_item.h"
+#include "titanic/core/file_item.h"
+#include "titanic/core/game_object.h"
+#include "titanic/core/game_object_desc_item.h"
+#include "titanic/core/link_item.h"
+#include "titanic/core/named_item.h"
+#include "titanic/core/node_item.h"
+#include "titanic/core/project_item.h"
+#include "titanic/core/view_item.h"
+#include "titanic/core/room_item.h"
+
+namespace Titanic {
+
+CTreeItem::CTreeItem() : _parent(nullptr), _firstChild(nullptr),
+ _nextSibling(nullptr), _priorSibling(nullptr), _field14(0) {
+}
+
+void CTreeItem::dump(int indent) {
+ CString line = dumpItem(indent);
+ debug("%s", line.c_str());
+
+ CTreeItem *item = getFirstChild();
+ while (item) {
+ item->dump(indent + 1);
+
+ item = item->getNextSibling();
+ }
+}
+
+CString CTreeItem::dumpItem(int indent) const {
+ CString result;
+ for (int idx = 0; idx < indent; ++idx)
+ result += '\t';
+ result += getType()->_className;
+
+ return result;
+}
+
+void CTreeItem::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(0, indent);
+ CMessageTarget::save(file, indent);
+}
+
+void CTreeItem::load(SimpleFile *file) {
+ file->readNumber();
+ CMessageTarget::load(file);
+}
+
+bool CTreeItem::isFileItem() const {
+ return isInstanceOf(CFileItem::_type);
+}
+
+bool CTreeItem::isRoomItem() const {
+ return isInstanceOf(CRoomItem::_type);
+}
+
+bool CTreeItem::isNodeItem() const {
+ return isInstanceOf(CNodeItem::_type);
+}
+
+bool CTreeItem::isViewItem() const {
+ return isInstanceOf(CViewItem::_type);
+}
+
+bool CTreeItem::isLinkItem() const {
+ return isInstanceOf(CLinkItem::_type);
+}
+
+bool CTreeItem::isNamedItem() const {
+ return isInstanceOf(CNamedItem::_type);
+}
+
+bool CTreeItem::isGameObject() const {
+ return isInstanceOf(CGameObject::_type);
+}
+
+bool CTreeItem::isGameObjectDescItem() const {
+ return isInstanceOf(CGameObjectDescItem::_type);
+}
+
+CGameManager *CTreeItem::getGameManager() const {
+ return _parent ? _parent->getGameManager() : nullptr;
+}
+
+CProjectItem *CTreeItem::getRoot() const {
+ CTreeItem *parent = getParent();
+
+ if (parent) {
+ do {
+ parent = parent->getParent();
+ } while (parent->getParent());
+ }
+
+ return dynamic_cast<CProjectItem *>(parent);
+}
+
+CTreeItem *CTreeItem::getLastSibling() {
+ CTreeItem *item = this;
+ while (item->getNextSibling())
+ item = item->getNextSibling();
+
+ return item;
+}
+
+CTreeItem *CTreeItem::getLastChild() const {
+ if (!_firstChild)
+ return nullptr;
+ return _firstChild->getLastSibling();
+}
+
+CTreeItem *CTreeItem::scan(CTreeItem *item) const {
+ if (_firstChild)
+ return _firstChild;
+
+ const CTreeItem *treeItem = this;
+ while (treeItem != item) {
+ if (treeItem->_nextSibling)
+ return treeItem->_nextSibling;
+
+ treeItem = treeItem->_parent;
+ if (!treeItem)
+ break;
+ }
+
+ return nullptr;
+}
+
+CTreeItem *CTreeItem::findChildInstanceOf(ClassDef *classDef) const {
+ for (CTreeItem *treeItem = _firstChild; treeItem; treeItem = treeItem->getNextSibling()) {
+ if (treeItem->isInstanceOf(classDef))
+ return treeItem;
+ }
+
+ return nullptr;
+}
+
+CTreeItem *CTreeItem::findNextInstanceOf(ClassDef *classDef, CTreeItem *startItem) const {
+ CTreeItem *treeItem = startItem ? startItem->getNextSibling() : getFirstChild();
+
+ for (; treeItem; treeItem = treeItem->getNextSibling()) {
+ if (treeItem->isInstanceOf(classDef))
+ return treeItem;
+ }
+
+ return nullptr;
+}
+
+void CTreeItem::addUnder(CTreeItem *newParent) {
+ if (newParent->_firstChild)
+ addSibling(newParent->_firstChild->getLastSibling());
+ else
+ setParent(newParent);
+}
+
+void CTreeItem::setParent(CTreeItem *newParent) {
+ _parent = newParent;
+ _priorSibling = nullptr;
+ _nextSibling = newParent->_firstChild;
+
+ if (newParent->_firstChild)
+ newParent->_firstChild->_priorSibling = this;
+ newParent->_firstChild = this;
+}
+
+void CTreeItem::addSibling(CTreeItem *item) {
+ _priorSibling = item->_nextSibling;
+ _nextSibling = item->_nextSibling;
+ _parent = item->_parent;
+
+ if (item->_nextSibling)
+ item->_nextSibling->_priorSibling = this;
+ item->_nextSibling = this;
+}
+
+void CTreeItem::destroyAll() {
+ destroyOthers();
+ detach();
+ delete this;
+}
+
+int CTreeItem::destroyOthers() {
+ if (!_firstChild)
+ return 0;
+
+ CTreeItem *item = this, *child, *nextSibling;
+ int total = 0;
+
+ do {
+ child = item->_firstChild;
+ nextSibling = item->_nextSibling;
+
+ if (child)
+ total += child->destroyOthers();
+ child->detach();
+ delete child;
+ ++total;
+ } while ((item = nextSibling) != nullptr);
+
+ return total;
+}
+
+void CTreeItem::detach() {
+ // Delink this item from any prior and/or next siblings
+ if (_priorSibling)
+ _priorSibling->_nextSibling = _nextSibling;
+ if (_nextSibling)
+ _nextSibling->_priorSibling = _priorSibling;
+
+ if (_parent && _parent->_firstChild == this)
+ _parent->_firstChild = _nextSibling;
+
+ _priorSibling = _nextSibling = _parent = nullptr;
+}
+
+CNamedItem *CTreeItem::findByName(const CString &name, int maxLen) {
+ CString nameLower = name;
+ nameLower.toLowercase();
+
+ for (CTreeItem *treeItem = this; treeItem; treeItem = treeItem->scan(this)) {
+ CString nodeName = treeItem->getName();
+ nodeName.toLowercase();
+
+ if (maxLen) {
+ if (nodeName.left(maxLen).compareTo(nameLower))
+ return dynamic_cast<CNamedItem *>(treeItem);
+ } else {
+ if (!nodeName.compareTo(nameLower))
+ return dynamic_cast<CNamedItem *>(treeItem);
+ }
+ }
+
+ return nullptr;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/core/tree_item.h b/engines/titanic/core/tree_item.h
new file mode 100644
index 0000000000..a4156d6ad1
--- /dev/null
+++ b/engines/titanic/core/tree_item.h
@@ -0,0 +1,221 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TREE_ITEM_H
+#define TITANIC_TREE_ITEM_H
+
+#include "titanic/core/message_target.h"
+
+namespace Titanic {
+
+class CGameManager;
+class CDontSaveFileItem;
+class CNamedItem;
+class CProjectItem;
+
+class CTreeItem: public CMessageTarget {
+private:
+ CTreeItem *_parent;
+ CTreeItem *_nextSibling;
+ CTreeItem *_priorSibling;
+ CTreeItem *_firstChild;
+ int _field14;
+public:
+ CLASSDEF
+ CTreeItem();
+
+
+ /**
+ * Dump the item and any of it's children
+ */
+ void dump(int indent);
+
+ /**
+ * Dump the item
+ */
+ virtual CString dumpItem(int indent) const;
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+
+ /**
+ * Get the game manager for the project
+ */
+ virtual CGameManager *getGameManager() const;
+
+ /**
+ * Returns true if the item is a file item
+ */
+ virtual bool isFileItem() const;
+
+ /**
+ * Returns true if the item is a room item
+ */
+ virtual bool isRoomItem() const;
+
+ /**
+ * Returns true if the item is a node item
+ */
+ virtual bool isNodeItem() const;
+
+ /**
+ * Returns true if the item is a view item
+ */
+ virtual bool isViewItem() const;
+
+ /**
+ * Returns true if the item is a link item
+ */
+ virtual bool isLinkItem() const;
+
+ /**
+ * Returns true if the item is a named item
+ */
+ virtual bool isNamedItem() const;
+
+ /**
+ * Returns true if the item is a game object
+ */
+ virtual bool isGameObject() const;
+
+ /**
+ * Returns true if the item is a game object desc item
+ */
+ virtual bool isGameObjectDescItem() const;
+
+ /**
+ * Gets the name of the item, if any
+ */
+ virtual const CString getName() const { return CString(); }
+
+ /**
+ * Compares the name of the item to a passed name
+ */
+ virtual int compareTo(const CString &name, int maxLen) const { return false; }
+
+ /**
+ * Gets the bounds occupied by the item
+ */
+ virtual Common::Rect getBounds() { return Common::Rect(); }
+
+ /**
+ * Called when the view changes
+ */
+ virtual void viewChange() {}
+
+ /**
+ * Get the parent for the given item
+ */
+ CTreeItem *getParent() const { return _parent; }
+
+ /**
+ * Jumps up through the parents to find the root item
+ */
+ CProjectItem *getRoot() const;
+
+ /**
+ * Get the next sibling
+ */
+ CTreeItem *getNextSibling() const { return _nextSibling; }
+
+ /**
+ * Get the prior sibling
+ */
+ CTreeItem *getPriorSibling() const { return _priorSibling; }
+
+ /**
+ * Get the last sibling of this sibling
+ */
+ CTreeItem *getLastSibling();
+
+ /**
+ * Get the first child of the item, if any
+ */
+ CTreeItem *getFirstChild() const { return _firstChild; }
+
+ /**
+ * Get the last child of the item, if any
+ */
+ CTreeItem *getLastChild() const;
+
+ /**
+ * Given all the recursive children of the tree item, gives the next
+ * item in sequence to the passed starting item
+ */
+ CTreeItem *scan(CTreeItem *item) const;
+
+ /**
+ * Find the first child item that is of a given type
+ */
+ CTreeItem *findChildInstanceOf(ClassDef *classDef) const;
+
+ /**
+ * Find the next sibling item that is of the given type
+ */
+ CTreeItem *findNextInstanceOf(ClassDef *classDef, CTreeItem *startItem) const;
+
+ /**
+ * Adds the item under another tree item
+ */
+ void addUnder(CTreeItem *newParent);
+
+ /**
+ * Sets the parent for the item
+ */
+ void setParent(CTreeItem *newParent);
+
+ /**
+ * Adds the item as a sibling of another item
+ */
+ void addSibling(CTreeItem *item);
+
+ /**
+ * Destroys both the item as well as any of it's children
+ */
+ void destroyAll();
+
+ /**
+ * Destroys all tree items around the given one
+ */
+ int destroyOthers();
+
+ /**
+ * Detach the tree item from any other associated tree items
+ */
+ void detach();
+
+ /**
+ * Finds a tree item by name
+ */
+ CNamedItem *findByName(const CString &name, int maxLen = 0);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TREE_ITEM_H */
diff --git a/engines/titanic/core/turn_on_object.cpp b/engines/titanic/core/turn_on_object.cpp
new file mode 100644
index 0000000000..b4ed2b4525
--- /dev/null
+++ b/engines/titanic/core/turn_on_object.cpp
@@ -0,0 +1,44 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/core/turn_on_object.h"
+
+namespace Titanic {
+
+CTurnOnObject::CTurnOnObject() : CBackground(), _string3("NULL") {
+}
+
+void CTurnOnObject::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string3, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CTurnOnObject::load(SimpleFile *file) {
+ file->readNumber();
+ _string3 = file->readString();
+
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/core/turn_on_object.h b/engines/titanic/core/turn_on_object.h
new file mode 100644
index 0000000000..d87e205983
--- /dev/null
+++ b/engines/titanic/core/turn_on_object.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TURN_ON_OBJECT_H
+#define TITANIC_TURN_ON_OBJECT_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CTurnOnObject : public CBackground {
+protected:
+ CString _string3;
+public:
+ CLASSDEF
+ CTurnOnObject();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TURN_ON_OBJECT_H */
diff --git a/engines/titanic/core/turn_on_play_sound.cpp b/engines/titanic/core/turn_on_play_sound.cpp
new file mode 100644
index 0000000000..d56aef8bb7
--- /dev/null
+++ b/engines/titanic/core/turn_on_play_sound.cpp
@@ -0,0 +1,49 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/core/turn_on_play_sound.h"
+
+namespace Titanic {
+
+CTurnOnPlaySound::CTurnOnPlaySound() : CTurnOnObject(),
+ _string3("NULL"), _fieldF8(80), _fieldFC(0) {
+}
+
+void CTurnOnPlaySound::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string3, indent);
+ file->writeNumberLine(_fieldF8, indent);
+ file->writeNumberLine(_fieldFC, indent);
+
+ CTurnOnObject::save(file, indent);
+}
+
+void CTurnOnPlaySound::load(SimpleFile *file) {
+ file->readNumber();
+ _string3 = file->readString();
+ _fieldF8 = file->readNumber();
+ _fieldFC = file->readNumber();
+
+ CTurnOnObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/core/turn_on_play_sound.h b/engines/titanic/core/turn_on_play_sound.h
new file mode 100644
index 0000000000..263709b844
--- /dev/null
+++ b/engines/titanic/core/turn_on_play_sound.h
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TURN_ON_PLAY_SOUND_H
+#define TITANIC_TURN_ON_PLAY_SOUND_H
+
+#include "titanic/core/turn_on_object.h"
+
+namespace Titanic {
+
+class CTurnOnPlaySound : public CTurnOnObject {
+private:
+ CString _string3;
+ int _fieldF8;
+ int _fieldFC;
+public:
+ CLASSDEF
+ CTurnOnPlaySound();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TURN_ON_PLAY_SOUND_H */
diff --git a/engines/titanic/core/turn_on_turn_off.cpp b/engines/titanic/core/turn_on_turn_off.cpp
new file mode 100644
index 0000000000..a6a65e30f2
--- /dev/null
+++ b/engines/titanic/core/turn_on_turn_off.cpp
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/core/turn_on_turn_off.h"
+
+namespace Titanic {
+
+CTurnOnTurnOff::CTurnOnTurnOff() : CBackground(), _fieldE0(0),
+ _fieldE4(0), _fieldE8(0), _fieldEC(0), _fieldF0(0) {
+}
+
+void CTurnOnTurnOff::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_fieldE8, indent);
+ file->writeNumberLine(_fieldEC, indent);
+ file->writeNumberLine(_fieldF0, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CTurnOnTurnOff::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _fieldE8 = file->readNumber();
+ _fieldEC = file->readNumber();
+ _fieldF0 = file->readNumber();
+
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/core/turn_on_turn_off.h b/engines/titanic/core/turn_on_turn_off.h
new file mode 100644
index 0000000000..5683a0db0e
--- /dev/null
+++ b/engines/titanic/core/turn_on_turn_off.h
@@ -0,0 +1,54 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TURN_ON_TURN_OFF_H
+#define TITANIC_TURN_ON_TURN_OFF_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CTurnOnTurnOff : public CBackground {
+private:
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+ int _fieldEC;
+ int _fieldF0;
+public:
+ CLASSDEF
+ CTurnOnTurnOff();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TURN_ON_TURN_OFF_H */
diff --git a/engines/titanic/core/view_item.cpp b/engines/titanic/core/view_item.cpp
new file mode 100644
index 0000000000..c48166698d
--- /dev/null
+++ b/engines/titanic/core/view_item.cpp
@@ -0,0 +1,246 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game_manager.h"
+#include "titanic/screen_manager.h"
+#include "titanic/core/project_item.h"
+#include "titanic/core/room_item.h"
+#include "titanic/core/view_item.h"
+#include "titanic/messages/messages.h"
+#include "titanic/pet_control/pet_control.h"
+
+namespace Titanic {
+
+CViewItem::CViewItem() : CNamedItem() {
+ Common::fill(&_buttonUpTargets[0], &_buttonUpTargets[4], nullptr);
+ _field24 = 0;
+ _field28 = 0.0;
+ _viewNumber = 0;
+ _field50 = 0;
+ _field54 = 0;
+ setData(0.0);
+}
+
+void CViewItem::setData(double v) {
+ _field28 = v;
+ _field50 = cos(_field28) * 30.0;
+ _field54 = sin(_field28) * -30.0;
+}
+
+void CViewItem::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ _resourceKey.save(file, indent);
+ file->writeQuotedLine("V", indent);
+ file->writeFloatLine(_field28, indent + 1);
+ file->writeNumberLine(_viewNumber, indent + 1);
+
+ CNamedItem::save(file, indent);
+}
+
+void CViewItem::load(SimpleFile *file) {
+ int val = file->readNumber();
+
+ switch (val) {
+ case 1:
+ _resourceKey.load(file);
+ // Deliberate fall-through
+
+ default:
+ file->readBuffer();
+ setData(file->readFloat());
+ _viewNumber = file->readNumber();
+ break;
+ }
+
+ CNamedItem::load(file);
+}
+
+bool CViewItem::getResourceKey(CResourceKey *key) {
+ *key = _resourceKey;
+ CString filename = key->exists();
+ return !filename.empty();
+}
+
+void CViewItem::leaveView(CViewItem *newView) {
+ // Only do the processing if we've been passed a view, and it's not the same
+ if (newView && newView != this) {
+ CLeaveViewMsg viewMsg(this, newView);
+ viewMsg.execute(this, nullptr, MSGFLAG_SCAN);
+
+ CNodeItem *oldNode = findNode();
+ CNodeItem *newNode = newView->findNode();
+ if (newNode != oldNode) {
+ CLeaveNodeMsg nodeMsg(oldNode, newNode);
+ nodeMsg.execute(oldNode, nullptr, MSGFLAG_SCAN);
+
+ CRoomItem *oldRoom = oldNode->findRoom();
+ CRoomItem *newRoom = newNode->findRoom();
+ if (newRoom != oldRoom) {
+ CGameManager *gm = getGameManager();
+ if (gm)
+ gm->viewChange();
+
+ CLeaveRoomMsg roomMsg(oldRoom, newRoom);
+ roomMsg.execute(oldRoom, nullptr, MSGFLAG_SCAN);
+ }
+ }
+ }
+}
+
+void CViewItem::preEnterView(CViewItem *newView) {
+ // Only do the processing if we've been passed a view, and it's not the same
+ if (newView && newView != this) {
+ CPreEnterViewMsg viewMsg(this, newView);
+ viewMsg.execute(this, nullptr, MSGFLAG_SCAN);
+
+ CNodeItem *oldNode = findNode();
+ CNodeItem *newNode = newView->findNode();
+ if (newNode != oldNode) {
+ CPreEnterNodeMsg nodeMsg(oldNode, newNode);
+ nodeMsg.execute(oldNode, nullptr, MSGFLAG_SCAN);
+
+ CRoomItem *oldRoom = oldNode->findRoom();
+ CRoomItem *newRoom = newNode->findRoom();
+ if (newRoom != oldRoom) {
+ CPreEnterRoomMsg roomMsg(oldRoom, newRoom);
+ roomMsg.execute(oldRoom, nullptr, MSGFLAG_SCAN);
+ }
+ }
+ }
+}
+
+void CViewItem::enterView(CViewItem *newView) {
+ // Only do the processing if we've been passed a view, and it's not the same
+ if (newView && newView != this) {
+ CEnterViewMsg viewMsg(this, newView);
+ viewMsg.execute(this, nullptr, MSGFLAG_SCAN);
+
+ CNodeItem *oldNode = findNode();
+ CNodeItem *newNode = newView->findNode();
+ if (newNode != oldNode) {
+ CEnterNodeMsg nodeMsg(oldNode, newNode);
+ nodeMsg.execute(oldNode, nullptr, MSGFLAG_SCAN);
+
+ CRoomItem *oldRoom = oldNode->findRoom();
+ CRoomItem *newRoom = newNode->findRoom();
+
+ CPetControl *petControl = nullptr;
+ if (newRoom != nullptr) {
+ petControl = newRoom->getRoot()->getPetControl();
+ petControl->enterNode(newNode);
+ }
+
+ if (newRoom != oldRoom) {
+ CEnterRoomMsg roomMsg(oldRoom, newRoom);
+ roomMsg.execute(oldRoom, nullptr, MSGFLAG_SCAN);
+
+ if (petControl)
+ petControl->enterRoom(newRoom);
+ }
+ }
+ }
+}
+
+bool CViewItem::handleEvent(CMouseButtonDownMsg &msg) {
+ if (msg._buttons & MB_LEFT) {
+ if (!handleMouseMsg(&msg, true)) {
+ CGameManager *gm = getGameManager();
+ if (gm->test54()) {
+ findNode()->findRoom();
+
+ CLinkItem *linkItem = dynamic_cast<CLinkItem *>(
+ findChildInstanceOf(CLinkItem::_type));
+ while (linkItem) {
+ if (linkItem->_bounds.contains(msg._mousePos)) {
+ gm->_gameState.triggerLink(linkItem);
+ return true;
+ }
+
+ linkItem = dynamic_cast<CLinkItem *>(
+ findNextInstanceOf(CLinkItem::_type, linkItem));
+ }
+ }
+ }
+ // TODO
+ }
+
+ return true;
+}
+
+bool CViewItem::handleMouseMsg(const CMouseMsg *msg, bool flag) {
+ const CMouseButtonUpMsg *upMsg = dynamic_cast<const CMouseButtonUpMsg *>(msg);
+ if (msg->isButtonUpMsg()) {
+ handleButtonUpMsg(upMsg);
+ return true;
+ }
+
+ Common::Array<CGameObject *> gameObjects;
+ CTreeItem *treeItem = scan(this);
+ while (treeItem) {
+ CGameObject *gameObject = dynamic_cast<CGameObject *>(treeItem);
+ if (gameObject) {
+ if (gameObject->checkPoint(msg->_mousePos, 0, 1) &&
+ (!flag || !gameObject->_field60)) {
+ if (gameObjects.size() < 256)
+ gameObjects.push_back(gameObject);
+ }
+ }
+ }
+
+ const CMouseMoveMsg *moveMsg = dynamic_cast<const CMouseMoveMsg *>(msg);
+ if (moveMsg) {
+ if (gameObjects.size() == 0)
+ return false;
+
+ for (int idx = (int)gameObjects.size() - 1; idx >= 0; ++idx) {
+ if (gameObjects[idx]->_cursorId != 12) {
+ CScreenManager::_screenManagerPtr->_mouseCursor->setCursorId(gameObjects[idx]->_cursorId);
+ break;
+ }
+ }
+ }
+
+ bool result = false;
+ for (int idx = (int)gameObjects.size() - 1; idx >= 0; --idx) {
+ if (msg->execute(gameObjects[idx])) {
+ if (msg->isButtonDownMsg())
+ _buttonUpTargets[msg->_buttons >> 1] = gameObjects[idx];
+ return true;
+ }
+
+ if (CMouseMsg::isSupportedBy(gameObjects[idx]))
+ result = true;
+ }
+
+ return result;
+}
+
+void CViewItem::handleButtonUpMsg(const CMouseButtonUpMsg *msg) {
+ CTreeItem *&target = _buttonUpTargets[msg->_buttons >> 1];
+
+ if (target) {
+ msg->execute(target);
+ target = nullptr;
+ }
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/core/view_item.h b/engines/titanic/core/view_item.h
new file mode 100644
index 0000000000..b1de0bb305
--- /dev/null
+++ b/engines/titanic/core/view_item.h
@@ -0,0 +1,94 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_VIEW_ITEM_H
+#define TITANIC_VIEW_ITEM_H
+
+#include "titanic/core/named_item.h"
+#include "titanic/core/resource_key.h"
+#include "titanic/messages/mouse_messages.h"
+
+namespace Titanic {
+
+class CViewItem : public CNamedItem { //, CMouseButtonDownMsgTarget {
+private:
+ CTreeItem *_buttonUpTargets[4];
+private:
+ void setData(double v);
+
+ /**
+ * Called to handle mouse messagaes on the view
+ */
+ bool handleMouseMsg(const CMouseMsg *msg, bool flag);
+
+ /**
+ * Handles mouse button up messages
+ */
+ void handleButtonUpMsg(const CMouseButtonUpMsg *msg);
+protected:
+ int _field24;
+ double _field28;
+ CResourceKey _resourceKey;
+ int _field50;
+ int _field54;
+protected:
+ virtual bool handleEvent(CMouseButtonDownMsg &msg);
+public:
+ int _viewNumber;
+public:
+ CLASSDEF
+ CViewItem();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+
+ /**
+ * Get the resource key for the view
+ */
+ bool getResourceKey(CResourceKey *key);
+
+ /**
+ * Called when leaving the view
+ */
+ void leaveView(CViewItem *newView);
+
+ /**
+ * Called on an old view just left, and about to enter a new view
+ */
+ void preEnterView(CViewItem *newView);
+
+ /**
+ * Called when a new view is being entered
+ */
+ void enterView(CViewItem *newView);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_NAMED_ITEM_H */
diff --git a/engines/titanic/debugger.cpp b/engines/titanic/debugger.cpp
new file mode 100644
index 0000000000..87ce07d189
--- /dev/null
+++ b/engines/titanic/debugger.cpp
@@ -0,0 +1,177 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/debugger.h"
+#include "titanic/titanic.h"
+#include "titanic/core/tree_item.h"
+
+namespace Titanic {
+
+Debugger::Debugger(TitanicEngine *vm) : GUI::Debugger(), _vm(vm) {
+ registerCmd("continue", WRAP_METHOD(Debugger, cmdExit));
+ registerCmd("dump", WRAP_METHOD(Debugger, cmdDump));
+ registerCmd("room", WRAP_METHOD(Debugger, cmdRoom));
+}
+
+int Debugger::strToInt(const char *s) {
+ if (!*s)
+ // No string at all
+ return 0;
+ else if (toupper(s[strlen(s) - 1]) != 'H')
+ // Standard decimal string
+ return atoi(s);
+
+ // Hexadecimal string
+ uint tmp = 0;
+ int read = sscanf(s, "%xh", &tmp);
+ if (read < 1)
+ error("strToInt failed on string \"%s\"", s);
+ return (int)tmp;
+}
+
+CRoomItem *Debugger::findRoom(const char *name) {
+ CTreeItem *root = g_vm->_window->_gameManager->_project;
+ CRoomItem *roomItem = dynamic_cast<CRoomItem *>(root->findByName(name));
+ if (roomItem)
+ return roomItem;
+
+ int roomNumber = strToInt(name);
+ for (CTreeItem *treeItem = root; treeItem; treeItem = treeItem->scan(root)) {
+ roomItem = dynamic_cast<CRoomItem *>(treeItem);
+ if (roomItem && roomItem->_roomNumber == roomNumber)
+ return roomItem;
+ }
+
+ return nullptr;
+}
+
+CNodeItem *Debugger::findNode(CRoomItem *room, const char *name) {
+ CNodeItem *nodeItem = dynamic_cast<CNodeItem *>(room->findByName(name));
+ if (nodeItem)
+ return nodeItem;
+
+ int nodeNumber = strToInt(name);
+ nodeItem = dynamic_cast<CNodeItem *>(room->findChildInstanceOf(CNodeItem::_type));
+ while (nodeItem) {
+ if (nodeItem->_nodeNumber == nodeNumber)
+ return nodeItem;
+
+ nodeItem = dynamic_cast<CNodeItem *>(room->findNextInstanceOf(CNodeItem::_type, nodeItem));
+ }
+
+ return nullptr;
+}
+
+CViewItem *Debugger::findView(CNodeItem *node, const char *name) {
+ CViewItem *viewItem = dynamic_cast<CViewItem *>(node->findByName(name));
+ if (viewItem)
+ return viewItem;
+
+ int viewNumber = strToInt(name);
+ viewItem = dynamic_cast<CViewItem *>(node->findChildInstanceOf(CViewItem::_type));
+ while (viewItem) {
+ if (viewItem->_viewNumber == viewNumber)
+ return viewItem;
+
+ viewItem = dynamic_cast<CViewItem *>(node->findNextInstanceOf(CViewItem::_type, viewItem));
+ }
+
+ return nullptr;
+}
+
+void Debugger::listRooms() {
+ CTreeItem *root = g_vm->_window->_gameManager->_project;
+
+ for (CTreeItem *treeItem = root; treeItem; treeItem = treeItem->scan(root)) {
+ CRoomItem *roomItem = dynamic_cast<CRoomItem *>(treeItem);
+ if (roomItem)
+ debugPrintf("%d - %s\n", roomItem->_roomNumber, roomItem->_name.c_str());
+ }
+}
+
+void Debugger::listRoom(CRoomItem *room) {
+ for (CTreeItem *treeItem = room; treeItem; treeItem = treeItem->scan(room)) {
+ CNodeItem *nodeItem = dynamic_cast<CNodeItem *>(treeItem);
+ if (nodeItem)
+ debugPrintf("%s\n", nodeItem->_name.c_str());
+ }
+}
+
+void Debugger::listNode(CNodeItem *node) {
+ for (CTreeItem *treeItem = node; treeItem; treeItem = treeItem->scan(node)) {
+ CViewItem *viewItem = dynamic_cast<CViewItem *>(treeItem);
+ if (viewItem)
+ debugPrintf("%s\n", viewItem->_name.c_str());
+ }
+}
+
+bool Debugger::cmdDump(int argc, const char **argv) {
+ // Get the starting node
+ CTreeItem *root = g_vm->_window->_gameManager->_project;
+ if (argc == 2)
+ root = root->findByName(argv[1]);
+
+ if (root == nullptr) {
+ debugPrintf("Could not find item\n");
+ } else {
+ root->dump(0);
+ debugPrintf("Item and it's content were dumped to stdout\n");
+ }
+
+ return true;
+}
+
+bool Debugger::cmdRoom(int argc, const char **argv) {
+ if (argc == 1) {
+ listRooms();
+ } else if (argc >= 2) {
+ CRoomItem *roomItem = findRoom(argv[1]);
+
+ if (!roomItem)
+ debugPrintf("Could not find room - %s\n", argv[1]);
+ else if (argc == 2)
+ listRoom(roomItem);
+ else {
+ CNodeItem *nodeItem = findNode(roomItem, argv[2]);
+
+ if (!nodeItem)
+ debugPrintf("Could not find node - %s\n", argv[2]);
+ else if (argc == 3)
+ listNode(nodeItem);
+ else {
+ CViewItem *viewItem = findView(nodeItem, argv[3]);
+
+ if (!viewItem) {
+ debugPrintf("Could not find view - %s\n", argv[3]);
+ } else {
+ // Change to the specified view
+ g_vm->_window->_gameManager->_gameState.changeView(viewItem, nullptr);
+ return false;
+ }
+ }
+ }
+ }
+
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/debugger.h b/engines/titanic/debugger.h
new file mode 100644
index 0000000000..2f3bb91a46
--- /dev/null
+++ b/engines/titanic/debugger.h
@@ -0,0 +1,91 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_DEBUGGER_H
+#define TITANIC_DEBUGGER_H
+
+#include "common/scummsys.h"
+#include "gui/debugger.h"
+#include "titanic/core/room_item.h"
+#include "titanic/core/node_item.h"
+#include "titanic/core/view_item.h"
+
+namespace Titanic {
+
+class TitanicEngine;
+
+class Debugger : public GUI::Debugger {
+private:
+ /**
+ * Converts a decimal or hexadecimal string into a number
+ */
+ int strToInt(const char *s);
+
+ /**
+ * Find a room by name or number
+ */
+ CRoomItem *findRoom(const char *name);
+
+ /**
+ * Find a node within a room by name or number
+ */
+ CNodeItem *findNode(CRoomItem *room, const char *name);
+
+ /**
+ * Find a view within a room node by name or number
+ */
+ CViewItem *findView(CNodeItem *node, const char *name);
+
+ /**
+ * List all the rooms in the game
+ */
+ void listRooms();
+
+ /**
+ * List the nodes within a room
+ */
+ void listRoom(CRoomItem *room);
+
+ /**
+ * List the views within a room node
+ */
+ void listNode(CNodeItem *node);
+
+ /**
+ * Dump a portion of the game project
+ */
+ bool cmdDump(int argc, const char **argv);
+
+ /**
+ * List room details, or jump to a specific view
+ */
+ bool cmdRoom(int argc, const char **argv);
+protected:
+ TitanicEngine *_vm;
+public:
+ Debugger(TitanicEngine *vm);
+ virtual ~Debugger() {}
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_DEBUGGER_H */
diff --git a/engines/titanic/detection.cpp b/engines/titanic/detection.cpp
new file mode 100644
index 0000000000..70fe25d532
--- /dev/null
+++ b/engines/titanic/detection.cpp
@@ -0,0 +1,129 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/titanic.h"
+
+#include "base/plugins.h"
+#include "common/savefile.h"
+#include "common/str-array.h"
+#include "common/memstream.h"
+#include "engines/advancedDetector.h"
+#include "common/system.h"
+#include "graphics/colormasks.h"
+#include "graphics/surface.h"
+
+#define MAX_SAVES 99
+
+namespace Titanic {
+
+struct TitanicGameDescription {
+ ADGameDescription desc;
+};
+
+uint32 TitanicEngine::getFeatures() const {
+ return _gameDescription->desc.flags;
+}
+
+bool TitanicEngine::isDemo() const {
+ return (bool)(_gameDescription->desc.flags & ADGF_DEMO);
+}
+
+Common::Language TitanicEngine::getLanguage() const {
+ return _gameDescription->desc.language;
+}
+
+} // End of namespace Titanic
+
+static const PlainGameDescriptor TitanicGames[] = {
+ {"titanic", "Starship Titanic"},
+ {0, 0}
+};
+
+#include "titanic/detection_tables.h"
+
+class TitanicMetaEngine : public AdvancedMetaEngine {
+public:
+ TitanicMetaEngine() : AdvancedMetaEngine(Titanic::gameDescriptions, sizeof(Titanic::TitanicGameDescription), TitanicGames) {
+ _maxScanDepth = 3;
+ }
+
+ virtual const char *getName() const {
+ return "Titanic Engine";
+ }
+
+ virtual const char *getOriginalCopyright() const {
+ return "Titanic Engine (c)";
+ }
+
+ virtual bool hasFeature(MetaEngineFeature f) const;
+ virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
+ virtual SaveStateList listSaves(const char *target) const;
+ virtual int getMaximumSaveSlot() const;
+ virtual void removeSaveState(const char *target, int slot) const;
+ SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
+};
+
+bool TitanicMetaEngine::hasFeature(MetaEngineFeature f) const {
+ return
+ (f == kSupportsListSaves) ||
+ (f == kSupportsLoadingDuringStartup) ||
+ (f == kSupportsDeleteSave) ||
+ (f == kSavesSupportMetaInfo) ||
+ (f == kSavesSupportThumbnail);
+}
+
+bool Titanic::TitanicEngine::hasFeature(EngineFeature f) const {
+ return
+ (f == kSupportsRTL) ||
+ (f == kSupportsLoadingDuringRuntime) ||
+ (f == kSupportsSavingDuringRuntime);
+}
+
+bool TitanicMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const {
+ const Titanic::TitanicGameDescription *gd = (const Titanic::TitanicGameDescription *)desc;
+ *engine = new Titanic::TitanicEngine(syst, gd);
+
+ return gd != 0;
+}
+
+SaveStateList TitanicMetaEngine::listSaves(const char *target) const {
+ SaveStateList saveList;
+ return saveList;
+}
+
+int TitanicMetaEngine::getMaximumSaveSlot() const {
+ return MAX_SAVES;
+}
+
+void TitanicMetaEngine::removeSaveState(const char *target, int slot) const {
+}
+
+SaveStateDescriptor TitanicMetaEngine::querySaveMetaInfos(const char *target, int slot) const {
+ return SaveStateDescriptor();
+}
+
+
+#if PLUGIN_ENABLED_DYNAMIC(TITANIC)
+ REGISTER_PLUGIN_DYNAMIC(TITANIC, PLUGIN_TYPE_ENGINE, TitanicMetaEngine);
+#else
+ REGISTER_PLUGIN_STATIC(TITANIC, PLUGIN_TYPE_ENGINE, TitanicMetaEngine);
+#endif
diff --git a/engines/titanic/detection_tables.h b/engines/titanic/detection_tables.h
new file mode 100644
index 0000000000..e9cdcab334
--- /dev/null
+++ b/engines/titanic/detection_tables.h
@@ -0,0 +1,41 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+namespace Titanic {
+
+static const TitanicGameDescription gameDescriptions[] = {
+ {
+ {
+ "titanic",
+ 0,
+ AD_ENTRY1s("newgame.st", "c276f2661f0d0a547445a65db78b2292", 87227),
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ ADGF_NO_FLAGS,
+ GUIO1(GUIO_NONE)
+ },
+ },
+
+ { AD_TABLE_END_MARKER }
+};
+
+} // End of namespace Titanic
diff --git a/engines/titanic/direct_draw.cpp b/engines/titanic/direct_draw.cpp
new file mode 100644
index 0000000000..551be5b87e
--- /dev/null
+++ b/engines/titanic/direct_draw.cpp
@@ -0,0 +1,140 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/debug.h"
+#include "engines/util.h"
+#include "graphics/pixelformat.h"
+#include "titanic/titanic.h"
+#include "titanic/direct_draw.h"
+
+namespace Titanic {
+
+DirectDraw::DirectDraw(TitanicEngine *vm) : _vm(vm),
+ _windowed(false), _fieldC(0), _width(0), _height(0),
+ _bpp(0), _numBackSurfaces(0), _field24(0) {
+}
+
+void DirectDraw::setDisplayMode(int width, int height, int bpp, int refreshRate) {
+ debugC(ERROR_BASIC, kDebugGraphics, "DirectDraw::SetDisplayMode (%d x %d), %d bpp",
+ width, height, bpp);
+ assert(bpp == 16);
+
+ Graphics::PixelFormat pixelFormat(2, 5, 6, 5, 0, 11, 5, 0, 0);
+ initGraphics(width, height, true, &pixelFormat);
+}
+
+void DirectDraw::diagnostics() {
+ debugC(ERROR_BASIC, kDebugGraphics, "Running DirectDraw Diagnostic...");
+}
+
+DirectDrawSurface *DirectDraw::createSurfaceFromDesc(const DDSurfaceDesc &desc) {
+ DirectDrawSurface *surface = new DirectDrawSurface();
+
+ Graphics::PixelFormat pixelFormat(2, 5, 6, 5, 0, 11, 5, 0, 0);
+ surface->create(desc._w, desc._h, pixelFormat);
+
+ return surface;
+}
+
+/*------------------------------------------------------------------------*/
+
+DirectDrawManager::DirectDrawManager(TitanicEngine *vm, bool windowed) : _directDraw(vm) {
+ _mainSurface = nullptr;
+ _backSurfaces[0] = _backSurfaces[1] = nullptr;
+ _directDraw._windowed = windowed;
+}
+
+void DirectDrawManager::initVideo(int width, int height, int bpp, int numBackSurfaces) {
+ debugC(ERROR_BASIC, kDebugGraphics, "Initialising video surfaces");
+ _directDraw._width = width;
+ _directDraw._numBackSurfaces = numBackSurfaces;
+ _directDraw._height = height;
+ _directDraw._bpp = bpp;
+
+ if (_directDraw._windowed) {
+ initWindowed();
+ } else {
+ initFullScreen();
+ }
+}
+
+void DirectDrawManager::setResolution() {
+ // TODO
+}
+
+void DirectDrawManager::proc2() {
+
+}
+
+void DirectDrawManager::proc3() {
+
+}
+
+void DirectDrawManager::initFullScreen() {
+ debugC(ERROR_BASIC, kDebugGraphics, "Creating surfaces");
+ _directDraw.setDisplayMode(_directDraw._width, _directDraw._height,
+ _directDraw._bpp, 0);
+
+ _mainSurface = new DirectDrawSurface();
+ _mainSurface->create(_directDraw._width, _directDraw._height,
+ Graphics::PixelFormat::createFormatCLUT8());
+ _backSurfaces[0] = new DirectDrawSurface();
+ _backSurfaces[0]->create(_directDraw._width, _directDraw._height,
+ Graphics::PixelFormat::createFormatCLUT8());
+}
+
+DirectDrawSurface *DirectDrawManager::createSurface(int w, int h, int surfaceNum) {
+ if (surfaceNum)
+ return nullptr;
+
+ assert(_mainSurface);
+ return _directDraw.createSurfaceFromDesc(DDSurfaceDesc(w, h));
+}
+
+/*------------------------------------------------------------------------*/
+
+Graphics::Surface *DirectDrawSurface::lock(const Common::Rect *bounds, int flags) {
+ assert(w != 0 && h != 0);
+ return this;
+}
+
+void DirectDrawSurface::unlock() {
+ assert(w != 0 && h != 0);
+}
+
+void DirectDrawSurface::fill(const Common::Rect *bounds, uint32 color) {
+ Common::Rect tempBounds;
+
+ if (bounds) {
+ // Bounds are provided, clip them to the bounds of this surface
+ tempBounds = *bounds;
+ tempBounds.clip(Common::Rect(0, 0, this->w, this->h));
+ } else {
+ // No bounds provided, so use the entire surface
+ tempBounds = Common::Rect(0, 0, this->w, this->h);
+ }
+
+ // Fill the area
+ fillRect(tempBounds, color);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/direct_draw.h b/engines/titanic/direct_draw.h
new file mode 100644
index 0000000000..5ec0f3d5c7
--- /dev/null
+++ b/engines/titanic/direct_draw.h
@@ -0,0 +1,138 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_DIRECT_DRAW_H
+#define TITANIC_DIRECT_DRAW_H
+
+#include "common/scummsys.h"
+#include "common/array.h"
+#include "graphics/surface.h"
+
+namespace Titanic {
+
+class TitanicEngine;
+
+struct DDSurfaceDesc {
+ int _w;
+ int _h;
+ int _flags;
+ int _caps;
+
+ DDSurfaceDesc(int w, int h) : _w(w), _h(h), _flags(0x1006), _caps(64) {}
+};
+
+class DirectDrawSurface : public Graphics::Surface {
+public:
+ /**
+ * Return the size of the surface in ytes
+ */
+ int getSize() const { return pitch * h; }
+
+ /**
+ * Lock the surface for access
+ */
+ Graphics::Surface *lock(const Common::Rect *bounds, int flags);
+
+ /**
+ * Unlocks the surface at the end of direct accesses
+ */
+ void unlock();
+
+ /**
+ * Fills an area of the surfae with the specified color. If no bounds are passed,
+ * then the entire surface is filled
+ */
+ void fill(const Common::Rect *bounds, uint32 color);
+};
+
+class DirectDraw {
+private:
+ TitanicEngine *_vm;
+public:
+ bool _windowed;
+ int _fieldC;
+ int _width;
+ int _height;
+ int _bpp;
+ int _numBackSurfaces;
+ int _field24;
+public:
+ DirectDraw(TitanicEngine *vm);
+
+ /**
+ * Sets a new display mode
+ */
+ void setDisplayMode(int width, int height, int bpp, int refreshRate);
+
+ /**
+ * Logs diagnostic information
+ */
+ void diagnostics();
+
+ /**
+ * Create a surface from a passed description record
+ */
+ DirectDrawSurface *createSurfaceFromDesc(const DDSurfaceDesc &desc);
+};
+
+class DirectDrawManager {
+public:
+ DirectDraw _directDraw;
+ DirectDrawSurface *_mainSurface;
+ DirectDrawSurface *_backSurfaces[2];
+public:
+ DirectDrawManager(TitanicEngine *vm, bool windowed);
+
+ /**
+ * Initializes video surfaces
+ * @param width Screen width
+ * @param height Screen height
+ * @param bpp Bits per pixel
+ * @param numBackSurfaces Number of back surfaces
+ */
+ void initVideo(int width, int height, int bpp, int numBackSurfaces);
+
+ void setResolution();
+
+ void proc2();
+
+ void proc3();
+
+ /**
+ * Initializes the surfaces in windowed mode
+ */
+ void initWindowed() { initFullScreen(); }
+
+ /**
+ * Initializes the surfaces for the screen
+ */
+ void initFullScreen();
+
+ /**
+ * Create a surface
+ */
+ DirectDrawSurface *createSurface(int w, int h, int surfaceNum);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_DIRECT_DRAW_H */
diff --git a/engines/titanic/events.cpp b/engines/titanic/events.cpp
new file mode 100644
index 0000000000..346b43c02b
--- /dev/null
+++ b/engines/titanic/events.cpp
@@ -0,0 +1,208 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/scummsys.h"
+#include "common/events.h"
+#include "common/system.h"
+#include "engines/util.h"
+#include "titanic/events.h"
+#include "titanic/titanic.h"
+#include "titanic/main_game_window.h"
+
+namespace Titanic {
+
+Events::Events(TitanicEngine *vm): _vm(vm), _specialButtons(0),
+ _frameCounter(1), _priorFrameTime(0), _priorLeftDownTime(0),
+ _priorMiddleDownTime(0), _priorRightDownTime(0) {
+}
+
+void Events::pollEvents() {
+ checkForNextFrameCounter();
+
+ Common::Event event;
+ if (!g_system->getEventManager()->pollEvent(event))
+ return;
+
+ switch (event.type) {
+ case Common::EVENT_MOUSEMOVE:
+ _mousePos = event.mouse;
+ mouseMove();
+ break;
+ case Common::EVENT_LBUTTONDOWN:
+ _mousePos = event.mouse;
+ leftButtonDown();
+ break;
+ case Common::EVENT_LBUTTONUP:
+ _mousePos = event.mouse;
+ leftButtonUp();
+ break;
+ case Common::EVENT_MBUTTONDOWN:
+ _mousePos = event.mouse;
+ middleButtonDown();
+ break;
+ case Common::EVENT_MBUTTONUP:
+ _mousePos = event.mouse;
+ middleButtonUp();
+ break;
+ case Common::EVENT_KEYDOWN:
+ keyDown(event.kbd);
+ break;
+ case Common::EVENT_KEYUP:
+ keyUp(event.kbd);
+ break;
+ default:
+ break;
+ }
+}
+
+void Events::pollEventsAndWait() {
+ pollEvents();
+ g_system->delayMillis(10);
+}
+
+bool Events::checkForNextFrameCounter() {
+ // Check for next game frame
+ uint32 milli = g_system->getMillis();
+ if ((milli - _priorFrameTime) >= GAME_FRAME_TIME) {
+ ++_frameCounter;
+ _priorFrameTime = milli;
+
+ // Give time to the debugger
+ _vm->_debugger->onFrame();
+
+ // Display the frame
+ //_vm->_screen->update();
+
+ return true;
+ }
+
+ return false;
+}
+
+uint32 Events::getTicksCount() const {
+ return g_system->getMillis();
+}
+
+#define HANDLE_MESSAGE(method) if (_vm->_window->_inputAllowed) { \
+ _vm->_window->_gameManager->_inputTranslator.leftButtonDown(_specialButtons, _mousePos); \
+ _vm->_window->mouseChanged(); \
+ }
+
+
+void Events::mouseMove() {
+ HANDLE_MESSAGE(mouseMove)
+}
+
+void Events::leftButtonDown() {
+ _specialButtons |= MK_LBUTTON;
+
+ if ((getTicksCount() - _priorLeftDownTime) < DOUBLE_CLICK_TIME) {
+ _priorLeftDownTime = 0;
+ leftButtonDoubleClick();
+ } else {
+ _priorLeftDownTime = getTicksCount();
+ HANDLE_MESSAGE(leftButtonDown)
+ }
+}
+
+void Events::leftButtonUp() {
+ _specialButtons &= ~MK_LBUTTON;
+ HANDLE_MESSAGE(leftButtonUp)
+}
+
+void Events::leftButtonDoubleClick() {
+ HANDLE_MESSAGE(leftButtonDoubleClick)
+}
+
+void Events::middleButtonDown() {
+ _specialButtons |= MK_MBUTTON;
+
+ if ((getTicksCount() - _priorMiddleDownTime) < DOUBLE_CLICK_TIME) {
+ _priorMiddleDownTime = 0;
+ middleButtonDoubleClick();
+ } else {
+ _priorMiddleDownTime = getTicksCount();
+ HANDLE_MESSAGE(middleButtonDown)
+ }
+}
+
+void Events::middleButtonUp() {
+ _specialButtons &= ~MK_MBUTTON;
+ HANDLE_MESSAGE(middleButtonUp)
+}
+
+void Events::middleButtonDoubleClick() {
+ HANDLE_MESSAGE(middleButtonDoubleClick)
+}
+
+void Events::rightButtonDown() {
+ _specialButtons |= MK_RBUTTON;
+
+ if ((getTicksCount() - _priorRightDownTime) < DOUBLE_CLICK_TIME) {
+ _priorRightDownTime = 0;
+ rightButtonDoubleClick();
+ } else {
+ _priorRightDownTime = getTicksCount();
+ HANDLE_MESSAGE(rightButtonDown)
+ }
+}
+
+void Events::rightButtonUp() {
+ _specialButtons &= ~MK_RBUTTON;
+ HANDLE_MESSAGE(rightButtonUp)
+}
+
+void Events::rightButtonDoubleClick() {
+ HANDLE_MESSAGE(rightButtonDoubleClick)
+}
+
+void Events::charPress(char c) {
+
+}
+
+void Events::keyDown(Common::KeyState keyState) {
+ handleKbdSpecial(keyState);
+
+ if (keyState.keycode == Common::KEYCODE_d && (keyState.flags & Common::KBD_CTRL)) {
+ // Attach to the debugger
+ _vm->_debugger->attach();
+ _vm->_debugger->onFrame();
+ }
+}
+
+void Events::keyUp(Common::KeyState keyState) {
+ handleKbdSpecial(keyState);
+}
+
+void Events::handleKbdSpecial(Common::KeyState keyState) {
+ if (keyState.flags & Common::KBD_CTRL)
+ _specialButtons |= MK_CONTROL;
+ else
+ _specialButtons &= ~MK_CONTROL;
+
+ if (keyState.flags & Common::KBD_SHIFT)
+ _specialButtons |= MK_SHIFT;
+ else
+ _specialButtons &= ~MK_SHIFT;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/events.h b/engines/titanic/events.h
new file mode 100644
index 0000000000..fe2c75166d
--- /dev/null
+++ b/engines/titanic/events.h
@@ -0,0 +1,105 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_EVENTS_H
+#define TITANIC_EVENTS_H
+
+#include "common/scummsys.h"
+#include "common/events.h"
+
+namespace Titanic {
+
+#define GAME_FRAME_RATE 30
+#define GAME_FRAME_TIME (1000 / GAME_FRAME_RATE)
+#define DOUBLE_CLICK_TIME 100
+
+enum SpecialButtons {
+ MK_LBUTTON = 1, MK_RBUTTON = 2, MK_SHIFT = 4, MK_CONTROL = 8,
+ MK_MBUTTON = 0x10
+};
+
+class TitanicEngine;
+
+class Events {
+private:
+ TitanicEngine *_vm;
+ uint32 _frameCounter;
+ uint32 _priorFrameTime;
+ uint32 _priorLeftDownTime;
+ uint32 _priorMiddleDownTime;
+ uint32 _priorRightDownTime;
+ Common::Point _mousePos;
+ int _specialButtons;
+
+ /**
+ * Check whether it's time to display the next screen frame
+ */
+ bool checkForNextFrameCounter();
+
+ void mouseMove();
+ void leftButtonDown();
+ void leftButtonUp();
+ void leftButtonDoubleClick();
+ void middleButtonDown();
+ void middleButtonUp();
+ void middleButtonDoubleClick();
+ void rightButtonDown();
+ void rightButtonUp();
+ void rightButtonDoubleClick();
+ void charPress(char c);
+ void keyDown(Common::KeyState keyState);
+ void keyUp(Common::KeyState keyState);
+ void handleKbdSpecial(Common::KeyState keyState);
+public:
+ Events(TitanicEngine *vm);
+ ~Events() {}
+
+ /**
+ * Check for any pending events
+ */
+ void pollEvents();
+
+ /**
+ * Poll for events and introduce a small delay, to allow the system to
+ * yield to other running programs
+ */
+ void pollEventsAndWait();
+
+ /**
+ * Return the current game frame number
+ */
+ uint32 getFrameCounter() const { return _frameCounter; }
+
+ /**
+ * Get the elapsed playtime
+ */
+ uint32 getTicksCount() const;
+
+ /**
+ * Return whether a given special key is currently pressed
+ */
+ bool isSpecialPressed(SpecialButtons btn) const { return _specialButtons; }
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_EVENTS_H */
diff --git a/engines/titanic/files_manager.cpp b/engines/titanic/files_manager.cpp
new file mode 100644
index 0000000000..7ff0b51af8
--- /dev/null
+++ b/engines/titanic/files_manager.cpp
@@ -0,0 +1,84 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/file.h"
+#include "titanic/files_manager.h"
+#include "titanic/game_manager.h"
+
+namespace Titanic {
+
+CFilesManager::CFilesManager() : _gameManager(nullptr),
+ _assetsPath("Assets"), _field0(0), _drive(-1),
+ _field18(0), _field1C(0), _field3C(0) {
+}
+
+bool CFilesManager::fileExists(const CString &name) {
+ Common::File f;
+ return f.exists(name);
+}
+
+bool CFilesManager::scanForFile(const CString &name) {
+ if (name.empty())
+ return false;
+
+ CString filename = name;
+ filename.toLowercase();
+
+ if (filename[0] == 'y' || filename[0] == 'z')
+ return true;
+ else if (filename[0] < 'a' || filename[0] > 'c')
+ return false;
+
+ CString fname = filename;
+ int idx = fname.indexOf('#');
+ if (idx >= 0) {
+ fname = fname.left(idx);
+ fname += ".st";
+ }
+
+ if (_gameManager)
+ _gameManager->viewChange();
+
+ // The original had a bunch of code here handling determining
+ // which asset path, if any, the filename was present for,
+ // and storing the "active asset path" it was found on.
+ // This is redundant for ScummVM, which takes care of the paths
+ return fileExists(fname);
+}
+
+void CFilesManager::loadDrive() {
+ assert(_drive == -1);
+ resetView();
+}
+
+void CFilesManager::debug(CScreenManager *screenManager) {
+ warning("TODO: CFilesManager::debug");
+}
+
+void CFilesManager::resetView() {
+ if (_gameManager) {
+ _gameManager->_gameState.setMode(GSMODE_1);
+ _gameManager->initBounds();
+ }
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/files_manager.h b/engines/titanic/files_manager.h
new file mode 100644
index 0000000000..ab92151055
--- /dev/null
+++ b/engines/titanic/files_manager.h
@@ -0,0 +1,83 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_FILES_MANAGER_H
+#define TITANIC_FILES_MANAGER_H
+
+#include "titanic/core/list.h"
+#include "titanic/screen_manager.h"
+
+namespace Titanic {
+
+class CGameManager;
+
+class CFilesManagerList : public List<ListItem> {
+};
+
+class CFilesManager {
+private:
+ CGameManager *_gameManager;
+ CFilesManagerList _list;
+ CString _string1;
+ CString _string2;
+ int _field0;
+ int _drive;
+ int _field18;
+ int _field1C;
+ int _field3C;
+ const CString _assetsPath;
+public:
+ CFilesManager();
+
+ /**
+ * Sets the game manager
+ */
+ void setGameManager(CGameManager *gameManager) {
+ _gameManager = gameManager;
+ }
+
+ /**
+ * Returns true if a file of the given name exists
+ */
+ static bool fileExists(const CString &name);
+
+ /**
+ * Scans for a file with a matching name
+ */
+ bool scanForFile(const CString &name);
+
+ /**
+ * Handles displaying a load drive view if necessary
+ */
+ void loadDrive();
+
+ void debug(CScreenManager *screenManager);
+
+ /**
+ * Resets the view being displayed
+ */
+ void resetView();
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_FILES_MANAGER_H */
diff --git a/engines/titanic/font.cpp b/engines/titanic/font.cpp
new file mode 100644
index 0000000000..bb8f2e05e9
--- /dev/null
+++ b/engines/titanic/font.cpp
@@ -0,0 +1,34 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/font.h"
+
+namespace Titanic {
+
+STFont::STFont() {
+}
+
+void STFont::load(int fontNumber) {
+ // TODO
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/font.h b/engines/titanic/font.h
new file mode 100644
index 0000000000..2948505c92
--- /dev/null
+++ b/engines/titanic/font.h
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_FONT_H
+#define TITANIC_FONT_H
+
+#include "common/scummsys.h"
+
+namespace Titanic {
+
+class STFont {
+public:
+public:
+ STFont();
+
+ void load(int fontNumber);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_FONT_H */
diff --git a/engines/titanic/game/announce.cpp b/engines/titanic/game/announce.cpp
new file mode 100644
index 0000000000..098ae70aa7
--- /dev/null
+++ b/engines/titanic/game/announce.cpp
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/announce.h"
+
+namespace Titanic {
+
+CAnnounce::CAnnounce() : _fieldBC(0), _fieldC0(0), _fieldC4(1), _fieldC8(0) {
+}
+
+void CAnnounce::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeNumberLine(_fieldC0, indent);
+ file->writeNumberLine(_fieldC4, indent);
+ file->writeNumberLine(_fieldC8, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CAnnounce::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _fieldC0 = file->readNumber();
+ _fieldC4 = file->readNumber();
+ _fieldC8 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/announce.h b/engines/titanic/game/announce.h
new file mode 100644
index 0000000000..18702c3baf
--- /dev/null
+++ b/engines/titanic/game/announce.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ANNOUNCE_H
+#define TITANIC_ANNOUNCE_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CAnnounce : public CGameObject {
+private:
+ int _fieldBC;
+ int _fieldC0;
+ int _fieldC4;
+ int _fieldC8;
+public:
+ CLASSDEF
+ CAnnounce();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ROOM_ITEM_H */
diff --git a/engines/titanic/game/annoy_barbot.cpp b/engines/titanic/game/annoy_barbot.cpp
new file mode 100644
index 0000000000..caea823105
--- /dev/null
+++ b/engines/titanic/game/annoy_barbot.cpp
@@ -0,0 +1,41 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/annoy_barbot.h"
+
+namespace Titanic {
+
+int CAnnoyBarbot::_v1;
+
+void CAnnoyBarbot::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_v1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CAnnoyBarbot::load(SimpleFile *file) {
+ file->readNumber();
+ _v1 = file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/annoy_barbot.h b/engines/titanic/game/annoy_barbot.h
new file mode 100644
index 0000000000..c15b41dc85
--- /dev/null
+++ b/engines/titanic/game/annoy_barbot.h
@@ -0,0 +1,49 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ANNOY_BARBOT_H
+#define TITANIC_ANNOY_BARBOT_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CAnnoyBarbot : public CGameObject {
+private:
+ static int _v1;
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ANNOY_BARBOT_H */
diff --git a/engines/titanic/game/arb_background.cpp b/engines/titanic/game/arb_background.cpp
new file mode 100644
index 0000000000..54e9c17e3c
--- /dev/null
+++ b/engines/titanic/game/arb_background.cpp
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/arb_background.h"
+
+namespace Titanic {
+
+CArbBackground::CArbBackground() : CBackground(),
+ _fieldE0(0), _fieldE4(61), _fieldE8(62), _fieldEC(118) {
+}
+
+void CArbBackground::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_fieldE8, indent);
+ file->writeNumberLine(_fieldEC, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CArbBackground::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _fieldE8 = file->readNumber();
+ _fieldEC = file->readNumber();
+
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/arb_background.h b/engines/titanic/game/arb_background.h
new file mode 100644
index 0000000000..50a9075750
--- /dev/null
+++ b/engines/titanic/game/arb_background.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ARB_BACKGROUND_H
+#define TITANIC_ARB_BACKGROUND_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CArbBackground : public CBackground {
+public:
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+ int _fieldEC;
+public:
+ CLASSDEF
+ CArbBackground();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ARB_BACKGROUND_H */
diff --git a/engines/titanic/game/arboretum_gate.cpp b/engines/titanic/game/arboretum_gate.cpp
new file mode 100644
index 0000000000..a892e65fc8
--- /dev/null
+++ b/engines/titanic/game/arboretum_gate.cpp
@@ -0,0 +1,149 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/arboretum_gate.h"
+
+namespace Titanic {
+
+int CArboretumGate::_v1;
+int CArboretumGate::_v2;
+int CArboretumGate::_v3;
+
+CArboretumGate::CArboretumGate() : CBackground() {
+ _string1 = "NULL";
+ _string2 = "NULL";
+ _fieldE0 = 0;
+ _fieldF0 = 0;
+ _fieldF4 = 244;
+ _fieldF8 = 304;
+ _fieldFC = 122;
+ _field100 = 182;
+ _field104 = 183;
+ _field108 = 243;
+ _field10C = 665;
+ _field110 = 724;
+ _field114 = 61;
+ _field118 = 121;
+ _field11C = 0;
+ _field120 = 60;
+ _field124 = 485;
+ _field128 = 544;
+ _field12C = 425;
+ _field130 = 484;
+ _field134 = 545;
+ _field138 = 604;
+ _field13C = 605;
+ _field140 = 664;
+ _field144 = 305;
+ _field148 = 364;
+ _field14C = 365;
+ _field150 = 424;
+}
+
+void CArboretumGate::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_v1, indent);
+ file->writeNumberLine(_v2, indent);
+ file->writeNumberLine(_v3, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeNumberLine(_fieldF0, indent);
+ file->writeNumberLine(_fieldF4, indent);
+ file->writeNumberLine(_fieldF8, indent);
+ file->writeNumberLine(_fieldFC, indent);
+ file->writeNumberLine(_field100, indent);
+ file->writeNumberLine(_field104, indent);
+ file->writeNumberLine(_field108, indent);
+ file->writeNumberLine(_field10C, indent);
+ file->writeNumberLine(_field110, indent);
+ file->writeNumberLine(_field114, indent);
+ file->writeNumberLine(_field118, indent);
+ file->writeNumberLine(_field11C, indent);
+ file->writeNumberLine(_field120, indent);
+ file->writeNumberLine(_field124, indent);
+ file->writeNumberLine(_field128, indent);
+ file->writeNumberLine(_field12C, indent);
+ file->writeNumberLine(_field130, indent);
+ file->writeNumberLine(_field134, indent);
+ file->writeNumberLine(_field138, indent);
+ file->writeNumberLine(_field13C, indent);
+ file->writeNumberLine(_field140, indent);
+ file->writeNumberLine(_field144, indent);
+ file->writeNumberLine(_field148, indent);
+ file->writeNumberLine(_field14C, indent);
+ file->writeNumberLine(_field150, indent);
+ file->writeQuotedLine(_string2, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CArboretumGate::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ _v1 = file->readNumber();
+ _v2 = file->readNumber();
+ _v3 = file->readNumber();
+ _string1 = file->readString();
+ _fieldF0 = file->readNumber();
+ _fieldF4 = file->readNumber();
+ _fieldF8 = file->readNumber();
+ _fieldFC = file->readNumber();
+ _field100 = file->readNumber();
+ _field104 = file->readNumber();
+ _field108 = file->readNumber();
+ _field10C = file->readNumber();
+ _field110 = file->readNumber();
+ _field114 = file->readNumber();
+ _field118 = file->readNumber();
+ _field11C = file->readNumber();
+ _field120 = file->readNumber();
+ _field124 = file->readNumber();
+ _field128 = file->readNumber();
+ _field12C = file->readNumber();
+ _field130 = file->readNumber();
+ _field134 = file->readNumber();
+ _field138 = file->readNumber();
+ _field13C = file->readNumber();
+ _field140 = file->readNumber();
+ _field144 = file->readNumber();
+ _field148 = file->readNumber();
+ _field14C = file->readNumber();
+ _field150 = file->readNumber();
+ _string2 = file->readString();
+
+ CBackground::load(file);
+}
+
+bool CArboretumGate::handleEvent(CActMsg &msg) { return false; }
+bool CArboretumGate::handleEvent(CLeaveViewMsg &msg) { return false; }
+bool CArboretumGate::handleEvent(CTurnOff &msg) { return false; }
+bool CArboretumGate::handleEvent(CMouseButtonDownMsg &msg) { return false; }
+
+bool CArboretumGate::handleEvent(CEnterViewMsg &msg) {
+ warning("CArboretumGate::handleEvent");
+ return false;
+}
+
+bool CArboretumGate::handleEvent(CTurnOn &msg) { return false; }
+bool CArboretumGate::handleEvent(CMovieEndMsg &msg) { return false; }
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/arboretum_gate.h b/engines/titanic/game/arboretum_gate.h
new file mode 100644
index 0000000000..7432799460
--- /dev/null
+++ b/engines/titanic/game/arboretum_gate.h
@@ -0,0 +1,96 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ARBORETUM_GATE_H
+#define TITANIC_ARBORETUM_GATE_H
+
+#include "titanic/core/background.h"
+#include "titanic/messages/messages.h"
+#include "titanic/messages/mouse_messages.h"
+
+namespace Titanic {
+
+class CArboretumGate : public CBackground, public CActMsgTarget,
+ public CLeaveViewMsgTarget, public CTurnOffTarget,
+ public CMouseButtonDownMsgTarget, public CEnterViewMsgTarget,
+ public CTurnOnTarget, public CMovieEndMsgTarget {
+private:
+ static int _v1;
+ static int _v2;
+ static int _v3;
+private:
+ int _fieldE0;
+ CString _string1;
+ int _fieldE8;
+ int _fieldEC;
+ int _fieldF0;
+ int _fieldF4;
+ int _fieldF8;
+ int _fieldFC;
+ int _field100;
+ int _field104;
+ int _field108;
+ int _field10C;
+ int _field110;
+ int _field114;
+ int _field118;
+ int _field11C;
+ int _field120;
+ int _field124;
+ int _field128;
+ int _field12C;
+ int _field130;
+ int _field134;
+ int _field138;
+ int _field13C;
+ int _field140;
+ int _field144;
+ int _field148;
+ int _field14C;
+ int _field150;
+ CString _string2;
+protected:
+ virtual bool handleEvent(CActMsg &msg);
+ virtual bool handleEvent(CLeaveViewMsg &msg);
+ virtual bool handleEvent(CTurnOff &msg);
+ virtual bool handleEvent(CMouseButtonDownMsg &msg);
+ virtual bool handleEvent(CEnterViewMsg &msg);
+ virtual bool handleEvent(CTurnOn &msg);
+ virtual bool handleEvent(CMovieEndMsg &msg);
+public:
+ CLASSDEF
+ CArboretumGate();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ARBORETUM_GATE_H */
diff --git a/engines/titanic/game/auto_animate.cpp b/engines/titanic/game/auto_animate.cpp
new file mode 100644
index 0000000000..958200f4cc
--- /dev/null
+++ b/engines/titanic/game/auto_animate.cpp
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/auto_animate.h"
+
+namespace Titanic {
+
+void CAutoAnimate::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_fieldE8, indent);
+ CBackground::save(file, indent);
+}
+
+void CAutoAnimate::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _fieldE8 = file->readNumber();
+ CBackground::load(file);
+}
+
+bool CAutoAnimate::handleEvent(CEnterViewMsg &msg) {
+ warning("CAutoAnimate::handleEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/auto_animate.h b/engines/titanic/game/auto_animate.h
new file mode 100644
index 0000000000..56e40a470c
--- /dev/null
+++ b/engines/titanic/game/auto_animate.h
@@ -0,0 +1,55 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_AUTO_ANIMATE_H
+#define TITANIC_AUTO_ANIMATE_H
+
+#include "titanic/core/background.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CAutoAnimate : public CBackground {
+private:
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+protected:
+ virtual bool handleEvent(CEnterViewMsg &msg);
+public:
+ CLASSDEF
+ CAutoAnimate() : CBackground(), _fieldE0(1), _fieldE4(1), _fieldE8(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_AUTO_ANIMATE_H */
diff --git a/engines/titanic/game/bar_bell.cpp b/engines/titanic/game/bar_bell.cpp
new file mode 100644
index 0000000000..1ac7568b0f
--- /dev/null
+++ b/engines/titanic/game/bar_bell.cpp
@@ -0,0 +1,58 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/bar_bell.h"
+
+namespace Titanic {
+
+CBarBell::CBarBell() : CGameObject(), _fieldBC(0),
+ _fieldC0(65), _fieldC4(0), _fieldC8(0), _fieldCC(0) {
+}
+
+void CBarBell::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeNumberLine(_fieldC0, indent);
+ file->writeNumberLine(_fieldC4, indent);
+ file->writeNumberLine(_fieldC8, indent);
+ file->writeNumberLine(_fieldCC, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CBarBell::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _fieldC0 = file->readNumber();
+ _fieldC4 = file->readNumber();
+ _fieldC8 = file->readNumber();
+ _fieldCC = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+bool CBarBell::handleEvent(CEnterRoomMsg &msg) {
+ _fieldBC = 0;
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/bar_bell.h b/engines/titanic/game/bar_bell.h
new file mode 100644
index 0000000000..111b0ac267
--- /dev/null
+++ b/engines/titanic/game/bar_bell.h
@@ -0,0 +1,57 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BAR_BELL_H
+#define TITANIC_BAR_BELL_H
+
+#include "titanic/core/game_object.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CBarBell : public CGameObject, CEnterRoomMsgTarget {
+public:
+ int _fieldBC;
+ int _fieldC0;
+ int _fieldC4;
+ int _fieldC8;
+ int _fieldCC;
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+ CBarBell();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BAR_BELL_H */
diff --git a/engines/titanic/game/bar_menu.cpp b/engines/titanic/game/bar_menu.cpp
new file mode 100644
index 0000000000..25da001660
--- /dev/null
+++ b/engines/titanic/game/bar_menu.cpp
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/bar_menu.h"
+
+namespace Titanic {
+
+CBarMenu::CBarMenu() : CGameObject(), _fieldBC(0), _fieldC0(0), _fieldC4(6) {
+}
+
+void CBarMenu::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeNumberLine(_fieldC0, indent);
+ file->writeNumberLine(_fieldC4, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CBarMenu::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _fieldC0 = file->readNumber();
+ _fieldC4 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/bar_menu.h b/engines/titanic/game/bar_menu.h
new file mode 100644
index 0000000000..ac253fc747
--- /dev/null
+++ b/engines/titanic/game/bar_menu.h
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BAR_MENU_H
+#define TITANIC_BAR_MENU_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CBarMenu : public CGameObject {
+public:
+ int _fieldBC;
+ int _fieldC0;
+ int _fieldC4;
+public:
+ CLASSDEF
+ CBarMenu();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BAR_MENU_H */
diff --git a/engines/titanic/game/bar_menu_button.cpp b/engines/titanic/game/bar_menu_button.cpp
new file mode 100644
index 0000000000..897c7a8e1e
--- /dev/null
+++ b/engines/titanic/game/bar_menu_button.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/bar_menu_button.h"
+
+namespace Titanic {
+
+void CBarMenuButton::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ CGameObject::save(file, indent);
+}
+
+void CBarMenuButton::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/bar_menu_button.h b/engines/titanic/game/bar_menu_button.h
new file mode 100644
index 0000000000..1a9d42c5d2
--- /dev/null
+++ b/engines/titanic/game/bar_menu_button.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BAR_MENU_BUTTON_H
+#define TITANIC_BAR_MENU_BUTTON_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CBarMenuButton : public CGameObject {
+public:
+ int _value;
+public:
+ CLASSDEF
+ CBarMenuButton() : CGameObject(), _value(1) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BAR_MENU_BUTTON_H */
diff --git a/engines/titanic/game/belbot_get_light.cpp b/engines/titanic/game/belbot_get_light.cpp
new file mode 100644
index 0000000000..4bbafcd31c
--- /dev/null
+++ b/engines/titanic/game/belbot_get_light.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/belbot_get_light.h"
+
+namespace Titanic {
+
+void CBelbotGetLight::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_value, indent);
+ CGameObject::save(file, indent);
+}
+
+void CBelbotGetLight::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readString();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/belbot_get_light.h b/engines/titanic/game/belbot_get_light.h
new file mode 100644
index 0000000000..05c14f5b45
--- /dev/null
+++ b/engines/titanic/game/belbot_get_light.h
@@ -0,0 +1,49 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BELBOT_GET_LIGHT_H
+#define TITANIC_BELBOT_GET_LIGHT_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CBelbotGetLight : public CGameObject {
+private:
+ CString _value;
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_LIGHT_H */
diff --git a/engines/titanic/game/bilge_succubus.cpp b/engines/titanic/game/bilge_succubus.cpp
new file mode 100644
index 0000000000..9c19d81020
--- /dev/null
+++ b/engines/titanic/game/bilge_succubus.cpp
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/bilge_succubus.h"
+
+namespace Titanic {
+
+CBilgeSuccUBus::CBilgeSuccUBus() : CSuccUBus(), _field1DC(0),
+ _field1E0(0), _field1E4(0), _field1E8(0) {
+}
+
+void CBilgeSuccUBus::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_field1DC, indent);
+ file->writeNumberLine(_field1E0, indent);
+ file->writeNumberLine(_field1E4, indent);
+ file->writeNumberLine(_field1E8, indent);
+
+ CSuccUBus::save(file, indent);
+}
+
+void CBilgeSuccUBus::load(SimpleFile *file) {
+ file->readNumber();
+ _field1DC = file->readNumber();
+ _field1E0 = file->readNumber();
+ _field1E4 = file->readNumber();
+ _field1E8 = file->readNumber();
+
+ CSuccUBus::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/bilge_succubus.h b/engines/titanic/game/bilge_succubus.h
new file mode 100644
index 0000000000..4ff72a57c7
--- /dev/null
+++ b/engines/titanic/game/bilge_succubus.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BILGE_SUCCUBUS_H
+#define TITANIC_BILGE_SUCCUBUS_H
+
+#include "titanic/npcs/succubus.h"
+
+namespace Titanic {
+
+class CBilgeSuccUBus : public CSuccUBus {
+public:
+ int _field1DC;
+ int _field1E0;
+ int _field1E4;
+ int _field1E8;
+public:
+ CLASSDEF
+ CBilgeSuccUBus();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BILGE_SUCCUBUS_H */
diff --git a/engines/titanic/game/bomb.cpp b/engines/titanic/game/bomb.cpp
new file mode 100644
index 0000000000..a8bf15ec33
--- /dev/null
+++ b/engines/titanic/game/bomb.cpp
@@ -0,0 +1,81 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/bomb.h"
+#include "titanic/titanic.h"
+
+namespace Titanic {
+
+CBomb::CBomb() : CBackground() {
+ _fieldE0 = 0;
+ _fieldE4 = 0;
+ _fieldE8 = 17;
+ _fieldEC = 9;
+ _fieldF0 = 0;
+ _fieldF4 = 999;
+ _fieldF8 = 0;
+ _fieldFC = 0;
+ _startingTicks = 0;
+ _field104 = 60;
+}
+
+void CBomb::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_fieldE8, indent);
+ file->writeNumberLine(_fieldEC, indent);
+ file->writeNumberLine(_fieldF0, indent);
+ file->writeNumberLine(_fieldF4, indent);
+ file->writeNumberLine(_fieldF8, indent);
+ file->writeNumberLine(_fieldFC, indent);
+ file->writeNumberLine(_startingTicks, indent);
+ file->writeNumberLine(_field104, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CBomb::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _fieldE8 = file->readNumber();
+ _fieldEC = file->readNumber();
+ _fieldF0 = file->readNumber();
+ _fieldF4 = file->readNumber();
+ _fieldF8 = file->readNumber();
+ _fieldFC = file->readNumber();
+ _startingTicks = file->readNumber();
+ _field104 = file->readNumber();
+
+ CBackground::load(file);
+}
+
+bool CBomb::handleEvent(CEnterRoomMsg &msg) {
+ _fieldE8 = 12;
+ _fieldEC = 9;
+ _fieldF0 = 0;
+ _startingTicks = g_vm->_events->getTicksCount();
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/bomb.h b/engines/titanic/game/bomb.h
new file mode 100644
index 0000000000..9cbdf84081
--- /dev/null
+++ b/engines/titanic/game/bomb.h
@@ -0,0 +1,62 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BOMB_H
+#define TITANIC_BOMB_H
+
+#include "titanic/core/background.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CBomb : public CBackground, CEnterRoomMsgTarget {
+private:
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+ int _fieldEC;
+ int _fieldF0;
+ int _fieldF4;
+ int _fieldF8;
+ int _fieldFC;
+ int _startingTicks;
+ int _field104;
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+ CBomb();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BOMB_H */
diff --git a/engines/titanic/game/bottom_of_well_monitor.cpp b/engines/titanic/game/bottom_of_well_monitor.cpp
new file mode 100644
index 0000000000..b48b5ad291
--- /dev/null
+++ b/engines/titanic/game/bottom_of_well_monitor.cpp
@@ -0,0 +1,46 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/bottom_of_well_monitor.h"
+
+namespace Titanic {
+
+int CBottomOfWellMonitor::_v1;
+int CBottomOfWellMonitor::_v2;
+
+void CBottomOfWellMonitor::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_v1, indent);
+ file->writeNumberLine(_v2, indent);
+ file->writeNumberLine(_value, indent);
+ CGameObject::save(file, indent);
+}
+
+void CBottomOfWellMonitor::load(SimpleFile *file) {
+ file->readNumber();
+ _v1 = file->readNumber();
+ _v2 = file->readNumber();
+ _value = file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/bottom_of_well_monitor.h b/engines/titanic/game/bottom_of_well_monitor.h
new file mode 100644
index 0000000000..e063579056
--- /dev/null
+++ b/engines/titanic/game/bottom_of_well_monitor.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BOTTOM_OF_WELL_MONITOR_H
+#define TITANIC_BOTTOM_OF_WELL_MONITOR_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CBottomOfWellMonitor : public CGameObject {
+public:
+ static int _v1, _v2;
+ int _value;
+public:
+ CLASSDEF
+ CBottomOfWellMonitor() : _value(1) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BOTTOM_OF_WELL_MONITOR_H */
diff --git a/engines/titanic/game/bowl_unlocker.cpp b/engines/titanic/game/bowl_unlocker.cpp
new file mode 100644
index 0000000000..83ae9e35d5
--- /dev/null
+++ b/engines/titanic/game/bowl_unlocker.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/bowl_unlocker.h"
+
+namespace Titanic {
+
+void CBowlUnlocker::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ CGameObject::save(file, indent);
+}
+
+void CBowlUnlocker::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/bowl_unlocker.h b/engines/titanic/game/bowl_unlocker.h
new file mode 100644
index 0000000000..7b886c406a
--- /dev/null
+++ b/engines/titanic/game/bowl_unlocker.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BOWL_UNLOCKER_H
+#define TITANIC_BOWL_UNLOCKER_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CBowlUnlocker : public CGameObject {
+public:
+ int _value;
+public:
+ CLASSDEF
+ CBowlUnlocker() : CGameObject(), _value(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BOWL_UNLOCKER_H */
diff --git a/engines/titanic/game/brain_slot.cpp b/engines/titanic/game/brain_slot.cpp
new file mode 100644
index 0000000000..f655a963d5
--- /dev/null
+++ b/engines/titanic/game/brain_slot.cpp
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/brain_slot.h"
+
+namespace Titanic {
+
+int CBrainSlot::_v1;
+int CBrainSlot::_v2;
+
+void CBrainSlot::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value1, indent);
+ file->writeQuotedLine(_value2, indent);
+ file->writeNumberLine(_v1, indent);
+ file->writeNumberLine(_v2, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CBrainSlot::load(SimpleFile *file) {
+ file->readNumber();
+ _value1 = file->readNumber();
+ _value2 = file->readString();
+ _v1 = file->readNumber();
+ _v2 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/brain_slot.h b/engines/titanic/game/brain_slot.h
new file mode 100644
index 0000000000..ae797ebb2f
--- /dev/null
+++ b/engines/titanic/game/brain_slot.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BRAIN_SLOT_H
+#define TITANIC_BRAIN_SLOT_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CBrainSlot : public CGameObject {
+public:
+ static int _v1, _v2;
+public:
+ int _value1;
+ CString _value2;
+public:
+ CLASSDEF
+ CBrainSlot() : CGameObject(), _value1(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BRAIN_SLOT_H */
diff --git a/engines/titanic/game/bridge_door.cpp b/engines/titanic/game/bridge_door.cpp
new file mode 100644
index 0000000000..b24f7a6b6a
--- /dev/null
+++ b/engines/titanic/game/bridge_door.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/bridge_door.h"
+
+namespace Titanic {
+
+void CBridgeDoor::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CBridgeDoor::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/bridge_door.h b/engines/titanic/game/bridge_door.h
new file mode 100644
index 0000000000..828562dfa3
--- /dev/null
+++ b/engines/titanic/game/bridge_door.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BRIDGE_DOOR_H
+#define TITANIC_BRIDGE_DOOR_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CBridgeDoor : public CGameObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BRIDGE_DOOR_H */
diff --git a/engines/titanic/game/bridge_view.cpp b/engines/titanic/game/bridge_view.cpp
new file mode 100644
index 0000000000..8afca38cf1
--- /dev/null
+++ b/engines/titanic/game/bridge_view.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/bridge_view.h"
+
+namespace Titanic {
+
+void CBridgeView::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ CBackground::save(file, indent);
+}
+
+void CBridgeView::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/bridge_view.h b/engines/titanic/game/bridge_view.h
new file mode 100644
index 0000000000..35de076573
--- /dev/null
+++ b/engines/titanic/game/bridge_view.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BRIDGE_VIEW_H
+#define TITANIC_BRIDGE_VIEW_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CBridgeView : public CBackground {
+public:
+ int _fieldE0;
+public:
+ CLASSDEF
+ CBridgeView() : CBackground(), _fieldE0(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BRIDGE_VIEW_H */
diff --git a/engines/titanic/game/broken_pell_base.cpp b/engines/titanic/game/broken_pell_base.cpp
new file mode 100644
index 0000000000..2d11e544e2
--- /dev/null
+++ b/engines/titanic/game/broken_pell_base.cpp
@@ -0,0 +1,46 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/broken_pell_base.h"
+
+namespace Titanic {
+
+int CBrokenPellBase::_v1;
+int CBrokenPellBase::_v2;
+
+void CBrokenPellBase::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_v1, indent);
+ file->writeNumberLine(_v2, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ CBackground::save(file, indent);
+}
+
+void CBrokenPellBase::load(SimpleFile *file) {
+ file->readNumber();
+ _v1 = file->readNumber();
+ _v2 = file->readNumber();
+ _fieldE0 = file->readNumber();
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/broken_pell_base.h b/engines/titanic/game/broken_pell_base.h
new file mode 100644
index 0000000000..46e7a70581
--- /dev/null
+++ b/engines/titanic/game/broken_pell_base.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BROKEN_PELL_BASE_H
+#define TITANIC_BROKEN_PELL_BASE_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CBrokenPellBase : public CBackground {
+private:
+ static int _v1;
+ static int _v2;
+
+ int _fieldE0;
+public:
+ CLASSDEF
+ CBrokenPellBase() : CBackground(), _fieldE0(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BROKEN_PELL_BASE_H */
diff --git a/engines/titanic/game/broken_pellerator.cpp b/engines/titanic/game/broken_pellerator.cpp
new file mode 100644
index 0000000000..ea167677bf
--- /dev/null
+++ b/engines/titanic/game/broken_pellerator.cpp
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/broken_pellerator.h"
+
+namespace Titanic {
+
+void CBrokenPellerator::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string2, indent);
+ file->writeQuotedLine(_string3, indent);
+ file->writeQuotedLine(_string4, indent);
+ file->writeQuotedLine(_string5, indent);
+
+ CBrokenPellBase::save(file, indent);
+}
+
+void CBrokenPellerator::load(SimpleFile *file) {
+ file->readNumber();
+ _string2 = file->readString();
+ _string3 = file->readString();
+ _string4 = file->readString();
+ _string5 = file->readString();
+
+ CBrokenPellBase::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/broken_pellerator.h b/engines/titanic/game/broken_pellerator.h
new file mode 100644
index 0000000000..974d5d21b4
--- /dev/null
+++ b/engines/titanic/game/broken_pellerator.h
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BROKEN_PELLERATOR_H
+#define TITANIC_BROKEN_PELLERATOR_H
+
+#include "titanic/game/broken_pell_base.h"
+
+namespace Titanic {
+
+class CBrokenPellerator : public CBrokenPellBase {
+private:
+ CString _string2;
+ CString _string3;
+ CString _string4;
+ CString _string5;
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BROKEN_PELLERATOR_H */
diff --git a/engines/titanic/game/broken_pellerator_froz.cpp b/engines/titanic/game/broken_pellerator_froz.cpp
new file mode 100644
index 0000000000..6b077d27ec
--- /dev/null
+++ b/engines/titanic/game/broken_pellerator_froz.cpp
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/broken_pellerator_froz.h"
+
+namespace Titanic {
+
+void CBrokenPelleratorFroz::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string2, indent);
+ file->writeQuotedLine(_string3, indent);
+ file->writeQuotedLine(_string4, indent);
+ file->writeQuotedLine(_string5, indent);
+
+ CBrokenPellBase::save(file, indent);
+}
+
+void CBrokenPelleratorFroz::load(SimpleFile *file) {
+ file->readNumber();
+ _string2 = file->readString();
+ _string3 = file->readString();
+ _string4 = file->readString();
+ _string5 = file->readString();
+
+ CBrokenPellBase::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/broken_pellerator_froz.h b/engines/titanic/game/broken_pellerator_froz.h
new file mode 100644
index 0000000000..c3674f0af7
--- /dev/null
+++ b/engines/titanic/game/broken_pellerator_froz.h
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BROKEN_PELLERATOR_FROZ_H
+#define TITANIC_BROKEN_PELLERATOR_FROZ_H
+
+#include "titanic/game/broken_pell_base.h"
+
+namespace Titanic {
+
+class CBrokenPelleratorFroz : public CBrokenPellBase {
+private:
+ CString _string2;
+ CString _string3;
+ CString _string4;
+ CString _string5;
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BROKEN_PELLERATOR_FROZ_H */
diff --git a/engines/titanic/game/cage.cpp b/engines/titanic/game/cage.cpp
new file mode 100644
index 0000000000..480944fb47
--- /dev/null
+++ b/engines/titanic/game/cage.cpp
@@ -0,0 +1,46 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/cage.h"
+
+namespace Titanic {
+
+int CCage::_v1;
+int CCage::_v2;
+
+void CCage::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_v1, indent);
+ file->writeNumberLine(_v2, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CCage::load(SimpleFile *file) {
+ file->readNumber();
+ _v1 = file->readNumber();
+ _v2 = file->readNumber();
+
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/cage.h b/engines/titanic/game/cage.h
new file mode 100644
index 0000000000..08fc8c8c43
--- /dev/null
+++ b/engines/titanic/game/cage.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CAGE_H
+#define TITANIC_CAGE_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CCage : public CBackground {
+public:
+ static int _v1;
+ static int _v2;
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CAGE_H */
diff --git a/engines/titanic/game/call_pellerator.cpp b/engines/titanic/game/call_pellerator.cpp
new file mode 100644
index 0000000000..85f2ab83b5
--- /dev/null
+++ b/engines/titanic/game/call_pellerator.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/call_pellerator.h"
+
+namespace Titanic {
+
+void CCallPellerator::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CCallPellerator::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/call_pellerator.h b/engines/titanic/game/call_pellerator.h
new file mode 100644
index 0000000000..dc9afe0a1a
--- /dev/null
+++ b/engines/titanic/game/call_pellerator.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CALL_PELLERATOR_H
+#define TITANIC_CALL_PELLERATOR_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CCallPellerator : public CGameObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CALL_PELLERATOR_H */
diff --git a/engines/titanic/game/captains_wheel.cpp b/engines/titanic/game/captains_wheel.cpp
new file mode 100644
index 0000000000..b4e31fdc40
--- /dev/null
+++ b/engines/titanic/game/captains_wheel.cpp
@@ -0,0 +1,56 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/captains_wheel.h"
+
+namespace Titanic {
+
+CCaptainsWheel::CCaptainsWheel() : CBackground(),
+ _fieldE0(0), _fieldE4(0), _fieldE8(0), _fieldEC(0),
+ _fieldF0(0), _fieldF4(0) {
+}
+
+void CCaptainsWheel::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_fieldE8, indent);
+ file->writeNumberLine(_fieldEC, indent);
+ file->writeNumberLine(_fieldF0, indent);
+ file->writeNumberLine(_fieldF4, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CCaptainsWheel::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _fieldE8 = file->readNumber();
+ _fieldEC = file->readNumber();
+ _fieldF0 = file->readNumber();
+ _fieldF4 = file->readNumber();
+
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/captains_wheel.h b/engines/titanic/game/captains_wheel.h
new file mode 100644
index 0000000000..bcfc5136e7
--- /dev/null
+++ b/engines/titanic/game/captains_wheel.h
@@ -0,0 +1,55 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CAPTAINS_WHEEL_H
+#define TITANIC_CAPTAINS_WHEEL_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CCaptainsWheel : public CBackground {
+public:
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+ int _fieldEC;
+ int _fieldF0;
+ int _fieldF4;
+public:
+ CLASSDEF
+ CCaptainsWheel();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CAPTAINS_WHEEL_H */
diff --git a/engines/titanic/game/cdrom.cpp b/engines/titanic/game/cdrom.cpp
new file mode 100644
index 0000000000..40e8ed05d8
--- /dev/null
+++ b/engines/titanic/game/cdrom.cpp
@@ -0,0 +1,42 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/cdrom.h"
+
+namespace Titanic {
+
+CCDROM::CCDROM() : CGameObject() {
+}
+
+void CCDROM::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writePoint(_pos1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CCDROM::load(SimpleFile *file) {
+ file->readNumber();
+ _pos1 = file->readPoint();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/cdrom.h b/engines/titanic/game/cdrom.h
new file mode 100644
index 0000000000..f810056e4f
--- /dev/null
+++ b/engines/titanic/game/cdrom.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CDROM_H
+#define TITANIC_CDROM_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CCDROM : public CGameObject {
+private:
+ Common::Point _pos1;
+public:
+ CLASSDEF
+ CCDROM();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CDROM_H */
diff --git a/engines/titanic/game/cdrom_computer.cpp b/engines/titanic/game/cdrom_computer.cpp
new file mode 100644
index 0000000000..e67e4fb1d8
--- /dev/null
+++ b/engines/titanic/game/cdrom_computer.cpp
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/cdrom_computer.h"
+
+namespace Titanic {
+
+CCDROMComputer::CCDROMComputer() : CGameObject(),
+ _fieldBC(0), _fieldC0(3), _fieldC4(55), _fieldC8(32) {
+}
+
+void CCDROMComputer::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeNumberLine(_fieldC0, indent);
+ file->writeNumberLine(_fieldC4, indent);
+ file->writeNumberLine(_fieldC8, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CCDROMComputer::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _fieldC0 = file->readNumber();
+ _fieldC4 = file->readNumber();
+ _fieldC8 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/cdrom_computer.h b/engines/titanic/game/cdrom_computer.h
new file mode 100644
index 0000000000..de070b007b
--- /dev/null
+++ b/engines/titanic/game/cdrom_computer.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CDROM_COMPUTER_H
+#define TITANIC_CDROM_COMPUTER_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CCDROMComputer : public CGameObject {
+private:
+ int _fieldBC;
+ int _fieldC0;
+ int _fieldC4;
+ int _fieldC8;
+public:
+ CLASSDEF
+ CCDROMComputer();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CDROM_COMPUTER_H */
diff --git a/engines/titanic/game/cdrom_tray.cpp b/engines/titanic/game/cdrom_tray.cpp
new file mode 100644
index 0000000000..32eea0648b
--- /dev/null
+++ b/engines/titanic/game/cdrom_tray.cpp
@@ -0,0 +1,46 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/cdrom_tray.h"
+
+namespace Titanic {
+
+CCDROMTray::CCDROMTray() : CGameObject(), _fieldBC(0) {
+}
+
+void CCDROMTray::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeQuotedLine(_string1, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CCDROMTray::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _string1 = file->readString();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/cdrom_tray.h b/engines/titanic/game/cdrom_tray.h
new file mode 100644
index 0000000000..85d26c5a1d
--- /dev/null
+++ b/engines/titanic/game/cdrom_tray.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CDROM_TRAY_H
+#define TITANIC_CDROM_TRAY_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CCDROMTray : public CGameObject {
+private:
+ int _fieldBC;
+ CString _string1;
+public:
+ CLASSDEF
+ CCDROMTray();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CDROM_TRAY_H */
diff --git a/engines/titanic/game/cell_point_button.cpp b/engines/titanic/game/cell_point_button.cpp
new file mode 100644
index 0000000000..45ddad8164
--- /dev/null
+++ b/engines/titanic/game/cell_point_button.cpp
@@ -0,0 +1,79 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/cell_point_button.h"
+
+namespace Titanic {
+
+CCellPointButton::CCellPointButton() : CBackground() {
+ _fieldE0 = 0;
+ _fieldE4 = 0;
+ _fieldE8 = 0;
+ _fieldEC = 0;
+ _fieldF0 = 0;
+ _fieldF4 = 0;
+ _fieldF8 = 0;
+ _fieldFC = 0;
+ _field100 = 0;
+ _field104 = 0;
+ _field108 = 1;
+}
+
+void CCellPointButton::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_fieldE8, indent);
+ file->writeNumberLine(_fieldEC, indent);
+ file->writeNumberLine(_fieldF0, indent);
+ file->writeNumberLine(_fieldF4, indent);
+ file->writeNumberLine(_fieldF8, indent);
+ file->writeNumberLine(_fieldFC, indent);
+ file->writeNumberLine(_field100, indent);
+ file->writeNumberLine(_field104, indent);
+ file->writeNumberLine(_field108, indent);
+ file->writeQuotedLine(_string3, indent);
+ file->writeNumberLine(_field118, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CCellPointButton::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _fieldE8 = file->readNumber();
+ _fieldEC = file->readNumber();
+ _fieldF0 = file->readNumber();
+ _fieldF4 = file->readNumber();
+ _fieldF8 = file->readNumber();
+ _fieldFC = file->readNumber();
+ _field100 = file->readNumber();
+ _field104 = file->readNumber();
+ _field108 = file->readNumber();
+ _string3 = file->readString();
+ _field118 = file->readNumber();
+
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/cell_point_button.h b/engines/titanic/game/cell_point_button.h
new file mode 100644
index 0000000000..02710f6ce5
--- /dev/null
+++ b/engines/titanic/game/cell_point_button.h
@@ -0,0 +1,62 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CELL_POINT_BUTTON_H
+#define TITANIC_CELL_POINT_BUTTON_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CCellPointButton : public CBackground {
+public:
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+ int _fieldEC;
+ int _fieldF0;
+ int _fieldF4;
+ int _fieldF8;
+ int _fieldFC;
+ int _field100;
+ int _field104;
+ int _field108;
+ CString _string3;
+ int _field118;
+public:
+ CLASSDEF
+ CCellPointButton();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CELL_POINT_BUTTON_H */
diff --git a/engines/titanic/game/chev_code.cpp b/engines/titanic/game/chev_code.cpp
new file mode 100644
index 0000000000..d2818f60a8
--- /dev/null
+++ b/engines/titanic/game/chev_code.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/chev_code.h"
+
+namespace Titanic {
+
+void CChevCode::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ CGameObject::save(file, indent);
+}
+
+void CChevCode::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/chev_code.h b/engines/titanic/game/chev_code.h
new file mode 100644
index 0000000000..3d5347bd05
--- /dev/null
+++ b/engines/titanic/game/chev_code.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CHEV_CODE_H
+#define TITANIC_CHEV_CODE_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CChevCode : public CGameObject {
+public:
+ int _value;
+public:
+ CLASSDEF
+ CChevCode() : CGameObject(), _value(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CHEV_CODE_H */
diff --git a/engines/titanic/game/chev_panel.cpp b/engines/titanic/game/chev_panel.cpp
new file mode 100644
index 0000000000..665b91dca2
--- /dev/null
+++ b/engines/titanic/game/chev_panel.cpp
@@ -0,0 +1,45 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/chev_panel.h"
+
+namespace Titanic {
+
+void CChevPanel::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeNumberLine(_fieldC0, indent);
+ file->writeNumberLine(_fieldC4, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CChevPanel::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _fieldC0 = file->readNumber();
+ _fieldC4 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/chev_panel.h b/engines/titanic/game/chev_panel.h
new file mode 100644
index 0000000000..9ddca37dc3
--- /dev/null
+++ b/engines/titanic/game/chev_panel.h
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CHEV_PANEL_H
+#define TITANIC_CHEV_PANEL_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CChevPanel : public CGameObject {
+public:
+ int _fieldBC;
+ int _fieldC0;
+ int _fieldC4;
+public:
+ CLASSDEF
+ CChevPanel() : _fieldBC(0), _fieldC0(0), _fieldC4(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CHEV_PANEL_H */
diff --git a/engines/titanic/game/chicken_cooler.cpp b/engines/titanic/game/chicken_cooler.cpp
new file mode 100644
index 0000000000..4ece0d6d05
--- /dev/null
+++ b/engines/titanic/game/chicken_cooler.cpp
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/chicken_cooler.h"
+
+namespace Titanic {
+
+void CChickenCooler::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeNumberLine(_fieldC0, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CChickenCooler::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _fieldC0 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+bool CChickenCooler::handleEvent(CEnterRoomMsg &msg) {
+ warning("CChickenCoolor::handlEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/chicken_cooler.h b/engines/titanic/game/chicken_cooler.h
new file mode 100644
index 0000000000..210183a474
--- /dev/null
+++ b/engines/titanic/game/chicken_cooler.h
@@ -0,0 +1,54 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CHICKEN_COOLER_H
+#define TITANIC_CHICKEN_COOLER_H
+
+#include "titanic/core/game_object.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CChickenCooler : public CGameObject, CEnterRoomMsgTarget {
+private:
+ int _fieldBC;
+ int _fieldC0;
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+ CChickenCooler() : CGameObject(), _fieldBC(0), _fieldC0(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CHICKEN_COOLER_H */
diff --git a/engines/titanic/game/chicken_dispensor.cpp b/engines/titanic/game/chicken_dispensor.cpp
new file mode 100644
index 0000000000..d3660bdf03
--- /dev/null
+++ b/engines/titanic/game/chicken_dispensor.cpp
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/chicken_dispensor.h"
+
+namespace Titanic {
+
+CChickenDispensor::CChickenDispensor() : CBackground(),
+ _fieldE0(0), _fieldE4(0), _fieldE8(0) {
+}
+
+void CChickenDispensor::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_fieldE8, indent);
+ CBackground::save(file, indent);
+}
+
+void CChickenDispensor::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _fieldE8 = file->readNumber();
+
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/chicken_dispensor.h b/engines/titanic/game/chicken_dispensor.h
new file mode 100644
index 0000000000..97e5f864f6
--- /dev/null
+++ b/engines/titanic/game/chicken_dispensor.h
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CHICKEN_DISPENSOR_H
+#define TITANIC_CHICKEN_DISPENSOR_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CChickenDispensor : public CBackground {
+public:
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+public:
+ CLASSDEF
+ CChickenDispensor();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CHICKEN_DISPENSOR_H */
diff --git a/engines/titanic/game/close_broken_pel.cpp b/engines/titanic/game/close_broken_pel.cpp
new file mode 100644
index 0000000000..9cc4eb6535
--- /dev/null
+++ b/engines/titanic/game/close_broken_pel.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/close_broken_pel.h"
+
+namespace Titanic {
+
+void CCloseBrokenPel::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string3, indent);
+ CBackground::save(file, indent);
+}
+
+void CCloseBrokenPel::load(SimpleFile *file) {
+ file->readNumber();
+ _string3 = file->readString();
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/close_broken_pel.h b/engines/titanic/game/close_broken_pel.h
new file mode 100644
index 0000000000..ecf38d904c
--- /dev/null
+++ b/engines/titanic/game/close_broken_pel.h
@@ -0,0 +1,49 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CLOSE_BROKEN_PEL_H
+#define TITANIC_CLOSE_BROKEN_PEL_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CCloseBrokenPel : public CBackground {
+public:
+ CString _string3;
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CLOSE_BROKEN_PEL_H */
diff --git a/engines/titanic/game/code_wheel.cpp b/engines/titanic/game/code_wheel.cpp
new file mode 100644
index 0000000000..a10a70c974
--- /dev/null
+++ b/engines/titanic/game/code_wheel.cpp
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/code_wheel.h"
+
+namespace Titanic {
+
+CodeWheel::CodeWheel() : CBomb(), _field108(0), _field10C(4), _field110(0) {
+}
+
+void CodeWheel::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_field108, indent);
+ file->writeNumberLine(_field10C, indent);
+ file->writeNumberLine(_field110, indent);
+
+ CBomb::save(file, indent);
+}
+
+void CodeWheel::load(SimpleFile *file) {
+ file->readNumber();
+ _field108 = file->readNumber();
+ _field10C = file->readNumber();
+ _field110 = file->readNumber();
+
+ CBomb::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/code_wheel.h b/engines/titanic/game/code_wheel.h
new file mode 100644
index 0000000000..6080e92041
--- /dev/null
+++ b/engines/titanic/game/code_wheel.h
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CODE_WHEEL_H
+#define TITANIC_CODE_WHEEL_H
+
+#include "titanic/game/bomb.h"
+
+namespace Titanic {
+
+class CodeWheel : public CBomb {
+private:
+ int _field108;
+ int _field10C;
+ int _field110;
+public:
+ CLASSDEF
+ CodeWheel();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CODE_WHEEL_H */
diff --git a/engines/titanic/game/computer.cpp b/engines/titanic/game/computer.cpp
new file mode 100644
index 0000000000..a28292184e
--- /dev/null
+++ b/engines/titanic/game/computer.cpp
@@ -0,0 +1,41 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/computer.h"
+
+namespace Titanic {
+
+void CComputer::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string3, indent);
+ file->writeNumberLine(_fieldEC, indent);
+ CBackground::save(file, indent);
+}
+
+void CComputer::load(SimpleFile *file) {
+ file->readNumber();
+ _string3 = file->readString();
+ _fieldEC = file->readNumber();
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/computer.h b/engines/titanic/game/computer.h
new file mode 100644
index 0000000000..793fecc491
--- /dev/null
+++ b/engines/titanic/game/computer.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_COMPUTER_H
+#define TITANIC_COMPUTER_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CComputer : public CBackground {
+public:
+ CString _string3;
+ int _fieldEC;
+public:
+ CLASSDEF
+ CComputer() : CBackground(), _string3("None"), _fieldEC(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_COMPUTER_H */
diff --git a/engines/titanic/game/computer_screen.cpp b/engines/titanic/game/computer_screen.cpp
new file mode 100644
index 0000000000..04de5e50d8
--- /dev/null
+++ b/engines/titanic/game/computer_screen.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/computer_screen.h"
+
+namespace Titanic {
+
+CComputerScreen::CComputerScreen() : CGameObject() {
+}
+
+void CComputerScreen::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CComputerScreen::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/computer_screen.h b/engines/titanic/game/computer_screen.h
new file mode 100644
index 0000000000..aa47482207
--- /dev/null
+++ b/engines/titanic/game/computer_screen.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_COMPUTER_SCREEN_H
+#define TITANIC_COMPUTER_SCREEN_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CComputerScreen : public CGameObject {
+public:
+ CLASSDEF
+ CComputerScreen();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_COMPUTER_SCREEN_H */
diff --git a/engines/titanic/game/cookie.cpp b/engines/titanic/game/cookie.cpp
new file mode 100644
index 0000000000..98621d04ab
--- /dev/null
+++ b/engines/titanic/game/cookie.cpp
@@ -0,0 +1,43 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/cookie.h"
+
+namespace Titanic {
+
+void CCookie::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value1, indent);
+ file->writeNumberLine(_value2, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CCookie::load(SimpleFile *file) {
+ file->readNumber();
+ _value1 = file->readNumber();
+ _value2 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/cookie.h b/engines/titanic/game/cookie.h
new file mode 100644
index 0000000000..bd9d1fff04
--- /dev/null
+++ b/engines/titanic/game/cookie.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_COOKIE_H
+#define TITANIC_COOKIE_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CCookie : public CGameObject {
+public:
+ int _value1;
+ int _value2;
+public:
+ CLASSDEF
+ CCookie() : CGameObject(), _value1(0), _value2(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_COOKIE_H */
diff --git a/engines/titanic/game/credits.cpp b/engines/titanic/game/credits.cpp
new file mode 100644
index 0000000000..178d268fb6
--- /dev/null
+++ b/engines/titanic/game/credits.cpp
@@ -0,0 +1,46 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/credits.h"
+
+namespace Titanic {
+
+CCredits::CCredits() : CGameObject(), _fieldBC(-1), _fieldC0(1) {
+}
+
+void CCredits::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeNumberLine(_fieldC0, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CCredits::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _fieldC0 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/credits.h b/engines/titanic/game/credits.h
new file mode 100644
index 0000000000..dc229127c8
--- /dev/null
+++ b/engines/titanic/game/credits.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CREDITS_H
+#define TITANIC_CREDITS_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CCredits : public CGameObject {
+public:
+ int _fieldBC, _fieldC0;
+public:
+ CLASSDEF
+ CCredits();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CREDITS_H */
diff --git a/engines/titanic/game/credits_button.cpp b/engines/titanic/game/credits_button.cpp
new file mode 100644
index 0000000000..0ab23c1efc
--- /dev/null
+++ b/engines/titanic/game/credits_button.cpp
@@ -0,0 +1,42 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/credits_button.h"
+
+namespace Titanic {
+
+CCreditsButton::CCreditsButton() : CBackground(), _fieldE0(1) {
+}
+
+void CCreditsButton::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ CBackground::save(file, indent);
+}
+
+void CCreditsButton::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/credits_button.h b/engines/titanic/game/credits_button.h
new file mode 100644
index 0000000000..fd7a8ad0c2
--- /dev/null
+++ b/engines/titanic/game/credits_button.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CREDITS_BUTTON_H
+#define TITANIC_CREDITS_BUTTON_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CCreditsButton : public CBackground {
+public:
+ int _fieldE0;
+public:
+ CLASSDEF
+ CCreditsButton();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CREDITS_BUTTON_H */
diff --git a/engines/titanic/game/dead_area.cpp b/engines/titanic/game/dead_area.cpp
new file mode 100644
index 0000000000..1692d6b8d1
--- /dev/null
+++ b/engines/titanic/game/dead_area.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/dead_area.h"
+
+namespace Titanic {
+
+CDeadArea::CDeadArea() : CGameObject() {
+}
+
+void CDeadArea::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CDeadArea::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/dead_area.h b/engines/titanic/game/dead_area.h
new file mode 100644
index 0000000000..4abcd58dd9
--- /dev/null
+++ b/engines/titanic/game/dead_area.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_DEAD_AREA_H
+#define TITANIC_DEAD_AREA_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CDeadArea : public CGameObject {
+public:
+ CLASSDEF
+ CDeadArea();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_DEAD_AREA_H */
diff --git a/engines/titanic/game/desk_click_responder.cpp b/engines/titanic/game/desk_click_responder.cpp
new file mode 100644
index 0000000000..312fe564af
--- /dev/null
+++ b/engines/titanic/game/desk_click_responder.cpp
@@ -0,0 +1,43 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/desk_click_responder.h"
+
+namespace Titanic {
+
+void CDeskClickResponder::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldD4, indent);
+ file->writeNumberLine(_fieldD8, indent);
+
+ CClickResponder::save(file, indent);
+}
+
+void CDeskClickResponder::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldD4 = file->readNumber();
+ _fieldD8 = file->readNumber();
+
+ CClickResponder::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/desk_click_responder.h b/engines/titanic/game/desk_click_responder.h
new file mode 100644
index 0000000000..a11d7ae328
--- /dev/null
+++ b/engines/titanic/game/desk_click_responder.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_DESK_CLICK_RESPONDER_H
+#define TITANIC_DESK_CLICK_RESPONDER_H
+
+#include "titanic/core/click_responder.h"
+
+namespace Titanic {
+
+class CDeskClickResponder : public CClickResponder {
+protected:
+ int _fieldD4;
+ int _fieldD8;
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_DESK_CLICK_RESPONDER_H */
diff --git a/engines/titanic/game/doorbot_elevator_handler.cpp b/engines/titanic/game/doorbot_elevator_handler.cpp
new file mode 100644
index 0000000000..718a464bf3
--- /dev/null
+++ b/engines/titanic/game/doorbot_elevator_handler.cpp
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/doorbot_elevator_handler.h"
+
+namespace Titanic {
+
+int CDoorbotElevatorHandler::_v1;
+
+void CDoorbotElevatorHandler::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ file->writeNumberLine(_v1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CDoorbotElevatorHandler::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ _v1 = file->readNumber();
+ CGameObject::load(file);
+}
+
+bool CDoorbotElevatorHandler::handleEvent(CEnterNodeMsg &msg) {
+ warning("CDoorbotElevatorHandler::handleEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/doorbot_elevator_handler.h b/engines/titanic/game/doorbot_elevator_handler.h
new file mode 100644
index 0000000000..04f3a75b18
--- /dev/null
+++ b/engines/titanic/game/doorbot_elevator_handler.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_DOORBOT_ELEVATOR_HANDLER_H
+#define TITANIC_DOORBOT_ELEVATOR_HANDLER_H
+
+#include "titanic/core/game_object.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CDoorbotElevatorHandler : public CGameObject, CEnterNodeMsgTarget {
+private:
+ static int _v1;
+ int _value;
+protected:
+ virtual bool handleEvent(CEnterNodeMsg &msg);
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_DOORBOT_ELEVATOR_HANDLER_H */
diff --git a/engines/titanic/game/doorbot_home_handler.cpp b/engines/titanic/game/doorbot_home_handler.cpp
new file mode 100644
index 0000000000..5d250172b1
--- /dev/null
+++ b/engines/titanic/game/doorbot_home_handler.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/doorbot_home_handler.h"
+
+namespace Titanic {
+
+CDoorbotHomeHandler::CDoorbotHomeHandler() {
+}
+
+void CDoorbotHomeHandler::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CDoorbotHomeHandler::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/doorbot_home_handler.h b/engines/titanic/game/doorbot_home_handler.h
new file mode 100644
index 0000000000..1e5d128a7d
--- /dev/null
+++ b/engines/titanic/game/doorbot_home_handler.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_DOORBOT_HOME_HANDLER_H
+#define TITANIC_DOORBOT_HOME_HANDLER_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CDoorbotHomeHandler : public CGameObject {
+public:
+ CLASSDEF
+ CDoorbotHomeHandler();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_DOORBOT_HOME_HANDLER_H */
diff --git a/engines/titanic/game/ear_sweet_bowl.cpp b/engines/titanic/game/ear_sweet_bowl.cpp
new file mode 100644
index 0000000000..dc4ca7af08
--- /dev/null
+++ b/engines/titanic/game/ear_sweet_bowl.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/ear_sweet_bowl.h"
+
+namespace Titanic {
+
+void CEarSweetBowl::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CSweetBowl::save(file, indent);
+}
+
+void CEarSweetBowl::load(SimpleFile *file) {
+ file->readNumber();
+ CSweetBowl::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/ear_sweet_bowl.h b/engines/titanic/game/ear_sweet_bowl.h
new file mode 100644
index 0000000000..aa276f82a7
--- /dev/null
+++ b/engines/titanic/game/ear_sweet_bowl.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_EAR_SWEET_BOWL_H
+#define TITANIC_EAR_SWEET_BOWL_H
+
+#include "titanic/game/sweet_bowl.h"
+
+namespace Titanic {
+
+class CEarSweetBowl : public CSweetBowl {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_EAR_SWEET_BOWL_H */
diff --git a/engines/titanic/game/eject_phonograph_button.cpp b/engines/titanic/game/eject_phonograph_button.cpp
new file mode 100644
index 0000000000..bd444f94e5
--- /dev/null
+++ b/engines/titanic/game/eject_phonograph_button.cpp
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/eject_phonograph_button.h"
+
+namespace Titanic {
+
+void CEjectPhonographButton::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeQuotedLine(_string3, indent);
+ file->writeQuotedLine(_string4, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CEjectPhonographButton::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _string3 = file->readString();
+ _string4 = file->readString();
+
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/eject_phonograph_button.h b/engines/titanic/game/eject_phonograph_button.h
new file mode 100644
index 0000000000..d3e8a50618
--- /dev/null
+++ b/engines/titanic/game/eject_phonograph_button.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_EJECT_PHONOGRAPH_BUTTON_H
+#define TITANIC_EJECT_PHONOGRAPH_BUTTON_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CEjectPhonographButton : public CBackground {
+public:
+ int _fieldE0;
+ int _fieldE4;
+ CString _string3;
+ CString _string4;
+public:
+ CLASSDEF
+ CEjectPhonographButton() : CBackground(), _fieldE0(0), _fieldE4(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_EJECT_PHONOGRAPH_BUTTON_H */
diff --git a/engines/titanic/game/elevator_action_area.cpp b/engines/titanic/game/elevator_action_area.cpp
new file mode 100644
index 0000000000..c9916bfc73
--- /dev/null
+++ b/engines/titanic/game/elevator_action_area.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/elevator_action_area.h"
+
+namespace Titanic {
+
+void CElevatorActionArea::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ CGameObject::save(file, indent);
+}
+
+void CElevatorActionArea::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/elevator_action_area.h b/engines/titanic/game/elevator_action_area.h
new file mode 100644
index 0000000000..570ee808ed
--- /dev/null
+++ b/engines/titanic/game/elevator_action_area.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ELEVATOR_ACTION_AREA_H
+#define TITANIC_ELEVATOR_ACTION_AREA_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CElevatorActionArea : public CGameObject {
+public:
+ int _value;
+public:
+ CLASSDEF
+ CElevatorActionArea() : CGameObject(), _value(4) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ELEVATOR_ACTION_AREA_H */
diff --git a/engines/titanic/game/emma_control.cpp b/engines/titanic/game/emma_control.cpp
new file mode 100644
index 0000000000..fac429ccec
--- /dev/null
+++ b/engines/titanic/game/emma_control.cpp
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/emma_control.h"
+
+namespace Titanic {
+
+int CEmmaControl::_v1;
+
+void CEmmaControl::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_v1, indent);
+ file->writeQuotedLine(_wavFile1, indent);
+ file->writeQuotedLine(_wavFile2, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CEmmaControl::load(SimpleFile *file) {
+ file->readNumber();
+ _v1 = file->readNumber();
+ _wavFile1 = file->readString();
+ _wavFile2 = file->readString();
+
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/emma_control.h b/engines/titanic/game/emma_control.h
new file mode 100644
index 0000000000..ea30c52279
--- /dev/null
+++ b/engines/titanic/game/emma_control.h
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_EMMA_CONTROL_H
+#define TITANIC_EMMA_CONTROL_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CEmmaControl : public CBackground {
+private:
+ static int _v1;
+
+ CString _wavFile1, _wavFile2;
+public:
+ CLASSDEF
+ CEmmaControl() : CBackground(), _wavFile1("b#39.wav"), _wavFile2("b#38.wav") {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_EMMA_CONTROL_H */
diff --git a/engines/titanic/game/empty_nut_bowl.cpp b/engines/titanic/game/empty_nut_bowl.cpp
new file mode 100644
index 0000000000..217029be19
--- /dev/null
+++ b/engines/titanic/game/empty_nut_bowl.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/empty_nut_bowl.h"
+
+namespace Titanic {
+
+void CEmptyNutBowl::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ CGameObject::save(file, indent);
+}
+
+void CEmptyNutBowl::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/empty_nut_bowl.h b/engines/titanic/game/empty_nut_bowl.h
new file mode 100644
index 0000000000..9645284e1b
--- /dev/null
+++ b/engines/titanic/game/empty_nut_bowl.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_EMPTY_NUT_BOWL_H
+#define TITANIC_EMPTY_NUT_BOWL_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CEmptyNutBowl : public CGameObject {
+public:
+ int _value;
+public:
+ CLASSDEF
+ CEmptyNutBowl() : CGameObject(), _value(1) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_EMPTY_NUT_BOWL_H */
diff --git a/engines/titanic/game/end_credit_text.cpp b/engines/titanic/game/end_credit_text.cpp
new file mode 100644
index 0000000000..8ae83ac8d0
--- /dev/null
+++ b/engines/titanic/game/end_credit_text.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/end_credit_text.h"
+
+namespace Titanic {
+
+void CEndCreditText::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ CGameObject::save(file, indent);
+}
+
+void CEndCreditText::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/end_credit_text.h b/engines/titanic/game/end_credit_text.h
new file mode 100644
index 0000000000..0003a8b4e3
--- /dev/null
+++ b/engines/titanic/game/end_credit_text.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_END_CREDIT_TEXT_H
+#define TITANIC_END_CREDIT_TEXT_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CEndCreditText : public CGameObject {
+private:
+ int _value;
+public:
+ CLASSDEF
+ CEndCreditText() : CGameObject(), _value(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_END_CREDIT_TEXT_H */
diff --git a/engines/titanic/game/end_credits.cpp b/engines/titanic/game/end_credits.cpp
new file mode 100644
index 0000000000..0f71cfc91a
--- /dev/null
+++ b/engines/titanic/game/end_credits.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/end_credits.h"
+
+namespace Titanic {
+
+void CEndCredits::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ CGameObject::save(file, indent);
+}
+
+void CEndCredits::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/end_credits.h b/engines/titanic/game/end_credits.h
new file mode 100644
index 0000000000..a259a215a4
--- /dev/null
+++ b/engines/titanic/game/end_credits.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_END_CREDITS_H
+#define TITANIC_END_CREDITS_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CEndCredits : public CGameObject {
+public:
+ int _value;
+public:
+ CLASSDEF
+ CEndCredits() : CGameObject(), _value(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_END_CREDITS_H */
diff --git a/engines/titanic/game/end_explode_ship.cpp b/engines/titanic/game/end_explode_ship.cpp
new file mode 100644
index 0000000000..e12e03e28d
--- /dev/null
+++ b/engines/titanic/game/end_explode_ship.cpp
@@ -0,0 +1,43 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/end_explode_ship.h"
+
+namespace Titanic {
+
+void CEndExplodeShip::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value1, indent);
+ file->writeNumberLine(_value2, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CEndExplodeShip::load(SimpleFile *file) {
+ file->readNumber();
+ _value1 = file->readNumber();
+ _value2 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/end_explode_ship.h b/engines/titanic/game/end_explode_ship.h
new file mode 100644
index 0000000000..a6b053fe55
--- /dev/null
+++ b/engines/titanic/game/end_explode_ship.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_END_EXPLODE_SHIP_H
+#define TITANIC_END_EXPLODE_SHIP_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CEndExplodeShip : public CGameObject {
+public:
+ int _value1, _value2;
+public:
+ CLASSDEF
+ CEndExplodeShip() : CGameObject(), _value1(0), _value2(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_END_EXPLODE_SHIP_H */
diff --git a/engines/titanic/game/end_game_credits.cpp b/engines/titanic/game/end_game_credits.cpp
new file mode 100644
index 0000000000..56b06e6ec0
--- /dev/null
+++ b/engines/titanic/game/end_game_credits.cpp
@@ -0,0 +1,46 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/end_game_credits.h"
+
+namespace Titanic {
+
+CEndGameCredits::CEndGameCredits() : CGameObject(), _fieldBC(0) {
+}
+
+void CEndGameCredits::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writePoint(_pos1, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CEndGameCredits::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _pos1 = file->readPoint();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/end_game_credits.h b/engines/titanic/game/end_game_credits.h
new file mode 100644
index 0000000000..68e86c6220
--- /dev/null
+++ b/engines/titanic/game/end_game_credits.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_END_GAME_CREDITS_H
+#define TITANIC_END_GAME_CREDITS_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CEndGameCredits : public CGameObject {
+private:
+ int _fieldBC;
+ Common::Point _pos1;
+public:
+ CLASSDEF
+ CEndGameCredits();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_END_GAME_CREDITS_H */
diff --git a/engines/titanic/game/end_sequence_control.cpp b/engines/titanic/game/end_sequence_control.cpp
new file mode 100644
index 0000000000..c3f5a2a007
--- /dev/null
+++ b/engines/titanic/game/end_sequence_control.cpp
@@ -0,0 +1,42 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/end_sequence_control.h"
+
+namespace Titanic {
+
+void CEndSequenceControl::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CEndSequenceControl::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+bool CEndSequenceControl::handleEvent(CEnterRoomMsg &msg) {
+ warning("TODO: CEndSequenceControl::handleEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/end_sequence_control.h b/engines/titanic/game/end_sequence_control.h
new file mode 100644
index 0000000000..d0ddd9c920
--- /dev/null
+++ b/engines/titanic/game/end_sequence_control.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_END_SEQUENCE_CONTROL_H
+#define TITANIC_END_SEQUENCE_CONTROL_H
+
+#include "titanic/core/game_object.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CEndSequenceControl : public CGameObject, CEnterRoomMsgTarget {
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_END_SEQUENCE_CONTROL_H */
diff --git a/engines/titanic/game/fan.cpp b/engines/titanic/game/fan.cpp
new file mode 100644
index 0000000000..4715aa76dd
--- /dev/null
+++ b/engines/titanic/game/fan.cpp
@@ -0,0 +1,43 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/fan.h"
+
+namespace Titanic {
+
+void CFan::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value1, indent);
+ file->writeNumberLine(_value2, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CFan::load(SimpleFile *file) {
+ file->readNumber();
+ _value1 = file->readNumber();
+ _value2 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/fan.h b/engines/titanic/game/fan.h
new file mode 100644
index 0000000000..6f234074f5
--- /dev/null
+++ b/engines/titanic/game/fan.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_FAN_H
+#define TITANIC_FAN_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CFan : public CGameObject {
+public:
+ int _value1, _value2;
+public:
+ CLASSDEF
+ CFan() : CGameObject(), _value1(0), _value2(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_FAN_H */
diff --git a/engines/titanic/game/fan_control.cpp b/engines/titanic/game/fan_control.cpp
new file mode 100644
index 0000000000..44e36b2b6c
--- /dev/null
+++ b/engines/titanic/game/fan_control.cpp
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/fan_control.h"
+
+namespace Titanic {
+
+CFanControl::CFanControl() : CGameObject(), _fieldBC(0),
+ _fieldC0(0), _fieldC4(0), _fieldC8(0), _fieldCC(0) {
+}
+
+void CFanControl::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeNumberLine(_fieldC0, indent);
+ file->writeNumberLine(_fieldC4, indent);
+ file->writeNumberLine(_fieldC8, indent);
+ file->writeNumberLine(_fieldCC, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CFanControl::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _fieldC0 = file->readNumber();
+ _fieldC4 = file->readNumber();
+ _fieldC8 = file->readNumber();
+ _fieldCC = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/fan_control.h b/engines/titanic/game/fan_control.h
new file mode 100644
index 0000000000..54ebbe27f3
--- /dev/null
+++ b/engines/titanic/game/fan_control.h
@@ -0,0 +1,54 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_FAN_CONTROL_H
+#define TITANIC_FAN_CONTROL_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CFanControl : public CGameObject {
+public:
+ int _fieldBC;
+ int _fieldC0;
+ int _fieldC4;
+ int _fieldC8;
+ int _fieldCC;
+public:
+ CLASSDEF
+ CFanControl();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_FAN_CONTROL_H */
diff --git a/engines/titanic/game/fan_decrease.cpp b/engines/titanic/game/fan_decrease.cpp
new file mode 100644
index 0000000000..41e227e98b
--- /dev/null
+++ b/engines/titanic/game/fan_decrease.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/fan_decrease.h"
+
+namespace Titanic {
+
+void CFanDecrease::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CFanDecrease::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/fan_decrease.h b/engines/titanic/game/fan_decrease.h
new file mode 100644
index 0000000000..bac102823d
--- /dev/null
+++ b/engines/titanic/game/fan_decrease.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_FAN_DECREASE_H
+#define TITANIC_FAN_DECREASE_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CFanDecrease : public CGameObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_FAN_DECREASE_H */
diff --git a/engines/titanic/game/fan_increase.cpp b/engines/titanic/game/fan_increase.cpp
new file mode 100644
index 0000000000..06fcf474b7
--- /dev/null
+++ b/engines/titanic/game/fan_increase.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/fan_increase.h"
+
+namespace Titanic {
+
+void CFanIncrease::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CFanIncrease::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/fan_increase.h b/engines/titanic/game/fan_increase.h
new file mode 100644
index 0000000000..62561f1c54
--- /dev/null
+++ b/engines/titanic/game/fan_increase.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_FAN_INCREASE_H
+#define TITANIC_FAN_INCREASE_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CFanIncrease : public CGameObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_FAN_INCREASE_H */
diff --git a/engines/titanic/game/fan_noises.cpp b/engines/titanic/game/fan_noises.cpp
new file mode 100644
index 0000000000..7ec55c46f9
--- /dev/null
+++ b/engines/titanic/game/fan_noises.cpp
@@ -0,0 +1,63 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/fan_noises.h"
+
+namespace Titanic {
+
+CFanNoises::CFanNoises() : CGameObject(), _fieldBC(-1),
+ _fieldC0(0), _fieldC4(70), _fieldC8(-1), _fieldCC(0),
+ _fieldD0(0), _fieldD4(-1) {
+}
+
+void CFanNoises::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeNumberLine(_fieldC0, indent);
+ file->writeNumberLine(_fieldC4, indent);
+ file->writeNumberLine(_fieldC8, indent);
+ file->writeNumberLine(_fieldCC, indent);
+ file->writeNumberLine(_fieldD0, indent);
+ file->writeNumberLine(_fieldD4, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CFanNoises::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _fieldC0 = file->readNumber();
+ _fieldC4 = file->readNumber();
+ _fieldC8 = file->readNumber();
+ _fieldCC = file->readNumber();
+ _fieldD0 = file->readNumber();
+ _fieldD4 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+bool CFanNoises::handleEvent(CEnterRoomMsg &msg) {
+ warning("CFanNoises::handleEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/fan_noises.h b/engines/titanic/game/fan_noises.h
new file mode 100644
index 0000000000..835d853d09
--- /dev/null
+++ b/engines/titanic/game/fan_noises.h
@@ -0,0 +1,59 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_FAN_NOISES_H
+#define TITANIC_FAN_NOISES_H
+
+#include "titanic/core/game_object.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CFanNoises : public CGameObject, CEnterRoomMsgTarget {
+private:
+ int _fieldBC;
+ int _fieldC0;
+ int _fieldC4;
+ int _fieldC8;
+ int _fieldCC;
+ int _fieldD0;
+ int _fieldD4;
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+ CFanNoises();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_FAN_NOISES_H */
diff --git a/engines/titanic/game/floor_indicator.cpp b/engines/titanic/game/floor_indicator.cpp
new file mode 100644
index 0000000000..b17bd4beeb
--- /dev/null
+++ b/engines/titanic/game/floor_indicator.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/floor_indicator.h"
+
+namespace Titanic {
+
+void CFloorIndicator::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CFloorIndicator::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/floor_indicator.h b/engines/titanic/game/floor_indicator.h
new file mode 100644
index 0000000000..a3511fb622
--- /dev/null
+++ b/engines/titanic/game/floor_indicator.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_FLOOR_INDICATOR_H
+#define TITANIC_FLOOR_INDICATOR_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CFloorIndicator : public CGameObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_FLOOR_INDICATOR_H */
diff --git a/engines/titanic/game/games_console.cpp b/engines/titanic/game/games_console.cpp
new file mode 100644
index 0000000000..13a726058a
--- /dev/null
+++ b/engines/titanic/game/games_console.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/games_console.h"
+
+namespace Titanic {
+
+void CGamesConsole::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ CBackground::save(file, indent);
+}
+
+void CGamesConsole::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/games_console.h b/engines/titanic/game/games_console.h
new file mode 100644
index 0000000000..67634d8d41
--- /dev/null
+++ b/engines/titanic/game/games_console.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_GAMES_CONSOLE_H
+#define TITANIC_GAMES_CONSOLE_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CGamesConsole : public CBackground {
+public:
+ int _fieldE0;
+public:
+ CLASSDEF
+ CGamesConsole() : CBackground(), _fieldE0(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_GAMES_CONSOLE_H */
diff --git a/engines/titanic/game/get_lift_eye2.cpp b/engines/titanic/game/get_lift_eye2.cpp
new file mode 100644
index 0000000000..7894c5ef58
--- /dev/null
+++ b/engines/titanic/game/get_lift_eye2.cpp
@@ -0,0 +1,54 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/get_lift_eye2.h"
+
+namespace Titanic {
+
+CString *CGetLiftEye2::_v1;
+
+void CGetLiftEye2::init() {
+ _v1 = new CString();
+}
+
+void CGetLiftEye2::deinit() {
+ delete _v1;
+}
+
+void CGetLiftEye2::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(*_v1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CGetLiftEye2::load(SimpleFile *file) {
+ file->readNumber();
+ *_v1 = file->readString();
+ CGameObject::load(file);
+}
+
+bool CGetLiftEye2::handleEvent(CEnterRoomMsg &msg) {
+ warning("CGetLiftEye2::handleEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/get_lift_eye2.h b/engines/titanic/game/get_lift_eye2.h
new file mode 100644
index 0000000000..5803ad03bd
--- /dev/null
+++ b/engines/titanic/game/get_lift_eye2.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_GET_LIFT_EYE2_H
+#define TITANIC_GET_LIFT_EYE2_H
+
+#include "titanic/core/game_object.h"
+#include "titanic/messages/messages.h"
+namespace Titanic {
+
+class CGetLiftEye2 : public CGameObject, CEnterRoomMsgTarget {
+private:
+ static CString *_v1;
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+ static void init();
+ static void deinit();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_GET_LIFT_EYE2_H */
diff --git a/engines/titanic/game/glass_smasher.cpp b/engines/titanic/game/glass_smasher.cpp
new file mode 100644
index 0000000000..80b665d6d8
--- /dev/null
+++ b/engines/titanic/game/glass_smasher.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/glass_smasher.h"
+
+namespace Titanic {
+
+void CGlassSmasher::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CGlassSmasher::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/glass_smasher.h b/engines/titanic/game/glass_smasher.h
new file mode 100644
index 0000000000..9c25065ecf
--- /dev/null
+++ b/engines/titanic/game/glass_smasher.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_GLASS_SMASHER_H
+#define TITANIC_GLASS_SMASHER_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CGlassSmasher : public CGameObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_GLASS_SMASHER_H */
diff --git a/engines/titanic/game/gondolier/gondolier_base.cpp b/engines/titanic/game/gondolier/gondolier_base.cpp
new file mode 100644
index 0000000000..bf54ed4d8d
--- /dev/null
+++ b/engines/titanic/game/gondolier/gondolier_base.cpp
@@ -0,0 +1,70 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/gondolier/gondolier_base.h"
+
+namespace Titanic {
+
+int CGondolierBase::_v1;
+int CGondolierBase::_v2;
+int CGondolierBase::_v3;
+int CGondolierBase::_v4;
+int CGondolierBase::_v5;
+int CGondolierBase::_v6;
+int CGondolierBase::_v7;
+int CGondolierBase::_v8;
+int CGondolierBase::_v9;
+int CGondolierBase::_v10;
+
+void CGondolierBase::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_v1, indent);
+ file->writeNumberLine(_v2, indent);
+ file->writeNumberLine(_v3, indent);
+ file->writeNumberLine(_v4, indent);
+ file->writeNumberLine(_v5, indent);
+ file->writeNumberLine(_v6, indent);
+ file->writeNumberLine(_v7, indent);
+ file->writeNumberLine(_v8, indent);
+ file->writeNumberLine(_v9, indent);
+ file->writeNumberLine(_v10, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CGondolierBase::load(SimpleFile *file) {
+ file->readNumber();
+ _v1 = file->readNumber();
+ _v2 = file->readNumber();
+ _v3 = file->readNumber();
+ _v4 = file->readNumber();
+ _v5 = file->readNumber();
+ _v6 = file->readNumber();
+ _v7 = file->readNumber();
+ _v8 = file->readNumber();
+ _v9 = file->readNumber();
+ _v10 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/gondolier/gondolier_base.h b/engines/titanic/game/gondolier/gondolier_base.h
new file mode 100644
index 0000000000..c45e3e2283
--- /dev/null
+++ b/engines/titanic/game/gondolier/gondolier_base.h
@@ -0,0 +1,58 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_GONDOLIER_BASE_H
+#define TITANIC_GONDOLIER_BASE_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CGondolierBase : public CGameObject {
+private:
+ static int _v1;
+ static int _v2;
+ static int _v3;
+ static int _v4;
+ static int _v5;
+ static int _v6;
+ static int _v7;
+ static int _v8;
+ static int _v9;
+ static int _v10;
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_GONDOLIER_BASE_H */
diff --git a/engines/titanic/game/gondolier/gondolier_chest.cpp b/engines/titanic/game/gondolier/gondolier_chest.cpp
new file mode 100644
index 0000000000..441a8bac31
--- /dev/null
+++ b/engines/titanic/game/gondolier/gondolier_chest.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/gondolier/gondolier_chest.h"
+
+namespace Titanic {
+
+void CGondolierChest::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGondolierBase::save(file, indent);
+}
+
+void CGondolierChest::load(SimpleFile *file) {
+ file->readNumber();
+ CGondolierBase::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/gondolier/gondolier_chest.h b/engines/titanic/game/gondolier/gondolier_chest.h
new file mode 100644
index 0000000000..d2c13812f4
--- /dev/null
+++ b/engines/titanic/game/gondolier/gondolier_chest.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_GONDOLIER_CHEST_H
+#define TITANIC_GONDOLIER_CHEST_H
+
+#include "titanic/game/gondolier/gondolier_base.h"
+
+namespace Titanic {
+
+class CGondolierChest : public CGondolierBase {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_GONDOLIER_CHEST_H */
diff --git a/engines/titanic/game/gondolier/gondolier_face.cpp b/engines/titanic/game/gondolier/gondolier_face.cpp
new file mode 100644
index 0000000000..6db23d8a1a
--- /dev/null
+++ b/engines/titanic/game/gondolier/gondolier_face.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/gondolier/gondolier_face.h"
+
+namespace Titanic {
+
+void CGondolierFace::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ CGondolierBase::save(file, indent);
+}
+
+void CGondolierFace::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ CGondolierBase::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/gondolier/gondolier_face.h b/engines/titanic/game/gondolier/gondolier_face.h
new file mode 100644
index 0000000000..334cab143f
--- /dev/null
+++ b/engines/titanic/game/gondolier/gondolier_face.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_GONDOLIER_FACE_H
+#define TITANIC_GONDOLIER_FACE_H
+
+#include "titanic/game/gondolier/gondolier_base.h"
+
+namespace Titanic {
+
+class CGondolierFace : public CGondolierBase {
+private:
+ int _fieldBC;
+public:
+ CLASSDEF
+ CGondolierFace() : CGondolierBase(), _fieldBC(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_GONDOLIER_FACE_H */
diff --git a/engines/titanic/game/gondolier/gondolier_mixer.cpp b/engines/titanic/game/gondolier/gondolier_mixer.cpp
new file mode 100644
index 0000000000..3d0a0e1f19
--- /dev/null
+++ b/engines/titanic/game/gondolier/gondolier_mixer.cpp
@@ -0,0 +1,68 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/gondolier/gondolier_mixer.h"
+#include "titanic/core/room_item.h"
+
+namespace Titanic {
+
+CGondolierMixer::CGondolierMixer() : CGondolierBase(),
+ _string1("c#0.wav"), _string2("c#1.wav"),
+ _fieldBC(-1), _fieldC0(-1), _fieldC4(0), _fieldC8(0),
+ _fieldE4(0) {
+}
+
+void CGondolierMixer::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeNumberLine(_fieldC0, indent);
+ file->writeNumberLine(_fieldC4, indent);
+ file->writeNumberLine(_fieldC8, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeQuotedLine(_string2, indent);
+ file->writeNumberLine(_fieldE4, indent);
+
+ CGondolierBase::save(file, indent);
+}
+
+void CGondolierMixer::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _fieldC0 = file->readNumber();
+ _fieldC4 = file->readNumber();
+ _fieldC8 = file->readNumber();
+ _string1 = file->readString();
+ _string2 = file->readString();
+ _fieldE4 = file->readNumber();
+
+ CGondolierBase::load(file);
+}
+
+bool CGondolierMixer::handleEvent(CEnterRoomMsg &msg) {
+ CRoomItem *parentRoom = dynamic_cast<CRoomItem *>(getParent());
+ if (parentRoom == msg._newRoom)
+ msg.execute(parentRoom);
+
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/gondolier/gondolier_mixer.h b/engines/titanic/game/gondolier/gondolier_mixer.h
new file mode 100644
index 0000000000..1288290d6f
--- /dev/null
+++ b/engines/titanic/game/gondolier/gondolier_mixer.h
@@ -0,0 +1,59 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_GONDOLIER_MIXER_H
+#define TITANIC_GONDOLIER_MIXER_H
+
+#include "titanic/game/gondolier/gondolier_base.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CGondolierMixer : public CGondolierBase, CEnterRoomMsgTarget {
+private:
+ int _fieldBC;
+ int _fieldC0;
+ int _fieldC4;
+ int _fieldC8;
+ CString _string1;
+ CString _string2;
+ int _fieldE4;
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+ CGondolierMixer();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_GONDOLIER_MIXER_H */
diff --git a/engines/titanic/game/gondolier/gondolier_slider.cpp b/engines/titanic/game/gondolier/gondolier_slider.cpp
new file mode 100644
index 0000000000..dff464ce64
--- /dev/null
+++ b/engines/titanic/game/gondolier/gondolier_slider.cpp
@@ -0,0 +1,82 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/gondolier/gondolier_slider.h"
+
+namespace Titanic {
+
+CGondolierSlider::CGondolierSlider() : CGondolierBase(),
+ _fieldBC(0), _fieldC0(0), _fieldC4(0), _fieldC8(0),
+ _fieldCC(0), _fieldD0(0), _fieldD4(0), _fieldD8(0),
+ _fieldDC(0), _fieldE0(0), _fieldE4(0), _fieldE8(0),
+ _fieldEC(0), _string1("NULL"), _fieldFC(0), _field118(0) {
+}
+
+void CGondolierSlider::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeNumberLine(_fieldC0, indent);
+ file->writeNumberLine(_fieldC4, indent);
+ file->writeNumberLine(_fieldC8, indent);
+ file->writeNumberLine(_fieldCC, indent);
+ file->writeNumberLine(_fieldD0, indent);
+ file->writeNumberLine(_fieldD4, indent);
+ file->writeNumberLine(_fieldD8, indent);
+ file->writeNumberLine(_fieldDC, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_fieldE8, indent);
+ file->writeNumberLine(_fieldCC, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeNumberLine(_fieldFC, indent);
+ file->writeQuotedLine(_string2, indent);
+ file->writeQuotedLine(_string3, indent);
+ file->writeNumberLine(_field118, indent);
+
+ CGondolierBase::save(file, indent);
+}
+
+void CGondolierSlider::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _fieldC0 = file->readNumber();
+ _fieldC4 = file->readNumber();
+ _fieldC8 = file->readNumber();
+ _fieldCC = file->readNumber();
+ _fieldD0 = file->readNumber();
+ _fieldD4 = file->readNumber();
+ _fieldD8 = file->readNumber();
+ _fieldDC = file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _fieldE8 = file->readNumber();
+ _fieldEC = file->readNumber();
+ _string1 = file->readString();
+ _fieldFC = file->readNumber();
+ _string2 = file->readString();
+ _string3 = file->readString();
+ _field118 = file->readNumber();
+
+ CGondolierBase::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/gondolier/gondolier_slider.h b/engines/titanic/game/gondolier/gondolier_slider.h
new file mode 100644
index 0000000000..eef4a58089
--- /dev/null
+++ b/engines/titanic/game/gondolier/gondolier_slider.h
@@ -0,0 +1,67 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_GONDOLIER_SLIDER_H
+#define TITANIC_GONDOLIER_SLIDER_H
+
+#include "titanic/game/gondolier/gondolier_base.h"
+
+namespace Titanic {
+
+class CGondolierSlider : public CGondolierBase {
+private:
+ int _fieldBC;
+ int _fieldC0;
+ int _fieldC4;
+ int _fieldC8;
+ int _fieldCC;
+ int _fieldD0;
+ int _fieldD4;
+ int _fieldD8;
+ int _fieldDC;
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+ int _fieldEC;
+ CString _string1;
+ int _fieldFC;
+ CString _string2;
+ CString _string3;
+ int _field118;
+public:
+ CLASSDEF
+ CGondolierSlider();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_GONDOLIER_SLIDER_H */
diff --git a/engines/titanic/game/hammer_clip.cpp b/engines/titanic/game/hammer_clip.cpp
new file mode 100644
index 0000000000..60955a21ff
--- /dev/null
+++ b/engines/titanic/game/hammer_clip.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/hammer_clip.h"
+
+namespace Titanic {
+
+void CHammerClip::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ CGameObject::save(file, indent);
+}
+
+void CHammerClip::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/hammer_clip.h b/engines/titanic/game/hammer_clip.h
new file mode 100644
index 0000000000..d1891d8c09
--- /dev/null
+++ b/engines/titanic/game/hammer_clip.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_HAMMER_CLIP_H
+#define TITANIC_HAMMER_CLIP_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CHammerClip : public CGameObject {
+public:
+ int _value;
+public:
+ CLASSDEF
+ CHammerClip() : CGameObject(), _value(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_HAMMER_CLIP_H */
diff --git a/engines/titanic/game/hammer_dispensor.cpp b/engines/titanic/game/hammer_dispensor.cpp
new file mode 100644
index 0000000000..d486910843
--- /dev/null
+++ b/engines/titanic/game/hammer_dispensor.cpp
@@ -0,0 +1,49 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/hammer_dispensor.h"
+
+namespace Titanic {
+
+CHammerDispensor::CHammerDispensor() : CBackground(),
+ _fieldE0(0), _fieldE4(0), _fieldE8(0) {
+}
+
+void CHammerDispensor::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_fieldE8, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CHammerDispensor::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _fieldE8 = file->readNumber();
+
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/hammer_dispensor.h b/engines/titanic/game/hammer_dispensor.h
new file mode 100644
index 0000000000..b99045dcb5
--- /dev/null
+++ b/engines/titanic/game/hammer_dispensor.h
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_HAMMER_DISPENSOR_H
+#define TITANIC_HAMMER_DISPENSOR_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CHammerDispensor : public CBackground {
+private:
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+public:
+ CLASSDEF
+ CHammerDispensor();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_HAMMER_DISPENSOR_H */
diff --git a/engines/titanic/game/hammer_dispensor_button.cpp b/engines/titanic/game/hammer_dispensor_button.cpp
new file mode 100644
index 0000000000..eb9fa3845b
--- /dev/null
+++ b/engines/titanic/game/hammer_dispensor_button.cpp
@@ -0,0 +1,56 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/hammer_dispensor_button.h"
+
+namespace Titanic {
+
+CHammerDispensorButton::CHammerDispensorButton() : CStartAction(),
+ _fieldF8(0), _fieldFC(0), _field100(0), _field104(56),
+ _field108(6), _field10C(0), _field110(0) {
+}
+
+void CHammerDispensorButton::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldF8, indent);
+ file->writeNumberLine(_fieldFC, indent);
+ file->writeNumberLine(_field100, indent);
+ file->writeNumberLine(_field104, indent);
+ file->writeNumberLine(_field108, indent);
+ file->writeNumberLine(_field110, indent);
+
+ CStartAction::save(file, indent);
+}
+
+void CHammerDispensorButton::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldF8 = file->readNumber();
+ _fieldFC = file->readNumber();
+ _field100 = file->readNumber();
+ _field104 = file->readNumber();
+ _field108 = file->readNumber();
+ _field110 = file->readNumber();
+
+ CStartAction::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/hammer_dispensor_button.h b/engines/titanic/game/hammer_dispensor_button.h
new file mode 100644
index 0000000000..3f28360a8f
--- /dev/null
+++ b/engines/titanic/game/hammer_dispensor_button.h
@@ -0,0 +1,56 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_HAMMER_DISPENSOR_BUTTON_H
+#define TITANIC_HAMMER_DISPENSOR_BUTTON_H
+
+#include "titanic/game/start_action.h"
+
+namespace Titanic {
+
+class CHammerDispensorButton : public CStartAction {
+private:
+ int _fieldF8;
+ int _fieldFC;
+ int _field100;
+ int _field104;
+ int _field108;
+ int _field10C;
+ int _field110;
+public:
+ CLASSDEF
+ CHammerDispensorButton();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_HAMMER_DISPENSOR_BUTTON_H */
diff --git a/engines/titanic/game/head_slot.cpp b/engines/titanic/game/head_slot.cpp
new file mode 100644
index 0000000000..4cb15ccd1e
--- /dev/null
+++ b/engines/titanic/game/head_slot.cpp
@@ -0,0 +1,66 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/head_slot.h"
+
+namespace Titanic {
+
+int CHeadSlot::_v1;
+
+CHeadSlot::CHeadSlot() : CGameObject(), _string1("NotWorking"), _string2("NULL"),
+ _fieldBC(0), _fieldD8(0), _fieldDC(27), _fieldE0(56),
+ _fieldE4(82), _fieldE8(112), _fieldEC(0) {
+}
+
+void CHeadSlot::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeQuotedLine(_string2, indent);
+ file->writeNumberLine(_fieldD8, indent);
+ file->writeNumberLine(_fieldDC, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_fieldE8, indent);
+ file->writeNumberLine(_v1, indent);
+ file->writeNumberLine(_fieldEC, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CHeadSlot::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _string1 = file->readString();
+ _string2 = file->readString();
+ _fieldD8 = file->readNumber();
+ _fieldDC = file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _fieldE8 = file->readNumber();
+ _v1 = file->readNumber();
+ _fieldEC = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/head_slot.h b/engines/titanic/game/head_slot.h
new file mode 100644
index 0000000000..3ba94a6669
--- /dev/null
+++ b/engines/titanic/game/head_slot.h
@@ -0,0 +1,60 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_HEAD_SLOT_H
+#define TITANIC_HEAD_SLOT_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CHeadSlot : public CGameObject {
+public:
+ static int _v1;
+public:
+ int _fieldBC;
+ CString _string1;
+ CString _string2;
+ int _fieldD8;
+ int _fieldDC;
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+ int _fieldEC;
+public:
+ CLASSDEF
+ CHeadSlot();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_HEAD_SLOT_H */
diff --git a/engines/titanic/game/head_smash_event.cpp b/engines/titanic/game/head_smash_event.cpp
new file mode 100644
index 0000000000..a3d3395a6e
--- /dev/null
+++ b/engines/titanic/game/head_smash_event.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/head_smash_event.h"
+
+namespace Titanic {
+
+void CHeadSmashEvent::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CBackground::save(file, indent);
+}
+
+void CHeadSmashEvent::load(SimpleFile *file) {
+ file->readNumber();
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/head_smash_event.h b/engines/titanic/game/head_smash_event.h
new file mode 100644
index 0000000000..847e86eeba
--- /dev/null
+++ b/engines/titanic/game/head_smash_event.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_HEAD_SMASH_EVENT_H
+#define TITANIC_HEAD_SMASH_EVENT_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CHeadSmashEvent : public CBackground {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_HEAD_SMASH_EVENT_H */
diff --git a/engines/titanic/game/head_smash_lever.cpp b/engines/titanic/game/head_smash_lever.cpp
new file mode 100644
index 0000000000..23ca96d6f9
--- /dev/null
+++ b/engines/titanic/game/head_smash_lever.cpp
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/head_smash_lever.h"
+
+namespace Titanic {
+
+CHeadSmashLever::CHeadSmashLever() : CBackground(),
+ _fieldE0(0), _fieldE4(0), _fieldE8(0) {}
+
+void CHeadSmashLever::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_fieldE8, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CHeadSmashLever::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _fieldE8 = file->readNumber();
+
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/head_smash_lever.h b/engines/titanic/game/head_smash_lever.h
new file mode 100644
index 0000000000..8a67f56c67
--- /dev/null
+++ b/engines/titanic/game/head_smash_lever.h
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_HEAD_SMASH_LEVER_H
+#define TITANIC_HEAD_SMASH_LEVER_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CHeadSmashLever : public CBackground {
+public:
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+public:
+ CLASSDEF
+ CHeadSmashLever();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_HEAD_SMASH_LEVER_H */
diff --git a/engines/titanic/game/head_spinner.cpp b/engines/titanic/game/head_spinner.cpp
new file mode 100644
index 0000000000..a01f4ea1f3
--- /dev/null
+++ b/engines/titanic/game/head_spinner.cpp
@@ -0,0 +1,43 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/head_spinner.h"
+
+namespace Titanic {
+
+void CHeadSpinner::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value1, indent);
+ file->writeNumberLine(_value2, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CHeadSpinner::load(SimpleFile *file) {
+ file->readNumber();
+ _value1 = file->readNumber();
+ _value2 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/head_spinner.h b/engines/titanic/game/head_spinner.h
new file mode 100644
index 0000000000..3ed3e1f01a
--- /dev/null
+++ b/engines/titanic/game/head_spinner.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_HEAD_SPINNER_H
+#define TITANIC_HEAD_SPINNER_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CHeadSpinner : public CGameObject {
+public:
+ int _value1, _value2;
+public:
+ CHeadSpinner() : CGameObject(), _value1(0), _value2(0) {}
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_HEAD_SPINNER_H */
diff --git a/engines/titanic/game/idle_summoner.cpp b/engines/titanic/game/idle_summoner.cpp
new file mode 100644
index 0000000000..39327266e4
--- /dev/null
+++ b/engines/titanic/game/idle_summoner.cpp
@@ -0,0 +1,63 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/idle_summoner.h"
+
+namespace Titanic {
+
+CIdleSummoner::CIdleSummoner() : CGameObject(), _fieldBC(0x57E40),
+ _fieldC0(0xEA60), _fieldC4(0x57E40), _fieldC8(0xEA60),
+ _fieldCC(0xEA60), _fieldD0(0xEA60), _fieldD4(0xEA60),
+ _fieldD8(0xEA60), _fieldDC(0xEA60) {
+}
+
+void CIdleSummoner::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeNumberLine(_fieldC0, indent);
+ file->writeNumberLine(_fieldC4, indent);
+ file->writeNumberLine(_fieldC8, indent);
+ file->writeNumberLine(_fieldCC, indent);
+ file->writeNumberLine(_fieldD0, indent);
+ file->writeNumberLine(_fieldD4, indent);
+ file->writeNumberLine(_fieldD8, indent);
+ file->writeNumberLine(_fieldDC, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CIdleSummoner::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _fieldC0 = file->readNumber();
+ _fieldC4 = file->readNumber();
+ _fieldC8 = file->readNumber();
+ _fieldCC = file->readNumber();
+ _fieldD0 = file->readNumber();
+ _fieldD4 = file->readNumber();
+ _fieldD8 = file->readNumber();
+ _fieldDC = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/idle_summoner.h b/engines/titanic/game/idle_summoner.h
new file mode 100644
index 0000000000..a983684a15
--- /dev/null
+++ b/engines/titanic/game/idle_summoner.h
@@ -0,0 +1,58 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_IDLE_SUMMONER_H
+#define TITANIC_IDLE_SUMMONER_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CIdleSummoner : public CGameObject {
+public:
+ int _fieldBC;
+ int _fieldC0;
+ int _fieldC4;
+ int _fieldC8;
+ int _fieldCC;
+ int _fieldD0;
+ int _fieldD4;
+ int _fieldD8;
+ int _fieldDC;
+public:
+ CIdleSummoner();
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_IDLE_SUMMONER_H */
diff --git a/engines/titanic/game/leave_sec_class_state.cpp b/engines/titanic/game/leave_sec_class_state.cpp
new file mode 100644
index 0000000000..cbeb872dc8
--- /dev/null
+++ b/engines/titanic/game/leave_sec_class_state.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/leave_sec_class_state.h"
+
+namespace Titanic {
+
+void CLeaveSecClassState::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CLeaveSecClassState::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/leave_sec_class_state.h b/engines/titanic/game/leave_sec_class_state.h
new file mode 100644
index 0000000000..34ba31b6c0
--- /dev/null
+++ b/engines/titanic/game/leave_sec_class_state.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_LEAVE_SEC_CLASS_STATE_H
+#define TITANIC_LEAVE_SEC_CLASS_STATE_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CLeaveSecClassState : public CGameObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_LEAVE_SEC_CLASS_STATE_H */
diff --git a/engines/titanic/game/lemon_dispensor.cpp b/engines/titanic/game/lemon_dispensor.cpp
new file mode 100644
index 0000000000..b13b6d8f0b
--- /dev/null
+++ b/engines/titanic/game/lemon_dispensor.cpp
@@ -0,0 +1,61 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/lemon_dispensor.h"
+
+namespace Titanic {
+
+int CLemonDispensor::_v1;
+int CLemonDispensor::_v2;
+int CLemonDispensor::_v3;
+
+CLemonDispensor::CLemonDispensor() : CBackground(),
+ _fieldE0(0), _fieldE4(9), _fieldE8(15), _fieldEC(0) {
+}
+
+void CLemonDispensor::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_v1, indent);
+ file->writeNumberLine(_v2, indent);
+ file->writeNumberLine(_v3, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_fieldE8, indent);
+ file->writeNumberLine(_fieldEC, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CLemonDispensor::load(SimpleFile *file) {
+ file->readNumber();
+ _v1 = file->readNumber();
+ _v2 = file->readNumber();
+ _v3 = file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _fieldE8 = file->readNumber();
+ _fieldEC = file->readNumber();
+
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/lemon_dispensor.h b/engines/titanic/game/lemon_dispensor.h
new file mode 100644
index 0000000000..091c6d7b27
--- /dev/null
+++ b/engines/titanic/game/lemon_dispensor.h
@@ -0,0 +1,57 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_LEMON_DISPENSOR_H
+#define TITANIC_LEMON_DISPENSOR_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CLemonDispensor : public CBackground {
+private:
+ static int _v1;
+ static int _v2;
+ static int _v3;
+
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+ int _fieldEC;
+public:
+ CLASSDEF
+ CLemonDispensor();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_LEMON_DISPENSOR_H */
diff --git a/engines/titanic/game/light.cpp b/engines/titanic/game/light.cpp
new file mode 100644
index 0000000000..856e6a463f
--- /dev/null
+++ b/engines/titanic/game/light.cpp
@@ -0,0 +1,65 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/light.h"
+
+namespace Titanic {
+
+CLight::CLight() : CBackground(), _fieldE0(0), _fieldE4(0),
+ _fieldE8(0), _fieldEC(0), _fieldF0(0), _fieldF4(0),
+ _fieldF8(0), _fieldFC(0) {
+}
+
+void CLight::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_fieldE8, indent);
+ file->writeNumberLine(_fieldEC, indent);
+ file->writeNumberLine(_fieldF0, indent);
+ file->writeNumberLine(_fieldF4, indent);
+ file->writeNumberLine(_fieldF8, indent);
+ file->writeNumberLine(_fieldFC, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CLight::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _fieldE8 = file->readNumber();
+ _fieldEC = file->readNumber();
+ _fieldF0 = file->readNumber();
+ _fieldF4 = file->readNumber();
+ _fieldF8 = file->readNumber();
+ _fieldFC = file->readNumber();
+
+ CBackground::load(file);
+}
+
+bool CLight::handleEvent(CEnterRoomMsg &msg) {
+ warning("CLight::handleEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/light.h b/engines/titanic/game/light.h
new file mode 100644
index 0000000000..42e7224a72
--- /dev/null
+++ b/engines/titanic/game/light.h
@@ -0,0 +1,60 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_LIGHT_H
+#define TITANIC_LIGHT_H
+
+#include "titanic/core/background.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CLight : public CBackground, CEnterRoomMsgTarget {
+private:
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+ int _fieldEC;
+ int _fieldF0;
+ int _fieldF4;
+ int _fieldF8;
+ int _fieldFC;
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+ CLight();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_LIGHT_H */
diff --git a/engines/titanic/game/light_switch.cpp b/engines/titanic/game/light_switch.cpp
new file mode 100644
index 0000000000..b857bfb159
--- /dev/null
+++ b/engines/titanic/game/light_switch.cpp
@@ -0,0 +1,58 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/light_switch.h"
+
+namespace Titanic {
+
+int CLightSwitch::_v1;
+
+CLightSwitch::CLightSwitch() : CBackground(),
+ _fieldE0(0), _fieldE4(0), _fieldE8(0) {
+}
+
+void CLightSwitch::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_v1, indent);
+ file->writeNumberLine(_fieldE8, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CLightSwitch::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _v1 = file->readNumber();
+ _fieldE8 = file->readNumber();
+
+ CBackground::load(file);
+}
+
+bool CLightSwitch::handleEvent(CEnterRoomMsg &msg) {
+ warning("CLightSwitch::handleEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/light_switch.h b/engines/titanic/game/light_switch.h
new file mode 100644
index 0000000000..1cda539dd0
--- /dev/null
+++ b/engines/titanic/game/light_switch.h
@@ -0,0 +1,57 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_LIGHT_SWITCH_H
+#define TITANIC_LIGHT_SWITCH_H
+
+#include "titanic/core/background.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CLightSwitch : public CBackground, CEnterRoomMsgTarget {
+public:
+ static int _v1;
+private:
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+ CLightSwitch();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_LIGHT_SWITCH_H */
diff --git a/engines/titanic/game/little_lift_button.cpp b/engines/titanic/game/little_lift_button.cpp
new file mode 100644
index 0000000000..3e2fbdd6e8
--- /dev/null
+++ b/engines/titanic/game/little_lift_button.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/little_lift_button.h"
+
+namespace Titanic {
+
+void CLittleLiftButton::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ CBackground::save(file, indent);
+}
+
+void CLittleLiftButton::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/little_lift_button.h b/engines/titanic/game/little_lift_button.h
new file mode 100644
index 0000000000..92f084aba1
--- /dev/null
+++ b/engines/titanic/game/little_lift_button.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_LITTLE_LIFT_BUTTON_H
+#define TITANIC_LITTLE_LIFT_BUTTON_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CLittleLiftButton : public CBackground {
+private:
+ int _value;
+public:
+ CLASSDEF
+ CLittleLiftButton() : CBackground(), _value(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_LITTLE_LIFT_BUTTON_H */
diff --git a/engines/titanic/game/long_stick_dispenser.cpp b/engines/titanic/game/long_stick_dispenser.cpp
new file mode 100644
index 0000000000..5d7df1df12
--- /dev/null
+++ b/engines/titanic/game/long_stick_dispenser.cpp
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/long_stick_dispenser.h"
+
+namespace Titanic {
+
+void CLongStickDispenser::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeNumberLine(_fieldC0, indent);
+ file->writeNumberLine(_fieldC4, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CLongStickDispenser::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _fieldC0 = file->readNumber();
+ _fieldC4 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+bool CLongStickDispenser::handleEvent(CEnterRoomMsg &msg) {
+ _fieldC0 = 0;
+ _fieldC4 = 1;
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/long_stick_dispenser.h b/engines/titanic/game/long_stick_dispenser.h
new file mode 100644
index 0000000000..14785a785b
--- /dev/null
+++ b/engines/titanic/game/long_stick_dispenser.h
@@ -0,0 +1,56 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_LONG_STICK_DISPENSER_H
+#define TITANIC_LONG_STICK_DISPENSER_H
+
+#include "titanic/core/game_object.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CLongStickDispenser : public CGameObject {
+private:
+ int _fieldBC;
+ int _fieldC0;
+ int _fieldC4;
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+ CLongStickDispenser() : CGameObject(), _fieldBC(0),
+ _fieldC0(0), _fieldC4(1) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_LONG_STICK_DISPENSER_H */
diff --git a/engines/titanic/game/mail_man.cpp b/engines/titanic/game/mail_man.cpp
new file mode 100644
index 0000000000..9096fc55d1
--- /dev/null
+++ b/engines/titanic/game/mail_man.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/mail_man.h"
+
+namespace Titanic {
+
+void CMailMan::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ CGameObject::save(file, indent);
+}
+
+void CMailMan::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/mail_man.h b/engines/titanic/game/mail_man.h
new file mode 100644
index 0000000000..a75d75a865
--- /dev/null
+++ b/engines/titanic/game/mail_man.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MAIL_MAN_H
+#define TITANIC_MAIL_MAN_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CMailMan : public CGameObject {
+public:
+ int _value;
+public:
+ CLASSDEF
+ CMailMan() : CGameObject(), _value(1) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MAIL_MAN_H */
diff --git a/engines/titanic/game/maitred/maitred_arm_holder.cpp b/engines/titanic/game/maitred/maitred_arm_holder.cpp
new file mode 100644
index 0000000000..b6fc494441
--- /dev/null
+++ b/engines/titanic/game/maitred/maitred_arm_holder.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/maitred/maitred_arm_holder.h"
+
+namespace Titanic {
+
+void CMaitreDArmHolder::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CDropTarget::save(file, indent);
+}
+
+void CMaitreDArmHolder::load(SimpleFile *file) {
+ file->readNumber();
+ CDropTarget::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/maitred/maitred_arm_holder.h b/engines/titanic/game/maitred/maitred_arm_holder.h
new file mode 100644
index 0000000000..e329157837
--- /dev/null
+++ b/engines/titanic/game/maitred/maitred_arm_holder.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MAITRED_ARM_HOLDER_H
+#define TITANIC_MAITRED_ARM_HOLDER_H
+
+#include "titanic/core/drop_target.h"
+
+namespace Titanic {
+
+class CMaitreDArmHolder : public CDropTarget {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MAITRED_ARM_HOLDER_H */
diff --git a/engines/titanic/game/maitred/maitred_body.cpp b/engines/titanic/game/maitred/maitred_body.cpp
new file mode 100644
index 0000000000..4cdd5899de
--- /dev/null
+++ b/engines/titanic/game/maitred/maitred_body.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/maitred/maitred_legs.h"
+
+namespace Titanic {
+
+void CMaitreDLegs::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldC8, indent);
+ CMaitreDProdReceptor::save(file, indent);
+}
+
+void CMaitreDLegs::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldC8 = file->readNumber();
+ CMaitreDProdReceptor::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/maitred/maitred_body.h b/engines/titanic/game/maitred/maitred_body.h
new file mode 100644
index 0000000000..9dcc2af4ea
--- /dev/null
+++ b/engines/titanic/game/maitred/maitred_body.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MAITRED_BODY_H
+#define TITANIC_MAITRED_BODY_H
+
+#include "titanic/game/maitred/maitred_prod_receptor.h"
+
+namespace Titanic {
+
+class CMaitreDBody : public CMaitreDProdReceptor {
+private:
+ int _fieldC8;
+public:
+ CLASSDEF
+ CMaitreDBody() : CMaitreDProdReceptor(), _fieldC8(1) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MAITRED_BODY_H */
diff --git a/engines/titanic/game/maitred/maitred_legs.cpp b/engines/titanic/game/maitred/maitred_legs.cpp
new file mode 100644
index 0000000000..ce7054e057
--- /dev/null
+++ b/engines/titanic/game/maitred/maitred_legs.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/maitred/maitred_body.h"
+
+namespace Titanic {
+
+void CMaitreDBody::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldC8, indent);
+ CMaitreDProdReceptor::save(file, indent);
+}
+
+void CMaitreDBody::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldC8 = file->readNumber();
+ CMaitreDProdReceptor::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/maitred/maitred_legs.h b/engines/titanic/game/maitred/maitred_legs.h
new file mode 100644
index 0000000000..0dc1b34143
--- /dev/null
+++ b/engines/titanic/game/maitred/maitred_legs.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MAITRED_LEGS_H
+#define TITANIC_MAITRED_LEGS_H
+
+#include "titanic/game/maitred/maitred_prod_receptor.h"
+
+namespace Titanic {
+
+class CMaitreDLegs : public CMaitreDProdReceptor {
+private:
+ int _fieldC8;
+public:
+ CLASSDEF
+ CMaitreDLegs() : CMaitreDProdReceptor(), _fieldC8(1) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MAITRED_LEGS_H */
diff --git a/engines/titanic/game/maitred/maitred_prod_receptor.cpp b/engines/titanic/game/maitred/maitred_prod_receptor.cpp
new file mode 100644
index 0000000000..6e6143c510
--- /dev/null
+++ b/engines/titanic/game/maitred/maitred_prod_receptor.cpp
@@ -0,0 +1,45 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/maitred/maitred_prod_receptor.h"
+
+namespace Titanic {
+
+void CMaitreDProdReceptor::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeNumberLine(_fieldC0, indent);
+ file->writeNumberLine(_fieldC4, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CMaitreDProdReceptor::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _fieldC0 = file->readNumber();
+ _fieldC4 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/maitred/maitred_prod_receptor.h b/engines/titanic/game/maitred/maitred_prod_receptor.h
new file mode 100644
index 0000000000..b82c95b9b5
--- /dev/null
+++ b/engines/titanic/game/maitred/maitred_prod_receptor.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MAITRED_PROD_RECEPTOR_H
+#define TITANIC_MAITRED_PROD_RECEPTOR_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CMaitreDProdReceptor : public CGameObject {
+protected:
+ int _fieldBC;
+ int _fieldC0;
+ int _fieldC4;
+public:
+ CLASSDEF
+ CMaitreDProdReceptor() : CGameObject(),
+ _fieldBC(0), _fieldC0(0), _fieldC4(1) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MAITRED_PROD_RECEPTOR_H */
diff --git a/engines/titanic/game/missiveomat.cpp b/engines/titanic/game/missiveomat.cpp
new file mode 100644
index 0000000000..fbe430fb13
--- /dev/null
+++ b/engines/titanic/game/missiveomat.cpp
@@ -0,0 +1,55 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/missiveomat.h"
+
+namespace Titanic {
+
+CMissiveOMat::CMissiveOMat() : CGameObject(), _fieldBC(1),
+ _fieldC0(0), _fieldC4(0), _fieldE0(-1) {
+}
+
+void CMissiveOMat::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeNumberLine(_fieldC0, indent);
+ file->writeNumberLine(_fieldC4, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeQuotedLine(_string2, indent);
+ file->writeNumberLine(_fieldE0, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CMissiveOMat::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _fieldC0 = file->readNumber();
+ _fieldC4 = file->readNumber();
+ _string1 = file->readString();
+ _string2 = file->readString();
+ _fieldE0 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/missiveomat.h b/engines/titanic/game/missiveomat.h
new file mode 100644
index 0000000000..a58c928497
--- /dev/null
+++ b/engines/titanic/game/missiveomat.h
@@ -0,0 +1,55 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MISSIVEOMAT_H
+#define TITANIC_MISSIVEOMAT_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CMissiveOMat : public CGameObject {
+public:
+ int _fieldBC;
+ int _fieldC0;
+ int _fieldC4;
+ CString _string1;
+ CString _string2;
+ int _fieldE0;
+public:
+ CLASSDEF
+ CMissiveOMat();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MISSIVEOMAT_H */
diff --git a/engines/titanic/game/missiveomat_button.cpp b/engines/titanic/game/missiveomat_button.cpp
new file mode 100644
index 0000000000..8f0918a294
--- /dev/null
+++ b/engines/titanic/game/missiveomat_button.cpp
@@ -0,0 +1,41 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/missiveomat_button.h"
+
+namespace Titanic {
+
+void CMissiveOMatButton::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldFC, indent);
+
+ CEditControl::save(file, indent);
+}
+
+void CMissiveOMatButton::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldFC = file->readNumber();
+
+ CEditControl::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/missiveomat_button.h b/engines/titanic/game/missiveomat_button.h
new file mode 100644
index 0000000000..603d2f5955
--- /dev/null
+++ b/engines/titanic/game/missiveomat_button.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MISSIVEOMAT_BUTTON_H
+#define TITANIC_MISSIVEOMAT_BUTTON_H
+
+#include "titanic/gfx/edit_control.h"
+
+namespace Titanic {
+
+class CMissiveOMatButton : public CEditControl {
+public:
+ int _fieldFC;
+public:
+ CLASSDEF
+ CMissiveOMatButton() : CEditControl(), _fieldFC(2) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MISSIVEOMAT_BUTTON_H */
diff --git a/engines/titanic/game/movie_tester.cpp b/engines/titanic/game/movie_tester.cpp
new file mode 100644
index 0000000000..0a4f4a9a9c
--- /dev/null
+++ b/engines/titanic/game/movie_tester.cpp
@@ -0,0 +1,41 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/movie_tester.h"
+
+namespace Titanic {
+
+void CMovieTester::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value1, indent);
+ file->writeNumberLine(_value2, indent);
+ CGameObject::save(file, indent);
+}
+
+void CMovieTester::load(SimpleFile *file) {
+ file->readNumber();
+ _value1 = file->readNumber();
+ _value2 = file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/movie_tester.h b/engines/titanic/game/movie_tester.h
new file mode 100644
index 0000000000..2fffd5d2c0
--- /dev/null
+++ b/engines/titanic/game/movie_tester.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MOVIE_TESTER_H
+#define TITANIC_MOVIE_TESTER_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CMovieTester : public CGameObject {
+public:
+ int _value1, _value2;
+public:
+ CLASSDEF
+ CMovieTester() : CGameObject(), _value1(0), _value2(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MOVIE_TESTER_H */
diff --git a/engines/titanic/game/music_console_button.cpp b/engines/titanic/game/music_console_button.cpp
new file mode 100644
index 0000000000..d92dd4d3bb
--- /dev/null
+++ b/engines/titanic/game/music_console_button.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/music_console_button.h"
+
+namespace Titanic {
+
+void CMusicConsoleButton::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CMusicPlayer::save(file, indent);
+}
+
+void CMusicConsoleButton::load(SimpleFile *file) {
+ file->readNumber();
+ CMusicPlayer::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/music_console_button.h b/engines/titanic/game/music_console_button.h
new file mode 100644
index 0000000000..f6c33a91c5
--- /dev/null
+++ b/engines/titanic/game/music_console_button.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MUSIC_CONSOLE_BUTTON_H
+#define TITANIC_MUSIC_CONSOLE_BUTTON_H
+
+#include "titanic/sound/music_player.h"
+
+namespace Titanic {
+
+class CMusicConsoleButton : public CMusicPlayer {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MUSIC_CONSOLE_BUTTON_H */
diff --git a/engines/titanic/game/music_room_phonograph.cpp b/engines/titanic/game/music_room_phonograph.cpp
new file mode 100644
index 0000000000..7fa30f5dcf
--- /dev/null
+++ b/engines/titanic/game/music_room_phonograph.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/music_room_phonograph.h"
+
+namespace Titanic {
+
+void CMusicRoomPhonograph::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_field118, indent);
+ CRestaurantPhonograph::save(file, indent);
+}
+
+void CMusicRoomPhonograph::load(SimpleFile *file) {
+ file->readNumber();
+ _field118 = file->readNumber();
+ CRestaurantPhonograph::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/music_room_phonograph.h b/engines/titanic/game/music_room_phonograph.h
new file mode 100644
index 0000000000..6660503616
--- /dev/null
+++ b/engines/titanic/game/music_room_phonograph.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MUSIC_ROOM_PHONOGRAPH_H
+#define TITANIC_MUSIC_ROOM_PHONOGRAPH_H
+
+#include "titanic/game/restaurant_phonograph.h"
+
+namespace Titanic {
+
+class CMusicRoomPhonograph : public CRestaurantPhonograph {
+private:
+ int _field118;
+public:
+ CLASSDEF
+ CMusicRoomPhonograph() : CRestaurantPhonograph(), _field118(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MUSIC_ROOM_PHONOGRAPH_H */
diff --git a/engines/titanic/game/music_room_stop_phonograph_button.cpp b/engines/titanic/game/music_room_stop_phonograph_button.cpp
new file mode 100644
index 0000000000..7e00bade35
--- /dev/null
+++ b/engines/titanic/game/music_room_stop_phonograph_button.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/music_room_stop_phonograph_button.h"
+
+namespace Titanic {
+
+void CMusicRoomStopPhonographButton::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_field100, indent);
+ CEjectPhonographButton::save(file, indent);
+}
+
+void CMusicRoomStopPhonographButton::load(SimpleFile *file) {
+ file->readNumber();
+ _field100 = file->readNumber();
+ CEjectPhonographButton::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/music_room_stop_phonograph_button.h b/engines/titanic/game/music_room_stop_phonograph_button.h
new file mode 100644
index 0000000000..c37065fde4
--- /dev/null
+++ b/engines/titanic/game/music_room_stop_phonograph_button.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MUSIC_ROOM_STOP_PHONOGRAPH_BUTTON_H
+#define TITANIC_MUSIC_ROOM_STOP_PHONOGRAPH_BUTTON_H
+
+#include "titanic/game/eject_phonograph_button.h"
+
+namespace Titanic {
+
+class CMusicRoomStopPhonographButton : public CEjectPhonographButton {
+private:
+ int _field100;
+public:
+ CLASSDEF
+ CMusicRoomStopPhonographButton() : CEjectPhonographButton(), _field100(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MUSIC_ROOM_STOP_PHONOGRAPH_BUTTON_H */
diff --git a/engines/titanic/game/music_system_lock.cpp b/engines/titanic/game/music_system_lock.cpp
new file mode 100644
index 0000000000..6bd83f6811
--- /dev/null
+++ b/engines/titanic/game/music_system_lock.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/music_system_lock.h"
+
+namespace Titanic {
+
+void CMusicSystemLock::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ CDropTarget::save(file, indent);
+}
+
+void CMusicSystemLock::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ CDropTarget::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/music_system_lock.h b/engines/titanic/game/music_system_lock.h
new file mode 100644
index 0000000000..b5f4da55d6
--- /dev/null
+++ b/engines/titanic/game/music_system_lock.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MUSIC_SYSTEM_LOCK_H
+#define TITANIC_MUSIC_SYSTEM_LOCK_H
+
+#include "titanic/core/drop_target.h"
+
+namespace Titanic {
+
+class CMusicSystemLock : public CDropTarget {
+private:
+ int _value;
+public:
+ CLASSDEF
+ CMusicSystemLock() : CDropTarget(), _value(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MUSIC_SYSTEM_LOCK_H */
diff --git a/engines/titanic/game/musical_instrument.cpp b/engines/titanic/game/musical_instrument.cpp
new file mode 100644
index 0000000000..6695104aba
--- /dev/null
+++ b/engines/titanic/game/musical_instrument.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/musical_instrument.h"
+
+namespace Titanic {
+
+void CMusicalInstrument::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CBackground::save(file, indent);
+}
+
+void CMusicalInstrument::load(SimpleFile *file) {
+ file->readNumber();
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/musical_instrument.h b/engines/titanic/game/musical_instrument.h
new file mode 100644
index 0000000000..b4abe4fdb2
--- /dev/null
+++ b/engines/titanic/game/musical_instrument.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MUSICAL_INSTRUMENT_H
+#define TITANIC_MUSICAL_INSTRUMENT_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CMusicalInstrument : public CBackground {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MUSICAL_INSTRUMENT_H */
diff --git a/engines/titanic/game/nav_helmet.cpp b/engines/titanic/game/nav_helmet.cpp
new file mode 100644
index 0000000000..c1dbb115f5
--- /dev/null
+++ b/engines/titanic/game/nav_helmet.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/nav_helmet.h"
+
+namespace Titanic {
+
+void CNavHelmet::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ CGameObject::save(file, indent);
+}
+
+void CNavHelmet::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/nav_helmet.h b/engines/titanic/game/nav_helmet.h
new file mode 100644
index 0000000000..ff39280e5b
--- /dev/null
+++ b/engines/titanic/game/nav_helmet.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_NAV_HELMET_H
+#define TITANIC_NAV_HELMET_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CNavHelmet : public CGameObject {
+private:
+ int _value;
+public:
+ CLASSDEF
+ CNavHelmet() : CGameObject(), _value(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_NAV_HELMET_H */
diff --git a/engines/titanic/game/navigation_computer.cpp b/engines/titanic/game/navigation_computer.cpp
new file mode 100644
index 0000000000..be2f189083
--- /dev/null
+++ b/engines/titanic/game/navigation_computer.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/navigation_computer.h"
+
+namespace Titanic {
+
+void CNavigationComputer::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CNavigationComputer::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/navigation_computer.h b/engines/titanic/game/navigation_computer.h
new file mode 100644
index 0000000000..a7077f7dcd
--- /dev/null
+++ b/engines/titanic/game/navigation_computer.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_NAVIGATION_COMPUTER_H
+#define TITANIC_NAVIGATION_COMPUTER_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CNavigationComputer : public CGameObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_NAVIGATION_COMPUTER_H */
diff --git a/engines/titanic/game/no_nut_bowl.cpp b/engines/titanic/game/no_nut_bowl.cpp
new file mode 100644
index 0000000000..354dea3cd8
--- /dev/null
+++ b/engines/titanic/game/no_nut_bowl.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/no_nut_bowl.h"
+
+namespace Titanic {
+
+void CNoNutBowl::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CBackground::save(file, indent);
+}
+
+void CNoNutBowl::load(SimpleFile *file) {
+ file->readNumber();
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/no_nut_bowl.h b/engines/titanic/game/no_nut_bowl.h
new file mode 100644
index 0000000000..7557491b68
--- /dev/null
+++ b/engines/titanic/game/no_nut_bowl.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_NO_NUT_BOWL_H
+#define TITANIC_NO_NUT_BOWL_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CNoNutBowl : public CBackground {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_NO_NUT_BOWL_H */
diff --git a/engines/titanic/game/nose_holder.cpp b/engines/titanic/game/nose_holder.cpp
new file mode 100644
index 0000000000..ba512d015a
--- /dev/null
+++ b/engines/titanic/game/nose_holder.cpp
@@ -0,0 +1,44 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/nose_holder.h"
+
+namespace Titanic {
+
+CNoseHolder::CNoseHolder() : CDropTarget(), _field118(0), _field11C(0) {
+}
+
+void CNoseHolder::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_field11C, indent);
+
+ CDropTarget::save(file, indent);
+}
+
+void CNoseHolder::load(SimpleFile *file) {
+ file->readNumber();
+ _field11C = file->readNumber();
+
+ CDropTarget::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/nose_holder.h b/engines/titanic/game/nose_holder.h
new file mode 100644
index 0000000000..e26c70fa1d
--- /dev/null
+++ b/engines/titanic/game/nose_holder.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_NOSE_HOLDER_H
+#define TITANIC_NOSE_HOLDER_H
+
+#include "titanic/core/drop_target.h"
+
+namespace Titanic {
+
+class CNoseHolder : public CDropTarget {
+private:
+ int _field118;
+ int _field11C;
+public:
+ CLASSDEF
+ CNoseHolder();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_NOSE_HOLDER_H */
diff --git a/engines/titanic/game/null_port_hole.cpp b/engines/titanic/game/null_port_hole.cpp
new file mode 100644
index 0000000000..c437dfea10
--- /dev/null
+++ b/engines/titanic/game/null_port_hole.cpp
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/null_port_hole.h"
+
+namespace Titanic {
+
+CNullPortHole::CNullPortHole() : CClickResponder() {
+ _string1 = "For a better view, why not visit the Promenade Deck?";
+ _string2 = "b#48.wav";
+}
+
+void CNullPortHole::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string2, indent);
+ file->writeQuotedLine(_string1, indent);
+
+ CClickResponder::save(file, indent);
+}
+
+void CNullPortHole::load(SimpleFile *file) {
+ file->readNumber();
+ _string2 = file->readString();
+ _string1 = file->readString();
+
+ CClickResponder::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/null_port_hole.h b/engines/titanic/game/null_port_hole.h
new file mode 100644
index 0000000000..fb07462ea8
--- /dev/null
+++ b/engines/titanic/game/null_port_hole.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_NULL_PORT_HOLE_H
+#define TITANIC_NULL_PORT_HOLE_H
+
+#include "titanic/core/click_responder.h"
+
+namespace Titanic {
+
+class CNullPortHole : public CClickResponder {
+public:
+ CLASSDEF
+ CNullPortHole();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_NULL_PORT_HOLE_H */
diff --git a/engines/titanic/game/nut_replacer.cpp b/engines/titanic/game/nut_replacer.cpp
new file mode 100644
index 0000000000..36c0510b20
--- /dev/null
+++ b/engines/titanic/game/nut_replacer.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/nut_replacer.h"
+
+namespace Titanic {
+
+void CNutReplacer::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CNutReplacer::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/nut_replacer.h b/engines/titanic/game/nut_replacer.h
new file mode 100644
index 0000000000..0917b40bd2
--- /dev/null
+++ b/engines/titanic/game/nut_replacer.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_NUT_REPLACER_H
+#define TITANIC_NUT_REPLACER_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CNutReplacer : public CGameObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_NUT_REPLACER_H */
diff --git a/engines/titanic/game/parrot/parrot_lobby_controller.cpp b/engines/titanic/game/parrot/parrot_lobby_controller.cpp
new file mode 100644
index 0000000000..2376cea25c
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_lobby_controller.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/parrot/parrot_lobby_controller.h"
+
+namespace Titanic {
+
+void CParrotLobbyController::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CParrotLobbyObject::save(file, indent);
+}
+
+void CParrotLobbyController::load(SimpleFile *file) {
+ file->readNumber();
+ CParrotLobbyObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/parrot/parrot_lobby_controller.h b/engines/titanic/game/parrot/parrot_lobby_controller.h
new file mode 100644
index 0000000000..6515a23944
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_lobby_controller.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PARROT_LOBBY_CONTROLLER_H
+#define TITANIC_PARROT_LOBBY_CONTROLLER_H
+
+#include "titanic/game/parrot/parrot_lobby_object.h"
+
+namespace Titanic {
+
+class CParrotLobbyController : public CParrotLobbyObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PARROT_LOBBY_CONTROLLER_H */
diff --git a/engines/titanic/game/parrot/parrot_lobby_link_updater.cpp b/engines/titanic/game/parrot/parrot_lobby_link_updater.cpp
new file mode 100644
index 0000000000..e62e9dde48
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_lobby_link_updater.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/parrot/parrot_lobby_link_updater.h"
+
+namespace Titanic {
+
+void CParrotLobbyLinkUpdater::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CParrotLobbyObject::save(file, indent);
+}
+
+void CParrotLobbyLinkUpdater::load(SimpleFile *file) {
+ file->readNumber();
+ CParrotLobbyObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/parrot/parrot_lobby_link_updater.h b/engines/titanic/game/parrot/parrot_lobby_link_updater.h
new file mode 100644
index 0000000000..2f3ce7bac4
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_lobby_link_updater.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PARROT_LOBBY_LINK_UPDATER_H
+#define TITANIC_PARROT_LOBBY_LINK_UPDATER_H
+
+#include "titanic/game/parrot/parrot_lobby_object.h"
+
+namespace Titanic {
+
+class CParrotLobbyLinkUpdater : public CParrotLobbyObject {
+public:
+ int _fieldBC;
+public:
+ CLASSDEF
+ CParrotLobbyLinkUpdater() : CParrotLobbyObject(), _fieldBC(1) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PARROT_LOBBY_LINK_UPDATER_H */
diff --git a/engines/titanic/game/parrot/parrot_lobby_object.cpp b/engines/titanic/game/parrot/parrot_lobby_object.cpp
new file mode 100644
index 0000000000..137f3e2ff9
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_lobby_object.cpp
@@ -0,0 +1,59 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/parrot/parrot_lobby_object.h"
+
+namespace Titanic {
+
+int CParrotLobbyObject::_v1;
+int CParrotLobbyObject::_v2;
+int CParrotLobbyObject::_v3;
+int CParrotLobbyObject::_v4;
+
+void CParrotLobbyObject::init() {
+ _v1 = 1;
+ _v2 = 1;
+ _v3 = 1;
+ _v4 = 7;
+}
+
+void CParrotLobbyObject::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_v1, indent);
+ file->writeNumberLine(_v2, indent);
+ file->writeNumberLine(_v3, indent);
+ file->writeNumberLine(_v4, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CParrotLobbyObject::load(SimpleFile *file) {
+ file->readNumber();
+ _v1 = file->readNumber();
+ _v2 = file->readNumber();
+ _v3 = file->readNumber();
+ _v4 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/parrot/parrot_lobby_object.h b/engines/titanic/game/parrot/parrot_lobby_object.h
new file mode 100644
index 0000000000..9cc979cd26
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_lobby_object.h
@@ -0,0 +1,54 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PARROT_LOBBY_OBJECT_H
+#define TITANIC_PARROT_LOBBY_OBJECT_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CParrotLobbyObject : public CGameObject {
+public:
+ static int _v1;
+ static int _v2;
+ static int _v3;
+ static int _v4;
+
+ static void init();
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PARROT_LOBBY_OBJECT_H */
diff --git a/engines/titanic/game/parrot/parrot_lobby_view_object.cpp b/engines/titanic/game/parrot/parrot_lobby_view_object.cpp
new file mode 100644
index 0000000000..740eac83de
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_lobby_view_object.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/parrot/parrot_lobby_view_object.h"
+
+namespace Titanic {
+
+void CParrotLobbyViewObject::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ CParrotLobbyObject::save(file, indent);
+}
+
+void CParrotLobbyViewObject::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ CParrotLobbyObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/parrot/parrot_lobby_view_object.h b/engines/titanic/game/parrot/parrot_lobby_view_object.h
new file mode 100644
index 0000000000..1e3e398c2c
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_lobby_view_object.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PARROT_LOBBY_VIEW_OBJECT_H
+#define TITANIC_PARROT_LOBBY_VIEW_OBJECT_H
+
+#include "titanic/game/parrot/parrot_lobby_object.h"
+
+namespace Titanic {
+
+class CParrotLobbyViewObject : public CParrotLobbyObject {
+public:
+ int _fieldBC;
+public:
+ CLASSDEF
+ CParrotLobbyViewObject() : CParrotLobbyObject(), _fieldBC(1) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PARROT_LOBBY_VIEW_OBJECT_H */
diff --git a/engines/titanic/game/parrot/parrot_loser.cpp b/engines/titanic/game/parrot/parrot_loser.cpp
new file mode 100644
index 0000000000..e82506e137
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_loser.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/parrot/parrot_loser.h"
+
+namespace Titanic {
+
+void CParrotLoser::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CParrotLoser::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/parrot/parrot_loser.h b/engines/titanic/game/parrot/parrot_loser.h
new file mode 100644
index 0000000000..806195db19
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_loser.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PARROT_LOSER_H
+#define TITANIC_PARROT_LOSER_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CParrotLoser : public CGameObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PARROT_LOSER_H */
diff --git a/engines/titanic/game/parrot/parrot_nut_bowl_actor.cpp b/engines/titanic/game/parrot/parrot_nut_bowl_actor.cpp
new file mode 100644
index 0000000000..0917319da0
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_nut_bowl_actor.cpp
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/parrot/parrot_nut_bowl_actor.h"
+
+namespace Titanic {
+
+CParrotNutBowlActor::CParrotNutBowlActor() : CGameObject(),
+ _value1(0), _value2(0) {
+}
+
+void CParrotNutBowlActor::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value1, indent);
+ file->writeNumberLine(_value2, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CParrotNutBowlActor::load(SimpleFile *file) {
+ file->readNumber();
+ _value1 = file->readNumber();
+ _value2 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/parrot/parrot_nut_bowl_actor.h b/engines/titanic/game/parrot/parrot_nut_bowl_actor.h
new file mode 100644
index 0000000000..d1ccca6a71
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_nut_bowl_actor.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PARROT_NUT_BOWL_ACTOR_H
+#define TITANIC_PARROT_NUT_BOWL_ACTOR_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CParrotNutBowlActor : public CGameObject {
+public:
+ int _value1, _value2;
+public:
+ CLASSDEF
+ CParrotNutBowlActor();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PARROT_NUT_BOWL_ACTOR_H */
diff --git a/engines/titanic/game/parrot/parrot_nut_eater.cpp b/engines/titanic/game/parrot/parrot_nut_eater.cpp
new file mode 100644
index 0000000000..9d58632c89
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_nut_eater.cpp
@@ -0,0 +1,45 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/parrot/parrot_nut_eater.h"
+
+namespace Titanic {
+
+CParrotNutEater::CParrotNutEater() : CGameObject(), _fieldBC(0),
+ _fieldC0(69), _fieldC4(132), _fieldC8(0), _fieldCC(68) {
+}
+
+void CParrotNutEater::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CParrotNutEater::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/parrot/parrot_nut_eater.h b/engines/titanic/game/parrot/parrot_nut_eater.h
new file mode 100644
index 0000000000..6a7afd94cf
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_nut_eater.h
@@ -0,0 +1,54 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PARROT_NUT_EATER_H
+#define TITANIC_PARROT_NUT_EATER_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CParrotNutEater : public CGameObject {
+public:
+ int _fieldBC;
+ int _fieldC0;
+ int _fieldC4;
+ int _fieldC8;
+ int _fieldCC;
+public:
+ CLASSDEF
+ CParrotNutEater();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CREDITS_H */
diff --git a/engines/titanic/game/parrot/parrot_perch_holder.cpp b/engines/titanic/game/parrot/parrot_perch_holder.cpp
new file mode 100644
index 0000000000..00dfe4a1c9
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_perch_holder.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/parrot/parrot_perch_holder.h"
+
+namespace Titanic {
+
+void CParrotPerchHolder::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CMultiDropTarget::save(file, indent);
+}
+
+void CParrotPerchHolder::load(SimpleFile *file) {
+ file->readNumber();
+ CMultiDropTarget::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/parrot/parrot_perch_holder.h b/engines/titanic/game/parrot/parrot_perch_holder.h
new file mode 100644
index 0000000000..f355263846
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_perch_holder.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PARROT_PERCH_HOLDER_H
+#define TITANIC_PARROT_PERCH_HOLDER_H
+
+#include "titanic/core/multi_drop_target.h"
+
+namespace Titanic {
+
+class CParrotPerchHolder : public CMultiDropTarget {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PARROT_PERCH_HOLDER_H */
diff --git a/engines/titanic/game/parrot/parrot_succubus.cpp b/engines/titanic/game/parrot/parrot_succubus.cpp
new file mode 100644
index 0000000000..e29c6a6781
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_succubus.cpp
@@ -0,0 +1,49 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/parrot/parrot_succubus.h"
+
+namespace Titanic {
+
+CParrotSuccUBus::CParrotSuccUBus() : CSuccUBus(), _field1DC(0),
+ _field1EC(0), _field1F0(376), _field1F4(393) {
+}
+
+void CParrotSuccUBus::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_field1DC, indent);
+ file->writeQuotedLine(_string3, indent);
+ file->writeNumberLine(_field1EC, indent);
+
+ CSuccUBus::save(file, indent);
+}
+
+void CParrotSuccUBus::load(SimpleFile *file) {
+ file->readNumber();
+ _field1DC = file->readNumber();
+ _string3 = file->readString();
+ _field1EC = file->readNumber();
+
+ CSuccUBus::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/parrot/parrot_succubus.h b/engines/titanic/game/parrot/parrot_succubus.h
new file mode 100644
index 0000000000..e60d35cd6c
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_succubus.h
@@ -0,0 +1,54 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PARROT_SUCCUBUS_H
+#define TITANIC_PARROT_SUCCUBUS_H
+
+#include "titanic/npcs/succubus.h"
+
+namespace Titanic {
+
+class CParrotSuccUBus : public CSuccUBus {
+public:
+ int _field1DC;
+ CString _string3;
+ int _field1EC;
+ int _field1F0;
+ int _field1F4;
+public:
+ CLASSDEF
+ CParrotSuccUBus();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PARROT_SUCCUBUS_H */
diff --git a/engines/titanic/game/parrot/parrot_trigger.cpp b/engines/titanic/game/parrot/parrot_trigger.cpp
new file mode 100644
index 0000000000..aeab3c1ea7
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_trigger.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/parrot/parrot_trigger.h"
+
+namespace Titanic {
+
+void CParrotTrigger::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ CGameObject::save(file, indent);
+}
+
+void CParrotTrigger::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/parrot/parrot_trigger.h b/engines/titanic/game/parrot/parrot_trigger.h
new file mode 100644
index 0000000000..33aea157ad
--- /dev/null
+++ b/engines/titanic/game/parrot/parrot_trigger.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PARROT_TRIGGER_H
+#define TITANIC_PARROT_TRIGGER_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CParrotTrigger : public CGameObject {
+public:
+ int _value;
+public:
+ CLASSDEF
+ CParrotTrigger() : CGameObject(), _value(0x446AB) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PARROT_TRIGGER_H */
diff --git a/engines/titanic/game/parrot/player_meets_parrot.cpp b/engines/titanic/game/parrot/player_meets_parrot.cpp
new file mode 100644
index 0000000000..adb2dc5d36
--- /dev/null
+++ b/engines/titanic/game/parrot/player_meets_parrot.cpp
@@ -0,0 +1,42 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/parrot/player_meets_parrot.h"
+
+namespace Titanic {
+
+void CPlayerMeetsParrot::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CPlayerMeetsParrot::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+bool CPlayerMeetsParrot::handleEvent(CEnterRoomMsg &msg) {
+ warning("CPlayerMeetsParrot::handleEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/parrot/player_meets_parrot.h b/engines/titanic/game/parrot/player_meets_parrot.h
new file mode 100644
index 0000000000..9b8138f124
--- /dev/null
+++ b/engines/titanic/game/parrot/player_meets_parrot.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PLAYER_MEETS_PARROT_H
+#define TITANIC_PLAYER_MEETS_PARROT_H
+
+#include "titanic/core/game_object.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CPlayerMeetsParrot : public CGameObject, CEnterRoomMsgTarget {
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PLAYER_MEETS_PARROT_H */
diff --git a/engines/titanic/game/pet/pet.cpp b/engines/titanic/game/pet/pet.cpp
new file mode 100644
index 0000000000..3e65755989
--- /dev/null
+++ b/engines/titanic/game/pet/pet.cpp
@@ -0,0 +1,57 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/pet/pet.h"
+
+namespace Titanic {
+
+CPET::CPET() : CGameObject(), _fieldBC(0), _fieldC0(3),
+ _fieldC4(0), _fieldC8(0), _fieldD8(0), _fieldDC(0) {
+}
+
+void CPET::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeNumberLine(_fieldC0, indent);
+ file->writeNumberLine(_fieldC4, indent);
+ file->writeNumberLine(_fieldC8, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeNumberLine(_fieldD8, indent);
+ file->writeNumberLine(_fieldDC, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CPET::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _fieldC0 = file->readNumber();
+ _fieldC4 = file->readNumber();
+ _fieldC8 = file->readNumber();
+ _string1 = file->readString();
+ _fieldD8 = file->readNumber();
+ _fieldDC = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/pet/pet.h b/engines/titanic/game/pet/pet.h
new file mode 100644
index 0000000000..58e3577235
--- /dev/null
+++ b/engines/titanic/game/pet/pet.h
@@ -0,0 +1,56 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_H
+#define TITANIC_PET_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CPET : public CGameObject {
+public:
+ int _fieldBC;
+ int _fieldC0;
+ int _fieldC4;
+ int _fieldC8;
+ CString _string1;
+ int _fieldD8;
+ int _fieldDC;
+public:
+ CLASSDEF
+ CPET();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_H */
diff --git a/engines/titanic/game/pet/pet_class1.cpp b/engines/titanic/game/pet/pet_class1.cpp
new file mode 100644
index 0000000000..4bd25560fb
--- /dev/null
+++ b/engines/titanic/game/pet/pet_class1.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/pet/pet_class1.h"
+
+namespace Titanic {
+
+void CPETClass1::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CPETClass1::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/pet/pet_class1.h b/engines/titanic/game/pet/pet_class1.h
new file mode 100644
index 0000000000..12dfb322b2
--- /dev/null
+++ b/engines/titanic/game/pet/pet_class1.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_CLASS1_H
+#define TITANIC_PET_CLASS1_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CPETClass1 : public CGameObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_CLASS1_H */
diff --git a/engines/titanic/game/pet/pet_class2.cpp b/engines/titanic/game/pet/pet_class2.cpp
new file mode 100644
index 0000000000..8399468489
--- /dev/null
+++ b/engines/titanic/game/pet/pet_class2.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/pet/pet_class2.h"
+
+namespace Titanic {
+
+void CPETClass2::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CPETClass2::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/pet/pet_class2.h b/engines/titanic/game/pet/pet_class2.h
new file mode 100644
index 0000000000..5b96118c7c
--- /dev/null
+++ b/engines/titanic/game/pet/pet_class2.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_CLASS2_H
+#define TITANIC_PET_CLASS2_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CPETClass2 : public CGameObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_CLASS2_H */
diff --git a/engines/titanic/game/pet/pet_class3.cpp b/engines/titanic/game/pet/pet_class3.cpp
new file mode 100644
index 0000000000..96ce66461f
--- /dev/null
+++ b/engines/titanic/game/pet/pet_class3.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/pet/pet_class3.h"
+
+namespace Titanic {
+
+void CPETClass3::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CPETClass3::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/pet/pet_class3.h b/engines/titanic/game/pet/pet_class3.h
new file mode 100644
index 0000000000..d68cb098ec
--- /dev/null
+++ b/engines/titanic/game/pet/pet_class3.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_CLASS3_H
+#define TITANIC_PET_CLASS3_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CPETClass3 : public CGameObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_CLASS3_H */
diff --git a/engines/titanic/game/pet/pet_lift.cpp b/engines/titanic/game/pet/pet_lift.cpp
new file mode 100644
index 0000000000..8a16c678d5
--- /dev/null
+++ b/engines/titanic/game/pet/pet_lift.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/pet/pet_lift.h"
+
+namespace Titanic {
+
+void CPETLift::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CPETTransport::save(file, indent);
+}
+
+void CPETLift::load(SimpleFile *file) {
+ file->readNumber();
+ CPETTransport::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/pet/pet_lift.h b/engines/titanic/game/pet/pet_lift.h
new file mode 100644
index 0000000000..1c56b0515a
--- /dev/null
+++ b/engines/titanic/game/pet/pet_lift.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_LIFT_H
+#define TITANIC_PET_LIFT_H
+
+#include "titanic/game/pet/pet_transport.h"
+
+namespace Titanic {
+
+class CPETLift : public CPETTransport {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_LIFT_H */
diff --git a/engines/titanic/game/pet/pet_monitor.cpp b/engines/titanic/game/pet/pet_monitor.cpp
new file mode 100644
index 0000000000..44d24f264e
--- /dev/null
+++ b/engines/titanic/game/pet/pet_monitor.cpp
@@ -0,0 +1,42 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/pet/pet_monitor.h"
+
+namespace Titanic {
+
+void CPETMonitor::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CPETMonitor::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+bool CPETMonitor::handleEvent(CEnterRoomMsg &msg) {
+ warning("CPETMonitor::handleEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/pet/pet_monitor.h b/engines/titanic/game/pet/pet_monitor.h
new file mode 100644
index 0000000000..1d66a58d29
--- /dev/null
+++ b/engines/titanic/game/pet/pet_monitor.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_MONITOR_H
+#define TITANIC_PET_MONITOR_H
+
+#include "titanic/core/game_object.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CPETMonitor : public CGameObject, CEnterRoomMsgTarget {
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_MONITOR_H */
diff --git a/engines/titanic/game/pet/pet_pellerator.cpp b/engines/titanic/game/pet/pet_pellerator.cpp
new file mode 100644
index 0000000000..bcddc75919
--- /dev/null
+++ b/engines/titanic/game/pet/pet_pellerator.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/pet/pet_pellerator.h"
+
+namespace Titanic {
+
+void CPETPellerator::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CPETTransport::save(file, indent);
+}
+
+void CPETPellerator::load(SimpleFile *file) {
+ file->readNumber();
+ CPETTransport::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/pet/pet_pellerator.h b/engines/titanic/game/pet/pet_pellerator.h
new file mode 100644
index 0000000000..1036c93c66
--- /dev/null
+++ b/engines/titanic/game/pet/pet_pellerator.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_PELLERATOR_H
+#define TITANIC_PET_PELLERATOR_H
+
+#include "titanic/game/pet/pet_transport.h"
+
+namespace Titanic {
+
+class CPETPellerator : public CPETTransport {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_PELLERATOR_H */
diff --git a/engines/titanic/game/pet/pet_position.cpp b/engines/titanic/game/pet/pet_position.cpp
new file mode 100644
index 0000000000..b25111f62c
--- /dev/null
+++ b/engines/titanic/game/pet/pet_position.cpp
@@ -0,0 +1,42 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/pet/pet_position.h"
+
+namespace Titanic {
+
+void CPETPosition::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CPETPosition::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+bool CPETPosition::handleEvent(CEnterRoomMsg &msg) {
+ warning("CPETPosition::handleEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/pet/pet_position.h b/engines/titanic/game/pet/pet_position.h
new file mode 100644
index 0000000000..8a0623932b
--- /dev/null
+++ b/engines/titanic/game/pet/pet_position.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_POSITION_H
+#define TITANIC_PET_POSITION_H
+
+#include "titanic/core/game_object.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CPETPosition : public CGameObject, CEnterRoomMsgTarget {
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_POSITION_H */
diff --git a/engines/titanic/game/pet/pet_sentinal.cpp b/engines/titanic/game/pet/pet_sentinal.cpp
new file mode 100644
index 0000000000..4ced872b00
--- /dev/null
+++ b/engines/titanic/game/pet/pet_sentinal.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/pet/pet_sentinal.h"
+
+namespace Titanic {
+
+void CPETSentinal::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CPETSentinal::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/pet/pet_sentinal.h b/engines/titanic/game/pet/pet_sentinal.h
new file mode 100644
index 0000000000..728ddbfe57
--- /dev/null
+++ b/engines/titanic/game/pet/pet_sentinal.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_SENTINAL_H
+#define TITANIC_PET_SENTINAL_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CPETSentinal : public CGameObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_SENTINAL_H */
diff --git a/engines/titanic/game/pet/pet_sounds.cpp b/engines/titanic/game/pet/pet_sounds.cpp
new file mode 100644
index 0000000000..abf6ba3264
--- /dev/null
+++ b/engines/titanic/game/pet/pet_sounds.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/pet/pet_sounds.h"
+
+namespace Titanic {
+
+void CPETSounds::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ CGameObject::save(file, indent);
+}
+
+void CPETSounds::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/pet/pet_sounds.h b/engines/titanic/game/pet/pet_sounds.h
new file mode 100644
index 0000000000..f099d9efb5
--- /dev/null
+++ b/engines/titanic/game/pet/pet_sounds.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_SOUNDS_H
+#define TITANIC_PET_SOUNDS_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CPETSounds : public CGameObject {
+public:
+ int _value;
+public:
+ CLASSDEF
+ CPETSounds() : CGameObject(), _value(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_SOUNDS_H */
diff --git a/engines/titanic/game/pet/pet_transition.cpp b/engines/titanic/game/pet/pet_transition.cpp
new file mode 100644
index 0000000000..fed2d2c63a
--- /dev/null
+++ b/engines/titanic/game/pet/pet_transition.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/pet/pet_transition.h"
+
+namespace Titanic {
+
+void CPETTransition::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CPETTransition::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/pet/pet_transition.h b/engines/titanic/game/pet/pet_transition.h
new file mode 100644
index 0000000000..c8dc153d53
--- /dev/null
+++ b/engines/titanic/game/pet/pet_transition.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_TRANSITION_H
+#define TITANIC_PET_TRANSITION_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CPETTransition : public CGameObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_TRANSITION_H */
diff --git a/engines/titanic/game/pet/pet_transport.cpp b/engines/titanic/game/pet/pet_transport.cpp
new file mode 100644
index 0000000000..a88b703b10
--- /dev/null
+++ b/engines/titanic/game/pet/pet_transport.cpp
@@ -0,0 +1,42 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/pet/pet_transport.h"
+
+namespace Titanic {
+
+void CPETTransport::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CPETTransport::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+bool CPETTransport::handleEvent(CEnterRoomMsg &msg) {
+ warning("CPETTransport::handleEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/pet/pet_transport.h b/engines/titanic/game/pet/pet_transport.h
new file mode 100644
index 0000000000..3dc856d5b2
--- /dev/null
+++ b/engines/titanic/game/pet/pet_transport.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_TRANSPORT_H
+#define TITANIC_PET_TRANSPORT_H
+
+#include "titanic/core/game_object.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CPETTransport : public CGameObject, CEnterRoomMsgTarget {
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_TRANSPORT_H */
diff --git a/engines/titanic/game/pet/pet_val_base.cpp b/engines/titanic/game/pet/pet_val_base.cpp
new file mode 100644
index 0000000000..d77f366436
--- /dev/null
+++ b/engines/titanic/game/pet/pet_val_base.cpp
@@ -0,0 +1,31 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/pet/pet_val_base.h"
+
+namespace Titanic {
+
+CPetValBase::CPetValBase() : _field4(0), _field8(0),
+ _fieldC(0), _field10(0), _field14(0) {
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/pet/pet_val_base.h b/engines/titanic/game/pet/pet_val_base.h
new file mode 100644
index 0000000000..310b0675b1
--- /dev/null
+++ b/engines/titanic/game/pet/pet_val_base.h
@@ -0,0 +1,61 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_VAL_BASE_H
+#define TITANIC_PET_VAL_BASE_H
+
+namespace Titanic {
+
+class CPetValBase {
+protected:
+ int _field4;
+ int _field8;
+ int _fieldC;
+ int _field10;
+ int _field14;
+public:
+ CPetValBase();
+
+ virtual void proc1() {}
+ virtual void proc2() {}
+ virtual void proc3() {}
+ virtual void proc4() {}
+
+ virtual void proc5() {}
+
+ virtual void proc6() {}
+ virtual void proc7() {}
+ virtual void proc8() {}
+ virtual void proc9() {}
+ virtual void proc10() {}
+ virtual void proc11() {}
+ virtual void proc12() {}
+ virtual void proc13() {}
+ virtual void proc14() {}
+ virtual void proc15() {}
+ virtual void proc16() {}
+ virtual void proc17() {}
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_VAL_BASE_H */
diff --git a/engines/titanic/game/pet_disabler.cpp b/engines/titanic/game/pet_disabler.cpp
new file mode 100644
index 0000000000..94a4964ed2
--- /dev/null
+++ b/engines/titanic/game/pet_disabler.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/pet_disabler.h"
+
+namespace Titanic {
+
+void CPetDisabler::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_value, indent);
+ CGameObject::save(file, indent);
+}
+
+void CPetDisabler::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readString();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/pet_disabler.h b/engines/titanic/game/pet_disabler.h
new file mode 100644
index 0000000000..5db5d7b533
--- /dev/null
+++ b/engines/titanic/game/pet_disabler.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_DISABLER_H
+#define TITANIC_PET_DISABLER_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CPetDisabler : public CGameObject {
+public:
+ CString _value;
+public:
+ CLASSDEF
+ CPetDisabler() : CGameObject() {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_DISABLER_H */
diff --git a/engines/titanic/game/phonograph.cpp b/engines/titanic/game/phonograph.cpp
new file mode 100644
index 0000000000..f7a696e549
--- /dev/null
+++ b/engines/titanic/game/phonograph.cpp
@@ -0,0 +1,63 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/phonograph.h"
+
+namespace Titanic {
+
+CPhonograph::CPhonograph() : CMusicPlayer(),
+ _fieldE0(0), _fieldE4(0), _fieldE8(0), _fieldEC(0),
+ _fieldF0(0), _fieldF4(0) {
+}
+
+void CPhonograph::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string2, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_fieldE8, indent);
+ file->writeNumberLine(_fieldEC, indent);
+ file->writeNumberLine(_fieldF0, indent);
+ file->writeNumberLine(_fieldF4, indent);
+
+ CMusicPlayer::save(file, indent);
+}
+
+void CPhonograph::load(SimpleFile *file) {
+ file->readNumber();
+ _string2 = file->readString();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _fieldE8 = file->readNumber();
+ _fieldEC = file->readNumber();
+ _fieldF0 = file->readNumber();
+ _fieldF4 = file->readNumber();
+
+ CMusicPlayer::load(file);
+}
+
+bool CPhonograph::handleEvent(CEnterRoomMsg &msg) {
+ warning("CPhonograph::handleEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/phonograph.h b/engines/titanic/game/phonograph.h
new file mode 100644
index 0000000000..6efe10bab2
--- /dev/null
+++ b/engines/titanic/game/phonograph.h
@@ -0,0 +1,59 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PHONOGRAPH_H
+#define TITANIC_PHONOGRAPH_H
+
+#include "titanic/sound/music_player.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CPhonograph : public CMusicPlayer {
+protected:
+ CString _string2;
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+ int _fieldEC;
+ int _fieldF0;
+ int _fieldF4;
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+ CPhonograph();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MUSIC_CONSOLE_BUTTON_H */
diff --git a/engines/titanic/game/phonograph_lid.cpp b/engines/titanic/game/phonograph_lid.cpp
new file mode 100644
index 0000000000..a228af8c70
--- /dev/null
+++ b/engines/titanic/game/phonograph_lid.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/phonograph_lid.h"
+
+namespace Titanic {
+
+void CPhonographLid::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ CGameObject::save(file, indent);
+}
+
+void CPhonographLid::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/phonograph_lid.h b/engines/titanic/game/phonograph_lid.h
new file mode 100644
index 0000000000..38c8924885
--- /dev/null
+++ b/engines/titanic/game/phonograph_lid.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PHONOGRAPH_LID_H
+#define TITANIC_PHONOGRAPH_LID_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CPhonographLid : public CGameObject {
+private:
+ int _value;
+public:
+ CLASSDEF
+ CPhonographLid() : CGameObject(), _value(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PHONOGRAPH_LID_H */
diff --git a/engines/titanic/game/pickup/pick_up.cpp b/engines/titanic/game/pickup/pick_up.cpp
new file mode 100644
index 0000000000..58ffc5ad09
--- /dev/null
+++ b/engines/titanic/game/pickup/pick_up.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/pickup/pick_up.h"
+
+namespace Titanic {
+
+void CPickUp::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ CGameObject::save(file, indent);
+}
+
+void CPickUp::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/pickup/pick_up.h b/engines/titanic/game/pickup/pick_up.h
new file mode 100644
index 0000000000..d5a858017d
--- /dev/null
+++ b/engines/titanic/game/pickup/pick_up.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PICK_UP_H
+#define TITANIC_PICK_UP_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CPickUp : public CGameObject {
+private:
+ int _fieldBC;
+public:
+ CLASSDEF
+ CPickUp() : CGameObject(), _fieldBC(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ANNOY_BARBOT_H */
diff --git a/engines/titanic/game/pickup/pick_up_bar_glass.cpp b/engines/titanic/game/pickup/pick_up_bar_glass.cpp
new file mode 100644
index 0000000000..1d475c2a85
--- /dev/null
+++ b/engines/titanic/game/pickup/pick_up_bar_glass.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/pickup/pick_up_bar_glass.h"
+
+namespace Titanic {
+
+void CPickUpBarGlass::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CPickUp::save(file, indent);
+}
+
+void CPickUpBarGlass::load(SimpleFile *file) {
+ file->readNumber();
+ CPickUp::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/pickup/pick_up_bar_glass.h b/engines/titanic/game/pickup/pick_up_bar_glass.h
new file mode 100644
index 0000000000..f1c75555ad
--- /dev/null
+++ b/engines/titanic/game/pickup/pick_up_bar_glass.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PICK_UP_BAR_GLASS_H
+#define TITANIC_PICK_UP_BAR_GLASS_H
+
+#include "titanic/game/pickup/pick_up.h"
+
+namespace Titanic {
+
+class CPickUpBarGlass : public CPickUp {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PICK_UP_BAR_GLASS_H */
diff --git a/engines/titanic/game/pickup/pick_up_hose.cpp b/engines/titanic/game/pickup/pick_up_hose.cpp
new file mode 100644
index 0000000000..e6902cb6b3
--- /dev/null
+++ b/engines/titanic/game/pickup/pick_up_hose.cpp
@@ -0,0 +1,45 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/pickup/pick_up_hose.h"
+
+namespace Titanic {
+
+int CPickUpHose::_v1;
+
+void CPickUpHose::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeNumberLine(_v1, indent);
+
+ CPickUp::save(file, indent);
+}
+
+void CPickUpHose::load(SimpleFile *file) {
+ file->readNumber();
+ _string1 = file->readString();
+ _v1 = file->readNumber();
+
+ CPickUp::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/pickup/pick_up_hose.h b/engines/titanic/game/pickup/pick_up_hose.h
new file mode 100644
index 0000000000..9014934ba1
--- /dev/null
+++ b/engines/titanic/game/pickup/pick_up_hose.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PICK_UP_HOSE_H
+#define TITANIC_PICK_UP_HOSE_H
+
+#include "titanic/game/pickup/pick_up.h"
+
+namespace Titanic {
+
+class CPickUpHose : public CPickUp {
+private:
+ static int _v1;
+
+ CString _string1;
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PICK_UP_HOSE_H */
diff --git a/engines/titanic/game/pickup/pick_up_lemon.cpp b/engines/titanic/game/pickup/pick_up_lemon.cpp
new file mode 100644
index 0000000000..7364fee299
--- /dev/null
+++ b/engines/titanic/game/pickup/pick_up_lemon.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/pickup/pick_up_lemon.h"
+
+namespace Titanic {
+
+void CPickUpLemon::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CPickUp::save(file, indent);
+}
+
+void CPickUpLemon::load(SimpleFile *file) {
+ file->readNumber();
+ CPickUp::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/pickup/pick_up_lemon.h b/engines/titanic/game/pickup/pick_up_lemon.h
new file mode 100644
index 0000000000..dc2942f366
--- /dev/null
+++ b/engines/titanic/game/pickup/pick_up_lemon.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PICK_UP_LEMON_H
+#define TITANIC_PICK_UP_LEMON_H
+
+#include "titanic/game/pickup/pick_up.h"
+
+namespace Titanic {
+
+class CPickUpLemon : public CPickUp {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PICK_UP_LEMON_H */
diff --git a/engines/titanic/game/pickup/pick_up_speech_centre.cpp b/engines/titanic/game/pickup/pick_up_speech_centre.cpp
new file mode 100644
index 0000000000..74c473943e
--- /dev/null
+++ b/engines/titanic/game/pickup/pick_up_speech_centre.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/pickup/pick_up_speech_centre.h"
+
+namespace Titanic {
+
+void CPickUpSpeechCentre::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CPickUp::save(file, indent);
+}
+
+void CPickUpSpeechCentre::load(SimpleFile *file) {
+ file->readNumber();
+ CPickUp::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/pickup/pick_up_speech_centre.h b/engines/titanic/game/pickup/pick_up_speech_centre.h
new file mode 100644
index 0000000000..5d7d133ccc
--- /dev/null
+++ b/engines/titanic/game/pickup/pick_up_speech_centre.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PICK_UP_SPEECH_CENTRE_H
+#define TITANIC_PICK_UP_SPEECH_CENTRE_H
+
+#include "titanic/game/pickup/pick_up.h"
+
+namespace Titanic {
+
+class CPickUpSpeechCentre : public CPickUp {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PICK_UP_SPEECH_CENTRE_H */
diff --git a/engines/titanic/game/pickup/pick_up_vis_centre.cpp b/engines/titanic/game/pickup/pick_up_vis_centre.cpp
new file mode 100644
index 0000000000..8fda66fe3d
--- /dev/null
+++ b/engines/titanic/game/pickup/pick_up_vis_centre.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/pickup/pick_up_vis_centre.h"
+
+namespace Titanic {
+
+void CPickUpVisCentre::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CPickUp::save(file, indent);
+}
+
+void CPickUpVisCentre::load(SimpleFile *file) {
+ file->readNumber();
+ CPickUp::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/pickup/pick_up_vis_centre.h b/engines/titanic/game/pickup/pick_up_vis_centre.h
new file mode 100644
index 0000000000..4345fceda9
--- /dev/null
+++ b/engines/titanic/game/pickup/pick_up_vis_centre.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PICK_UP_VIS_CENTRE_H
+#define TITANIC_PICK_UP_VIS_CENTRE_H
+
+#include "titanic/game/pickup/pick_up.h"
+
+namespace Titanic {
+
+class CPickUpVisCentre : public CPickUp {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PICK_UP_VIS_CENTRE_H */
diff --git a/engines/titanic/game/placeholder/bar_shelf_vis_centre.cpp b/engines/titanic/game/placeholder/bar_shelf_vis_centre.cpp
new file mode 100644
index 0000000000..3d3a05692f
--- /dev/null
+++ b/engines/titanic/game/placeholder/bar_shelf_vis_centre.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/placeholder/bar_shelf_vis_centre.h"
+
+namespace Titanic {
+
+void CBarShelfVisCentre::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ CPlaceHolder::save(file, indent);
+}
+
+void CBarShelfVisCentre::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ CPlaceHolder::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/placeholder/bar_shelf_vis_centre.h b/engines/titanic/game/placeholder/bar_shelf_vis_centre.h
new file mode 100644
index 0000000000..a2d39c3ea7
--- /dev/null
+++ b/engines/titanic/game/placeholder/bar_shelf_vis_centre.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BAR_SHELF_VIS_CENTRE_H
+#define TITANIC_BAR_SHELF_VIS_CENTRE_H
+
+#include "titanic/game/placeholder/place_holder.h"
+
+namespace Titanic {
+
+class CBarShelfVisCentre : public CPlaceHolder {
+private:
+ int _value;
+public:
+ CLASSDEF
+ CBarShelfVisCentre() : CPlaceHolder(), _value(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BAR_SHELF_VIS_CENTRE_H */
diff --git a/engines/titanic/game/placeholder/lemon_on_bar.cpp b/engines/titanic/game/placeholder/lemon_on_bar.cpp
new file mode 100644
index 0000000000..336933a8df
--- /dev/null
+++ b/engines/titanic/game/placeholder/lemon_on_bar.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/placeholder/lemon_on_bar.h"
+
+namespace Titanic {
+
+void CLemonOnBar::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writePoint(_pos1, indent);
+ CPlaceHolder::save(file, indent);
+}
+
+void CLemonOnBar::load(SimpleFile *file) {
+ file->readNumber();
+ _pos1 = file->readPoint();
+ CPlaceHolder::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/placeholder/lemon_on_bar.h b/engines/titanic/game/placeholder/lemon_on_bar.h
new file mode 100644
index 0000000000..c88698fcab
--- /dev/null
+++ b/engines/titanic/game/placeholder/lemon_on_bar.h
@@ -0,0 +1,49 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_LEMON_ON_BAR_H
+#define TITANIC_LEMON_ON_BAR_H
+
+#include "titanic/game/placeholder/place_holder.h"
+
+namespace Titanic {
+
+class CLemonOnBar : public CPlaceHolder {
+private:
+ Common::Point _pos1;
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_LEMON_ON_BAR_H */
diff --git a/engines/titanic/game/placeholder/place_holder.cpp b/engines/titanic/game/placeholder/place_holder.cpp
new file mode 100644
index 0000000000..d96f551ee4
--- /dev/null
+++ b/engines/titanic/game/placeholder/place_holder.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/placeholder/place_holder.h"
+
+namespace Titanic {
+
+void CPlaceHolder::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CPlaceHolder::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/placeholder/place_holder.h b/engines/titanic/game/placeholder/place_holder.h
new file mode 100644
index 0000000000..4d01cd6c39
--- /dev/null
+++ b/engines/titanic/game/placeholder/place_holder.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PLACE_HOLDER_H
+#define TITANIC_PLACE_HOLDER_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CPlaceHolder : public CGameObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PLACE_HOLDER_H */
diff --git a/engines/titanic/game/placeholder/tv_on_bar.cpp b/engines/titanic/game/placeholder/tv_on_bar.cpp
new file mode 100644
index 0000000000..5b22069a93
--- /dev/null
+++ b/engines/titanic/game/placeholder/tv_on_bar.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/placeholder/tv_on_bar.h"
+
+namespace Titanic {
+
+void CTVOnBar::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writePoint(_pos1, indent);
+ CPlaceHolder::save(file, indent);
+}
+
+void CTVOnBar::load(SimpleFile *file) {
+ file->readNumber();
+ _pos1 = file->readPoint();
+ CPlaceHolder::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/placeholder/tv_on_bar.h b/engines/titanic/game/placeholder/tv_on_bar.h
new file mode 100644
index 0000000000..3358cd6fec
--- /dev/null
+++ b/engines/titanic/game/placeholder/tv_on_bar.h
@@ -0,0 +1,49 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TV_ON_BAR_H
+#define TITANIC_TV_ON_BAR_H
+
+#include "titanic/game/placeholder/place_holder.h"
+
+namespace Titanic {
+
+class CTVOnBar : public CPlaceHolder {
+private:
+ Common::Point _pos1;
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TV_ON_BAR_H */
diff --git a/engines/titanic/game/play_music_button.cpp b/engines/titanic/game/play_music_button.cpp
new file mode 100644
index 0000000000..49e128cb66
--- /dev/null
+++ b/engines/titanic/game/play_music_button.cpp
@@ -0,0 +1,43 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/play_music_button.h"
+
+namespace Titanic {
+
+void CPlayMusicButton::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CPlayMusicButton::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/play_music_button.h b/engines/titanic/game/play_music_button.h
new file mode 100644
index 0000000000..9e0bb464b3
--- /dev/null
+++ b/engines/titanic/game/play_music_button.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PLAY_MUSIC_BUTTON_H
+#define TITANIC_PLAY_MUSIC_BUTTON_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CPlayMusicButton : public CBackground {
+public:
+ int _fieldE0;
+ int _fieldE4;
+public:
+ CLASSDEF
+ CPlayMusicButton() : CBackground(), _fieldE0(0), _fieldE4(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PLAY_MUSIC_BUTTON_H */
diff --git a/engines/titanic/game/play_on_act.cpp b/engines/titanic/game/play_on_act.cpp
new file mode 100644
index 0000000000..b0236cda5a
--- /dev/null
+++ b/engines/titanic/game/play_on_act.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/play_on_act.h"
+
+namespace Titanic {
+
+void CPlayOnAct::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CBackground::save(file, indent);
+}
+
+void CPlayOnAct::load(SimpleFile *file) {
+ file->readNumber();
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/play_on_act.h b/engines/titanic/game/play_on_act.h
new file mode 100644
index 0000000000..22bb54de6a
--- /dev/null
+++ b/engines/titanic/game/play_on_act.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PLAY_ON_ACT_H
+#define TITANIC_PLAY_ON_ACT_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CPlayOnAct : public CBackground {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PLAY_ON_ACT_H */
diff --git a/engines/titanic/game/port_hole.cpp b/engines/titanic/game/port_hole.cpp
new file mode 100644
index 0000000000..556473263b
--- /dev/null
+++ b/engines/titanic/game/port_hole.cpp
@@ -0,0 +1,49 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/port_hole.h"
+
+namespace Titanic {
+
+CPortHole::CPortHole() : CGameObject(), _fieldBC(0),
+ _string1("b#47.wav"), _string2("b#46.wav") {
+}
+
+void CPortHole::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeQuotedLine(_string2, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CPortHole::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _string1 = file->readString();
+ _string2 = file->readString();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/port_hole.h b/engines/titanic/game/port_hole.h
new file mode 100644
index 0000000000..2672614d68
--- /dev/null
+++ b/engines/titanic/game/port_hole.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PORT_HOLE_H
+#define TITANIC_PORT_HOLE_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CPortHole : public CGameObject {
+private:
+ int _fieldBC;
+ CString _string1, _string2;
+public:
+ CLASSDEF
+ CPortHole();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PORT_HOLE_H */
diff --git a/engines/titanic/game/record_phonograph_button.cpp b/engines/titanic/game/record_phonograph_button.cpp
new file mode 100644
index 0000000000..896e9d2be6
--- /dev/null
+++ b/engines/titanic/game/record_phonograph_button.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/record_phonograph_button.h"
+
+namespace Titanic {
+
+void CRecordPhonographButton::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ CBackground::save(file, indent);
+}
+
+void CRecordPhonographButton::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/record_phonograph_button.h b/engines/titanic/game/record_phonograph_button.h
new file mode 100644
index 0000000000..3ae7fb1dea
--- /dev/null
+++ b/engines/titanic/game/record_phonograph_button.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_RECORD_PHONOGRAPH_BUTTON_H
+#define TITANIC_RECORD_PHONOGRAPH_BUTTON_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CRecordPhonographButton : public CBackground {
+public:
+ int _value;
+public:
+ CLASSDEF
+ CRecordPhonographButton() : CBackground(), _value(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_RECORD_PHONOGRAPH_BUTTON_H */
diff --git a/engines/titanic/game/replacement_ear.cpp b/engines/titanic/game/replacement_ear.cpp
new file mode 100644
index 0000000000..4926932c17
--- /dev/null
+++ b/engines/titanic/game/replacement_ear.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/replacement_ear.h"
+
+namespace Titanic {
+
+void CReplacementEar::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CBackground::save(file, indent);
+}
+
+void CReplacementEar::load(SimpleFile *file) {
+ file->readNumber();
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/replacement_ear.h b/engines/titanic/game/replacement_ear.h
new file mode 100644
index 0000000000..0cff55d684
--- /dev/null
+++ b/engines/titanic/game/replacement_ear.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_REPLACEMENT_EAR_H
+#define TITANIC_REPLACEMENT_EAR_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CReplacementEar : public CBackground {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_REPLACEMENT_EAR_H */
diff --git a/engines/titanic/game/reserved_table.cpp b/engines/titanic/game/reserved_table.cpp
new file mode 100644
index 0000000000..222712ac1c
--- /dev/null
+++ b/engines/titanic/game/reserved_table.cpp
@@ -0,0 +1,42 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/reserved_table.h"
+
+namespace Titanic {
+
+void CReservedTable::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value1, indent);
+ file->writeNumberLine(_value2, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CReservedTable::load(SimpleFile *file) {
+ file->readNumber();
+ _value1 = file->readNumber();
+ _value2 = file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/reserved_table.h b/engines/titanic/game/reserved_table.h
new file mode 100644
index 0000000000..49cd5e8e39
--- /dev/null
+++ b/engines/titanic/game/reserved_table.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_RESERVED_TABLE_H
+#define TITANIC_RESERVED_TABLE_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CReservedTable : public CGameObject {
+public:
+ int _value1, _value2;
+public:
+ CLASSDEF
+ CReservedTable() : CGameObject(), _value1(0), _value2(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_RESERVED_TABLE_H */
diff --git a/engines/titanic/game/restaurant_cylinder_holder.cpp b/engines/titanic/game/restaurant_cylinder_holder.cpp
new file mode 100644
index 0000000000..1662064d17
--- /dev/null
+++ b/engines/titanic/game/restaurant_cylinder_holder.cpp
@@ -0,0 +1,58 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/restaurant_cylinder_holder.h"
+
+namespace Titanic {
+
+CRestaurantCylinderHolder::CRestaurantCylinderHolder() : CDropTarget(),
+ _field118(0), _field11C(0), _field12C(0), _field130(0),
+ _string6("z#61.wav"), _field140(1) {
+}
+
+void CRestaurantCylinderHolder::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_field118, indent);
+ file->writeNumberLine(_field11C, indent);
+ file->writeQuotedLine(_string5, indent);
+ file->writeNumberLine(_field12C, indent);
+ file->writeNumberLine(_field130, indent);
+ file->writeQuotedLine(_string6, indent);
+ file->writeNumberLine(_field140, indent);
+
+ CDropTarget::save(file, indent);
+}
+
+void CRestaurantCylinderHolder::load(SimpleFile *file) {
+ file->readNumber();
+ _field118 = file->readNumber();
+ _field11C = file->readNumber();
+ _string5 = file->readString();
+ _field12C = file->readNumber();
+ _field130 = file->readNumber();
+ _string6 = file->readString();
+ _field140 = file->readNumber();
+
+ CDropTarget::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/restaurant_cylinder_holder.h b/engines/titanic/game/restaurant_cylinder_holder.h
new file mode 100644
index 0000000000..9f3911d850
--- /dev/null
+++ b/engines/titanic/game/restaurant_cylinder_holder.h
@@ -0,0 +1,56 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_RESTAURANT_CYLINDER_HOLDER_H
+#define TITANIC_RESTAURANT_CYLINDER_HOLDER_H
+
+#include "titanic/core/drop_target.h"
+
+namespace Titanic {
+
+class CRestaurantCylinderHolder : public CDropTarget {
+private:
+ int _field118;
+ int _field11C;
+ CString _string5;
+ int _field12C;
+ int _field130;
+ CString _string6;
+ int _field140;
+public:
+ CLASSDEF
+ CRestaurantCylinderHolder();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_RESTAURANT_CYLINDER_HOLDER_H */
diff --git a/engines/titanic/game/restaurant_phonograph.cpp b/engines/titanic/game/restaurant_phonograph.cpp
new file mode 100644
index 0000000000..c73bd51d34
--- /dev/null
+++ b/engines/titanic/game/restaurant_phonograph.cpp
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/restaurant_phonograph.h"
+
+namespace Titanic {
+
+CRestaurantPhonograph::CRestaurantPhonograph() : CPhonograph(),
+ _fieldF8(1), _field114(0) {}
+
+void CRestaurantPhonograph::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldF8, indent);
+ file->writeQuotedLine(_string2, indent);
+ file->writeQuotedLine(_string3, indent);
+
+ file->writeNumberLine(_field114, indent);
+
+ CPhonograph::save(file, indent);
+}
+
+void CRestaurantPhonograph::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldF8 = file->readNumber();
+ _string2 = file->readString();
+ _string3 = file->readString();
+ _field114 = file->readNumber();
+
+ CPhonograph::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/restaurant_phonograph.h b/engines/titanic/game/restaurant_phonograph.h
new file mode 100644
index 0000000000..40116f5d07
--- /dev/null
+++ b/engines/titanic/game/restaurant_phonograph.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_RESTAURANT_PHONOGRAPH_H
+#define TITANIC_RESTAURANT_PHONOGRAPH_H
+
+#include "titanic/game/phonograph.h"
+
+namespace Titanic {
+
+class CRestaurantPhonograph : public CPhonograph {
+private:
+ int _fieldF8;
+ CString _string2;
+ CString _string3;
+ int _field114;
+public:
+ CLASSDEF
+ CRestaurantPhonograph();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_RESTAURANT_PHONOGRAPH_H */
diff --git a/engines/titanic/game/sauce_dispensor.cpp b/engines/titanic/game/sauce_dispensor.cpp
new file mode 100644
index 0000000000..6365f6e57b
--- /dev/null
+++ b/engines/titanic/game/sauce_dispensor.cpp
@@ -0,0 +1,57 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/sauce_dispensor.h"
+
+namespace Titanic {
+
+CSauceDispensor::CSauceDispensor() : CBackground(),
+ _fieldEC(0), _fieldF0(0), _field104(0), _field108(0) {
+}
+
+void CSauceDispensor::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string3, indent);
+ file->writeNumberLine(_fieldEC, indent);
+ file->writeNumberLine(_fieldF0, indent);
+ file->writePoint(_pos1, indent);
+ file->writePoint(_pos2, indent);
+ file->writeNumberLine(_field104, indent);
+ file->writeNumberLine(_field108, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CSauceDispensor::load(SimpleFile *file) {
+ file->readNumber();
+ _string3 = file->readString();
+ _fieldEC = file->readNumber();
+ _fieldF0 = file->readNumber();
+ _pos1 = file->readPoint();
+ _pos2 = file->readPoint();
+ _field104 = file->readNumber();
+ _field108 = file->readNumber();
+
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/sauce_dispensor.h b/engines/titanic/game/sauce_dispensor.h
new file mode 100644
index 0000000000..6969adb326
--- /dev/null
+++ b/engines/titanic/game/sauce_dispensor.h
@@ -0,0 +1,56 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SAUCE_DISPENSOR_H
+#define TITANIC_SAUCE_DISPENSOR_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CSauceDispensor : public CBackground {
+public:
+ CString _string3;
+ int _fieldEC;
+ int _fieldF0;
+ Common::Point _pos1;
+ Common::Point _pos2;
+ int _field104;
+ int _field108;
+public:
+ CLASSDEF
+ CSauceDispensor();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SAUCE_DISPENSOR_H */
diff --git a/engines/titanic/game/search_point.cpp b/engines/titanic/game/search_point.cpp
new file mode 100644
index 0000000000..c235e4765a
--- /dev/null
+++ b/engines/titanic/game/search_point.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/search_point.h"
+
+namespace Titanic {
+
+void CSearchPoint::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ CGameObject::save(file, indent);
+}
+
+void CSearchPoint::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/search_point.h b/engines/titanic/game/search_point.h
new file mode 100644
index 0000000000..7bd05d8d1e
--- /dev/null
+++ b/engines/titanic/game/search_point.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SEARCH_POINT_H
+#define TITANIC_SEARCH_POINT_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CSearchPoint : public CGameObject {
+public:
+ int _value;
+public:
+ CLASSDEF
+ CSearchPoint() : CGameObject(), _value(2) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SEARCH_POINT_H */
diff --git a/engines/titanic/game/season_background.cpp b/engines/titanic/game/season_background.cpp
new file mode 100644
index 0000000000..a4de590ecd
--- /dev/null
+++ b/engines/titanic/game/season_background.cpp
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/season_background.h"
+
+namespace Titanic {
+
+CSeasonBackground::CSeasonBackground() : CBackground(),
+ _fieldE0(0), _fieldE4(0), _fieldE8(46), _fieldEC(0) {
+}
+
+void CSeasonBackground::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_fieldE8, indent);
+ file->writeNumberLine(_fieldEC, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CSeasonBackground::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _fieldE8 = file->readNumber();
+ _fieldEC = file->readNumber();
+
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/season_background.h b/engines/titanic/game/season_background.h
new file mode 100644
index 0000000000..709f1002c3
--- /dev/null
+++ b/engines/titanic/game/season_background.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SEASON_BACKGROUND_H
+#define TITANIC_SEASON_BACKGROUND_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CSeasonBackground : public CBackground {
+public:
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+ int _fieldEC;
+public:
+ CLASSDEF
+ CSeasonBackground();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SEASON_BACKGROUND_H */
diff --git a/engines/titanic/game/season_barrel.cpp b/engines/titanic/game/season_barrel.cpp
new file mode 100644
index 0000000000..8aa7b22033
--- /dev/null
+++ b/engines/titanic/game/season_barrel.cpp
@@ -0,0 +1,42 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/season_barrel.h"
+
+namespace Titanic {
+
+void CSeasonBarrel::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CSeasonBarrel::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/season_barrel.h b/engines/titanic/game/season_barrel.h
new file mode 100644
index 0000000000..d3f7b1a91e
--- /dev/null
+++ b/engines/titanic/game/season_barrel.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SEASON_BARREL_H
+#define TITANIC_SEASON_BARREL_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CSeasonBarrel : public CBackground {
+public:
+ int _fieldE0;
+ int _fieldE4;
+public:
+ CLASSDEF
+ CSeasonBarrel() : CBackground(), _fieldE0(0), _fieldE4(7) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SEASON_BARREL_H */
diff --git a/engines/titanic/game/seasonal_adjustment.cpp b/engines/titanic/game/seasonal_adjustment.cpp
new file mode 100644
index 0000000000..c0c7b2f1b4
--- /dev/null
+++ b/engines/titanic/game/seasonal_adjustment.cpp
@@ -0,0 +1,43 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/seasonal_adjustment.h"
+
+namespace Titanic {
+
+void CSeasonalAdjustment::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CSeasonalAdjustment::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/seasonal_adjustment.h b/engines/titanic/game/seasonal_adjustment.h
new file mode 100644
index 0000000000..4bfec1a47a
--- /dev/null
+++ b/engines/titanic/game/seasonal_adjustment.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SEASONAL_ADJUSTMENT_H
+#define TITANIC_SEASONAL_ADJUSTMENT_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CSeasonalAdjustment : public CBackground {
+public:
+ int _fieldE0;
+ int _fieldE4;
+public:
+ CLASSDEF
+ CSeasonalAdjustment() : CBackground(), _fieldE0(0), _fieldE4(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SEASONAL_ADJUSTMENT_H */
diff --git a/engines/titanic/game/service_elevator_window.cpp b/engines/titanic/game/service_elevator_window.cpp
new file mode 100644
index 0000000000..1371fb7c48
--- /dev/null
+++ b/engines/titanic/game/service_elevator_window.cpp
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/service_elevator_window.h"
+
+namespace Titanic {
+
+CServiceElevatorWindow::CServiceElevatorWindow() : CBackground(),
+ _fieldE0(0), _fieldE4(0), _fieldE8(0), _fieldEC(0) {
+}
+
+void CServiceElevatorWindow::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_fieldE8, indent);
+ file->writeNumberLine(_fieldEC, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CServiceElevatorWindow::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _fieldE8 = file->readNumber();
+ _fieldEC = file->readNumber();
+
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/service_elevator_window.h b/engines/titanic/game/service_elevator_window.h
new file mode 100644
index 0000000000..70c38753b2
--- /dev/null
+++ b/engines/titanic/game/service_elevator_window.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SERVICE_ELEVATOR_WINDOW_H
+#define TITANIC_SERVICE_ELEVATOR_WINDOW_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CServiceElevatorWindow : public CBackground {
+public:
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+ int _fieldEC;
+public:
+ CLASSDEF
+ CServiceElevatorWindow();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SERVICE_ELEVATOR_WINDOW_H */
diff --git a/engines/titanic/game/sgt/armchair.cpp b/engines/titanic/game/sgt/armchair.cpp
new file mode 100644
index 0000000000..3491452a8d
--- /dev/null
+++ b/engines/titanic/game/sgt/armchair.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/sgt/armchair.h"
+
+namespace Titanic {
+
+void CArmchair::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CSGTStateRoom::save(file, indent);
+}
+
+void CArmchair::load(SimpleFile *file) {
+ file->readNumber();
+ CSGTStateRoom::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/sgt/armchair.h b/engines/titanic/game/sgt/armchair.h
new file mode 100644
index 0000000000..1ce6955c58
--- /dev/null
+++ b/engines/titanic/game/sgt/armchair.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ARMCHAIR_H
+#define TITANIC_ARMCHAIR_H
+
+#include "titanic/game/sgt/sgt_state_room.h"
+
+namespace Titanic {
+
+class CArmchair : public CSGTStateRoom {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ARMCHAIR_H */
diff --git a/engines/titanic/game/sgt/basin.cpp b/engines/titanic/game/sgt/basin.cpp
new file mode 100644
index 0000000000..75c53bce72
--- /dev/null
+++ b/engines/titanic/game/sgt/basin.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/sgt/basin.h"
+
+namespace Titanic {
+
+void CBasin::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CSGTStateRoom::save(file, indent);
+}
+
+void CBasin::load(SimpleFile *file) {
+ file->readNumber();
+ CSGTStateRoom::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/sgt/basin.h b/engines/titanic/game/sgt/basin.h
new file mode 100644
index 0000000000..cc9739fd1d
--- /dev/null
+++ b/engines/titanic/game/sgt/basin.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BASIN_H
+#define TITANIC_BASIN_H
+
+#include "titanic/game/sgt/sgt_state_room.h"
+
+namespace Titanic {
+
+class CBasin : public CSGTStateRoom {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BASIN_H */
diff --git a/engines/titanic/game/sgt/bedfoot.cpp b/engines/titanic/game/sgt/bedfoot.cpp
new file mode 100644
index 0000000000..b039f8a9d8
--- /dev/null
+++ b/engines/titanic/game/sgt/bedfoot.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/sgt/bedfoot.h"
+
+namespace Titanic {
+
+void CBedfoot::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CSGTStateRoom::save(file, indent);
+}
+
+void CBedfoot::load(SimpleFile *file) {
+ file->readNumber();
+ CSGTStateRoom::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/sgt/bedfoot.h b/engines/titanic/game/sgt/bedfoot.h
new file mode 100644
index 0000000000..55be4fdadd
--- /dev/null
+++ b/engines/titanic/game/sgt/bedfoot.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BEDFOOT_H
+#define TITANIC_BEDFOOT_H
+
+#include "titanic/game/sgt/sgt_state_room.h"
+
+namespace Titanic {
+
+class CBedfoot : public CSGTStateRoom {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BEDFOOT_H */
diff --git a/engines/titanic/game/sgt/bedhead.cpp b/engines/titanic/game/sgt/bedhead.cpp
new file mode 100644
index 0000000000..758c1ffe37
--- /dev/null
+++ b/engines/titanic/game/sgt/bedhead.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/sgt/bedhead.h"
+
+namespace Titanic {
+
+void CBedhead::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CSGTStateRoom::save(file, indent);
+}
+
+void CBedhead::load(SimpleFile *file) {
+ file->readNumber();
+ CSGTStateRoom::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/sgt/bedhead.h b/engines/titanic/game/sgt/bedhead.h
new file mode 100644
index 0000000000..317b7eb2a3
--- /dev/null
+++ b/engines/titanic/game/sgt/bedhead.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BEDHEAD_H
+#define TITANIC_BEDHEAD_H
+
+#include "titanic/game/sgt/sgt_state_room.h"
+
+namespace Titanic {
+
+class CBedhead : public CSGTStateRoom {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BEDHEAD_H */
diff --git a/engines/titanic/game/sgt/chest_of_drawers.cpp b/engines/titanic/game/sgt/chest_of_drawers.cpp
new file mode 100644
index 0000000000..5ec98e8d5a
--- /dev/null
+++ b/engines/titanic/game/sgt/chest_of_drawers.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/sgt/chest_of_drawers.h"
+
+namespace Titanic {
+
+void CChestOfDrawers::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CSGTStateRoom::save(file, indent);
+}
+
+void CChestOfDrawers::load(SimpleFile *file) {
+ file->readNumber();
+ CSGTStateRoom::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/sgt/chest_of_drawers.h b/engines/titanic/game/sgt/chest_of_drawers.h
new file mode 100644
index 0000000000..e0bdd7579e
--- /dev/null
+++ b/engines/titanic/game/sgt/chest_of_drawers.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CHEST_OF_DRAWERS_H
+#define TITANIC_CHEST_OF_DRAWERS_H
+
+#include "titanic/game/sgt/sgt_state_room.h"
+
+namespace Titanic {
+
+class CChestOfDrawers : public CSGTStateRoom {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CHEST_OF_DRAWERS_H */
diff --git a/engines/titanic/game/sgt/desk.cpp b/engines/titanic/game/sgt/desk.cpp
new file mode 100644
index 0000000000..ea00c24f46
--- /dev/null
+++ b/engines/titanic/game/sgt/desk.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/sgt/desk.h"
+
+namespace Titanic {
+
+void CDesk::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CSGTStateRoom::save(file, indent);
+}
+
+void CDesk::load(SimpleFile *file) {
+ file->readNumber();
+ CSGTStateRoom::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/sgt/desk.h b/engines/titanic/game/sgt/desk.h
new file mode 100644
index 0000000000..7fbb65ad5e
--- /dev/null
+++ b/engines/titanic/game/sgt/desk.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_DESK_H
+#define TITANIC_DESK_H
+
+#include "titanic/game/sgt/sgt_state_room.h"
+
+namespace Titanic {
+
+class CDesk : public CSGTStateRoom {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_DESK_H */
diff --git a/engines/titanic/game/sgt/deskchair.cpp b/engines/titanic/game/sgt/deskchair.cpp
new file mode 100644
index 0000000000..337b55a5d1
--- /dev/null
+++ b/engines/titanic/game/sgt/deskchair.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/sgt/deskchair.h"
+
+namespace Titanic {
+
+void CDeskchair::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CSGTStateRoom::save(file, indent);
+}
+
+void CDeskchair::load(SimpleFile *file) {
+ file->readNumber();
+ CSGTStateRoom::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/sgt/deskchair.h b/engines/titanic/game/sgt/deskchair.h
new file mode 100644
index 0000000000..205209c22c
--- /dev/null
+++ b/engines/titanic/game/sgt/deskchair.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_DESKCHAIR_H
+#define TITANIC_DESKCHAIR_H
+
+#include "titanic/game/sgt/sgt_state_room.h"
+
+namespace Titanic {
+
+class CDeskchair : public CSGTStateRoom {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_DESKCHAIR_H */
diff --git a/engines/titanic/game/sgt/drawer.cpp b/engines/titanic/game/sgt/drawer.cpp
new file mode 100644
index 0000000000..1d7fad275b
--- /dev/null
+++ b/engines/titanic/game/sgt/drawer.cpp
@@ -0,0 +1,42 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/sgt/drawer.h"
+
+namespace Titanic {
+
+CDrawer::CDrawer() : CSGTStateRoom(), _fieldF4(0) {
+}
+
+void CDrawer::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldF4, indent);
+ CSGTStateRoom::save(file, indent);
+}
+
+void CDrawer::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldF4 = file->readNumber();
+ CSGTStateRoom::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/sgt/drawer.h b/engines/titanic/game/sgt/drawer.h
new file mode 100644
index 0000000000..8436e5ccb7
--- /dev/null
+++ b/engines/titanic/game/sgt/drawer.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_DRAWER_H
+#define TITANIC_DRAWER_H
+
+#include "titanic/game/sgt/sgt_state_room.h"
+
+namespace Titanic {
+
+class CDrawer : public CSGTStateRoom {
+private:
+ int _fieldF4;
+public:
+ CLASSDEF
+ CDrawer();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_DRAWER_H */
diff --git a/engines/titanic/game/sgt/sgt_doors.cpp b/engines/titanic/game/sgt/sgt_doors.cpp
new file mode 100644
index 0000000000..587a961ac1
--- /dev/null
+++ b/engines/titanic/game/sgt/sgt_doors.cpp
@@ -0,0 +1,43 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/sgt/sgt_doors.h"
+
+namespace Titanic {
+
+void CSGTDoors::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value1, indent);
+ file->writeNumberLine(_value2, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CSGTDoors::load(SimpleFile *file) {
+ file->readNumber();
+ _value1 = file->readNumber();
+ _value2 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/sgt/sgt_doors.h b/engines/titanic/game/sgt/sgt_doors.h
new file mode 100644
index 0000000000..9828708377
--- /dev/null
+++ b/engines/titanic/game/sgt/sgt_doors.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SGT_DOORS_H
+#define TITANIC_SGT_DOORS_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CSGTDoors : public CGameObject {
+public:
+ int _value1, _value2;
+public:
+ CLASSDEF
+ CSGTDoors() : CGameObject(), _value1(0), _value2(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SGT_DOORS_H */
diff --git a/engines/titanic/game/sgt/sgt_nav.cpp b/engines/titanic/game/sgt/sgt_nav.cpp
new file mode 100644
index 0000000000..e40d34d446
--- /dev/null
+++ b/engines/titanic/game/sgt/sgt_nav.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/sgt/sgt_nav.h"
+
+namespace Titanic {
+
+void SGTNav::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CSGTStateRoom::save(file, indent);
+}
+
+void SGTNav::load(SimpleFile *file) {
+ file->readNumber();
+ CSGTStateRoom::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/sgt/sgt_nav.h b/engines/titanic/game/sgt/sgt_nav.h
new file mode 100644
index 0000000000..7d7f57f851
--- /dev/null
+++ b/engines/titanic/game/sgt/sgt_nav.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SGT_NAV_H
+#define TITANIC_SGT_NAV_H
+
+#include "titanic/game/sgt/sgt_state_room.h"
+
+namespace Titanic {
+
+class SGTNav : public CSGTStateRoom {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SGT_NAV_H */
diff --git a/engines/titanic/game/sgt/sgt_navigation.cpp b/engines/titanic/game/sgt/sgt_navigation.cpp
new file mode 100644
index 0000000000..666459bbf1
--- /dev/null
+++ b/engines/titanic/game/sgt/sgt_navigation.cpp
@@ -0,0 +1,55 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/sgt/sgt_navigation.h"
+
+namespace Titanic {
+
+CSGTNavigationStatics *CSGTNavigation::_statics;
+
+void CSGTNavigation::init() {
+ _statics = new CSGTNavigationStatics();
+}
+
+void CSGTNavigation::deinit() {
+ delete _statics;
+}
+
+void CSGTNavigation::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_statics->_v1, indent);
+ file->writeQuotedLine(_statics->_v2, indent);
+ file->writeQuotedLine(_statics->_v3, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CSGTNavigation::load(SimpleFile *file) {
+ file->readNumber();
+ _statics->_v1 = file->readNumber();
+ _statics->_v2 = file->readString();
+ _statics->_v3 = file->readString();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/sgt/sgt_navigation.h b/engines/titanic/game/sgt/sgt_navigation.h
new file mode 100644
index 0000000000..083efa8cfa
--- /dev/null
+++ b/engines/titanic/game/sgt/sgt_navigation.h
@@ -0,0 +1,57 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SGT_NAVIGATION_H
+#define TITANIC_SGT_NAVIGATION_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+struct CSGTNavigationStatics {
+ int _v1;
+ CString _v2;
+ CString _v3;
+};
+
+class CSGTNavigation : public CGameObject {
+private:
+ static CSGTNavigationStatics *_statics;
+public:
+ CLASSDEF
+ static void init();
+ static void deinit();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SGT_NAVIGATION_H */
diff --git a/engines/titanic/game/sgt/sgt_restaurant_doors.cpp b/engines/titanic/game/sgt/sgt_restaurant_doors.cpp
new file mode 100644
index 0000000000..1e4a167357
--- /dev/null
+++ b/engines/titanic/game/sgt/sgt_restaurant_doors.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/sgt/sgt_restaurant_doors.h"
+
+namespace Titanic {
+
+void CSGTRestaurantDoors::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ CGameObject::save(file, indent);
+}
+
+void CSGTRestaurantDoors::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/sgt/sgt_restaurant_doors.h b/engines/titanic/game/sgt/sgt_restaurant_doors.h
new file mode 100644
index 0000000000..14677ea5f9
--- /dev/null
+++ b/engines/titanic/game/sgt/sgt_restaurant_doors.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SGT_RESTAURANT_DOORS_H
+#define TITANIC_SGT_RESTAURANT_DOORS_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CSGTRestaurantDoors : public CGameObject {
+private:
+ int _fieldBC;
+public:
+ CLASSDEF
+ CSGTRestaurantDoors() : CGameObject(), _fieldBC(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SGT_RESTAURANT_DOORS_H */
diff --git a/engines/titanic/game/sgt/sgt_state_control.cpp b/engines/titanic/game/sgt/sgt_state_control.cpp
new file mode 100644
index 0000000000..113bd0dd2a
--- /dev/null
+++ b/engines/titanic/game/sgt/sgt_state_control.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/sgt/sgt_state_control.h"
+
+namespace Titanic {
+
+void CSGTStateControl::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ CBackground::save(file, indent);
+}
+
+void CSGTStateControl::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/sgt/sgt_state_control.h b/engines/titanic/game/sgt/sgt_state_control.h
new file mode 100644
index 0000000000..05d8fde7d1
--- /dev/null
+++ b/engines/titanic/game/sgt/sgt_state_control.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SGT_STATE_CONTROL_H
+#define TITANIC_SGT_STATE_CONTROL_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CSGTStateControl : public CBackground {
+private:
+ int _fieldE0;
+public:
+ CLASSDEF
+ CSGTStateControl() : CBackground(), _fieldE0(1) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SGT_STATE_CONTROL_H */
diff --git a/engines/titanic/game/sgt/sgt_state_room.cpp b/engines/titanic/game/sgt/sgt_state_room.cpp
new file mode 100644
index 0000000000..cf735dd6d0
--- /dev/null
+++ b/engines/titanic/game/sgt/sgt_state_room.cpp
@@ -0,0 +1,98 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/sgt/sgt_state_room.h"
+
+namespace Titanic {
+
+CSGTStateRoomStatics *CSGTStateRoom::_statics;
+
+void CSGTStateRoom::init() {
+ _statics = new CSGTStateRoomStatics();
+}
+
+void CSGTStateRoom::deinit() {
+ delete _statics;
+}
+
+CSGTStateRoom::CSGTStateRoom() : CBackground(), _fieldE0(1),
+ _fieldE4(1), _fieldE8(0), _fieldEC(1), _fieldF0(1) {
+}
+
+void CSGTStateRoom::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_statics->_v1, indent);
+ file->writeQuotedLine(_statics->_v2, indent);
+ file->writeQuotedLine(_statics->_v3, indent);
+ file->writeQuotedLine(_statics->_v4, indent);
+ file->writeQuotedLine(_statics->_v5, indent);
+ file->writeQuotedLine(_statics->_v6, indent);
+ file->writeQuotedLine(_statics->_v7, indent);
+ file->writeQuotedLine(_statics->_v8, indent);
+ file->writeQuotedLine(_statics->_v9, indent);
+ file->writeQuotedLine(_statics->_v10, indent);
+ file->writeQuotedLine(_statics->_v11, indent);
+ file->writeQuotedLine(_statics->_v12, indent);
+
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_statics->_v13, indent);
+ file->writeNumberLine(_statics->_v14, indent);
+ file->writeNumberLine(_fieldE8, indent);
+ file->writeNumberLine(_fieldEC, indent);
+ file->writeNumberLine(_fieldF0, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CSGTStateRoom::load(SimpleFile *file) {
+ file->readNumber();
+ _statics->_v1 = file->readString();
+ _statics->_v2 = file->readString();
+ _statics->_v3 = file->readString();
+ _statics->_v4 = file->readString();
+ _statics->_v5 = file->readString();
+ _statics->_v6 = file->readString();
+ _statics->_v7 = file->readString();
+ _statics->_v8 = file->readString();
+ _statics->_v9 = file->readString();
+ _statics->_v10 = file->readString();
+ _statics->_v11 = file->readString();
+ _statics->_v12 = file->readString();
+
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _statics->_v13 = file->readNumber();
+ _statics->_v14 = file->readNumber();
+ _fieldE8 = file->readNumber();
+ _fieldEC = file->readNumber();
+ _fieldF0 = file->readNumber();
+
+ CBackground::load(file);
+}
+
+bool CSGTStateRoom::handleEvent(CEnterRoomMsg &msg) {
+ warning("CSGTStateRoom::handleEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/sgt/sgt_state_room.h b/engines/titanic/game/sgt/sgt_state_room.h
new file mode 100644
index 0000000000..4ec1617875
--- /dev/null
+++ b/engines/titanic/game/sgt/sgt_state_room.h
@@ -0,0 +1,78 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SGT_STATE_ROOM_H
+#define TITANIC_SGT_STATE_ROOM_H
+
+#include "titanic/core/background.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+struct CSGTStateRoomStatics {
+ CString _v1;
+ CString _v2;
+ CString _v3;
+ CString _v4;
+ CString _v5;
+ CString _v6;
+ CString _v7;
+ CString _v8;
+ CString _v9;
+ CString _v10;
+ CString _v11;
+ CString _v12;
+ int _v13;
+ int _v14;
+};
+
+class CSGTStateRoom : public CBackground, CEnterRoomMsgTarget {
+private:
+ static CSGTStateRoomStatics *_statics;
+private:
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+ int _fieldEC;
+ int _fieldF0;
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+ CSGTStateRoom();
+ static void init();
+ static void deinit();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SGT_STATE_ROOM_H */
diff --git a/engines/titanic/game/sgt/sgt_tv.cpp b/engines/titanic/game/sgt/sgt_tv.cpp
new file mode 100644
index 0000000000..316545860e
--- /dev/null
+++ b/engines/titanic/game/sgt/sgt_tv.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/sgt/sgt_tv.h"
+
+namespace Titanic {
+
+void CSGTTV::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CSGTStateRoom::save(file, indent);
+}
+
+void CSGTTV::load(SimpleFile *file) {
+ file->readNumber();
+ CSGTStateRoom::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/sgt/sgt_tv.h b/engines/titanic/game/sgt/sgt_tv.h
new file mode 100644
index 0000000000..347d2c74ab
--- /dev/null
+++ b/engines/titanic/game/sgt/sgt_tv.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SGT_TV_H
+#define TITANIC_SGT_TV_H
+
+#include "titanic/game/sgt/sgt_state_room.h"
+
+namespace Titanic {
+
+class CSGTTV : public CSGTStateRoom {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SGT_TV_H */
diff --git a/engines/titanic/game/sgt/sgt_upper_doors_sound.cpp b/engines/titanic/game/sgt/sgt_upper_doors_sound.cpp
new file mode 100644
index 0000000000..83a500e022
--- /dev/null
+++ b/engines/titanic/game/sgt/sgt_upper_doors_sound.cpp
@@ -0,0 +1,45 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/sgt/sgt_upper_doors_sound.h"
+
+namespace Titanic {
+
+CSGTUpperDoorsSound::CSGTUpperDoorsSound() {
+ _string2 = "b#53.wav";
+}
+
+void CSGTUpperDoorsSound::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string2, indent);
+
+ CClickResponder::save(file, indent);
+}
+
+void CSGTUpperDoorsSound::load(SimpleFile *file) {
+ file->readNumber();
+ _string2 = file->readString();
+
+ CClickResponder::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/sgt/sgt_upper_doors_sound.h b/engines/titanic/game/sgt/sgt_upper_doors_sound.h
new file mode 100644
index 0000000000..cd62aa5cf6
--- /dev/null
+++ b/engines/titanic/game/sgt/sgt_upper_doors_sound.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SGT_UPPER_DOORS_SOUND_H
+#define TITANIC_SGT_UPPER_DOORS_SOUND_H
+
+#include "titanic/core/click_responder.h"
+
+namespace Titanic {
+
+class CSGTUpperDoorsSound : public CClickResponder {
+public:
+ CLASSDEF
+ CSGTUpperDoorsSound();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SGT_UPPER_DOORS_SOUND_H */
diff --git a/engines/titanic/game/sgt/toilet.cpp b/engines/titanic/game/sgt/toilet.cpp
new file mode 100644
index 0000000000..ed4ac52412
--- /dev/null
+++ b/engines/titanic/game/sgt/toilet.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/sgt/toilet.h"
+
+namespace Titanic {
+
+void CToilet::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CSGTStateRoom::save(file, indent);
+}
+
+void CToilet::load(SimpleFile *file) {
+ file->readNumber();
+ CSGTStateRoom::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/sgt/toilet.h b/engines/titanic/game/sgt/toilet.h
new file mode 100644
index 0000000000..08926516ee
--- /dev/null
+++ b/engines/titanic/game/sgt/toilet.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TOILET_H
+#define TITANIC_TOILET_H
+
+#include "titanic/game/sgt/sgt_state_room.h"
+
+namespace Titanic {
+
+class CToilet : public CSGTStateRoom {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TOILET_H */
diff --git a/engines/titanic/game/sgt/vase.cpp b/engines/titanic/game/sgt/vase.cpp
new file mode 100644
index 0000000000..04c5165795
--- /dev/null
+++ b/engines/titanic/game/sgt/vase.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/sgt/vase.h"
+
+namespace Titanic {
+
+void CVase::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CSGTStateRoom::save(file, indent);
+}
+
+void CVase::load(SimpleFile *file) {
+ file->readNumber();
+ CSGTStateRoom::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/sgt/vase.h b/engines/titanic/game/sgt/vase.h
new file mode 100644
index 0000000000..1b2a89f17b
--- /dev/null
+++ b/engines/titanic/game/sgt/vase.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_VASE_H
+#define TITANIC_VASE_H
+
+#include "titanic/game/sgt/sgt_state_room.h"
+
+namespace Titanic {
+
+class CVase : public CSGTStateRoom {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_VASE_H */
diff --git a/engines/titanic/game/sgt/washstand.cpp b/engines/titanic/game/sgt/washstand.cpp
new file mode 100644
index 0000000000..f361b14e1d
--- /dev/null
+++ b/engines/titanic/game/sgt/washstand.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/sgt/washstand.h"
+
+namespace Titanic {
+
+void CWashstand::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CSGTStateRoom::save(file, indent);
+}
+
+void CWashstand::load(SimpleFile *file) {
+ file->readNumber();
+ CSGTStateRoom::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/sgt/washstand.h b/engines/titanic/game/sgt/washstand.h
new file mode 100644
index 0000000000..975a4d57c9
--- /dev/null
+++ b/engines/titanic/game/sgt/washstand.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_WASHSTAND_H
+#define TITANIC_WASHSTAND_H
+
+#include "titanic/game/sgt/sgt_state_room.h"
+
+namespace Titanic {
+
+class CWashstand : public CSGTStateRoom {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_WASHSTAND_H */
diff --git a/engines/titanic/game/ship_setting.cpp b/engines/titanic/game/ship_setting.cpp
new file mode 100644
index 0000000000..6d12e59c81
--- /dev/null
+++ b/engines/titanic/game/ship_setting.cpp
@@ -0,0 +1,56 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/ship_setting.h"
+
+namespace Titanic {
+
+CShipSetting::CShipSetting() : CBackground(),
+ _string4("NULL"), _string5("NULL") {
+}
+
+void CShipSetting::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string3, indent);
+ file->writePoint(_pos1, indent);
+ file->writeQuotedLine(_string4, indent);
+ file->writeQuotedLine(_string5, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CShipSetting::load(SimpleFile *file) {
+ file->readNumber();
+ _string3 = file->readString();
+ _pos1 = file->readPoint();
+ _string4 = file->readString();
+ _string5 = file->readString();
+
+ CBackground::load(file);
+}
+
+bool CShipSetting::handleEvent(CEnterRoomMsg &msg) {
+ warning("CShipSetting::handleEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/ship_setting.h b/engines/titanic/game/ship_setting.h
new file mode 100644
index 0000000000..cbf4e9f61a
--- /dev/null
+++ b/engines/titanic/game/ship_setting.h
@@ -0,0 +1,56 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SHIP_SETTING_H
+#define TITANIC_SHIP_SETTING_H
+
+#include "titanic/core/background.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CShipSetting : public CBackground, CEnterRoomMsgTarget {
+private:
+ CString _string3;
+ Common::Point _pos1;
+ CString _string4;
+ CString _string5;
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+ CShipSetting();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SHIP_SETTING_H */
diff --git a/engines/titanic/game/ship_setting_button.cpp b/engines/titanic/game/ship_setting_button.cpp
new file mode 100644
index 0000000000..95507f3c90
--- /dev/null
+++ b/engines/titanic/game/ship_setting_button.cpp
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/ship_setting_button.h"
+
+namespace Titanic {
+
+CShipSettingButton::CShipSettingButton() : CGameObject(), _fieldC8(0), _fieldCC(0) {
+}
+
+void CShipSettingButton::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeNumberLine(_fieldC8, indent);
+ file->writeNumberLine(_fieldCC, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CShipSettingButton::load(SimpleFile *file) {
+ file->readNumber();
+ _string1 = file->readString();
+ _fieldC8 = file->readNumber();
+ _fieldCC = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/ship_setting_button.h b/engines/titanic/game/ship_setting_button.h
new file mode 100644
index 0000000000..e6a6822854
--- /dev/null
+++ b/engines/titanic/game/ship_setting_button.h
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SHIP_SETTING_BUTTON_H
+#define TITANIC_SHIP_SETTING_BUTTON_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CShipSettingButton : public CGameObject {
+private:
+ CString _string1;
+ int _fieldC8;
+ int _fieldCC;
+public:
+ CLASSDEF
+ CShipSettingButton();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SHIP_SETTING_BUTTON_H */
diff --git a/engines/titanic/game/show_cell_points.cpp b/engines/titanic/game/show_cell_points.cpp
new file mode 100644
index 0000000000..e23d588b76
--- /dev/null
+++ b/engines/titanic/game/show_cell_points.cpp
@@ -0,0 +1,41 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/show_cell_points.h"
+
+namespace Titanic {
+
+void CShowCellpoints::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_strValue, indent);
+ file->writeNumberLine(_numValue, indent);
+ CGameObject::save(file, indent);
+}
+
+void CShowCellpoints::load(SimpleFile *file) {
+ file->readNumber();
+ _strValue = file->readString();
+ _numValue = file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/show_cell_points.h b/engines/titanic/game/show_cell_points.h
new file mode 100644
index 0000000000..a3d7ba2e5a
--- /dev/null
+++ b/engines/titanic/game/show_cell_points.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef SHOW_CELL_POINTS_H
+#define SHOW_CELL_POINTS_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CShowCellpoints : public CGameObject {
+public:
+ CString _strValue;
+ int _numValue;
+public:
+ CLASSDEF
+ CShowCellpoints() : CGameObject(), _numValue(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* SHOW_CELL_POINTS_H */
diff --git a/engines/titanic/game/speech_dispensor.cpp b/engines/titanic/game/speech_dispensor.cpp
new file mode 100644
index 0000000000..72873391db
--- /dev/null
+++ b/engines/titanic/game/speech_dispensor.cpp
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/speech_dispensor.h"
+
+namespace Titanic {
+
+void CSpeechDispensor::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_fieldEC, indent);
+ file->writeNumberLine(_fieldF0, indent);
+ file->writeNumberLine(_fieldF4, indent);
+ file->writeNumberLine(_fieldF8, indent);
+ file->writeNumberLine(_fieldFC, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CSpeechDispensor::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _fieldEC = file->readNumber();
+ _fieldF0 = file->readNumber();
+ _fieldF4 = file->readNumber();
+ _fieldF8 = file->readNumber();
+ _fieldFC = file->readNumber();
+
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/speech_dispensor.h b/engines/titanic/game/speech_dispensor.h
new file mode 100644
index 0000000000..440746e5c2
--- /dev/null
+++ b/engines/titanic/game/speech_dispensor.h
@@ -0,0 +1,56 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SPEECH_DISPENSOR_H
+#define TITANIC_SPEECH_DISPENSOR_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CSpeechDispensor : public CBackground {
+private:
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+ int _fieldEC;
+ int _fieldF0;
+ int _fieldF4;
+ int _fieldF8;
+ int _fieldFC;
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SPEECH_DISPENSOR_H */
diff --git a/engines/titanic/game/splash_animation.cpp b/engines/titanic/game/splash_animation.cpp
new file mode 100644
index 0000000000..16cf067629
--- /dev/null
+++ b/engines/titanic/game/splash_animation.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/splash_animation.h"
+
+namespace Titanic {
+
+void CSplashAnimation::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CSplashAnimation::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/splash_animation.h b/engines/titanic/game/splash_animation.h
new file mode 100644
index 0000000000..2f4056231b
--- /dev/null
+++ b/engines/titanic/game/splash_animation.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SPLASH_ANIMATION_H
+#define TITANIC_SPLASH_ANIMATION_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CSplashAnimation : public CGameObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SPLASH_ANIMATION_H */
diff --git a/engines/titanic/game/starling_puret.cpp b/engines/titanic/game/starling_puret.cpp
new file mode 100644
index 0000000000..1fa0dc82ea
--- /dev/null
+++ b/engines/titanic/game/starling_puret.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/starling_puret.h"
+
+namespace Titanic {
+
+void CStarlingPuret::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ CGameObject::save(file, indent);
+}
+
+void CStarlingPuret::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/starling_puret.h b/engines/titanic/game/starling_puret.h
new file mode 100644
index 0000000000..7299c68449
--- /dev/null
+++ b/engines/titanic/game/starling_puret.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STARLING_PURET_H
+#define TITANIC_STARLING_PURET_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CStarlingPuret : public CGameObject {
+private:
+ int _value;
+public:
+ CLASSDEF
+ CStarlingPuret() : CGameObject(), _value(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STARLING_PURET_H */
diff --git a/engines/titanic/game/start_action.cpp b/engines/titanic/game/start_action.cpp
new file mode 100644
index 0000000000..9bafd01282
--- /dev/null
+++ b/engines/titanic/game/start_action.cpp
@@ -0,0 +1,46 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/start_action.h"
+
+namespace Titanic {
+
+CStartAction::CStartAction() : CBackground() {
+}
+
+void CStartAction::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string3, indent);
+ file->writeQuotedLine(_string4, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CStartAction::load(SimpleFile *file) {
+ file->readNumber();
+ _string3 = file->readString();
+ _string4 = file->readString();
+
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/start_action.h b/engines/titanic/game/start_action.h
new file mode 100644
index 0000000000..fc7a2ea514
--- /dev/null
+++ b/engines/titanic/game/start_action.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_START_ACTION_H
+#define TITANIC_START_ACTION_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CStartAction : public CBackground {
+protected:
+ CString _string3;
+ CString _string4;
+public:
+ CLASSDEF
+ CStartAction();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_START_ACTION_H */
diff --git a/engines/titanic/game/stop_phonograph_button.cpp b/engines/titanic/game/stop_phonograph_button.cpp
new file mode 100644
index 0000000000..7c4367a9c7
--- /dev/null
+++ b/engines/titanic/game/stop_phonograph_button.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/stop_phonograph_button.h"
+
+namespace Titanic {
+
+void CStopPhonographButton::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CBackground::save(file, indent);
+}
+
+void CStopPhonographButton::load(SimpleFile *file) {
+ file->readNumber();
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/stop_phonograph_button.h b/engines/titanic/game/stop_phonograph_button.h
new file mode 100644
index 0000000000..b1accfe1e1
--- /dev/null
+++ b/engines/titanic/game/stop_phonograph_button.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STOP_PHONOGRAPH_BUTTON_H
+#define TITANIC_STOP_PHONOGRAPH_BUTTON_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CStopPhonographButton : public CBackground {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STOP_PHONOGRAPH_BUTTON_H */
diff --git a/engines/titanic/game/sub_glass.cpp b/engines/titanic/game/sub_glass.cpp
new file mode 100644
index 0000000000..b16199deed
--- /dev/null
+++ b/engines/titanic/game/sub_glass.cpp
@@ -0,0 +1,54 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/sub_glass.h"
+
+namespace Titanic {
+
+CSUBGlass::CSUBGlass() : _fieldBC(0), _fieldC0(0), _fieldC4(1), _fieldC8(0) {
+}
+
+void CSUBGlass::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeNumberLine(_fieldC0, indent);
+ file->writeNumberLine(_fieldC4, indent);
+ file->writeNumberLine(_fieldC8, indent);
+ file->writeNumberLine(_fieldCC, indent);
+ file->writeQuotedLine(_string, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CSUBGlass::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _fieldC0 = file->readNumber();
+ _fieldC4 = file->readNumber();
+ _fieldC8 = file->readNumber();
+ _fieldCC = file->readNumber();
+ _string = file->readString();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/sub_glass.h b/engines/titanic/game/sub_glass.h
new file mode 100644
index 0000000000..b7ba51379e
--- /dev/null
+++ b/engines/titanic/game/sub_glass.h
@@ -0,0 +1,55 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SUB_GLASS_H
+#define TITANIC_SUB_GLASS_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CSUBGlass : public CGameObject {
+private:
+ int _fieldBC;
+ int _fieldC0;
+ int _fieldC4;
+ int _fieldC8;
+ int _fieldCC;
+ CString _string;
+public:
+ CLASSDEF
+ CSUBGlass();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ROOM_ITEM_H */
diff --git a/engines/titanic/game/sub_wrapper.cpp b/engines/titanic/game/sub_wrapper.cpp
new file mode 100644
index 0000000000..be6b3e275f
--- /dev/null
+++ b/engines/titanic/game/sub_wrapper.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/sub_wrapper.h"
+
+namespace Titanic {
+
+void CSUBWrapper::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ CGameObject::save(file, indent);
+}
+
+void CSUBWrapper::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/sub_wrapper.h b/engines/titanic/game/sub_wrapper.h
new file mode 100644
index 0000000000..6b724f8000
--- /dev/null
+++ b/engines/titanic/game/sub_wrapper.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SUB_WRAPPER_H
+#define TITANIC_SUB_WRAPPER_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CSUBWrapper : public CGameObject {
+public:
+ int _value;
+public:
+ CLASSDEF
+ CSUBWrapper() : CGameObject(), _value(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SUB_WRAPPER_H */
diff --git a/engines/titanic/game/sweet_bowl.cpp b/engines/titanic/game/sweet_bowl.cpp
new file mode 100644
index 0000000000..f6bbb2c89c
--- /dev/null
+++ b/engines/titanic/game/sweet_bowl.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/sweet_bowl.h"
+
+namespace Titanic {
+
+void CSweetBowl::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CSweetBowl::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/sweet_bowl.h b/engines/titanic/game/sweet_bowl.h
new file mode 100644
index 0000000000..fa607bb67b
--- /dev/null
+++ b/engines/titanic/game/sweet_bowl.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SWEET_BOWL_H
+#define TITANIC_SWEET_BOWL_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CSweetBowl : public CGameObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CREDITS_H */
diff --git a/engines/titanic/game/television.cpp b/engines/titanic/game/television.cpp
new file mode 100644
index 0000000000..4c6b38ad32
--- /dev/null
+++ b/engines/titanic/game/television.cpp
@@ -0,0 +1,72 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/television.h"
+
+namespace Titanic {
+
+int CTelevision::_v1;
+int CTelevision::_v2;
+int CTelevision::_v3;
+int CTelevision::_v4;
+int CTelevision::_v5;
+int CTelevision::_v6;
+
+CTelevision::CTelevision() : CBackground(), _fieldE0(1),
+ _fieldE4(7), _fieldE8(0), _fieldEC(0), _fieldF0(0) {
+}
+
+void CTelevision::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_v1, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_v2, indent);
+ file->writeNumberLine(_fieldE8, indent);
+ file->writeNumberLine(_v3, indent);
+ file->writeNumberLine(_fieldEC, indent);
+ file->writeNumberLine(_v4, indent);
+ file->writeNumberLine(_fieldF0, indent);
+ file->writeNumberLine(_v5, indent);
+ file->writeNumberLine(_v6, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CTelevision::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ _v1 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _v2 = file->readNumber();
+ _fieldE8 = file->readNumber();
+ _v3 = file->readNumber();
+ _fieldEC = file->readNumber();
+ _v4 = file->readNumber();
+ _fieldF0 = file->readNumber();
+ _v5 = file->readNumber();
+ _v6 = file->readNumber();
+
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/television.h b/engines/titanic/game/television.h
new file mode 100644
index 0000000000..d64c253d90
--- /dev/null
+++ b/engines/titanic/game/television.h
@@ -0,0 +1,61 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TELEVISION_H
+#define TITANIC_TELEVISION_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CTelevision : public CBackground {
+private:
+ static int _v1;
+ static int _v2;
+ static int _v3;
+ static int _v4;
+ static int _v5;
+ static int _v6;
+private:
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+ int _fieldEC;
+ int _fieldF0;
+public:
+ CLASSDEF
+ CTelevision();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TELEVISION_H */
diff --git a/engines/titanic/game/third_class_canal.cpp b/engines/titanic/game/third_class_canal.cpp
new file mode 100644
index 0000000000..a25d5f20ef
--- /dev/null
+++ b/engines/titanic/game/third_class_canal.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/third_class_canal.h"
+
+namespace Titanic {
+
+void CThirdClassCanal::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CBackground::save(file, indent);
+}
+
+void CThirdClassCanal::load(SimpleFile *file) {
+ file->readNumber();
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/third_class_canal.h b/engines/titanic/game/third_class_canal.h
new file mode 100644
index 0000000000..7a2c3d4f77
--- /dev/null
+++ b/engines/titanic/game/third_class_canal.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_THIRD_CLASS_CANAL_H
+#define TITANIC_THIRD_CLASS_CANAL_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CThirdClassCanal : public CBackground {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_THIRD_CLASS_CANAL_H */
diff --git a/engines/titanic/game/throw_tv_down_well.cpp b/engines/titanic/game/throw_tv_down_well.cpp
new file mode 100644
index 0000000000..d77d7760c5
--- /dev/null
+++ b/engines/titanic/game/throw_tv_down_well.cpp
@@ -0,0 +1,41 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/throw_tv_down_well.h"
+
+namespace Titanic {
+
+void CThrowTVDownWell::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_strValue, indent);
+ file->writeNumberLine(_numValue, indent);
+ CGameObject::save(file, indent);
+}
+
+void CThrowTVDownWell::load(SimpleFile *file) {
+ file->readNumber();
+ _strValue = file->readString();
+ _numValue = file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/throw_tv_down_well.h b/engines/titanic/game/throw_tv_down_well.h
new file mode 100644
index 0000000000..dee145014b
--- /dev/null
+++ b/engines/titanic/game/throw_tv_down_well.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_THROW_TV_DOWN_WELL_H
+#define TITANIC_THROW_TV_DOWN_WELL_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CThrowTVDownWell : public CGameObject {
+public:
+ CString _strValue;
+ int _numValue;
+public:
+ CLASSDEF
+ CThrowTVDownWell() : CGameObject(), _numValue(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_THROW_TV_DOWN_WELL_H */
diff --git a/engines/titanic/game/titania_still_control.cpp b/engines/titanic/game/titania_still_control.cpp
new file mode 100644
index 0000000000..96c003defe
--- /dev/null
+++ b/engines/titanic/game/titania_still_control.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/titania_still_control.h"
+
+namespace Titanic {
+
+void CTitaniaStillControl::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CTitaniaStillControl::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/titania_still_control.h b/engines/titanic/game/titania_still_control.h
new file mode 100644
index 0000000000..a0f739db01
--- /dev/null
+++ b/engines/titanic/game/titania_still_control.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TITANIA_STILL_CONTROL_H
+#define TITANIC_TITANIA_STILL_CONTROL_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CTitaniaStillControl : public CGameObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TITANIA_STILL_CONTROL_H */
diff --git a/engines/titanic/game/tow_parrot_nav.cpp b/engines/titanic/game/tow_parrot_nav.cpp
new file mode 100644
index 0000000000..d476681ad4
--- /dev/null
+++ b/engines/titanic/game/tow_parrot_nav.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/tow_parrot_nav.h"
+
+namespace Titanic {
+
+void CTOWParrotNav::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CTOWParrotNav::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/tow_parrot_nav.h b/engines/titanic/game/tow_parrot_nav.h
new file mode 100644
index 0000000000..420c29bfab
--- /dev/null
+++ b/engines/titanic/game/tow_parrot_nav.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TOW_PARROT_NAV_H
+#define TITANIC_TOW_PARROT_NAV_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CTOWParrotNav : public CGameObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TOW_PARROT_NAV_H */
diff --git a/engines/titanic/game/transport/exit_pellerator.cpp b/engines/titanic/game/transport/exit_pellerator.cpp
new file mode 100644
index 0000000000..400214a140
--- /dev/null
+++ b/engines/titanic/game/transport/exit_pellerator.cpp
@@ -0,0 +1,46 @@
+/* ScummVM - Graphic Adventure Engine
+*
+* ScummVM is the legal property of its developers, whose names
+* are too numerous to list here. Please refer to the COPYRIGHT
+* file distributed with this source distribution.
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*
+*/
+
+#include "titanic/game/transport/pellerator.h"
+
+namespace Titanic {
+
+int CPellerator::_v1;
+int CPellerator::_v2;
+
+void CPellerator::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_v1, indent);
+ file->writeNumberLine(_v2, indent);
+
+ CTransport::save(file, indent);
+}
+
+void CPellerator::load(SimpleFile *file) {
+ file->readNumber();
+ _v1 = file->readNumber();
+ _v2 = file->readNumber();
+
+ CTransport::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/transport/exit_pellerator.h b/engines/titanic/game/transport/exit_pellerator.h
new file mode 100644
index 0000000000..e72cbb4b9d
--- /dev/null
+++ b/engines/titanic/game/transport/exit_pellerator.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+*
+* ScummVM is the legal property of its developers, whose names
+* are too numerous to list here. Please refer to the COPYRIGHT
+* file distributed with this source distribution.
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*
+*/
+
+#ifndef TITANIC_PELLERATOR_H
+#define TITANIC_PELLERATOR_H
+
+#include "titanic/game/transport/transport.h"
+
+namespace Titanic {
+
+class CPellerator : public CTransport {
+private:
+ static int _v1;
+ static int _v2;
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PELLERATOR_H */
diff --git a/engines/titanic/game/transport/gondolier.cpp b/engines/titanic/game/transport/gondolier.cpp
new file mode 100644
index 0000000000..f67a3b68d9
--- /dev/null
+++ b/engines/titanic/game/transport/gondolier.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/transport/gondolier.h"
+
+namespace Titanic {
+
+void CGondolier::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CTransport::save(file, indent);
+}
+
+void CGondolier::load(SimpleFile *file) {
+ file->readNumber();
+ CTransport::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/transport/gondolier.h b/engines/titanic/game/transport/gondolier.h
new file mode 100644
index 0000000000..bdfb3e7156
--- /dev/null
+++ b/engines/titanic/game/transport/gondolier.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_GONDOLIER_H
+#define TITANIC_GONDOLIER_H
+
+#include "titanic/game/transport/transport.h"
+
+namespace Titanic {
+
+class CGondolier : public CTransport {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_GONDOLIER_H */
diff --git a/engines/titanic/game/transport/lift.cpp b/engines/titanic/game/transport/lift.cpp
new file mode 100644
index 0000000000..edf69fe31a
--- /dev/null
+++ b/engines/titanic/game/transport/lift.cpp
@@ -0,0 +1,65 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/transport/lift.h"
+
+namespace Titanic {
+
+int CLift::_v1;
+int CLift::_v2;
+int CLift::_v3;
+int CLift::_v4;
+int CLift::_v5;
+int CLift::_v6;
+
+void CLift::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_v1, indent);
+ file->writeNumberLine(_v2, indent);
+ file->writeNumberLine(_v3, indent);
+ file->writeNumberLine(_v4, indent);
+ file->writeNumberLine(_v5, indent);
+ file->writeNumberLine(_fieldF8, indent);
+ file->writeNumberLine(_v6, indent);
+
+ CTransport::save(file, indent);
+}
+
+void CLift::load(SimpleFile *file) {
+ file->readNumber();
+ _v1 = file->readNumber();
+ _v2 = file->readNumber();
+ _v3 = file->readNumber();
+ _v4 = file->readNumber();
+ _v5 = file->readNumber();
+ _fieldF8 = file->readNumber();
+ _v6 = file->readNumber();
+
+ CTransport::load(file);
+}
+
+bool CLift::handleEvent(CEnterRoomMsg &msg) {
+ warning("CLift::handleEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/transport/lift.h b/engines/titanic/game/transport/lift.h
new file mode 100644
index 0000000000..439e65bb30
--- /dev/null
+++ b/engines/titanic/game/transport/lift.h
@@ -0,0 +1,60 @@
+/* ScummVM - Graphic Adventure Engine
+*
+* ScummVM is the legal property of its developers, whose names
+* are too numerous to list here. Please refer to the COPYRIGHT
+* file distributed with this source distribution.
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*
+*/
+
+#ifndef TITANIC_LIFT_H
+#define TITANIC_LIFT_H
+
+#include "titanic/game/transport/transport.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CLift : public CTransport, CEnterRoomMsgTarget {
+private:
+ static int _v1;
+ static int _v2;
+ static int _v3;
+ static int _v4;
+ static int _v5;
+ static int _v6;
+
+ int _fieldF8;
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+ CLift() : CTransport(), _fieldF8(1) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_LIFT_H */
diff --git a/engines/titanic/game/transport/lift_indicator.cpp b/engines/titanic/game/transport/lift_indicator.cpp
new file mode 100644
index 0000000000..ebeaf55e2e
--- /dev/null
+++ b/engines/titanic/game/transport/lift_indicator.cpp
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/transport/lift_indicator.h"
+
+namespace Titanic {
+
+CLiftindicator::CLiftindicator() : CLift(),
+ _fieldFC(0), _field108(0), _field10C(0) {
+}
+
+void CLiftindicator::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldFC, indent);
+ file->writePoint(_pos2, indent);
+ file->writeNumberLine(_field108, indent);
+ file->writeNumberLine(_field10C, indent);
+
+ CLift::save(file, indent);
+}
+
+void CLiftindicator::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldFC = file->readNumber();
+ _pos2 = file->readPoint();
+ _field108 = file->readNumber();
+ _field10C = file->readNumber();
+
+ CLift::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/transport/lift_indicator.h b/engines/titanic/game/transport/lift_indicator.h
new file mode 100644
index 0000000000..161f032480
--- /dev/null
+++ b/engines/titanic/game/transport/lift_indicator.h
@@ -0,0 +1,56 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_LIFT_INDICATOR_H
+#define TITANIC_LIFT_INDICATOR_H
+
+#include "titanic/game/transport/lift.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CLiftindicator : public CLift {
+private:
+ int _fieldFC;
+ Common::Point _pos2;
+ int _field108;
+ int _field10C;
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg) { return true; }
+public:
+ CLASSDEF
+ CLiftindicator();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_LIFT_INDICATOR_H */
diff --git a/engines/titanic/game/transport/pellerator.cpp b/engines/titanic/game/transport/pellerator.cpp
new file mode 100644
index 0000000000..16f42772c3
--- /dev/null
+++ b/engines/titanic/game/transport/pellerator.cpp
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+*
+* ScummVM is the legal property of its developers, whose names
+* are too numerous to list here. Please refer to the COPYRIGHT
+* file distributed with this source distribution.
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*
+*/
+
+#include "titanic/game/transport/pellerator.h"
+
+namespace Titanic {
+
+int CPellerator::_v1;
+int CPellerator::_v2;
+
+void CPellerator::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_v1, indent);
+ file->writeNumberLine(_v2, indent);
+
+ CTransport::save(file, indent);
+}
+
+void CPellerator::load(SimpleFile *file) {
+ file->readNumber();
+ _v1 = file->readNumber();
+ _v2 = file->readNumber();
+
+ CTransport::load(file);
+}
+
+bool CPellerator::handleEvent(CEnterRoomMsg &msg) {
+ warning("CPellerator::handleEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/transport/pellerator.h b/engines/titanic/game/transport/pellerator.h
new file mode 100644
index 0000000000..c997373382
--- /dev/null
+++ b/engines/titanic/game/transport/pellerator.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+*
+* ScummVM is the legal property of its developers, whose names
+* are too numerous to list here. Please refer to the COPYRIGHT
+* file distributed with this source distribution.
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*
+*/
+
+#ifndef TITANIC_PELLERATOR_H
+#define TITANIC_PELLERATOR_H
+
+#include "titanic/game/transport/transport.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CPellerator : public CTransport, CEnterRoomMsgTarget {
+private:
+ static int _v1;
+ static int _v2;
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PELLERATOR_H */
diff --git a/engines/titanic/game/transport/service_elevator.cpp b/engines/titanic/game/transport/service_elevator.cpp
new file mode 100644
index 0000000000..ba68bc8c2b
--- /dev/null
+++ b/engines/titanic/game/transport/service_elevator.cpp
@@ -0,0 +1,61 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/transport/service_elevator.h"
+
+namespace Titanic {
+
+int CServiceElevator::_v1;
+int CServiceElevator::_v2;
+int CServiceElevator::_v3;
+
+CServiceElevator::CServiceElevator() : CTransport(),
+ _fieldF8(0), _fieldFC(0), _field100(0), _field104(0) {
+}
+
+void CServiceElevator::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_v1, indent);
+ file->writeNumberLine(_v2, indent);
+ file->writeNumberLine(_v3, indent);
+ file->writeNumberLine(_fieldF8, indent);
+ file->writeNumberLine(_fieldFC, indent);
+ file->writeNumberLine(_field100, indent);
+ file->writeNumberLine(_field104, indent);
+
+ CTransport::save(file, indent);
+}
+
+void CServiceElevator::load(SimpleFile *file) {
+ file->readNumber();
+ _v1 = file->readNumber();
+ _v2 = file->readNumber();
+ _v3 = file->readNumber();
+ _fieldF8 = file->readNumber();
+ _fieldFC = file->readNumber();
+ _field100 = file->readNumber();
+ _field104 = file->readNumber();
+
+ CTransport::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/transport/service_elevator.h b/engines/titanic/game/transport/service_elevator.h
new file mode 100644
index 0000000000..9edc1f9100
--- /dev/null
+++ b/engines/titanic/game/transport/service_elevator.h
@@ -0,0 +1,57 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SERVICE_ELEVATOR_H
+#define TITANIC_SERVICE_ELEVATOR_H
+
+#include "titanic/game/transport/transport.h"
+
+namespace Titanic {
+
+class CServiceElevator : public CTransport {
+private:
+ static int _v1;
+ static int _v2;
+ static int _v3;
+
+ int _fieldF8;
+ int _fieldFC;
+ int _field100;
+ int _field104;
+public:
+ CLASSDEF
+ CServiceElevator();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SERVICE_ELEVATOR_H */
diff --git a/engines/titanic/game/transport/transport.cpp b/engines/titanic/game/transport/transport.cpp
new file mode 100644
index 0000000000..ef31a07367
--- /dev/null
+++ b/engines/titanic/game/transport/transport.cpp
@@ -0,0 +1,46 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/transport/transport.h"
+
+namespace Titanic {
+
+CTransport::CTransport() : CMobile(), _string1("*.*.*") {
+}
+
+void CTransport::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeQuotedLine(_string2, indent);
+
+ CMobile::save(file, indent);
+}
+
+void CTransport::load(SimpleFile *file) {
+ file->readNumber();
+ _string1 = file->readString();
+ _string2 = file->readString();
+
+ CMobile::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/transport/transport.h b/engines/titanic/game/transport/transport.h
new file mode 100644
index 0000000000..faa00b4dd9
--- /dev/null
+++ b/engines/titanic/game/transport/transport.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TRANSPORT_H
+#define TITANIC_TRANSPORT_H
+
+#include "titanic/npcs/mobile.h"
+
+namespace Titanic {
+
+class CTransport : public CMobile {
+public:
+ CString _string1;
+ CString _string2;
+public:
+ CLASSDEF
+ CTransport();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TRANSPORT_H */
diff --git a/engines/titanic/game/up_lighter.cpp b/engines/titanic/game/up_lighter.cpp
new file mode 100644
index 0000000000..817b179e3e
--- /dev/null
+++ b/engines/titanic/game/up_lighter.cpp
@@ -0,0 +1,56 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/up_lighter.h"
+
+namespace Titanic {
+
+CUpLighter::CUpLighter() : CDropTarget(), _field118(0),
+ _field11C(0), _field120(0), _field124(0) {
+}
+
+void CUpLighter::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_field118, indent);
+ file->writeNumberLine(_field11C, indent);
+ file->writeNumberLine(_field120, indent);
+ file->writeNumberLine(_field124, indent);
+
+ CDropTarget::save(file, indent);
+}
+
+void CUpLighter::load(SimpleFile *file) {
+ file->readNumber();
+ _field118 = file->readNumber();
+ _field11C = file->readNumber();
+ _field120 = file->readNumber();
+ _field124 = file->readNumber();
+
+ CDropTarget::load(file);
+}
+
+bool CUpLighter::handleEvent(CEnterRoomMsg &msg) {
+ warning("CUpLighter::handleEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/up_lighter.h b/engines/titanic/game/up_lighter.h
new file mode 100644
index 0000000000..6c722ddc2a
--- /dev/null
+++ b/engines/titanic/game/up_lighter.h
@@ -0,0 +1,56 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_UP_LIGHTER_H
+#define TITANIC_UP_LIGHTER_H
+
+#include "titanic/core/drop_target.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CUpLighter : public CDropTarget, CEnterRoomMsgTarget {
+private:
+ int _field118;
+ int _field11C;
+ int _field120;
+ int _field124;
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+ CUpLighter();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_UP_LIGHTER_H */
diff --git a/engines/titanic/game/useless_lever.cpp b/engines/titanic/game/useless_lever.cpp
new file mode 100644
index 0000000000..afc025b58f
--- /dev/null
+++ b/engines/titanic/game/useless_lever.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/useless_lever.h"
+
+namespace Titanic {
+
+void CUselessLever::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CToggleButton::save(file, indent);
+}
+
+void CUselessLever::load(SimpleFile *file) {
+ file->readNumber();
+ CToggleButton::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/useless_lever.h b/engines/titanic/game/useless_lever.h
new file mode 100644
index 0000000000..f582bdee63
--- /dev/null
+++ b/engines/titanic/game/useless_lever.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_USELESS_LEVER_H
+#define TITANIC_USELESS_LEVER_H
+
+#include "titanic/gfx/toggle_button.h"
+
+namespace Titanic {
+
+class CUselessLever : public CToggleButton {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_UP_LIGHTER_H */
diff --git a/engines/titanic/game/volume_control.cpp b/engines/titanic/game/volume_control.cpp
new file mode 100644
index 0000000000..801dfd1b60
--- /dev/null
+++ b/engines/titanic/game/volume_control.cpp
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/volume_control.h"
+
+namespace Titanic {
+
+CVolumeControl::CVolumeControl() : CGameObject() {
+}
+
+void CVolumeControl::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeNumberLine(_fieldCC, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CVolumeControl::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _string1 = file->readString();
+ _fieldCC = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+bool CVolumeControl::handleEvent(CEnterNodeMsg &msg) {
+ warning("CVolumeControl::handleEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/volume_control.h b/engines/titanic/game/volume_control.h
new file mode 100644
index 0000000000..f3f6a75278
--- /dev/null
+++ b/engines/titanic/game/volume_control.h
@@ -0,0 +1,55 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_VOLUME_CONTROL_H
+#define TITANIC_VOLUME_CONTROL_H
+
+#include "titanic/core/game_object.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CVolumeControl : public CGameObject, CEnterNodeMsgTarget {
+private:
+ int _fieldBC;
+ CString _string1;
+ int _fieldCC;
+protected:
+ virtual bool handleEvent(CEnterNodeMsg &msg);
+public:
+ CLASSDEF
+ CVolumeControl();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_VOLUME_CONTROL_H */
diff --git a/engines/titanic/game/wheel_button.cpp b/engines/titanic/game/wheel_button.cpp
new file mode 100644
index 0000000000..0fad6848fd
--- /dev/null
+++ b/engines/titanic/game/wheel_button.cpp
@@ -0,0 +1,49 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/wheel_button.h"
+
+namespace Titanic {
+
+CWheelButton::CWheelButton() : CBackground(),
+ _fieldE0(0), _fieldE4(0), _fieldE8(0) {
+}
+
+void CWheelButton::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_fieldE8, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CWheelButton::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _fieldE8 = file->readNumber();
+
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/wheel_button.h b/engines/titanic/game/wheel_button.h
new file mode 100644
index 0000000000..75e1268585
--- /dev/null
+++ b/engines/titanic/game/wheel_button.h
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_WHEEL_BUTTON_H
+#define TITANIC_WHEEL_BUTTON_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CWheelButton : public CBackground {
+public:
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+public:
+ CLASSDEF
+ CWheelButton();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_WHEEL_BUTTON_H */
diff --git a/engines/titanic/game/wheel_hotspot.cpp b/engines/titanic/game/wheel_hotspot.cpp
new file mode 100644
index 0000000000..8b05f45642
--- /dev/null
+++ b/engines/titanic/game/wheel_hotspot.cpp
@@ -0,0 +1,43 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/wheel_hotspot.h"
+
+namespace Titanic {
+
+void CWheelHotSpot::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CWheelHotSpot::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/wheel_hotspot.h b/engines/titanic/game/wheel_hotspot.h
new file mode 100644
index 0000000000..7164b88b71
--- /dev/null
+++ b/engines/titanic/game/wheel_hotspot.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_WHEEL_HOTSPOT_H
+#define TITANIC_WHEEL_HOTSPOT_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CWheelHotSpot : public CBackground {
+public:
+ int _fieldE0;
+ int _fieldE4;
+public:
+ CLASSDEF
+ CWheelHotSpot() : CBackground(), _fieldE0(0), _fieldE4(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_WHEEL_HOTSPOT_H */
diff --git a/engines/titanic/game/wheel_spin.cpp b/engines/titanic/game/wheel_spin.cpp
new file mode 100644
index 0000000000..7f16a4c559
--- /dev/null
+++ b/engines/titanic/game/wheel_spin.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/wheel_spin.h"
+
+namespace Titanic {
+
+void CWheelSpin::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ CBackground::save(file, indent);
+}
+
+void CWheelSpin::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/wheel_spin.h b/engines/titanic/game/wheel_spin.h
new file mode 100644
index 0000000000..2e21da4984
--- /dev/null
+++ b/engines/titanic/game/wheel_spin.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_WHEEL_SPIN_H
+#define TITANIC_WHEEL_SPIN_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CWheelSpin : public CBackground {
+public:
+ int _value;
+public:
+ CLASSDEF
+ CWheelSpin() : CBackground(), _value(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_WHEEL_SPIN_H */
diff --git a/engines/titanic/game/wheel_spin_horn.cpp b/engines/titanic/game/wheel_spin_horn.cpp
new file mode 100644
index 0000000000..3bc705dddb
--- /dev/null
+++ b/engines/titanic/game/wheel_spin_horn.cpp
@@ -0,0 +1,43 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game/wheel_spin_horn.h"
+
+namespace Titanic {
+
+void CWheelSpinHorn::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeQuotedLine(_string2, indent);
+
+ CWheelSpin::save(file, indent);
+}
+
+void CWheelSpinHorn::load(SimpleFile *file) {
+ file->readNumber();
+ _string1 = file->readString();
+ _string2 = file->readString();
+
+ CWheelSpin::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game/wheel_spin_horn.h b/engines/titanic/game/wheel_spin_horn.h
new file mode 100644
index 0000000000..e4c0bd738c
--- /dev/null
+++ b/engines/titanic/game/wheel_spin_horn.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_WHEEL_SPIN_HORN_H
+#define TITANIC_WHEEL_SPIN_HORN_H
+
+#include "titanic/game/wheel_spin.h"
+
+namespace Titanic {
+
+class CWheelSpinHorn : public CWheelSpin {
+public:
+ CString _string1;
+ CString _string2;
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_WHEEL_SPIN_HORN_H */
diff --git a/engines/titanic/game_location.cpp b/engines/titanic/game_location.cpp
new file mode 100644
index 0000000000..23c2ae2598
--- /dev/null
+++ b/engines/titanic/game_location.cpp
@@ -0,0 +1,115 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game_location.h"
+#include "titanic/game_manager.h"
+#include "titanic/game_state.h"
+#include "titanic/core/game_object.h"
+#include "titanic/core/project_item.h"
+
+namespace Titanic {
+
+#define STARTING_ROOM 3
+#define STARTING_NODE 1
+#define STARTING_VIEW 4
+
+CGameLocation::CGameLocation(CGameState *owner) : _gameState(owner),
+ _view(nullptr), _roomNumber(STARTING_ROOM),
+ _nodeNumber(STARTING_NODE), _viewNumber(STARTING_VIEW) {
+}
+
+void CGameLocation::save(SimpleFile *file) const {
+ file->writeNumber(_roomNumber);
+ file->writeNumber(_nodeNumber);
+ file->writeNumber(_viewNumber);
+}
+
+void CGameLocation::load(SimpleFile *file) {
+ _view = nullptr;
+ _roomNumber = file->readNumber();
+ _nodeNumber = file->readNumber();
+ _viewNumber = file->readNumber();
+}
+
+void CGameLocation::setView(CViewItem *view) {
+ if (_view) {
+ for (CTreeItem *treeItem = view; treeItem;
+ treeItem = treeItem->scan(_view)) {
+ CGameObject *obj = dynamic_cast<CGameObject *>(treeItem);
+ if (obj)
+ obj->fn2();
+ }
+ }
+
+ _view = view;
+ if (_view) {
+ _viewNumber = _view->_viewNumber;
+ _nodeNumber = _view->findNode()->_nodeNumber;
+ _roomNumber = _view->findRoom()->_roomNumber;
+ } else {
+ _viewNumber = _nodeNumber = _roomNumber = -1;
+ }
+}
+
+CViewItem *CGameLocation::getView() {
+ if (!_view) {
+ CGameManager *gm = _gameState->_gameManager;
+ _view = gm->_project->findView(_roomNumber, _nodeNumber, _viewNumber);
+
+ if (!_view) {
+ // Fallback if view not found
+ _view = gm->_project->findView(STARTING_ROOM,
+ STARTING_NODE, STARTING_VIEW);
+
+ if (!_view) {
+ // Fallback for the fallback
+ for (int idx = 0; idx < 99 && !_view; ++idx) {
+ _view = gm->_project->findView(idx, 1, 1);
+ }
+ }
+ }
+ }
+
+ if (!_view) {
+ // Okay seriously, yet another fallback if view not found
+ _viewNumber = _nodeNumber = _roomNumber = -1;
+ _view = nullptr;
+ } else {
+ _viewNumber = _view->_viewNumber;
+ _nodeNumber = _view->findNode()->_nodeNumber;
+ _roomNumber = _view->findRoom()->_roomNumber;
+ }
+
+ return _view;
+}
+
+CNodeItem *CGameLocation::getNode() {
+ CViewItem *view = getView();
+ return !view ? nullptr : view->findNode();
+}
+
+CRoomItem *CGameLocation::getRoom() {
+ CViewItem *view = getView();
+ return !view ? nullptr : view->findRoom();
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game_location.h b/engines/titanic/game_location.h
new file mode 100644
index 0000000000..a64a82403b
--- /dev/null
+++ b/engines/titanic/game_location.h
@@ -0,0 +1,79 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_GAME_LOCATION_H
+#define TITANIC_GAME_LOCATION_H
+
+#include "titanic/simple_file.h"
+#include "titanic/core/node_item.h"
+#include "titanic/core/room_item.h"
+#include "titanic/core/view_item.h"
+
+namespace Titanic {
+
+class CGameState;
+
+class CGameLocation {
+private:
+ CGameState *_gameState;
+ CViewItem *_view;
+
+ int _roomNumber;
+ int _nodeNumber;
+ int _viewNumber;
+public:
+ CGameLocation(CGameState *owner);
+
+ /**
+ * Save the data for the class to file
+ */
+ void save(SimpleFile *file) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ void load(SimpleFile *file);
+
+ /**
+ * Set the current view
+ */
+ void setView(CViewItem *view);
+
+ /**
+ * Get the current view
+ */
+ CViewItem *getView();
+
+ /**
+ * Get the current node
+ */
+ CNodeItem *getNode();
+
+ /**
+ * Get the current room
+ */
+ CRoomItem *getRoom();
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_GAME_LOCATION_H */
diff --git a/engines/titanic/game_manager.cpp b/engines/titanic/game_manager.cpp
new file mode 100644
index 0000000000..49a881d8e2
--- /dev/null
+++ b/engines/titanic/game_manager.cpp
@@ -0,0 +1,238 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/titanic.h"
+#include "titanic/game_manager.h"
+#include "titanic/game_view.h"
+#include "titanic/screen_manager.h"
+#include "titanic/core/project_item.h"
+#include "titanic/messages/messages.h"
+#include "titanic/pet_control/pet_control.h"
+
+namespace Titanic {
+
+void CGameManagerList::postLoad(uint ticks, CProjectItem *project) {
+ for (iterator i = begin(); i != end(); ++i)
+ (*i)->postLoad(ticks, project);
+}
+
+void CGameManagerList::preSave() {
+ for (iterator i = begin(); i != end(); ++i)
+ (*i)->preSave();
+}
+
+void CGameManagerList::postSave() {
+ for (iterator i = begin(); i != end(); ++i)
+ (*i)->postSave();
+}
+
+void CGameManagerList::update(uint ticks) {
+ warning("TODO: CGameManagerList::update");
+}
+
+/*------------------------------------------------------------------------*/
+
+void CGameManagerListItem::postLoad(uint ticks, CProjectItem *project) {
+ warning("TODO");
+}
+
+void CGameManagerListItem::preSave() {
+ warning("TODO: CGameManagerListItem::preSave");
+}
+
+void CGameManagerListItem::postSave() {
+ warning("TODO: CGameManagerListItem::postSave");
+}
+
+/*------------------------------------------------------------------------*/
+
+CGameManager::CGameManager(CProjectItem *project, CGameView *gameView):
+ _project(project), _gameView(gameView), _trueTalkManager(this),
+ _inputHandler(this), _inputTranslator(&_inputHandler),
+ _gameState(this), _sound(this), _musicRoom(this),
+ _field30(0), _soundMaker(nullptr), _field4C(0),
+ _dragItem(nullptr), _field54(0), _lastDiskTicksCount(0), _tickCount2(0) {
+
+ _videoSurface1 = nullptr;
+ _videoSurface2 = CScreenManager::_screenManagerPtr->createSurface(600, 340);
+ _project->setGameManager(this);
+ g_vm->_filesManager.setGameManager(this);
+}
+
+void CGameManager::load(SimpleFile *file) {
+ file->readNumber();
+
+ _gameState.load(file);
+ _list.load(file);
+ _trueTalkManager.load(file);
+ _sound.load(file);
+}
+
+void CGameManager::preLoad() {
+ updateDiskTicksCount();
+ _list.destroyContents();
+ _soundMaker = nullptr;
+
+ _trueTalkManager.preLoad();
+ _sound.preLoad();
+}
+
+void CGameManager::postLoad(CProjectItem *project) {
+ if (_gameView) {
+ _gameView->postLoad();
+
+ if (!_gameView->_surface) {
+ CViewItem *view = getView();
+ if (view)
+ _gameView->setView(view);
+ }
+ }
+
+ // Signal to anything interested that the game has been loaded
+ CLoadSuccessMsg msg(_lastDiskTicksCount - _tickCount2);
+ msg.execute(project, nullptr, MSGFLAG_SCAN);
+
+ // Signal to any registered list items
+ _list.postLoad(_lastDiskTicksCount, _project);
+
+ // Signal the true talk manager and sound
+ _trueTalkManager.postLoad();
+ _sound.postLoad();
+}
+
+void CGameManager::preSave(CProjectItem *project) {
+ // Generate a message that a save is being done
+ updateDiskTicksCount();
+ CPreSaveMsg msg(_lastDiskTicksCount);
+ msg.execute(project, nullptr, MSGFLAG_SCAN);
+
+ // Notify sub-objects of the save
+ _list.preSave();
+ _trueTalkManager.preSave();
+ _sound.preSave();
+}
+
+void CGameManager::postSave() {
+ _list.postSave();
+ _trueTalkManager.postSave();
+}
+
+void CGameManager::initBounds() {
+ _bounds = Common::Rect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
+}
+
+void CGameManager::fn2() {
+ warning("TODO");
+}
+
+void CGameManager::playClip(CMovieClip *clip, CRoomItem *oldRoom, CRoomItem *newRoom) {
+ warning("TODO: CGameManager::playClip");
+}
+
+void CGameManager::update() {
+ handleMovies();
+ frameMessage(getRoom());
+ _list.update(g_vm->_events->getTicksCount());
+ _trueTalkManager.update1();
+ _trueTalkManager.update2();
+ CScreenManager::_screenManagerPtr->_mouseCursor->update();
+
+ CViewItem *view = getView();
+ if (view) {
+ // Expand the game manager's bounds to encompass all the view's items
+ for (CTreeItem *item = view; item; item = item->scan(view)) {
+ Common::Rect r = item->getBounds();
+ if (!r.isEmpty())
+ _bounds.extend(r);
+ }
+
+ // Also include the PET control in the bounds
+ if (_project) {
+ CPetControl *pet = _project->getPetControl();
+ if (pet)
+ _bounds.extend(pet->getBounds());
+ }
+
+ // And the text cursor
+ CScreenManager *screenManager = CScreenManager::_screenManagerPtr;
+ CTextCursor *textCursor = screenManager->_textCursor;
+ if (textCursor && textCursor->_active)
+ _bounds.extend(textCursor->getBounds());
+
+ // Set the surface bounds
+ screenManager->setSurfaceBounds(0, _bounds);
+
+ // Handle redrawing the view
+ if (!_bounds.isEmpty()) {
+ _gameView->draw(_bounds);
+ _bounds = Common::Rect();
+ }
+
+ _gameState.checkForViewChange();
+ }
+}
+
+void CGameManager::handleMovies() {
+ warning("TODO: CGameManager::handleMovies");
+}
+
+void CGameManager::updateDiskTicksCount() {
+ _lastDiskTicksCount = g_vm->_events->getTicksCount();
+}
+
+void CGameManager::viewChange() {
+ delete _videoSurface1;
+ delete _videoSurface2;
+
+ _videoSurface1 = nullptr;
+ _videoSurface2 = CScreenManager::_screenManagerPtr->createSurface(600, 340);
+ _trueTalkManager.viewChange();
+
+ for (CTreeItem *treeItem = _project; treeItem; treeItem = treeItem->scan(_project))
+ treeItem->viewChange();
+
+ initBounds();
+}
+
+CRoomItem *CGameManager::getRoom() {
+ return _gameState._gameLocation.getRoom();
+}
+
+void CGameManager::frameMessage(CRoomItem *room) {
+ if (room) {
+ // Signal the next frame
+ CFrameMsg frameMsg(g_vm->_events->getTicksCount());
+ frameMsg.execute(room, nullptr, MSGFLAG_SCAN);
+
+ if (!_soundMaker) {
+ // Check for a sound maker in the room
+ _soundMaker = dynamic_cast<CBackgroundSoundMaker *>(
+ _project->findByName("zBackgroundSoundMaker"));
+ }
+
+ // If there's a sound maker, dispatch the event to it as well
+ if (_soundMaker)
+ frameMsg.execute(_soundMaker);
+ }
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game_manager.h b/engines/titanic/game_manager.h
new file mode 100644
index 0000000000..f18696bf5c
--- /dev/null
+++ b/engines/titanic/game_manager.h
@@ -0,0 +1,199 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_GAME_MANAGER_H
+#define TITANIC_GAME_MANAGER_H
+
+#include "common/scummsys.h"
+#include "titanic/game_state.h"
+#include "titanic/input_handler.h"
+#include "titanic/input_translator.h"
+#include "titanic/simple_file.h"
+#include "titanic/video_surface.h"
+#include "titanic/true_talk/true_talk_manager.h"
+#include "titanic/sound/background_sound_maker.h"
+#include "titanic/sound/music_room.h"
+#include "titanic/sound/sound.h"
+
+namespace Titanic {
+
+class CProjectItem;
+class CGameView;
+
+class CGameManagerListItem : public ListItem {
+private:
+ static int _v1;
+public:
+ /**
+ * Called after loading a game has finished
+ */
+ void postLoad(uint ticks, CProjectItem *project);
+
+ /**
+ * Called when a game is about to be saved
+ */
+ void preSave();
+
+ /**
+ * Called when a game has finished being saved
+ */
+ void postSave();
+};
+
+class CGameManagerList : public List<CGameManagerListItem> {
+public:
+ /**
+ * Called after loading a game has finished
+ */
+ void postLoad(uint ticks, CProjectItem *project);
+
+ /**
+ * Called when a game is about to be saved
+ */
+ void preSave();
+
+ /**
+ * Called when a game has finished being saved
+ */
+ void postSave();
+
+ /**
+ * Handles an update
+ */
+ void update(uint ticks);
+};
+
+class CGameManager {
+private:
+ CTrueTalkManager _trueTalkManager;
+ CGameManagerList _list;
+ int _field30;
+ CBackgroundSoundMaker *_soundMaker;
+ CVideoSurface *_videoSurface1;
+ int _field4C;
+ int _field54;
+ CVideoSurface *_videoSurface2;
+ uint _lastDiskTicksCount;
+ uint _tickCount2;
+private:
+ /**
+ * Return the current room
+ */
+ CRoomItem *getRoom();
+
+ /**
+ * Generates a message for the next game frame
+ */
+ void frameMessage(CRoomItem *room);
+
+ /**
+ * Handles any ongoing movie playback
+ */
+ void handleMovies();
+public:
+ CProjectItem *_project;
+ CGameView *_gameView;
+ CGameState _gameState;
+ Common::Rect _bounds;
+ CInputHandler _inputHandler;
+ CInputTranslator _inputTranslator;
+ CTreeItem *_dragItem;
+ CMusicRoom _musicRoom;
+ CSound _sound;
+public:
+ CGameManager(CProjectItem *project, CGameView *gameView);
+ ~CGameManager();
+
+ /**
+ * Load data from a save file
+ */
+ void load(SimpleFile *file);
+
+ /**
+ * Called when a game is about to be loaded
+ */
+ void preLoad();
+
+ /**
+ * Called after loading a game has finished
+ */
+ void postLoad(CProjectItem *project);
+
+ /**
+ * Called when a game is about to be saved
+ */
+ void preSave(CProjectItem *project);
+
+ /**
+ * Called when a game has finished being saved
+ */
+ void postSave();
+
+ /**
+ * Updates the game time when the last disk access started
+ */
+ void updateDiskTicksCount();
+
+ CViewItem *getView() { return _gameState._gameLocation.getView(); }
+
+ /**
+ * Lock the input handler
+ */
+ void lockInputHandler() { _inputHandler.incLockCount(); }
+
+ /**
+ * Unlock the input handler
+ */
+ void unlockInputHandler() { _inputHandler.decLockCount(); }
+
+ /**
+ * Set default screen bounds
+ */
+ void initBounds();
+
+ void fn2();
+
+ /**
+ * Plays a movie clip
+ */
+ void playClip(CMovieClip *clip, CRoomItem *oldRoom, CRoomItem *newRoom);
+
+ /**
+ * Main frame update method for the game
+ */
+ void update();
+
+ /**
+ * Called when the view changes
+ */
+ void viewChange();
+
+ bool test54() const { return !_field54; }
+
+ void inc54() { ++_field54; }
+
+ void dec54() { --_field54; }
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_GAME_MANAGER_H */
diff --git a/engines/titanic/game_state.cpp b/engines/titanic/game_state.cpp
new file mode 100644
index 0000000000..f906ff66d3
--- /dev/null
+++ b/engines/titanic/game_state.cpp
@@ -0,0 +1,157 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game_state.h"
+#include "titanic/titanic.h"
+#include "titanic/game_manager.h"
+#include "titanic/screen_manager.h"
+
+namespace Titanic {
+
+bool CGameStateList::isViewChanging() const {
+ warning("TODO: CGameStateList::isViewChanging");
+ return false;
+}
+
+/*------------------------------------------------------------------------*/
+
+CGameState::CGameState(CGameManager *gameManager) :
+ _gameManager(gameManager), _gameLocation(this),
+ _field8(0), _fieldC(0), _mode(GSMODE_0), _field14(0), _field18(0),
+ _field1C(0), _field20(0), _field24(0), _nodeChangeCtr(0),
+ _nodeEnterTicks(0), _field38(0) {
+}
+
+void CGameState::save(SimpleFile *file) const {
+ file->writeNumber(_field18);
+ file->writeNumber(_field8);
+ file->writeNumber(_fieldC);
+ file->writeNumber(_field14);
+ file->writeNumber(_field24);
+ file->writeNumber(_field38);
+ _gameLocation.save(file);
+ file->writeNumber(_field1C);
+}
+
+void CGameState::load(SimpleFile *file) {
+ _field18 = file->readNumber();
+ _field8 = file->readNumber();
+ _fieldC = file->readNumber();
+ _field14 = file->readNumber();
+ _field24 = file->readNumber();
+ _field38 = file->readNumber();
+ _gameLocation.load(file);
+
+ _field1C = file->readNumber();
+ _nodeChangeCtr = 0;
+ _nodeEnterTicks = 0;
+}
+
+void CGameState::setMode(GameStateMode newMode) {
+ CScreenManager *sm = CScreenManager::_screenManagerPtr;
+
+ if (newMode == GSMODE_2 && newMode != _mode) {
+ if (_gameManager)
+ _gameManager->lockInputHandler();
+
+ if (sm && sm->_mouseCursor)
+ sm->_mouseCursor->hide();
+
+ } else if (newMode != GSMODE_2 && newMode != _mode) {
+ if (sm && sm->_mouseCursor)
+ sm->_mouseCursor->show();
+
+ if (_gameManager)
+ _gameManager->unlockInputHandler();
+ }
+
+ _mode = newMode;
+}
+
+void CGameState::setMousePos(const Common::Point &pt) {
+ _mousePos = pt;
+}
+
+void CGameState::enterNode() {
+ ++_nodeChangeCtr;
+ _nodeEnterTicks = g_vm->_events->getTicksCount();
+}
+
+void CGameState::enterView() {
+ CViewItem *oldView = _gameLocation.getView();
+ CViewItem *newView = _list._view;
+ oldView->preEnterView(newView);
+
+ _gameManager->_gameView->setView(newView);
+ CRoomItem *oldRoom = oldView->findNode()->findRoom();
+ CRoomItem *newRoom = newView->findNode()->findRoom();
+ _gameManager->playClip(_list._movieClip, oldRoom, newRoom);
+
+ _gameManager->_sound.preEnterView(newView, newRoom != oldRoom);
+ _gameManager->dec54();
+ oldView->enterView(newView);
+
+ _list._view = nullptr;
+ _list._movieClip = nullptr;
+}
+
+void CGameState::triggerLink(CLinkItem *link) {
+ changeView(link->getDestView(), link->getClip());
+}
+
+void CGameState::changeView(CViewItem *newView, CMovieClip *clip) {
+ // Signal the old view that it's being left
+ CViewItem *oldView = _gameLocation.getView();
+ oldView->leaveView(newView);
+
+ // If Shift key is pressed, skip showing the transition clip
+ if (g_vm->_events->isSpecialPressed(MK_SHIFT))
+ clip = nullptr;
+
+ if (_mode == GSMODE_2) {
+ _list._view = newView;
+ _list._movieClip = clip;
+ } else {
+ oldView->preEnterView(newView);
+ _gameManager->_gameView->setView(newView);
+ CRoomItem *oldRoom = newView->findNode()->findRoom();
+ CRoomItem *newRoom = newView->findNode()->findRoom();
+
+ // If a transition clip is defined, play it
+ if (clip)
+ _gameManager->playClip(clip, oldRoom, newRoom);
+
+ // Final view change handling
+ _gameManager->_sound.preEnterView(newView, newRoom != oldRoom);
+ oldView->enterView(newView);
+ }
+}
+
+void CGameState::checkForViewChange() {
+ if (_mode == GSMODE_2 && _list.isViewChanging()) {
+ setMode(GSMODE_1);
+ if (_list._view)
+ enterView();
+ }
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game_state.h b/engines/titanic/game_state.h
new file mode 100644
index 0000000000..37bb603317
--- /dev/null
+++ b/engines/titanic/game_state.h
@@ -0,0 +1,115 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_GAME_STATE_H
+#define TITANIC_GAME_STATE_H
+
+#include "titanic/core/list.h"
+#include "titanic/core/link_item.h"
+#include "titanic/simple_file.h"
+#include "titanic/game_location.h"
+
+namespace Titanic {
+
+class CGameManager;
+
+enum GameStateMode { GSMODE_0 = 0, GSMODE_1 = 1, GSMODE_2 = 2, GSMODE_3 = 3, GSMODE_4 = 4, GSMODE_5 = 5 };
+
+class CGameStateList : public List<ListItem> {
+public:
+ CViewItem *_view;
+ CMovieClip *_movieClip;
+public:
+ CGameStateList() : List<ListItem>(), _view(nullptr), _movieClip(nullptr) {}
+
+ bool isViewChanging() const;
+};
+
+class CGameState {
+public:
+ CGameManager *_gameManager;
+ CGameLocation _gameLocation;
+ CGameStateList _list;
+ int _field8;
+ int _fieldC;
+ GameStateMode _mode;
+ int _field14;
+ int _field18;
+ int _field1C;
+ int _field20;
+ int _field24;
+ uint _nodeChangeCtr;
+ uint32 _nodeEnterTicks;
+ Common::Point _mousePos;
+ int _field38;
+public:
+ CGameState(CGameManager *gameManager);
+
+ /**
+ * Save the data for the class to file
+ */
+ void save(SimpleFile *file) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ void load(SimpleFile *file);
+
+ /**
+ * Sets a new mode
+ */
+ void setMode(GameStateMode newMode);
+
+ /**
+ * Sets the current mouse position
+ */
+ void setMousePos(const Common::Point &pt);
+
+ /**
+ * Called by the PET when a new node is entered
+ */
+ void enterNode();
+
+ /**
+ * Enters a new view
+ */
+ void enterView();
+
+ /**
+ * Triggers a link item in a view
+ */
+ void triggerLink(CLinkItem *link);
+
+ /**
+ * Changes the current view
+ */
+ void changeView(CViewItem *newView, CMovieClip *clip);
+
+ /**
+ * Check for whether it's time to change the active view
+ */
+ void checkForViewChange();
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_GAME_STATE_H */
diff --git a/engines/titanic/game_view.cpp b/engines/titanic/game_view.cpp
new file mode 100644
index 0000000000..d04c3e1cfc
--- /dev/null
+++ b/engines/titanic/game_view.cpp
@@ -0,0 +1,74 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/game_view.h"
+#include "titanic/game_manager.h"
+#include "titanic/main_game_window.h"
+#include "titanic/screen_manager.h"
+
+namespace Titanic {
+
+CGameView::CGameView() : _gameManager(nullptr), _surface(nullptr) {
+}
+
+void CGameView::setGameManager(CGameManager *gameManager) {
+ _gameManager = gameManager;
+}
+
+void CGameView::postLoad() {
+ delete _surface;
+ _surface = nullptr;
+}
+
+void CGameView::deleteView(int roomNumber, int nodeNumber, int viewNumber) {
+ CViewItem *view = _gameManager->_project->findView(roomNumber, nodeNumber, viewNumber);
+ if (view)
+ delete view;
+}
+
+void CGameView::createSurface(const CResourceKey &key) {
+ // Reset any current view surface
+ _gameManager->initBounds();
+ delete _surface;
+ _surface = nullptr;
+
+ // Create a fresh surface
+ CScreenManager::setCurrent();
+ _surface = CScreenManager::_currentScreenManagerPtr->createSurface(key);
+ _surface->_field3C = true;
+}
+
+/*------------------------------------------------------------------------*/
+
+CSTGameView::CSTGameView(CMainGameWindow *gameWindow) :
+ CGameView(), _gameWindow(gameWindow) {
+}
+
+void CSTGameView::setView(CViewItem *view) {
+ _gameWindow->setActiveView(view);
+}
+
+void CSTGameView::draw(const Common::Rect &bounds) {
+ _gameWindow->draw();
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/game_view.h b/engines/titanic/game_view.h
new file mode 100644
index 0000000000..a3e1fe7720
--- /dev/null
+++ b/engines/titanic/game_view.h
@@ -0,0 +1,87 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_GAME_VIEW_H
+#define TITANIC_GAME_VIEW_H
+
+#include "common/scummsys.h"
+#include "titanic/core/view_item.h"
+#include "titanic/video_surface.h"
+
+namespace Titanic {
+
+class CMainGameWindow;
+class CGameManager;
+
+class CGameView {
+protected:
+ CGameManager *_gameManager;
+public:
+ CVideoSurface *_surface;
+public:
+ CGameView();
+
+ /**
+ * Set the game manager
+ */
+ void setGameManager(CGameManager *gameManager);
+
+ /**
+ * Called after loading a game has finished
+ */
+ void postLoad();
+
+ virtual void deleteView(int roomNumber, int nodeNumber, int viewNumber);
+
+ /**
+ * Set the currently active view
+ */
+ virtual void setView(CViewItem *item) = 0;
+
+ virtual void draw(const Common::Rect &bounds) = 0;
+
+ /**
+ * Creates a surface from a specified resource
+ */
+ void createSurface(const CResourceKey &key);
+};
+
+class CSTGameView: public CGameView {
+private:
+ CMainGameWindow *_gameWindow;
+public:
+ CSTGameView(CMainGameWindow *gameWindow);
+
+ /**
+ * Set the currently active view
+ */
+ virtual void setView(CViewItem *item);
+
+ /**
+ * Handles drawing the view
+ */
+ virtual void draw(const Common::Rect &bounds);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_GAME_VIEW_H */
diff --git a/engines/titanic/gfx/act_button.cpp b/engines/titanic/gfx/act_button.cpp
new file mode 100644
index 0000000000..3e79a171c1
--- /dev/null
+++ b/engines/titanic/gfx/act_button.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/act_button.h"
+
+namespace Titanic {
+
+CActButton::CActButton() : CSTButton() {
+}
+
+void CActButton::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CSTButton::save(file, indent);
+}
+
+void CActButton::load(SimpleFile *file) {
+ file->readNumber();
+ CSTButton::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/act_button.h b/engines/titanic/gfx/act_button.h
new file mode 100644
index 0000000000..b8f8f21173
--- /dev/null
+++ b/engines/titanic/gfx/act_button.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ACT_BUTTON_H
+#define TITANIC_ACT_BUTTON_H
+
+#include "titanic/gfx/st_button.h"
+
+namespace Titanic {
+
+class CActButton : public CSTButton {
+public:
+ CLASSDEF
+ CActButton();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ACT_BUTTON_H */
diff --git a/engines/titanic/gfx/changes_season_button.cpp b/engines/titanic/gfx/changes_season_button.cpp
new file mode 100644
index 0000000000..a5f6778815
--- /dev/null
+++ b/engines/titanic/gfx/changes_season_button.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/changes_season_button.h"
+
+namespace Titanic {
+
+CChangesSeasonButton::CChangesSeasonButton() : CSTButton() {
+}
+
+void CChangesSeasonButton::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CSTButton::save(file, indent);
+}
+
+void CChangesSeasonButton::load(SimpleFile *file) {
+ file->readNumber();
+ CSTButton::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/changes_season_button.h b/engines/titanic/gfx/changes_season_button.h
new file mode 100644
index 0000000000..f39cfdc647
--- /dev/null
+++ b/engines/titanic/gfx/changes_season_button.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CHANGES_SEASON_BUTTON_H
+#define TITANIC_CHANGES_SEASON_BUTTON_H
+
+#include "titanic/gfx/st_button.h"
+
+namespace Titanic {
+
+class CChangesSeasonButton : public CSTButton {
+public:
+ CLASSDEF
+ CChangesSeasonButton();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CHANGES_SEASON_BUTTON_H */
diff --git a/engines/titanic/gfx/chev_left_off.cpp b/engines/titanic/gfx/chev_left_off.cpp
new file mode 100644
index 0000000000..736cc0d6c4
--- /dev/null
+++ b/engines/titanic/gfx/chev_left_off.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/chev_left_off.h"
+
+namespace Titanic {
+
+CChevLeftOff::CChevLeftOff() : CToggleSwitch() {
+}
+
+void CChevLeftOff::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CToggleSwitch::save(file, indent);
+}
+
+void CChevLeftOff::load(SimpleFile *file) {
+ file->readNumber();
+ CToggleSwitch::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/chev_left_off.h b/engines/titanic/gfx/chev_left_off.h
new file mode 100644
index 0000000000..753aba3be0
--- /dev/null
+++ b/engines/titanic/gfx/chev_left_off.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CHEV_LEFT_OFF_H
+#define TITANIC_CHEV_LEFT_OFF_H
+
+#include "titanic/gfx/toggle_switch.h"
+
+namespace Titanic {
+
+class CChevLeftOff : public CToggleSwitch {
+public:
+ CLASSDEF
+ CChevLeftOff();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CHEV_LEFT_OFF_H */
diff --git a/engines/titanic/gfx/chev_left_on.cpp b/engines/titanic/gfx/chev_left_on.cpp
new file mode 100644
index 0000000000..f233c53a43
--- /dev/null
+++ b/engines/titanic/gfx/chev_left_on.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/chev_left_on.h"
+
+namespace Titanic {
+
+CChevLeftOn::CChevLeftOn() : CToggleSwitch() {
+}
+
+void CChevLeftOn::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CToggleSwitch::save(file, indent);
+}
+
+void CChevLeftOn::load(SimpleFile *file) {
+ file->readNumber();
+ CToggleSwitch::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/chev_left_on.h b/engines/titanic/gfx/chev_left_on.h
new file mode 100644
index 0000000000..99126d792c
--- /dev/null
+++ b/engines/titanic/gfx/chev_left_on.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CHEV_LEFT_ON_H
+#define TITANIC_CHEV_LEFT_ON_H
+
+#include "titanic/gfx/toggle_switch.h"
+
+namespace Titanic {
+
+class CChevLeftOn : public CToggleSwitch {
+public:
+ CLASSDEF
+ CChevLeftOn();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CHEV_LEFT_ON_H */
diff --git a/engines/titanic/gfx/chev_right_off.cpp b/engines/titanic/gfx/chev_right_off.cpp
new file mode 100644
index 0000000000..7cf3b11d19
--- /dev/null
+++ b/engines/titanic/gfx/chev_right_off.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/chev_right_off.h"
+
+namespace Titanic {
+
+CChevRightOff::CChevRightOff() : CToggleSwitch() {
+}
+
+void CChevRightOff::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CToggleSwitch::save(file, indent);
+}
+
+void CChevRightOff::load(SimpleFile *file) {
+ file->readNumber();
+ CToggleSwitch::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/chev_right_off.h b/engines/titanic/gfx/chev_right_off.h
new file mode 100644
index 0000000000..1a31007f19
--- /dev/null
+++ b/engines/titanic/gfx/chev_right_off.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CHEV_RIGHT_OFF_H
+#define TITANIC_CHEV_RIGHT_OFF_H
+
+#include "titanic/gfx/toggle_switch.h"
+
+namespace Titanic {
+
+class CChevRightOff : public CToggleSwitch {
+public:
+ CLASSDEF
+ CChevRightOff();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CHEV_RIGHT_OFF_H */
diff --git a/engines/titanic/gfx/chev_right_on.cpp b/engines/titanic/gfx/chev_right_on.cpp
new file mode 100644
index 0000000000..848abfc005
--- /dev/null
+++ b/engines/titanic/gfx/chev_right_on.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/chev_right_on.h"
+
+namespace Titanic {
+
+CChevRightOn::CChevRightOn() : CToggleSwitch() {
+}
+
+void CChevRightOn::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CToggleSwitch::save(file, indent);
+}
+
+void CChevRightOn::load(SimpleFile *file) {
+ file->readNumber();
+ CToggleSwitch::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/chev_right_on.h b/engines/titanic/gfx/chev_right_on.h
new file mode 100644
index 0000000000..084b02ea08
--- /dev/null
+++ b/engines/titanic/gfx/chev_right_on.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CHEV_RIGHT_ON_H
+#define TITANIC_CHEV_RIGHT_ON_H
+
+#include "titanic/gfx/toggle_switch.h"
+
+namespace Titanic {
+
+class CChevRightOn : public CToggleSwitch {
+public:
+ CLASSDEF
+ CChevRightOn();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CHEV_RIGHT_ON_H */
diff --git a/engines/titanic/gfx/chev_send_rec_switch.cpp b/engines/titanic/gfx/chev_send_rec_switch.cpp
new file mode 100644
index 0000000000..affe9bce8f
--- /dev/null
+++ b/engines/titanic/gfx/chev_send_rec_switch.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/chev_send_rec_switch.h"
+
+namespace Titanic {
+
+CChevSendRecSwitch::CChevSendRecSwitch() : CToggleSwitch() {
+}
+
+void CChevSendRecSwitch::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CToggleSwitch::save(file, indent);
+}
+
+void CChevSendRecSwitch::load(SimpleFile *file) {
+ file->readNumber();
+ CToggleSwitch::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/chev_send_rec_switch.h b/engines/titanic/gfx/chev_send_rec_switch.h
new file mode 100644
index 0000000000..29d6e7ab82
--- /dev/null
+++ b/engines/titanic/gfx/chev_send_rec_switch.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CHEV_SEND_REC_SWITCH_H
+#define TITANIC_CHEV_SEND_REC_SWITCH_H
+
+#include "titanic/gfx/toggle_switch.h"
+
+namespace Titanic {
+
+class CChevSendRecSwitch : public CToggleSwitch {
+public:
+ CLASSDEF
+ CChevSendRecSwitch();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CHEV_SEND_REC_SWITCH_H */
diff --git a/engines/titanic/gfx/chev_switch.cpp b/engines/titanic/gfx/chev_switch.cpp
new file mode 100644
index 0000000000..d7f1107c17
--- /dev/null
+++ b/engines/titanic/gfx/chev_switch.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/chev_switch.h"
+
+namespace Titanic {
+
+CChevSwitch::CChevSwitch() : CToggleSwitch() {
+}
+
+void CChevSwitch::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CToggleSwitch::save(file, indent);
+}
+
+void CChevSwitch::load(SimpleFile *file) {
+ file->readNumber();
+ CToggleSwitch::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/chev_switch.h b/engines/titanic/gfx/chev_switch.h
new file mode 100644
index 0000000000..6c0314be4c
--- /dev/null
+++ b/engines/titanic/gfx/chev_switch.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CHEV_SWITCH_H
+#define TITANIC_CHEV_SWITCH_H
+
+#include "titanic/gfx/toggle_switch.h"
+
+namespace Titanic {
+
+class CChevSwitch : public CToggleSwitch {
+public:
+ CLASSDEF
+ CChevSwitch();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CHEV_SWITCH_H */
diff --git a/engines/titanic/gfx/edit_control.cpp b/engines/titanic/gfx/edit_control.cpp
new file mode 100644
index 0000000000..17a56d6677
--- /dev/null
+++ b/engines/titanic/gfx/edit_control.cpp
@@ -0,0 +1,72 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/edit_control.h"
+
+namespace Titanic {
+
+CEditControl::CEditControl() : CGameObject(), _fieldBC(0), _fieldC0(0),
+ _fieldC4(0), _fieldC8(0), _fieldCC(0), _fieldD0(0), _fieldD4(2),
+ _fieldD8(0), _fieldDC(0), _fieldE0(0), _fieldF0(0), _fieldF4(0)
+
+{
+}
+
+void CEditControl::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeNumberLine(_fieldC0, indent);
+ file->writeNumberLine(_fieldC4, indent);
+ file->writeNumberLine(_fieldC8, indent);
+ file->writeNumberLine(_fieldCC, indent);
+ file->writeNumberLine(_fieldD0, indent);
+ file->writeNumberLine(_fieldD4, indent);
+ file->writeNumberLine(_fieldD8, indent);
+ file->writeNumberLine(_fieldDC, indent);
+ file->writeNumberLine(_fieldC0, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeNumberLine(_fieldF0, indent);
+ file->writeNumberLine(_fieldF4, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CEditControl::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _fieldC0 = file->readNumber();
+ _fieldC4 = file->readNumber();
+ _fieldC8 = file->readNumber();
+ _fieldCC = file->readNumber();
+ _fieldD0 = file->readNumber();
+ _fieldD4 = file->readNumber();
+ _fieldD8 = file->readNumber();
+ _fieldDC = file->readNumber();
+ _fieldE0 = file->readNumber();
+ _string1 = file->readString();
+ _fieldF0 = file->readNumber();
+ _fieldF4 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/edit_control.h b/engines/titanic/gfx/edit_control.h
new file mode 100644
index 0000000000..d782b72669
--- /dev/null
+++ b/engines/titanic/gfx/edit_control.h
@@ -0,0 +1,62 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_EDIT_CONTROL_H
+#define TITANIC_EDIT_CONTROL_H
+
+#include "titanic/gfx/toggle_switch.h"
+
+namespace Titanic {
+
+class CEditControl : public CGameObject {
+protected:
+ int _fieldBC;
+ int _fieldC0;
+ int _fieldC4;
+ int _fieldC8;
+ int _fieldCC;
+ int _fieldD0;
+ int _fieldD4;
+ int _fieldD8;
+ int _fieldDC;
+ int _fieldE0;
+ CString _string1;
+ int _fieldF0;
+ int _fieldF4;
+public:
+ CLASSDEF
+ CEditControl();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_EDIT_CONTROL_H */
diff --git a/engines/titanic/gfx/elevator_button.cpp b/engines/titanic/gfx/elevator_button.cpp
new file mode 100644
index 0000000000..81c9598b03
--- /dev/null
+++ b/engines/titanic/gfx/elevator_button.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/elevator_button.h"
+
+namespace Titanic {
+
+CElevatorButton::CElevatorButton() : CSTButton() {
+}
+
+void CElevatorButton::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CSTButton::save(file, indent);
+}
+
+void CElevatorButton::load(SimpleFile *file) {
+ file->readNumber();
+ CSTButton::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/elevator_button.h b/engines/titanic/gfx/elevator_button.h
new file mode 100644
index 0000000000..dddb7077b3
--- /dev/null
+++ b/engines/titanic/gfx/elevator_button.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ELEVATOR_BUTTON_H
+#define TITANIC_ELEVATOR_BUTTON_H
+
+#include "titanic/gfx/st_button.h"
+
+namespace Titanic {
+
+class CElevatorButton : public CSTButton {
+public:
+ CLASSDEF
+ CElevatorButton();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ELEVATOR_BUTTON_H */
diff --git a/engines/titanic/gfx/get_from_succ.cpp b/engines/titanic/gfx/get_from_succ.cpp
new file mode 100644
index 0000000000..ad7b5dc2e8
--- /dev/null
+++ b/engines/titanic/gfx/get_from_succ.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/get_from_succ.h"
+
+namespace Titanic {
+
+CGetFromSucc::CGetFromSucc() : CToggleSwitch() {
+}
+
+void CGetFromSucc::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CToggleSwitch::save(file, indent);
+}
+
+void CGetFromSucc::load(SimpleFile *file) {
+ file->readNumber();
+ CToggleSwitch::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/get_from_succ.h b/engines/titanic/gfx/get_from_succ.h
new file mode 100644
index 0000000000..f0b028afa0
--- /dev/null
+++ b/engines/titanic/gfx/get_from_succ.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_GET_FROM_SUCC_H
+#define TITANIC_GET_FROM_SUCC_H
+
+#include "titanic/gfx/toggle_switch.h"
+
+namespace Titanic {
+
+class CGetFromSucc : public CToggleSwitch {
+public:
+ CLASSDEF
+ CGetFromSucc();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_GET_FROM_SUCC_H */
diff --git a/engines/titanic/gfx/helmet_on_off.cpp b/engines/titanic/gfx/helmet_on_off.cpp
new file mode 100644
index 0000000000..e1c698932e
--- /dev/null
+++ b/engines/titanic/gfx/helmet_on_off.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/helmet_on_off.h"
+
+namespace Titanic {
+
+CHelmetOnOff::CHelmetOnOff() : CToggleSwitch() {
+}
+
+void CHelmetOnOff::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CToggleSwitch::save(file, indent);
+}
+
+void CHelmetOnOff::load(SimpleFile *file) {
+ file->readNumber();
+ CToggleSwitch::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/helmet_on_off.h b/engines/titanic/gfx/helmet_on_off.h
new file mode 100644
index 0000000000..41621f340e
--- /dev/null
+++ b/engines/titanic/gfx/helmet_on_off.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_HELMET_ON_OFF_H
+#define TITANIC_HELMET_ON_OFF_H
+
+#include "titanic/gfx/toggle_switch.h"
+
+namespace Titanic {
+
+class CHelmetOnOff : public CToggleSwitch {
+public:
+ CLASSDEF
+ CHelmetOnOff();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_HELMET_ON_OFF_H */
diff --git a/engines/titanic/gfx/home_photo.cpp b/engines/titanic/gfx/home_photo.cpp
new file mode 100644
index 0000000000..48661fc70d
--- /dev/null
+++ b/engines/titanic/gfx/home_photo.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/home_photo.h"
+
+namespace Titanic {
+
+CHomePhoto::CHomePhoto() : CToggleSwitch() {
+}
+
+void CHomePhoto::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CToggleSwitch::save(file, indent);
+}
+
+void CHomePhoto::load(SimpleFile *file) {
+ file->readNumber();
+ CToggleSwitch::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/home_photo.h b/engines/titanic/gfx/home_photo.h
new file mode 100644
index 0000000000..6e6f4976a2
--- /dev/null
+++ b/engines/titanic/gfx/home_photo.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_HOME_PHOTO_H
+#define TITANIC_HOME_PHOTO_H
+
+#include "titanic/gfx/toggle_switch.h"
+
+namespace Titanic {
+
+class CHomePhoto : public CToggleSwitch {
+public:
+ CLASSDEF
+ CHomePhoto();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_HOME_PHOTO_H */
diff --git a/engines/titanic/gfx/icon_nav_action.cpp b/engines/titanic/gfx/icon_nav_action.cpp
new file mode 100644
index 0000000000..f8aaa72396
--- /dev/null
+++ b/engines/titanic/gfx/icon_nav_action.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/icon_nav_action.h"
+
+namespace Titanic {
+
+CIconNavAction::CIconNavAction() : CToggleSwitch() {
+}
+
+void CIconNavAction::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CToggleSwitch::save(file, indent);
+}
+
+void CIconNavAction::load(SimpleFile *file) {
+ file->readNumber();
+ CToggleSwitch::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/icon_nav_action.h b/engines/titanic/gfx/icon_nav_action.h
new file mode 100644
index 0000000000..cb8fae932a
--- /dev/null
+++ b/engines/titanic/gfx/icon_nav_action.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ICON_NAV_ACTION_H
+#define TITANIC_ICON_NAV_ACTION_H
+
+#include "titanic/gfx/toggle_switch.h"
+
+namespace Titanic {
+
+class CIconNavAction : public CToggleSwitch {
+public:
+ CLASSDEF
+ CIconNavAction();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ICON_NAV_ACTION_H */
diff --git a/engines/titanic/gfx/icon_nav_butt.cpp b/engines/titanic/gfx/icon_nav_butt.cpp
new file mode 100644
index 0000000000..85eb1304c2
--- /dev/null
+++ b/engines/titanic/gfx/icon_nav_butt.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/icon_nav_butt.h"
+
+namespace Titanic {
+
+void CIconNavButt::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CPetGraphic::save(file, indent);
+}
+
+void CIconNavButt::load(SimpleFile *file) {
+ file->readNumber();
+ CPetGraphic::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/icon_nav_butt.h b/engines/titanic/gfx/icon_nav_butt.h
new file mode 100644
index 0000000000..36d3eb0890
--- /dev/null
+++ b/engines/titanic/gfx/icon_nav_butt.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ICON_NAV_BUTT_H
+#define TITANIC_ICON_NAV_BUTT_H
+
+#include "titanic/gfx/pet_graphic.h"
+
+namespace Titanic {
+
+class CIconNavButt : public CPetGraphic {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ICON_NAV_BUTT_H */
diff --git a/engines/titanic/gfx/icon_nav_down.cpp b/engines/titanic/gfx/icon_nav_down.cpp
new file mode 100644
index 0000000000..947aa4c4f0
--- /dev/null
+++ b/engines/titanic/gfx/icon_nav_down.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/icon_nav_down.h"
+
+namespace Titanic {
+
+CIconNavDown::CIconNavDown() : CToggleSwitch() {
+}
+
+void CIconNavDown::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CToggleSwitch::save(file, indent);
+}
+
+void CIconNavDown::load(SimpleFile *file) {
+ file->readNumber();
+ CToggleSwitch::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/icon_nav_down.h b/engines/titanic/gfx/icon_nav_down.h
new file mode 100644
index 0000000000..b7759e059d
--- /dev/null
+++ b/engines/titanic/gfx/icon_nav_down.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ICON_NAV_DOWN_H
+#define TITANIC_ICON_NAV_DOWN_H
+
+#include "titanic/gfx/toggle_switch.h"
+
+namespace Titanic {
+
+class CIconNavDown : public CToggleSwitch {
+public:
+ CLASSDEF
+ CIconNavDown();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ICON_NAV_DOWN_H */
diff --git a/engines/titanic/gfx/icon_nav_image.cpp b/engines/titanic/gfx/icon_nav_image.cpp
new file mode 100644
index 0000000000..1e8a1ca2c3
--- /dev/null
+++ b/engines/titanic/gfx/icon_nav_image.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/icon_nav_image.h"
+
+namespace Titanic {
+
+void CIconNavImage::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CPetGraphic::save(file, indent);
+}
+
+void CIconNavImage::load(SimpleFile *file) {
+ file->readNumber();
+ CPetGraphic::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/icon_nav_image.h b/engines/titanic/gfx/icon_nav_image.h
new file mode 100644
index 0000000000..61febfd2a4
--- /dev/null
+++ b/engines/titanic/gfx/icon_nav_image.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ICON_NAV_IMAGE_H
+#define TITANIC_ICON_NAV_IMAGE_H
+
+#include "titanic/gfx/pet_graphic.h"
+
+namespace Titanic {
+
+class CIconNavImage : public CPetGraphic {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ICON_NAV_IMAGE_H */
diff --git a/engines/titanic/gfx/icon_nav_left.cpp b/engines/titanic/gfx/icon_nav_left.cpp
new file mode 100644
index 0000000000..5ec50904d2
--- /dev/null
+++ b/engines/titanic/gfx/icon_nav_left.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/icon_nav_left.h"
+
+namespace Titanic {
+
+CIconNavLeft::CIconNavLeft() : CToggleSwitch() {
+}
+
+void CIconNavLeft::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CToggleSwitch::save(file, indent);
+}
+
+void CIconNavLeft::load(SimpleFile *file) {
+ file->readNumber();
+ CToggleSwitch::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/icon_nav_left.h b/engines/titanic/gfx/icon_nav_left.h
new file mode 100644
index 0000000000..e507d2c2dd
--- /dev/null
+++ b/engines/titanic/gfx/icon_nav_left.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ICON_NAV_LEFT_H
+#define TITANIC_ICON_NAV_LEFT_H
+
+#include "titanic/gfx/toggle_switch.h"
+
+namespace Titanic {
+
+class CIconNavLeft : public CToggleSwitch {
+public:
+ CLASSDEF
+ CIconNavLeft();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ICON_NAV_LEFT_H */
diff --git a/engines/titanic/gfx/icon_nav_receive.cpp b/engines/titanic/gfx/icon_nav_receive.cpp
new file mode 100644
index 0000000000..ad7e0e7160
--- /dev/null
+++ b/engines/titanic/gfx/icon_nav_receive.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/icon_nav_receive.h"
+
+namespace Titanic {
+
+void CIconNavReceive::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CPetGraphic::save(file, indent);
+}
+
+void CIconNavReceive::load(SimpleFile *file) {
+ file->readNumber();
+ CPetGraphic::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/icon_nav_receive.h b/engines/titanic/gfx/icon_nav_receive.h
new file mode 100644
index 0000000000..cce1df2279
--- /dev/null
+++ b/engines/titanic/gfx/icon_nav_receive.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ICON_NAV_RECEIVE_H
+#define TITANIC_ICON_NAV_RECEIVE_H
+
+#include "titanic/gfx/pet_graphic.h"
+
+namespace Titanic {
+
+class CIconNavReceive : public CPetGraphic {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ICON_NAV_RECEIVE_H */
diff --git a/engines/titanic/gfx/icon_nav_right.cpp b/engines/titanic/gfx/icon_nav_right.cpp
new file mode 100644
index 0000000000..d133ed3b81
--- /dev/null
+++ b/engines/titanic/gfx/icon_nav_right.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/icon_nav_right.h"
+
+namespace Titanic {
+
+CIconNavRight::CIconNavRight() : CToggleSwitch() {
+}
+
+void CIconNavRight::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CToggleSwitch::save(file, indent);
+}
+
+void CIconNavRight::load(SimpleFile *file) {
+ file->readNumber();
+ CToggleSwitch::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/icon_nav_right.h b/engines/titanic/gfx/icon_nav_right.h
new file mode 100644
index 0000000000..db3bab4bb8
--- /dev/null
+++ b/engines/titanic/gfx/icon_nav_right.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ICON_NAV_RIGHT_H
+#define TITANIC_ICON_NAV_RIGHT_H
+
+#include "titanic/gfx/toggle_switch.h"
+
+namespace Titanic {
+
+class CIconNavRight : public CToggleSwitch {
+public:
+ CLASSDEF
+ CIconNavRight();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ICON_NAV_RIGHT_H */
diff --git a/engines/titanic/gfx/icon_nav_send.cpp b/engines/titanic/gfx/icon_nav_send.cpp
new file mode 100644
index 0000000000..856560c175
--- /dev/null
+++ b/engines/titanic/gfx/icon_nav_send.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/icon_nav_send.h"
+
+namespace Titanic {
+
+void CIconNavSend::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CPetGraphic::save(file, indent);
+}
+
+void CIconNavSend::load(SimpleFile *file) {
+ file->readNumber();
+ CPetGraphic::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/icon_nav_send.h b/engines/titanic/gfx/icon_nav_send.h
new file mode 100644
index 0000000000..1ffb8e9e15
--- /dev/null
+++ b/engines/titanic/gfx/icon_nav_send.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ICON_NAV_SEND_H
+#define TITANIC_ICON_NAV_SEND_H
+
+#include "titanic/gfx/pet_graphic.h"
+
+namespace Titanic {
+
+class CIconNavSend : public CPetGraphic {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ICON_NAV_SEND_H */
diff --git a/engines/titanic/gfx/icon_nav_up.cpp b/engines/titanic/gfx/icon_nav_up.cpp
new file mode 100644
index 0000000000..5b5d5ec9f0
--- /dev/null
+++ b/engines/titanic/gfx/icon_nav_up.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/icon_nav_up.h"
+
+namespace Titanic {
+
+CIconNavUp::CIconNavUp() : CToggleSwitch() {
+}
+
+void CIconNavUp::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CToggleSwitch::save(file, indent);
+}
+
+void CIconNavUp::load(SimpleFile *file) {
+ file->readNumber();
+ CToggleSwitch::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/icon_nav_up.h b/engines/titanic/gfx/icon_nav_up.h
new file mode 100644
index 0000000000..7eeeb773b1
--- /dev/null
+++ b/engines/titanic/gfx/icon_nav_up.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ICON_NAV_UP_H
+#define TITANIC_ICON_NAV_UP_H
+
+#include "titanic/gfx/toggle_switch.h"
+
+namespace Titanic {
+
+class CIconNavUp : public CToggleSwitch {
+public:
+ CLASSDEF
+ CIconNavUp();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ICON_NAV_UP_H */
diff --git a/engines/titanic/gfx/keybrd_butt.cpp b/engines/titanic/gfx/keybrd_butt.cpp
new file mode 100644
index 0000000000..3e7f5c19de
--- /dev/null
+++ b/engines/titanic/gfx/keybrd_butt.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/keybrd_butt.h"
+
+namespace Titanic {
+
+CKeybrdButt::CKeybrdButt() : CToggleSwitch() {
+}
+
+void CKeybrdButt::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CToggleSwitch::save(file, indent);
+}
+
+void CKeybrdButt::load(SimpleFile *file) {
+ file->readNumber();
+ CToggleSwitch::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/keybrd_butt.h b/engines/titanic/gfx/keybrd_butt.h
new file mode 100644
index 0000000000..a4f233b209
--- /dev/null
+++ b/engines/titanic/gfx/keybrd_butt.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_KEYBRD_BUTT_H
+#define TITANIC_KEYBRD_BUTT_H
+
+#include "titanic/gfx/toggle_switch.h"
+
+namespace Titanic {
+
+class CKeybrdButt : public CToggleSwitch {
+public:
+ CLASSDEF
+ CKeybrdButt();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_KEYBRD_BUTT_H */
diff --git a/engines/titanic/gfx/move_object_button.cpp b/engines/titanic/gfx/move_object_button.cpp
new file mode 100644
index 0000000000..4ab0825864
--- /dev/null
+++ b/engines/titanic/gfx/move_object_button.cpp
@@ -0,0 +1,46 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/move_object_button.h"
+
+namespace Titanic {
+
+CMoveObjectButton::CMoveObjectButton() : CSTButton(), _field11C(1) {
+}
+
+void CMoveObjectButton::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writePoint(_pos1, indent);
+ file->writeNumberLine(_field11C, indent);
+
+ CSTButton::save(file, indent);
+}
+
+void CMoveObjectButton::load(SimpleFile *file) {
+ file->readNumber();
+ _pos1 = file->readPoint();
+ _field11C = file->readNumber();
+
+ CSTButton::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/move_object_button.h b/engines/titanic/gfx/move_object_button.h
new file mode 100644
index 0000000000..70df8f6a7f
--- /dev/null
+++ b/engines/titanic/gfx/move_object_button.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MOVE_OBJECT_BUTTON_H
+#define TITANIC_MOVE_OBJECT_BUTTON_H
+
+#include "titanic/gfx/st_button.h"
+
+namespace Titanic {
+
+class CMoveObjectButton : public CSTButton {
+private:
+ Common::Point _pos1;
+ int _field11C;
+public:
+ CLASSDEF
+ CMoveObjectButton();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MOVE_OBJECT_BUTTON_H */
diff --git a/engines/titanic/gfx/music_control.cpp b/engines/titanic/gfx/music_control.cpp
new file mode 100644
index 0000000000..5ca079f9ff
--- /dev/null
+++ b/engines/titanic/gfx/music_control.cpp
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/music_control.h"
+
+namespace Titanic {
+
+CMusicControl::CMusicControl() : CBackground(),
+ _fieldE0(0), _fieldE4(0), _fieldE8(1), _fieldEC(1) {
+}
+
+void CMusicControl::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_fieldE8, indent);
+ file->writeNumberLine(_fieldEC, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CMusicControl::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _fieldE8 = file->readNumber();
+ _fieldEC = file->readNumber();
+
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/music_control.h b/engines/titanic/gfx/music_control.h
new file mode 100644
index 0000000000..97a0077c18
--- /dev/null
+++ b/engines/titanic/gfx/music_control.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MUSIC_CONTROL_H
+#define TITANIC_MUSIC_CONTROL_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CMusicControl : public CBackground {
+public:
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+ int _fieldEC;
+public:
+ CLASSDEF
+ CMusicControl();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MUSIC_CONTROL_H */
diff --git a/engines/titanic/gfx/music_slider.h b/engines/titanic/gfx/music_slider.h
new file mode 100644
index 0000000000..3fd0ab341e
--- /dev/null
+++ b/engines/titanic/gfx/music_slider.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MUSIC_SLIDER_H
+#define TITANIC_MUSIC_SLIDER_H
+
+#include "titanic/gfx/music_control.h"
+
+namespace Titanic {
+
+class CMusicSlider : public CMusicControl {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CMusicControl::save(file, indent);
+ }
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file) {
+ file->readNumber();
+ CMusicControl::load(file);
+ }
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MUSIC_SLIDER_H */
diff --git a/engines/titanic/gfx/music_slider_pitch.h b/engines/titanic/gfx/music_slider_pitch.h
new file mode 100644
index 0000000000..f50958bdcd
--- /dev/null
+++ b/engines/titanic/gfx/music_slider_pitch.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MUSIC_SLIDER_PITCH_H
+#define TITANIC_MUSIC_SLIDER_PITCH_H
+
+#include "titanic/gfx/music_slider.h"
+
+namespace Titanic {
+
+class CMusicSliderPitch : public CMusicSlider {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CMusicSlider::save(file, indent);
+ }
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file) {
+ file->readNumber();
+ CMusicSlider::load(file);
+ }
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MUSIC_SLIDER_PITCH_H */
diff --git a/engines/titanic/gfx/music_slider_speed.h b/engines/titanic/gfx/music_slider_speed.h
new file mode 100644
index 0000000000..8ed18625ff
--- /dev/null
+++ b/engines/titanic/gfx/music_slider_speed.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+*
+* ScummVM is the legal property of its developers, whose names
+* are too numerous to list here. Please refer to the COPYRIGHT
+* file distributed with this source distribution.
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*
+*/
+
+#ifndef TITANIC_MUSIC_SLIDER_SPEED_H
+#define TITANIC_MUSIC_SLIDER_SPEED_H
+
+#include "titanic/gfx/music_slider.h"
+
+namespace Titanic {
+
+ class CMusicSliderSpeed : public CMusicSlider {
+ public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CMusicSlider::save(file, indent);
+ }
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file) {
+ file->readNumber();
+ CMusicSlider::load(file);
+ }
+ };
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MUSIC_SLIDER_SPEED_H */
diff --git a/engines/titanic/gfx/music_switch.h b/engines/titanic/gfx/music_switch.h
new file mode 100644
index 0000000000..534eb251de
--- /dev/null
+++ b/engines/titanic/gfx/music_switch.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MUSIC_SWITCH_H
+#define TITANIC_MUSIC_SWITCH_H
+
+#include "titanic/gfx/music_control.h"
+
+namespace Titanic {
+
+class CMusicSwitch : public CMusicControl {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CMusicControl::save(file, indent);
+ }
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file) {
+ file->readNumber();
+ CMusicControl::load(file);
+ }
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MUSIC_SWITCH_H */
diff --git a/engines/titanic/gfx/music_switch_inversion.h b/engines/titanic/gfx/music_switch_inversion.h
new file mode 100644
index 0000000000..6aea692f61
--- /dev/null
+++ b/engines/titanic/gfx/music_switch_inversion.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MUSIC_SWITCH_INVERSION_H
+#define TITANIC_MUSIC_SWITCH_INVERSION_H
+
+#include "titanic/gfx/music_switch.h"
+
+namespace Titanic {
+
+class CMusicSwitchInversion : public CMusicSwitch {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CMusicSwitch::save(file, indent);
+ }
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file) {
+ file->readNumber();
+ CMusicSwitch::load(file);
+ }
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MUSIC_SWITCH_INVERSION_H */
diff --git a/engines/titanic/gfx/music_switch_reverse.h b/engines/titanic/gfx/music_switch_reverse.h
new file mode 100644
index 0000000000..99460f1845
--- /dev/null
+++ b/engines/titanic/gfx/music_switch_reverse.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+*
+* ScummVM is the legal property of its developers, whose names
+* are too numerous to list here. Please refer to the COPYRIGHT
+* file distributed with this source distribution.
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*
+*/
+
+#ifndef TITANIC_MUSIC_SWITCH_REVERSE_H
+#define TITANIC_MUSIC_SWITCH_REVERSE_H
+
+#include "titanic/gfx/music_switch.h"
+
+namespace Titanic {
+
+ class CMusicSwitchReverse : public CMusicSwitch {
+ public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CMusicSwitch::save(file, indent);
+ }
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file) {
+ file->readNumber();
+ CMusicSwitch::load(file);
+ }
+ };
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MUSIC_SWITCH_REVERSE_H */
diff --git a/engines/titanic/gfx/music_voice_mute.h b/engines/titanic/gfx/music_voice_mute.h
new file mode 100644
index 0000000000..2198b96e42
--- /dev/null
+++ b/engines/titanic/gfx/music_voice_mute.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MUSIC_VOICE_MUTE_H
+#define TITANIC_MUSIC_VOICE_MUTE_H
+
+#include "titanic/gfx/music_control.h"
+
+namespace Titanic {
+
+class CMusicVoiceMute : public CMusicControl {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CMusicControl::save(file, indent);
+ }
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file) {
+ file->readNumber();
+ CMusicControl::load(file);
+ }
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MUSIC_VOICE_MUTE_H */
diff --git a/engines/titanic/gfx/pet_drag_chev.cpp b/engines/titanic/gfx/pet_drag_chev.cpp
new file mode 100644
index 0000000000..24b4666b3a
--- /dev/null
+++ b/engines/titanic/gfx/pet_drag_chev.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/pet_drag_chev.h"
+
+namespace Titanic {
+
+void CPetDragChev::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CPetGraphic2::save(file, indent);
+}
+
+void CPetDragChev::load(SimpleFile *file) {
+ file->readNumber();
+ CPetGraphic2::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/pet_drag_chev.h b/engines/titanic/gfx/pet_drag_chev.h
new file mode 100644
index 0000000000..e82afd0a1b
--- /dev/null
+++ b/engines/titanic/gfx/pet_drag_chev.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_DRAG_CHEV_H
+#define TITANIC_PET_DRAG_CHEV_H
+
+#include "titanic/gfx/pet_graphic2.h"
+
+namespace Titanic {
+
+class CPetDragChev : public CPetGraphic2 {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_DRAG_CHEV_H */
diff --git a/engines/titanic/gfx/pet_graphic.cpp b/engines/titanic/gfx/pet_graphic.cpp
new file mode 100644
index 0000000000..b625c1dfdb
--- /dev/null
+++ b/engines/titanic/gfx/pet_graphic.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/pet_graphic.h"
+
+namespace Titanic {
+
+void CPetGraphic::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CPetGraphic::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/pet_graphic.h b/engines/titanic/gfx/pet_graphic.h
new file mode 100644
index 0000000000..112d75a870
--- /dev/null
+++ b/engines/titanic/gfx/pet_graphic.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_GRAPHIC_H
+#define TITANIC_PET_GRAPHIC_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CPetGraphic : public CGameObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_GRAPHIC_H */
diff --git a/engines/titanic/gfx/pet_graphic2.cpp b/engines/titanic/gfx/pet_graphic2.cpp
new file mode 100644
index 0000000000..5588c72fba
--- /dev/null
+++ b/engines/titanic/gfx/pet_graphic2.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/pet_graphic2.h"
+
+namespace Titanic {
+
+void CPetGraphic2::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CPetGraphic2::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/pet_graphic2.h b/engines/titanic/gfx/pet_graphic2.h
new file mode 100644
index 0000000000..d9bb514915
--- /dev/null
+++ b/engines/titanic/gfx/pet_graphic2.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_GRAPHIC2_H
+#define TITANIC_PET_GRAPHIC2_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CPetGraphic2 : public CGameObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_GRAPHIC2_H */
diff --git a/engines/titanic/gfx/pet_leaf.cpp b/engines/titanic/gfx/pet_leaf.cpp
new file mode 100644
index 0000000000..adb6ccd144
--- /dev/null
+++ b/engines/titanic/gfx/pet_leaf.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/pet_leaf.h"
+
+namespace Titanic {
+
+void PETLeaf::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void PETLeaf::load(SimpleFile *file) {
+ file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/pet_leaf.h b/engines/titanic/gfx/pet_leaf.h
new file mode 100644
index 0000000000..073374970c
--- /dev/null
+++ b/engines/titanic/gfx/pet_leaf.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_LEAF_H
+#define TITANIC_PET_LEAF_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class PETLeaf : public CGameObject {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_LEAF_H */
diff --git a/engines/titanic/gfx/pet_mode_off.cpp b/engines/titanic/gfx/pet_mode_off.cpp
new file mode 100644
index 0000000000..d94ced085e
--- /dev/null
+++ b/engines/titanic/gfx/pet_mode_off.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/pet_mode_off.h"
+
+namespace Titanic {
+
+CPetModeOff::CPetModeOff() : CToggleSwitch() {
+}
+
+void CPetModeOff::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CToggleSwitch::save(file, indent);
+}
+
+void CPetModeOff::load(SimpleFile *file) {
+ file->readNumber();
+ CToggleSwitch::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/pet_mode_off.h b/engines/titanic/gfx/pet_mode_off.h
new file mode 100644
index 0000000000..ea88255b93
--- /dev/null
+++ b/engines/titanic/gfx/pet_mode_off.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_MODE_OFF_H
+#define TITANIC_PET_MODE_OFF_H
+
+#include "titanic/gfx/toggle_switch.h"
+
+namespace Titanic {
+
+class CPetModeOff : public CToggleSwitch {
+public:
+ CLASSDEF
+ CPetModeOff();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_MODE_OFF_H */
diff --git a/engines/titanic/gfx/pet_mode_on.cpp b/engines/titanic/gfx/pet_mode_on.cpp
new file mode 100644
index 0000000000..2de07455fa
--- /dev/null
+++ b/engines/titanic/gfx/pet_mode_on.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/pet_mode_on.h"
+
+namespace Titanic {
+
+CPetModeOn::CPetModeOn() : CToggleSwitch() {
+}
+
+void CPetModeOn::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CToggleSwitch::save(file, indent);
+}
+
+void CPetModeOn::load(SimpleFile *file) {
+ file->readNumber();
+ CToggleSwitch::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/pet_mode_on.h b/engines/titanic/gfx/pet_mode_on.h
new file mode 100644
index 0000000000..1434fb20db
--- /dev/null
+++ b/engines/titanic/gfx/pet_mode_on.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_MODE_ON_H
+#define TITANIC_PET_MODE_ON_H
+
+#include "titanic/gfx/toggle_switch.h"
+
+namespace Titanic {
+
+class CPetModeOn : public CToggleSwitch {
+public:
+ CLASSDEF
+ CPetModeOn();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_MODE_ON_H */
diff --git a/engines/titanic/gfx/pet_mode_panel.cpp b/engines/titanic/gfx/pet_mode_panel.cpp
new file mode 100644
index 0000000000..050cb768df
--- /dev/null
+++ b/engines/titanic/gfx/pet_mode_panel.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/pet_mode_panel.h"
+
+namespace Titanic {
+
+CPetModePanel::CPetModePanel() : CToggleSwitch() {
+}
+
+void CPetModePanel::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CToggleSwitch::save(file, indent);
+}
+
+void CPetModePanel::load(SimpleFile *file) {
+ file->readNumber();
+ CToggleSwitch::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/pet_mode_panel.h b/engines/titanic/gfx/pet_mode_panel.h
new file mode 100644
index 0000000000..ef68ca8b06
--- /dev/null
+++ b/engines/titanic/gfx/pet_mode_panel.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_MODE_PANEL_H
+#define TITANIC_PET_MODE_PANEL_H
+
+#include "titanic/gfx/toggle_switch.h"
+
+namespace Titanic {
+
+class CPetModePanel : public CToggleSwitch {
+public:
+ CLASSDEF
+ CPetModePanel();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_MODE_PANEL_H */
diff --git a/engines/titanic/gfx/pet_pannel1.cpp b/engines/titanic/gfx/pet_pannel1.cpp
new file mode 100644
index 0000000000..baa7558ea0
--- /dev/null
+++ b/engines/titanic/gfx/pet_pannel1.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/pet_pannel1.h"
+
+namespace Titanic {
+
+void CPetPannel1::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CPetGraphic::save(file, indent);
+}
+
+void CPetPannel1::load(SimpleFile *file) {
+ file->readNumber();
+ CPetGraphic::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/pet_pannel1.h b/engines/titanic/gfx/pet_pannel1.h
new file mode 100644
index 0000000000..9261af9077
--- /dev/null
+++ b/engines/titanic/gfx/pet_pannel1.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_PANNEL1_H
+#define TITANIC_PET_PANNEL1_H
+
+#include "titanic/gfx/pet_graphic.h"
+
+namespace Titanic {
+
+class CPetPannel1 : public CPetGraphic {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_PANNEL1_H */
diff --git a/engines/titanic/gfx/pet_pannel2.cpp b/engines/titanic/gfx/pet_pannel2.cpp
new file mode 100644
index 0000000000..7376fcc4c5
--- /dev/null
+++ b/engines/titanic/gfx/pet_pannel2.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/pet_pannel2.h"
+
+namespace Titanic {
+
+void CPetPannel2::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CPetGraphic::save(file, indent);
+}
+
+void CPetPannel2::load(SimpleFile *file) {
+ file->readNumber();
+ CPetGraphic::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/pet_pannel2.h b/engines/titanic/gfx/pet_pannel2.h
new file mode 100644
index 0000000000..561c0d74a2
--- /dev/null
+++ b/engines/titanic/gfx/pet_pannel2.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_PANNEL2_H
+#define TITANIC_PET_PANNEL2_H
+
+#include "titanic/gfx/pet_graphic.h"
+
+namespace Titanic {
+
+class CPetPannel2 : public CPetGraphic {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_PANNEL2_H */
diff --git a/engines/titanic/gfx/pet_pannel3.cpp b/engines/titanic/gfx/pet_pannel3.cpp
new file mode 100644
index 0000000000..f4bd1fb0cc
--- /dev/null
+++ b/engines/titanic/gfx/pet_pannel3.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/pet_pannel3.h"
+
+namespace Titanic {
+
+void CPetPannel3::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CPetGraphic::save(file, indent);
+}
+
+void CPetPannel3::load(SimpleFile *file) {
+ file->readNumber();
+ CPetGraphic::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/pet_pannel3.h b/engines/titanic/gfx/pet_pannel3.h
new file mode 100644
index 0000000000..590818406a
--- /dev/null
+++ b/engines/titanic/gfx/pet_pannel3.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_PANNEL3_H
+#define TITANIC_PET_PANNEL3_H
+
+#include "titanic/gfx/pet_graphic.h"
+
+namespace Titanic {
+
+class CPetPannel3 : public CPetGraphic {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_PANNEL3_H */
diff --git a/engines/titanic/gfx/send_to_succ.cpp b/engines/titanic/gfx/send_to_succ.cpp
new file mode 100644
index 0000000000..82c923c045
--- /dev/null
+++ b/engines/titanic/gfx/send_to_succ.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/send_to_succ.h"
+
+namespace Titanic {
+
+CSendToSucc::CSendToSucc() : CToggleSwitch() {
+}
+
+void CSendToSucc::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CToggleSwitch::save(file, indent);
+}
+
+void CSendToSucc::load(SimpleFile *file) {
+ file->readNumber();
+ CToggleSwitch::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/send_to_succ.h b/engines/titanic/gfx/send_to_succ.h
new file mode 100644
index 0000000000..fb237f206d
--- /dev/null
+++ b/engines/titanic/gfx/send_to_succ.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SEND_TO_SUCC_H
+#define TITANIC_SEND_TO_SUCC_H
+
+#include "titanic/gfx/toggle_switch.h"
+
+namespace Titanic {
+
+class CSendToSucc : public CToggleSwitch {
+public:
+ CLASSDEF
+ CSendToSucc();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SEND_TO_SUCC_H */
diff --git a/engines/titanic/gfx/sgt_selector.cpp b/engines/titanic/gfx/sgt_selector.cpp
new file mode 100644
index 0000000000..7ad126b60a
--- /dev/null
+++ b/engines/titanic/gfx/sgt_selector.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/sgt_selector.h"
+
+namespace Titanic {
+
+void CSGTSelector::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CPetGraphic::save(file, indent);
+}
+
+void CSGTSelector::load(SimpleFile *file) {
+ file->readNumber();
+ CPetGraphic::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/sgt_selector.h b/engines/titanic/gfx/sgt_selector.h
new file mode 100644
index 0000000000..678ee77b06
--- /dev/null
+++ b/engines/titanic/gfx/sgt_selector.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SGT_SELECTOR_H
+#define TITANIC_SGT_SELECTOR_H
+
+#include "titanic/gfx/pet_graphic.h"
+
+namespace Titanic {
+
+class CSGTSelector : public CPetGraphic {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SGT_SELECTOR_H */
diff --git a/engines/titanic/gfx/slider_button.cpp b/engines/titanic/gfx/slider_button.cpp
new file mode 100644
index 0000000000..bcd9adde57
--- /dev/null
+++ b/engines/titanic/gfx/slider_button.cpp
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/slider_button.h"
+
+namespace Titanic {
+
+CSliderButton::CSliderButton() : CSTButton(), _field114(0),
+ _field118(0), _field11C(0) {
+}
+
+void CSliderButton::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_field114, indent);
+ file->writeNumberLine(_field118, indent);
+ file->writeNumberLine(_field11C, indent);
+ file->writePoint(_pos1, indent);
+
+ CSTButton::save(file, indent);
+}
+
+void CSliderButton::load(SimpleFile *file) {
+ file->readNumber();
+ _field114 = file->readNumber();
+ _field118 = file->readNumber();
+ _field11C = file->readNumber();
+ _pos1 = file->readPoint();
+
+ CSTButton::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/slider_button.h b/engines/titanic/gfx/slider_button.h
new file mode 100644
index 0000000000..afb96dbd70
--- /dev/null
+++ b/engines/titanic/gfx/slider_button.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SLIDER_BUTTON_H
+#define TITANIC_SLIDER_BUTTON_H
+
+#include "titanic/gfx/st_button.h"
+
+namespace Titanic {
+
+class CSliderButton : public CSTButton {
+private:
+ int _field114;
+ int _field118;
+ int _field11C;
+ Common::Point _pos1;
+public:
+ CLASSDEF
+ CSliderButton();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SLIDER_BUTTON_H */
diff --git a/engines/titanic/gfx/small_chev_left_off.cpp b/engines/titanic/gfx/small_chev_left_off.cpp
new file mode 100644
index 0000000000..8614e336e1
--- /dev/null
+++ b/engines/titanic/gfx/small_chev_left_off.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/small_chev_left_off.h"
+
+namespace Titanic {
+
+CSmallChevLeftOff::CSmallChevLeftOff() : CToggleSwitch() {
+}
+
+void CSmallChevLeftOff::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CToggleSwitch::save(file, indent);
+}
+
+void CSmallChevLeftOff::load(SimpleFile *file) {
+ file->readNumber();
+ CToggleSwitch::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/small_chev_left_off.h b/engines/titanic/gfx/small_chev_left_off.h
new file mode 100644
index 0000000000..fc500cee69
--- /dev/null
+++ b/engines/titanic/gfx/small_chev_left_off.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SMALL_CHEV_LEFT_OFF_H
+#define TITANIC_SMALL_CHEV_LEFT_OFF_H
+
+#include "titanic/gfx/toggle_switch.h"
+
+namespace Titanic {
+
+class CSmallChevLeftOff : public CToggleSwitch {
+public:
+ CLASSDEF
+ CSmallChevLeftOff();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SMALL_CHEV_LEFT_OFF_H */
diff --git a/engines/titanic/gfx/small_chev_left_on.cpp b/engines/titanic/gfx/small_chev_left_on.cpp
new file mode 100644
index 0000000000..7f6a4ee3db
--- /dev/null
+++ b/engines/titanic/gfx/small_chev_left_on.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/small_chev_left_on.h"
+
+namespace Titanic {
+
+CSmallChevLeftOn::CSmallChevLeftOn() : CToggleSwitch() {
+}
+
+void CSmallChevLeftOn::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CToggleSwitch::save(file, indent);
+}
+
+void CSmallChevLeftOn::load(SimpleFile *file) {
+ file->readNumber();
+ CToggleSwitch::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/small_chev_left_on.h b/engines/titanic/gfx/small_chev_left_on.h
new file mode 100644
index 0000000000..8ab9417468
--- /dev/null
+++ b/engines/titanic/gfx/small_chev_left_on.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SMALL_CHEV_LEFT_ON_H
+#define TITANIC_SMALL_CHEV_LEFT_ON_H
+
+#include "titanic/gfx/toggle_switch.h"
+
+namespace Titanic {
+
+class CSmallChevLeftOn : public CToggleSwitch {
+public:
+ CLASSDEF
+ CSmallChevLeftOn();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SMALL_CHEV_LEFT_ON_H */
diff --git a/engines/titanic/gfx/small_chev_right_off.cpp b/engines/titanic/gfx/small_chev_right_off.cpp
new file mode 100644
index 0000000000..1a3051bb4d
--- /dev/null
+++ b/engines/titanic/gfx/small_chev_right_off.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/small_chev_right_off.h"
+
+namespace Titanic {
+
+CSmallChevRightOff::CSmallChevRightOff() : CToggleSwitch() {
+}
+
+void CSmallChevRightOff::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CToggleSwitch::save(file, indent);
+}
+
+void CSmallChevRightOff::load(SimpleFile *file) {
+ file->readNumber();
+ CToggleSwitch::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/small_chev_right_off.h b/engines/titanic/gfx/small_chev_right_off.h
new file mode 100644
index 0000000000..fae9c3c674
--- /dev/null
+++ b/engines/titanic/gfx/small_chev_right_off.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SMALL_CHEV_RIGHT_OFF_H
+#define TITANIC_SMALL_CHEV_RIGHT_OFF_H
+
+#include "titanic/gfx/toggle_switch.h"
+
+namespace Titanic {
+
+class CSmallChevRightOff : public CToggleSwitch {
+public:
+ CLASSDEF
+ CSmallChevRightOff();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SMALL_CHEV_RIGHT_OFF_H */
diff --git a/engines/titanic/gfx/small_chev_right_on.cpp b/engines/titanic/gfx/small_chev_right_on.cpp
new file mode 100644
index 0000000000..714b6b314b
--- /dev/null
+++ b/engines/titanic/gfx/small_chev_right_on.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/small_chev_right_on.h"
+
+namespace Titanic {
+
+CSmallChevRightOn::CSmallChevRightOn() : CToggleSwitch() {
+}
+
+void CSmallChevRightOn::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CToggleSwitch::save(file, indent);
+}
+
+void CSmallChevRightOn::load(SimpleFile *file) {
+ file->readNumber();
+ CToggleSwitch::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/small_chev_right_on.h b/engines/titanic/gfx/small_chev_right_on.h
new file mode 100644
index 0000000000..c5cb4d792d
--- /dev/null
+++ b/engines/titanic/gfx/small_chev_right_on.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SMALL_CHEV_RIGHT_ON_H
+#define TITANIC_SMALL_CHEV_RIGHT_ON_H
+
+#include "titanic/gfx/toggle_switch.h"
+
+namespace Titanic {
+
+class CSmallChevRightOn : public CToggleSwitch {
+public:
+ CLASSDEF
+ CSmallChevRightOn();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SMALL_CHEV_RIGHT_ON_H */
diff --git a/engines/titanic/gfx/st_button.cpp b/engines/titanic/gfx/st_button.cpp
new file mode 100644
index 0000000000..44aa5cb7c5
--- /dev/null
+++ b/engines/titanic/gfx/st_button.cpp
@@ -0,0 +1,63 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/st_button.h"
+
+namespace Titanic {
+
+CSTButton::CSTButton() : CBackground() {
+ _fieldE0 = 0;
+ _string3 = "NULL";
+ _fieldF0 = 0;
+ _fieldF4 = 0;
+ _string4 = "NULL";
+ _string5 = "NULL";
+ _field110 = 0;
+}
+
+void CSTButton::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeQuotedLine(_string3, indent);
+ file->writeNumberLine(_fieldF0, indent);
+ file->writeNumberLine(_fieldF4, indent);
+ file->writeQuotedLine(_string4, indent);
+ file->writeQuotedLine(_string5, indent);
+ file->writeNumberLine(_field110, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CSTButton::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ _string3 = file->readString();
+ _fieldF0 = file->readNumber();
+ _fieldF4 = file->readNumber();
+ _string4 = file->readString();
+ _string5 = file->readString();
+ _field110 = file->readNumber();
+
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/st_button.h b/engines/titanic/gfx/st_button.h
new file mode 100644
index 0000000000..e63d1c831c
--- /dev/null
+++ b/engines/titanic/gfx/st_button.h
@@ -0,0 +1,56 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ST_BUTTON_H
+#define TITANIC_ST_BUTTON_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CSTButton : public CBackground {
+private:
+ int _fieldE0;
+ CString _string3;
+ int _fieldF0;
+ int _fieldF4;
+ CString _string4;
+ CString _string5;
+ int _field110;
+public:
+ CLASSDEF
+ CSTButton();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ST_BUTTON_H */
diff --git a/engines/titanic/gfx/status_change_button.cpp b/engines/titanic/gfx/status_change_button.cpp
new file mode 100644
index 0000000000..36037a2564
--- /dev/null
+++ b/engines/titanic/gfx/status_change_button.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/status_change_button.h"
+
+namespace Titanic {
+
+CStatusChangeButton::CStatusChangeButton() : CSTButton() {
+}
+
+void CStatusChangeButton::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CSTButton::save(file, indent);
+}
+
+void CStatusChangeButton::load(SimpleFile *file) {
+ file->readNumber();
+ CSTButton::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/status_change_button.h b/engines/titanic/gfx/status_change_button.h
new file mode 100644
index 0000000000..be0d9985b2
--- /dev/null
+++ b/engines/titanic/gfx/status_change_button.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STATUS_CHANGE_BUTTON_H
+#define TITANIC_STATUS_CHANGE_BUTTON_H
+
+#include "titanic/gfx/st_button.h"
+
+namespace Titanic {
+
+class CStatusChangeButton : public CSTButton {
+public:
+ CLASSDEF
+ CStatusChangeButton();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STATUS_CHANGE_BUTTON_H */
diff --git a/engines/titanic/gfx/text_down.cpp b/engines/titanic/gfx/text_down.cpp
new file mode 100644
index 0000000000..d4bdfdb72f
--- /dev/null
+++ b/engines/titanic/gfx/text_down.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/text_down.h"
+
+namespace Titanic {
+
+void CTextDown::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CPetGraphic::save(file, indent);
+}
+
+void CTextDown::load(SimpleFile *file) {
+ file->readNumber();
+ CPetGraphic::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/text_down.h b/engines/titanic/gfx/text_down.h
new file mode 100644
index 0000000000..6fc55bb647
--- /dev/null
+++ b/engines/titanic/gfx/text_down.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TEXT_DOWN_H
+#define TITANIC_TEXT_DOWN_H
+
+#include "titanic/gfx/pet_graphic.h"
+
+namespace Titanic {
+
+class CTextDown : public CPetGraphic {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TEXT_DOWN_H */
diff --git a/engines/titanic/gfx/text_skrew.cpp b/engines/titanic/gfx/text_skrew.cpp
new file mode 100644
index 0000000000..8d1f026913
--- /dev/null
+++ b/engines/titanic/gfx/text_skrew.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/text_skrew.h"
+
+namespace Titanic {
+
+void CTextSkrew::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CPetGraphic::save(file, indent);
+}
+
+void CTextSkrew::load(SimpleFile *file) {
+ file->readNumber();
+ CPetGraphic::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/text_skrew.h b/engines/titanic/gfx/text_skrew.h
new file mode 100644
index 0000000000..6d7e714963
--- /dev/null
+++ b/engines/titanic/gfx/text_skrew.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TEXT_SKREW_H
+#define TITANIC_TEXT_SKREW_H
+
+#include "titanic/gfx/pet_graphic.h"
+
+namespace Titanic {
+
+class CTextSkrew : public CPetGraphic {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TEXT_SKREW_H */
diff --git a/engines/titanic/gfx/text_up.cpp b/engines/titanic/gfx/text_up.cpp
new file mode 100644
index 0000000000..ce3ff100dc
--- /dev/null
+++ b/engines/titanic/gfx/text_up.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/text_up.h"
+
+namespace Titanic {
+
+void CTextUp::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CPetGraphic::save(file, indent);
+}
+
+void CTextUp::load(SimpleFile *file) {
+ file->readNumber();
+ CPetGraphic::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/text_up.h b/engines/titanic/gfx/text_up.h
new file mode 100644
index 0000000000..328aeee0ee
--- /dev/null
+++ b/engines/titanic/gfx/text_up.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TEXT_UP_H
+#define TITANIC_TEXT_UP_H
+
+#include "titanic/gfx/pet_graphic.h"
+
+namespace Titanic {
+
+class CTextUp : public CPetGraphic {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TEXT_UP_H */
diff --git a/engines/titanic/gfx/toggle_button.cpp b/engines/titanic/gfx/toggle_button.cpp
new file mode 100644
index 0000000000..8284d35aac
--- /dev/null
+++ b/engines/titanic/gfx/toggle_button.cpp
@@ -0,0 +1,41 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/toggle_button.h"
+
+namespace Titanic {
+
+void CToggleButton::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+
+ CBackground::save(file, indent);
+}
+
+void CToggleButton::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+
+ CBackground::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/toggle_button.h b/engines/titanic/gfx/toggle_button.h
new file mode 100644
index 0000000000..a98a94df9e
--- /dev/null
+++ b/engines/titanic/gfx/toggle_button.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TOGGLE_BUTTON_H
+#define TITANIC_TOGGLE_BUTTON_H
+
+#include "titanic/core/background.h"
+
+namespace Titanic {
+
+class CToggleButton : public CBackground {
+private:
+ int _fieldE0;
+public:
+ CLASSDEF
+ CToggleButton() : CBackground(), _fieldE0(1) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TOGGLE_BUTTON_H */
diff --git a/engines/titanic/gfx/toggle_switch.cpp b/engines/titanic/gfx/toggle_switch.cpp
new file mode 100644
index 0000000000..330714693f
--- /dev/null
+++ b/engines/titanic/gfx/toggle_switch.cpp
@@ -0,0 +1,46 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/gfx/toggle_switch.h"
+
+namespace Titanic {
+
+CToggleSwitch::CToggleSwitch() : CGameObject(), _fieldBC(0) {
+}
+
+void CToggleSwitch::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writePoint(_pos1, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CToggleSwitch::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _pos1 = file->readPoint();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/gfx/toggle_switch.h b/engines/titanic/gfx/toggle_switch.h
new file mode 100644
index 0000000000..9b4fc4219b
--- /dev/null
+++ b/engines/titanic/gfx/toggle_switch.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TOGGLE_SWITCH_H
+#define TITANIC_TOGGLE_SWITCH_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CToggleSwitch : public CGameObject {
+private:
+ int _fieldBC;
+ Common::Point _pos1;
+public:
+ CLASSDEF
+ CToggleSwitch();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TOGGLE_SWITCH_H */
diff --git a/engines/titanic/image.cpp b/engines/titanic/image.cpp
new file mode 100644
index 0000000000..0a130419a1
--- /dev/null
+++ b/engines/titanic/image.cpp
@@ -0,0 +1,121 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/file.h"
+#include "titanic/image.h"
+
+namespace Titanic {
+
+BITMAPINFOHEADER::BITMAPINFOHEADER() {
+ _biSize = 0;
+ _biWidth = 0;
+ _biHeight = 0;
+ _biPlanes = 0;
+ _biBitCount = 0;
+ _biCompression = 0;
+ _biSizeImage = 0;
+ _biXPelsPerMeter = 0;
+ _biYPelsPerMeter = 0;
+ _biClrUsed = 0;
+ _biClrImportant = 0;
+}
+
+/*------------------------------------------------------------------------*/
+
+RGBQuad::RGBQuad() : _rgbRed(0), _rgbGreen(0), _rgbBlue(0), _rgbReserved(0) {}
+
+/*------------------------------------------------------------------------*/
+
+Image::Image() {
+ _bitmapInfo = nullptr;
+ _bits = nullptr;
+ _flag = true;
+
+ set(16, 16);
+}
+
+void Image::proc6() {
+
+}
+
+void Image::set(int width, int height) {
+ delete _bitmapInfo;
+ if (_flag && _bitmapInfo)
+ delete[] _bits;
+
+ _bitmapInfo = new tagBITMAPINFO;
+ _bits = new byte[(width + 3) & 0xFFFC * height];
+
+ tagBITMAPINFO &bi = *_bitmapInfo;
+ bi._bmiHeader._biWidth = width;
+ bi._bmiHeader._biHeight = height;
+ bi._bmiHeader._biPlanes = 1;
+ bi._bmiHeader._biBitCount = 8;
+}
+
+void Image::proc8() {
+
+}
+
+bool Image::loadResource(const Common::String &name) {
+ // This method is hardcoded for the Titanic splash screen resource
+ assert(name == "TITANIC");
+
+ Common::File f;
+ if (!f.open("ST.exe"))
+ return false;
+
+ // The ST.exe executable has a bitmap called "TITANIC". Since we can't use
+ // the Windows FindResource function in ScummVM, this is hardcoded for now
+ f.seek(0x29B660);
+ uint size = f.readUint32LE();
+ if (size != 40)
+ return false;
+
+ loadBitmap(f);
+
+ return true;
+}
+
+void Image::proc10() {
+
+}
+
+void Image::draw() {
+
+}
+
+void Image::loadBitmap(Common::SeekableReadStream &s) {
+ _bitmapInfo->_bmiHeader._biWidth = s.readUint32LE();
+ _bitmapInfo->_bmiHeader._biHeight = s.readUint32LE();
+ _bitmapInfo->_bmiHeader._biPlanes = s.readUint16LE();
+ _bitmapInfo->_bmiHeader._biBitCount = s.readUint16LE();
+ _bitmapInfo->_bmiHeader._biCompression = s.readUint32LE();
+ _bitmapInfo->_bmiHeader._biSizeImage = s.readUint32LE();
+ _bitmapInfo->_bmiHeader._biXPelsPerMeter = s.readUint32LE();
+ _bitmapInfo->_bmiHeader._biYPelsPerMeter = s.readUint32LE();
+ _bitmapInfo->_bmiHeader._biClrUsed = s.readUint32LE();
+ _bitmapInfo->_bmiHeader._biClrImportant = s.readUint32LE();
+
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/image.h b/engines/titanic/image.h
new file mode 100644
index 0000000000..9030e81ad7
--- /dev/null
+++ b/engines/titanic/image.h
@@ -0,0 +1,82 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_IMAGE_H
+#define TITANIC_IMAGE_H
+
+#include "common/scummsys.h"
+#include "common/array.h"
+
+namespace Titanic {
+
+struct BITMAPINFOHEADER {
+ int _biSize;
+ int _biWidth;
+ int _biHeight;
+ int _biPlanes;
+ int _biBitCount;
+ int _biCompression;
+ int _biSizeImage;
+ int _biXPelsPerMeter;
+ int _biYPelsPerMeter;
+ int _biClrUsed;
+ int _biClrImportant;
+
+ BITMAPINFOHEADER();
+};
+
+struct RGBQuad {
+ byte _rgbRed;
+ byte _rgbGreen;
+ byte _rgbBlue;
+ byte _rgbReserved;
+
+ RGBQuad();
+};
+
+struct tagBITMAPINFO {
+ BITMAPINFOHEADER _bmiHeader;
+ RGBQuad _bmiColors[256];
+};
+
+class Image {
+private:
+ void loadBitmap(Common::SeekableReadStream &s);
+public:
+ tagBITMAPINFO *_bitmapInfo;
+ byte *_bits;
+ bool _flag;
+public:
+ Image();
+ virtual ~Image() {}
+
+ virtual void proc6();
+ virtual void set(int width, int height);
+ virtual void proc8();
+ virtual bool loadResource(const Common::String &name);
+ virtual void proc10();
+ virtual void draw();
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_IMAGE_H */
diff --git a/engines/titanic/image_decoders.cpp b/engines/titanic/image_decoders.cpp
new file mode 100644
index 0000000000..721342ef6d
--- /dev/null
+++ b/engines/titanic/image_decoders.cpp
@@ -0,0 +1,79 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/image_decoders.h"
+
+namespace Titanic {
+
+void CJPEGDecode::decode(OSVideoSurface &surface, const CString &name) {
+ // Open up the resource
+ StdCWadFile file;
+ file.open(name);
+
+ // Use the ScucmmVM deoder to decode it
+ loadStream(*file.readStream());
+ const Graphics::Surface *srcSurf = getSurface();
+
+ // Resize the surface if necessary
+ if (!surface.hasSurface() || surface.getWidth() != srcSurf->w
+ || surface.getHeight() != srcSurf->h)
+ surface.resize(srcSurf->w, srcSurf->h);
+
+ // Convert the decoded surface to the correct pixel format, and then copy it over
+ surface.lock();
+ Graphics::Surface *convertedSurface = srcSurf->convertTo(surface._rawSurface->format);
+
+ Common::copy((byte *)convertedSurface->getPixels(), (byte *)convertedSurface->getPixels() +
+ surface.getPitch() * surface.getHeight(), (byte *)surface._rawSurface->getPixels());
+
+ delete convertedSurface;
+ surface.unlock();
+}
+
+/*------------------------------------------------------------------------*/
+
+void CTargaDecode::decode(OSVideoSurface &surface, const CString &name) {
+ // Open up the resource
+ StdCWadFile file;
+ file.open(name);
+
+ // Use the ScucmmVM deoder to decode it
+ loadStream(*file.readStream());
+ const Graphics::Surface *srcSurf = getSurface();
+
+ // Resize the surface if necessary
+ if (!surface.hasSurface() || surface.getWidth() != srcSurf->w
+ || surface.getHeight() != srcSurf->h)
+ surface.resize(srcSurf->w, srcSurf->h);
+
+ // Convert the decoded surface to the correct pixel format, and then copy it over
+ surface.lock();
+ Graphics::Surface *convertedSurface = srcSurf->convertTo(surface._rawSurface->format);
+
+ Common::copy((byte *)convertedSurface->getPixels(), (byte *)convertedSurface->getPixels() +
+ surface.getPitch() * surface.getHeight(), (byte *)surface._rawSurface->getPixels());
+
+ delete convertedSurface;
+ surface.unlock();
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/image_decoders.h b/engines/titanic/image_decoders.h
new file mode 100644
index 0000000000..d72d6fee5d
--- /dev/null
+++ b/engines/titanic/image_decoders.h
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_IMAGE_DECODERS_H
+#define TITANIC_IMAGE_DECODERS_H
+
+#include "image/jpeg.h"
+#include "image/tga.h"
+#include "titanic/string.h"
+#include "titanic/simple_file.h"
+#include "titanic/video_surface.h"
+
+namespace Titanic {
+
+class CJPEGDecode : public Image::JPEGDecoder {
+public:
+ /**
+ * Decode the image file onto the passed surface
+ */
+ void decode(OSVideoSurface &surface, const CString &name);
+};
+
+class CTargaDecode : public Image::TGADecoder {
+public:
+ /**
+ * Decode the image file onto the passed surface
+ */
+ void decode(OSVideoSurface &surface, const CString &name);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_IMAGE_DECODERS_H */
diff --git a/engines/titanic/input_handler.cpp b/engines/titanic/input_handler.cpp
new file mode 100644
index 0000000000..c710374d05
--- /dev/null
+++ b/engines/titanic/input_handler.cpp
@@ -0,0 +1,141 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/input_handler.h"
+#include "titanic/game_manager.h"
+#include "titanic/screen_manager.h"
+#include "titanic/titanic.h"
+#include "titanic/pet_control/pet_control.h"
+
+namespace Titanic {
+
+CInputHandler::CInputHandler(CGameManager *owner) :
+ _gameManager(owner), _inputTranslator(nullptr), _dragging(false),
+ _buttonDown(false), _dragItem(nullptr), _lockCount(0), _field24(0) {
+ CScreenManager::_screenManagerPtr->_inputHandler = this;
+}
+
+void CInputHandler::setTranslator(CInputTranslator *translator) {
+ _inputTranslator = translator;
+}
+
+void CInputHandler::incLockCount() {
+ ++_lockCount;
+}
+
+void CInputHandler::decLockCount() {
+ if (--_lockCount == 0 && _inputTranslator) {
+ warning("TODO");
+ }
+}
+
+void CInputHandler::handleMessage(const CMessage &msg, bool respectLock) {
+ if (!respectLock || _lockCount <= 0) {
+ if (_gameManager->_gameState._mode == GSMODE_1) {
+ processMessage(&msg);
+ } else if (!msg.isMouseMsg()) {
+ g_vm->_filesManager.loadDrive();
+ }
+ }
+}
+
+void CInputHandler::processMessage(const CMessage *msg) {
+ const CMouseMsg *mouseMsg = dynamic_cast<const CMouseMsg *>(msg);
+ _field24 = 0;
+ dispatchMessage(msg);
+
+ if (_field24) {
+ _field24 = 0;
+ } else if (mouseMsg) {
+ // Keep the game state mouse position up to date
+ if (_mousePos != mouseMsg->_mousePos) {
+ _mousePos = mouseMsg->_mousePos;
+ _gameManager->_gameState.setMousePos(mouseMsg->_mousePos);
+ }
+
+ // Set flag for whether a mouse button is currently being pressed
+ if (mouseMsg->isButtonDownMsg())
+ _buttonDown = true;
+ else if (mouseMsg->isButtonUpMsg())
+ _buttonDown = false;
+
+ // Drag events generation
+ if (_dragging) {
+ if (mouseMsg->isMouseMoveMsg()) {
+ if (_dragItem) {
+ CMouseDragMoveMsg moveMsg(_mousePos);
+ moveMsg.execute(_dragItem);
+ }
+ } else {
+ if (mouseMsg->isButtonUpMsg() && _dragItem) {
+ // Mouse drag ended
+ dragEnd(_mousePos, _dragItem);
+ CMouseDragEndMsg endMsg(_mousePos, _dragItem);
+ endMsg.execute(_dragItem);
+ }
+
+ _dragging = false;
+ _dragItem = nullptr;
+ }
+ } else if (_buttonDown) {
+ if (!mouseMsg->isMouseMoveMsg()) {
+ // Save where the drag movement started from
+ _dragStartPos = _mousePos;
+ } else {
+ Common::Point delta = mouseMsg->_mousePos - _dragStartPos;
+ int distance = (int)sqrt(double(delta.x * delta.x + delta.y * delta.y));
+
+ if (distance > 4) {
+ // We've moved far enough with the mouse button held down
+ // to trigger an official dragging operation
+ CMouseDragStartMsg startMsg(_dragStartPos);
+ dispatchMessage(&startMsg);
+
+ // Set the drag item, if any, that a handler will have set on the message
+ _dragItem = startMsg._dragItem;
+ _gameManager->_dragItem = startMsg._dragItem;
+
+ if (_dragItem) {
+ CMouseDragMoveMsg moveMsg(_dragStartPos);
+ dispatchMessage(&moveMsg);
+ }
+
+ _dragging = true;
+ }
+ }
+ }
+ }
+}
+
+void CInputHandler::dispatchMessage(const CMessage *msg) {
+ CPetControl *pet = _gameManager->_project->getPetControl();
+ if (!pet || !msg->execute(pet, nullptr, MSGFLAG_BREAK_IF_HANDLED)) {
+ CViewItem *view = _gameManager->getView();
+ msg->execute(view);
+ }
+}
+
+void CInputHandler::dragEnd(const Common::Point &mousePos, CTreeItem *dragItem) {
+ warning("TODO CInputHandler::dragEnd");
+}
+
+} // End of namespace Titanic z
diff --git a/engines/titanic/input_handler.h b/engines/titanic/input_handler.h
new file mode 100644
index 0000000000..ad1ba86215
--- /dev/null
+++ b/engines/titanic/input_handler.h
@@ -0,0 +1,83 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_INPUT_HANDLER_H
+#define TITANIC_INPUT_HANDLER_H
+
+#include "common/rect.h"
+#include "titanic/input_translator.h"
+#include "titanic/core/tree_item.h"
+
+namespace Titanic {
+
+class CGameManager;
+
+class CInputHandler {
+private:
+ /**
+ * Process and dispatch a passed message
+ */
+ void processMessage(const CMessage *msg);
+
+ /**
+ * Dispatches a message to the project
+ */
+ void dispatchMessage(const CMessage *msg);
+
+ /**
+ * Called when a drag operation has ended
+ */
+ void dragEnd(const Common::Point &mousePos, CTreeItem *dragItem);
+public:
+ CGameManager *_gameManager;
+ CInputTranslator *_inputTranslator;
+ bool _dragging;
+ bool _buttonDown;
+ CTreeItem *_dragItem;
+ Common::Point _dragStartPos;
+ Common::Point _mousePos;
+ int _lockCount;
+ int _field24;
+public:
+ CInputHandler(CGameManager *owner);
+
+ void setTranslator(CInputTranslator *translator);
+
+ /**
+ * Increment the lock count
+ */
+ void incLockCount();
+
+ /**
+ * Decrement the lock count on the input handler
+ */
+ void decLockCount();
+
+ /**
+ * Handles a genereated mouse message
+ */
+ void handleMessage(const CMessage &msg, bool respectLock = true);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_INPUT_HANDLER_H */
diff --git a/engines/titanic/input_translator.cpp b/engines/titanic/input_translator.cpp
new file mode 100644
index 0000000000..bd33f20a70
--- /dev/null
+++ b/engines/titanic/input_translator.cpp
@@ -0,0 +1,97 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/input_handler.h"
+#include "titanic/input_translator.h"
+#include "titanic/events.h"
+#include "titanic/messages/mouse_messages.h"
+
+namespace Titanic {
+
+CInputTranslator::CInputTranslator(CInputHandler *inputHandler) :
+ _inputHandler(inputHandler) {
+ inputHandler->setTranslator(this);
+}
+
+int CInputTranslator::getButtons(int special) const {
+ int buttons = 0;
+ if (special & MK_LBUTTON)
+ buttons |= MB_LEFT;
+ if (special & MK_MBUTTON)
+ buttons |= MB_MIDDLE;
+ if (special & MK_RBUTTON)
+ buttons |= MB_RIGHT;
+
+ return buttons;
+}
+
+void CInputTranslator::mouseMove(int special, const Common::Point &pt) {
+ CMouseMoveMsg msg(pt, getButtons(special));
+ _inputHandler->handleMessage(msg);
+}
+
+void CInputTranslator::leftButtonDown(int special, const Common::Point &pt) {
+ CMouseButtonDownMsg msg(pt, getButtons(special));
+ _inputHandler->handleMessage(msg);
+}
+
+void CInputTranslator::leftButtonUp(int special, const Common::Point &pt) {
+ CMouseButtonUpMsg msg(pt, getButtons(special));
+ _inputHandler->handleMessage(msg);
+}
+
+void CInputTranslator::leftButtonDoubleClick(int special, const Common::Point &pt) {
+ CMouseButtonDoubleClickMsg msg(pt, getButtons(special));
+ _inputHandler->handleMessage(msg);
+}
+
+void CInputTranslator::middleButtonDown(int special, const Common::Point &pt) {
+ CMouseButtonDownMsg msg(pt, getButtons(special));
+ _inputHandler->handleMessage(msg);
+}
+
+void CInputTranslator::middleButtonUp(int special, const Common::Point &pt) {
+ CMouseButtonUpMsg msg(pt, getButtons(special));
+ _inputHandler->handleMessage(msg);
+}
+
+void CInputTranslator::middleButtonDoubleClick(int special, const Common::Point &pt) {
+ CMouseButtonDoubleClickMsg msg(pt, getButtons(special));
+ _inputHandler->handleMessage(msg);
+}
+
+void CInputTranslator::rightButtonDown(int special, const Common::Point &pt) {
+ CMouseButtonDownMsg msg(pt, getButtons(special));
+ _inputHandler->handleMessage(msg);
+}
+
+void CInputTranslator::rightButtonUp(int special, const Common::Point &pt) {
+ CMouseButtonUpMsg msg(pt, getButtons(special));
+ _inputHandler->handleMessage(msg);
+}
+
+void CInputTranslator::rightButtonDoubleClick(int special, const Common::Point &pt) {
+ CMouseButtonDoubleClickMsg msg(pt, getButtons(special));
+ _inputHandler->handleMessage(msg);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/input_translator.h b/engines/titanic/input_translator.h
new file mode 100644
index 0000000000..2748ca4951
--- /dev/null
+++ b/engines/titanic/input_translator.h
@@ -0,0 +1,57 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_INPUT_TRANSLATOR_H
+#define TITANIC_INPUT_TRANSLATOR_H
+
+#include "titanic/messages/mouse_messages.h"
+
+namespace Titanic {
+
+class CInputHandler;
+
+class CInputTranslator {
+private:
+ /**
+ * Converts the special buttons bitset into a buttons bitset
+ */
+ int getButtons(int special) const;
+public:
+ CInputHandler *_inputHandler;
+public:
+ CInputTranslator(CInputHandler *inputHandler);
+
+ void mouseMove(int special, const Common::Point &pt);
+ void leftButtonDown(int special, const Common::Point &pt);
+ void leftButtonUp(int special, const Common::Point &pt);
+ void leftButtonDoubleClick(int special, const Common::Point &pt);
+ void middleButtonDown(int special, const Common::Point &pt);
+ void middleButtonUp(int special, const Common::Point &pt);
+ void middleButtonDoubleClick(int special, const Common::Point &pt);
+ void rightButtonDown(int special, const Common::Point &pt);
+ void rightButtonUp(int special, const Common::Point &pt);
+ void rightButtonDoubleClick(int special, const Common::Point &pt);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_INPUT_TRANSLATOR_H */
diff --git a/engines/titanic/main_game_window.cpp b/engines/titanic/main_game_window.cpp
new file mode 100644
index 0000000000..6a6a46ea65
--- /dev/null
+++ b/engines/titanic/main_game_window.cpp
@@ -0,0 +1,146 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/titanic.h"
+#include "titanic/main_game_window.h"
+#include "titanic/game_manager.h"
+#include "titanic/game_view.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+CMainGameWindow::CMainGameWindow(TitanicEngine *vm): _vm(vm) {
+ _gameView = nullptr;
+ _gameManager = nullptr;
+ _project = nullptr;
+ _inputAllowed = false;
+ _image = nullptr;
+ _cursor = nullptr;
+}
+
+bool CMainGameWindow::Create() {
+ Image image;
+ bool result = image.loadResource("TITANIC");
+ if (!result)
+ return true;
+
+ // TODO: Stuff
+ return true;
+}
+
+void CMainGameWindow::applicationStarting() {
+ // Set up the game project, and get game slot
+ int saveSlot = loadGame();
+ assert(_project);
+
+ // Set the video mode
+ CScreenManager *screenManager = CScreenManager::setCurrent();
+ screenManager->setMode(640, 480, 16, 1, true);
+
+ // TODO: Remove initial background and palette
+
+
+ // Create game view and manager
+ _gameView = new CSTGameView(this);
+ _gameManager = new CGameManager(_project, _gameView);
+ _gameView->setGameManager(_gameManager);
+
+ // Load either a new game or selected existing save
+ _project->loadGame(saveSlot);
+ _inputAllowed = true;
+ _gameManager->_gameState.setMode(GSMODE_1);
+
+ // TODO: Cursor/image
+
+ // Generate starting messages for entering the view, node, and room.
+ // Note the old fields are nullptr, since there's no previous view/node/room
+ CViewItem *view = _gameManager->_gameState._gameLocation.getView();
+ CEnterViewMsg enterViewMsg(nullptr, view);
+ enterViewMsg.execute(view, nullptr, MSGFLAG_SCAN);
+
+ CNodeItem *node = view->findNode();
+ CEnterNodeMsg enterNodeMsg(nullptr, node);
+ enterNodeMsg.execute(node, nullptr, MSGFLAG_SCAN);
+
+ CRoomItem *room = view->findRoom();
+ CEnterRoomMsg enterRoomMsg(nullptr, room);
+ enterRoomMsg.execute(room, nullptr, MSGFLAG_SCAN);
+
+ _gameManager->initBounds();
+}
+
+int CMainGameWindow::loadGame() {
+ _project = new CProjectItem();
+ _project->setFilename("starship.prj");
+
+ return selectSavegame();
+}
+
+int CMainGameWindow::selectSavegame() {
+ // TODO: For now, hardcoded to -1 for new saves
+ return -1;
+}
+
+void CMainGameWindow::setActiveView(CViewItem *viewItem) {
+ _gameManager->_gameState._gameLocation.setView(viewItem);
+
+ CResourceKey key;
+ if (viewItem->getResourceKey(&key)) {
+ // Create a surface based on the key
+ _gameView->createSurface(key);
+ }
+}
+
+void CMainGameWindow::draw() {
+ if (_gameManager) {
+ if (_gameView->_surface) {
+ CViewItem *view = _gameManager->getView();
+ if (view)
+ setActiveView(view);
+ }
+
+ CScreenManager *scrManager = CScreenManager::setCurrent();
+ scrManager->clearSurface(0, &_gameManager->_bounds);
+
+ switch (_gameManager->_gameState._mode) {
+ case GSMODE_1:
+ case GSMODE_2:
+ if (_gameManager->_gameState._field18)
+ warning("TODO: Field18_fn1(this)");
+ warning("TODO: Stuff");
+
+ case GSMODE_5:
+ g_vm->_filesManager.debug(scrManager);
+ break;
+
+ default:
+ break;
+ }
+ }
+}
+
+void CMainGameWindow::mouseChanged() {
+ if (_gameManager->_gameState._mode != GSMODE_5)
+ _gameManager->update();
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/main_game_window.h b/engines/titanic/main_game_window.h
new file mode 100644
index 0000000000..8f6fb81228
--- /dev/null
+++ b/engines/titanic/main_game_window.h
@@ -0,0 +1,90 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MAIN_GAME_WINDOW_H
+#define TITANIC_MAIN_GAME_WINDOW_H
+
+#include "common/scummsys.h"
+#include "common/array.h"
+#include "titanic/game_manager.h"
+#include "titanic/game_view.h"
+#include "titanic/image.h"
+#include "titanic/core/project_item.h"
+
+namespace Titanic {
+
+class TitanicEngine;
+
+class CMainGameWindow {
+private:
+ TitanicEngine *_vm;
+
+ /**
+ * Checks for the presence of any savegames and, if present,
+ * lets the user pick one to resume
+ */
+ int loadGame();
+
+ /**
+ * Creates the game "project" and determine a game save slot
+ * to use
+ */
+ int selectSavegame();
+public:
+ CGameView *_gameView;
+ CGameManager *_gameManager;
+ CProjectItem *_project;
+ bool _inputAllowed;
+ Image *_image;
+ void *_cursor;
+public:
+ CMainGameWindow(TitanicEngine *vm);
+
+ /**
+ * Creates the window
+ */
+ bool Create();
+
+ /**
+ * Called when the application starts
+ */
+ void applicationStarting();
+
+ /**
+ * Sets the view to be shown
+ */
+ void setActiveView(CViewItem *viewItem);
+
+ /**
+ * Main draw method for the window
+ */
+ void draw();
+
+ /**
+ * Called by the event handler when a mouse event has been generated
+ */
+ void mouseChanged();
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MAIN_GAME_WINDOW_H */
diff --git a/engines/titanic/messages/auto_sound_event.cpp b/engines/titanic/messages/auto_sound_event.cpp
new file mode 100644
index 0000000000..006762c49b
--- /dev/null
+++ b/engines/titanic/messages/auto_sound_event.cpp
@@ -0,0 +1,46 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/messages/auto_sound_event.h"
+
+namespace Titanic {
+
+CAutoSoundEvent::CAutoSoundEvent() : CGameObject(), _value1(0), _value2(70) {
+}
+
+void CAutoSoundEvent::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value1, indent);
+ file->writeNumberLine(_value2, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CAutoSoundEvent::load(SimpleFile *file) {
+ file->readNumber();
+ _value1 = file->readNumber();
+ _value2 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/messages/auto_sound_event.h b/engines/titanic/messages/auto_sound_event.h
new file mode 100644
index 0000000000..03baba354f
--- /dev/null
+++ b/engines/titanic/messages/auto_sound_event.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_AUTO_SOUND_EVENT_H
+#define TITANIC_AUTO_SOUND_EVENT_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CAutoSoundEvent : public CGameObject {
+public:
+ int _value1;
+ int _value2;
+public:
+ CLASSDEF
+ CAutoSoundEvent();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_AUTO_SOUND_EVENT_H */
diff --git a/engines/titanic/messages/bilge_auto_sound_event.cpp b/engines/titanic/messages/bilge_auto_sound_event.cpp
new file mode 100644
index 0000000000..7bc91da0bc
--- /dev/null
+++ b/engines/titanic/messages/bilge_auto_sound_event.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/messages/bilge_auto_sound_event.h"
+
+namespace Titanic {
+
+void CBilgeAutoSoundEvent::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CAutoSoundEvent::save(file, indent);
+}
+
+void CBilgeAutoSoundEvent::load(SimpleFile *file) {
+ file->readNumber();
+ CAutoSoundEvent::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/messages/bilge_auto_sound_event.h b/engines/titanic/messages/bilge_auto_sound_event.h
new file mode 100644
index 0000000000..e51f74bfa5
--- /dev/null
+++ b/engines/titanic/messages/bilge_auto_sound_event.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BILGE_AUTO_SOUND_EVENT_H
+#define TITANIC_BILGE_AUTO_SOUND_EVENT_H
+
+#include "titanic/messages/auto_sound_event.h"
+
+namespace Titanic {
+
+class CBilgeAutoSoundEvent : public CAutoSoundEvent {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BILGE_AUTO_SOUND_EVENT_H */
diff --git a/engines/titanic/messages/bilge_dispensor_event.cpp b/engines/titanic/messages/bilge_dispensor_event.cpp
new file mode 100644
index 0000000000..c20fe10992
--- /dev/null
+++ b/engines/titanic/messages/bilge_dispensor_event.cpp
@@ -0,0 +1,42 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/messages/bilge_dispensor_event.h"
+
+namespace Titanic {
+
+void CBilgeDispensorEvent::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CAutoSoundEvent::save(file, indent);
+}
+
+void CBilgeDispensorEvent::load(SimpleFile *file) {
+ file->readNumber();
+ CAutoSoundEvent::load(file);
+}
+
+bool CBilgeDispensorEvent::handleEvent(CEnterRoomMsg &msg) {
+ _value1 = 0;
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/messages/bilge_dispensor_event.h b/engines/titanic/messages/bilge_dispensor_event.h
new file mode 100644
index 0000000000..9f91b61ef9
--- /dev/null
+++ b/engines/titanic/messages/bilge_dispensor_event.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BILGE_DISPENSOR_EVENT_H
+#define TITANIC_BILGE_DISPENSOR_EVENT_H
+
+#include "titanic/messages/auto_sound_event.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CBilgeDispensorEvent : public CAutoSoundEvent {
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BILGE_DISPENSOR_EVENT_H */
diff --git a/engines/titanic/messages/door_auto_sound_event.cpp b/engines/titanic/messages/door_auto_sound_event.cpp
new file mode 100644
index 0000000000..ff9101f506
--- /dev/null
+++ b/engines/titanic/messages/door_auto_sound_event.cpp
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/messages/door_auto_sound_event.h"
+
+namespace Titanic {
+
+void CDoorAutoSoundEvent::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeQuotedLine(_string2, indent);
+ file->writeNumberLine(_fieldDC, indent);
+ file->writeNumberLine(_fieldE0, indent);
+
+ CAutoSoundEvent::save(file, indent);
+}
+
+void CDoorAutoSoundEvent::load(SimpleFile *file) {
+ file->readNumber();
+ _string1 = file->readString();
+ _string2 = file->readString();
+ _fieldDC = file->readNumber();
+ _fieldE0 = file->readNumber();
+
+ CAutoSoundEvent::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/messages/door_auto_sound_event.h b/engines/titanic/messages/door_auto_sound_event.h
new file mode 100644
index 0000000000..cccc3fff9d
--- /dev/null
+++ b/engines/titanic/messages/door_auto_sound_event.h
@@ -0,0 +1,55 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_DOOR_AUTO_SOUND_EVENT_H
+#define TITANIC_DOOR_AUTO_SOUND_EVENT_H
+
+#include "titanic/messages/auto_sound_event.h"
+
+namespace Titanic {
+
+class CDoorAutoSoundEvent : public CAutoSoundEvent {
+public:
+ CString _string1;
+ CString _string2;
+ int _fieldDC;
+ int _fieldE0;
+public:
+ CLASSDEF
+ CDoorAutoSoundEvent() : CAutoSoundEvent(),
+ _string1("z#44.wav"), _string2("z#43.wav"), _fieldDC(25), _fieldE0(25) {
+ }
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_DOOR_AUTO_SOUND_EVENT_H */
diff --git a/engines/titanic/messages/messages.cpp b/engines/titanic/messages/messages.cpp
new file mode 100644
index 0000000000..b44748d899
--- /dev/null
+++ b/engines/titanic/messages/messages.cpp
@@ -0,0 +1,126 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/messages/messages.h"
+#include "titanic/messages/mouse_messages.h"
+#include "titanic/core/game_object.h"
+#include "titanic/core/tree_item.h"
+
+namespace Titanic {
+
+CMessage::CMessage() : CSaveableObject() {
+}
+
+void CMessage::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(0, indent);
+}
+
+void CMessage::load(SimpleFile *file) {
+ file->readNumber();
+ CSaveableObject::load(file);
+}
+
+bool CMessage::execute(CTreeItem *target, const ClassDef *classDef, int flags) const {
+ // If no target was specified, then there's nothing to do
+ if (!target)
+ return false;
+
+ bool result = false;
+ CTreeItem *item = target;
+ CTreeItem *nextItem = nullptr;
+ do {
+ if (flags & MSGFLAG_SCAN)
+ nextItem = item->scan(target);
+
+ if (!(flags & MSGFLAG_CLASS_DEF) || item->isInstanceOf(classDef)) {
+ bool handled = perform(item);
+
+ if (handled) {
+ result = true;
+ if (flags & MSGFLAG_BREAK_IF_HANDLED)
+ return true;
+ }
+ }
+
+ item = nextItem;
+ } while (nextItem);
+
+ return result;
+}
+
+bool CMessage::isMouseMsg() const {
+ return dynamic_cast<const CMouseMsg *>(this) != nullptr;
+}
+
+bool CMessage::isButtonDownMsg() const {
+ return dynamic_cast<const CMouseButtonDownMsg *>(this) != nullptr;
+}
+
+bool CMessage::isButtonUpMsg() const {
+ return dynamic_cast<const CMouseButtonUpMsg *>(this) != nullptr;
+}
+
+bool CMessage::isMouseMoveMsg() const {
+ return dynamic_cast<const CMouseMoveMsg *>(this) != nullptr;
+}
+
+bool CMessage::isDoubleClickMsg() const {
+ return dynamic_cast<const CMouseButtonDoubleClickMsg *>(this) != nullptr;
+}
+
+bool CMessage::isEnterRoomMsg() const {
+ return dynamic_cast<const CEnterRoomMsg *>(this) != nullptr;
+}
+
+bool CMessage::isPreEnterRoomMsg() const {
+ return dynamic_cast<const CPreEnterRoomMsg *>(this) != nullptr;
+}
+
+bool CMessage::isleaveRoomMsg() const {
+ return dynamic_cast<const CLeaveRoomMsg *>(this) != nullptr;
+}
+
+bool CMessage::isEnterNodeMsg() const {
+ return dynamic_cast<const CEnterNodeMsg *>(this) != nullptr;
+}
+
+bool CMessage::isPreEnterNodeMsg() const {
+ return dynamic_cast<const CPreEnterNodeMsg *>(this) != nullptr;
+}
+
+bool CMessage::isLeaveNodeMsg() const {
+ return dynamic_cast<const CLeaveNodeMsg *>(this) != nullptr;
+}
+
+bool CMessage::isEnterViewMsg() const {
+ return dynamic_cast<const CEnterViewMsg *>(this) != nullptr;
+}
+
+bool CMessage::isPreEnterViewMsg() const {
+ return dynamic_cast<const CPreEnterViewMsg *>(this) != nullptr;
+}
+
+bool CMessage::isLeaveViewMsg() const {
+ return dynamic_cast<const CLeaveViewMsg *>(this) != nullptr;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/messages/messages.h b/engines/titanic/messages/messages.h
new file mode 100644
index 0000000000..ccea453a26
--- /dev/null
+++ b/engines/titanic/messages/messages.h
@@ -0,0 +1,420 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MESSAGES_H
+#define TITANIC_MESSAGES_H
+
+#include "titanic/core/saveable_object.h"
+#include "titanic/core/tree_item.h"
+
+namespace Titanic {
+
+enum MessageFlag {
+ MSGFLAG_SCAN = 1,
+ MSGFLAG_BREAK_IF_HANDLED = 2,
+ MSGFLAG_CLASS_DEF = 4
+};
+
+#define MSGTARGET(NAME) class NAME; class NAME##Target { public: \
+ virtual bool handleEvent(NAME &msg) = 0; }
+
+class CGameObject;
+class CRoomItem;
+class CNodeItem;
+class CViewItem;
+
+class CMessage : public CSaveableObject {
+public:
+ CLASSDEF
+ CMessage();
+
+ bool execute(CTreeItem *target, const ClassDef *classDef = nullptr,
+ int flags = MSGFLAG_SCAN | MSGFLAG_BREAK_IF_HANDLED) const;
+
+ virtual bool perform(CTreeItem *treeItem) const { return false; }
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+
+ virtual bool isMouseMsg() const;
+ virtual bool isButtonDownMsg() const;
+ virtual bool isButtonUpMsg() const;
+ virtual bool isMouseMoveMsg() const;
+ virtual bool isDoubleClickMsg() const;
+ virtual bool isEnterRoomMsg() const;
+ virtual bool isPreEnterRoomMsg() const;
+ virtual bool isleaveRoomMsg() const;
+ virtual bool isEnterNodeMsg() const;
+ virtual bool isPreEnterNodeMsg() const;
+ virtual bool isLeaveNodeMsg() const;
+ virtual bool isEnterViewMsg() const;
+ virtual bool isPreEnterViewMsg() const;
+ virtual bool isLeaveViewMsg() const;
+};
+
+MSGTARGET(CEditControlMsg);
+class CEditControlMsg : public CMessage {
+protected:
+ virtual bool handleMessage(const CEditControlMsg &msg) { return false; }
+public:
+ int _field4;
+ int _field8;
+ CString _string1;
+ int _field18;
+ int _field1C;
+ int _field20;
+public:
+ CLASSDEF
+ CEditControlMsg() : _field4(0), _field8(0), _field18(0),
+ _field1C(0), _field20(0) {}
+
+ static bool isSupportedBy(const CTreeItem *item) {
+ return dynamic_cast<const CEditControlMsg *>(item) != nullptr;
+ }
+
+ virtual bool perform(CTreeItem *treeItem) const {
+ CEditControlMsg *dest = dynamic_cast<CEditControlMsg *>(treeItem);
+ return dest != nullptr && dest->handleMessage(*this);
+ }
+};
+
+MSGTARGET(CLightsMsg);
+class CLightsMsg : public CMessage {
+protected:
+ virtual bool handleMessage(const CLightsMsg &msg) { return false; }
+public:
+ int _field4;
+ int _field8;
+ int _fieldC;
+ int _field10;
+public:
+ CLASSDEF
+ CLightsMsg() : CMessage(), _field4(0), _field8(0),
+ _fieldC(0), _field10(0) {}
+
+ static bool isSupportedBy(const CTreeItem *item) {
+ return dynamic_cast<const CLightsMsg *>(item) != nullptr;
+ }
+
+ virtual bool perform(CTreeItem *treeItem) const {
+ CLightsMsg *dest = dynamic_cast<CLightsMsg *>(treeItem);
+ return dest != nullptr && dest->handleMessage(*this);
+ }
+};
+
+MSGTARGET(CIsHookedOnMsg);
+class CIsHookedOnMsg : public CMessage {
+protected:
+ virtual bool handleMessage(const CIsHookedOnMsg &msg) { return false; }
+public:
+ int _field4;
+ int _field8;
+ CString _string1;
+ int _field18;
+ int _field1C;
+ int _field20;
+public:
+ CLASSDEF
+ CIsHookedOnMsg() : CMessage(), _field4(0), _field8(0),
+ _field18(0), _field1C(0), _field20(0) {}
+
+ static bool isSupportedBy(const CTreeItem *item) {
+ return dynamic_cast<const CIsHookedOnMsg *>(item) != nullptr;
+ }
+
+ virtual bool perform(CTreeItem *treeItem) const {
+ CIsHookedOnMsg *dest = dynamic_cast<CIsHookedOnMsg *>(treeItem);
+ return dest != nullptr && dest->handleMessage(*this);
+ }
+};
+
+MSGTARGET(CSubAcceptCCarryMsg);
+class CSubAcceptCCarryMsg : public CMessage {
+protected:
+ virtual bool handleMessage(const CSubAcceptCCarryMsg &msg) { return false; }
+public:
+ CString _string1;
+ int _value1, _value2, _value3;
+public:
+ CLASSDEF
+ CSubAcceptCCarryMsg() : _value1(0), _value2(0), _value3(0) {}
+
+ static bool isSupportedBy(const CTreeItem *item) {
+ return dynamic_cast<const CSubAcceptCCarryMsg *>(item) != nullptr;
+ }
+
+ virtual bool perform(CTreeItem *treeItem) const {
+ CSubAcceptCCarryMsg *dest = dynamic_cast<CSubAcceptCCarryMsg *>(treeItem);
+ return dest != nullptr && dest->handleMessage(*this);
+ }
+};
+
+MSGTARGET(CTransportMsg);
+class CTransportMsg : public CMessage {
+protected:
+ virtual bool handleMessage(const CTransportMsg &msg) { return false; }
+public:
+ CString _string;
+ int _value1, _value2;
+public:
+ CLASSDEF
+ CTransportMsg() : _value1(0), _value2(0) {}
+
+ static bool isSupportedBy(const CTreeItem *item) {
+ return dynamic_cast<const CTransportMsg *>(item) != nullptr;
+ }
+
+ virtual bool perform(CTreeItem *treeItem) const {
+ CTransportMsg *dest = dynamic_cast<CTransportMsg *>(treeItem);
+ return dest != nullptr && dest->handleMessage(*this);
+ }
+};
+
+#define MESSAGE0(NAME) MSGTARGET(NAME); \
+ class NAME: public CMessage { \
+ public: NAME() : CMessage() {} \
+ CLASSDEF \
+ static bool isSupportedBy(const CTreeItem *item) { \
+ return dynamic_cast<const NAME *>(item) != nullptr; } \
+ virtual bool handleMessage(const NAME &msg) { return false; } \
+ virtual bool perform(CTreeItem *treeItem) const { \
+ NAME *dest = dynamic_cast<NAME *>(treeItem); \
+ return dest != nullptr && dest->handleMessage(*this); \
+ } }
+#define MESSAGE1(NAME, F1, N1, V1) MSGTARGET(NAME); \
+ class NAME: public CMessage { \
+ public: F1 _##N1; \
+ NAME() : CMessage(), _##N1(V1) {} \
+ NAME(F1 N1) : CMessage(), _##N1(N1) {} \
+ CLASSDEF \
+ static bool isSupportedBy(const CTreeItem *item) { \
+ return dynamic_cast<const NAME *>(item) != nullptr; } \
+ virtual bool handleMessage(const NAME &msg) { return false; } \
+ virtual bool perform(CTreeItem *treeItem) { \
+ NAME *dest = dynamic_cast<NAME *>(treeItem); \
+ return dest != nullptr && dest->handleMessage(*this); \
+ } }
+#define MESSAGE2(NAME, F1, N1, V1, F2, N2, V2) MSGTARGET(NAME); \
+ class NAME: public CMessage { \
+ public: F1 _##N1; F2 _##N2; \
+ NAME() : CMessage(), _##N1(V1), _##N2(V2) {} \
+ NAME(F1 N1, F2 N2) : CMessage(), _##N1(N1), _##N2(N2) {} \
+ CLASSDEF \
+ static bool isSupportedBy(const CTreeItem *item) { \
+ return dynamic_cast<const NAME *>(item) != nullptr; } \
+ virtual bool handleMessage(const NAME &msg) { return false; } \
+ virtual bool perform(CTreeItem *treeItem) { \
+ NAME *dest = dynamic_cast<NAME *>(treeItem); \
+ return dest != nullptr && dest->handleMessage(*this); \
+ } }
+#define MESSAGE3(NAME, F1, N1, V1, F2, N2, V2, F3, N3, V3) MSGTARGET(NAME); \
+ class NAME: public CMessage { \
+ public: F1 _##N1; F2 _##N2; F3 _##N3; \
+ NAME() : CMessage(), _##N1(V1), _##N2(V2), _##N3(V3) {} \
+ NAME(F1 N1, F2 N2, F3 N3) : CMessage(), _##N1(N1), _##N2(N2), _##N3(N3) {} \
+ CLASSDEF \
+ static bool isSupportedBy(const CTreeItem *item) { \
+ return dynamic_cast<const NAME *>(item) != nullptr; } \
+ virtual bool handleMessage(const NAME &msg) { return false; } \
+ virtual bool perform(CTreeItem *treeItem) { \
+ NAME *dest = dynamic_cast<NAME *>(treeItem); \
+ return dest != nullptr && dest->handleMessage(*this); \
+ } }
+#define MESSAGE4(NAME, F1, N1, V1, F2, N2, V2, F3, N3, V3, F4, N4, V4) MSGTARGET(NAME); \
+ class NAME: public CMessage { \
+ public: F1 _##N1; F2 _##N2; F3 _##N3; F4 _##N4; \
+ NAME() : CMessage(), _##N1(V1), _##N2(V2), _##N3(V3), _##N4(V4) {} \
+ NAME(F1 N1, F2 N2, F3 N3, F4 N4) : CMessage(), _##N1(N1), _##N2(N2), _##N3(N3), _##N4(N4) {} \
+ CLASSDEF \
+ static bool isSupportedBy(const CTreeItem *item) { \
+ return dynamic_cast<const NAME *>(item) != nullptr; } \
+ virtual bool handleMessage(const NAME &msg) { return false; } \
+ virtual bool perform(CTreeItem *treeItem) { \
+ NAME *dest = dynamic_cast<NAME *>(treeItem); \
+ return dest != nullptr && dest->handleMessage(*this); \
+ } }
+
+MESSAGE1(CActMsg, CString, value, "");
+MESSAGE1(CActivationmsg, CString, value, "");
+MESSAGE1(CAddHeadPieceMsg, CString, value, "NULL");
+MESSAGE1(CAnimateMaitreDMsg, int, value, 0);
+MESSAGE1(CArboretumGateMsg, int, value, 0);
+MESSAGE0(CArmPickedUpFromTableMsg);
+MESSAGE0(CBodyInBilgeRoomMsg);
+MESSAGE1(CBowlStateChange, int, value, 0);
+MESSAGE2(CCarryObjectArrivedMsg, CString, strValue, "", int, numValue, 0);
+MESSAGE1(CChangeSeasonMsg, CString, season, "Summer");
+MESSAGE0(CCheckAllPossibleCodes);
+MESSAGE2(CCheckChevCode, int, value1, 0, int, value2, 0);
+MESSAGE1(CChildDragEndMsg, int, value, 0);
+MESSAGE2(CChildDragMoveMsg, int, value1, 0, int, value2, 0);
+MESSAGE2(CChildDragStartMsg, int, value1, 0, int, value2, 0);
+MESSAGE0(CClearChevPanelBits);
+MESSAGE0(CCorrectMusicPlayedMsg);
+MESSAGE0(CCreateMusicPlayerMsg);
+MESSAGE0(CCylinderHolderReadyMsg);
+MESSAGE0(CDeactivationMsg);
+MESSAGE1(CDeliverCCarryMsg, CString, value, "");
+MESSAGE0(CDisableMaitreDProdReceptor);
+MESSAGE0(CDismissBotMsg);
+MESSAGE0(CDoffNavHelmet);
+MESSAGE0(CDonNavHelmet);
+MESSAGE1(CDoorbotNeededInElevatorMsg, int, value, 0);
+MESSAGE0(CDoorbotNeededInHomeMsg);
+MESSAGE1(CDropobjectMsg, int, value, 0);
+MESSAGE1(CDropZoneGotObjectMsg, int, value, 0);
+MESSAGE1(CDropZoneLostObjectMsg, int, value, 0);
+MESSAGE1(CEjectCylinderMsg, int, value, 0);
+MESSAGE2(CPreEnterNodeMsg, CNodeItem *, oldNode, nullptr, CNodeItem *, newNode, nullptr);
+MESSAGE2(CPreEnterRoomMsg, CRoomItem *, oldRoom, nullptr, CRoomItem *, newRoom, nullptr);
+MESSAGE2(CPreEnterViewMsg, CViewItem *, oldView, nullptr, CViewItem *, newView, nullptr);
+MESSAGE2(CEnterNodeMsg, CNodeItem *, oldNode, nullptr, CNodeItem *, newNode, nullptr);
+MESSAGE2(CEnterRoomMsg, CRoomItem *, oldRoom, nullptr, CRoomItem *, newRoom, nullptr);
+MESSAGE2(CEnterViewMsg, CViewItem *, oldView, nullptr, CViewItem *, newView, nullptr);
+MESSAGE0(CErasePhonographCylinderMsg);
+MESSAGE1(CFrameMsg, uint, ticks, 0);
+MESSAGE2(CFreshenCookieMsg, int, value1, 0, int, value2, 0);
+MESSAGE1(CGetChevClassBits, int, value, 0);
+MESSAGE1(CGetChevClassNum, int, value, 0);
+MESSAGE2(CGetChevCodeFromRoomNameMsg, CString, strValue, "", int, numValue, 0);
+MESSAGE1(CGetChevFloorBits, int, value, 0);
+MESSAGE1(CGetChevFloorNum, int, value, 0);
+MESSAGE1(CGetChevLiftBits, int, value, 0);
+MESSAGE1(CGetChevLiftNum, int, value, 0);
+MESSAGE1(CGetChevRoomBits, int, value, 0);
+MESSAGE1(CGetChevRoomNum, int, value, 0);
+MESSAGE2(CHoseConnectedMsg, int, value1, 1, int, value2, 0);
+MESSAGE0(CInitializeAnimMsg);
+MESSAGE1(CIsEarBowlPuzzleDone, int, value, 0);
+MESSAGE1(CIsParrotPresentMsg, int, value, 0);
+MESSAGE1(CKeyCharMsg, int, value, 32);
+MESSAGE2(CLeaveNodeMsg, CNodeItem *, oldNode, nullptr, CNodeItem *, newNode, nullptr);
+MESSAGE2(CLeaveRoomMsg, CRoomItem *, oldRoom, nullptr, CRoomItem *, newRoom, nullptr);
+MESSAGE2(CLeaveViewMsg, CViewItem *, oldView, nullptr, CViewItem *, newView, nullptr);
+MESSAGE2(CLemonFallsFromTreeMsg, int, value1, 0, int, value2, 0);
+MESSAGE1(CLoadSuccessMsg, int, ticks, 0);
+MESSAGE1(CLockPhonographMsg, int, value, 0);
+MESSAGE0(CMaitreDDefeatedMsg);
+MESSAGE0(CMaitreDHappyMsg);
+MESSAGE1(CMissiveOMatActionMsg, int, value, 0);
+MESSAGE0(CMoveToStartPosMsg);
+MESSAGE2(CMovieEndMsg, int, value1, 0, int, value2, 0);
+MESSAGE2(CMovieFrameMsg, int, value1, 0, int, value2, 0);
+MESSAGE0(CMusicHasStartedMsg);
+MESSAGE0(CMusicHasStoppedMsg);
+MESSAGE0(CMusicSettingChangedMsg);
+MESSAGE2(CNPCPlayAnimationMsg, int, value1, 0, int, value2, 0);
+MESSAGE1(CNPCPlayIdleAnimationMsg, int, value, 0);
+MESSAGE3(CNPCPlayTalkingAnimationMsg, int, value1, 0, int, value2, 0, int, value3, 0);
+MESSAGE0(CNPCQueueIdleAnimMsg);
+MESSAGE1(CNutPuzzleMsg, CString, value, "");
+MESSAGE1(COnSummonBotMsg, int, value, 0);
+MESSAGE0(COpeningCreditsMsg);
+MESSAGE1(CPanningAwayFromParrotMsg, int, value, 0);
+MESSAGE2(CParrotSpeakMsg, CString, value1, "", CString, value2, "");
+MESSAGE2(CParrotTriesChickenMsg, int, value1, 0, int, value2, 0);
+MESSAGE4(CPassOnDragStartMsg, int, value1, 0, int, value2, 0, int, value3, 0, int, value4, 0);
+MESSAGE1(CPhonographPlayMsg, int, value, 0);
+MESSAGE0(CPhonographReadyToPlayMsg);
+MESSAGE1(CPhonographRecordMsg, int, value, 0);
+MESSAGE3(CPhonographStopMsg, int, value1, 0, int, value2, 0, int, value3, 0);
+MESSAGE2(CPlayRangeMsg, int, value1, 0, int, value2, 0);
+MESSAGE2(CPlayerTriesRestaurantTableMsg, int, value1, 0, int, value2, 0);
+MESSAGE1(CPreSaveMsg, int, value, 0);
+MESSAGE1(CProdMaitreDMsg, int, value, 0);
+MESSAGE2(CPumpingMsg, int, value1, 0, int, value2, 0);
+MESSAGE1(CPutBotBackInHisBoxMsg, int, value, 0);
+MESSAGE1(CPutParrotBackMsg, int, value, 0);
+MESSAGE0(CPuzzleSolvedMsg);
+MESSAGE3(CQueryCylinderHolderMsg, int, value1, 0, int, value2, 0, int, value3, 0);
+MESSAGE3(CQueryCylinderMsg, int, value1, 0, int, value2, 0, int, value3, 0);
+MESSAGE3(CQueryCylinderNameMsg, int, value1, 0, int, value2, 0, int, value3, 0);
+MESSAGE3(CQueryCylinderTypeMsg, int, value1, 0, int, value2, 0, int, value3, 0);
+MESSAGE1(CQueryMusicControlSettingMsg, int, value, 0);
+MESSAGE1(CQueryPhonographState, int, value, 0);
+MESSAGE0(CRecordOntoCylinderMsg);
+MESSAGE0(CRemoveFromGameMsg);
+MESSAGE0(CReplaceBowlAndNutsMsg);
+MESSAGE1(CRestaurantMusicChanged, CString, value, "");
+MESSAGE2(CSendCCarryMsg, CString, strValue, "", int, numValue, 0);
+MESSAGE1(CSenseWorkingMsg, CString, value, "Not Working");
+MESSAGE2(CServiceElevatorFloorChangeMsg, int, value1, 0, int, value2, 0);
+MESSAGE0(CServiceElevatorFloorRequestMsg);
+MESSAGE1(CServiceElevatorMsg, int, value, 4);
+MESSAGE2(CSetChevButtonImageMsg, int, value1, 0, int, value2, 0);
+MESSAGE1(CSetChevClassBits, int, value, 0);
+MESSAGE1(CSetChevFloorBits, int, value, 0);
+MESSAGE1(CSetChevLiftBits, int, value, 0);
+MESSAGE2(CSetChevPanelBitMsg, int, value1, 0, int, value2, 0);
+MESSAGE1(CSetChevPanelButtonsMsg, int, value, 0);
+MESSAGE1(CSetChevRoomBits, int, value, 0);
+MESSAGE0(CSetMusicControlsMsg);
+MESSAGE2(CSetVarMsg, CString, varName, "", int, value, 0);
+MESSAGE2(CSetVolumeMsg, int, value1, 70, int, value2, 0);
+MESSAGE2(CShipSettingMsg, CString, strValue, "", int, numValue, 0);
+MESSAGE1(CShowTextMsg, CString, value, "NO TEXT INCLUDED!!!");
+MESSAGE2(CSignalObject, CString, strValue, "", int, numValue, 0);
+MESSAGE2(CSpeechFallsFromTreeMsg, int, value1, 0, int, value2, 0);
+MESSAGE1(CStartMusicMsg, int, value, 0);
+MESSAGE3(CStatusChangeMsg, int, value1, 0, int, value2, 0, int, value3, 0);
+MESSAGE1(CStopMusicMsg, int, value, 0);
+MESSAGE0(CSubDeliverCCarryMsg);
+MESSAGE0(CSubSendCCarryMsg);
+MESSAGE0(CSUBTransition);
+MESSAGE0(CSubTurnOffMsg);
+MESSAGE0(CSubTurnOnMsg);
+MESSAGE2(CSummonBotMsg, CString, strValue, "", int, numValue, 0);
+MESSAGE1(CSummonBotQuerryMsg, CString, value, "");
+MESSAGE1(CTakeHeadPieceMsg, CString, value, "");
+MESSAGE2(CTextInputMsg, CString, value1, "", CString, value2, "");
+MESSAGE1(CTimeDilationMsg, int, value, 0);
+MESSAGE1(CTimeMsg, int, value, 0);
+MESSAGE0(CTitleSequenceEndedMsg);
+MESSAGE0(CTransitMsg);
+MESSAGE1(CTriggerAutoMusicPlayerMsg, int, value, 0);
+MESSAGE1(CTriggerNPCEvent, int, value, 0);
+MESSAGE4(CTrueTalkGetAnimSetMsg, int, value1, 0, int, value2, 0, int, value3, 0, int, value4, 0);
+MESSAGE2(CTrueTalkGetAssetDetailsMsg, CString, strValue, "", int, numValue, 0);
+MESSAGE2(CTrueTalkGetStateValueMsg, int, value1, 0, int, value2, -1000);
+MESSAGE2(CTrueTalkNotifySpeechEndedMsg, int, value1, 0, int, value2, 0);
+MESSAGE3(CTrueTalkNotifySpeechStartedMsg, int, value1, 0, int, value2, 0, int, value, 0);
+MESSAGE1(CTrueTalkQueueUpAnimSetMsg, int, value, 0);
+MESSAGE0(CTrueTalkSelfQueueAnimSetMsg);
+MESSAGE3(CTrueTalkTriggerActionMsg, int, value1, 0, int, value2, 0, int, value3, 0);
+MESSAGE0(CTurnOff);
+MESSAGE0(CTurnOn);
+MESSAGE1(CUse, int, value, 0);
+MESSAGE1(CUseWithCharMsg, int, value, 0);
+MESSAGE1(CUseWithOtherMsg, int, value, 0);
+MESSAGE1(CVirtualKeyCharMsg, int, value, 0);
+MESSAGE2(CVisibleMsg, int, value1, 1, int, value2, 0);
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MESSAGE_H */
diff --git a/engines/titanic/messages/mouse_messages.h b/engines/titanic/messages/mouse_messages.h
new file mode 100644
index 0000000000..84d7b8f61c
--- /dev/null
+++ b/engines/titanic/messages/mouse_messages.h
@@ -0,0 +1,198 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MOUSE_MESSAGES_H
+#define TITANIC_MOUSE_MESSAGES_H
+
+#include "common/rect.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+enum MouseButton { MB_LEFT = 1, MB_MIDDLE = 2, MB_RIGHT = 4 };
+
+class CMouseMsg : public CMessage {
+public:
+ int _buttons;
+ Common::Point _mousePos;
+public:
+ CLASSDEF
+ static bool isSupportedBy(const CTreeItem *item) {
+ return dynamic_cast<const CMouseMsg *>(item) != nullptr;
+ }
+ CMouseMsg() : _buttons(0) {}
+ CMouseMsg(const Common::Point &pt, int buttons) :
+ _mousePos(pt), _buttons(buttons) {}
+};
+
+MSGTARGET(CMouseMoveMsg);
+class CMouseMoveMsg : public CMouseMsg {
+public:
+ CLASSDEF
+ CMouseMoveMsg() : CMouseMsg() {}
+ CMouseMoveMsg(const Common::Point &pt, int buttons) : CMouseMsg(pt, buttons) {}
+
+ static bool isSupportedBy(const CTreeItem *item) {
+ return dynamic_cast<const CMouseMoveMsg *>(item) != nullptr;
+ }
+ virtual bool handleMessage(const CMouseMoveMsg &msg) { return false; }
+ virtual bool perform(CTreeItem *treeItem) {
+ CMouseMoveMsg *dest = dynamic_cast<CMouseMoveMsg *>(treeItem);
+ return dest != nullptr && dest->handleMessage(*this);
+ }
+};
+
+class CMouseButtonMsg : public CMouseMsg {
+public:
+ int _field10;
+public:
+ CLASSDEF
+ CMouseButtonMsg() : CMouseMsg(), _field10(0) {}
+ CMouseButtonMsg(const Common::Point &pt, int buttons) : CMouseMsg(pt, buttons) {}
+
+ static bool isSupportedBy(const CTreeItem *item) {
+ return dynamic_cast<const CMouseButtonMsg *>(item) != nullptr;
+ }
+};
+
+MSGTARGET(CMouseButtonDownMsg);
+class CMouseButtonDownMsg : public CMouseButtonMsg {
+public:
+ CLASSDEF
+ CMouseButtonDownMsg() : CMouseButtonMsg() {}
+ CMouseButtonDownMsg(const Common::Point &pt, int buttons) : CMouseButtonMsg(pt, buttons) {}
+
+ static bool isSupportedBy(const CTreeItem *item) {
+ return dynamic_cast<const CMouseButtonDownMsg *>(item) != nullptr;
+ }
+ virtual bool handleMessage(const CMouseButtonDownMsg &msg) { return false; }
+ virtual bool perform(CTreeItem *treeItem) {
+ CMouseButtonDownMsg *dest = dynamic_cast<CMouseButtonDownMsg *>(treeItem);
+ return dest != nullptr && dest->handleMessage(*this);
+ }
+};
+
+MSGTARGET(CMouseButtonUpMsg);
+class CMouseButtonUpMsg : public CMouseButtonMsg {
+public:
+ CLASSDEF
+ CMouseButtonUpMsg() : CMouseButtonMsg() {}
+ CMouseButtonUpMsg(const Common::Point &pt, int buttons) : CMouseButtonMsg(pt, buttons) {}
+
+ static bool isSupportedBy(const CTreeItem *item) {
+ return dynamic_cast<const CMouseButtonUpMsg *>(item) != nullptr;
+ }
+ virtual bool handleMessage(const CMouseButtonUpMsg &msg) { return false; }
+ virtual bool perform(CTreeItem *treeItem) {
+ CMouseButtonUpMsg *dest = dynamic_cast<CMouseButtonUpMsg *>(treeItem);
+ return dest != nullptr && dest->handleMessage(*this);
+ }
+};
+
+MSGTARGET(CMouseButtonDoubleClickMsg);
+class CMouseButtonDoubleClickMsg : public CMouseButtonMsg {
+public:
+ CLASSDEF
+ CMouseButtonDoubleClickMsg() : CMouseButtonMsg() {}
+ CMouseButtonDoubleClickMsg(const Common::Point &pt, int buttons) : CMouseButtonMsg(pt, buttons) {}
+
+ static bool isSupportedBy(const CTreeItem *item) {
+ return dynamic_cast<const CMouseButtonDoubleClickMsg *>(item) != nullptr;
+ }
+ virtual bool handleMessage(const CMouseButtonDoubleClickMsg &msg) { return false; }
+ virtual bool perform(CTreeItem *treeItem) {
+ CMouseButtonDoubleClickMsg *dest = dynamic_cast<CMouseButtonDoubleClickMsg *>(treeItem);
+ return dest != nullptr && dest->handleMessage(*this);
+ }
+};
+
+class CMouseDragMsg : public CMouseMsg {
+public:
+ CLASSDEF
+ CMouseDragMsg() : CMouseMsg() {}
+ CMouseDragMsg(const Common::Point &pt) : CMouseMsg(pt, 0) {}
+
+ static bool isSupportedBy(const CTreeItem *item) {
+ return dynamic_cast<const CMouseDragMsg *>(item) != nullptr;
+ }
+};
+
+class CMouseDragMoveMsg : public CMouseDragMsg {
+public:
+ CLASSDEF
+ CMouseDragMoveMsg() : CMouseDragMsg() {}
+ CMouseDragMoveMsg(const Common::Point &pt) : CMouseDragMsg(pt) {}
+
+ static bool isSupportedBy(const CTreeItem *item) {
+ return dynamic_cast<const CMouseDragMoveMsg *>(item) != nullptr;
+ }
+ virtual bool handleMessage(const CMouseDragMoveMsg &msg) { return false; }
+ virtual bool perform(CTreeItem *treeItem) {
+ CMouseDragMoveMsg *dest = dynamic_cast<CMouseDragMoveMsg *>(treeItem);
+ return dest != nullptr && dest->handleMessage(*this);
+ }
+};
+
+MSGTARGET(CMouseDragStartMsg);
+class CMouseDragStartMsg : public CMouseDragMsg {
+public:
+ CTreeItem *_dragItem;
+ int _field14;
+public:
+ CLASSDEF
+ CMouseDragStartMsg() : CMouseDragMsg(), _dragItem(nullptr), _field14(0) {}
+ CMouseDragStartMsg(const Common::Point &pt) : CMouseDragMsg(pt),
+ _dragItem(nullptr), _field14(0) {}
+
+ static bool isSupportedBy(const CTreeItem *item) {
+ return dynamic_cast<const CMouseDragStartMsg *>(item) != nullptr;
+ }
+ virtual bool handleMessage(const CMouseDragStartMsg &msg) { return false; }
+ virtual bool perform(CTreeItem *treeItem) {
+ CMouseDragStartMsg *dest = dynamic_cast<CMouseDragStartMsg *>(treeItem);
+ return dest != nullptr && dest->handleMessage(*this);
+ }
+};
+
+MSGTARGET(CMouseDragEndMsg);
+class CMouseDragEndMsg : public CMouseDragMsg {
+public:
+ CTreeItem *_dragItem;
+public:
+ CLASSDEF
+ CMouseDragEndMsg() : CMouseDragMsg(), _dragItem(nullptr) {}
+ CMouseDragEndMsg(const Common::Point &pt, CTreeItem *dragItem = nullptr) :
+ CMouseDragMsg(pt), _dragItem(dragItem) {}
+
+ static bool isSupportedBy(const CTreeItem *item) {
+ return dynamic_cast<const CMouseDragEndMsg *>(item) != nullptr;
+ }
+ virtual bool handleMessage(const CMouseDragEndMsg &msg) { return false; }
+ virtual bool perform(CTreeItem *treeItem) {
+ CMouseDragEndMsg *dest = dynamic_cast<CMouseDragEndMsg *>(treeItem);
+ return dest != nullptr && dest->handleMessage(*this);
+ }
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MOUSE_MESSAGES_H */
diff --git a/engines/titanic/messages/pet_messages.h b/engines/titanic/messages/pet_messages.h
new file mode 100644
index 0000000000..ac9c3ccc75
--- /dev/null
+++ b/engines/titanic/messages/pet_messages.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_MESSAGES_H
+#define TITANIC_PET_MESSAGES_H
+
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+MESSAGE0(CPETDeliverMsg);
+MESSAGE0(CPETGainedObjectMsg);
+MESSAGE0(CPETHelmetOnOffMsg);
+MESSAGE0(CPETKeyboardOnOffMsg);
+MESSAGE0(CPETLostObjectMsg);
+MESSAGE0(CPETObjectSelectedMsg);
+MESSAGE1(CPETObjectStateMsg, int, value, 0);
+MESSAGE0(CPETPhotoOnOffMsg);
+MESSAGE1(CPETPlaySoundMsg, int, value, 0);
+MESSAGE0(CPETReceiveMsg);
+MESSAGE0(CPETSetStarDestinationMsg);
+MESSAGE1(CPETStarFieldLockMsg, int, value, 0);
+MESSAGE0(CPETStereoFieldOnOffMsg);
+MESSAGE2(CPETTargetMsg, CString, strValue, "", int, numValue, -1);
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_MESSAGES_H */
diff --git a/engines/titanic/messages/service_elevator_door.cpp b/engines/titanic/messages/service_elevator_door.cpp
new file mode 100644
index 0000000000..e771f14484
--- /dev/null
+++ b/engines/titanic/messages/service_elevator_door.cpp
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/messages/service_elevator_door.h"
+
+namespace Titanic {
+
+CServiceElevatorDoor::CServiceElevatorDoor() : CDoorAutoSoundEvent() {
+ _string1 = "z#31.wav";
+ _string2 = "z#32.wav";
+}
+
+void CServiceElevatorDoor::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string2, indent);
+ file->writeQuotedLine(_string1, indent);
+
+ CDoorAutoSoundEvent::save(file, indent);
+}
+
+void CServiceElevatorDoor::load(SimpleFile *file) {
+ file->readNumber();
+ _string2 = file->readString();
+ _string1 = file->readString();
+
+ CDoorAutoSoundEvent::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/messages/service_elevator_door.h b/engines/titanic/messages/service_elevator_door.h
new file mode 100644
index 0000000000..ac5cf5148d
--- /dev/null
+++ b/engines/titanic/messages/service_elevator_door.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SERVICE_ELEVATOR_DOOR_H
+#define TITANIC_SERVICE_ELEVATOR_DOOR_H
+
+#include "titanic/messages/door_auto_sound_event.h"
+
+namespace Titanic {
+
+class CServiceElevatorDoor : public CDoorAutoSoundEvent {
+public:
+ CLASSDEF
+ CServiceElevatorDoor();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SERVICE_ELEVATOR_DOOR_H */
diff --git a/engines/titanic/module.mk b/engines/titanic/module.mk
new file mode 100644
index 0000000000..f62ef96d0b
--- /dev/null
+++ b/engines/titanic/module.mk
@@ -0,0 +1,458 @@
+MODULE := engines/titanic
+
+MODULE_OBJS := \
+ debugger.o \
+ detection.o \
+ direct_draw.o \
+ events.o \
+ files_manager.o \
+ font.o \
+ game_location.o \
+ game_manager.o \
+ game_state.o \
+ game_view.o \
+ image.o \
+ image_decoders.o \
+ input_handler.o \
+ input_translator.o \
+ main_game_window.o \
+ mouse_cursor.o \
+ screen_manager.o \
+ simple_file.o \
+ string.o \
+ text_cursor.o \
+ titanic.o \
+ video_surface.o \
+ carry/auditory_centre.o \
+ carry/arm.o \
+ carry/bowl_ear.o \
+ carry/brain.o \
+ carry/bridge_piece.o \
+ carry/carry.o \
+ carry/carry_parrot.o \
+ carry/central_core.o \
+ carry/chicken.o \
+ carry/crushed_tv.o \
+ carry/ear.o \
+ carry/eye.o \
+ carry/feathers.o \
+ carry/fruit.o \
+ carry/glass.o \
+ carry/hammer.o \
+ carry/head_piece.o \
+ carry/hose.o \
+ carry/hose_end.o \
+ carry/key.o \
+ carry/liftbot_head.o \
+ carry/long_stick.o \
+ carry/magazine.o \
+ carry/maitred_left_arm.o \
+ carry/maitred_right_arm.o \
+ carry/mouth.o \
+ carry/napkin.o \
+ carry/nose.o \
+ carry/note.o \
+ carry/parcel.o \
+ carry/perch.o \
+ carry/phonograph_cylinder.o \
+ carry/phonograph_ear.o \
+ carry/photograph.o \
+ carry/plug_in.o \
+ carry/speech_centre.o \
+ carry/sweets.o \
+ carry/test_carry.o \
+ carry/vision_centre.o \
+ core/background.o \
+ core/click_responder.o \
+ core/dont_save_file_item.o \
+ core/drop_target.o \
+ core/file_item.o \
+ core/game_object.o \
+ core/game_object_desc_item.o \
+ core/link_item.o \
+ core/list.o \
+ core/message_target.o \
+ core/movie_clip.o \
+ core/multi_drop_target.o \
+ core/named_item.o \
+ core/node_item.o \
+ core/project_item.o \
+ core/resource_key.o \
+ core/room_item.o \
+ core/saveable_object.o \
+ core/static_image.o \
+ core/turn_on_object.o \
+ core/turn_on_play_sound.o \
+ core/turn_on_turn_off.o \
+ core/tree_item.o \
+ core/view_item.o \
+ game/announce.o \
+ game/annoy_barbot.o \
+ game/arb_background.o \
+ game/arboretum_gate.o \
+ game/auto_animate.o \
+ game/bilge_succubus.o \
+ game/bomb.o \
+ game/bar_menu.o \
+ game/bar_menu_button.o \
+ game/bar_bell.o \
+ game/belbot_get_light.o \
+ game/bottom_of_well_monitor.o \
+ game/bomb.o \
+ game/bowl_unlocker.o \
+ game/brain_slot.o \
+ game/bridge_door.o \
+ game/bridge_view.o \
+ game/broken_pell_base.o \
+ game/broken_pellerator.o \
+ game/broken_pellerator_froz.o \
+ game/call_pellerator.o \
+ game/cage.o \
+ game/captains_wheel.o \
+ game/cdrom.o \
+ game/cdrom_computer.o \
+ game/cdrom_tray.o \
+ game/cell_point_button.o \
+ game/chev_code.o \
+ game/chev_panel.o \
+ game/chicken_cooler.o \
+ game/chicken_dispensor.o \
+ game/close_broken_pel.o \
+ game/code_wheel.o \
+ game/cookie.o \
+ game/computer.o \
+ game/computer_screen.o \
+ game/credits.o \
+ game/credits_button.o \
+ game/dead_area.o \
+ game/desk_click_responder.o \
+ game/doorbot_elevator_handler.o \
+ game/doorbot_home_handler.o \
+ game/ear_sweet_bowl.o \
+ game/eject_phonograph_button.o \
+ game/elevator_action_area.o \
+ game/emma_control.o \
+ game/empty_nut_bowl.o \
+ game/end_credit_text.o \
+ game/end_credits.o \
+ game/end_explode_ship.o \
+ game/end_game_credits.o \
+ game/end_sequence_control.o \
+ game/hammer_dispensor.o \
+ game/hammer_dispensor_button.o \
+ game/fan.o \
+ game/fan_control.o \
+ game/fan_decrease.o \
+ game/fan_increase.o \
+ game/fan_noises.o \
+ game/floor_indicator.o \
+ game/games_console.o \
+ game/get_lift_eye2.o \
+ game/glass_smasher.o \
+ game/hammer_clip.o \
+ game/head_slot.o \
+ game/head_smash_event.o \
+ game/head_smash_lever.o \
+ game/head_spinner.o \
+ game/idle_summoner.o \
+ game/leave_sec_class_state.o \
+ game/lemon_dispensor.o \
+ game/light.o \
+ game/light_switch.o \
+ game/little_lift_button.o \
+ game/long_stick_dispenser.o \
+ game/mail_man.o \
+ game/missiveomat.o \
+ game/missiveomat_button.o \
+ game/movie_tester.o \
+ game/music_console_button.o \
+ game/music_room_phonograph.o \
+ game/music_room_stop_phonograph_button.o \
+ game/music_system_lock.o \
+ game/musical_instrument.o \
+ game/nav_helmet.o \
+ game/navigation_computer.o \
+ game/no_nut_bowl.o \
+ game/nose_holder.o \
+ game/null_port_hole.o \
+ game/nut_replacer.o \
+ game/pet_disabler.o \
+ game/phonograph.o \
+ game/phonograph_lid.o \
+ game/play_music_button.o \
+ game/play_on_act.o \
+ game/port_hole.o \
+ game/record_phonograph_button.o \
+ game/replacement_ear.o \
+ game/reserved_table.o \
+ game/restaurant_cylinder_holder.o \
+ game/restaurant_phonograph.o \
+ game/sauce_dispensor.o \
+ game/search_point.o \
+ game/season_background.o \
+ game/season_barrel.o \
+ game/seasonal_adjustment.o \
+ game/service_elevator_window.o \
+ game/ship_setting.o \
+ game/ship_setting_button.o \
+ game/show_cell_points.o \
+ game/speech_dispensor.o \
+ game/splash_animation.o \
+ game/starling_puret.o \
+ game/start_action.o \
+ game/stop_phonograph_button.o \
+ game/sub_glass.o \
+ game/sub_wrapper.o \
+ game/sweet_bowl.o \
+ game/television.o \
+ game/third_class_canal.o \
+ game/tow_parrot_nav.o \
+ game/throw_tv_down_well.o \
+ game/titania_still_control.o \
+ game/up_lighter.o \
+ game/useless_lever.o \
+ game/volume_control.o \
+ game/wheel_button.o \
+ game/wheel_hotspot.o \
+ game/wheel_spin.o \
+ game/wheel_spin_horn.o \
+ game/gondolier/gondolier_base.o \
+ game/gondolier/gondolier_chest.o \
+ game/gondolier/gondolier_face.o \
+ game/gondolier/gondolier_mixer.o \
+ game/gondolier/gondolier_slider.o \
+ game/maitred/maitred_arm_holder.o \
+ game/maitred/maitred_body.o \
+ game/maitred/maitred_legs.o \
+ game/maitred/maitred_prod_receptor.o \
+ game/parrot/parrot_lobby_controller.o \
+ game/parrot/parrot_lobby_link_updater.o \
+ game/parrot/parrot_lobby_object.o \
+ game/parrot/parrot_lobby_view_object.o \
+ game/parrot/parrot_loser.o \
+ game/parrot/parrot_nut_bowl_actor.o \
+ game/parrot/parrot_nut_eater.o \
+ game/parrot/parrot_perch_holder.o \
+ game/parrot/parrot_succubus.o \
+ game/parrot/parrot_trigger.o \
+ game/parrot/player_meets_parrot.o \
+ game/pet/pet.o \
+ game/pet/pet_class1.o \
+ game/pet/pet_class2.o \
+ game/pet/pet_class3.o \
+ game/pet/pet_lift.o \
+ game/pet/pet_monitor.o \
+ game/pet/pet_pellerator.o \
+ game/pet/pet_position.o \
+ game/pet/pet_sentinal.o \
+ game/pet/pet_sounds.o \
+ game/pet/pet_transition.o \
+ game/pet/pet_transport.o \
+ game/pickup/pick_up.o \
+ game/pickup/pick_up_bar_glass.o \
+ game/pickup/pick_up_hose.o \
+ game/pickup/pick_up_lemon.o \
+ game/pickup/pick_up_speech_centre.o \
+ game/pickup/pick_up_vis_centre.o \
+ game/placeholder/bar_shelf_vis_centre.o \
+ game/placeholder/place_holder.o \
+ game/placeholder/lemon_on_bar.o \
+ game/placeholder/tv_on_bar.o \
+ game/transport/gondolier.o \
+ game/transport/lift.o \
+ game/transport/lift_indicator.o \
+ game/transport/pellerator.o \
+ game/transport/service_elevator.o \
+ game/transport/transport.o \
+ game/sgt/armchair.o \
+ game/sgt/basin.o \
+ game/sgt/bedfoot.o \
+ game/sgt/bedhead.o \
+ game/sgt/chest_of_drawers.o \
+ game/sgt/desk.o \
+ game/sgt/deskchair.o \
+ game/sgt/drawer.o \
+ game/sgt/sgt_doors.o \
+ game/sgt/sgt_nav.o \
+ game/sgt/sgt_navigation.o \
+ game/sgt/sgt_restaurant_doors.o \
+ game/sgt/sgt_state_control.o \
+ game/sgt/sgt_state_room.o \
+ game/sgt/sgt_tv.o \
+ game/sgt/sgt_upper_doors_sound.o \
+ game/sgt/toilet.o \
+ game/sgt/vase.o \
+ game/sgt/washstand.o \
+ gfx/act_button.o \
+ gfx/changes_season_button.o \
+ gfx/chev_left_off.o \
+ gfx/chev_left_on.o \
+ gfx/chev_right_off.o \
+ gfx/chev_right_on.o \
+ gfx/chev_send_rec_switch.o \
+ gfx/chev_switch.o \
+ gfx/edit_control.o \
+ gfx/elevator_button.o \
+ gfx/get_from_succ.o \
+ gfx/helmet_on_off.o \
+ gfx/home_photo.o \
+ gfx/icon_nav_action.o \
+ gfx/icon_nav_butt.o \
+ gfx/icon_nav_down.o \
+ gfx/icon_nav_image.o \
+ gfx/icon_nav_left.o \
+ gfx/icon_nav_receive.o \
+ gfx/icon_nav_right.o \
+ gfx/icon_nav_send.o \
+ gfx/icon_nav_up.o \
+ gfx/keybrd_butt.o \
+ gfx/move_object_button.o \
+ gfx/music_control.o \
+ gfx/pet_drag_chev.o \
+ gfx/pet_graphic2.o \
+ gfx/pet_graphic.o \
+ gfx/pet_leaf.o \
+ gfx/pet_mode_off.o \
+ gfx/pet_mode_on.o \
+ gfx/pet_mode_panel.o \
+ gfx/pet_pannel1.o \
+ gfx/pet_pannel2.o \
+ gfx/pet_pannel3.o \
+ gfx/send_to_succ.o \
+ gfx/sgt_selector.o \
+ gfx/slider_button.o \
+ gfx/small_chev_left_off.o \
+ gfx/small_chev_left_on.o \
+ gfx/small_chev_right_off.o \
+ gfx/small_chev_right_on.o \
+ gfx/status_change_button.o \
+ gfx/st_button.o \
+ gfx/text_down.o \
+ gfx/text_skrew.o \
+ gfx/text_up.o \
+ gfx/toggle_button.o \
+ gfx/toggle_switch.o \
+ messages/auto_sound_event.o \
+ messages/bilge_auto_sound_event.o \
+ messages/bilge_dispensor_event.o \
+ messages/door_auto_sound_event.o \
+ messages/messages.o \
+ messages/service_elevator_door.o \
+ moves/enter_bomb_room.o \
+ moves/enter_bridge.o \
+ moves/enter_exit_first_class_state.o \
+ moves/enter_exit_mini_lift.o \
+ moves/enter_exit_sec_class_mini_lift.o \
+ moves/enter_exit_view.o \
+ moves/enter_sec_class_state.o \
+ moves/exit_arboretum.o \
+ moves/exit_bridge.o \
+ moves/exit_lift.o \
+ moves/exit_pellerator.o \
+ moves/exit_state_room.o \
+ moves/exit_tiania.o \
+ moves/move_player_in_parrot_room.o \
+ moves/move_player_to_from.o \
+ moves/move_player_to.o \
+ moves/multi_move.o \
+ moves/pan_from_pel.o \
+ moves/restaurant_pan_handler.o \
+ moves/restricted_move.o \
+ moves/scraliontis_table.o \
+ moves/trip_down_canal.o \
+ npcs/barbot.o \
+ npcs/bellbot.o \
+ npcs/callbot.o \
+ npcs/character.o \
+ npcs/deskbot.o \
+ npcs/doorbot.o \
+ npcs/liftbot.o \
+ npcs/maitre_d.o \
+ npcs/mobile.o \
+ npcs/parrot.o \
+ npcs/robot_controller.o \
+ npcs/starlings.o \
+ npcs/succubus.o \
+ npcs/summon_bots.o \
+ npcs/titania.o \
+ npcs/true_talk_npc.o \
+ pet_control/pet_control.o \
+ pet_control/pet_control_list_item.o \
+ pet_control/pet_control_list_item2.o \
+ pet_control/pet_control_sub_base.o \
+ pet_control/pet_control_sub1.o \
+ pet_control/pet_control_sub2.o \
+ pet_control/pet_control_sub3.o \
+ pet_control/pet_control_sub4.o \
+ pet_control/pet_control_sub5.o \
+ pet_control/pet_control_sub6.o \
+ pet_control/pet_control_sub7.o \
+ pet_control/pet_control_sub8.o \
+ pet_control/pet_control_sub10.o \
+ pet_control/pet_control_sub11.o \
+ pet_control/pet_control_sub12.o \
+ pet_control/pet_val_base.o \
+ pet_control/pet_val.o \
+ sound/auto_music_player.o \
+ sound/auto_music_player_base.o \
+ sound/auto_sound_player.o \
+ sound/auto_sound_player_adsr.o \
+ sound/background_sound_maker.o \
+ sound/bird_song.o \
+ sound/dome_from_top_of_well.o \
+ sound/enter_view_toggles_other_music.o \
+ sound/gondolier_song.o \
+ sound/music_room.o \
+ sound/music_player.o \
+ sound/node_auto_sound_player.o \
+ sound/restricted_auto_music_player.o \
+ sound/room_auto_sound_player.o \
+ sound/room_trigger_auto_music_player.o \
+ sound/season_noises.o \
+ sound/seasonal_music_player.o \
+ sound/sound.o \
+ sound/sound_manager.o \
+ sound/titania_speech.o \
+ sound/trigger_auto_music_player.o \
+ sound/view_auto_sound_player.o \
+ sound/view_toggles_other_music.o \
+ sound/water_lapping_sounds.o \
+ star_control/star_control.o \
+ star_control/star_control_sub1.o \
+ star_control/star_control_sub2.o \
+ star_control/star_control_sub3.o \
+ star_control/star_control_sub4.o \
+ star_control/star_control_sub5.o \
+ star_control/star_control_sub6.o \
+ star_control/star_control_sub7.o \
+ star_control/star_control_sub8.o \
+ star_control/star_control_sub9.o \
+ star_control/star_control_sub10.o \
+ star_control/star_control_sub11.o \
+ star_control/star_control_sub12.o \
+ star_control/star_control_sub13.o \
+ star_control/star_control_sub14.o \
+ star_control/star_control_sub15.o \
+ true_talk/barbot_script.o \
+ true_talk/bellbot_script.o \
+ true_talk/deskbot_script.o \
+ true_talk/doorbot_script.o \
+ true_talk/liftbot_script.o \
+ true_talk/maitred_script.o \
+ true_talk/parrot_script.o \
+ true_talk/succubus_script.o \
+ true_talk/title_engine.o \
+ true_talk/true_talk_manager.o \
+ true_talk/tt_script_base.o \
+ true_talk/tt_unnamed_script.o \
+ true_talk/tt_named_script.o \
+ true_talk/tt_scripts.o \
+ true_talk/tt_string.o
+
+# This module can be built as a plugin
+ifeq ($(ENABLE_TITANIC), DYNAMIC_PLUGIN)
+PLUGIN := 1
+endif
+
+# Include common rules
+include $(srcdir)/rules.mk
diff --git a/engines/titanic/mouse_cursor.cpp b/engines/titanic/mouse_cursor.cpp
new file mode 100644
index 0000000000..578bf9981f
--- /dev/null
+++ b/engines/titanic/mouse_cursor.cpp
@@ -0,0 +1,44 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/textconsole.h"
+#include "titanic/mouse_cursor.h"
+
+namespace Titanic {
+
+void CMouseCursor::show() {
+ warning("CMouseCursor::show");
+}
+
+void CMouseCursor::hide() {
+ warning("CMouseCursor::hide");
+}
+
+void CMouseCursor::setCursorId(int id) {
+ warning("CMouseCursor::setCursorId");
+}
+
+void CMouseCursor::update() {
+ warning("CMouseCursor::update");
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/mouse_cursor.h b/engines/titanic/mouse_cursor.h
new file mode 100644
index 0000000000..c6df65d096
--- /dev/null
+++ b/engines/titanic/mouse_cursor.h
@@ -0,0 +1,45 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MOUSE_CURSOR_H
+#define TITANIC_MOUSE_CURSOR_H
+
+#include "common/scummsys.h"
+
+namespace Titanic {
+
+class CMouseCursor {
+public:
+ void show();
+ void hide();
+ void setCursorId(int id);
+
+ /**
+ * Updates the mouse cursor
+ */
+ void update();
+};
+
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MOUSE_CURSOR_H */
diff --git a/engines/titanic/moves/enter_bomb_room.cpp b/engines/titanic/moves/enter_bomb_room.cpp
new file mode 100644
index 0000000000..e989d47114
--- /dev/null
+++ b/engines/titanic/moves/enter_bomb_room.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/moves/enter_bomb_room.h"
+
+namespace Titanic {
+
+CEnterBombRoom::CEnterBombRoom() : CMovePlayerTo(), _fieldC8(0) {
+}
+
+void CEnterBombRoom::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CMovePlayerTo::save(file, indent);
+}
+
+void CEnterBombRoom::load(SimpleFile *file) {
+ file->readNumber();
+ CMovePlayerTo::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/moves/enter_bomb_room.h b/engines/titanic/moves/enter_bomb_room.h
new file mode 100644
index 0000000000..dabde2e308
--- /dev/null
+++ b/engines/titanic/moves/enter_bomb_room.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ENTER_BOMB_ROOM_H
+#define TITANIC_ENTER_BOMB_ROOM_H
+
+#include "titanic/moves/move_player_to.h"
+
+namespace Titanic {
+
+class CEnterBombRoom : public CMovePlayerTo {
+protected:
+ int _fieldC8;
+public:
+ CLASSDEF
+ CEnterBombRoom();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ENTER_BOMB_ROOM_H */
diff --git a/engines/titanic/moves/enter_bridge.cpp b/engines/titanic/moves/enter_bridge.cpp
new file mode 100644
index 0000000000..359cfcb48f
--- /dev/null
+++ b/engines/titanic/moves/enter_bridge.cpp
@@ -0,0 +1,44 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/moves/enter_bridge.h"
+
+namespace Titanic {
+
+void CEnterBridge::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ CGameObject::save(file, indent);
+}
+
+void CEnterBridge::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ CGameObject::load(file);
+}
+
+bool CEnterBridge::handleEvent(CEnterRoomMsg &msg) {
+ warning("CEnterBridge::handlEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/moves/enter_bridge.h b/engines/titanic/moves/enter_bridge.h
new file mode 100644
index 0000000000..39343ef904
--- /dev/null
+++ b/engines/titanic/moves/enter_bridge.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ENTER_BRIDGE_H
+#define TITANIC_ENTER_BRIDGE_H
+
+#include "titanic/core/game_object.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CEnterBridge : public CGameObject, CEnterRoomMsgTarget {
+private:
+ int _value;
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+ CEnterBridge() : CGameObject(), _value(1) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ENTER_BRIDGE_H */
diff --git a/engines/titanic/moves/enter_exit_first_class_state.cpp b/engines/titanic/moves/enter_exit_first_class_state.cpp
new file mode 100644
index 0000000000..ed80947c07
--- /dev/null
+++ b/engines/titanic/moves/enter_exit_first_class_state.cpp
@@ -0,0 +1,49 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/moves/enter_exit_first_class_state.h"
+
+namespace Titanic {
+
+CString *CEnterExitFirstClassState::_v1;
+
+void CEnterExitFirstClassState::init() {
+ _v1 = new CString();
+}
+
+void CEnterExitFirstClassState::deinit() {
+ delete _v1;
+}
+
+void CEnterExitFirstClassState::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(*_v1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CEnterExitFirstClassState::load(SimpleFile *file) {
+ file->readNumber();
+ *_v1 = file->readString();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/moves/enter_exit_first_class_state.h b/engines/titanic/moves/enter_exit_first_class_state.h
new file mode 100644
index 0000000000..728395d20c
--- /dev/null
+++ b/engines/titanic/moves/enter_exit_first_class_state.h
@@ -0,0 +1,59 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ENTER_EXIT_FIRST_CLASS_STATE_H
+#define TITANIC_ENTER_EXIT_FIRST_CLASS_STATE_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CEnterExitFirstClassState : public CGameObject {
+public:
+ static CString *_v1;
+
+ /**
+ * Initialize static data
+ */
+ static void init();
+
+ /**
+ * De-initialize static data
+ */
+ static void deinit();
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ENTER_EXIT_FIRST_CLASS_STATE_H */
diff --git a/engines/titanic/moves/enter_exit_mini_lift.cpp b/engines/titanic/moves/enter_exit_mini_lift.cpp
new file mode 100644
index 0000000000..b6a1423875
--- /dev/null
+++ b/engines/titanic/moves/enter_exit_mini_lift.cpp
@@ -0,0 +1,43 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/moves/enter_exit_mini_lift.h"
+
+namespace Titanic {
+
+void CEnterExitMiniLift::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeNumberLine(_fieldC0, indent);
+
+ CSGTNavigation::save(file, indent);
+}
+
+void CEnterExitMiniLift::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _fieldC0 = file->readNumber();
+
+ CSGTNavigation::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/moves/enter_exit_mini_lift.h b/engines/titanic/moves/enter_exit_mini_lift.h
new file mode 100644
index 0000000000..5a91d397f9
--- /dev/null
+++ b/engines/titanic/moves/enter_exit_mini_lift.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ENTER_EXIT_MINI_LIFT_H
+#define TITANIC_ENTER_EXIT_MINI_LIFT_H
+
+#include "titanic/game/sgt/sgt_navigation.h"
+
+namespace Titanic {
+
+class CEnterExitMiniLift : public CSGTNavigation {
+private:
+ int _fieldBC;
+ int _fieldC0;
+public:
+ CLASSDEF
+ CEnterExitMiniLift() : CSGTNavigation(), _fieldBC(0), _fieldC0(1) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ENTER_EXIT_MINI_LIFT_H */
diff --git a/engines/titanic/moves/enter_exit_sec_class_mini_lift.cpp b/engines/titanic/moves/enter_exit_sec_class_mini_lift.cpp
new file mode 100644
index 0000000000..f993d26797
--- /dev/null
+++ b/engines/titanic/moves/enter_exit_sec_class_mini_lift.cpp
@@ -0,0 +1,55 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/moves/enter_exit_sec_class_mini_lift.h"
+
+namespace Titanic {
+
+CEnterExitSecClassMiniLiftStatics *CEnterExitSecClassMiniLift::_statics;
+
+void CEnterExitSecClassMiniLift::init() {
+ _statics = new CEnterExitSecClassMiniLiftStatics();
+}
+
+void CEnterExitSecClassMiniLift::deinit() {
+ delete _statics;
+}
+
+void CEnterExitSecClassMiniLift::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_statics->_v1, indent);
+ file->writeNumberLine(_statics->_v2, indent);
+ file->writeNumberLine(_value, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CEnterExitSecClassMiniLift::load(SimpleFile *file) {
+ file->readNumber();
+ _statics->_v1 = file->readString();
+ _statics->_v2 = file->readNumber();
+ _value = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/moves/enter_exit_sec_class_mini_lift.h b/engines/titanic/moves/enter_exit_sec_class_mini_lift.h
new file mode 100644
index 0000000000..a1081c2836
--- /dev/null
+++ b/engines/titanic/moves/enter_exit_sec_class_mini_lift.h
@@ -0,0 +1,60 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ENTER_EXIT_SEC_CLASS_MINI_LIFT_H
+#define TITANIC_ENTER_EXIT_SEC_CLASS_MINI_LIFT_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+struct CEnterExitSecClassMiniLiftStatics {
+ CString _v1;
+ int _v2;
+
+ CEnterExitSecClassMiniLiftStatics() : _v2(1) {}
+};
+
+class CEnterExitSecClassMiniLift : public CGameObject {
+private:
+ static CEnterExitSecClassMiniLiftStatics *_statics;
+ int _value;
+public:
+ CLASSDEF
+ CEnterExitSecClassMiniLift() : CGameObject(), _value(0) {}
+ static void init();
+ static void deinit();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ENTER_EXIT_SEC_CLASS_MINI_LIFT_H */
diff --git a/engines/titanic/moves/enter_exit_view.cpp b/engines/titanic/moves/enter_exit_view.cpp
new file mode 100644
index 0000000000..3e5789eebe
--- /dev/null
+++ b/engines/titanic/moves/enter_exit_view.cpp
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/moves/enter_exit_view.h"
+
+namespace Titanic {
+
+CEnterExitView::CEnterExitView() : CGameObject(), _fieldBC(0),
+ _fieldC0(0), _fieldC4(0), _fieldC8(0), _fieldCC(0) {
+}
+
+void CEnterExitView::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeNumberLine(_fieldC0, indent);
+ file->writeNumberLine(_fieldC4, indent);
+ file->writeNumberLine(_fieldC8, indent);
+ file->writeNumberLine(_fieldCC, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CEnterExitView::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _fieldC0 = file->readNumber();
+ _fieldC4 = file->readNumber();
+ _fieldC8 = file->readNumber();
+ _fieldCC = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/moves/enter_exit_view.h b/engines/titanic/moves/enter_exit_view.h
new file mode 100644
index 0000000000..e967723558
--- /dev/null
+++ b/engines/titanic/moves/enter_exit_view.h
@@ -0,0 +1,54 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ENTER_EXIT_VIEW_H
+#define TITANIC_ENTER_EXIT_VIEW_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CEnterExitView : public CGameObject {
+public:
+ int _fieldBC;
+ int _fieldC0;
+ int _fieldC4;
+ int _fieldC8;
+ int _fieldCC;
+public:
+ CLASSDEF
+ CEnterExitView();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ENTER_EXIT_VIEW_H */
diff --git a/engines/titanic/moves/enter_sec_class_state.cpp b/engines/titanic/moves/enter_sec_class_state.cpp
new file mode 100644
index 0000000000..74f6176650
--- /dev/null
+++ b/engines/titanic/moves/enter_sec_class_state.cpp
@@ -0,0 +1,43 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/moves/enter_sec_class_state.h"
+
+namespace Titanic {
+
+void CEnterSecClassState::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value1, indent);
+ file->writeNumberLine(_value2, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CEnterSecClassState::load(SimpleFile *file) {
+ file->readNumber();
+ _value1 = file->readNumber();
+ _value2 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/moves/enter_sec_class_state.h b/engines/titanic/moves/enter_sec_class_state.h
new file mode 100644
index 0000000000..2e80939976
--- /dev/null
+++ b/engines/titanic/moves/enter_sec_class_state.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ENTER_SEC_CLASS_STATE_H
+#define TITANIC_ENTER_SEC_CLASS_STATE_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CEnterSecClassState : public CGameObject {
+public:
+ int _value1, _value2;
+public:
+ CLASSDEF
+ CEnterSecClassState() : CGameObject(), _value1(0), _value2(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ENTER_SEC_CLASS_STATE_H */
diff --git a/engines/titanic/moves/exit_arboretum.cpp b/engines/titanic/moves/exit_arboretum.cpp
new file mode 100644
index 0000000000..2b5b497f5c
--- /dev/null
+++ b/engines/titanic/moves/exit_arboretum.cpp
@@ -0,0 +1,49 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/moves/exit_arboretum.h"
+
+namespace Titanic {
+
+CExitArboretum::CExitArboretum() : CMovePlayerTo(),
+ _fieldC8(0), _fieldCC(0), _fieldD0(1) {
+}
+
+void CExitArboretum::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldC8, indent);
+ file->writeNumberLine(_fieldCC, indent);
+ file->writeNumberLine(_fieldD0, indent);
+
+ CMovePlayerTo::save(file, indent);
+}
+
+void CExitArboretum::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldC8 = file->readNumber();
+ _fieldCC = file->readNumber();
+ _fieldD0 = file->readNumber();
+
+ CMovePlayerTo::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/moves/exit_arboretum.h b/engines/titanic/moves/exit_arboretum.h
new file mode 100644
index 0000000000..0da67dd5a0
--- /dev/null
+++ b/engines/titanic/moves/exit_arboretum.h
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_EXIT_ARBORETUM_H
+#define TITANIC_EXIT_ARBORETUM_H
+
+#include "titanic/moves/move_player_to.h"
+
+namespace Titanic {
+
+class CExitArboretum : public CMovePlayerTo {
+protected:
+ int _fieldC8;
+ int _fieldCC;
+ int _fieldD0;
+public:
+ CLASSDEF
+ CExitArboretum();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BACKGROUND_H */
diff --git a/engines/titanic/moves/exit_bridge.cpp b/engines/titanic/moves/exit_bridge.cpp
new file mode 100644
index 0000000000..99138f946e
--- /dev/null
+++ b/engines/titanic/moves/exit_bridge.cpp
@@ -0,0 +1,42 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/moves/exit_bridge.h"
+
+namespace Titanic {
+
+CExitBridge::CExitBridge() : CMovePlayerTo() {
+}
+
+void CExitBridge::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CMovePlayerTo::save(file, indent);
+}
+
+void CExitBridge::load(SimpleFile *file) {
+ file->readNumber();
+ _string1 = file->readString();
+
+ CMovePlayerTo::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/moves/exit_bridge.h b/engines/titanic/moves/exit_bridge.h
new file mode 100644
index 0000000000..9231728e12
--- /dev/null
+++ b/engines/titanic/moves/exit_bridge.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_EXIT_BRIDGE_H
+#define TITANIC_EXIT_BRIDGE_H
+
+#include "titanic/moves/move_player_to.h"
+
+namespace Titanic {
+
+class CExitBridge : public CMovePlayerTo {
+private:
+ CString _string1;
+public:
+ CLASSDEF
+ CExitBridge();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_EXIT_BRIDGE_H */
diff --git a/engines/titanic/moves/exit_lift.cpp b/engines/titanic/moves/exit_lift.cpp
new file mode 100644
index 0000000000..376b9e04f1
--- /dev/null
+++ b/engines/titanic/moves/exit_lift.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/moves/exit_lift.h"
+
+namespace Titanic {
+
+void CExitLift::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_value, indent);
+ CGameObject::save(file, indent);
+}
+
+void CExitLift::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readString();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/moves/exit_lift.h b/engines/titanic/moves/exit_lift.h
new file mode 100644
index 0000000000..e97f041804
--- /dev/null
+++ b/engines/titanic/moves/exit_lift.h
@@ -0,0 +1,49 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_EXIT_LIFT_H
+#define TITANIC_EXIT_LIFT_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CExitLift : public CGameObject {
+public:
+ CString _value;
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_EXIT_LIFT_H */
diff --git a/engines/titanic/moves/exit_pellerator.cpp b/engines/titanic/moves/exit_pellerator.cpp
new file mode 100644
index 0000000000..7c0a52b2ae
--- /dev/null
+++ b/engines/titanic/moves/exit_pellerator.cpp
@@ -0,0 +1,55 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/moves/exit_pellerator.h"
+
+namespace Titanic {
+
+CExitPelleratorStatics *CExitPellerator::_statics;
+
+void CExitPellerator::init() {
+ _statics = new CExitPelleratorStatics();
+}
+
+void CExitPellerator::deinit() {
+ delete _statics;
+}
+
+void CExitPellerator::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_statics->_v1, indent);
+ file->writeNumberLine(_statics->_v2, indent);
+ file->writeNumberLine(_statics->_v3, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CExitPellerator::load(SimpleFile *file) {
+ file->readNumber();
+ _statics->_v1 = file->readString();
+ _statics->_v2 = file->readNumber();
+ _statics->_v3 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/moves/exit_pellerator.h b/engines/titanic/moves/exit_pellerator.h
new file mode 100644
index 0000000000..3ae70dbed8
--- /dev/null
+++ b/engines/titanic/moves/exit_pellerator.h
@@ -0,0 +1,57 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_EXIT_PELLERATOR_H
+#define TITANIC_EXIT_PELLERATOR_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+struct CExitPelleratorStatics {
+ CString _v1;
+ int _v2;
+ int _v3;
+};
+
+class CExitPellerator : public CGameObject {
+private:
+ static CExitPelleratorStatics *_statics;
+public:
+ CLASSDEF
+ static void init();
+ static void deinit();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_EXIT_PELLERATOR_H */
diff --git a/engines/titanic/moves/exit_state_room.cpp b/engines/titanic/moves/exit_state_room.cpp
new file mode 100644
index 0000000000..0dc4a4f967
--- /dev/null
+++ b/engines/titanic/moves/exit_state_room.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/moves/exit_state_room.h"
+
+namespace Titanic {
+
+CExitStateRoom::CExitStateRoom() : CMovePlayerTo(), _fieldC8(0) {
+}
+
+void CExitStateRoom::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CMovePlayerTo::save(file, indent);
+}
+
+void CExitStateRoom::load(SimpleFile *file) {
+ file->readNumber();
+ CMovePlayerTo::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/moves/exit_state_room.h b/engines/titanic/moves/exit_state_room.h
new file mode 100644
index 0000000000..ccf52ce3f3
--- /dev/null
+++ b/engines/titanic/moves/exit_state_room.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_EXIT_STATE_ROOM_H
+#define TITANIC_EXIT_STATE_ROOM_H
+
+#include "titanic/moves/move_player_to.h"
+
+namespace Titanic {
+
+class CExitStateRoom : public CMovePlayerTo {
+protected:
+ int _fieldC8;
+public:
+ CLASSDEF
+ CExitStateRoom();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_EXIT_STATE_ROOM_H */
diff --git a/engines/titanic/moves/exit_tiania.cpp b/engines/titanic/moves/exit_tiania.cpp
new file mode 100644
index 0000000000..99b6c96db7
--- /dev/null
+++ b/engines/titanic/moves/exit_tiania.cpp
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/moves/exit_tiania.h"
+
+namespace Titanic {
+
+CExitTiania::CExitTiania() : CMovePlayerTo(), _fieldC8(0),
+ _string1("NULL"), _string2("NULL"), _string3("NULL") {
+}
+
+void CExitTiania::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldC8, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeQuotedLine(_string2, indent);
+ file->writeQuotedLine(_string3, indent);
+
+ CMovePlayerTo::save(file, indent);
+}
+
+void CExitTiania::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldC8 = file->readNumber();
+ _string1 = file->readString();
+ _string2 = file->readString();
+ _string3 = file->readString();
+
+ CMovePlayerTo::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/moves/exit_tiania.h b/engines/titanic/moves/exit_tiania.h
new file mode 100644
index 0000000000..3af5aadc2e
--- /dev/null
+++ b/engines/titanic/moves/exit_tiania.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_EXIT_TIANIA_H
+#define TITANIC_EXIT_TIANIA_H
+
+#include "titanic/moves/move_player_to.h"
+
+namespace Titanic {
+
+class CExitTiania : public CMovePlayerTo {
+private:
+ int _fieldC8;
+ CString _string1;
+ CString _string2;
+ CString _string3;
+public:
+ CLASSDEF
+ CExitTiania();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_EXIT_TIANIA_H */
diff --git a/engines/titanic/moves/move_player_in_parrot_room.cpp b/engines/titanic/moves/move_player_in_parrot_room.cpp
new file mode 100644
index 0000000000..91c1706abf
--- /dev/null
+++ b/engines/titanic/moves/move_player_in_parrot_room.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/moves/move_player_in_parrot_room.h"
+
+namespace Titanic {
+
+CMovePlayerInParrotRoom::CMovePlayerInParrotRoom() : CMovePlayerTo() {
+}
+
+void CMovePlayerInParrotRoom::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CMovePlayerTo::save(file, indent);
+}
+
+void CMovePlayerInParrotRoom::load(SimpleFile *file) {
+ file->readNumber();
+ CMovePlayerTo::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/moves/move_player_in_parrot_room.h b/engines/titanic/moves/move_player_in_parrot_room.h
new file mode 100644
index 0000000000..5339a60a9c
--- /dev/null
+++ b/engines/titanic/moves/move_player_in_parrot_room.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MOVE_PLAYER_IN_PARROT_ROOM_H
+#define TITANIC_MOVE_PLAYER_IN_PARROT_ROOM_H
+
+#include "titanic/moves/move_player_to.h"
+
+namespace Titanic {
+
+class CMovePlayerInParrotRoom : public CMovePlayerTo {
+public:
+ CLASSDEF
+ CMovePlayerInParrotRoom();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MOVE_PLAYER_IN_PARROT_ROOM_H */
diff --git a/engines/titanic/moves/move_player_to.cpp b/engines/titanic/moves/move_player_to.cpp
new file mode 100644
index 0000000000..8ce8f77896
--- /dev/null
+++ b/engines/titanic/moves/move_player_to.cpp
@@ -0,0 +1,44 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/moves/move_player_to.h"
+
+namespace Titanic {
+
+CMovePlayerTo::CMovePlayerTo() : CGameObject() {
+}
+
+void CMovePlayerTo::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_destination, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CMovePlayerTo::load(SimpleFile *file) {
+ file->readNumber();
+ _destination = file->readString();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/moves/move_player_to.h b/engines/titanic/moves/move_player_to.h
new file mode 100644
index 0000000000..2617b46097
--- /dev/null
+++ b/engines/titanic/moves/move_player_to.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MOVE_PLAYER_TO_H
+#define TITANIC_MOVE_PLAYER_TO_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CMovePlayerTo : public CGameObject {
+protected:
+ CString _destination;
+public:
+ CLASSDEF
+ CMovePlayerTo();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MOVE_PLAYER_TO_H */
diff --git a/engines/titanic/moves/move_player_to_from.cpp b/engines/titanic/moves/move_player_to_from.cpp
new file mode 100644
index 0000000000..f349c5c265
--- /dev/null
+++ b/engines/titanic/moves/move_player_to_from.cpp
@@ -0,0 +1,44 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/moves/move_player_to_from.h"
+
+namespace Titanic {
+
+CMovePlayerToFrom::CMovePlayerToFrom() : CGameObject() {
+}
+
+void CMovePlayerToFrom::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string2, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CMovePlayerToFrom::load(SimpleFile *file) {
+ file->readNumber();
+ _string2 = file->readString();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/moves/move_player_to_from.h b/engines/titanic/moves/move_player_to_from.h
new file mode 100644
index 0000000000..bc1878af38
--- /dev/null
+++ b/engines/titanic/moves/move_player_to_from.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MOVE_PLAYER_TO_FROM_H
+#define TITANIC_MOVE_PLAYER_TO_FROM_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CMovePlayerToFrom : public CGameObject {
+private:
+ CString _string2;
+public:
+ CLASSDEF
+ CMovePlayerToFrom();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MOVE_PLAYER_TO_FROM_H */
diff --git a/engines/titanic/moves/multi_move.cpp b/engines/titanic/moves/multi_move.cpp
new file mode 100644
index 0000000000..6b35b88654
--- /dev/null
+++ b/engines/titanic/moves/multi_move.cpp
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/moves/multi_move.h"
+
+namespace Titanic {
+
+CMultiMove::CMultiMove() : CMovePlayerTo() {
+}
+
+void CMultiMove::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeQuotedLine(_string2, indent);
+ file->writeQuotedLine(_string3, indent);
+ file->writeQuotedLine(_string4, indent);
+ file->writeQuotedLine(_string5, indent);
+
+ CMovePlayerTo::save(file, indent);
+}
+
+void CMultiMove::load(SimpleFile *file) {
+ file->readNumber();
+ _string1 = file->readString();
+ _string2 = file->readString();
+ _string3 = file->readString();
+ _string5 = file->readString();
+ _string4 = file->readString();
+
+ CMovePlayerTo::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/moves/multi_move.h b/engines/titanic/moves/multi_move.h
new file mode 100644
index 0000000000..a06632df52
--- /dev/null
+++ b/engines/titanic/moves/multi_move.h
@@ -0,0 +1,54 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MULTI_MOVE_H
+#define TITANIC_MULTI_MOVE_H
+
+#include "titanic/moves/move_player_to.h"
+
+namespace Titanic {
+
+class CMultiMove : public CMovePlayerTo {
+private:
+ CString _string1;
+ CString _string2;
+ CString _string3;
+ CString _string4;
+ CString _string5;
+public:
+ CLASSDEF
+ CMultiMove();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MULTI_MOVE_H */
diff --git a/engines/titanic/moves/pan_from_pel.cpp b/engines/titanic/moves/pan_from_pel.cpp
new file mode 100644
index 0000000000..db3c9bf49c
--- /dev/null
+++ b/engines/titanic/moves/pan_from_pel.cpp
@@ -0,0 +1,46 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/moves/pan_from_pel.h"
+
+namespace Titanic {
+
+CPanFromPel::CPanFromPel() : CMovePlayerTo(), _fieldC8(0) {
+}
+
+void CPanFromPel::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldC8, indent);
+ file->writeQuotedLine(_string1, indent);
+
+ CMovePlayerTo::save(file, indent);
+}
+
+void CPanFromPel::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldC8 = file->readNumber();
+ _string1 = file->readString();
+
+ CMovePlayerTo::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/moves/pan_from_pel.h b/engines/titanic/moves/pan_from_pel.h
new file mode 100644
index 0000000000..b94f5166d7
--- /dev/null
+++ b/engines/titanic/moves/pan_from_pel.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PAN_FROM_PEL_H
+#define TITANIC_PAN_FROM_PEL_H
+
+#include "titanic/moves/move_player_to.h"
+
+namespace Titanic {
+
+class CPanFromPel : public CMovePlayerTo {
+protected:
+ int _fieldC8;
+ CString _string1;
+public:
+ CLASSDEF
+ CPanFromPel();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PAN_FROM_PEL_H */
diff --git a/engines/titanic/moves/restaurant_pan_handler.cpp b/engines/titanic/moves/restaurant_pan_handler.cpp
new file mode 100644
index 0000000000..8efc5cbe65
--- /dev/null
+++ b/engines/titanic/moves/restaurant_pan_handler.cpp
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/moves/restaurant_pan_handler.h"
+
+namespace Titanic {
+
+int CRestaurantPanHandler::_v1;
+
+void CRestaurantPanHandler::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_v1, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeQuotedLine(_string2, indent);
+
+ CMovePlayerTo::save(file, indent);
+}
+
+void CRestaurantPanHandler::load(SimpleFile *file) {
+ file->readNumber();
+ _v1 = file->readNumber();
+ _string1 = file->readString();
+ _string2 = file->readString();
+
+ CMovePlayerTo::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/moves/restaurant_pan_handler.h b/engines/titanic/moves/restaurant_pan_handler.h
new file mode 100644
index 0000000000..29f7832b74
--- /dev/null
+++ b/engines/titanic/moves/restaurant_pan_handler.h
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_RESTAURANT_PAN_HANDLER_H
+#define TITANIC_RESTAURANT_PAN_HANDLER_H
+
+#include "titanic/moves/move_player_to.h"
+
+namespace Titanic {
+
+class CRestaurantPanHandler : public CMovePlayerTo {
+protected:
+ static int _v1;
+
+ CString _string1;
+ CString _string2;
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_RESTAURANT_PAN_HANDLER_H */
diff --git a/engines/titanic/moves/restricted_move.cpp b/engines/titanic/moves/restricted_move.cpp
new file mode 100644
index 0000000000..d6a046d30c
--- /dev/null
+++ b/engines/titanic/moves/restricted_move.cpp
@@ -0,0 +1,44 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/moves/restricted_move.h"
+
+namespace Titanic {
+
+CRestrictedMove::CRestrictedMove() : CMovePlayerTo(), _fieldC8(0) {
+}
+
+void CRestrictedMove::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldC8, indent);
+
+ CMovePlayerTo::save(file, indent);
+}
+
+void CRestrictedMove::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldC8 = file->readNumber();
+
+ CMovePlayerTo::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/moves/restricted_move.h b/engines/titanic/moves/restricted_move.h
new file mode 100644
index 0000000000..ef95e0f5b5
--- /dev/null
+++ b/engines/titanic/moves/restricted_move.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_RESTRICTED_MOVE_H
+#define TITANIC_RESTRICTED_MOVE_H
+
+#include "titanic/moves/move_player_to.h"
+
+namespace Titanic {
+
+class CRestrictedMove : public CMovePlayerTo {
+protected:
+ int _fieldC8;
+public:
+ CLASSDEF
+ CRestrictedMove();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_RESTRICTED_MOVE_H */
diff --git a/engines/titanic/moves/scraliontis_table.cpp b/engines/titanic/moves/scraliontis_table.cpp
new file mode 100644
index 0000000000..d67b2f3622
--- /dev/null
+++ b/engines/titanic/moves/scraliontis_table.cpp
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/moves/scraliontis_table.h"
+
+namespace Titanic {
+
+CScraliontisTable::CScraliontisTable() : CRestaurantPanHandler(),
+ _fieldE0(0), _fieldE4(0), _fieldE8(0), _fieldEC(0) {
+}
+
+void CScraliontisTable::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_fieldE8, indent);
+ file->writeNumberLine(_fieldEC, indent);
+
+ CRestaurantPanHandler::save(file, indent);
+}
+
+void CScraliontisTable::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _fieldE8 = file->readNumber();
+ _fieldEC = file->readNumber();
+
+ CRestaurantPanHandler::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/moves/scraliontis_table.h b/engines/titanic/moves/scraliontis_table.h
new file mode 100644
index 0000000000..53b000646b
--- /dev/null
+++ b/engines/titanic/moves/scraliontis_table.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SCRALIONTIS_TABLE_H
+#define TITANIC_SCRALIONTIS_TABLE_H
+
+#include "titanic/moves/restaurant_pan_handler.h"
+
+namespace Titanic {
+
+class CScraliontisTable : public CRestaurantPanHandler {
+private:
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+ int _fieldEC;
+public:
+ CLASSDEF
+ CScraliontisTable();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SCRALIONTIS_TABLE_H */
diff --git a/engines/titanic/moves/trip_down_canal.cpp b/engines/titanic/moves/trip_down_canal.cpp
new file mode 100644
index 0000000000..349a7e945c
--- /dev/null
+++ b/engines/titanic/moves/trip_down_canal.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/moves/trip_down_canal.h"
+
+namespace Titanic {
+
+CTripDownCanal::CTripDownCanal() : CMovePlayerTo() {
+}
+
+void CTripDownCanal::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CMovePlayerTo::save(file, indent);
+}
+
+void CTripDownCanal::load(SimpleFile *file) {
+ file->readNumber();
+ CMovePlayerTo::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/moves/trip_down_canal.h b/engines/titanic/moves/trip_down_canal.h
new file mode 100644
index 0000000000..80d5dcf706
--- /dev/null
+++ b/engines/titanic/moves/trip_down_canal.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TRIP_DOWN_CANAL_H
+#define TITANIC_TRIP_DOWN_CANAL_H
+
+#include "titanic/moves/move_player_to.h"
+
+namespace Titanic {
+
+class CTripDownCanal : public CMovePlayerTo {
+public:
+ CLASSDEF
+ CTripDownCanal();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TRIP_DOWN_CANAL_H */
diff --git a/engines/titanic/npcs/barbot.cpp b/engines/titanic/npcs/barbot.cpp
new file mode 100644
index 0000000000..907d3c0c71
--- /dev/null
+++ b/engines/titanic/npcs/barbot.cpp
@@ -0,0 +1,241 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/npcs/barbot.h"
+
+namespace Titanic {
+
+int CBarbot::_v0;
+
+CBarbot::CBarbot() : CTrueTalkNPC() {
+ _field108 = 0;
+ _field10C = 0;
+ _field110 = 0;
+ _field114 = 0;
+ _field118 = 0;
+ _field11C = 0;
+ _field120 = 0;
+ _field124 = 0;
+ _field128 = 0;
+ _field12C = 0;
+ _field130 = 0;
+ _field134 = 0;
+ _field138 = 0;
+ _field13C = -1;
+ _field140 = 30;
+ _field144 = -1;
+ _field148 = -1;
+ _field14C = 0;
+ _field150 = 0;
+ _field154 = 0;
+ _field158 = -1;
+ _field15C = 0;
+ _field160 = 0;
+ _field164 = 558;
+ _field168 = 585;
+ _field16C = 659;
+ _field170 = 692;
+ _field174 = 802;
+ _field178 = 816;
+ _field17C = 1941;
+ _field180 = 1977;
+ _field184 = 1901;
+ _field188 = 1941;
+ _field18C = 810;
+ _field190 = 816;
+ _field194 = 857;
+ _field198 = 865;
+ _field19C = 842;
+ _field1A0 = 857;
+ _field1A4 = 821;
+ _field1A8 = 842;
+ _field1AC = 682;
+ _field1B0 = 692;
+ _field1B4 = 1977;
+ _field1B8 = 2018;
+ _field1BC = 2140;
+ _field1C0 = 2170;
+ _field1C4 = 2101;
+ _field1C8 = 2139;
+ _field1CC = 2018;
+ _field1D0 = 2099;
+ _field1D4 = 1902;
+ _field1D8 = 2015;
+ _field1E0 = 1811;
+ _field1E4 = 1901;
+ _field1E8 = 1810;
+ _field1EC = 1703;
+ _field1F0 = 1750;
+ _field1F4 = 1681;
+ _field1F8 = 1702;
+ _field1FC = 1642;
+
+ _field200 = 1702;
+ _field204 = 1571;
+ _field208 = 1641;
+ _field20C = 1499;
+ _field210 = 1570;
+ _field214 = 1403;
+ _field218 = 1463;
+ _field21C = 1464;
+ _field220 = 1499;
+ _field224 = 1288;
+ _field228 = 1295;
+ _field22C = 1266;
+ _field230 = 1287;
+ _field234 = 1245;
+ _field238 = 1265;
+ _field23C = 1208;
+ _field240 = 1244;
+ _field244 = 1171;
+ _field248 = 1207;
+ _field24C = 1120;
+ _field250 = 1170;
+ _field254 = 1092;
+ _field258 = 1120;
+ _field25C = 1092;
+ _field260 = 1092;
+ _field264 = 1044;
+ _field268 = 1091;
+ _field26C = 1011;
+ _field270 = 1043;
+ _field274 = 1001;
+ _field278 = 1010;
+ _field27C = 985;
+ _field280 = 1001;
+ _field284 = 927;
+ _field288 = 984;
+ _field28C = 912;
+ _field290 = 926;
+ _field294 = 898;
+ _field298 = 906;
+ _field29C = 802;
+ _field2A0 = 896;
+ _field2A4 = 865;
+ _field2A8 = 896;
+ _field2AC = 842;
+ _field2B0 = 865;
+ _field2B4 = 816;
+ _field2B8 = 842;
+ _field2BC = 802;
+ _field2C0 = 842;
+ _field2C4 = 740;
+ _field2C8 = 740;
+ _field2CC = 740;
+ _field2D0 = 692;
+ _field2D4 = 610;
+ _field2D8 = 558;
+ _field2E0 = 610;
+ _field2E4 = 500;
+ _field2E8 = 558;
+ _field2EC = 467;
+ _field2F0 = 500;
+ _field2F4 = 421;
+ _field2F8 = 466;
+ _field2FC = 349;
+ _field300 = 306;
+ _field304 = 306;
+ _field308 = 348;
+ _field30C = 305;
+ _field310 = 306;
+ _field314 = 281;
+ _field318 = 305;
+ _field31C = 202;
+ _field320 = 281;
+ _field324 = 182;
+ _field328 = 202;
+ _field32C = 165;
+ _field330 = 182;
+ _field334 = 96;
+ _field338 = 165;
+ _field33C = 0;
+ _field340 = 95;
+}
+
+void CBarbot::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_field108, indent);
+ file->writeNumberLine(_field10C, indent);
+ file->writeNumberLine(_field110, indent);
+ file->writeNumberLine(_field114, indent);
+ file->writeNumberLine(_field118, indent);
+ file->writeNumberLine(_field11C, indent);
+ file->writeNumberLine(_field120, indent);
+ file->writeNumberLine(_field124, indent);
+ file->writeNumberLine(_field128, indent);
+
+ file->writeNumberLine(_v0, indent);
+ file->writeNumberLine(_field12C, indent);
+ file->writeNumberLine(_field130, indent);
+ file->writeNumberLine(_field134, indent);
+ file->writeNumberLine(_field138, indent);
+ file->writeNumberLine(_field13C, indent);
+ file->writeNumberLine(_field140, indent);
+ file->writeNumberLine(_field144, indent);
+ file->writeNumberLine(_field148, indent);
+ file->writeNumberLine(_field14C, indent);
+ file->writeNumberLine(_field150, indent);
+ file->writeNumberLine(_field154, indent);
+ file->writeNumberLine(_field158, indent);
+ file->writeNumberLine(_field15C, indent);
+ file->writeNumberLine(_field160, indent);
+
+ CTrueTalkNPC::save(file, indent);
+}
+
+void CBarbot::load(SimpleFile *file) {
+ file->readNumber();
+ _field108 = file->readNumber();
+ _field10C = file->readNumber();
+ _field110 = file->readNumber();
+ _field114 = file->readNumber();
+ _field118 = file->readNumber();
+ _field11C = file->readNumber();
+ _field120 = file->readNumber();
+ _field124 = file->readNumber();
+ _field128 = file->readNumber();
+
+ _v0 = file->readNumber();
+ _field12C = file->readNumber();
+ _field130 = file->readNumber();
+ _field134 = file->readNumber();
+ _field138 = file->readNumber();
+ _field13C = file->readNumber();
+ _field140 = file->readNumber();
+ _field144 = file->readNumber();
+ _field148 = file->readNumber();
+ _field14C = file->readNumber();
+ _field150 = file->readNumber();
+ _field154 = file->readNumber();
+ _field158 = file->readNumber();
+ _field15C = file->readNumber();
+ _field160 = file->readNumber();
+
+ CTrueTalkNPC::load(file);
+}
+
+bool CBarbot::handleEvent(CEnterRoomMsg &msg) {
+ warning("TODO: Barbot::CEnterRoomMsg");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/npcs/barbot.h b/engines/titanic/npcs/barbot.h
new file mode 100644
index 0000000000..442578ef6c
--- /dev/null
+++ b/engines/titanic/npcs/barbot.h
@@ -0,0 +1,195 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BARBOT_H
+#define TITANIC_BARBOT_H
+
+#include "titanic/npcs/true_talk_npc.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CBarbot : public CTrueTalkNPC, CEnterRoomMsgTarget {
+private:
+ static int _v0;
+private:
+ int _field108;
+ int _field10C;
+ int _field110;
+ int _field114;
+ int _field118;
+ int _field11C;
+ int _field120;
+ int _field124;
+ int _field128;
+ int _field12C;
+ int _field130;
+ int _field134;
+ int _field138;
+ int _field13C;
+ int _field140;
+ int _field144;
+ int _field148;
+ int _field14C;
+ int _field150;
+ int _field154;
+ int _field158;
+ int _field15C;
+ int _field160;
+ int _field164;
+ int _field168;
+ int _field16C;
+ int _field170;
+ int _field174;
+ int _field178;
+ int _field17C;
+ int _field180;
+ int _field184;
+ int _field188;
+ int _field18C;
+ int _field190;
+ int _field194;
+ int _field198;
+ int _field19C;
+ int _field1A0;
+ int _field1A4;
+ int _field1A8;
+ int _field1AC;
+ int _field1B0;
+ int _field1B4;
+ int _field1B8;
+ int _field1BC;
+ int _field1C0;
+ int _field1C4;
+ int _field1C8;
+ int _field1CC;
+ int _field1D0;
+ int _field1D4;
+ int _field1D8;
+ int _field1E0;
+ int _field1E4;
+ int _field1E8;
+ int _field1EC;
+ int _field1F0;
+ int _field1F4;
+ int _field1F8;
+ int _field1FC;
+ int _field200;
+ int _field204;
+ int _field208;
+ int _field20C;
+ int _field210;
+ int _field214;
+ int _field218;
+ int _field21C;
+ int _field220;
+ int _field224;
+ int _field228;
+ int _field22C;
+ int _field230;
+ int _field234;
+ int _field238;
+ int _field23C;
+ int _field240;
+ int _field244;
+ int _field248;
+ int _field24C;
+ int _field250;
+ int _field254;
+ int _field258;
+ int _field25C;
+ int _field260;
+ int _field264;
+ int _field268;
+ int _field26C;
+ int _field270;
+ int _field274;
+ int _field278;
+ int _field27C;
+ int _field280;
+ int _field284;
+ int _field288;
+ int _field28C;
+ int _field290;
+ int _field294;
+ int _field298;
+ int _field29C;
+ int _field2A0;
+ int _field2A4;
+ int _field2A8;
+ int _field2AC;
+ int _field2B0;
+ int _field2B4;
+ int _field2B8;
+ int _field2BC;
+ int _field2C0;
+ int _field2C4;
+ int _field2C8;
+ int _field2CC;
+ int _field2D0;
+ int _field2D4;
+ int _field2D8;
+ int _field2E0;
+ int _field2E4;
+ int _field2E8;
+ int _field2EC;
+ int _field2F0;
+ int _field2F4;
+ int _field2F8;
+ int _field2FC;
+ int _field300;
+ int _field304;
+ int _field308;
+ int _field30C;
+ int _field310;
+ int _field314;
+ int _field318;
+ int _field31C;
+ int _field320;
+ int _field324;
+ int _field328;
+ int _field32C;
+ int _field330;
+ int _field334;
+ int _field338;
+ int _field33C;
+ int _field340;
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+ CBarbot();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BARBOT_H */
diff --git a/engines/titanic/npcs/bellbot.cpp b/engines/titanic/npcs/bellbot.cpp
new file mode 100644
index 0000000000..48747228f8
--- /dev/null
+++ b/engines/titanic/npcs/bellbot.cpp
@@ -0,0 +1,44 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/npcs/bellbot.h"
+
+namespace Titanic {
+
+CBellBot::CBellBot() : CTrueTalkNPC(), _field108(0) {
+}
+
+void CBellBot::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_field108, indent);
+
+ CTrueTalkNPC::save(file, indent);
+}
+
+void CBellBot::load(SimpleFile *file) {
+ file->readNumber();
+ _field108 = file->readNumber();
+
+ CTrueTalkNPC::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/npcs/bellbot.h b/engines/titanic/npcs/bellbot.h
new file mode 100644
index 0000000000..c3d38f65ec
--- /dev/null
+++ b/engines/titanic/npcs/bellbot.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BELLBOT_H
+#define TITANIC_BELLBOT_H
+
+#include "titanic/npcs/true_talk_npc.h"
+
+namespace Titanic {
+
+class CBellBot : public CTrueTalkNPC {
+private:
+ int _field108;
+public:
+ CLASSDEF
+ CBellBot();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BELLBOT_H */
diff --git a/engines/titanic/npcs/callbot.cpp b/engines/titanic/npcs/callbot.cpp
new file mode 100644
index 0000000000..3fb7ee2f59
--- /dev/null
+++ b/engines/titanic/npcs/callbot.cpp
@@ -0,0 +1,46 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/npcs/callbot.h"
+
+namespace Titanic {
+
+CCallBot::CCallBot() : CGameObject(), _fieldC8(0) {
+}
+
+void CCallBot::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeNumberLine(_fieldC8, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CCallBot::load(SimpleFile *file) {
+ file->readNumber();
+ _string1 = file->readString();
+ _fieldC8 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/npcs/callbot.h b/engines/titanic/npcs/callbot.h
new file mode 100644
index 0000000000..299a329c07
--- /dev/null
+++ b/engines/titanic/npcs/callbot.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CALLBOT_H
+#define TITANIC_CALLBOT_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CCallBot : public CGameObject {
+protected:
+ CString _string1;
+ int _fieldC8;
+public:
+ CLASSDEF
+ CCallBot();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CALLBOT_H */
diff --git a/engines/titanic/npcs/character.cpp b/engines/titanic/npcs/character.cpp
new file mode 100644
index 0000000000..b8112ce56b
--- /dev/null
+++ b/engines/titanic/npcs/character.cpp
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/npcs/character.h"
+
+namespace Titanic {
+
+CCharacter::CCharacter() : CGameObject(), _fieldBC(0), _fieldC0(0), _fieldC4(1) {
+}
+
+void CCharacter::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeNumberLine(_fieldC0, indent);
+ file->writeNumberLine(_fieldC4, indent);
+ file->writeQuotedLine(_charName, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CCharacter::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _fieldC0 = file->readNumber();
+ _fieldC4 = file->readNumber();
+ _charName = file->readString();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/npcs/character.h b/engines/titanic/npcs/character.h
new file mode 100644
index 0000000000..2fb83e9288
--- /dev/null
+++ b/engines/titanic/npcs/character.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_CHARACTER_H
+#define TITANIC_CHARACTER_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CCharacter : public CGameObject {
+protected:
+ int _fieldBC;
+ int _fieldC0;
+ int _fieldC4;
+ CString _charName;
+public:
+ CLASSDEF
+ CCharacter();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_CHARACTER_H */
diff --git a/engines/titanic/npcs/deskbot.cpp b/engines/titanic/npcs/deskbot.cpp
new file mode 100644
index 0000000000..c4745ae8d6
--- /dev/null
+++ b/engines/titanic/npcs/deskbot.cpp
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/npcs/deskbot.h"
+
+namespace Titanic {
+
+int CDeskbot::_v1;
+int CDeskbot::_v2;
+
+CDeskbot::CDeskbot() : CTrueTalkNPC(), _field108(0), _field10C(0) {
+}
+
+void CDeskbot::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_v1, indent);
+ file->writeNumberLine(_v2, indent);
+ file->writeNumberLine(_field108, indent);
+ file->writeNumberLine(_field10C, indent);
+
+ CTrueTalkNPC::save(file, indent);
+}
+
+void CDeskbot::load(SimpleFile *file) {
+ file->readNumber();
+ _v1 = file->readNumber();
+ _v2 = file->readNumber();
+ _field108 = file->readNumber();
+ _field10C = file->readNumber();
+
+ CTrueTalkNPC::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/npcs/deskbot.h b/engines/titanic/npcs/deskbot.h
new file mode 100644
index 0000000000..cb977e416d
--- /dev/null
+++ b/engines/titanic/npcs/deskbot.h
@@ -0,0 +1,54 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_DESKBOT_H
+#define TITANIC_DESKBOT_H
+
+#include "titanic/npcs/true_talk_npc.h"
+
+namespace Titanic {
+
+class CDeskbot : public CTrueTalkNPC {
+private:
+ static int _v1;
+ static int _v2;
+private:
+ int _field108;
+ int _field10C;
+public:
+ CLASSDEF
+ CDeskbot();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_DESKBOT_H */
diff --git a/engines/titanic/npcs/doorbot.cpp b/engines/titanic/npcs/doorbot.cpp
new file mode 100644
index 0000000000..17db94f2d7
--- /dev/null
+++ b/engines/titanic/npcs/doorbot.cpp
@@ -0,0 +1,63 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/npcs/doorbot.h"
+
+namespace Titanic {
+
+int CDoorbot::_v1;
+int CDoorbot::_v2;
+
+CDoorbot::CDoorbot() : CTrueTalkNPC() {
+ _field108 = 0;
+ _field10C = 0;
+ _field110 = 0;
+ _field114 = 0;
+}
+
+void CDoorbot::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_v1, indent);
+ file->writeNumberLine(_v2, indent);
+
+ file->writeNumberLine(_field108, indent);
+ file->writeNumberLine(_field10C, indent);
+ file->writeNumberLine(_field110, indent);
+ file->writeNumberLine(_field114, indent);
+
+ CTrueTalkNPC::save(file, indent);
+}
+
+void CDoorbot::load(SimpleFile *file) {
+ file->readNumber();
+ _v1 = file->readNumber();
+ _v2 = file->readNumber();
+
+ _field108 = file->readNumber();
+ _field10C = file->readNumber();
+ _field110 = file->readNumber();
+ _field114 = file->readNumber();
+
+ CTrueTalkNPC::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/npcs/doorbot.h b/engines/titanic/npcs/doorbot.h
new file mode 100644
index 0000000000..f0c46e5a16
--- /dev/null
+++ b/engines/titanic/npcs/doorbot.h
@@ -0,0 +1,56 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_DOORBOT_H
+#define TITANIC_DOORBOT_H
+
+#include "titanic/npcs/true_talk_npc.h"
+
+namespace Titanic {
+
+class CDoorbot : public CTrueTalkNPC {
+private:
+ static int _v1;
+ static int _v2;
+private:
+ int _field108;
+ int _field10C;
+ int _field110;
+ int _field114;
+public:
+ CLASSDEF
+ CDoorbot();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_DOORBOT_H */
diff --git a/engines/titanic/npcs/liftbot.cpp b/engines/titanic/npcs/liftbot.cpp
new file mode 100644
index 0000000000..dfc0a4f0ad
--- /dev/null
+++ b/engines/titanic/npcs/liftbot.cpp
@@ -0,0 +1,56 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/npcs/liftbot.h"
+
+namespace Titanic {
+
+int CLiftBot::_v1;
+int CLiftBot::_v2;
+
+CLiftBot::CLiftBot() : CTrueTalkNPC(), _field108(1) {
+}
+
+void CLiftBot::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_v1, indent);
+ file->writeNumberLine(_field108, indent);
+ file->writeNumberLine(_v2, indent);
+
+ CTrueTalkNPC::save(file, indent);
+}
+
+void CLiftBot::load(SimpleFile *file) {
+ file->readNumber();
+ _v1 = file->readNumber();
+ _field108 = file->readNumber();
+ _v2 = file->readNumber();
+
+ CTrueTalkNPC::load(file);
+}
+
+bool CLiftBot::handleEvent(CEnterRoomMsg &msg) {
+ warning("CLiftBot::handleEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/npcs/liftbot.h b/engines/titanic/npcs/liftbot.h
new file mode 100644
index 0000000000..3a41bf3a96
--- /dev/null
+++ b/engines/titanic/npcs/liftbot.h
@@ -0,0 +1,56 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_LIFTBOT_H
+#define TITANIC_LIFTBOT_H
+
+#include "titanic/npcs/true_talk_npc.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CLiftBot : public CTrueTalkNPC, CEnterRoomMsgTarget {
+private:
+ static int _v1;
+ static int _v2;
+private:
+ int _field108;
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+ CLiftBot();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_LIFTBOT_H */
diff --git a/engines/titanic/npcs/maitre_d.cpp b/engines/titanic/npcs/maitre_d.cpp
new file mode 100644
index 0000000000..d100a0b301
--- /dev/null
+++ b/engines/titanic/npcs/maitre_d.cpp
@@ -0,0 +1,68 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/npcs/maitre_d.h"
+
+namespace Titanic {
+
+int CMaitreD::_v1;
+
+CMaitreD::CMaitreD() : CTrueTalkNPC(),
+ _string2("z#40.wav"), _string3("z#40.wav"), _field108(0), _field118(1),
+ _field11C(0), _field12C(0), _field130(1), _field134(0), _field138(0) {
+}
+
+void CMaitreD::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_field108, indent);
+ file->writeQuotedLine(_string2, indent);
+ file->writeNumberLine(_field118, indent);
+ file->writeNumberLine(_field11C, indent);
+ file->writeQuotedLine(_string3, indent);
+ file->writeNumberLine(_field12C, indent);
+ file->writeNumberLine(_field130, indent);
+
+ file->writeNumberLine(_v1, indent);
+ file->writeNumberLine(_field134, indent);
+ file->writeNumberLine(_field138, indent);
+
+ CTrueTalkNPC::save(file, indent);
+}
+
+void CMaitreD::load(SimpleFile *file) {
+ file->readNumber();
+ _field108 = file->readNumber();
+ _string2 = file->readString();
+ _field118 = file->readNumber();
+ _field11C = file->readNumber();
+ _string3 = file->readString();
+ _field12C = file->readNumber();
+ _field130 = file->readNumber();
+
+ _v1 = file->readNumber();
+ _field134 = file->readNumber();
+ _field138 = file->readNumber();
+
+ CTrueTalkNPC::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/npcs/maitre_d.h b/engines/titanic/npcs/maitre_d.h
new file mode 100644
index 0000000000..bae682bc74
--- /dev/null
+++ b/engines/titanic/npcs/maitre_d.h
@@ -0,0 +1,60 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MAITRED_H
+#define TITANIC_MAITRED_H
+
+#include "titanic/npcs/true_talk_npc.h"
+
+namespace Titanic {
+
+class CMaitreD : public CTrueTalkNPC {
+private:
+ static int _v1;
+private:
+ int _field108;
+ CString _string2;
+ int _field118;
+ int _field11C;
+ CString _string3;
+ int _field12C;
+ int _field130;
+ int _field134;
+ int _field138;
+public:
+ CLASSDEF
+ CMaitreD();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MAITRED_H */
diff --git a/engines/titanic/npcs/mobile.cpp b/engines/titanic/npcs/mobile.cpp
new file mode 100644
index 0000000000..37c1d13fee
--- /dev/null
+++ b/engines/titanic/npcs/mobile.cpp
@@ -0,0 +1,46 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/npcs/mobile.h"
+
+namespace Titanic {
+
+CMobile::CMobile() : CCharacter(), _fieldDC(0) {
+}
+
+void CMobile::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writePoint(_pos1, indent);
+ file->writeNumberLine(_fieldDC, indent);
+
+ CCharacter::save(file, indent);
+}
+
+void CMobile::load(SimpleFile *file) {
+ file->readNumber();
+ _pos1 = file->readPoint();
+ _fieldDC = file->readNumber();
+
+ CCharacter::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/npcs/mobile.h b/engines/titanic/npcs/mobile.h
new file mode 100644
index 0000000000..512bb9fe9f
--- /dev/null
+++ b/engines/titanic/npcs/mobile.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MOBILE_H
+#define TITANIC_MOBILE_H
+
+#include "titanic/npcs/character.h"
+
+namespace Titanic {
+
+class CMobile : public CCharacter {
+private:
+ Common::Point _pos1;
+ int _fieldDC;
+public:
+ CLASSDEF
+ CMobile();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MOBILE_H */
diff --git a/engines/titanic/npcs/parrot.cpp b/engines/titanic/npcs/parrot.cpp
new file mode 100644
index 0000000000..c350079f76
--- /dev/null
+++ b/engines/titanic/npcs/parrot.cpp
@@ -0,0 +1,143 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/npcs/parrot.h"
+
+namespace Titanic {
+
+int CParrot::_v1;
+int CParrot::_v2;
+int CParrot::_v3;
+int CParrot::_v4;
+int CParrot::_v5;
+
+CParrot::CParrot() : CTrueTalkNPC() {
+ _field108 = 0;
+ _string2 = "CarryParrot";
+ _field118 = 1;
+ _field11C = 25;
+ _field120 = 0;
+ _field124 = 73;
+ _field128 = 58;
+ _field12C = 0;
+ _field130 = 0;
+ _field134 = 0;
+ _field138 = 851;
+ _field13C = 851;
+ _field140 = 265;
+ _field144 = 274;
+ _field148 = 726;
+ _field14C = 730;
+ _field150 = 510;
+ _field154 = 570;
+ _field158 = 569;
+ _field15C = 689;
+ _field160 = 690;
+ _field164 = 725;
+ _field168 = 375;
+ _field16C = 508;
+ _field170 = 363;
+ _field174 = 375;
+ _field178 = 303;
+ _field17C = 313;
+ _field180 = 279;
+ _field184 = 302;
+ _field188 = 260;
+ _field18C = 264;
+ _field190 = 315;
+ _field194 = 327;
+ _field198 = 330;
+ _field19C = 360;
+ _field1A0 = 175;
+ _field1A4 = 259;
+ _field1A8 = 175;
+ _field1AC = 175;
+ _field1B0 = 162;
+ _field1B4 = 175;
+ _field1B8 = 150;
+ _field1BC = 162;
+ _field1C0 = 135;
+ _field1C4 = 150;
+ _field1C8 = 95;
+ _field1CC = 135;
+ _field1D0 = 76;
+ _field1D4 = 95;
+ _field1D8 = 55;
+ _field1DC = 76;
+ _field1E0 = 30;
+ _field1E4 = 55;
+ _field1E8 = 0;
+ _field1EC = 30;
+
+ _string1 = "z454.dlg";
+ _fieldD4 = 0x13880;
+}
+
+void CParrot::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldD4, indent);
+
+ file->writeQuotedLine(_string1, indent);
+ file->writeNumberLine(_field108, indent);
+ file->writeNumberLine(_v1, indent);
+ file->writeNumberLine(_v2, indent);
+ file->writeNumberLine(_v3, indent);
+
+ file->writeQuotedLine(_string2, indent);
+ file->writeNumberLine(_field118, indent);
+ file->writeNumberLine(_field11C, indent);
+ file->writeNumberLine(_field120, indent);
+ file->writeNumberLine(_field124, indent);
+ file->writeNumberLine(_field128, indent);
+ file->writeNumberLine(_field12C, indent);
+ file->writeNumberLine(_field130, indent);
+ file->writeNumberLine(_v4, indent);
+ file->writeNumberLine(_v5, indent);
+
+ CTrueTalkNPC::save(file, indent);
+}
+
+void CParrot::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldD4 = file->readNumber();
+
+ _string1 = file->readString();
+ _field108 = file->readNumber();
+ _v1 = file->readNumber();
+ _v2 = file->readNumber();
+ _v3 = file->readNumber();
+
+ _string2 = file->readString();
+ _field118 = file->readNumber();
+ _field11C = file->readNumber();
+ _field120 = file->readNumber();
+ _field124 = file->readNumber();
+ _field128 = file->readNumber();
+ _field12C = file->readNumber();
+ _field130 = file->readNumber();
+ _v4 = file->readNumber();
+ _v5 = file->readNumber();
+
+ CTrueTalkNPC::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/npcs/parrot.h b/engines/titanic/npcs/parrot.h
new file mode 100644
index 0000000000..b69c8723d3
--- /dev/null
+++ b/engines/titanic/npcs/parrot.h
@@ -0,0 +1,111 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PARROT_H
+#define TITANIC_PARROT_H
+
+#include "titanic/npcs/true_talk_npc.h"
+
+namespace Titanic {
+
+class CParrot : public CTrueTalkNPC {
+private:
+ static int _v1;
+ static int _v2;
+ static int _v3;
+ static int _v4;
+ static int _v5;
+private:
+ int _field108;
+ CString _string2;
+ int _field118;
+ int _field11C;
+ int _field120;
+ int _field124;
+ int _field128;
+ int _field12C;
+ int _field130;
+ int _field134;
+ int _field138;
+ int _field13C;
+ int _field140;
+ int _field144;
+ int _field148;
+ int _field14C;
+ int _field150;
+ int _field154;
+ int _field158;
+ int _field15C;
+ int _field160;
+ int _field164;
+ int _field168;
+ int _field16C;
+ int _field170;
+ int _field174;
+ int _field178;
+ int _field17C;
+ int _field180;
+ int _field184;
+ int _field188;
+ int _field18C;
+ int _field190;
+ int _field194;
+ int _field198;
+ int _field19C;
+ int _field1A0;
+ int _field1A4;
+ int _field1A8;
+ int _field1AC;
+ int _field1B0;
+ int _field1B4;
+ int _field1B8;
+ int _field1BC;
+ int _field1C0;
+ int _field1C4;
+ int _field1C8;
+ int _field1CC;
+ int _field1D0;
+ int _field1D4;
+ int _field1D8;
+ int _field1DC;
+ int _field1E0;
+ int _field1E4;
+ int _field1E8;
+ int _field1EC;
+public:
+ CLASSDEF
+ CParrot();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PARROT_H */
diff --git a/engines/titanic/npcs/robot_controller.cpp b/engines/titanic/npcs/robot_controller.cpp
new file mode 100644
index 0000000000..c6ef4222ef
--- /dev/null
+++ b/engines/titanic/npcs/robot_controller.cpp
@@ -0,0 +1,44 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/npcs/robot_controller.h"
+
+namespace Titanic {
+
+CRobotController::CRobotController() : CGameObject(), _string1("BellBot") {
+}
+
+void CRobotController::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string1, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CRobotController::load(SimpleFile *file) {
+ file->readNumber();
+ _string1 = file->readString();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/npcs/robot_controller.h b/engines/titanic/npcs/robot_controller.h
new file mode 100644
index 0000000000..998453eb62
--- /dev/null
+++ b/engines/titanic/npcs/robot_controller.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ROBOT_CONTROLLER_H
+#define TITANIC_ROBOT_CONTROLLER_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CRobotController : public CGameObject {
+protected:
+ CString _string1;
+public:
+ CLASSDEF
+ CRobotController();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ROBOT_CONTROLLER_H */
diff --git a/engines/titanic/npcs/starlings.cpp b/engines/titanic/npcs/starlings.cpp
new file mode 100644
index 0000000000..dcb9fbda81
--- /dev/null
+++ b/engines/titanic/npcs/starlings.cpp
@@ -0,0 +1,46 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/npcs/starlings.h"
+
+namespace Titanic {
+
+int CStarlings::_v1;
+
+CStarlings::CStarlings() : CCharacter() {
+}
+
+void CStarlings::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_v1, indent);
+
+ CCharacter::save(file, indent);
+}
+
+void CStarlings::load(SimpleFile *file) {
+ file->readNumber();
+ _v1 = file->readNumber();
+
+ CCharacter::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/npcs/starlings.h b/engines/titanic/npcs/starlings.h
new file mode 100644
index 0000000000..f7b144273c
--- /dev/null
+++ b/engines/titanic/npcs/starlings.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STARLINGS_H
+#define TITANIC_STARLINGS_H
+
+#include "titanic/npcs/character.h"
+
+namespace Titanic {
+
+class CStarlings : public CCharacter {
+private:
+ static int _v1;
+public:
+ CLASSDEF
+ CStarlings();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STARLING_H */
diff --git a/engines/titanic/npcs/succubus.cpp b/engines/titanic/npcs/succubus.cpp
new file mode 100644
index 0000000000..7570338274
--- /dev/null
+++ b/engines/titanic/npcs/succubus.cpp
@@ -0,0 +1,215 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/npcs/succubus.h"
+
+namespace Titanic {
+
+int CSuccUBus::_v0;
+int CSuccUBus::_v1;
+int CSuccUBus::_v2;
+int CSuccUBus::_v3;
+int CSuccUBus::_v4;
+
+CSuccUBus::CSuccUBus() : CTrueTalkNPC() {
+ _field108 = -1;
+ _field10C = -1;
+ _field110 = -1;
+ _field114 = -1;
+ _field118 = 0x44;
+ _field11C = 0xA8;
+ _field120 = 0xA8;
+ _field124 = 0xF8;
+ _field128 = 0;
+ _field12C = 0x0E;
+ _field130 = 0x0E;
+ _field134 = 27;
+ _field138 = 40;
+ _field13C = 0x44;
+ _field140 = 1;
+ _field144 = 0;
+ _field148 = 0;
+ _field14C = 0;
+ _field150 = 0xE0;
+ _field154 = 0;
+ _field158 = 0;
+ _field15C = 0;
+ _string2 = "NULL";
+ _field16C = 28;
+ _field170 = 40;
+ _field174 = 82;
+ _field178 = 284;
+ _field17C = 148;
+ _field180 = 339;
+ _field184 = 15;
+ _field188 = 0;
+ _field18C = 0;
+ _field190 = 0;
+ _field194 = 240;
+ _field198 = 340;
+ _field19C = 0;
+ _field1A0 = -1;
+ _field1A4 = 0;
+ _field1A8 = 0;
+ _field1AC = 0;
+ _field1B0 = 0;
+ _field1B4 = 303;
+ _field1B8 = 312;
+ _field1BC = 313;
+ _field1C0 = 325;
+ _field1C4 = 326;
+ _field1C8 = 347;
+ _field1CC = 348;
+ _field1D0 = 375;
+ _field1D4 = 1;
+ _field1D8 = 0;
+}
+
+void CSuccUBus::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+
+ file->writeNumberLine(_v0, indent);
+ file->writeNumberLine(_field108, indent);
+ file->writeNumberLine(_field10C, indent);
+ file->writeNumberLine(_field110, indent);
+ file->writeNumberLine(_field114, indent);
+ file->writeNumberLine(_field118, indent);
+ file->writeNumberLine(_field11C, indent);
+ file->writeNumberLine(_field120, indent);
+ file->writeNumberLine(_field124, indent);
+ file->writeNumberLine(_field128, indent);
+ file->writeNumberLine(_field12C, indent);
+ file->writeNumberLine(_field130, indent);
+ file->writeNumberLine(_field134, indent);
+ file->writeNumberLine(_field138, indent);
+ file->writeNumberLine(_field13C, indent);
+ file->writeNumberLine(_field140, indent);
+
+ file->writeNumberLine(_v2, indent);
+ file->writeNumberLine(_field148, indent);
+ file->writeNumberLine(_field14C, indent);
+ file->writeNumberLine(_field150, indent);
+ file->writeNumberLine(_field154, indent);
+ file->writeNumberLine(_field158, indent);
+ file->writeNumberLine(_field15C, indent);
+
+ file->writeQuotedLine(_string2, indent);
+ file->writeNumberLine(_field16C, indent);
+ file->writeNumberLine(_field170, indent);
+ file->writeNumberLine(_field174, indent);
+ file->writeNumberLine(_field178, indent);
+ file->writeNumberLine(_field17C, indent);
+ file->writeNumberLine(_field180, indent);
+ file->writeNumberLine(_field184, indent);
+ file->writeNumberLine(_field188, indent);
+ file->writeNumberLine(_field18C, indent);
+ file->writeNumberLine(_field190, indent);
+ file->writeNumberLine(_field194, indent);
+ file->writeNumberLine(_field198, indent);
+ file->writeNumberLine(_field19C, indent);
+ file->writeNumberLine(_field1A0, indent);
+ file->writeNumberLine(_field1A4, indent);
+ file->writeNumberLine(_field1A8, indent);
+ file->writeNumberLine(_field1AC, indent);
+ file->writeNumberLine(_field1B0, indent);
+ file->writeNumberLine(_field1B4, indent);
+ file->writeNumberLine(_field1B8, indent);
+ file->writeNumberLine(_field1BC, indent);
+ file->writeNumberLine(_field1C0, indent);
+ file->writeNumberLine(_field1C4, indent);
+ file->writeNumberLine(_field1C8, indent);
+ file->writeNumberLine(_field1CC, indent);
+ file->writeNumberLine(_field1D0, indent);
+ file->writeNumberLine(_field1D4, indent);
+
+ file->writeNumberLine(_v3, indent);
+ file->writeNumberLine(_field1D8, indent);
+ file->writeNumberLine(_field104, indent);
+
+ CTrueTalkNPC::save(file, indent);
+}
+
+void CSuccUBus::load(SimpleFile *file) {
+ file->readNumber();
+
+ _v0 = file->readNumber();
+ _field108 = file->readNumber();
+ _field10C = file->readNumber();
+ _field110 = file->readNumber();
+ _field114 = file->readNumber();
+ _field118 = file->readNumber();
+ _field11C = file->readNumber();
+ _field120 = file->readNumber();
+ _field124 = file->readNumber();
+ _field128 = file->readNumber();
+ _field12C = file->readNumber();
+ _field130 = file->readNumber();
+ _field134 = file->readNumber();
+ _field138 = file->readNumber();
+ _field13C = file->readNumber();
+ _field140 = file->readNumber();
+
+ _v2 = file->readNumber();
+ _field148 = file->readNumber();
+ _field14C = file->readNumber();
+ _field150 = file->readNumber();
+ _field154 = file->readNumber();
+ _field158 = file->readNumber();
+ _field15C = file->readNumber();
+
+ _string2 = file->readString();
+ _field16C = file->readNumber();
+ _field170 = file->readNumber();
+ _field174 = file->readNumber();
+ _field178 = file->readNumber();
+ _field17C = file->readNumber();
+ _field180 = file->readNumber();
+ _field184 = file->readNumber();
+ _field188 = file->readNumber();
+ _field18C = file->readNumber();
+ _field190 = file->readNumber();
+ _field194 = file->readNumber();
+ _field198 = file->readNumber();
+ _field19C = file->readNumber();
+ _field1A0 = file->readNumber();
+ _field1A4 = file->readNumber();
+ _field1A8 = file->readNumber();
+ _field1AC = file->readNumber();
+ _field1B0 = file->readNumber();
+ _field1B4 = file->readNumber();
+ _field1B8 = file->readNumber();
+ _field1BC = file->readNumber();
+ _field1C0 = file->readNumber();
+ _field1C4 = file->readNumber();
+ _field1C8 = file->readNumber();
+ _field1CC = file->readNumber();
+ _field1D0 = file->readNumber();
+ _field1D4 = file->readNumber();
+
+ _v3 = file->readNumber();
+ _field1D8 = file->readNumber();
+ _field104 = file->readNumber();
+
+ CTrueTalkNPC::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/npcs/succubus.h b/engines/titanic/npcs/succubus.h
new file mode 100644
index 0000000000..e46592caa1
--- /dev/null
+++ b/engines/titanic/npcs/succubus.h
@@ -0,0 +1,106 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SUCCUBUS_H
+#define TITANIC_SUCCUBUS_H
+
+#include "titanic/npcs/true_talk_npc.h"
+
+namespace Titanic {
+
+class CSuccUBus : public CTrueTalkNPC {
+private:
+ static int _v0;
+ static int _v1;
+ static int _v2;
+ static int _v3;
+ static int _v4;
+private:
+ int _field108;
+ int _field10C;
+ int _field110;
+ int _field114;
+ int _field118;
+ int _field11C;
+ int _field120;
+ int _field124;
+ int _field128;
+ int _field12C;
+ int _field130;
+ int _field134;
+ int _field138;
+ int _field13C;
+ int _field140;
+ int _field144;
+ int _field148;
+ int _field14C;
+ int _field150;
+ int _field154;
+ int _field158;
+ int _field15C;
+ CString _string2;
+ int _field16C;
+ int _field170;
+ int _field174;
+ int _field178;
+ int _field17C;
+ int _field180;
+ int _field184;
+ int _field188;
+ int _field18C;
+ int _field190;
+ int _field194;
+ int _field198;
+ int _field19C;
+ int _field1A0;
+ int _field1A4;
+ int _field1A8;
+ int _field1AC;
+ int _field1B0;
+ int _field1B4;
+ int _field1B8;
+ int _field1BC;
+ int _field1C0;
+ int _field1C4;
+ int _field1C8;
+ int _field1CC;
+ int _field1D0;
+ int _field1D4;
+ int _field1D8;
+public:
+ CLASSDEF
+ CSuccUBus();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SUCCUBUS_H */
diff --git a/engines/titanic/npcs/summon_bots.cpp b/engines/titanic/npcs/summon_bots.cpp
new file mode 100644
index 0000000000..661b3f0490
--- /dev/null
+++ b/engines/titanic/npcs/summon_bots.cpp
@@ -0,0 +1,49 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/npcs/summon_bots.h"
+
+namespace Titanic {
+
+CSummonBots::CSummonBots() : CRobotController(), _string2("NULL"),
+ _fieldC8(0), _fieldCC(0) {
+}
+
+void CSummonBots::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldC8, indent);
+ file->writeNumberLine(_fieldCC, indent);
+ file->writeQuotedLine(_string2, indent);
+
+ CRobotController::save(file, indent);
+}
+
+void CSummonBots::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldC8 = file->readNumber();
+ _fieldCC = file->readNumber();
+ _string2 = file->readString();
+
+ CRobotController::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/npcs/summon_bots.h b/engines/titanic/npcs/summon_bots.h
new file mode 100644
index 0000000000..80aef73486
--- /dev/null
+++ b/engines/titanic/npcs/summon_bots.h
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SUMMON_BOTS_H
+#define TITANIC_SUMMON_BOTS_H
+
+#include "titanic/npcs/robot_controller.h"
+
+namespace Titanic {
+
+class CSummonBots : public CRobotController {
+protected:
+ CString _string2;
+ int _fieldC8;
+ int _fieldCC;
+public:
+ CLASSDEF
+ CSummonBots();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SUMMON_BOTS_H */
diff --git a/engines/titanic/npcs/titania.cpp b/engines/titanic/npcs/titania.cpp
new file mode 100644
index 0000000000..3a71d7fea1
--- /dev/null
+++ b/engines/titanic/npcs/titania.cpp
@@ -0,0 +1,77 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/npcs/titania.h"
+
+namespace Titanic {
+
+CTitania::CTitania() : CCharacter() {
+ _fieldD4 = 0;
+ _fieldD8 = 0;
+ _fieldE0 = 0;
+ _fieldE4 = 0;
+ _fieldE8 = 0;
+ _fieldEC = 0;
+ _fieldF0 = 0;
+ _fieldF4 = 0;
+ _fieldF8 = 0;
+ _fieldFC = 0;
+ _field100 = 1;
+}
+
+void CTitania::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldD4, indent);
+ file->writeNumberLine(_fieldD8, indent);
+ file->writeNumberLine(_fieldDC, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_fieldE8, indent);
+ file->writeNumberLine(_fieldEC, indent);
+ file->writeNumberLine(_fieldF0, indent);
+ file->writeNumberLine(_fieldF4, indent);
+ file->writeNumberLine(_fieldF8, indent);
+ file->writeNumberLine(_fieldFC, indent);
+ file->writeNumberLine(_field100, indent);
+
+ CCharacter::save(file, indent);
+}
+
+void CTitania::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldD4 = file->readNumber();
+ _fieldD8 = file->readNumber();
+ _fieldDC = file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _fieldE8 = file->readNumber();
+ _fieldEC = file->readNumber();
+ _fieldF0 = file->readNumber();
+ _fieldF4 = file->readNumber();
+ _fieldF8 = file->readNumber();
+ _fieldFC = file->readNumber();
+ _field100 = file->readNumber();
+
+ CCharacter::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/npcs/titania.h b/engines/titanic/npcs/titania.h
new file mode 100644
index 0000000000..4c4c81267b
--- /dev/null
+++ b/engines/titanic/npcs/titania.h
@@ -0,0 +1,61 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TITANIA_H
+#define TITANIC_TITANIA_H
+
+#include "titanic/npcs/character.h"
+
+namespace Titanic {
+
+class CTitania : public CCharacter {
+private:
+ int _fieldD4;
+ int _fieldD8;
+ int _fieldDC;
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+ int _fieldEC;
+ int _fieldF0;
+ int _fieldF4;
+ int _fieldF8;
+ int _fieldFC;
+ int _field100;
+public:
+ CLASSDEF
+ CTitania();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TITANIA_H */
diff --git a/engines/titanic/npcs/true_talk_npc.cpp b/engines/titanic/npcs/true_talk_npc.cpp
new file mode 100644
index 0000000000..924ea5657c
--- /dev/null
+++ b/engines/titanic/npcs/true_talk_npc.cpp
@@ -0,0 +1,66 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/npcs/true_talk_npc.h"
+
+namespace Titanic {
+
+CTrueTalkNPC::CTrueTalkNPC() : _string1("z451.dlg"),
+ _fieldD4(0x11170), _fieldE4(0), _fieldE8(0), _fieldEC(0), _fieldF0(0),
+ _fieldF4(0), _fieldF8(0), _fieldFC(0), _field100(0), _field104(0) {
+}
+
+void CTrueTalkNPC::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldD4, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_fieldE8, indent);
+ file->writeNumberLine(_fieldEC, indent);
+ file->writeNumberLine(_fieldF0, indent);
+ file->writeNumberLine(_fieldF4, indent);
+ file->writeNumberLine(_fieldF8, indent);
+ file->writeNumberLine(_fieldFC, indent);
+ file->writeNumberLine(_field100, indent);
+ file->writeNumberLine(_field104, indent);
+
+ CCharacter::save(file, indent);
+}
+
+void CTrueTalkNPC::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldD4 = file->readNumber();
+ _string1 = file->readString();
+ _fieldE4 = file->readNumber();
+ _fieldE8 = file->readNumber();
+ _fieldEC = file->readNumber();
+ _fieldF0 = file->readNumber();
+ _fieldF4 = file->readNumber();
+ _fieldF8 = file->readNumber();
+ _fieldFC = file->readNumber();
+ _field100 = file->readNumber();
+ _field104 = file->readNumber();
+
+ CCharacter::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/npcs/true_talk_npc.h b/engines/titanic/npcs/true_talk_npc.h
new file mode 100644
index 0000000000..9546f18e0c
--- /dev/null
+++ b/engines/titanic/npcs/true_talk_npc.h
@@ -0,0 +1,60 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TRUE_TALK_NPC_H
+#define TITANIC_TRUE_TALK_NPC_H
+
+#include "titanic/npcs/character.h"
+
+namespace Titanic {
+
+class CTrueTalkNPC : public CCharacter {
+protected:
+ int _fieldD4;
+ CString _string1;
+ int _fieldE4;
+ int _fieldE8;
+ int _fieldEC;
+ int _fieldF0;
+ int _fieldF4;
+ int _fieldF8;
+ int _fieldFC;
+ int _field100;
+ int _field104;
+public:
+ CLASSDEF
+ CTrueTalkNPC();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TRUE_TALK_NPC_H */
diff --git a/engines/titanic/pet_control/pet_control.cpp b/engines/titanic/pet_control/pet_control.cpp
new file mode 100644
index 0000000000..f5498887e3
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control.cpp
@@ -0,0 +1,96 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/pet_control/pet_control.h"
+#include "titanic/game_manager.h"
+#include "titanic/game_state.h"
+
+namespace Titanic {
+
+void CPetControl::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(0, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeQuotedLine(_string2, indent);
+
+ saveSubObjects(file, indent);
+ CGameObject::save(file, indent);
+}
+
+void CPetControl::load(SimpleFile *file) {
+ int val = file->readNumber();
+ isValid();
+
+ if (!val) {
+ _fieldBC = file->readNumber();
+ _string1 = file->readString();
+ _string2 = file->readString();
+
+ loadSubObjects(file, 0);
+ }
+
+ CGameObject::load(file);
+}
+
+bool CPetControl::isValid() const {
+ return _sub1.isValid() && _sub2.isValid()
+ && _sub3.isValid() && _sub4.isValid()
+ && _sub5.isValid() && _sub6.isValid()
+ && _sub7.isValid() && _sub8.isValid();
+}
+
+void CPetControl::loadSubObjects(SimpleFile *file, int param) {
+ _sub1.load(file, param);
+ _sub2.load(file, param);
+ _sub3.load(file, param);
+ _sub4.load(file, param);
+ _sub5.load(file, param);
+ _sub6.load(file, param);
+ _sub7.load(file, param);
+ _sub8.load(file, param);
+}
+
+void CPetControl::saveSubObjects(SimpleFile *file, int indent) const {
+ _sub1.save(file, indent);
+ _sub2.save(file, indent);
+ _sub3.save(file, indent);
+ _sub4.save(file, indent);
+ _sub5.save(file, indent);
+ _sub6.save(file, indent);
+ _sub7.save(file, indent);
+ _sub8.save(file, indent);
+}
+
+void CPetControl::postLoad() {
+ warning("TODO: CPetControl::postLoad");
+}
+
+void CPetControl::enterNode(CNodeItem *node) {
+ getGameManager()->_gameState.enterNode();
+}
+
+void CPetControl::enterRoom(CRoomItem *room) {
+ _sub2.enterRoom(room);
+ _sub3.enterRoom(room);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/pet_control/pet_control.h b/engines/titanic/pet_control/pet_control.h
new file mode 100644
index 0000000000..f1e4bb2a10
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control.h
@@ -0,0 +1,99 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_CONTROL_H
+#define TITANIC_PET_CONTROL_H
+
+#include "titanic/core/game_object.h"
+#include "titanic/core/node_item.h"
+#include "titanic/core/room_item.h"
+#include "titanic/pet_control/pet_control_sub1.h"
+#include "titanic/pet_control/pet_control_sub2.h"
+#include "titanic/pet_control/pet_control_sub3.h"
+#include "titanic/pet_control/pet_control_sub4.h"
+#include "titanic/pet_control/pet_control_sub5.h"
+#include "titanic/pet_control/pet_control_sub6.h"
+#include "titanic/pet_control/pet_control_sub7.h"
+#include "titanic/pet_control/pet_control_sub8.h"
+
+namespace Titanic {
+
+class CPetControl : public CGameObject {
+private:
+ int _fieldBC;
+ int _fieldC0;
+ int _fieldC4;
+ int _fieldC8;
+ CPetControlSub1 _sub1;
+ CPetControlSub2 _sub2;
+ CPetControlSub3 _sub3;
+ CPetControlSub4 _sub4;
+ CPetControlSub5 _sub5;
+ CPetControlSub6 _sub6;
+ CPetControlSub7 _sub7;
+ CPetControlSub8 _sub8;
+ int _field1384;
+ CString _string1;
+ int _field1394;
+ CString _string2;
+ int _field13A4;
+private:
+ /**
+ * Returns true if the control is in a valid state
+ */
+ bool isValid() const;
+
+ void loadSubObjects(SimpleFile *file, int param);
+
+ void saveSubObjects(SimpleFile *file, int indent) const;
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+
+ /**
+ * Called after loading a game has finished
+ */
+ void postLoad();
+
+ /**
+ * Called when a new node is entered
+ */
+ void enterNode(CNodeItem *node);
+
+ /**
+ * Called when a new room is entered
+ */
+ void enterRoom(CRoomItem *room);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_CONTROL_H */
diff --git a/engines/titanic/pet_control/pet_control_list_item.cpp b/engines/titanic/pet_control/pet_control_list_item.cpp
new file mode 100644
index 0000000000..ea678754f5
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_list_item.cpp
@@ -0,0 +1,27 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/pet_control/pet_control_list_item.h"
+
+namespace Titanic {
+
+} // End of namespace Titanic
diff --git a/engines/titanic/pet_control/pet_control_list_item.h b/engines/titanic/pet_control/pet_control_list_item.h
new file mode 100644
index 0000000000..64808c0309
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_list_item.h
@@ -0,0 +1,42 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_CONTROL_LIST_ITEM_H
+#define TITANIC_PET_CONTROL_LIST_ITEM_H
+
+#include "titanic/core/list.h"
+#include "titanic/pet_control/pet_val.h"
+
+namespace Titanic {
+
+class CPetControlListItem : public ListItem {
+protected:
+ CPetVal _val;
+ int _field30;
+public:
+ CPetControlListItem() : _field30(0) {}
+
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_CONTROL_LIST_ITEM_H */
diff --git a/engines/titanic/pet_control/pet_control_list_item2.cpp b/engines/titanic/pet_control/pet_control_list_item2.cpp
new file mode 100644
index 0000000000..82b59929d2
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_list_item2.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/pet_control/pet_control_list_item2.h"
+
+namespace Titanic {
+
+CPetControlListItem2::CPetControlListItem2() :
+ _field34(0), _field38(0), _field3C(0), _field40(0),
+ _field44(0), _field48(0), _field4C(0), _field50(0),
+ _field54(0), _field58(0), _field5C(0) {
+}
+
+void CPetControlListItem2::setField34(int val) {
+ _field34 = val;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/pet_control/pet_control_list_item2.h b/engines/titanic/pet_control/pet_control_list_item2.h
new file mode 100644
index 0000000000..a7f28fa12d
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_list_item2.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_CONTROL_LIST_ITEM2_H
+#define TITANIC_PET_CONTROL_LIST_ITEM2_H
+
+#include "titanic/pet_control/pet_control_list_item.h"
+
+namespace Titanic {
+
+class CPetControlListItem2 : public CPetControlListItem {
+protected:
+ int _field34;
+ int _field38;
+ int _field3C;
+ int _field40;
+ int _field44;
+ int _field48;
+ int _field4C;
+ int _field50;
+ int _field54;
+ int _field58;
+ int _field5C;
+public:
+ CPetControlListItem2();
+
+ void setField34(int val);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_CONTROL_LIST_ITEM2_H */
diff --git a/engines/titanic/pet_control/pet_control_sub1.cpp b/engines/titanic/pet_control/pet_control_sub1.cpp
new file mode 100644
index 0000000000..0daae0637d
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_sub1.cpp
@@ -0,0 +1,42 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/pet_control/pet_control_sub1.h"
+
+namespace Titanic {
+
+CPetControlSub1::CPetControlSub1() : _field414(0), _field418(0) {
+}
+
+void CPetControlSub1::save(SimpleFile *file, int indent) const {
+
+}
+
+void CPetControlSub1::load(SimpleFile *file, int param) {
+ _sub2.load(file, param);
+ _sub1.load(file, param);
+
+ for (int idx = 0; idx < 3; ++idx)
+ _valArray3[idx] = file->readNumber();
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/pet_control/pet_control_sub1.h b/engines/titanic/pet_control/pet_control_sub1.h
new file mode 100644
index 0000000000..5d0edb6c9f
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_sub1.h
@@ -0,0 +1,69 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_CONTROL_SUB1_H
+#define TITANIC_PET_CONTROL_SUB1_H
+
+#include "titanic/pet_control/pet_control_sub_base.h"
+#include "titanic/pet_control/pet_control_sub12.h"
+#include "titanic/pet_control/pet_val.h"
+
+namespace Titanic {
+
+class CPetControlSub1 : public CPetControlSubBase {
+private:
+ CPetVal _val1;
+ CPetVal _val2;
+ CPetVal _val3;
+ CPetVal _valArray1[3];
+ CPetVal _val4;
+ CPetVal _val5;
+ CPetVal _val6;
+ CPetControlSubData _field14C;
+ CPetVal _val7;
+ CPetVal _val8;
+ CPetVal _val9;
+ CPetVal _valArray2[9];
+ int _field30C;
+ CPetControlSub12 _sub1;
+ CPetControlSub12 _sub2;
+ int _valArray3[3];
+ int _field414;
+ int _field418;
+ CString _string1;
+public:
+ CPetControlSub1();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file, int param);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_CONTROL_SUB1_H */
diff --git a/engines/titanic/pet_control/pet_control_sub10.cpp b/engines/titanic/pet_control/pet_control_sub10.cpp
new file mode 100644
index 0000000000..226ac4ec8b
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_sub10.cpp
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/textconsole.h"
+#include "titanic/pet_control/pet_control_sub10.h"
+
+namespace Titanic {
+
+CPetControlSub10::CPetControlSub10() : _field10(0), _field14(7),
+ _field18(-1), _field1C(-1), _field20(0), _field24(0) {
+}
+
+void CPetControlSub10::proc8() {
+ error("TODO");
+}
+
+void CPetControlSub10::proc9() {
+ error("TODO");
+}
+
+void CPetControlSub10::proc10() {
+ error("TODO");
+}
+
+void CPetControlSub10::proc11() {
+ error("TODO");
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/pet_control/pet_control_sub10.h b/engines/titanic/pet_control/pet_control_sub10.h
new file mode 100644
index 0000000000..f8534d7089
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_sub10.h
@@ -0,0 +1,54 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_CONTROL_SUB10_H
+#define TITANIC_PET_CONTROL_SUB10_H
+
+#include "titanic/core/list.h"
+#include "titanic/pet_control/pet_control_sub10.h"
+#include "titanic/pet_control/pet_control_list_item.h"
+
+namespace Titanic {
+
+class CPetControlSub10 : public List<CPetControlListItem> {
+protected:
+ int _field10;
+ int _field14;
+ int _field18;
+ int _field1C;
+ int _field20;
+ int _field24;
+ CPetVal _val1;
+ CPetVal _val2;
+ CPetVal _val3;
+public:
+ CPetControlSub10();
+
+ virtual void proc8();
+ virtual void proc9();
+ virtual void proc10();
+ virtual void proc11();
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_CONTROL_SUB10_H */
diff --git a/engines/titanic/pet_control/pet_control_sub11.cpp b/engines/titanic/pet_control/pet_control_sub11.cpp
new file mode 100644
index 0000000000..5148d1267a
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_sub11.cpp
@@ -0,0 +1,27 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/pet_control/pet_control_sub11.h"
+
+namespace Titanic {
+
+} // End of namespace Titanic
diff --git a/engines/titanic/pet_control/pet_control_sub11.h b/engines/titanic/pet_control/pet_control_sub11.h
new file mode 100644
index 0000000000..ebad13bff5
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_sub11.h
@@ -0,0 +1,36 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_CONTROL_SUB11_H
+#define TITANIC_PET_CONTROL_SUB11_H
+
+#include "titanic/pet_control/pet_control_sub10.h"
+
+namespace Titanic {
+
+class CPetControlSub11 : public CPetControlSub10 {
+public:
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_CONTROL_SUB11_H */
diff --git a/engines/titanic/pet_control/pet_control_sub12.cpp b/engines/titanic/pet_control/pet_control_sub12.cpp
new file mode 100644
index 0000000000..616d6920ae
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_sub12.cpp
@@ -0,0 +1,80 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software(0), you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation(0), either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY(0), without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program(0), if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/pet_control/pet_control_sub12.h"
+
+namespace Titanic {
+
+CPetControlSub12::CPetControlSub12(int count) :
+ _field18(0), _field1C(0), _field20(0), _field24(0),
+ _field28(0), _field30(-1), _field34(0), _field38(-1),
+ _field3C(0), _field40(0), _field44(0), _field48(0xff),
+ _field4C(0xff), _field50(0xff), _field54(0), _field58(0),
+ _field5C(200), _field60(0), _field64(0), _field68(0),
+ _field6C(0), _field70(1), _field74(0), _field78(0),
+ _field7C(0) {
+ setupArrays(count);
+}
+
+void CPetControlSub12::setupArrays(int count) {
+ freeArrays();
+ if (count < 10 || count > 60)
+ count = 10;
+ _array.resize(count);
+}
+
+void CPetControlSub12::freeArrays() {
+ _array.clear();
+}
+
+void CPetControlSub12::load(SimpleFile *file, int param) {
+ if (!param) {
+ int var1 = file->readNumber();
+ int var2 = file->readNumber();
+ uint count = file->readNumber();
+ _field1C = file->readNumber();
+ _field20 = file->readNumber();
+ _field24 = file->readNumber();
+ _field28 = file->readNumber();
+ _field3C = file->readNumber();
+ _field40 = file->readNumber();
+ _field44 = file->readNumber();
+ _field48 = file->readNumber();
+ _field4C = file->readNumber();
+ _field50 = file->readNumber();
+ _field54 = file->readNumber();
+ _field58 = file->readNumber();
+ _field5C = file->readNumber();
+ _field70 = file->readNumber();
+ _field74 = file->readNumber();
+
+ assert(_array.size() >= count);
+ for (uint idx = 0; idx < count; ++idx) {
+ _array[idx]._string1 = file->readString();
+ _array[idx]._string2 = file->readString();
+ _array[idx]._string3 = file->readString();
+ }
+ }
+}
+
+
+} // End of namespace Titanic
diff --git a/engines/titanic/pet_control/pet_control_sub12.h b/engines/titanic/pet_control/pet_control_sub12.h
new file mode 100644
index 0000000000..5c0f0b397c
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_sub12.h
@@ -0,0 +1,76 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_CONTROL_SUB12_H
+#define TITANIC_PET_CONTROL_SUB12_H
+
+#include "titanic/simple_file.h"
+
+namespace Titanic {
+
+class CPetControlSub12 {
+ struct ArrayEntry {
+ CString _string1;
+ CString _string2;
+ CString _string3;
+ };
+private:
+ Common::Array<ArrayEntry> _array;
+ CString _string1;
+ int _field18;
+ int _field1C;
+ int _field20;
+ int _field24;
+ int _field28;
+ int _field30;
+ int _field34;
+ int _field38;
+ int _field3C;
+ int _field40;
+ int _field44;
+ int _field48;
+ int _field4C;
+ int _field50;
+ int _field54;
+ int _field58;
+ int _field5C;
+ int _field60;
+ int _field64;
+ int _field68;
+ int _field6C;
+ int _field70;
+ int _field74;
+ int _field78;
+ int _field7C;
+private:
+ void setupArrays(int count);
+
+ void freeArrays();
+public:
+ CPetControlSub12(int count = 10);
+
+ void load(SimpleFile *file, int param);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_CONTROL_SUB12_H */
diff --git a/engines/titanic/pet_control/pet_control_sub2.cpp b/engines/titanic/pet_control/pet_control_sub2.cpp
new file mode 100644
index 0000000000..2e8b35e2f0
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_sub2.cpp
@@ -0,0 +1,59 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/pet_control/pet_control_sub2.h"
+
+namespace Titanic {
+
+CPetControlSub2::CPetControlSub2() :
+ _field100(0), _field104(0), _field108(0), _field10C(0),
+ _field110(0), _field114(0), _field118(0), _field11C(0),
+ _field1C0(0), _field1C4(0), _field1C8(0), _field1CC(0),
+ _field1D0(0), _field1D4(0) {
+}
+
+void CPetControlSub2::save(SimpleFile *file, int indent) const {
+
+}
+
+void CPetControlSub2::load(SimpleFile *file, int param) {
+ if (!param) {
+ int count = file->readNumber();
+
+ for (int idx = 0; idx < count; ++idx) {
+ int v1 = file->readNumber();
+ int v2 = file->readNumber();
+ warning("TODO: CPetControlSub2::load - %d,%d", v1, v2);
+ }
+
+ _listItem.setField34(file->readNumber());
+ file->readNumber();
+ _field1C0 = file->readNumber();
+ _field1C4 = file->readNumber();
+ _field1C8 = file->readNumber();
+ _field1CC = file->readNumber();
+ _field1D0 = file->readNumber();
+ _field1D4 = file->readNumber();
+ }
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/pet_control/pet_control_sub2.h b/engines/titanic/pet_control/pet_control_sub2.h
new file mode 100644
index 0000000000..d32b30aea0
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_sub2.h
@@ -0,0 +1,69 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_CONTROL_SUB2_H
+#define TITANIC_PET_CONTROL_SUB2_H
+
+#include "titanic/pet_control/pet_control_sub_base.h"
+#include "titanic/pet_control/pet_control_sub11.h"
+#include "titanic/pet_control/pet_control_sub12.h"
+#include "titanic/pet_control/pet_control_list_item2.h"
+
+namespace Titanic {
+
+class CPetControlSub2 : public CPetControlSubBase {
+private:
+ CPetControlSub11 _sub11;
+ CPetControlListItem2 _listItem;
+ int _field100;
+ int _field104;
+ int _field108;
+ int _field10C;
+ int _field110;
+ int _field114;
+ int _field118;
+ int _field11C;
+ CPetVal _val1;
+ CPetControlSub12 _sub12;
+ int _field1C0;
+ int _field1C4;
+ int _field1C8;
+ int _field1CC;
+ int _field1D0;
+ int _field1D4;
+public:
+ CPetControlSub2();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file, int param);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_CONTROL_SUB2_H */
diff --git a/engines/titanic/pet_control/pet_control_sub3.cpp b/engines/titanic/pet_control/pet_control_sub3.cpp
new file mode 100644
index 0000000000..d134b1bbc3
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_sub3.cpp
@@ -0,0 +1,27 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/pet_control/pet_control_sub3.h"
+
+namespace Titanic {
+
+} // End of namespace Titanic
diff --git a/engines/titanic/pet_control/pet_control_sub3.h b/engines/titanic/pet_control/pet_control_sub3.h
new file mode 100644
index 0000000000..aa53db5e00
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_sub3.h
@@ -0,0 +1,55 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_CONTROL_SUB3_H
+#define TITANIC_PET_CONTROL_SUB3_H
+
+#include "titanic/pet_control/pet_control_sub_base.h"
+#include "titanic/pet_control/pet_control_sub10.h"
+#include "titanic/pet_control/pet_control_sub12.h"
+#include "titanic/pet_control/pet_val.h"
+
+namespace Titanic {
+
+class CPetControlSub3 : public CPetControlSubBase {
+private:
+ CPetControlSub10 _sub10;
+ CPetVal _val1;
+ CPetVal _val2;
+ CPetVal _val3;
+ CPetVal _val4;
+ CPetVal _val5;
+ CPetVal _val6;
+ CPetVal _val7;
+ CPetVal _val8;
+ CPetVal _val9;
+ CPetVal _val10;
+ CPetVal _val11;
+ CPetControlSub12 _sub12;
+public:
+
+
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_CONTROL_SUB3_H */
diff --git a/engines/titanic/pet_control/pet_control_sub4.cpp b/engines/titanic/pet_control/pet_control_sub4.cpp
new file mode 100644
index 0000000000..041bf50fa6
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_sub4.cpp
@@ -0,0 +1,42 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/pet_control/pet_control_sub4.h"
+
+namespace Titanic {
+
+CPetControlSub4::CPetControlSub4() : _field28C(0),
+ _field290(0), _field294(0), _field298(0) {
+ for (int idx = 0; idx < 46; ++idx) {
+ _valArray1[idx] = _valArray2[idx] = 0;
+ }
+}
+
+void CPetControlSub4::save(SimpleFile *file, int indent) const {
+
+}
+
+void CPetControlSub4::load(SimpleFile *file, int param) {
+ _field298 = file->readNumber();
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/pet_control/pet_control_sub4.h b/engines/titanic/pet_control/pet_control_sub4.h
new file mode 100644
index 0000000000..18dbd7c1ae
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_sub4.h
@@ -0,0 +1,59 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_CONTROL_SUB4_H
+#define TITANIC_PET_CONTROL_SUB4_H
+
+#include "titanic/simple_file.h"
+#include "titanic/pet_control/pet_control_sub_base.h"
+#include "titanic/pet_control/pet_control_sub10.h"
+#include "titanic/pet_control/pet_control_sub12.h"
+
+namespace Titanic {
+
+class CPetControlSub4 : public CPetControlSubBase {
+private:
+ CPetControlSub12 _sub12;
+ CPetControlSub10 _sub10;
+ int _valArray1[46];
+ int _valArray2[46];
+ int _field28C;
+ int _field290;
+ int _field294;
+ int _field298;
+public:
+ CPetControlSub4();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file, int param);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_CONTROL_SUB4_H */
diff --git a/engines/titanic/pet_control/pet_control_sub5.cpp b/engines/titanic/pet_control/pet_control_sub5.cpp
new file mode 100644
index 0000000000..6a9b92e7b2
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_sub5.cpp
@@ -0,0 +1,43 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/pet_control/pet_control_sub5.h"
+
+namespace Titanic {
+
+CPetControlSub5::CPetControlSub5() :
+ _field98(0), _field9C(0), _fieldA0(0),
+ _field18C(0), _field20C(0), _field210(0) {
+}
+
+void CPetControlSub5::save(SimpleFile *file, int indent) const {
+
+}
+
+void CPetControlSub5::load(SimpleFile *file, int param) {
+ if (!param) {
+ _field20C = file->readNumber();
+ _field210 = file->readNumber();
+ }
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/pet_control/pet_control_sub5.h b/engines/titanic/pet_control/pet_control_sub5.h
new file mode 100644
index 0000000000..5ef1b26312
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_sub5.h
@@ -0,0 +1,63 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_CONTROL_SUB5_H
+#define TITANIC_PET_CONTROL_SUB5_H
+
+#include "titanic/pet_control/pet_control_sub_base.h"
+#include "titanic/pet_control/pet_control_sub12.h"
+#include "titanic/pet_control/pet_val.h"
+
+namespace Titanic {
+
+class CPetControlSub5 : public CPetControlSubBase {
+private:
+ CPetVal _val1;
+ CPetVal _val2;
+ CPetVal _val3;
+ CPetVal _val4;
+ int _field98;
+ int _field9C;
+ int _fieldA0;
+ CPetVal _valArray1[6];
+ CPetControlSubData _field17C;
+ int _field18C;
+ CPetControlSub12 _sub12;
+ int _field20C;
+ int _field210;
+public:
+ CPetControlSub5();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file, int param);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_CONTROL_SUB5_H */
diff --git a/engines/titanic/pet_control/pet_control_sub6.cpp b/engines/titanic/pet_control/pet_control_sub6.cpp
new file mode 100644
index 0000000000..d017e81d9e
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_sub6.cpp
@@ -0,0 +1,27 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/pet_control/pet_control_sub6.h"
+
+namespace Titanic {
+
+} // End of namespace Titanic
diff --git a/engines/titanic/pet_control/pet_control_sub6.h b/engines/titanic/pet_control/pet_control_sub6.h
new file mode 100644
index 0000000000..420da0c7ae
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_sub6.h
@@ -0,0 +1,42 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_CONTROL_SUB6_H
+#define TITANIC_PET_CONTROL_SUB6_H
+
+#include "titanic/pet_control/pet_control_sub_base.h"
+#include "titanic/pet_control/pet_control_sub10.h"
+#include "titanic/pet_control/pet_control_sub12.h"
+
+namespace Titanic {
+
+class CPetControlSub6 : public CPetControlSubBase {
+private:
+ CPetControlSub10 _sub10;
+ CPetControlSub10 _sub12;
+public:
+
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_CONTROL_SUB6_H */
diff --git a/engines/titanic/pet_control/pet_control_sub7.cpp b/engines/titanic/pet_control/pet_control_sub7.cpp
new file mode 100644
index 0000000000..f57454da67
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_sub7.cpp
@@ -0,0 +1,27 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/pet_control/pet_control_sub7.h"
+
+namespace Titanic {
+
+} // End of namespace Titanic
diff --git a/engines/titanic/pet_control/pet_control_sub7.h b/engines/titanic/pet_control/pet_control_sub7.h
new file mode 100644
index 0000000000..f4a1decf12
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_sub7.h
@@ -0,0 +1,41 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_CONTROL_SUB7_H
+#define TITANIC_PET_CONTROL_SUB7_H
+
+#include "titanic/pet_control/pet_control_sub_base.h"
+#include "titanic/pet_control/pet_control_sub12.h"
+
+namespace Titanic {
+
+class CPetControlSub7 : public CPetControlSubBase {
+private:
+ CPetControlSub12 _sub1;
+ CPetControlSub12 _sub2;
+public:
+
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_CONTROL_SUB7_H */
diff --git a/engines/titanic/pet_control/pet_control_sub8.cpp b/engines/titanic/pet_control/pet_control_sub8.cpp
new file mode 100644
index 0000000000..18c68c7ddb
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_sub8.cpp
@@ -0,0 +1,36 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/pet_control/pet_control_sub8.h"
+
+namespace Titanic {
+
+static const int INDEXES[6] = { 1, 0, 2, 3, 4, 5 };
+
+int CPetControlSub8::_indexes[6];
+
+CPetControlSub8::CPetControlSub8() {
+ for (int idx = 0; idx < 6; ++idx)
+ _indexes[INDEXES[idx]] = idx;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/pet_control/pet_control_sub8.h b/engines/titanic/pet_control/pet_control_sub8.h
new file mode 100644
index 0000000000..115e6d508f
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_sub8.h
@@ -0,0 +1,49 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_CONTROL_SUB8_H
+#define TITANIC_PET_CONTROL_SUB8_H
+
+#include "titanic/pet_control/pet_control_sub_base.h"
+#include "titanic/pet_control/pet_val.h"
+
+namespace Titanic {
+
+class CPetControlSub8 : public CPetControlSubBase {
+private:
+ static int _indexes[6];
+
+ CPetVal _valArray1[6];
+ CPetVal _valArray2[6];
+ CPetVal _val1;
+ CPetVal _val2;
+ CPetVal _val3;
+ CPetVal _val4;
+ CPetVal _valArray3[7];
+public:
+ CPetControlSub8();
+
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_CONTROL_SUB8_H */
diff --git a/engines/titanic/pet_control/pet_control_sub_base.cpp b/engines/titanic/pet_control/pet_control_sub_base.cpp
new file mode 100644
index 0000000000..05a3425b5f
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_sub_base.cpp
@@ -0,0 +1,60 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/textconsole.h"
+#include "titanic/pet_control/pet_control_sub_base.h"
+
+namespace Titanic {
+
+void CPetControlSubBase::proc4() {
+ error("TODO");
+}
+
+void CPetControlSubBase::proc16() {
+ error("TODO");
+}
+
+void CPetControlSubBase::proc25() {
+ error("TODO");
+}
+
+void CPetControlSubBase::proc27() {
+ error("TODO");
+}
+
+void CPetControlSubBase::proc28() {
+ error("TODO");
+}
+
+void CPetControlSubBase::proc29() {
+ error("TODO");
+}
+
+void CPetControlSubBase::proc30() {
+ error("TODO");
+}
+
+void CPetControlSubBase::proc31() {
+ error("TODO");
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/pet_control/pet_control_sub_base.h b/engines/titanic/pet_control/pet_control_sub_base.h
new file mode 100644
index 0000000000..f95e1a98f5
--- /dev/null
+++ b/engines/titanic/pet_control/pet_control_sub_base.h
@@ -0,0 +1,109 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_CONTROL_SUB_BASE_H
+#define TITANIC_PET_CONTROL_SUB_BASE_H
+
+#include "titanic/simple_file.h"
+#include "titanic/core/room_item.h"
+
+namespace Titanic {
+
+struct CPetControlSubData {
+ int _field0;
+ int _field4;
+ int _field8;
+ int _fieldC;
+
+ CPetControlSubData() : _field0(0), _field4(0),
+ _field8(0), _fieldC(0) {}
+};
+
+class CPetControlSubBase {
+protected:
+ int _field4;
+public:
+ CPetControlSubBase() : _field4(0) {}
+ virtual ~CPetControlSubBase() {}
+
+ virtual int proc1() { return 0; }
+ virtual int proc2() { return 0; }
+ virtual void proc3() {}
+ virtual void proc4();
+ virtual void proc5() {}
+ virtual int proc6() { return 0; }
+ virtual int proc7() { return 0; }
+ virtual int proc8() { return 0; }
+ virtual int proc9() { return 0; }
+ virtual int proc10() { return 0; }
+ virtual int proc11() { return 0; }
+ virtual int proc12() { return 0; }
+ virtual int proc13() { return 0; }
+ virtual int proc14() { return 0; }
+ virtual int proc15() { return 0; }
+ virtual void proc16();
+
+ /**
+ * Returns true if the object is in a valid state
+ */
+ virtual bool isValid() const { return false; }
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file, int param) {}
+
+ virtual void proc19() {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const {}
+
+ virtual void proc21() {}
+ virtual void proc22() {}
+ virtual void proc23() {}
+
+ /**
+ * Called when a new room is entered
+ */
+ virtual void enterRoom(CRoomItem *room) {}
+
+ virtual void proc25();
+ virtual int proc26() { return 0; }
+ virtual void proc27();
+ virtual void proc28();
+ virtual void proc29();
+ virtual void proc30();
+ virtual void proc31();
+ virtual void proc32() {}
+ virtual void proc33() {}
+ virtual void proc34() {}
+ virtual void proc35() {}
+ virtual void proc36() {}
+ virtual void proc37() {}
+ virtual void proc38() {}
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_CONTROL_SUB_BASE_H */
diff --git a/engines/titanic/pet_control/pet_val.cpp b/engines/titanic/pet_control/pet_val.cpp
new file mode 100644
index 0000000000..96b82f1632
--- /dev/null
+++ b/engines/titanic/pet_control/pet_val.cpp
@@ -0,0 +1,61 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/textconsole.h"
+#include "titanic/pet_control/pet_val.h"
+
+namespace Titanic {
+
+void CPetVal::proc1() {
+ error("TODO");
+}
+
+void CPetVal::proc2() {
+ error("TODO");
+}
+
+void CPetVal::proc3() {
+ error("TODO");
+}
+
+void CPetVal::proc4() {
+ error("TODO");
+}
+
+void CPetVal::proc5(Common::Rect *rect) {
+ error("TODO");
+}
+
+int CPetVal::proc16() {
+ switch (_field14) {
+ case 0:
+ return _field18;
+ case 1:
+ return _field1C;
+ case 2:
+ return _field20;
+ default:
+ return 0;
+ }
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/pet_control/pet_val.h b/engines/titanic/pet_control/pet_val.h
new file mode 100644
index 0000000000..bd1fb9e55c
--- /dev/null
+++ b/engines/titanic/pet_control/pet_val.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_VAL_H
+#define TITANIC_PET_VAL_H
+
+#include "titanic/pet_control/pet_val_base.h"
+
+namespace Titanic {
+
+class CPetVal: public CPetValBase {
+protected:
+ int _field18;
+ int _field1C;
+ int _field20;
+public:
+ CPetVal() : CPetValBase(), _field18(0), _field1C(0), _field20(0) {}
+
+ virtual void proc1();
+ virtual void proc2();
+ virtual void proc3();
+ virtual void proc4();
+
+ virtual void proc5(Common::Rect *linkItem);
+
+ virtual int proc16();
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_VAL_H */
diff --git a/engines/titanic/pet_control/pet_val_base.cpp b/engines/titanic/pet_control/pet_val_base.cpp
new file mode 100644
index 0000000000..c798c37971
--- /dev/null
+++ b/engines/titanic/pet_control/pet_val_base.cpp
@@ -0,0 +1,76 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/textconsole.h"
+#include "titanic/pet_control/pet_val_base.h"
+
+namespace Titanic {
+
+CPetValBase::CPetValBase() : _field4(0), _field8(0), _fieldC(0),
+ _field10(0), _field14(0) {}
+
+void CPetValBase::proc5(Common::Rect *rect) {
+ if (rect)
+ *rect = Common::Rect();
+}
+
+int CPetValBase::proc6() {
+ error("TODO");
+}
+
+int CPetValBase::proc7() {
+ error("TODO");
+}
+
+void CPetValBase::proc8() {
+ error("TODO");
+}
+
+int CPetValBase::proc9() {
+ error("TODO");
+}
+
+void CPetValBase::proc10() {
+ error("TODO");
+}
+
+void CPetValBase::proc11() {
+ error("TODO");
+}
+
+void CPetValBase::proc12() {
+ error("TODO");
+}
+
+void CPetValBase::proc13() {
+ error("TODO");
+}
+
+void CPetValBase::proc14() {
+ error("TODO");
+}
+
+void CPetValBase::proc15() {
+ error("TODO");
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/pet_control/pet_val_base.h b/engines/titanic/pet_control/pet_val_base.h
new file mode 100644
index 0000000000..c4ff66568d
--- /dev/null
+++ b/engines/titanic/pet_control/pet_val_base.h
@@ -0,0 +1,67 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PET_VAL_BASE_H
+#define TITANIC_PET_VAL_BASE_H
+
+#include "titanic/simple_file.h"
+#include "titanic/core/link_item.h"
+
+namespace Titanic {
+
+class CPetValBase {
+protected:
+ int _field4;
+ int _field8;
+ int _fieldC;
+ int _field10;
+ int _field14;
+public:
+ CPetValBase();
+ virtual ~CPetValBase() {}
+
+ virtual void proc1() {}
+ virtual void proc2() {}
+ virtual void proc3() {}
+ virtual void proc4() {}
+
+ virtual void proc5(Common::Rect *rect);
+
+ virtual int proc6();
+ virtual int proc7();
+ virtual void proc8();
+ virtual int proc9();
+ virtual void proc10();
+ virtual void proc11();
+ virtual void proc12();
+ virtual void proc13();
+ virtual void proc14();
+ virtual void proc15();
+
+ virtual int proc16() { return 0; }
+
+ virtual void proc17(int v) { _field14 = v; }
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PET_VAL_BASE_H */
diff --git a/engines/titanic/screen_manager.cpp b/engines/titanic/screen_manager.cpp
new file mode 100644
index 0000000000..fe15d9aec0
--- /dev/null
+++ b/engines/titanic/screen_manager.cpp
@@ -0,0 +1,188 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/screen_manager.h"
+#include "titanic/video_surface.h"
+
+namespace Titanic {
+
+CScreenManager *CScreenManager::_screenManagerPtr;
+CScreenManager *CScreenManager::_currentScreenManagerPtr;
+
+CScreenManager::CScreenManager(TitanicEngine *vm): _vm(vm) {
+ _screenManagerPtr = nullptr;
+ _currentScreenManagerPtr = nullptr;
+
+ _frontRenderSurface = nullptr;
+ _mouseCursor = nullptr;
+ _textCursor = nullptr;
+ _inputHandler = nullptr;
+ _fontNumber = 0;
+ // TODO: Further initialization
+
+ _screenManagerPtr = this;
+}
+
+CScreenManager::~CScreenManager() {
+ _screenManagerPtr = nullptr;
+}
+
+void CScreenManager::setWindowHandle(int v) {
+ // Not needed
+}
+
+bool CScreenManager::resetWindowHandle(int v) {
+ hideCursor();
+ return true;
+}
+
+CScreenManager *CScreenManager::setCurrent() {
+ if (!_currentScreenManagerPtr)
+ _currentScreenManagerPtr = _screenManagerPtr;
+
+ return _currentScreenManagerPtr;
+}
+
+void CScreenManager::setSurfaceBounds(int surfaceNum, const Common::Rect &r) {
+ if (surfaceNum >= 0 && surfaceNum < (int)_backSurfaces.size())
+ _backSurfaces[surfaceNum]._bounds = r;
+}
+
+/*------------------------------------------------------------------------*/
+
+OSScreenManager::OSScreenManager(TitanicEngine *vm): CScreenManager(vm),
+ _directDrawManager(vm, false) {
+ _field48 = 0;
+ _field4C = 0;
+ _field50 = 0;
+ _field54 = 0;
+}
+
+OSScreenManager::~OSScreenManager() {
+ destroyFrontAndBackBuffers();
+ delete _mouseCursor;
+ delete _textCursor;
+}
+
+void OSScreenManager::setMode(int width, int height, int bpp, uint numBackSurfaces, bool flag2) {
+ destroyFrontAndBackBuffers();
+ _directDrawManager.initVideo(width, height, bpp, numBackSurfaces);
+
+ _frontRenderSurface = new OSVideoSurface(this, nullptr);
+ _frontRenderSurface->setSurface(this, _directDrawManager._mainSurface);
+
+ for (uint idx = 0; idx < numBackSurfaces; ++idx) {
+ OSVideoSurface videoSurface(this, nullptr);
+ videoSurface.setSurface(this, _directDrawManager._backSurfaces[idx]);
+ }
+
+ // Load fonts
+ _fonts[0].load(149);
+ _fonts[1].load(151);
+ _fonts[2].load(152);
+ _fonts[3].load(153);
+
+ // Load the cursors
+ loadCursors();
+}
+
+void OSScreenManager::proc5() {}
+void OSScreenManager::proc6() {}
+void OSScreenManager::proc7() {}
+
+CVideoSurface *OSScreenManager::getSurface(int surfaceNum) const {
+ if (surfaceNum == -1)
+ return _frontRenderSurface;
+ else if (surfaceNum >= 0 && surfaceNum < (int)_backSurfaces.size())
+ return _backSurfaces[surfaceNum]._surface;
+ else
+ return nullptr;
+}
+
+void OSScreenManager::proc9() {}
+void OSScreenManager::proc10() {}
+void OSScreenManager::proc11() {}
+void OSScreenManager::proc12() {}
+void OSScreenManager::proc13() {}
+void OSScreenManager::proc14() {}
+void OSScreenManager::proc15() {}
+void OSScreenManager::proc16() {}
+void OSScreenManager::getFont() {}
+void OSScreenManager::proc18() {}
+void OSScreenManager::proc19() {}
+
+void OSScreenManager::clearSurface(int surfaceNum, Common::Rect *bounds) {
+ if (surfaceNum == -1)
+ _directDrawManager._mainSurface->fill(bounds, 0);
+ else if (surfaceNum >= 0 && surfaceNum < (int)_backSurfaces.size())
+ _directDrawManager._backSurfaces[surfaceNum]->fill(bounds, 0);
+}
+
+void OSScreenManager::resizeSurface(CVideoSurface *surface, int width, int height) {
+ DirectDrawSurface *ddSurface = _directDrawManager.createSurface(width, height, 0);
+ surface->setSurface(this, ddSurface);
+}
+
+CVideoSurface *OSScreenManager::createSurface(int w, int h) {
+ DirectDrawSurface *ddSurface = _directDrawManager.createSurface(w, h, 0);
+ return new OSVideoSurface(this, ddSurface);
+}
+
+CVideoSurface *OSScreenManager::createSurface(const CResourceKey &key) {
+ return new OSVideoSurface(this, key);
+}
+
+void OSScreenManager::proc23() {}
+void OSScreenManager::proc24() {}
+void OSScreenManager::proc25() {}
+
+void OSScreenManager::showCursor() {
+
+}
+
+void OSScreenManager::hideCursor() {
+
+}
+
+void OSScreenManager::destroyFrontAndBackBuffers() {
+ delete _frontRenderSurface;
+ _frontRenderSurface = nullptr;
+
+ for (uint idx = 0; idx < _backSurfaces.size(); ++idx)
+ delete _backSurfaces[idx]._surface;
+ _backSurfaces.clear();
+}
+
+void OSScreenManager::loadCursors() {
+ if (_mouseCursor) {
+ hideCursor();
+ delete _mouseCursor;
+ }
+ _mouseCursor = new CMouseCursor();
+ showCursor();
+
+ if (!_textCursor) {
+ _textCursor = new CTextCursor();
+ }
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/screen_manager.h b/engines/titanic/screen_manager.h
new file mode 100644
index 0000000000..a5fa562bc8
--- /dev/null
+++ b/engines/titanic/screen_manager.h
@@ -0,0 +1,185 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SCREEN_MANAGER_H
+#define TITANIC_SCREEN_MANAGER_H
+
+#include "common/scummsys.h"
+#include "common/array.h"
+#include "titanic/direct_draw.h"
+#include "titanic/font.h"
+#include "titanic/input_handler.h"
+#include "titanic/mouse_cursor.h"
+#include "titanic/text_cursor.h"
+#include "titanic/video_surface.h"
+#include "titanic/core/resource_key.h"
+
+namespace Titanic {
+
+class TitanicEngine;
+
+class CScreenManager {
+ struct VideoSurfaceEntry {
+ CVideoSurface *_surface;
+ Common::Rect _bounds;
+ };
+protected:
+ TitanicEngine *_vm;
+public:
+ static CScreenManager *_screenManagerPtr;
+ static CScreenManager *_currentScreenManagerPtr;
+
+ /**
+ * Set the current screen manager
+ */
+ static CScreenManager *setCurrent();
+public:
+ Common::Array<VideoSurfaceEntry> _backSurfaces;
+ CVideoSurface *_frontRenderSurface;
+ CMouseCursor *_mouseCursor;
+ CTextCursor *_textCursor;
+ CInputHandler *_inputHandler;
+ int _fontNumber;
+public:
+ CScreenManager(TitanicEngine *vm);
+ virtual ~CScreenManager();
+
+ void fn1() {}
+ void fn2() {}
+
+ virtual void setWindowHandle(int v);
+ virtual bool resetWindowHandle(int v);
+ virtual void setMode(int width, int height, int bpp, uint numBackSurfaces, bool flag2) = 0;
+ virtual void proc5() = 0;
+ virtual void proc6() = 0;
+ virtual void proc7() = 0;
+ virtual CVideoSurface *getSurface(int surfaceNum) const = 0;
+ virtual void proc9() = 0;
+ virtual void proc10() = 0;
+ virtual void proc11() = 0;
+ virtual void proc12() = 0;
+ virtual void proc13() = 0;
+ virtual void proc14() = 0;
+ virtual void proc15() = 0;
+ virtual void proc16() = 0;
+ virtual void getFont() = 0;
+ virtual void proc18() = 0;
+ virtual void proc19() = 0;
+
+ /**
+ * Clear a portion of a specified surface
+ */
+ virtual void clearSurface(int surfaceNum, Common::Rect *_bounds) = 0;
+
+ /**
+ * Resize the passed surface
+ */
+ virtual void resizeSurface(CVideoSurface *surface, int width, int height) = 0;
+
+ /**
+ * Creates a surface of a given size
+ */
+ virtual CVideoSurface *createSurface(int w, int h) = 0;
+
+ /**
+ * Creates a surface from a specified resource
+ */
+ virtual CVideoSurface *createSurface(const CResourceKey &key) = 0;
+
+ virtual void proc24() = 0;
+ virtual void proc25() = 0;
+ virtual void showCursor() = 0;
+ virtual void hideCursor() = 0;
+
+ void setSurfaceBounds(int surfaceNum, const Common::Rect &r);
+};
+
+class OSScreenManager: CScreenManager {
+private:
+ DirectDrawManager _directDrawManager;
+
+ /**
+ * Frees any surface buffers
+ */
+ void destroyFrontAndBackBuffers();
+
+ /**
+ * Load game cursors
+ */
+ void loadCursors();
+public:
+ int _field48;
+ int _field4C;
+ int _field50;
+ int _field54;
+ STFont _fonts[4];
+public:
+ OSScreenManager(TitanicEngine *vm);
+ virtual ~OSScreenManager();
+
+ virtual void setMode(int width, int height, int bpp, uint numBackSurfaces, bool flag2);
+ virtual void proc5();
+ virtual void proc6();
+ virtual void proc7();
+ virtual CVideoSurface *getSurface(int surfaceNum) const;
+ virtual void proc9();
+ virtual void proc10();
+ virtual void proc11();
+ virtual void proc12();
+ virtual void proc13();
+ virtual void proc14();
+ virtual void proc15();
+ virtual void proc16();
+ virtual void getFont();
+ virtual void proc18();
+ virtual void proc19();
+
+ /**
+ * Clear a portion of the screen surface
+ */
+ virtual void clearSurface(int surfaceNum, Common::Rect *bounds);
+
+ /**
+ * Resize the passed surface
+ */
+ virtual void resizeSurface(CVideoSurface *surface, int width, int height);
+
+ /**
+ * Creates a surface of a given size
+ */
+ virtual CVideoSurface *createSurface(int w, int h);
+
+ /**
+ * Creates a surface from a specified resource
+ */
+ virtual CVideoSurface *createSurface(const CResourceKey &key);
+
+ virtual void proc23();
+ virtual void proc24();
+ virtual void proc25();
+ virtual void showCursor();
+ virtual void hideCursor();
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SCREEN_MANAGER_H */
diff --git a/engines/titanic/simple_file.cpp b/engines/titanic/simple_file.cpp
new file mode 100644
index 0000000000..c975a27b28
--- /dev/null
+++ b/engines/titanic/simple_file.cpp
@@ -0,0 +1,384 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/util.h"
+#include "titanic/simple_file.h"
+
+namespace Titanic {
+
+bool File::open(const Common::String &name) {
+ if (!Common::File::open(name))
+ error("Could not open file - %s", name.c_str());
+}
+
+/*------------------------------------------------------------------------*/
+
+SimpleFile::SimpleFile(): _inStream(nullptr), _outStream(nullptr), _lineCount(1) {
+}
+
+SimpleFile::~SimpleFile() {
+ close();
+}
+
+void SimpleFile::open(Common::SeekableReadStream *stream) {
+ close();
+ _inStream = stream;
+}
+
+void SimpleFile::open(Common::OutSaveFile *stream) {
+ close();
+ _outStream = stream;
+}
+
+void SimpleFile::close() {
+ if (_outStream) {
+ _outStream->finalize();
+ delete _outStream;
+ _outStream = nullptr;
+ }
+
+ if (_inStream) {
+ delete _inStream;
+ _inStream = nullptr;
+ }
+}
+
+void SimpleFile::safeRead(void *dst, size_t count) {
+ if (unsafeRead(dst, count) != count)
+ error("Could not read %d bytes", (int)count);
+}
+
+size_t SimpleFile::unsafeRead(void *dst, size_t count) {
+ assert(_inStream);
+ return _inStream->read(dst, count);
+}
+
+size_t SimpleFile::write(const void *src, size_t count) {
+ assert(_outStream);
+ return _outStream->write(src, count);
+}
+
+CString SimpleFile::readString() {
+ char c;
+ CString result;
+ bool backslashFlag = false;
+
+ // First skip any spaces
+ do {
+ safeRead(&c, 1);
+ } while (Common::isSpace(c));
+
+ // Ensure we've found a starting quote for the string
+ if (c != '"')
+ error("Could not find starting quote");
+
+ bool endFlag = false;
+ while (!endFlag) {
+ // Read the next character
+ safeRead(&c, 1);
+
+ if (backslashFlag) {
+ backslashFlag = false;
+ switch (c) {
+ case 'n':
+ result += '\n';
+ break;
+ case 'r':
+ result += '\r';
+ break;
+ case '\t':
+ result += '\t';
+ break;
+ default:
+ result += c;
+ break;
+ }
+ } else {
+ switch (c) {
+ case '"':
+ endFlag = true;
+ break;
+ case '\\':
+ backslashFlag = true;
+ break;
+ default:
+ result += c;
+ break;
+ }
+ }
+ }
+
+ // Return the string
+ return result;
+}
+
+int SimpleFile::readNumber() {
+ char c;
+ int result = 0;
+ bool minusFlag = false;
+
+ // First skip any spaces
+ do {
+ safeRead(&c, 1);
+ } while (Common::isSpace(c));
+
+ // Check for prefix sign
+ if (c == '+' || c == '-') {
+ minusFlag = c == '-';
+ safeRead(&c, 1);
+ }
+
+ // Read in the number
+ if (!Common::isDigit(c))
+ error("Invalid number");
+
+ while (Common::isDigit(c)) {
+ result = result * 10 + (c - '0');
+ safeRead(&c, 1);
+ }
+
+ // Finally, if it's a minus value, then negate it
+ if (minusFlag)
+ result = -result;
+
+ return result;
+}
+
+double SimpleFile::readFloat() {
+ char c;
+ Common::String result;
+
+ // First skip any spaces
+ do {
+ safeRead(&c, 1);
+ } while (Common::isSpace(c));
+
+ // Check for prefix sign
+ if (c == '+' || c == '-') {
+ result += c;
+ safeRead(&c, 1);
+ }
+
+ // Read in the number
+ if (!Common::isDigit(c))
+ error("Invalid number");
+
+ while (Common::isDigit(c) || c == '.') {
+ result += c;
+ safeRead(&c, 1);
+ }
+
+ // Convert to a float and return it
+ float floatValue;
+ sscanf(result.c_str(), "%f", &floatValue);
+
+ return floatValue;
+}
+
+Common::Point SimpleFile::readPoint() {
+ Common::Point pt;
+ pt.x = readNumber();
+ pt.y = readNumber();
+
+ return pt;
+}
+
+Common::Rect SimpleFile::readRect() {
+ Common::Rect r;
+ r.left = readNumber();
+ r.top = readNumber();
+ r.right = readNumber();
+ r.bottom = readNumber();
+
+ return r;
+}
+
+void SimpleFile::readBuffer(char *buffer, size_t count) {
+ CString tempString = readString();
+ if (buffer) {
+ strncpy(buffer, tempString.c_str(), count);
+ buffer[count - 1] = '\0';
+ }
+}
+
+void SimpleFile::writeLine(const CString &str) {
+ write(str.c_str(), str.size());
+ write("\r\n", 2);
+}
+
+void SimpleFile::writeString(const CString &str) {
+ if (str.empty())
+ return;
+
+ const char *msgP = str.c_str();
+ char c;
+
+ while ((c = *msgP++) != '\0') {
+ switch (c) {
+ case '\r':
+ write("\\r", 2);
+ break;
+ case '\n':
+ write("\\n", 2);
+ break;
+ case '\t':
+ write("\\t", 2);
+ break;
+ case '\"':
+ write("\\\"", 2);
+ break;
+ case '\\':
+ write("\\\\", 2);
+ break;
+ case '{':
+ write("\\{", 2);
+ break;
+ case '}':
+ write("\\}", 2);
+ break;
+ default:
+ write(&c, 1);
+ break;
+ }
+ }
+}
+
+void SimpleFile::writeQuotedString(const CString &str) {
+ write("\"", 1);
+ writeString(str);
+ write("\" ", 2);
+}
+
+void SimpleFile::writeQuotedLine(const CString &str, int indent) {
+ writeIndent(indent);
+ writeQuotedString(str);
+ write("\n", 1);
+}
+
+void SimpleFile::writeNumber(int val) {
+ CString str = CString::format("%d ", val);
+ write(str.c_str(), str.size());
+}
+
+void SimpleFile::writeNumberLine(int val, int indent) {
+ writeIndent(indent);
+ writeNumber(val);
+ write("\n", 1);
+}
+
+void SimpleFile::writeFloat(double val) {
+ Common::String valStr = Common::String::format("%f ", val);
+ write(valStr.c_str(), valStr.size());
+}
+
+void SimpleFile::writeFloatLine(double val, int indent) {
+ writeIndent(indent);
+ writeFloat(val);
+ write("\n", 1);
+}
+
+void SimpleFile::writePoint(const Common::Point &pt, int indent) {
+ writeIndent(indent);
+ writeNumber(pt.x);
+ writeNumber(pt.y);
+ write("\n", 1);
+}
+
+void SimpleFile::writeRect(const Common::Rect &r, int indent) {
+ writePoint(Common::Point(r.left, r.top), indent);
+ writePoint(Common::Point(r.right, r.bottom), indent);
+}
+
+void SimpleFile::writeIndent(uint indent) {
+ for (uint idx = 0; idx < indent; ++idx)
+ write("\t", 1);
+}
+
+bool SimpleFile::IsClassStart() {
+ char c;
+
+ do {
+ safeRead(&c, 1);
+ } while (Common::isSpace(c));
+
+ assert(c == '{' || c == '}');
+ return c == '{';
+}
+
+void SimpleFile::writeClassStart(const CString &classStr, int indent) {
+ write("\n", 1);
+ writeIndent(indent);
+ write("{\n", 2);
+ writeIndent(indent + 1);
+ writeQuotedString(classStr);
+ write("\n", 1);
+}
+
+void SimpleFile::writeClassEnd(int indent) {
+ writeIndent(indent);
+ write("}\n", 2);
+}
+
+/*------------------------------------------------------------------------*/
+
+void StdCWadFile::open(const CString &name) {
+ File f;
+
+ // Check for whether it is indeed a file/resource pair
+ int idx = name.indexOf('#');
+
+ if (idx < 0) {
+ // Nope, so open up file for standard reading
+ assert(!name.empty());
+ f.open(name);
+
+ SimpleFile::open(f.readStream(f.size()));
+ return;
+ }
+
+ // Split up the name and resource, and get the resource index
+ CString filename = name.left(idx) + ".st";
+ int extPos = name.lastIndexOf('.');
+ CString resStr = name.mid(idx + 1, extPos - idx - 1);
+ int resIndex = resStr.readInt();
+
+ // Open up the index for access
+ f.open(filename);
+ int indexSize = f.readUint32LE() / 4;
+ assert(resIndex < indexSize);
+
+ // Get the specific resource's offset, and size by also
+ // getting the offset of the following resource
+ f.seek(resIndex * 4);
+ uint resOffset = f.readUint32LE();
+ uint nextOffset = (resIndex == (indexSize - 1)) ? f.size() :
+ f.readUint32LE();
+
+ // Read in the resource
+ f.seek(resOffset);
+ Common::SeekableReadStream *stream = f.readStream(nextOffset - resOffset);
+ SimpleFile::open(stream);
+
+ f.close();
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/simple_file.h b/engines/titanic/simple_file.h
new file mode 100644
index 0000000000..815896fc7e
--- /dev/null
+++ b/engines/titanic/simple_file.h
@@ -0,0 +1,236 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SIMPLE_FILE_H
+#define TITANIC_SIMPLE_FILE_H
+
+#include "common/file.h"
+#include "common/rect.h"
+#include "common/savefile.h"
+#include "common/stream.h"
+#include "common/zlib.h"
+#include "titanic/string.h"
+
+namespace Titanic {
+
+class Decompressor;
+class DecompressorData;
+
+/**
+ * Simple ScummVM File descendent that throws a wobbly if
+ * the file it tries to open isn't present
+ */
+class File : public Common::File {
+public:
+ virtual bool open(const Common::String &name);
+};
+
+/**
+ * This class implements basic reading and writing to files
+ */
+class SimpleFile {
+protected:
+ Common::SeekableReadStream *_inStream;
+ Common::OutSaveFile *_outStream;
+ int _lineCount;
+public:
+ SimpleFile();
+ virtual ~SimpleFile();
+
+ /**
+ * Set up a stream for read access
+ */
+ virtual void open(Common::SeekableReadStream *stream);
+
+ /**
+ * Set up a stream for write access
+ */
+ virtual void open(Common::OutSaveFile *stream);
+
+ /**
+ * Close the file
+ */
+ virtual void close();
+
+ /**
+ * Read from the file with validation
+ */
+ virtual void safeRead(void *dst, size_t count);
+
+ /**
+ * Read from the file
+ */
+ virtual size_t unsafeRead(void *dst, size_t count);
+
+ /**
+ * Write out data
+ */
+ virtual size_t write(const void *src, size_t count);
+
+ /**
+ * Read a string from the file
+ */
+ CString readString();
+
+ /**
+ * Read a number from the file
+ */
+ int readNumber();
+
+ /**
+ * Read a floating point number from the file
+ */
+ double readFloat();
+
+ /**
+ * Read in a point
+ */
+ Common::Point readPoint();
+
+ /**
+ * Read in a rect
+ */
+ Common::Rect readRect();
+
+ /**
+ * Read a string and copy it into an optionally passed buffer
+ */
+ void readBuffer(char *buffer = nullptr, size_t count = 0);
+
+ /**
+ * Write a string line
+ */
+ void writeLine(const CString &str);
+
+ /**
+ * Write a string
+ */
+ void writeString(const CString &str);
+
+ /**
+ * Write a quoted string
+ */
+ void writeQuotedString(const CString &str);
+
+ /**
+ * Write a quoted string line
+ */
+ void writeQuotedLine(const CString &str, int indent);
+
+ /**
+ * Write a number to file
+ */
+ void writeNumber(int val);
+
+ /**
+ * Write a number line to file
+ */
+ void writeNumberLine(int val, int indent);
+
+ /**
+ * Write a floating point number
+ */
+ void writeFloat(double val);
+
+ /**
+ * Write a floating point number as a line
+ */
+ void writeFloatLine(double val, int indent);
+
+ /**
+ * Write out a point line
+ */
+ void writePoint(const Common::Point &pt, int indent);
+
+ /**
+ * Write out a rect line
+ */
+ void writeRect(const Common::Rect &r, int indent);
+
+ /**
+ * Write out a number of tabs to form an indent in the output
+ */
+ void writeIndent(uint indent);
+
+ /**
+ * Validates that the following non-space character is either
+ * an opening or closing squiggly bracket denoting a class
+ * definition start or end. Returns true if it's a class start
+ */
+ bool IsClassStart();
+
+ /**
+ * Write the starting header for a class definition
+ */
+ void writeClassStart(const CString &classStr, int indent);
+
+ /**
+ * Write out the ending footer for a class definition
+ */
+ void writeClassEnd(int indent);
+};
+
+/**
+ * Derived file that handles compressed files
+ */
+class CompressedFile : public SimpleFile {
+public:
+ CompressedFile() : SimpleFile() {}
+ virtual ~CompressedFile() {}
+
+ /**
+ * Set up a stream for read access
+ */
+ virtual void open(Common::SeekableReadStream *stream) {
+ SimpleFile::open(Common::wrapCompressedReadStream(stream));
+ }
+
+ /**
+ * Set up a stream for write access
+ */
+ virtual void open(Common::OutSaveFile *stream) {
+ SimpleFile::open(Common::wrapCompressedWriteStream(stream));
+ }
+};
+
+/**
+ * Derived file that handles WAD archives containing multiple files
+ */
+class StdCWadFile : public SimpleFile {
+public:
+ StdCWadFile() : SimpleFile() {}
+ virtual ~StdCWadFile() {}
+
+ /**
+ * Open up the specified file
+ */
+ void open(const CString &name);
+
+ /**
+ * Return a reference to the read stream
+ */
+ Common::SeekableReadStream *readStream() const { return _inStream; }
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SIMPLE_FILE_H */
diff --git a/engines/titanic/sound/auto_music_player.cpp b/engines/titanic/sound/auto_music_player.cpp
new file mode 100644
index 0000000000..638cac8c26
--- /dev/null
+++ b/engines/titanic/sound/auto_music_player.cpp
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/sound/auto_music_player.h"
+
+namespace Titanic {
+
+CAutoMusicPlayer::CAutoMusicPlayer() : CAutoMusicPlayerBase() {
+}
+
+void CAutoMusicPlayer::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string2, indent);
+
+ CAutoMusicPlayerBase::save(file, indent);
+}
+
+void CAutoMusicPlayer::load(SimpleFile *file) {
+ file->readNumber();
+ _string2 = file->readString();
+
+ CAutoMusicPlayerBase::load(file);
+}
+
+bool CAutoMusicPlayer::handleEvent(CEnterRoomMsg &msg) {
+ if (!_fieldCC) {
+ warning("TODO");
+ }
+
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/sound/auto_music_player.h b/engines/titanic/sound/auto_music_player.h
new file mode 100644
index 0000000000..d2f42ac5c5
--- /dev/null
+++ b/engines/titanic/sound/auto_music_player.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_AUTO_MUSIC_PLAYER_H
+#define TITANIC_AUTO_MUSIC_PLAYER_H
+
+#include "titanic/sound/auto_music_player_base.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CAutoMusicPlayer : public CAutoMusicPlayerBase, CEnterRoomMsgTarget {
+private:
+ CString _string2;
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+ CAutoMusicPlayer();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_LINK_ITEM_H */
diff --git a/engines/titanic/sound/auto_music_player_base.cpp b/engines/titanic/sound/auto_music_player_base.cpp
new file mode 100644
index 0000000000..116fcf7186
--- /dev/null
+++ b/engines/titanic/sound/auto_music_player_base.cpp
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/sound/auto_music_player_base.h"
+
+namespace Titanic {
+
+CAutoMusicPlayerBase::CAutoMusicPlayerBase() : CGameObject(),
+ _fieldC8(1), _fieldCC(0), _fieldD0(-1), _fieldD4(1) {
+}
+void CAutoMusicPlayerBase::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeNumberLine(_fieldC8, indent);
+ file->writeNumberLine(_fieldCC, indent);
+ file->writeNumberLine(_fieldD0, indent);
+ file->writeNumberLine(_fieldD4, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CAutoMusicPlayerBase::load(SimpleFile *file) {
+ file->readNumber();
+ _string1 = file->readString();
+ _fieldC8 = file->readNumber();
+ _fieldCC = file->readNumber();
+ _fieldD0 = file->readNumber();
+ _fieldD4 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/sound/auto_music_player_base.h b/engines/titanic/sound/auto_music_player_base.h
new file mode 100644
index 0000000000..e762ef40b9
--- /dev/null
+++ b/engines/titanic/sound/auto_music_player_base.h
@@ -0,0 +1,54 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_AUTO_MUSIC_PLAYER_BASE_H
+#define TITANIC_AUTO_MUSIC_PLAYER_BASE_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CAutoMusicPlayerBase : public CGameObject {
+protected:
+ CString _string1;
+ int _fieldC8;
+ int _fieldCC;
+ int _fieldD0;
+ int _fieldD4;
+public:
+ CLASSDEF
+ CAutoMusicPlayerBase();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_AUTO_MUSIC_PLAYER_BASE_H */
diff --git a/engines/titanic/sound/auto_sound_player.cpp b/engines/titanic/sound/auto_sound_player.cpp
new file mode 100644
index 0000000000..7b20f65907
--- /dev/null
+++ b/engines/titanic/sound/auto_sound_player.cpp
@@ -0,0 +1,64 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/sound/auto_sound_player.h"
+
+namespace Titanic {
+
+CAutoSoundPlayer::CAutoSoundPlayer() : CGameObject(),
+ _fieldBC(0), _fieldCC(70), _fieldD0(0), _fieldD4(0), _fieldD8(-1),
+ _fieldDC(0), _fieldE0(-1), _fieldE4(0), _fieldE8(0) {
+}
+
+void CAutoSoundPlayer::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeNumberLine(_fieldCC, indent);
+ file->writeNumberLine(_fieldD0, indent);
+ file->writeNumberLine(_fieldD4, indent);
+ file->writeNumberLine(_fieldD8, indent);
+ file->writeNumberLine(_fieldDC, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_fieldE8, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CAutoSoundPlayer::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _string1 = file->readString();
+ _fieldCC = file->readNumber();
+ _fieldD0 = file->readNumber();
+ _fieldD4 = file->readNumber();
+ _fieldD8 = file->readNumber();
+ _fieldDC = file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _fieldE8 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/sound/auto_sound_player.h b/engines/titanic/sound/auto_sound_player.h
new file mode 100644
index 0000000000..15f1325e06
--- /dev/null
+++ b/engines/titanic/sound/auto_sound_player.h
@@ -0,0 +1,59 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_AUTO_SOUND_PLAYER_H
+#define TITANIC_AUTO_SOUND_PLAYER_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CAutoSoundPlayer : public CGameObject {
+public:
+ int _fieldBC;
+ CString _string1;
+ int _fieldCC;
+ int _fieldD0;
+ int _fieldD4;
+ int _fieldD8;
+ int _fieldDC;
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+public:
+ CLASSDEF
+ CAutoSoundPlayer();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_AUTO_SOUND_PLAYER_H */
diff --git a/engines/titanic/sound/auto_sound_player_adsr.cpp b/engines/titanic/sound/auto_sound_player_adsr.cpp
new file mode 100644
index 0000000000..815c1cde52
--- /dev/null
+++ b/engines/titanic/sound/auto_sound_player_adsr.cpp
@@ -0,0 +1,43 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/sound/auto_sound_player_adsr.h"
+
+namespace Titanic {
+
+void CAutoSoundPlayerADSR::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string2, indent);
+ file->writeQuotedLine(_string3, indent);
+ file->writeQuotedLine(_string4, indent);
+ CAutoSoundPlayer::save(file, indent);
+}
+
+void CAutoSoundPlayerADSR::load(SimpleFile *file) {
+ file->readNumber();
+ _string2 = file->readString();
+ _string3 = file->readString();
+ _string4 = file->readString();
+ CAutoSoundPlayer::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/sound/auto_sound_player_adsr.h b/engines/titanic/sound/auto_sound_player_adsr.h
new file mode 100644
index 0000000000..c88a861f9b
--- /dev/null
+++ b/engines/titanic/sound/auto_sound_player_adsr.h
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_AUTO_SOUND_PLAYER_ADSR_H
+#define TITANIC_AUTO_SOUND_PLAYER_ADSR_H
+
+#include "titanic/sound/auto_sound_player.h"
+
+namespace Titanic {
+
+class CAutoSoundPlayerADSR : public CAutoSoundPlayer {
+private:
+ CString _string2;
+ CString _string3;
+ CString _string4;
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_AUTO_SOUND_PLAYER_ADSR_H */
diff --git a/engines/titanic/sound/background_sound_maker.cpp b/engines/titanic/sound/background_sound_maker.cpp
new file mode 100644
index 0000000000..111e641054
--- /dev/null
+++ b/engines/titanic/sound/background_sound_maker.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/sound/background_sound_maker.h"
+
+namespace Titanic {
+
+void CBackgroundSoundMaker::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ CGameObject::save(file, indent);
+}
+
+void CBackgroundSoundMaker::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/sound/background_sound_maker.h b/engines/titanic/sound/background_sound_maker.h
new file mode 100644
index 0000000000..68c1d7d1a9
--- /dev/null
+++ b/engines/titanic/sound/background_sound_maker.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BACKGROUND_SOUND_MAKER_H
+#define TITANIC_BACKGROUND_SOUND_MAKER_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CBackgroundSoundMaker : public CGameObject {
+public:
+ int _value;
+public:
+ CLASSDEF
+ CBackgroundSoundMaker() : CGameObject(), _value(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BACKGROUND_SOUND_MAKER_H */
diff --git a/engines/titanic/sound/bird_song.cpp b/engines/titanic/sound/bird_song.cpp
new file mode 100644
index 0000000000..f003a4f2c4
--- /dev/null
+++ b/engines/titanic/sound/bird_song.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/sound/bird_song.h"
+
+namespace Titanic {
+
+void CBirdSong::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ CRoomAutoSoundPlayer::save(file, indent);
+}
+
+void CBirdSong::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ CRoomAutoSoundPlayer::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/sound/bird_song.h b/engines/titanic/sound/bird_song.h
new file mode 100644
index 0000000000..d932cfde7d
--- /dev/null
+++ b/engines/titanic/sound/bird_song.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BIRD_SONG_H
+#define TITANIC_BIRD_SONG_H
+
+#include "titanic/sound/room_auto_sound_player.h"
+
+namespace Titanic {
+
+class CBirdSong : public CRoomAutoSoundPlayer {
+public:
+ int _value;
+public:
+ CLASSDEF
+ CBirdSong() : CRoomAutoSoundPlayer(), _value(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BIRD_SONG_H */
diff --git a/engines/titanic/sound/dome_from_top_of_well.cpp b/engines/titanic/sound/dome_from_top_of_well.cpp
new file mode 100644
index 0000000000..6e31937af0
--- /dev/null
+++ b/engines/titanic/sound/dome_from_top_of_well.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/sound/dome_from_top_of_well.h"
+
+namespace Titanic {
+
+void CDomeFromTopOfWell::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CViewAutoSoundPlayer::save(file, indent);
+}
+
+void CDomeFromTopOfWell::load(SimpleFile *file) {
+ file->readNumber();
+ CViewAutoSoundPlayer::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/sound/dome_from_top_of_well.h b/engines/titanic/sound/dome_from_top_of_well.h
new file mode 100644
index 0000000000..bb8ab6372a
--- /dev/null
+++ b/engines/titanic/sound/dome_from_top_of_well.h
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_DOME_FROM_TOP_OF_WELL_H
+#define TITANIC_DOME_FROM_TOP_OF_WELL_H
+
+#include "titanic/sound/view_auto_sound_player.h"
+
+namespace Titanic {
+
+class CDomeFromTopOfWell : public CViewAutoSoundPlayer {
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_DOME_FROM_TOP_OF_WELL_H */
diff --git a/engines/titanic/sound/enter_view_toggles_other_music.cpp b/engines/titanic/sound/enter_view_toggles_other_music.cpp
new file mode 100644
index 0000000000..fbf5b4a46d
--- /dev/null
+++ b/engines/titanic/sound/enter_view_toggles_other_music.cpp
@@ -0,0 +1,44 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/sound/enter_view_toggles_other_music.h"
+
+namespace Titanic {
+
+CEnterViewTogglesOtherMusic::CEnterViewTogglesOtherMusic() : CTriggerAutoMusicPlayer(), _fieldC8(0) {
+}
+
+void CEnterViewTogglesOtherMusic::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldC8, indent);
+
+ CTriggerAutoMusicPlayer::save(file, indent);
+}
+
+void CEnterViewTogglesOtherMusic::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldC8 = file->readNumber();
+
+ CTriggerAutoMusicPlayer::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/sound/enter_view_toggles_other_music.h b/engines/titanic/sound/enter_view_toggles_other_music.h
new file mode 100644
index 0000000000..991a6ad2bc
--- /dev/null
+++ b/engines/titanic/sound/enter_view_toggles_other_music.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ENTER_VIEW_TOGGLES_OTHER_MUSIC_H
+#define TITANIC_ENTER_VIEW_TOGGLES_OTHER_MUSIC_H
+
+#include "titanic/sound/trigger_auto_music_player.h"
+
+namespace Titanic {
+
+class CEnterViewTogglesOtherMusic : public CTriggerAutoMusicPlayer {
+protected:
+ int _fieldC8;
+public:
+ CLASSDEF
+ CEnterViewTogglesOtherMusic();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ENTER_VIEW_TOGGLES_OTHER_MUSIC_H */
diff --git a/engines/titanic/sound/gondolier_song.cpp b/engines/titanic/sound/gondolier_song.cpp
new file mode 100644
index 0000000000..52b7ae04bf
--- /dev/null
+++ b/engines/titanic/sound/gondolier_song.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+*
+* ScummVM is the legal property of its developers, whose names
+* are too numerous to list here. Please refer to the COPYRIGHT
+* file distributed with this source distribution.
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*
+*/
+
+#include "titanic/sound/gondolier_song.h"
+
+namespace Titanic {
+
+void CGondolierSong::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value, indent);
+ CRoomAutoSoundPlayer::save(file, indent);
+}
+
+void CGondolierSong::load(SimpleFile *file) {
+ file->readNumber();
+ _value = file->readNumber();
+ CRoomAutoSoundPlayer::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/sound/gondolier_song.h b/engines/titanic/sound/gondolier_song.h
new file mode 100644
index 0000000000..6377279c04
--- /dev/null
+++ b/engines/titanic/sound/gondolier_song.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_GONDOLIER_SONG_H
+#define TITANIC_GONDOLIER_SONG_H
+
+#include "titanic/sound/room_auto_sound_player.h"
+
+namespace Titanic {
+
+class CGondolierSong : public CRoomAutoSoundPlayer {
+public:
+ int _value;
+public:
+ CLASSDEF
+ CGondolierSong() : CRoomAutoSoundPlayer(), _value(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_GONDOLIER_SONG_H */
diff --git a/engines/titanic/sound/music_player.cpp b/engines/titanic/sound/music_player.cpp
new file mode 100644
index 0000000000..25f73b0dc5
--- /dev/null
+++ b/engines/titanic/sound/music_player.cpp
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/sound/music_player.h"
+
+namespace Titanic {
+
+void CMusicPlayer::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldBC, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeNumberLine(_fieldCC, indent);
+ file->writeNumberLine(_fieldD0, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CMusicPlayer::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readNumber();
+ _string1 = file->readString();
+ _fieldCC = file->readNumber();
+ _fieldD0 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+bool CMusicPlayer::handleEvent(CEnterRoomMsg &msg) {
+ warning("TODO: CMusicPlayer::handleEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/sound/music_player.h b/engines/titanic/sound/music_player.h
new file mode 100644
index 0000000000..96a6968c6d
--- /dev/null
+++ b/engines/titanic/sound/music_player.h
@@ -0,0 +1,57 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MUSIC_PLAYER_H
+#define TITANIC_MUSIC_PLAYER_H
+
+#include "titanic/core/game_object.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CMusicPlayer : public CGameObject, CEnterRoomMsgTarget {
+protected:
+ int _fieldBC;
+ CString _string1;
+ int _fieldCC;
+ int _fieldD0;
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+ CMusicPlayer() : CGameObject(),
+ _fieldBC(0), _fieldCC(0), _fieldD0(100) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MUSIC_PLAYER_H */
diff --git a/engines/titanic/sound/music_room.cpp b/engines/titanic/sound/music_room.cpp
new file mode 100644
index 0000000000..593c572277
--- /dev/null
+++ b/engines/titanic/sound/music_room.cpp
@@ -0,0 +1,36 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/sound/music_room.h"
+#include "common/textconsole.h"
+
+namespace Titanic {
+
+CMusicRoom::CMusicRoom(CGameManager *gameManager) :
+ _gameManager(gameManager) {
+}
+
+void CMusicRoom::preLoad() {
+ warning("TODO: CMusicRoom::preLoad");
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/sound/music_room.h b/engines/titanic/sound/music_room.h
new file mode 100644
index 0000000000..ce262a2b99
--- /dev/null
+++ b/engines/titanic/sound/music_room.h
@@ -0,0 +1,44 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MUSIC_ROOM_H
+#define TITANIC_MUSIC_ROOM_H
+
+namespace Titanic {
+
+class CGameManager;
+
+class CMusicRoom {
+public:
+ CGameManager *_gameManager;
+public:
+ CMusicRoom(CGameManager *owner);
+
+ /**
+ * Called when a game is about to be loaded
+ */
+ void preLoad();
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MUSIC_ROOM_H */
diff --git a/engines/titanic/sound/node_auto_sound_player.cpp b/engines/titanic/sound/node_auto_sound_player.cpp
new file mode 100644
index 0000000000..0ef6c8d2ac
--- /dev/null
+++ b/engines/titanic/sound/node_auto_sound_player.cpp
@@ -0,0 +1,44 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/sound/node_auto_sound_player.h"
+
+namespace Titanic {
+
+void CNodeAutoSoundPlayer::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldEC, indent);
+ CAutoSoundPlayer::save(file, indent);
+}
+
+void CNodeAutoSoundPlayer::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldEC = file->readNumber();
+ CAutoSoundPlayer::load(file);
+}
+
+bool CNodeAutoSoundPlayer::handleEvent(CEnterNodeMsg &msg) {
+ warning("CNodeAutoSoundPlayer::handleEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/sound/node_auto_sound_player.h b/engines/titanic/sound/node_auto_sound_player.h
new file mode 100644
index 0000000000..258aa47eea
--- /dev/null
+++ b/engines/titanic/sound/node_auto_sound_player.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_NODE_AUTO_SOUND_PLAYER_H
+#define TITANIC_NODE_AUTO_SOUND_PLAYER_H
+
+#include "titanic/sound/auto_sound_player.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CNodeAutoSoundPlayer : public CAutoSoundPlayer, CEnterNodeMsgTarget {
+private:
+ int _fieldEC;
+protected:
+ virtual bool handleEvent(CEnterNodeMsg &msg);
+public:
+ CLASSDEF
+ CNodeAutoSoundPlayer() : CAutoSoundPlayer(), _fieldEC(1) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_NODE_AUTO_SOUND_PLAYER_H */
diff --git a/engines/titanic/sound/restricted_auto_music_player.cpp b/engines/titanic/sound/restricted_auto_music_player.cpp
new file mode 100644
index 0000000000..2ee8f2d082
--- /dev/null
+++ b/engines/titanic/sound/restricted_auto_music_player.cpp
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/sound/restricted_auto_music_player.h"
+
+namespace Titanic {
+
+void CRestrictedAutoMusicPlayer::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string3, indent);
+ file->writeQuotedLine(_string4, indent);
+ file->writeQuotedLine(_string5, indent);
+ file->writeQuotedLine(_string6, indent);
+
+ CAutoMusicPlayer::save(file, indent);
+}
+
+void CRestrictedAutoMusicPlayer::load(SimpleFile *file) {
+ file->readNumber();
+ _string3 = file->readString();
+ _string4 = file->readString();
+ _string5 = file->readString();
+ _string6 = file->readString();
+
+ CAutoMusicPlayer::load(file);
+}
+
+bool CRestrictedAutoMusicPlayer::handleEvent(CEnterRoomMsg &msg) {
+ warning("CRestrictedAutoMusicPlayer::handleEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/sound/restricted_auto_music_player.h b/engines/titanic/sound/restricted_auto_music_player.h
new file mode 100644
index 0000000000..efb3dc2892
--- /dev/null
+++ b/engines/titanic/sound/restricted_auto_music_player.h
@@ -0,0 +1,55 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_RESTRICTED_AUTO_MUSIC_PLAYER_H
+#define TITANIC_RESTRICTED_AUTO_MUSIC_PLAYER_H
+
+#include "titanic/sound/auto_music_player.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CRestrictedAutoMusicPlayer : public CAutoMusicPlayer {
+private:
+ CString _string3;
+ CString _string4;
+ CString _string5;
+ CString _string6;
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_RESTRICTED_AUTO_MUSIC_PLAYER_H */
diff --git a/engines/titanic/sound/room_auto_sound_player.cpp b/engines/titanic/sound/room_auto_sound_player.cpp
new file mode 100644
index 0000000000..549f27be63
--- /dev/null
+++ b/engines/titanic/sound/room_auto_sound_player.cpp
@@ -0,0 +1,42 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/sound/room_auto_sound_player.h"
+
+namespace Titanic {
+
+void CRoomAutoSoundPlayer::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CAutoSoundPlayer::save(file, indent);
+}
+
+void CRoomAutoSoundPlayer::load(SimpleFile *file) {
+ file->readNumber();
+ CAutoSoundPlayer::load(file);
+}
+
+bool CRoomAutoSoundPlayer::handleEvent(CEnterRoomMsg &msg) {
+ warning("CRoomAutoSoundPlayer::handleEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/sound/room_auto_sound_player.h b/engines/titanic/sound/room_auto_sound_player.h
new file mode 100644
index 0000000000..a3ec35cb04
--- /dev/null
+++ b/engines/titanic/sound/room_auto_sound_player.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ROOM_AUTO_SOUND_PLAYER_H
+#define TITANIC_ROOM_AUTO_SOUND_PLAYER_H
+
+#include "titanic/sound/auto_sound_player.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CRoomAutoSoundPlayer : public CAutoSoundPlayer, CEnterRoomMsgTarget {
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ROOM_AUTO_SOUND_PLAYER_H */
diff --git a/engines/titanic/sound/room_trigger_auto_music_player.cpp b/engines/titanic/sound/room_trigger_auto_music_player.cpp
new file mode 100644
index 0000000000..3c0ac0536b
--- /dev/null
+++ b/engines/titanic/sound/room_trigger_auto_music_player.cpp
@@ -0,0 +1,42 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/sound/room_trigger_auto_music_player.h"
+
+namespace Titanic {
+
+void CRoomTriggerAutoMusicPlayer::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CTriggerAutoMusicPlayer::save(file, indent);
+}
+
+void CRoomTriggerAutoMusicPlayer::load(SimpleFile *file) {
+ file->readNumber();
+ CTriggerAutoMusicPlayer::load(file);
+}
+
+bool CRoomTriggerAutoMusicPlayer::handleEvent(CEnterRoomMsg &msg) {
+ warning("CRoomTriggerAutoMusicPlayer::handleEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/sound/room_trigger_auto_music_player.h b/engines/titanic/sound/room_trigger_auto_music_player.h
new file mode 100644
index 0000000000..9a478a0a08
--- /dev/null
+++ b/engines/titanic/sound/room_trigger_auto_music_player.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_ROOM_TRIGGER_AUTO_MUSIC_PLAYER_H
+#define TITANIC_ROOM_TRIGGER_AUTO_MUSIC_PLAYER_H
+
+#include "titanic/sound/trigger_auto_music_player.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CRoomTriggerAutoMusicPlayer : public CTriggerAutoMusicPlayer, CEnterRoomMsgTarget {
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_ROOM_TRIGGER_AUTO_MUSIC_PLAYER_H */
diff --git a/engines/titanic/sound/season_noises.cpp b/engines/titanic/sound/season_noises.cpp
new file mode 100644
index 0000000000..beacdefffa
--- /dev/null
+++ b/engines/titanic/sound/season_noises.cpp
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/sound/season_noises.h"
+
+namespace Titanic {
+
+CSeasonNoises::CSeasonNoises() : CViewAutoSoundPlayer(), _fieldF0(0),
+ _string2("NULL"), _string3("NULL"), _string4("NULL"), _string5("NULL") {
+}
+
+void CSeasonNoises::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldF0, indent);
+ file->writeQuotedLine(_string2, indent);
+ file->writeQuotedLine(_string3, indent);
+ file->writeQuotedLine(_string4, indent);
+ file->writeQuotedLine(_string5, indent);
+
+ CViewAutoSoundPlayer::save(file, indent);
+}
+
+void CSeasonNoises::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldF0 = file->readNumber();
+ _string2 = file->readString();
+ _string3 = file->readString();
+ _string4 = file->readString();
+ _string5 = file->readString();
+
+ CViewAutoSoundPlayer::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/sound/season_noises.h b/engines/titanic/sound/season_noises.h
new file mode 100644
index 0000000000..7746c164e8
--- /dev/null
+++ b/engines/titanic/sound/season_noises.h
@@ -0,0 +1,54 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SEASON_NOISES_H
+#define TITANIC_SEASON_NOISES_H
+
+#include "titanic/sound/view_auto_sound_player.h"
+
+namespace Titanic {
+
+class CSeasonNoises : public CViewAutoSoundPlayer {
+private:
+ int _fieldF0;
+ CString _string2;
+ CString _string3;
+ CString _string4;
+ CString _string5;
+public:
+ CLASSDEF
+ CSeasonNoises();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SEASON_NOISES_H */
diff --git a/engines/titanic/sound/seasonal_music_player.cpp b/engines/titanic/sound/seasonal_music_player.cpp
new file mode 100644
index 0000000000..c4a8f02f43
--- /dev/null
+++ b/engines/titanic/sound/seasonal_music_player.cpp
@@ -0,0 +1,66 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/sound/seasonal_music_player.h"
+
+namespace Titanic {
+
+CSeasonalMusicPlayer::CSeasonalMusicPlayer() : CAutoMusicPlayerBase() {
+ _fieldD8 = 0;
+ _fieldDC = 1;
+ _fieldE0 = 0;
+ _fieldE4 = 0;
+ _fieldE8 = -4;
+ _fieldEC = -2;
+ _fieldF0 = -4;
+ _fieldF4 = -4;
+}
+
+void CSeasonalMusicPlayer::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldD8, indent);
+ file->writeNumberLine(_fieldDC, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_fieldE8, indent);
+ file->writeNumberLine(_fieldEC, indent);
+ file->writeNumberLine(_fieldF0, indent);
+ file->writeNumberLine(_fieldF4, indent);
+
+ CAutoMusicPlayerBase::save(file, indent);
+}
+
+void CSeasonalMusicPlayer::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldD8 = file->readNumber();
+ _fieldDC = file->readNumber();
+ _fieldE0 = file->readNumber();
+ _fieldE4 = file->readNumber();
+ _fieldE8 = file->readNumber();
+ _fieldEC = file->readNumber();
+ _fieldF0 = file->readNumber();
+ _fieldF4 = file->readNumber();
+
+ CAutoMusicPlayerBase::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/sound/seasonal_music_player.h b/engines/titanic/sound/seasonal_music_player.h
new file mode 100644
index 0000000000..da19e1f0b0
--- /dev/null
+++ b/engines/titanic/sound/seasonal_music_player.h
@@ -0,0 +1,57 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SEASONAL_MUSIC_PLAYER_H
+#define TITANIC_SEASONAL_MUSIC_PLAYER_H
+
+#include "titanic/sound/auto_music_player_base.h"
+
+namespace Titanic {
+
+class CSeasonalMusicPlayer : public CAutoMusicPlayerBase {
+private:
+ int _fieldD8;
+ int _fieldDC;
+ int _fieldE0;
+ int _fieldE4;
+ int _fieldE8;
+ int _fieldEC;
+ int _fieldF0;
+ int _fieldF4;
+public:
+ CLASSDEF
+ CSeasonalMusicPlayer();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_LINK_ITEM_H */
diff --git a/engines/titanic/sound/sound.cpp b/engines/titanic/sound/sound.cpp
new file mode 100644
index 0000000000..14dba2e152
--- /dev/null
+++ b/engines/titanic/sound/sound.cpp
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/sound/sound.h"
+#include "titanic/game_manager.h"
+
+namespace Titanic {
+
+CSound::CSound(CGameManager *owner) : _gameManager(owner) {
+}
+
+void CSound::save(SimpleFile *file) const {
+ _soundManager.save(file);
+}
+
+void CSound::load(SimpleFile *file) {
+ _soundManager.load(file);
+}
+
+void CSound::preLoad() {
+ _soundManager.preLoad();
+
+ if (_gameManager)
+ _gameManager->_musicRoom.preLoad();
+}
+
+void CSound::preEnterView(CViewItem *newView, bool isNewRoom) {
+ warning("CSound::preEnterView");
+}
+
+} // End of namespace Titanic z
diff --git a/engines/titanic/sound/sound.h b/engines/titanic/sound/sound.h
new file mode 100644
index 0000000000..4c0dab5dd5
--- /dev/null
+++ b/engines/titanic/sound/sound.h
@@ -0,0 +1,79 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SOUND_H
+#define TITANIC_SOUND_H
+
+#include "titanic/simple_file.h"
+#include "titanic/sound/sound_manager.h"
+#include "titanic/core/view_item.h"
+
+namespace Titanic {
+
+class CGameManager;
+
+class CSound {
+private:
+ CGameManager *_gameManager;
+ QSoundManager _soundManager;
+public:
+ CSound(CGameManager *owner);
+
+ /**
+ * Save the data for the class to file
+ */
+ void save(SimpleFile *file) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ void load(SimpleFile *file);
+
+ /**
+ * Called when a game is about to be loaded
+ */
+ void preLoad();
+
+ /**
+ * Called when loading a game is complete
+ */
+ void postLoad() { _soundManager.postLoad(); }
+
+ /**
+ * Called when a game is about to be saved
+ */
+ void preSave() { _soundManager.preSave(); }
+
+ /**
+ * Called when a game has finished being saved
+ */
+ void postSave() { _soundManager.postSave(); }
+
+ /**
+ * Called when the view has been changed
+ */
+ void preEnterView(CViewItem *newView, bool isNewRoom);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SOUND_H */
diff --git a/engines/titanic/sound/sound_manager.cpp b/engines/titanic/sound/sound_manager.cpp
new file mode 100644
index 0000000000..143dd8385f
--- /dev/null
+++ b/engines/titanic/sound/sound_manager.cpp
@@ -0,0 +1,127 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/sound/sound_manager.h"
+
+namespace Titanic {
+
+SoundManager::SoundManager() : _field4(0), _field8(0),
+ _fieldC(0), _field10(0), _field14(1) {
+}
+
+/*------------------------------------------------------------------------*/
+
+QSoundManager::QSoundManager() : _field18(0), _field1C(0) {
+ Common::fill(&_field4A0[0], &_field4A0[16], 0);
+}
+
+int QSoundManager::proc3() {
+ warning("TODO");
+ return 0;
+}
+
+int QSoundManager::proc4() {
+ warning("TODO");
+ return 0;
+}
+
+int QSoundManager::proc5() {
+ warning("TODO");
+ return 0;
+}
+
+void QSoundManager::proc6() {
+ warning("TODO");
+}
+
+void QSoundManager::proc7() {
+ warning("TODO");
+}
+
+void QSoundManager::proc8() {
+ warning("TODO");
+}
+
+void QSoundManager::proc9() {
+ warning("TODO");
+}
+
+void QSoundManager::proc10() {
+ warning("TODO");
+}
+
+void QSoundManager::proc11() {
+ warning("TODO");
+}
+
+void QSoundManager::proc12() {
+ warning("TODO");
+}
+
+void QSoundManager::proc13() {
+ warning("TODO");
+}
+
+void QSoundManager::proc14() {
+ warning("TODO");
+}
+
+int QSoundManager::proc15() {
+ warning("TODO");
+ return 0;
+}
+
+int QSoundManager::proc16() {
+ warning("TODO");
+ return 0;
+}
+
+void QSoundManager::WaveMixPump() {
+ warning("TODO");
+}
+
+int QSoundManager::proc18() const {
+ warning("TODO");
+ return 0;
+}
+
+void QSoundManager::proc19(int v) {
+ warning("TODO");
+}
+
+void QSoundManager::proc20(int v) {
+ warning("TODO");
+}
+
+void QSoundManager::proc21(int v) {
+ warning("TODO");
+}
+
+void QSoundManager::proc29() {
+ warning("TODO");
+}
+
+void QSoundManager::proc30() {
+ warning("TODO");
+}
+
+} // End of namespace Titanic z
diff --git a/engines/titanic/sound/sound_manager.h b/engines/titanic/sound/sound_manager.h
new file mode 100644
index 0000000000..99513aefe8
--- /dev/null
+++ b/engines/titanic/sound/sound_manager.h
@@ -0,0 +1,129 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SOUND_MANAGER_H
+#define TITANIC_SOUND_MANAGER_H
+
+#include "titanic/simple_file.h"
+
+namespace Titanic {
+
+class SoundManager {
+protected:
+ int _field4;
+ int _field8;
+ int _fieldC;
+ int _field10;
+ int _field14;
+public:
+ SoundManager();
+
+ virtual int proc3() const { return 0; }
+ virtual int proc4() const { return 0; }
+ virtual int proc5() const { return 0; }
+ virtual void proc6() = 0;
+ virtual void proc7() = 0;
+ virtual void proc8() = 0;
+ virtual void proc9() {}
+ virtual void proc10() = 0;
+ virtual void proc11() = 0;
+ virtual void proc12() {}
+ virtual void proc13() {}
+ virtual void proc14() = 0;
+ virtual int proc15() const { return 0; }
+ virtual int proc16() const { return 0; }
+ virtual void WaveMixPump() {}
+ virtual int proc18() const { return 0; }
+ virtual void proc19(int v) { _field4 = v; }
+ virtual void proc20(int v) { _field8 = v; }
+ virtual void proc21(int v) { _fieldC = v; }
+ virtual void proc22(int v) { _field10 = v; }
+
+ /**
+ * Called when a game is about to be loaded
+ */
+ virtual void preLoad() { proc10(); }
+
+ /**
+ * Load the data for the class from file
+ */
+ void load(SimpleFile *file) {}
+
+ /**
+ * Called after loading of a game is completed
+ */
+ virtual void postLoad() {}
+
+ /**
+ * Called when a game is about to be saved
+ */
+ virtual void preSave() {}
+
+ /**
+ * Save the data for the class to file
+ */
+ void save(SimpleFile *file) const {}
+
+ /**
+ * Called after saving is complete
+ */
+ virtual void postSave() {}
+
+ virtual void proc29() {}
+};
+
+class QSoundManager : public SoundManager {
+public:
+ int _field18;
+ int _field1C;
+
+ int _field4A0[16];
+public:
+ QSoundManager();
+
+ virtual int proc3();
+ virtual int proc4();
+ virtual int proc5();
+ virtual void proc6();
+ virtual void proc7();
+ virtual void proc8();
+ virtual void proc9();
+ virtual void proc10();
+ virtual void proc11();
+ virtual void proc12();
+ virtual void proc13();
+ virtual void proc14();
+ virtual int proc15();
+ virtual int proc16();
+ virtual void WaveMixPump();
+ virtual int proc18() const;
+ virtual void proc19(int v);
+ virtual void proc20(int v);
+ virtual void proc21(int v);
+
+ virtual void proc29();
+ virtual void proc30();
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_QSOUND_MANAGER_H */
diff --git a/engines/titanic/sound/titania_speech.cpp b/engines/titanic/sound/titania_speech.cpp
new file mode 100644
index 0000000000..16a88e40ec
--- /dev/null
+++ b/engines/titanic/sound/titania_speech.cpp
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/sound/titania_speech.h"
+
+namespace Titanic {
+
+void CTitaniaSpeech::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_value1, indent);
+ file->writeNumberLine(_value2, indent);
+
+ CGameObject::save(file, indent);
+}
+
+void CTitaniaSpeech::load(SimpleFile *file) {
+ file->readNumber();
+ _value1 = file->readNumber();
+ _value2 = file->readNumber();
+
+ CGameObject::load(file);
+}
+
+bool CTitaniaSpeech::handleEvent(CEnterRoomMsg &msg) {
+ warning("CTitaniaSpeech::handleEvent");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/sound/titania_speech.h b/engines/titanic/sound/titania_speech.h
new file mode 100644
index 0000000000..09a8495fef
--- /dev/null
+++ b/engines/titanic/sound/titania_speech.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TITANIA_SPEECH_H
+#define TITANIC_TITANIA_SPEECH_H
+
+#include "titanic/core/game_object.h"
+#include "titanic/messages/messages.h"
+
+namespace Titanic {
+
+class CTitaniaSpeech : public CGameObject {
+private:
+ int _value1, _value2;
+protected:
+ virtual bool handleEvent(CEnterRoomMsg &msg);
+public:
+ CLASSDEF
+ CTitaniaSpeech() : CGameObject(), _value1(1), _value2(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TITANIA_SPEECH_H */
diff --git a/engines/titanic/sound/trigger_auto_music_player.cpp b/engines/titanic/sound/trigger_auto_music_player.cpp
new file mode 100644
index 0000000000..17499a70e1
--- /dev/null
+++ b/engines/titanic/sound/trigger_auto_music_player.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/sound/trigger_auto_music_player.h"
+
+namespace Titanic {
+
+void CTriggerAutoMusicPlayer::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_fieldBC, indent);
+ CGameObject::save(file, indent);
+}
+
+void CTriggerAutoMusicPlayer::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldBC = file->readString();
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/sound/trigger_auto_music_player.h b/engines/titanic/sound/trigger_auto_music_player.h
new file mode 100644
index 0000000000..6387236181
--- /dev/null
+++ b/engines/titanic/sound/trigger_auto_music_player.h
@@ -0,0 +1,49 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TRIGGER_AUTO_MUSIC_PLAYER_H
+#define TITANIC_TRIGGER_AUTO_MUSIC_PLAYER_H
+
+#include "titanic/core/game_object.h"
+
+namespace Titanic {
+
+class CTriggerAutoMusicPlayer : public CGameObject {
+protected:
+ CString _fieldBC;
+public:
+ CLASSDEF
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TRIGGER_AUTO_MUSIC_PLAYER_H */
diff --git a/engines/titanic/sound/view_auto_sound_player.cpp b/engines/titanic/sound/view_auto_sound_player.cpp
new file mode 100644
index 0000000000..3d6c92fe22
--- /dev/null
+++ b/engines/titanic/sound/view_auto_sound_player.cpp
@@ -0,0 +1,39 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/sound/view_auto_sound_player.h"
+
+namespace Titanic {
+
+void CViewAutoSoundPlayer::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldEC, indent);
+ CAutoSoundPlayer::save(file, indent);
+}
+
+void CViewAutoSoundPlayer::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldEC = file->readNumber();
+ CAutoSoundPlayer::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/sound/view_auto_sound_player.h b/engines/titanic/sound/view_auto_sound_player.h
new file mode 100644
index 0000000000..60de391ecb
--- /dev/null
+++ b/engines/titanic/sound/view_auto_sound_player.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_VIEW_AUTO_SOUND_PLAYER_H
+#define TITANIC_VIEW_AUTO_SOUND_PLAYER_H
+
+#include "titanic/sound/auto_sound_player.h"
+
+namespace Titanic {
+
+class CViewAutoSoundPlayer : public CAutoSoundPlayer {
+private:
+ int _fieldEC;
+public:
+ CLASSDEF
+ CViewAutoSoundPlayer() : CAutoSoundPlayer(), _fieldEC(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_VIEW_AUTO_SOUND_PLAYER_H */
diff --git a/engines/titanic/sound/view_toggles_other_music.cpp b/engines/titanic/sound/view_toggles_other_music.cpp
new file mode 100644
index 0000000000..262d7de628
--- /dev/null
+++ b/engines/titanic/sound/view_toggles_other_music.cpp
@@ -0,0 +1,44 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/sound/view_toggles_other_music.h"
+
+namespace Titanic {
+
+CViewTogglesOtherMusic::CViewTogglesOtherMusic() : CEnterViewTogglesOtherMusic(), _fieldCC(0) {
+}
+
+void CViewTogglesOtherMusic::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeNumberLine(_fieldCC, indent);
+
+ CEnterViewTogglesOtherMusic::save(file, indent);
+}
+
+void CViewTogglesOtherMusic::load(SimpleFile *file) {
+ file->readNumber();
+ _fieldCC = file->readNumber();
+
+ CEnterViewTogglesOtherMusic::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/sound/view_toggles_other_music.h b/engines/titanic/sound/view_toggles_other_music.h
new file mode 100644
index 0000000000..68fa47b2be
--- /dev/null
+++ b/engines/titanic/sound/view_toggles_other_music.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_VIEW_TOGGLES_OTHER_MUSIC_H
+#define TITANIC_VIEW_TOGGLES_OTHER_MUSIC_H
+
+#include "titanic/sound/enter_view_toggles_other_music.h"
+
+namespace Titanic {
+
+class CViewTogglesOtherMusic : public CEnterViewTogglesOtherMusic {
+private:
+ int _fieldCC;
+public:
+ CLASSDEF
+ CViewTogglesOtherMusic();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_VIEW_TOGGLES_OTHER_MUSIC_H */
diff --git a/engines/titanic/sound/water_lapping_sounds.cpp b/engines/titanic/sound/water_lapping_sounds.cpp
new file mode 100644
index 0000000000..b3f5d23a2c
--- /dev/null
+++ b/engines/titanic/sound/water_lapping_sounds.cpp
@@ -0,0 +1,47 @@
+/* ScummVM - Graphic Adventure Engine
+*
+* ScummVM is the legal property of its developers, whose names
+* are too numerous to list here. Please refer to the COPYRIGHT
+* file distributed with this source distribution.
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*
+*/
+
+#include "titanic/sound/water_lapping_sounds.h"
+
+namespace Titanic {
+
+void CWaterLappingSounds::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ file->writeQuotedLine(_string1, indent);
+ file->writeNumberLine(_fieldD4, indent);
+ file->writeNumberLine(_fieldE0, indent);
+ file->writeNumberLine(_value, indent);
+
+ CRoomAutoSoundPlayer::save(file, indent);
+}
+
+void CWaterLappingSounds::load(SimpleFile *file) {
+ file->readNumber();
+ _string1 = file->readString();
+ _fieldD4 = file->readNumber();
+ _fieldE0 = file->readNumber();
+ _value = file->readNumber();
+
+ CRoomAutoSoundPlayer::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/sound/water_lapping_sounds.h b/engines/titanic/sound/water_lapping_sounds.h
new file mode 100644
index 0000000000..0d885bedd4
--- /dev/null
+++ b/engines/titanic/sound/water_lapping_sounds.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_WATER_LAPPING_SOUNDS_H
+#define TITANIC_WATER_LAPPING_SOUNDS_H
+
+#include "titanic/sound/room_auto_sound_player.h"
+
+namespace Titanic {
+
+class CWaterLappingSounds : public CRoomAutoSoundPlayer {
+public:
+ int _value;
+public:
+ CLASSDEF
+ CWaterLappingSounds() : CRoomAutoSoundPlayer(), _value(0) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_WATER_LAPPING_SOUNDS_H */
diff --git a/engines/titanic/star_control/star_control.cpp b/engines/titanic/star_control/star_control.cpp
new file mode 100644
index 0000000000..c8ee8c2d7b
--- /dev/null
+++ b/engines/titanic/star_control/star_control.cpp
@@ -0,0 +1,56 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/screen_manager.h"
+#include "titanic/star_control/star_control.h"
+
+namespace Titanic {
+
+CStarControl::CStarControl() : _fieldBC(0), _field80A0(0),
+ _field80A4(0), _field80A8(0), _field80AC(0), _field80B0(0) {
+}
+
+void CStarControl::save(SimpleFile *file, int indent) const {
+ file->writeNumberLine(1, indent);
+ CGameObject::save(file, indent);
+}
+
+void CStarControl::load(SimpleFile *file) {
+ int val = file->readNumber();
+
+ if (!val) {
+ _sub1.load(file, 0);
+ if (!_sub1.initDocument())
+ error("Couldn't initialise the StarField document");
+
+ _sub11.load(file, 0);
+ CScreenManager *screenManager = CScreenManager::setCurrent();
+ if (!screenManager)
+ error("There's no screen manager during loading");
+
+ warning("TODO");
+ }
+
+ CGameObject::load(file);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control.h b/engines/titanic/star_control/star_control.h
new file mode 100644
index 0000000000..9462cee559
--- /dev/null
+++ b/engines/titanic/star_control/star_control.h
@@ -0,0 +1,59 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STAR_CONTROL_H
+#define TITANIC_STAR_CONTROL_H
+
+#include "titanic/core/game_object.h"
+#include "titanic/star_control/star_control_sub1.h"
+#include "titanic/star_control/star_control_sub11.h"
+
+namespace Titanic {
+
+class CStarControl : public CGameObject {
+private:
+ int _fieldBC;
+ CStarControlSub1 _sub1;
+ CStarControlSub11 _sub11;
+ int _field80A0;
+ int _field80A4;
+ int _field80A8;
+ int _field80AC;
+ int _field80B0;
+public:
+ CLASSDEF
+ CStarControl();
+
+ /**
+ * Save the data for the class to file
+ */
+ virtual void save(SimpleFile *file, int indent) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ virtual void load(SimpleFile *file);
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STAR_CONTROL_H */
diff --git a/engines/titanic/star_control/star_control_sub1.cpp b/engines/titanic/star_control/star_control_sub1.cpp
new file mode 100644
index 0000000000..6adc9a64d0
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub1.cpp
@@ -0,0 +1,49 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/star_control/star_control_sub1.h"
+
+namespace Titanic {
+
+CStarControlSub1::CStarControlSub1() :
+ _field7DA8(0), _field7DAC(0), _field7DB0(0),
+ _field7DB4(1), _field7DB8(0), _field7DBC(0) {
+}
+
+void CStarControlSub1::load(SimpleFile *file, int param) {
+ if (!param) {
+ _sub7.load(file);
+ _sub8.load(file);
+ _field7DA8 = file->readNumber();
+ _field7DAC = file->readNumber();
+ _field7DB0 = file->readNumber();
+ _field7DB4 = file->readNumber();
+ _field7DBC = file->readNumber();
+ }
+}
+
+bool CStarControlSub1::initDocument() {
+ warning("CStarControlSub1::initDocument");
+ return true;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub1.h b/engines/titanic/star_control/star_control_sub1.h
new file mode 100644
index 0000000000..2e76a1ff41
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub1.h
@@ -0,0 +1,61 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STAR_CONTROL_SUB1_H
+#define TITANIC_STAR_CONTROL_SUB1_H
+
+#include "titanic/star_control/star_control_sub2.h"
+#include "titanic/star_control/star_control_sub5.h"
+#include "titanic/star_control/star_control_sub7.h"
+#include "titanic/star_control/star_control_sub8.h"
+#include "titanic/star_control/star_control_sub9.h"
+#include "titanic/star_control/star_control_sub10.h"
+
+namespace Titanic {
+
+class CStarControlSub1 : public CStarControlSub2 {
+private:
+ CStarControlSub7 _sub7;
+ CStarControlSub8 _sub8;
+ CStarControlSub9 _sub9;
+ CStarControlSub10 _sub10;
+ CStarControlSub5 _sub5;
+ int _field7DA8;
+ int _field7DAC;
+ int _field7DB0;
+ int _field7DB4;
+ int _field7DB8;
+ int _field7DBC;
+public:
+ CStarControlSub1();
+
+ /**
+ * Load the data for the class from file
+ */
+ void load(SimpleFile *file, int param);
+
+ bool initDocument();
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STAR_CONTROL_SUB1_H */
diff --git a/engines/titanic/star_control/star_control_sub10.cpp b/engines/titanic/star_control/star_control_sub10.cpp
new file mode 100644
index 0000000000..ca32f5e7dc
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub10.cpp
@@ -0,0 +1,28 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/star_control/star_control_sub10.h"
+
+namespace Titanic {
+
+
+} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub10.h b/engines/titanic/star_control/star_control_sub10.h
new file mode 100644
index 0000000000..af4ad17c6e
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub10.h
@@ -0,0 +1,38 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STAR_CONTROL_SUB10_H
+#define TITANIC_STAR_CONTROL_SUB10_H
+
+namespace Titanic {
+
+class CStarControlSub10 {
+private:
+ int _field0;
+ int _field4;
+public:
+ CStarControlSub10() : _field0(0), _field4(0) {}
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STAR_CONTROL_SUB10_H */
diff --git a/engines/titanic/star_control/star_control_sub11.cpp b/engines/titanic/star_control/star_control_sub11.cpp
new file mode 100644
index 0000000000..6c782933ae
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub11.cpp
@@ -0,0 +1,51 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/screen_manager.h"
+#include "titanic/star_control/star_control_sub11.h"
+
+namespace Titanic {
+
+CStarControlSub11::CStarControlSub11() :
+ _sub12(nullptr, nullptr), _sub13(nullptr),
+ _field4(0), _field8(0), _field118(0), _field20C(0),
+ _field210(0), _field214(0), _field218(0), _field21C(0) {
+ _sub12.proc3();
+}
+
+void CStarControlSub11::load(SimpleFile *file, int param) {
+ if (!param) {
+ _sub12.load(file, param);
+
+ _field118 = file->readNumber();
+ if (_field118)
+ _sub13.load(file, 0);
+
+ _field218 = file->readNumber();
+ _field21C = file->readNumber();
+ }
+}
+
+void CStarControlSub11::save(SimpleFile *file, int indent) const {
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub11.h b/engines/titanic/star_control/star_control_sub11.h
new file mode 100644
index 0000000000..6b6807049f
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub11.h
@@ -0,0 +1,63 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STAR_CONTROL_SUB11_H
+#define TITANIC_STAR_CONTROL_SUB11_H
+
+#include "titanic/simple_file.h"
+#include "titanic/star_control/star_control_sub12.h"
+#include "titanic/star_control/star_control_sub13.h"
+#include "titanic/star_control/star_control_sub15.h"
+
+namespace Titanic {
+
+class CStarControlSub11 {
+private:
+ int _field0;
+ int _field4;
+ int _field8;
+ CStarControlSub12 _sub12;
+ int _field118;
+ CStarControlSub13 _sub13;
+ CStarControlSub15 _sub15;
+ int _field20C;
+ int _field210;
+ int _field214;
+ int _field218;
+ int _field21C;
+public:
+ CStarControlSub11();
+
+ /**
+ * Load the data for the class from file
+ */
+ void load(SimpleFile *file, int param);
+
+ /**
+ * Save the data for the class to file
+ */
+ void save(SimpleFile *file, int indent) const;
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STAR_CONTROL_SUB11_H */
diff --git a/engines/titanic/star_control/star_control_sub12.cpp b/engines/titanic/star_control/star_control_sub12.cpp
new file mode 100644
index 0000000000..3e288e83c0
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub12.cpp
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/star_control/star_control_sub12.h"
+
+namespace Titanic {
+
+CStarControlSub12::CStarControlSub12(void *val1, void *val2) :
+ _field4(-1), _field2C(0), _field108(0),
+ _sub13(val1) {
+}
+
+void CStarControlSub12::load(SimpleFile *file, int param) {
+ _sub13.load(file, param);
+}
+
+void CStarControlSub12::save(SimpleFile *file, int indent) const {
+ _sub13.save(file, indent);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub12.h b/engines/titanic/star_control/star_control_sub12.h
new file mode 100644
index 0000000000..6bfc4158b4
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub12.h
@@ -0,0 +1,64 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STAR_CONTROL_SUB12_H
+#define TITANIC_STAR_CONTROL_SUB12_H
+
+#include "titanic/simple_file.h"
+#include "titanic/star_control/star_control_sub13.h"
+
+namespace Titanic {
+
+class CStarControlSub12 {
+ struct ArrayEntry {
+ int _field0;
+ int _field4;
+ int _field8;
+ ArrayEntry() : _field0(0), _field4(0), _field8(0) {}
+ };
+private:
+ int _field4;
+ ArrayEntry _array[3];
+ int _field2C;
+ CStarControlSub13 _sub13;
+ int _field108;
+ int _field21C;
+public:
+ CStarControlSub12(void *val1, void *val2);
+ virtual ~CStarControlSub12() {}
+
+ virtual void proc3() {}
+
+ /**
+ * Load the data for the class from file
+ */
+ void load(SimpleFile *file, int param);
+
+ /**
+ * Save the data for the class to file
+ */
+ void save(SimpleFile *file, int indent) const;
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STAR_CONTROL_SUB12_H */
diff --git a/engines/titanic/star_control/star_control_sub13.cpp b/engines/titanic/star_control/star_control_sub13.cpp
new file mode 100644
index 0000000000..fbe40b9532
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub13.cpp
@@ -0,0 +1,75 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/star_control/star_control_sub13.h"
+
+namespace Titanic {
+
+CStarControlSub13::CStarControlSub13(void *ptr):
+ _field0(0), _field4(0), _field8(0), _fieldC0(0),
+ _fieldC4(0), _fieldC8(0), _fieldCC(0), _fieldD0(0) {
+ if (ptr) {
+ setup(ptr);
+ } else {
+ _fieldC = 0;
+ _field10 = 0x44480000;
+ _field14 = 0x461C4000;
+ _field18 = 0x41A00000;
+ _field1C = 0x41A00000;
+ _field20 = 600;
+ _field22 = 340;
+ _field24 = 0;
+ }
+
+ _fieldD4 = 0;
+}
+
+void CStarControlSub13::setup(void *ptr) {
+ // TODO
+}
+
+void CStarControlSub13::load(SimpleFile *file, int param) {
+ _field0 = file->readFloat();
+ _field4 = file->readFloat();
+ _field8 = file->readFloat();
+ _fieldC = file->readFloat();
+ _field10 = file->readFloat();
+ _field14 = file->readFloat();
+ _field18 = file->readFloat();
+ _field1C = file->readFloat();
+ _field20 = file->readNumber();
+ _field22 = _field20 >> 16;
+ _field24 = file->readNumber();
+
+ for (int idx = 0; idx < 5; ++idx)
+ _valArray[idx] = file->readFloat();
+
+ _sub14.load(file, param);
+ _fieldD4 = 0;
+}
+
+void CStarControlSub13::save(SimpleFile *file, int indent) const {
+ _sub14.save(file, indent);
+}
+
+
+} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub13.h b/engines/titanic/star_control/star_control_sub13.h
new file mode 100644
index 0000000000..983fa1c9d4
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub13.h
@@ -0,0 +1,73 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STAR_CONTROL_SUB13_H
+#define TITANIC_STAR_CONTROL_SUB13_H
+
+#include "titanic/simple_file.h"
+#include "titanic/star_control/star_control_sub6.h"
+#include "titanic/star_control/star_control_sub14.h"
+
+namespace Titanic {
+
+class CStarControlSub13 {
+private:
+ double _field0;
+ double _field4;
+ double _field8;
+ double _fieldC;
+ double _field10;
+ double _field14;
+ double _field18;
+ double _field1C;
+ int _field20;
+ int _field22;
+ int _field24;
+ double _valArray[5];
+ CStarControlSub14 _sub14;
+ CStarControlSub6 _sub1;
+ CStarControlSub6 _sub2;
+ int _fieldC0;
+ int _fieldC4;
+ int _fieldC8;
+ int _fieldCC;
+ int _fieldD0;
+ int _fieldD4;
+private:
+ void setup(void *ptr);
+public:
+ CStarControlSub13(void *ptr);
+
+ /**
+ * Load the data for the class from file
+ */
+ void load(SimpleFile *file, int param);
+
+ /**
+ * Save the data for the class to file
+ */
+ void save(SimpleFile *file, int indent) const;
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STAR_CONTROL_SUB13_H */
diff --git a/engines/titanic/star_control/star_control_sub14.cpp b/engines/titanic/star_control/star_control_sub14.cpp
new file mode 100644
index 0000000000..3d02705af5
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub14.cpp
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/star_control/star_control_sub14.h"
+
+namespace Titanic {
+
+CStarControlSub14::CStarControlSub14() :
+ _field0(0x3F800000), _field4(0), _field8(0), _fieldC(0),
+ _field10(0x3F800000), _field14(0), _field18(0), _field1C(0),
+ _field20(0x3F800000) {
+}
+
+void CStarControlSub14::load(SimpleFile *file, int param) {
+ _field0 = file->readFloat();
+ _field4 = file->readFloat();
+ _field8 = file->readFloat();
+ _fieldC = file->readFloat();
+ _field10 = file->readFloat();
+ _field14 = file->readFloat();
+ _field18 = file->readFloat();
+ _field1C = file->readFloat();
+ _field20 = file->readFloat();
+}
+
+void CStarControlSub14::save(SimpleFile *file, int indent) const {
+
+}
+
+
+} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub14.h b/engines/titanic/star_control/star_control_sub14.h
new file mode 100644
index 0000000000..63a58bf9c6
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub14.h
@@ -0,0 +1,58 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STAR_CONTROL_SUB14_H
+#define TITANIC_STAR_CONTROL_SUB14_H
+
+#include "titanic/simple_file.h"
+
+namespace Titanic {
+
+class CStarControlSub14 {
+private:
+ double _field0;
+ double _field4;
+ double _field8;
+ double _fieldC;
+ double _field10;
+ double _field14;
+ double _field18;
+ double _field1C;
+ double _field20;
+public:
+ CStarControlSub14();
+
+ /**
+ * Load the data for the class from file
+ */
+ void load(SimpleFile *file, int param);
+
+ /**
+ * Save the data for the class to file
+ */
+ void save(SimpleFile *file, int indent) const;
+
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STAR_CONTROL_SUB13_H */
diff --git a/engines/titanic/star_control/star_control_sub15.cpp b/engines/titanic/star_control/star_control_sub15.cpp
new file mode 100644
index 0000000000..07ed80ccc5
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub15.cpp
@@ -0,0 +1,31 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/star_control/star_control_sub15.h"
+
+namespace Titanic {
+
+CStarControlSub15::CStarControlSub15() : _field4(-1),
+ _field8(32), _fieldC(0), _field10(0), _field14(0) {
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub15.h b/engines/titanic/star_control/star_control_sub15.h
new file mode 100644
index 0000000000..2151c5a622
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub15.h
@@ -0,0 +1,43 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STAR_CONTROL_SUB15_H
+#define TITANIC_STAR_CONTROL_SUB15_H
+
+#include "titanic/simple_file.h"
+
+namespace Titanic {
+
+class CStarControlSub15 {
+private:
+ double _field4;
+ double _field8;
+ double _fieldC;
+ double _field10;
+ double _field14;
+public:
+ CStarControlSub15();
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STAR_CONTROL_SUB15_H */
diff --git a/engines/titanic/star_control/star_control_sub2.cpp b/engines/titanic/star_control/star_control_sub2.cpp
new file mode 100644
index 0000000000..9b9a5f84ad
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub2.cpp
@@ -0,0 +1,28 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/star_control/star_control_sub2.h"
+
+namespace Titanic {
+
+
+} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub2.h b/engines/titanic/star_control/star_control_sub2.h
new file mode 100644
index 0000000000..2bae029c96
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub2.h
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STAR_CONTROL_SUB2_H
+#define TITANIC_STAR_CONTROL_SUB2_H
+
+#include "titanic/star_control/star_control_sub3.h"
+
+namespace Titanic {
+
+class CStarControlSub2: public CStarControlSub3 {
+public:
+ virtual ~CStarControlSub2() {}
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STAR_CONTROL_SUB2_H */
diff --git a/engines/titanic/star_control/star_control_sub3.cpp b/engines/titanic/star_control/star_control_sub3.cpp
new file mode 100644
index 0000000000..c65a308535
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub3.cpp
@@ -0,0 +1,35 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/star_control/star_control_sub3.h"
+
+namespace Titanic {
+
+CStarControlSub3::CStarControlSub3() : _field4(0), _field8(0),
+ _fieldC(1), _field28(0), _field2C(0x3F800000) {
+}
+
+void CStarControlSub3::proc2() {
+ error("TODO");
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub3.h b/engines/titanic/star_control/star_control_sub3.h
new file mode 100644
index 0000000000..d6d1c30eed
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub3.h
@@ -0,0 +1,58 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STAR_CONTROL_SUB3_H
+#define TITANIC_STAR_CONTROL_SUB3_H
+
+#include "titanic/simple_file.h"
+#include "titanic/star_control/star_control_sub4.h"
+
+namespace Titanic {
+
+class CStarControlSub3 {
+protected:
+ int _field4;
+ int _field8;
+ int _fieldC;
+ CStarControlSub4 _sub4;
+ int _field28;
+ int _field2C;
+public:
+ CStarControlSub3();
+ virtual ~CStarControlSub3() {}
+
+ virtual void proc2();
+ virtual int proc3() { return 1; }
+ virtual int proc4() { return 0; }
+ virtual int proc5() { return 0; }
+ virtual int proc6() { return 0; }
+ virtual int proc7() { return 1; }
+
+ virtual void load(SimpleFile *file) {}
+
+ virtual void proc9() {}
+
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STAR_CONTROL_SUB3_H */
diff --git a/engines/titanic/star_control/star_control_sub4.cpp b/engines/titanic/star_control/star_control_sub4.cpp
new file mode 100644
index 0000000000..27ef859f51
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub4.cpp
@@ -0,0 +1,31 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/star_control/star_control_sub4.h"
+
+namespace Titanic {
+
+CStarControlSub4::CStarControlSub4() : _field0(0),
+ _field4(0), _fieldC(0), _field10(0), _field14(0) {
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub4.h b/engines/titanic/star_control/star_control_sub4.h
new file mode 100644
index 0000000000..4aa75f8566
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub4.h
@@ -0,0 +1,43 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STAR_CONTROL_SUB4_H
+#define TITANIC_STAR_CONTROL_SUB4_H
+
+namespace Titanic {
+
+class CStarControlSub4 {
+private:
+ int _field0;
+ int _field4;
+ int _field8;
+ int _fieldC;
+ int _field10;
+ int _field14;
+public:
+ CStarControlSub4();
+
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STAR_CONTROL_SUB4_H */
diff --git a/engines/titanic/star_control/star_control_sub5.cpp b/engines/titanic/star_control/star_control_sub5.cpp
new file mode 100644
index 0000000000..64e48e1814
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub5.cpp
@@ -0,0 +1,31 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/star_control/star_control_sub5.h"
+
+namespace Titanic {
+
+CStarControlSub5::CStarControlSub5() :
+ _field4(1), _field78AC(0), _field78B0(0) {
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub5.h b/engines/titanic/star_control/star_control_sub5.h
new file mode 100644
index 0000000000..c3621e93b4
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub5.h
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STAR_CONTROL_SUB5_H
+#define TITANIC_STAR_CONTROL_SUB5_H
+
+#include "titanic/star_control/star_control_sub6.h"
+
+namespace Titanic {
+
+class CStarControlSub5 {
+ struct SubEntry {
+ int _field0;
+ int _field4;
+ int _field8;
+ int _fieldC;
+ };
+private:
+ int _field4;
+ SubEntry _array[5];
+ CStarControlSub6 _sub1, _sub2;
+ int _field7914;
+ int _field78AC;
+ int _field78B0;
+public:
+ CStarControlSub5();
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STAR_CONTROL_SUB5_H */
diff --git a/engines/titanic/star_control/star_control_sub6.cpp b/engines/titanic/star_control/star_control_sub6.cpp
new file mode 100644
index 0000000000..48285a7dbe
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub6.cpp
@@ -0,0 +1,33 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/star_control/star_control_sub6.h"
+
+namespace Titanic {
+
+CStarControlSub6::CStarControlSub6() :
+ _field0(0x3F800000), _field4(0), _field8(0), _fieldC(0),
+ _field10(0x3F800000), _field14(0), _field18(0), _field1C(0),
+ _field20(0x3F800000), _field24(0), _field28(0), _field2C(0) {
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub6.h b/engines/titanic/star_control/star_control_sub6.h
new file mode 100644
index 0000000000..d57b35cf7c
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub6.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STAR_CONTROL_SUB6_H
+#define TITANIC_STAR_CONTROL_SUB6_H
+
+namespace Titanic {
+
+class CStarControlSub6 {
+private:
+ int _field0;
+ int _field4;
+ int _field8;
+ int _fieldC;
+ int _field10;
+ int _field14;
+ int _field18;
+ int _field1C;
+ int _field20;
+ int _field24;
+ int _field28;
+ int _field2C;
+public:
+ CStarControlSub6();
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STAR_CONTROL_SUB6_H */
diff --git a/engines/titanic/star_control/star_control_sub7.cpp b/engines/titanic/star_control/star_control_sub7.cpp
new file mode 100644
index 0000000000..0677e33558
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub7.cpp
@@ -0,0 +1,28 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/star_control/star_control_sub7.h"
+
+namespace Titanic {
+
+
+} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub7.h b/engines/titanic/star_control/star_control_sub7.h
new file mode 100644
index 0000000000..9999423d94
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub7.h
@@ -0,0 +1,35 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STAR_CONTROL_SUB7_H
+#define TITANIC_STAR_CONTROL_SUB7_H
+
+#include "titanic/star_control/star_control_sub3.h"
+namespace Titanic {
+
+class CStarControlSub7 : public CStarControlSub3 {
+public:
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STAR_CONTROL_SUB7_H */
diff --git a/engines/titanic/star_control/star_control_sub8.cpp b/engines/titanic/star_control/star_control_sub8.cpp
new file mode 100644
index 0000000000..cdb249b663
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub8.cpp
@@ -0,0 +1,31 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/star_control/star_control_sub8.h"
+
+namespace Titanic {
+
+CStarControlSub8::CStarControlSub8() :
+ _field0(0), _field4(0), _field8(-1), _fieldC(-1) {
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub8.h b/engines/titanic/star_control/star_control_sub8.h
new file mode 100644
index 0000000000..da95f89af9
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub8.h
@@ -0,0 +1,59 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STAR_CONTROL_SUB8_H
+#define TITANIC_STAR_CONTROL_SUB8_H
+
+#include "titanic/simple_file.h"
+
+namespace Titanic {
+
+class CStarControlSub8 {
+ struct StructEntry {
+ int _field0;
+ int _field4;
+ int _field8;
+ int _fieldC;
+ };
+private:
+ int _field0;
+ int _field4;
+ int _field8;
+ int _fieldC;
+ StructEntry _array[3];
+public:
+ CStarControlSub8();
+
+ /**
+ * Load the data for the class from file
+ */
+ void load(SimpleFile *file) {}
+
+ /**
+ * Save the data for the class to file
+ */
+ void save(SimpleFile *file, int indent) const {}
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STAR_CONTROL_SUB8_H */
diff --git a/engines/titanic/star_control/star_control_sub9.cpp b/engines/titanic/star_control/star_control_sub9.cpp
new file mode 100644
index 0000000000..92ce8f6a85
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub9.cpp
@@ -0,0 +1,28 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/star_control/star_control_sub9.h"
+
+namespace Titanic {
+
+
+} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub9.h b/engines/titanic/star_control/star_control_sub9.h
new file mode 100644
index 0000000000..67a14a5109
--- /dev/null
+++ b/engines/titanic/star_control/star_control_sub9.h
@@ -0,0 +1,42 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STAR_CONTROL_SUB9_H
+#define TITANIC_STAR_CONTROL_SUB9_H
+
+namespace Titanic {
+
+class CStarControlSub9 {
+ struct ArrayEntry {
+ int _field0;
+ int _field4;
+ int _field8;
+ ArrayEntry() : _field0(0), _field4(0), _field8(0) {}
+ };
+private:
+ ArrayEntry _array[80];
+public:
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STAR_CONTROL_SUB9_H */
diff --git a/engines/titanic/string.cpp b/engines/titanic/string.cpp
new file mode 100644
index 0000000000..5831b7dc3a
--- /dev/null
+++ b/engines/titanic/string.cpp
@@ -0,0 +1,99 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/algorithm.h"
+#include "titanic/string.h"
+
+namespace Titanic {
+
+CString CString::left(uint count) const {
+ return (count > size()) ? CString() : CString(c_str(), c_str() + count);
+}
+
+CString CString::right(uint count) const {
+ uint strSize = size();
+ return (count > strSize) ? CString() :
+ CString(c_str() + strSize - count, c_str() + strSize);
+}
+
+CString CString::mid(uint start, uint count) const {
+ if (start >= size())
+ return CString();
+ else
+ return CString(c_str() + start, MIN(count, size() - start));
+}
+
+CString CString::mid(uint start) const {
+ uint strSize = size();
+ assert(start <= strSize);
+ return mid(start, strSize - start);
+}
+
+int CString::indexOf(char c) const {
+ const char *charP = strchr(c_str(), c);
+ return charP ? charP - c_str() : -1;
+}
+
+int CString::lastIndexOf(char c) const {
+ const char *charP = strrchr(c_str(), c);
+ return charP ? charP - c_str() : -1;
+}
+
+FileType CString::fileTypeSuffix() const {
+ CString ext = right(1);
+ if (ext == "0" || ext == "4")
+ return FILETYPE_IMAGE;
+ else if (ext == "1")
+ return FILETYPE_WAV;
+ else if (ext == "2" || ext == "3")
+ return FILETYPE_MOVIE;
+
+ ext = right(3);
+ if (ext == "tga" || ext == "jpg")
+ return FILETYPE_IMAGE;
+ else if (ext == "wav")
+ return FILETYPE_WAV;
+ else if (ext == "avi" || ext == "mov")
+ return FILETYPE_MOVIE;
+ else if (ext == "dlg")
+ return FILETYPE_DLG;
+ else
+ return FILETYPE_UNKNOWN;
+}
+
+ImageType CString::imageTypeSuffix() const {
+ CString ext = right(1);
+ if (ext == "0")
+ return IMAGETYPE_TARGA;
+ else if (ext == "4")
+ return IMAGETYPE_JPEG;
+
+ ext = right(3);
+ if (ext == "tga")
+ return IMAGETYPE_TARGA;
+ else if (ext == "jpg")
+ return IMAGETYPE_JPEG;
+ else
+ return IMAGETYPE_UNKNOWN;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/string.h b/engines/titanic/string.h
new file mode 100644
index 0000000000..08b5649dc9
--- /dev/null
+++ b/engines/titanic/string.h
@@ -0,0 +1,99 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STRING_H
+#define TITANIC_STRING_H
+
+#include "common/scummsys.h"
+#include "common/str.h"
+
+namespace Titanic {
+
+enum FileType {
+ FILETYPE_UNKNOWN = 0, FILETYPE_IMAGE = 1, FILETYPE_MOVIE = 2,
+ FILETYPE_WAV = 3, FILETYPE_DLG = 4
+};
+
+enum ImageType {
+ IMAGETYPE_UNKNOWN = 0, IMAGETYPE_TARGA = 1, IMAGETYPE_JPEG = 2
+};
+
+class CString : public Common::String {
+public:
+ CString() : Common::String() {}
+ CString(const char *str) : Common::String(str) {}
+ CString(const char *str, uint32 len) : Common::String(str, len) {}
+ CString(const char *beginP, const char *endP) : Common::String(beginP, endP) {}
+ CString(const String &str) : Common::String(str) {}
+ explicit CString(char c) : Common::String(c) {}
+
+ /**
+ * Returns the left n characters of the string
+ */
+ CString left(uint count) const;
+
+ /**
+ * Returns the right n characters of the string
+ */
+ CString right(uint count) const;
+
+ /**
+ * Returns a substring from within the string
+ */
+ CString mid(uint start, uint count) const;
+
+ /**
+ * Returns a substring from within the string
+ */
+ CString mid(uint start) const;
+
+ /**
+ * Returns the index of the first occurance of a given character
+ */
+ int indexOf(char c) const;
+
+ /**
+ * Returns the index of the last occurance of a given character
+ */
+ int lastIndexOf(char c) const;
+
+ /**
+ * Returns the type of a filename based on it's extension
+ */
+ FileType fileTypeSuffix() const;
+
+ /**
+ * Returns the type of an image filename based on it's extension
+ */
+ ImageType imageTypeSuffix() const;
+
+ /**
+ * Parses the string as an integer and returns the value
+ */
+ int readInt() const {
+ return atoi(c_str());
+ }
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STRING_H */
diff --git a/engines/titanic/text_cursor.cpp b/engines/titanic/text_cursor.cpp
new file mode 100644
index 0000000000..e591dc38ed
--- /dev/null
+++ b/engines/titanic/text_cursor.cpp
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/rect.h"
+#include "common/textconsole.h"
+#include "titanic/text_cursor.h"
+
+namespace Titanic {
+
+CTextCursor::CTextCursor() : _active(false) {
+}
+
+Common::Rect CTextCursor::getBounds() {
+ warning("CTextCursor::getBounds");
+ return Common::Rect();
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/text_cursor.h b/engines/titanic/text_cursor.h
new file mode 100644
index 0000000000..1b03abdd6a
--- /dev/null
+++ b/engines/titanic/text_cursor.h
@@ -0,0 +1,41 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TEXT_CURSOR_H
+#define TITANIC_TEXT_CURSOR_H
+
+#include "common/scummsys.h"
+
+namespace Titanic {
+
+class CTextCursor {
+public:
+ bool _active;
+public:
+ CTextCursor();
+
+ Common::Rect getBounds();
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TEXT_CURSOR_H */
diff --git a/engines/titanic/titanic.cpp b/engines/titanic/titanic.cpp
new file mode 100644
index 0000000000..f29e776791
--- /dev/null
+++ b/engines/titanic/titanic.cpp
@@ -0,0 +1,115 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/scummsys.h"
+#include "common/archive.h"
+#include "common/config-manager.h"
+#include "common/debug-channels.h"
+#include "common/events.h"
+#include "engines/util.h"
+#include "graphics/scaler.h"
+#include "graphics/thumbnail.h"
+#include "titanic/titanic.h"
+#include "titanic/debugger.h"
+#include "titanic/carry/hose.h"
+#include "titanic/core/saveable_object.h"
+#include "titanic/game/get_lift_eye2.h"
+#include "titanic/game/parrot/parrot_lobby_object.h"
+#include "titanic/game/sgt/sgt_navigation.h"
+#include "titanic/game/sgt/sgt_state_room.h"
+#include "titanic/moves/enter_exit_first_class_state.h"
+#include "titanic/moves/enter_exit_sec_class_mini_lift.h"
+#include "titanic/moves/exit_pellerator.h"
+
+namespace Titanic {
+
+TitanicEngine *g_vm;
+
+TitanicEngine::TitanicEngine(OSystem *syst, const TitanicGameDescription *gameDesc)
+ : _gameDescription(gameDesc), Engine(syst), _randomSource("Titanic") {
+ g_vm = this;
+ _debugger = nullptr;
+ _events = nullptr;
+ _window = nullptr;
+ _screenManager = nullptr;
+}
+
+TitanicEngine::~TitanicEngine() {
+ delete _debugger;
+ delete _events;
+ delete _window;
+ delete _screenManager;
+ CSaveableObject::freeClassList();
+}
+
+void TitanicEngine::initializePath(const Common::FSNode &gamePath) {
+ Engine::initializePath(gamePath);
+ SearchMan.addSubDirectoryMatching(gamePath, "assets");
+}
+
+void TitanicEngine::initialize() {
+ // Set up debug channels
+ DebugMan.addDebugChannel(kDebugCore, "core", "Core engine debug level");
+ DebugMan.addDebugChannel(kDebugScripts, "scripts", "Game scripts");
+ DebugMan.addDebugChannel(kDebugGraphics, "graphics", "Graphics handling");
+ DebugMan.addDebugChannel(kDebugSound, "sound", "Sound and Music handling");
+
+ CSaveableObject::initClassList();
+ CEnterExitFirstClassState::init();
+ CGetLiftEye2::init();
+ CHose::init();
+ CParrotLobbyObject::init();
+ CSGTNavigation::init();
+ CSGTStateRoom::init();
+ CExitPellerator::init();
+ CEnterExitSecClassMiniLift::init();
+
+ _debugger = new Debugger(this);
+ _events = new Events(this);
+ _screenManager = new OSScreenManager(this);
+ _window = new CMainGameWindow(this);
+ _window->applicationStarting();
+}
+
+void TitanicEngine::deinitialize() {
+ CEnterExitFirstClassState::deinit();
+ CGetLiftEye2::deinit();
+ CHose::deinit();
+ CSGTNavigation::deinit();
+ CSGTStateRoom::deinit();
+ CExitPellerator::deinit();
+ CEnterExitSecClassMiniLift::deinit();
+}
+
+Common::Error TitanicEngine::run() {
+ initialize();
+
+ // Main event loop
+ while (!shouldQuit()) {
+ _events->pollEventsAndWait();
+ }
+
+ deinitialize();
+ return Common::kNoError;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/titanic.h b/engines/titanic/titanic.h
new file mode 100644
index 0000000000..8ed353f413
--- /dev/null
+++ b/engines/titanic/titanic.h
@@ -0,0 +1,115 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TITANIC_H
+#define TITANIC_TITANIC_H
+
+#include "common/scummsys.h"
+#include "common/random.h"
+#include "common/system.h"
+#include "common/serializer.h"
+#include "engines/advancedDetector.h"
+#include "engines/engine.h"
+#include "titanic/debugger.h"
+#include "titanic/events.h"
+#include "titanic/files_manager.h"
+#include "titanic/screen_manager.h"
+#include "titanic/main_game_window.h"
+
+/**
+ * This is the namespace of the Titanic engine.
+ *
+ * Status of this engine: In Development
+ *
+ * Games using this engine:
+ * - Starship Titanic
+ */
+namespace Titanic {
+
+enum TitanicDebugChannels {
+ kDebugCore = 1 << 0,
+ kDebugScripts = 1 << 1,
+ kDebugGraphics = 1 << 2,
+ kDebugSound = 1 << 3
+};
+
+#define TITANIC_SAVEGAME_VERSION 1
+
+#define SCREEN_WIDTH 640
+#define SCREEN_HEIGHT 480
+
+#define ERROR_BASIC 1
+#define ERROR_INTERMEDIATE 2
+#define ERROR_DETAILED 3
+
+struct TitanicGameDescription;
+class TitanicEngine;
+
+struct TitanicSavegameHeader {
+ uint8 _version;
+ Common::String _saveName;
+ Graphics::Surface *_thumbnail;
+ int _year, _month, _day;
+ int _hour, _minute;
+ int _totalFrames;
+};
+
+class TitanicEngine : public Engine {
+private:
+ /**
+ * Handles basic initialization
+ */
+ void initialize();
+
+ /**
+ * Handles game deinitialization
+ */
+ void deinitialize();
+protected:
+ const TitanicGameDescription *_gameDescription;
+ int _loadSaveSlot;
+
+ // Engine APIs
+ virtual void initializePath(const Common::FSNode &gamePath);
+ virtual Common::Error run();
+ virtual bool hasFeature(EngineFeature f) const;
+public:
+ CFilesManager _filesManager;
+ Debugger *_debugger;
+ Events *_events;
+ OSScreenManager *_screenManager;
+ CMainGameWindow *_window;
+ Common::RandomSource _randomSource;
+public:
+ TitanicEngine(OSystem *syst, const TitanicGameDescription *gameDesc);
+ virtual ~TitanicEngine();
+
+ uint32 getFeatures() const;
+ bool isDemo() const;
+ Common::Language getLanguage() const;
+};
+
+extern TitanicEngine *g_vm;
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TITANIC_H */
diff --git a/engines/titanic/true_talk/barbot_script.cpp b/engines/titanic/true_talk/barbot_script.cpp
new file mode 100644
index 0000000000..ab4fbb2384
--- /dev/null
+++ b/engines/titanic/true_talk/barbot_script.cpp
@@ -0,0 +1,103 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/textconsole.h"
+#include "titanic/true_talk/barbot_script.h"
+
+namespace Titanic {
+
+int BarbotScript::proc6() const {
+ warning("TODO");
+ return 2;
+}
+
+void BarbotScript::proc7(int v1, int v2) {
+ warning("TODO");
+}
+
+int BarbotScript::proc10() const {
+ warning("TODO");
+ return 0;
+}
+
+int BarbotScript::proc15() const {
+ warning("TODO");
+ return 0;
+}
+
+bool BarbotScript::proc16() const {
+ warning("TODO");
+ return false;
+}
+
+bool BarbotScript::proc17() const {
+ warning("TODO");
+ return false;
+}
+
+bool BarbotScript::proc18() const {
+ warning("TODO");
+ return false;
+}
+
+int BarbotScript::proc21(int v) {
+ warning("TODO");
+ return 0;
+}
+
+int BarbotScript::proc22() const {
+ warning("TODO");
+ return 0;
+}
+
+int BarbotScript::proc23() const {
+ warning("TODO");
+ return 0;
+}
+
+void BarbotScript::proc24() {
+ warning("TODO");
+}
+
+int BarbotScript::proc25() const {
+ warning("TODO");
+ return 0;
+}
+
+void BarbotScript::proc26() {
+}
+
+void BarbotScript::proc32() {
+ warning("TODO");
+}
+
+int BarbotScript::proc36() const {
+ warning("TODO");
+ return 0;
+}
+
+int BarbotScript::proc37() const {
+ warning("TODO");
+ return 0;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/true_talk/barbot_script.h b/engines/titanic/true_talk/barbot_script.h
new file mode 100644
index 0000000000..2ea86f0803
--- /dev/null
+++ b/engines/titanic/true_talk/barbot_script.h
@@ -0,0 +1,56 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BARBOT_SCRIPT_H
+#define TITANIC_BARBOT_SCRIPT_H
+
+#include "titanic/true_talk/tt_named_script.h"
+
+namespace Titanic {
+
+class BarbotScript : public TTNamedScript {
+public:
+ BarbotScript(int val1, const char *charClass, int v2,
+ const char *charName, int v3, int val2, int v4, int v5, int v6, int v7) :
+ TTNamedScript(val1, charClass, v2, charName, v3, val2, v4, v5, v6, v7) {}
+
+ virtual int proc6() const;
+ virtual void proc7(int v1, int v2);
+ virtual int proc10() const;
+ virtual int proc15() const;
+ virtual bool proc16() const;
+ virtual bool proc17() const;
+ virtual bool proc18() const;
+ virtual int proc21(int v);
+ virtual int proc22() const;
+ virtual int proc23() const;
+ virtual void proc24();
+ virtual int proc25() const;
+ virtual void proc26();
+ virtual void proc32();
+ virtual int proc36() const;
+ virtual int proc37() const;
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BARBOT_SCRIPT_H */
diff --git a/engines/titanic/true_talk/bellbot_script.cpp b/engines/titanic/true_talk/bellbot_script.cpp
new file mode 100644
index 0000000000..52d8a19145
--- /dev/null
+++ b/engines/titanic/true_talk/bellbot_script.cpp
@@ -0,0 +1,114 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/textconsole.h"
+#include "titanic/true_talk/bellbot_script.h"
+#include "titanic/true_talk/true_talk_manager.h"
+
+namespace Titanic {
+
+BellbotScript::BellbotScript(int val1, const char *charClass, int v2,
+ const char *charName, int v3, int val2) :
+ TTNamedScript(val1, charClass, v2, charName, v3, val2, -1, -1, -1, 0),
+ _field2D0(0), _field2D4(0), _field2D8(0), _field2DC(0) {
+ CTrueTalkManager::setFlags(25, 0);
+ CTrueTalkManager::setFlags(24, 0);
+ CTrueTalkManager::setFlags(40, 0);
+ CTrueTalkManager::setFlags(26, 0);
+
+ randomizeFlags();
+ _array[0] = 100;
+ _array[1] = 0;
+}
+
+int BellbotScript::proc6() const {
+ warning("TODO");
+ return 2;
+}
+
+void BellbotScript::proc7(int v1, int v2) {
+ warning("TODO");
+}
+
+int BellbotScript::proc10() const {
+ warning("TODO");
+ return 0;
+}
+
+int BellbotScript::proc15() const {
+ warning("TODO");
+ return 0;
+}
+
+bool BellbotScript::proc16() const {
+ warning("TODO");
+ return 0;
+}
+
+bool BellbotScript::proc17() const {
+ warning("TODO");
+ return 0;
+}
+
+bool BellbotScript::proc18() const {
+ warning("TODO");
+ return 0;
+}
+
+int BellbotScript::proc21(int v) {
+ warning("TODO");
+ return 0;
+}
+
+int BellbotScript::proc22() const {
+ warning("TODO");
+ return 0;
+}
+
+int BellbotScript::proc23() const {
+ warning("TODO");
+ return 0;
+}
+
+void BellbotScript::proc24() {
+ warning("TODO");
+}
+
+int BellbotScript::proc25() const {
+ warning("TODO");
+ return 0;
+}
+
+void BellbotScript::proc26() {
+}
+
+int BellbotScript::proc36() const {
+ warning("TODO");
+ return 0;
+}
+
+int BellbotScript::proc37() const {
+ warning("TODO");
+ return 0;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/true_talk/bellbot_script.h b/engines/titanic/true_talk/bellbot_script.h
new file mode 100644
index 0000000000..cc71c263b1
--- /dev/null
+++ b/engines/titanic/true_talk/bellbot_script.h
@@ -0,0 +1,60 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_BELLBOT_SCRIPT_H
+#define TITANIC_BELLBOT_SCRIPT_H
+
+#include "titanic/true_talk/tt_named_script.h"
+
+namespace Titanic {
+
+class BellbotScript : public TTNamedScript {
+private:
+ int _array[150];
+ int _field2D0;
+ int _field2D4;
+ int _field2D8;
+ int _field2DC;
+public:
+ BellbotScript(int val1, const char *charClass, int v2,
+ const char *charName, int v3, int val2);
+
+ virtual int proc6() const;
+ virtual void proc7(int v1, int v2);
+ virtual int proc10() const;
+ virtual int proc15() const;
+ virtual bool proc16() const;
+ virtual bool proc17() const;
+ virtual bool proc18() const;
+ virtual int proc21(int v);
+ virtual int proc22() const;
+ virtual int proc23() const;
+ virtual void proc24();
+ virtual int proc25() const;
+ virtual void proc26();
+ virtual int proc36() const;
+ virtual int proc37() const;
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_BELLBOT_SCRIPT_H */
diff --git a/engines/titanic/true_talk/deskbot_script.cpp b/engines/titanic/true_talk/deskbot_script.cpp
new file mode 100644
index 0000000000..f17c04145e
--- /dev/null
+++ b/engines/titanic/true_talk/deskbot_script.cpp
@@ -0,0 +1,131 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/textconsole.h"
+#include "titanic/true_talk/deskbot_script.h"
+#include "titanic/true_talk/true_talk_manager.h"
+
+namespace Titanic {
+
+DeskbotScript::DeskbotScript(int val1, const char *charClass, int v2,
+ const char *charName, int v3, int val2) :
+ TTNamedScript(val1, charClass, v2, charName, v3, val2, -1, -1, -1, 0) {
+ CTrueTalkManager::setFlags(18, 0);
+ CTrueTalkManager::setFlags(19, 0);
+ CTrueTalkManager::setFlags(20, 0);
+ CTrueTalkManager::setFlags(21, 0);
+ CTrueTalkManager::setFlags(22, 0);
+
+ randomizeFlags();
+ _array[0] = 100;
+ if (_field74 == 1)
+ _field74 = 0;
+}
+
+int DeskbotScript::proc6() const {
+ warning("TODO");
+ return 2;
+}
+
+void DeskbotScript::proc7(int v1, int v2) {
+ warning("TODO");
+}
+
+int DeskbotScript::proc10() const {
+ warning("TODO");
+ return 0;
+}
+
+int DeskbotScript::proc15() const {
+ warning("TODO");
+ return 0;
+}
+
+bool DeskbotScript::proc16() const {
+ warning("TODO");
+ return 0;
+}
+
+bool DeskbotScript::proc17() const {
+ warning("TODO");
+ return 0;
+}
+
+bool DeskbotScript::proc18() const {
+ warning("TODO");
+ return 0;
+}
+
+int DeskbotScript::proc21(int v) {
+ warning("TODO");
+ return 0;
+}
+
+int DeskbotScript::proc22() const {
+ warning("TODO");
+ return 0;
+}
+
+int DeskbotScript::proc23() const {
+ warning("TODO");
+ return 0;
+}
+
+void DeskbotScript::proc24() {
+ warning("TODO");
+}
+
+int DeskbotScript::proc25() const {
+ warning("TODO");
+ return 0;
+}
+
+void DeskbotScript::proc26() {
+}
+
+int DeskbotScript::proc36() const {
+ warning("TODO");
+ return 0;
+}
+
+int DeskbotScript::proc37() const {
+ warning("TODO");
+ return 0;
+}
+
+void DeskbotScript::proc38() {
+ warning("TODO");
+}
+
+void DeskbotScript::proc39() {
+ warning("TODO");
+}
+
+void DeskbotScript::proc40() {
+ warning("TODO");
+}
+
+void DeskbotScript::proc41() {
+ warning("TODO");
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/true_talk/deskbot_script.h b/engines/titanic/true_talk/deskbot_script.h
new file mode 100644
index 0000000000..dcab218e97
--- /dev/null
+++ b/engines/titanic/true_talk/deskbot_script.h
@@ -0,0 +1,59 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_DESKBOT_SCRIPT_H
+#define TITANIC_DESKBOT_SCRIPT_H
+
+#include "titanic/true_talk/tt_named_script.h"
+
+namespace Titanic {
+
+class DeskbotScript : public TTNamedScript {
+public:
+ DeskbotScript(int val1, const char *charClass, int v2,
+ const char *charName, int v3, int val2);
+
+ virtual int proc6() const;
+ virtual void proc7(int v1, int v2);
+ virtual int proc10() const;
+ virtual int proc15() const;
+ virtual bool proc16() const;
+ virtual bool proc17() const;
+ virtual bool proc18() const;
+ virtual int proc21(int v);
+ virtual int proc22() const;
+ virtual int proc23() const;
+ virtual void proc24();
+ virtual int proc25() const;
+ virtual void proc26();
+ virtual int proc36() const;
+ virtual int proc37() const;
+
+ virtual void proc38();
+ virtual void proc39();
+ virtual void proc40();
+ virtual void proc41();
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_DESKBOT_SCRIPT_H */
diff --git a/engines/titanic/true_talk/doorbot_script.cpp b/engines/titanic/true_talk/doorbot_script.cpp
new file mode 100644
index 0000000000..43b9e46335
--- /dev/null
+++ b/engines/titanic/true_talk/doorbot_script.cpp
@@ -0,0 +1,103 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/textconsole.h"
+#include "titanic/true_talk/doorbot_script.h"
+
+namespace Titanic {
+
+int DoorbotScript::proc6() const {
+ warning("TODO");
+ return 2;
+}
+
+void DoorbotScript::proc7(int v1, int v2) {
+ warning("TODO");
+}
+
+int DoorbotScript::proc10() const {
+ warning("TODO");
+ return 0;
+}
+
+int DoorbotScript::proc15() const {
+ warning("TODO");
+ return 0;
+}
+
+bool DoorbotScript::proc16() const {
+ warning("TODO");
+ return 0;
+}
+
+bool DoorbotScript::proc17() const {
+ warning("TODO");
+ return 0;
+}
+
+bool DoorbotScript::proc18() const {
+ warning("TODO");
+ return 0;
+}
+
+int DoorbotScript::proc21(int v) {
+ warning("TODO");
+ return 0;
+}
+
+int DoorbotScript::proc22() const {
+ warning("TODO");
+ return 0;
+}
+
+int DoorbotScript::proc23() const {
+ warning("TODO");
+ return 0;
+}
+
+void DoorbotScript::proc24() {
+ warning("TODO");
+}
+
+int DoorbotScript::proc25() const {
+ warning("TODO");
+ return 0;
+}
+
+void DoorbotScript::proc26() {
+}
+
+void DoorbotScript::proc32() {
+ warning("TODO");
+}
+
+int DoorbotScript::proc36() const {
+ warning("TODO");
+ return 0;
+}
+
+int DoorbotScript::proc37() const {
+ warning("TODO");
+ return 0;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/true_talk/doorbot_script.h b/engines/titanic/true_talk/doorbot_script.h
new file mode 100644
index 0000000000..37722d4862
--- /dev/null
+++ b/engines/titanic/true_talk/doorbot_script.h
@@ -0,0 +1,58 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_DOORBOT_SCRIPT_H
+#define TITANIC_DOORBOT_SCRIPT_H
+
+#include "titanic/true_talk/tt_named_script.h"
+
+namespace Titanic {
+
+class DoorbotScript : public TTNamedScript {
+private:
+ int _array[148];
+public:
+ DoorbotScript(int val1, const char *charClass, int v2,
+ const char *charName, int v3, int val2, int v4, int v5, int v6, int v7) :
+ TTNamedScript(val1, charClass, v2, charName, v3, val2, v4, v5, v6, v7) {}
+
+ virtual int proc6() const;
+ virtual void proc7(int v1, int v2);
+ virtual int proc10() const;
+ virtual int proc15() const;
+ virtual bool proc16() const;
+ virtual bool proc17() const;
+ virtual bool proc18() const;
+ virtual int proc21(int v);
+ virtual int proc22() const;
+ virtual int proc23() const;
+ virtual void proc24();
+ virtual int proc25() const;
+ virtual void proc26();
+ virtual void proc32();
+ virtual int proc36() const;
+ virtual int proc37() const;
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TT_CHARACTER1_H */
diff --git a/engines/titanic/true_talk/liftbot_script.cpp b/engines/titanic/true_talk/liftbot_script.cpp
new file mode 100644
index 0000000000..c30d226c89
--- /dev/null
+++ b/engines/titanic/true_talk/liftbot_script.cpp
@@ -0,0 +1,103 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/textconsole.h"
+#include "titanic/true_talk/liftbot_script.h"
+
+namespace Titanic {
+
+int LiftbotScript::proc6() const {
+ warning("TODO");
+ return 2;
+}
+
+void LiftbotScript::proc7(int v1, int v2) {
+ warning("TODO");
+}
+
+int LiftbotScript::proc9() const {
+ warning("TODO");
+ return 0;
+}
+
+int LiftbotScript::proc10() const {
+ warning("TODO");
+ return 0;
+}
+
+int LiftbotScript::proc15() const {
+ warning("TODO");
+ return 0;
+}
+
+bool LiftbotScript::proc16() const {
+ warning("TODO");
+ return 0;
+}
+
+bool LiftbotScript::proc17() const {
+ warning("TODO");
+ return 0;
+}
+
+bool LiftbotScript::proc18() const {
+ warning("TODO");
+ return 0;
+}
+
+int LiftbotScript::proc21(int v) {
+ warning("TODO");
+ return 0;
+}
+
+int LiftbotScript::proc22() const {
+ warning("TODO");
+ return 0;
+}
+
+int LiftbotScript::proc23() const {
+ warning("TODO");
+ return 0;
+}
+
+void LiftbotScript::proc24() {
+ warning("TODO");
+}
+
+int LiftbotScript::proc25() const {
+ warning("TODO");
+ return 0;
+}
+
+void LiftbotScript::proc26() {
+}
+
+void LiftbotScript::proc32() {
+ warning("TODO");
+}
+
+int LiftbotScript::proc37() const {
+ warning("TODO");
+ return 0;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/true_talk/liftbot_script.h b/engines/titanic/true_talk/liftbot_script.h
new file mode 100644
index 0000000000..8564bb53ef
--- /dev/null
+++ b/engines/titanic/true_talk/liftbot_script.h
@@ -0,0 +1,56 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_LIFTBOT_SCRIPT_H
+#define TITANIC_LIFTBOT_SCRIPT_H
+
+#include "titanic/true_talk/tt_named_script.h"
+
+namespace Titanic {
+
+class LiftbotScript : public TTNamedScript {
+public:
+ LiftbotScript(int val1, const char *charClass, int v2,
+ const char *charName, int v3, int val2, int v4, int v5, int v6, int v7) :
+ TTNamedScript(val1, charClass, v2, charName, v3, val2, v4, v5, v6, v7) {}
+
+ virtual int proc6() const;
+ virtual void proc7(int v1, int v2);
+ virtual int proc9() const;
+ virtual int proc10() const;
+ virtual int proc15() const;
+ virtual bool proc16() const;
+ virtual bool proc17() const;
+ virtual bool proc18() const;
+ virtual int proc21(int v);
+ virtual int proc22() const;
+ virtual int proc23() const;
+ virtual void proc24();
+ virtual int proc25() const;
+ virtual void proc26();
+ virtual void proc32();
+ virtual int proc37() const;
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_LIFTBOT_SCRIPT_H */
diff --git a/engines/titanic/true_talk/maitred_script.cpp b/engines/titanic/true_talk/maitred_script.cpp
new file mode 100644
index 0000000000..b88dfc611e
--- /dev/null
+++ b/engines/titanic/true_talk/maitred_script.cpp
@@ -0,0 +1,103 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/textconsole.h"
+#include "titanic/true_talk/maitred_script.h"
+#include "titanic/true_talk/true_talk_manager.h"
+
+namespace Titanic {
+
+MaitreDScript::MaitreDScript(int val1, const char *charClass, int v2,
+ const char *charName, int v3, int val2) :
+ TTNamedScript(val1, charClass, v2, charName, v3, val2, -1, -1, -1, 0) {
+ CTrueTalkManager::setFlags(9, 1);
+ CTrueTalkManager::setFlags(10, 0);
+ CTrueTalkManager::setFlags(11, 0);
+ CTrueTalkManager::setFlags(12, 0);
+ CTrueTalkManager::setFlags(13, 0);
+ CTrueTalkManager::setFlags(14, 0);
+ CTrueTalkManager::setFlags(15, 0);
+ CTrueTalkManager::setFlags(16, 0);
+}
+
+int MaitreDScript::proc6() const {
+ warning("TODO");
+ return 2;
+}
+
+void MaitreDScript::proc7(int v1, int v2) {
+ warning("TODO");
+}
+
+int MaitreDScript::proc10() const {
+ warning("TODO");
+ return 0;
+}
+
+bool MaitreDScript::proc16() const {
+ warning("TODO");
+ return 0;
+}
+
+bool MaitreDScript::proc17() const {
+ warning("TODO");
+ return 0;
+}
+
+bool MaitreDScript::proc18() const {
+ warning("TODO");
+ return 0;
+}
+
+int MaitreDScript::proc21(int v) {
+ warning("TODO");
+ return 0;
+}
+
+int MaitreDScript::proc22() const {
+ warning("TODO");
+ return 0;
+}
+
+int MaitreDScript::proc23() const {
+ warning("TODO");
+ return 0;
+}
+
+void MaitreDScript::proc24() {
+ warning("TODO");
+}
+
+int MaitreDScript::proc25() const {
+ warning("TODO");
+ return 0;
+}
+
+void MaitreDScript::proc26() {
+}
+
+int MaitreDScript::proc37() const {
+ warning("TODO");
+ return 0;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/true_talk/maitred_script.h b/engines/titanic/true_talk/maitred_script.h
new file mode 100644
index 0000000000..a5fbb72c82
--- /dev/null
+++ b/engines/titanic/true_talk/maitred_script.h
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_MAITRED_SCRIPT_H
+#define TITANIC_MAITRED_SCRIPT_H
+
+#include "titanic/true_talk/tt_named_script.h"
+
+namespace Titanic {
+
+class MaitreDScript : public TTNamedScript {
+public:
+ MaitreDScript(int val1, const char *charClass, int v2,
+ const char *charName, int v3, int val2);
+
+ virtual int proc6() const;
+ virtual void proc7(int v1, int v2);
+ virtual int proc10() const;
+ virtual bool proc16() const;
+ virtual bool proc17() const;
+ virtual bool proc18() const;
+ virtual int proc21(int v);
+ virtual int proc22() const;
+ virtual int proc23() const;
+ virtual void proc24();
+ virtual int proc25() const;
+ virtual void proc26();
+ virtual int proc37() const;
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_MAITRED_SCRIPT_H */
diff --git a/engines/titanic/true_talk/parrot_script.cpp b/engines/titanic/true_talk/parrot_script.cpp
new file mode 100644
index 0000000000..e97d32dd30
--- /dev/null
+++ b/engines/titanic/true_talk/parrot_script.cpp
@@ -0,0 +1,69 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/textconsole.h"
+#include "titanic/true_talk/parrot_script.h"
+
+namespace Titanic {
+
+int ParrotScript::proc6() const {
+ warning("TODO");
+ return 2;
+}
+
+void ParrotScript::proc7(int v1, int v2) {
+ warning("TODO");
+}
+
+int ParrotScript::proc10() const {
+ warning("TODO");
+ return 0;
+}
+
+bool ParrotScript::proc17() const {
+ warning("TODO");
+ return 0;
+}
+
+bool ParrotScript::proc18() const {
+ warning("TODO");
+ return 0;
+}
+
+int ParrotScript::proc23() const {
+ warning("TODO");
+ return 0;
+}
+
+void ParrotScript::proc24() {
+ warning("TODO");
+}
+
+int ParrotScript::proc25() const {
+ warning("TODO");
+ return 0;
+}
+
+void ParrotScript::proc26() {
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/true_talk/parrot_script.h b/engines/titanic/true_talk/parrot_script.h
new file mode 100644
index 0000000000..ac0b08c982
--- /dev/null
+++ b/engines/titanic/true_talk/parrot_script.h
@@ -0,0 +1,49 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_PARROT_SCRIPT_H
+#define TITANIC_PARROT_SCRIPT_H
+
+#include "titanic/true_talk/tt_named_script.h"
+
+namespace Titanic {
+
+class ParrotScript : public TTNamedScript {
+public:
+ ParrotScript(int val1, const char *charClass, int v2,
+ const char *charName, int v3, int val2, int v4, int v5, int v6, int v7) :
+ TTNamedScript(val1, charClass, v2, charName, v3, val2, v4, v5, v6, v7) {}
+
+ virtual int proc6() const;
+ virtual void proc7(int v1, int v2);
+ virtual int proc10() const;
+ virtual bool proc17() const;
+ virtual bool proc18() const;
+ virtual int proc23() const;
+ virtual void proc24();
+ virtual int proc25() const;
+ virtual void proc26();
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_PARROT_SCRIPT_H */
diff --git a/engines/titanic/true_talk/succubus_script.cpp b/engines/titanic/true_talk/succubus_script.cpp
new file mode 100644
index 0000000000..0c1f6700ee
--- /dev/null
+++ b/engines/titanic/true_talk/succubus_script.cpp
@@ -0,0 +1,74 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/textconsole.h"
+#include "titanic/true_talk/succubus_script.h"
+
+namespace Titanic {
+
+int SuccUBusScript::proc6() const {
+ warning("TODO");
+ return 2;
+}
+
+void SuccUBusScript::proc7(int v1, int v2) {
+ warning("TODO");
+}
+
+int SuccUBusScript::proc10() const {
+ warning("TODO");
+ return 0;
+}
+
+bool SuccUBusScript::proc17() const {
+ warning("TODO");
+ return 0;
+}
+
+bool SuccUBusScript::proc18() const {
+ warning("TODO");
+ return 0;
+}
+
+int SuccUBusScript::proc21(int v) {
+ warning("TODO");
+ return 0;
+}
+
+int SuccUBusScript::proc23() const {
+ warning("TODO");
+ return 0;
+}
+
+void SuccUBusScript::proc24() {
+ warning("TODO");
+}
+
+int SuccUBusScript::proc25() const {
+ warning("TODO");
+ return 0;
+}
+
+void SuccUBusScript::proc26() {
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/true_talk/succubus_script.h b/engines/titanic/true_talk/succubus_script.h
new file mode 100644
index 0000000000..2131775fa5
--- /dev/null
+++ b/engines/titanic/true_talk/succubus_script.h
@@ -0,0 +1,53 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_SUCCUBUS_SCRIPT_H
+#define TITANIC_SUCCUBUS_SCRIPT_H
+
+#include "titanic/true_talk/tt_named_script.h"
+
+namespace Titanic {
+
+class SuccUBusScript : public TTNamedScript {
+private:
+ int _field2D0;
+public:
+ SuccUBusScript(int val1, const char *charClass, int v2,
+ const char *charName, int v3, int val2, int v4, int v5, int v6, int v7) :
+ TTNamedScript(val1, charClass, v2, charName, v3, val2, v4, v5, v6, v7),
+ _field2D0(0) {}
+
+ virtual int proc6() const;
+ virtual void proc7(int v1, int v2);
+ virtual int proc10() const;
+ virtual bool proc17() const;
+ virtual bool proc18() const;
+ virtual int proc21(int v);
+ virtual int proc23() const;
+ virtual void proc24();
+ virtual int proc25() const;
+ virtual void proc26();
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_SUCCUBUS_SCRIPT_H */
diff --git a/engines/titanic/true_talk/title_engine.cpp b/engines/titanic/true_talk/title_engine.cpp
new file mode 100644
index 0000000000..1369af6a5c
--- /dev/null
+++ b/engines/titanic/true_talk/title_engine.cpp
@@ -0,0 +1,27 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/true_talk/title_engine.h"
+
+namespace Titanic {
+
+} // End of namespace Titanic
diff --git a/engines/titanic/true_talk/title_engine.h b/engines/titanic/true_talk/title_engine.h
new file mode 100644
index 0000000000..c854704cdc
--- /dev/null
+++ b/engines/titanic/true_talk/title_engine.h
@@ -0,0 +1,33 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TITLE_ENGINE_H
+#define TITANIC_TITLE_ENGINE_H
+
+namespace Titanic {
+
+class CTitleEngine {
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TITLE_ENGINE_H */
diff --git a/engines/titanic/true_talk/true_talk_manager.cpp b/engines/titanic/true_talk/true_talk_manager.cpp
new file mode 100644
index 0000000000..d13356b42c
--- /dev/null
+++ b/engines/titanic/true_talk/true_talk_manager.cpp
@@ -0,0 +1,194 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/true_talk/true_talk_manager.h"
+
+#define MKTAG_BE(a3,a2,a1,a0) ((uint32)((a3) | ((a2) << 8) | ((a1) << 16) | ((a0) << 24)))
+
+namespace Titanic {
+
+int CTrueTalkManager::_v1;
+int CTrueTalkManager::_v2;
+int CTrueTalkManager::_v3;
+bool CTrueTalkManager::_v4;
+bool CTrueTalkManager::_v5;
+int CTrueTalkManager::_v6;
+int CTrueTalkManager::_v7;
+bool CTrueTalkManager::_v8;
+int CTrueTalkManager::_v9;
+bool CTrueTalkManager::_v10;
+int CTrueTalkManager::_v11[41];
+
+CTrueTalkManager::CTrueTalkManager(CGameManager *owner) :
+ _gameManager(owner), _scripts(&_titleEngine) {
+}
+
+void CTrueTalkManager::save(SimpleFile *file) const {
+ saveStatics(file);
+
+ saveNPC(file, 101);
+ saveNPC(file, 103);
+ saveNPC(file, 104);
+ saveNPC(file, 105);
+ saveNPC(file, 111);
+ saveNPC(file, 100);
+ saveNPC(file, 112);
+ saveNPC(file, 107);
+ file->writeNumber(0);
+}
+
+void CTrueTalkManager::load(SimpleFile *file) {
+ loadStatics(file);
+
+ // Iterate through loading characters
+ int charId = file->readNumber();
+ while (charId) {
+ loadNPC(file, charId);
+
+ int ident1 = file->readNumber();
+ int ident2 = file->readNumber();
+ int v = 0;
+
+ if (ident1 != MKTAG_BE('U', 'R', 'A', 'H')) {
+ while (ident2 != MKTAG_BE('A', 'K', 'E', 'R')) {
+ ident1 = ident2;
+ ident2 = file->readNumber();
+
+ if (!ident1)
+ break;
+ }
+ }
+
+ // Get start of next character
+ charId = file->readNumber();
+ }
+}
+
+void CTrueTalkManager::loadStatics(SimpleFile *file) {
+ int count = file->readNumber();
+ _v1 = file->readNumber();
+ _v2 = file->readNumber();
+ _v3 = file->readNumber();
+ _v4 = file->readNumber() != 0;
+ _v5 = file->readNumber() != 0;
+ _v6 = file->readNumber();
+ _v7 = file->readNumber();
+ _v8 = file->readNumber() != 0;
+ _v9 = file->readNumber();
+ _v10 = file->readNumber() != 0;
+
+ for (int idx = count; count > 10; --idx)
+ file->readNumber();
+
+ int count2 = file->readNumber();
+ for (int idx = 0; idx < count2; ++idx) {
+ int v = file->readNumber();
+ if (idx < 41)
+ _v11[idx] = v;
+ }
+}
+
+void CTrueTalkManager::saveStatics(SimpleFile *file) {
+ file->writeNumber(10);
+ file->writeNumber(_v1);
+ file->writeNumber(_v2);
+ file->writeNumber(_v3);
+ file->writeNumber(_v4 ? 1 : 0);
+ file->writeNumber(_v5 ? 1 : 0);
+ file->writeNumber(_v6);
+ file->writeNumber(_v7);
+ file->writeNumber(_v8 ? 1 : 0);
+ file->writeNumber(_v9);
+ file->writeNumber(_v10 ? 1 : 0);
+
+ file->writeNumber(41);
+ for (int idx = 0; idx < 41; ++idx)
+ file->writeNumber(_v11[idx]);
+}
+
+void CTrueTalkManager::setFlags(int index, int val) {
+ switch (index) {
+ case 1:
+ if (val >= 1 && val <= 3)
+ _v3 = val;
+ break;
+
+ case 2:
+ _v4 = !val;
+ break;
+
+ case 3:
+ _v5 = val != 0;
+ break;
+
+ case 4:
+ if (val >= 0 && val <= 3)
+ _v6 = val;
+ break;
+
+ case 5:
+ _v7 = val;
+ break;
+
+ case 6:
+ _v8 = val != 0;
+ break;
+
+ default:
+ if (index < 41)
+ _v11[index] = val;
+ break;
+ }
+}
+
+void CTrueTalkManager::loadNPC(SimpleFile *file, int charId) {
+ TTNamedScript *script = _scripts.getNamedScript(charId);
+ if (script)
+ script->load(file);
+}
+
+void CTrueTalkManager::saveNPC(SimpleFile *file, int charId) const {
+ TTNamedScript *script = _scripts.getNamedScript(charId);
+ if (script) {
+ script->save(file);
+ file->writeNumber(MKTAG_BE('U', 'R', 'A', 'H'));
+ file->writeNumber(MKTAG_BE('A', 'K', 'E', 'R'));
+ }
+}
+
+void CTrueTalkManager::preLoad() {
+ warning("TODO: CTrueTalkManager::preLoad");
+}
+
+void CTrueTalkManager::viewChange() {
+ warning("CTrueTalkManager::viewChange");
+}
+
+void CTrueTalkManager::update1() {
+ warning("CTrueTalkManager::update1");
+}
+
+void CTrueTalkManager::update2() {
+ warning("CTrueTalkManager::update2");
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/true_talk/true_talk_manager.h b/engines/titanic/true_talk/true_talk_manager.h
new file mode 100644
index 0000000000..6724baaa34
--- /dev/null
+++ b/engines/titanic/true_talk/true_talk_manager.h
@@ -0,0 +1,117 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TRUE_TALK_MANAGER_H
+#define TITANIC_TRUE_TALK_MANAGER_H
+
+#include "titanic/simple_file.h"
+#include "titanic/true_talk/title_engine.h"
+#include "titanic/true_talk/tt_scripts.h"
+
+namespace Titanic {
+
+class CGameManager;
+
+class CTrueTalkManager {
+private:
+ CGameManager *_gameManager;
+ CTitleEngine _titleEngine;
+ TTScripts _scripts;
+private:
+ /**
+ * Loads the statics for the class
+ */
+ static void loadStatics(SimpleFile *file);
+
+ /**
+ * Saves the statics associated with the class
+ */
+ static void saveStatics(SimpleFile *file);
+
+ void loadNPC(SimpleFile *file, int charId);
+
+ void saveNPC(SimpleFile *file, int charId) const;
+public:
+ static int _v1;
+ static int _v2;
+ static int _v3;
+ static bool _v4;
+ static bool _v5;
+ static int _v6;
+ static int _v7;
+ static bool _v8;
+ static int _v9;
+ static bool _v10;
+ static int _v11[41];
+
+ static void setFlags(int index, int val);
+public:
+ CTrueTalkManager(CGameManager *owner);
+
+ /**
+ * Save the data for the class to file
+ */
+ void save(SimpleFile *file) const;
+
+ /**
+ * Load the data for the class from file
+ */
+ void load(SimpleFile *file);
+
+ /**
+ * Called when a game is about to be loaded
+ */
+ void preLoad();
+
+ /**
+ * Called when loading a game is complete
+ */
+ void postLoad() {}
+
+ /**
+ * Called when a game is about to be saved
+ */
+ void preSave() {}
+
+ /**
+ * Called when a game has finished being saved
+ */
+ void postSave() {}
+
+ /**
+ * Called when the view changes
+ */
+ void viewChange();
+
+ /**
+ * Returns the scripts for the manager
+ */
+ TTScripts &getScripts() { return _scripts; }
+
+ void update1();
+
+ void update2();
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TRUE_TALK_MANAGER_H */
diff --git a/engines/titanic/true_talk/tt_named_script.cpp b/engines/titanic/true_talk/tt_named_script.cpp
new file mode 100644
index 0000000000..7f4bb5b201
--- /dev/null
+++ b/engines/titanic/true_talk/tt_named_script.cpp
@@ -0,0 +1,240 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/textconsole.h"
+#include "titanic/true_talk/tt_named_script.h"
+#include "titanic/true_talk/true_talk_manager.h"
+
+namespace Titanic {
+
+TTNamedScriptBase::TTNamedScriptBase(int charId, const char *charClass, int v2,
+ const char *charName, int v3, int val2, int v4, int v5, int v6, int v7) :
+ TTScriptBase(0, charClass, v2, charName, v3, v4, v5, v6, v7),
+ _charId(charId), _field54(0), _val2(val2) {
+}
+
+/*------------------------------------------------------------------------*/
+
+TTNamedScript::TTNamedScript(int charId, const char *charClass, int v2,
+ const char *charName, int v3, int val2, int v4, int v5, int v6, int v7) :
+ TTNamedScriptBase(charId, charClass, v2, charName, v3, val2, v4, v5, v6, v7),
+ _subPtr(nullptr), _field60(0), _field64(0), _field68(0),
+ _field6C(0), _field70(0), _field74(0), _field78(0),
+ _field7C(0), _field80(0) {
+ CTrueTalkManager::_v2 = 0;
+ Common::fill(&_array[0], &_array[147], 0);
+
+ if (!CTrueTalkManager::_v10) {
+ Common::fill(&CTrueTalkManager::_v11[0], &CTrueTalkManager::_v11[41], 0);
+ CTrueTalkManager::_v10 = true;
+ }
+
+ resetFlags();
+}
+
+void TTNamedScript::resetFlags() {
+ Common::fill(&_array[26], &_array[146], 0);
+}
+
+void TTNamedScript::randomizeFlags() {
+ warning("TODO");
+}
+
+void TTNamedScript::proc4(int v) {
+ warning("TODO");
+}
+
+int TTNamedScript::proc6() const {
+ return 1;
+}
+
+void TTNamedScript::proc7(int v1, int v2) {
+ warning("TODO");
+}
+
+int TTNamedScript::proc8() const {
+ return 0;
+}
+
+int TTNamedScript::proc9() const {
+ return 2;
+}
+
+int TTNamedScript::proc10() const {
+ return 2;
+}
+
+int TTNamedScript::proc11() const {
+ return 2;
+}
+
+int TTNamedScript::proc12() const {
+ return 1;
+}
+
+bool TTNamedScript::proc13() const {
+ warning("TODO");
+ return true;
+}
+
+void TTNamedScript::proc14(int v) {
+ warning("TODO");
+}
+
+int TTNamedScript::proc15() const {
+ return 0;
+}
+
+bool TTNamedScript::proc16() const {
+ return true;
+}
+
+bool TTNamedScript::proc17() const {
+ return true;
+}
+
+bool TTNamedScript::proc18() const {
+ return true;
+}
+
+void TTNamedScript::proc19(int v) {
+ warning("TODO");
+}
+
+void TTNamedScript::proc20(int v) {
+ warning("TODO");
+}
+
+int TTNamedScript::proc21(int v) {
+ return v;
+}
+
+int TTNamedScript::proc22() const {
+ return 0;
+}
+
+int TTNamedScript::proc23() const {
+ return 0;
+}
+
+int TTNamedScript::proc25() const {
+ return 0;
+}
+
+void TTNamedScript::proc26() {
+}
+
+void TTNamedScript::save(SimpleFile *file) {
+ file->writeNumber(charId());
+ saveBody(file);
+
+ file->writeNumber(4);
+ file->writeNumber(_field70);
+ file->writeNumber(_field74);
+ file->writeNumber(_field78);
+ file->writeNumber(_field7C);
+
+ file->writeNumber(10);
+ for (int idx = 0; idx < 10; ++idx)
+ file->writeNumber(_array[idx]);
+}
+
+void TTNamedScript::load(SimpleFile *file) {
+ loadBody(file);
+
+ int count = file->readNumber();
+ _field70 = file->readNumber();
+ _field74 = file->readNumber();
+ _field78 = file->readNumber();
+ _field7C = file->readNumber();
+
+ for (int idx = count; idx > 4; --idx)
+ file->readNumber();
+
+ count = file->readNumber();
+ for (int idx = 0; idx < count; ++idx) {
+ int v = file->readNumber();
+ if (idx < 10)
+ _array[idx] = v;
+ }
+}
+
+void TTNamedScript::saveBody(SimpleFile *file) {
+ int v = proc31();
+ file->writeNumber(v);
+
+ if (v > 0 && _subPtr) {
+ warning("TODO");
+ }
+}
+
+void TTNamedScript::loadBody(SimpleFile *file) {
+ int count = file->readNumber();
+ preLoad();
+
+ for (int index = 0; index < count; index += 2) {
+ int v = file->readNumber();
+
+ if (_subPtr) {
+ error("TODO - %d", v);
+ }
+ }
+}
+
+int TTNamedScript::proc31() {
+ warning("TODO");
+ return 0;
+}
+
+void TTNamedScript::proc32() {
+ warning("TODO");
+}
+
+void TTNamedScript::proc33(int v1, int v2) {
+ warning("TODO");
+}
+
+int TTNamedScript::proc34() {
+ warning("TODO");
+ return 0;
+}
+
+int TTNamedScript::proc35(int v1, int v2) {
+ warning("TODO");
+ return 0;
+}
+
+int TTNamedScript::proc36() const {
+ return 0;
+}
+
+int TTNamedScript::proc37() const {
+ return 0;
+}
+
+void TTNamedScript::preLoad() {
+ if (_subPtr) {
+ error("TODO");
+ }
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/true_talk/tt_named_script.h b/engines/titanic/true_talk/tt_named_script.h
new file mode 100644
index 0000000000..9186507e87
--- /dev/null
+++ b/engines/titanic/true_talk/tt_named_script.h
@@ -0,0 +1,115 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TT_NAMED_SCRIPT_H
+#define TITANIC_TT_NAMED_SCRIPT_H
+
+#include "titanic/simple_file.h"
+#include "titanic/true_talk/tt_script_base.h"
+
+namespace Titanic {
+
+
+class TTNamedScriptBase : public TTScriptBase {
+protected:
+ int _field54;
+ int _val2;
+public:
+ int _charId;
+public:
+ TTNamedScriptBase(int charId, const char *charClass, int v2,
+ const char *charName, int v3, int val2, int v4,
+ int v5, int v6, int v7);
+
+ virtual int proc6() const = 0;
+ virtual void proc7(int v1, int v2) = 0;
+ virtual int proc8() const = 0;
+ virtual int proc9() const = 0;
+ virtual int proc10() const = 0;
+ virtual int proc11() const = 0;
+ virtual int proc12() const = 0;
+
+ int charId() const { return _charId; }
+};
+
+class TTNamedScript : public TTNamedScriptBase {
+protected:
+ byte *_subPtr;
+ int _field60;
+ int _field64;
+ int _field68;
+ int _field6C;
+ int _field70;
+ int _field74;
+ int _field78;
+ int _field7C;
+ int _field80;
+ int _array[147];
+protected:
+ void resetFlags();
+
+ void randomizeFlags();
+public:
+ TTNamedScript(int charId, const char *charClass, int v2,
+ const char *charName, int v3, int val2, int v4,
+ int v5, int v6, int v7);
+
+ virtual void proc4(int v);
+ virtual int proc6() const;
+ virtual void proc7(int v1, int v2);
+ virtual int proc8() const;
+ virtual int proc9() const;
+ virtual int proc10() const;
+ virtual int proc11() const;
+ virtual int proc12() const;
+ virtual bool proc13() const;
+ virtual void proc14(int v);
+ virtual int proc15() const;
+ virtual bool proc16() const;
+ virtual bool proc17() const;
+ virtual bool proc18() const;
+ virtual void proc19(int v);
+ virtual void proc20(int v);
+ virtual int proc21(int v);
+ virtual int proc22() const;
+ virtual int proc23() const;
+ virtual void proc24() = 0;
+ virtual int proc25() const;
+ virtual void proc26();
+ virtual void save(SimpleFile *file);
+ virtual void load(SimpleFile *file);
+ virtual void saveBody(SimpleFile *file);
+ virtual void loadBody(SimpleFile *file);
+ virtual int proc31();
+ virtual void proc32();
+ virtual void proc33(int v1, int v2);
+ virtual int proc34();
+ virtual int proc35(int v1, int v2);
+ virtual int proc36() const;
+ virtual int proc37() const;
+
+ void preLoad();
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TT_CHARACTER1_H */
diff --git a/engines/titanic/true_talk/tt_script_base.cpp b/engines/titanic/true_talk/tt_script_base.cpp
new file mode 100644
index 0000000000..1430f031ce
--- /dev/null
+++ b/engines/titanic/true_talk/tt_script_base.cpp
@@ -0,0 +1,92 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/textconsole.h"
+#include "titanic/true_talk/tt_script_base.h"
+
+namespace Titanic {
+
+TTScriptBase::TTScriptBase(int v1, const char *charClass, int v2,
+ const char *charName, int v3, int v4, int v5, int v6, int v7) :
+ _charName(charName), _charClass(charClass),
+ _field4(0), _field8(0), _fieldC(0),
+ _field20(0), _field24(0), _field28(0), _field2C(0),
+ _field30(0), _field34(0), _field38(0), _field3C(0),
+ _field40(0), _field44(0), _field48(0), _status(0) {
+ if (!areNamesValid()) {
+ if (!v7 || !getStatus()) {
+ _field8 = v1;
+ _field20 = v3;
+ _field24 = v4;
+ _field28 = v5;
+ _field2C = v6;
+ _field30 = v7;
+ _field34 = v2;
+ } else {
+ _status = 5;
+ }
+ }
+
+ if (_status)
+ reset();
+}
+
+bool TTScriptBase::areNamesValid() {
+ bool result = !_charName.isValid() && !_charClass.isValid();
+ _status = result ? 0 : 11;
+ return result;
+}
+
+void TTScriptBase::reset() {
+ _field4 = 0;
+ _field8 = 4;
+ _fieldC = 0;
+ _field20 = 0;
+ _field24 = -1;
+ _field28 = -1;
+ _field2C = -1;
+ _field30 = 0;
+ _field34 = 0;
+ _field38 = 0;
+ _field3C = 0;
+ _field40 = 0;
+ _field44 = 0;
+ _field48 = 0;
+}
+
+void TTScriptBase::proc2(int v) {
+ warning("TODO");
+}
+
+void TTScriptBase::proc3(int v) {
+ warning("TODO");
+}
+
+void TTScriptBase::proc4(int v) {
+ warning("TODO");
+}
+
+void TTScriptBase::proc5() {
+ warning("TODO");
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/true_talk/tt_script_base.h b/engines/titanic/true_talk/tt_script_base.h
new file mode 100644
index 0000000000..4021a0b738
--- /dev/null
+++ b/engines/titanic/true_talk/tt_script_base.h
@@ -0,0 +1,70 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TT_SCRIPT_BASE_H
+#define TITANIC_TT_SCRIPT_BASE_H
+
+#include "titanic/true_talk/tt_string.h"
+
+namespace Titanic {
+
+class TTScriptBase {
+private:
+ void reset();
+protected:
+ int _field4;
+ int _field8;
+ int _fieldC;
+ TTString _charName, _charClass;
+ int _field20;
+ int _field24;
+ int _field28;
+ int _field2C;
+ int _field30;
+ int _field34;
+ int _field38;
+ int _field3C;
+ int _field40;
+ int _field44;
+ int _field48;
+ int _status;
+public:
+ TTScriptBase(int v1, const char *charClass, int v2, const char *charName,
+ int v3, int v4, int v5, int v6, int v7);
+
+ bool areNamesValid();
+
+ int getStatus() const { return _status; }
+
+ virtual void proc2(int v);
+
+ virtual void proc3(int v);
+
+ virtual void proc4(int v);
+
+ virtual void proc5();
+};
+
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TT_SCRIPT_BASE_H */
diff --git a/engines/titanic/true_talk/tt_scripts.cpp b/engines/titanic/true_talk/tt_scripts.cpp
new file mode 100644
index 0000000000..8e34ec5d2b
--- /dev/null
+++ b/engines/titanic/true_talk/tt_scripts.cpp
@@ -0,0 +1,99 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/true_talk/tt_scripts.h"
+#include "titanic/true_talk/title_engine.h"
+#include "titanic/true_talk/barbot_script.h"
+#include "titanic/true_talk/bellbot_script.h"
+#include "titanic/true_talk/deskbot_script.h"
+#include "titanic/true_talk/doorbot_script.h"
+#include "titanic/true_talk/liftbot_script.h"
+#include "titanic/true_talk/maitred_script.h"
+#include "titanic/true_talk/parrot_script.h"
+#include "titanic/true_talk/succubus_script.h"
+
+namespace Titanic {
+
+TTNamedScript *TTNamedScriptList::findById(int charId) const {
+ for (TTNamedScriptList::const_iterator i = begin(); i != end(); ++i) {
+ const TTNamedScriptListItem *item = *i;
+ if (item->_script->_charId == charId)
+ return item->_script;
+ }
+
+ return nullptr;
+}
+
+/*------------------------------------------------------------------------*/
+
+TTUnnamedScript *TTUnnamedScriptList::findById(int scriptId) const {
+ for (TTUnnamedScriptList::const_iterator i = begin(); i != end(); ++i) {
+ const TTUnnamedScriptListItem *item = *i;
+ if (item->_item->_scriptId == scriptId)
+ return item->_item;
+ }
+
+ return nullptr;
+}
+
+/*------------------------------------------------------------------------*/
+
+TTScripts::TTScripts(CTitleEngine *titleEngine) :
+ _titleEngine(titleEngine), _field24(0), _field28(0) {
+ // Load unnamed scripts
+ for (int scriptNum = 100; scriptNum < 133; ++scriptNum)
+ addScript(new TTUnnamedScript(scriptNum));
+
+ // Load named scripts
+ addScript(new DoorbotScript(104, "Doorbot", 0, "Fentible", 11, 1, -1, -1, -1, 0), 100);
+ addScript(new BellbotScript(101, "Bellbot", 0, "Krage", 8, 1), 110);
+ addScript(new LiftbotScript(105, "LiftBot", 0, "Nobby", 11, 1, -1, -1, -1, 0), 103);
+ addScript(new DeskbotScript(103, "DeskBot", 0, "Marsinta", 11, 2), 110);
+ addScript(new BarbotScript(100, "Barbot", 0, "Fortillian", 9, 1, -1, -1, -1, 0), 112);
+ addScript(new ParrotScript(107, "Parrot", 0, "The Parrot", 5, 1, -1, -1, -1, 0), 111);
+ addScript(new MaitreDScript(112, "MaitreDBot", 0, "Dastrogaaar", 8, 1), 132);
+ addScript(new SuccUBusScript(111, "Succubus", 0, "Shorbert", 9, 1, -1, -1, -1, 0), 110);
+}
+
+void TTScripts::addScript(TTNamedScript *script, int scriptId) {
+ script->proc13();
+
+ // Find the unnamed script this is associated with
+ TTUnnamedScript *unnamedScript = getUnnamedScript(scriptId);
+ assert(unnamedScript);
+
+ _namedScripts.push_back(new TTNamedScriptListItem(script, unnamedScript));
+}
+
+void TTScripts::addScript(TTUnnamedScript *script) {
+ _unnamedScripts.push_back(new TTUnnamedScriptListItem(script));
+}
+
+TTUnnamedScript *TTScripts::getUnnamedScript(int scriptId) const {
+ return _unnamedScripts.findById(scriptId);
+}
+
+TTNamedScript *TTScripts::getNamedScript(int charId) const {
+ return _namedScripts.findById(charId);
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/true_talk/tt_scripts.h b/engines/titanic/true_talk/tt_scripts.h
new file mode 100644
index 0000000000..5934eb3625
--- /dev/null
+++ b/engines/titanic/true_talk/tt_scripts.h
@@ -0,0 +1,90 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TT_SCRIPTS_H
+#define TITANIC_TT_SCRIPTS_H
+
+#include "titanic/core/list.h"
+#include "titanic/true_talk/tt_named_script.h"
+#include "titanic/true_talk/tt_unnamed_script.h"
+
+namespace Titanic {
+
+class CTitleEngine;
+
+class TTNamedScriptListItem : public ListItem {
+public:
+ TTNamedScript *_script;
+ TTUnnamedScript *_unnamedScript;
+public:
+ TTNamedScriptListItem() : _script(nullptr), _unnamedScript(nullptr) {}
+ TTNamedScriptListItem(TTNamedScript *script, TTUnnamedScript *unnamedScript) :
+ _script(script), _unnamedScript(unnamedScript) {}
+ virtual ~TTNamedScriptListItem() { delete _script; }
+};
+
+PTR_LIST_ITEM(TTUnnamedScript);
+
+class TTNamedScriptList : public List<TTNamedScriptListItem> {
+public:
+ TTNamedScript *findById(int charId) const;
+};
+
+class TTUnnamedScriptList : public List<TTUnnamedScriptListItem> {
+public:
+ TTUnnamedScript *findById(int scriptId) const;
+};
+
+class TTScripts {
+private:
+ TTNamedScriptList _namedScripts;
+ TTUnnamedScriptList _unnamedScripts;
+ CTitleEngine *_titleEngine;
+ int _field24;
+ int _field28;
+private:
+ /**
+ * Add a named script to the named scripts list
+ */
+ void addScript(TTNamedScript *script, int charId);
+
+ /**
+ * Add an unnamed script to the unnamed scripts list
+ */
+ void addScript(TTUnnamedScript *script);
+public:
+ TTScripts(CTitleEngine *titleEngine);
+
+ /**
+ * Return a pointer to the specified script
+ */
+ TTUnnamedScript *getUnnamedScript(int scriptId) const;
+
+ /**
+ * Return a pointer to the specified named character script
+ */
+ TTNamedScript *getNamedScript(int charId) const;
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TT_CHARACTERS_H */
diff --git a/engines/titanic/true_talk/tt_string.cpp b/engines/titanic/true_talk/tt_string.cpp
new file mode 100644
index 0000000000..f9ae5d6e11
--- /dev/null
+++ b/engines/titanic/true_talk/tt_string.cpp
@@ -0,0 +1,27 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/true_talk/tt_string.h"
+
+namespace Titanic {
+
+} // End of namespace Titanic
diff --git a/engines/titanic/true_talk/tt_string.h b/engines/titanic/true_talk/tt_string.h
new file mode 100644
index 0000000000..cf940a4d32
--- /dev/null
+++ b/engines/titanic/true_talk/tt_string.h
@@ -0,0 +1,43 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TT_STRING_H
+#define TITANIC_TT_STRING_H
+
+#include "titanic/string.h"
+
+namespace Titanic {
+
+class TTString: public CString {
+public:
+ int _status;
+public:
+ TTString() : CString(), _status(0) {}
+ TTString(const char *str) : CString(str), _status(0) {}
+ virtual ~TTString() {}
+
+ bool isValid() const { return !_status; }
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TT_OBJ8_H */
diff --git a/engines/titanic/true_talk/tt_unnamed_script.cpp b/engines/titanic/true_talk/tt_unnamed_script.cpp
new file mode 100644
index 0000000000..8c91290fba
--- /dev/null
+++ b/engines/titanic/true_talk/tt_unnamed_script.cpp
@@ -0,0 +1,64 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/textconsole.h"
+#include "titanic/true_talk/tt_unnamed_script.h"
+
+namespace Titanic {
+
+TTUnnamedScriptBase::TTUnnamedScriptBase(int scriptId,
+ const char *charClass, const char *charName,
+ int v3, int v4, int v5, int v6, int v2, int v7) : _scriptId(scriptId),
+ TTScriptBase(3, charClass, v2, charName, v3, v4, v5, v6, v7) {
+}
+
+/*------------------------------------------------------------------------*/
+
+TTUnnamedScript::TTUnnamedScript(int scriptId) :
+ TTUnnamedScriptBase(scriptId, "", "", 0, -1, -1, -1, 0, 0) {
+}
+
+void TTUnnamedScript::proc6() {
+ warning("TODO");
+}
+
+void TTUnnamedScript::proc7() {
+ warning("TODO");
+}
+
+void TTUnnamedScript::proc8() {
+ warning("TODO");
+}
+
+void TTUnnamedScript::proc9() {
+ warning("TODO");
+}
+
+void TTUnnamedScript::proc10() {
+ warning("TODO");
+}
+
+void TTUnnamedScript::proc11() {
+ warning("TODO");
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/true_talk/tt_unnamed_script.h b/engines/titanic/true_talk/tt_unnamed_script.h
new file mode 100644
index 0000000000..eeba200193
--- /dev/null
+++ b/engines/titanic/true_talk/tt_unnamed_script.h
@@ -0,0 +1,62 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_TT_UNNAMED_SCRIPT_H
+#define TITANIC_TT_UNNAMED_SCRIPT_H
+
+#include "titanic/true_talk/tt_script_base.h"
+
+namespace Titanic {
+
+class TTUnnamedScriptBase : public TTScriptBase {
+public:
+ int _scriptId;
+public:
+ TTUnnamedScriptBase(int scriptId, const char *charClass, const char *charName,
+ int v3, int v4, int v5, int v6, int v2, int v7);
+
+ virtual void proc6() = 0;
+ virtual void proc7() = 0;
+ virtual void proc8() = 0;
+ virtual void proc9() = 0;
+ virtual void proc10() = 0;
+ virtual void proc11() = 0;
+};
+
+
+class TTUnnamedScript : public TTUnnamedScriptBase {
+private:
+ int _field54;
+public:
+ TTUnnamedScript(int scriptId);
+
+ virtual void proc6();
+ virtual void proc7();
+ virtual void proc8();
+ virtual void proc9();
+ virtual void proc10();
+ virtual void proc11();
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_TT_UNNAMED_SCRIPT_H */
diff --git a/engines/titanic/video_surface.cpp b/engines/titanic/video_surface.cpp
new file mode 100644
index 0000000000..08ba64ac75
--- /dev/null
+++ b/engines/titanic/video_surface.cpp
@@ -0,0 +1,232 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/video_surface.h"
+#include "titanic/image_decoders.h"
+#include "titanic/screen_manager.h"
+
+namespace Titanic {
+
+int CVideoSurface::_videoSurfaceCounter = 0;
+
+CVideoSurface::CVideoSurface(CScreenManager *screenManager) :
+ _screenManager(screenManager), _rawSurface(nullptr),
+ _field34(nullptr), _pendingLoad(false), _field3C(false), _field40(0),
+ _field44(4), _field48(0), _field50(1) {
+ _videoSurfaceNum = _videoSurfaceCounter++;
+}
+
+CVideoSurface::~CVideoSurface() {
+ if (_ddSurface)
+ _videoSurfaceCounter -= freeSurface();
+ --_videoSurfaceCounter;
+}
+
+void CVideoSurface::setSurface(CScreenManager *screenManager, DirectDrawSurface *surface) {
+ _screenManager = screenManager;
+ _ddSurface = surface;
+}
+
+/*------------------------------------------------------------------------*/
+
+OSVideoSurface::OSVideoSurface(CScreenManager *screenManager, DirectDrawSurface *surface) :
+ CVideoSurface(screenManager) {
+ _ddSurface = surface;
+}
+
+OSVideoSurface::OSVideoSurface(CScreenManager *screenManager, const CResourceKey &key, bool pendingLoad) :
+ CVideoSurface(screenManager) {
+ _ddSurface = nullptr;
+ _pendingLoad = pendingLoad;
+
+ if (_pendingLoad) {
+ loadResource(key);
+ } else {
+ _resourceKey = key;
+ load();
+ }
+}
+
+void OSVideoSurface::loadResource(const CResourceKey &key) {
+ _resourceKey = key;
+ _pendingLoad = true;
+
+ if (hasSurface())
+ load();
+}
+
+void OSVideoSurface::loadTarga(const CResourceKey &key) {
+ // Decode the image
+ CTargaDecode decoder;
+ decoder.decode(*this, key.getString());
+
+ if (proc26() == 2)
+ shiftColors();
+
+ _resourceKey = key;
+
+}
+
+void OSVideoSurface::loadJPEG(const CResourceKey &key) {
+ // Decode the image
+ CJPEGDecode decoder;
+ decoder.decode(*this, key.getString());
+
+ if (proc26() == 2)
+ shiftColors();
+
+ _resourceKey = key;
+}
+
+void OSVideoSurface::loadMovie() {
+ warning("TODO");
+}
+
+bool OSVideoSurface::lock() {
+ if (!loadIfReady())
+ return false;
+
+ ++_lockCount;
+ _rawSurface = _ddSurface->lock(nullptr, 0);
+ return true;
+}
+
+void OSVideoSurface::unlock() {
+ if (_rawSurface)
+ _ddSurface->unlock();
+ _rawSurface = nullptr;
+ --_lockCount;
+}
+
+bool OSVideoSurface::hasSurface() {
+ return _ddSurface != nullptr;
+}
+
+int OSVideoSurface::getWidth() const {
+ assert(_ddSurface);
+ return _ddSurface->w;
+}
+
+int OSVideoSurface::getHeight() const {
+ assert(_ddSurface);
+ return _ddSurface->h;
+}
+
+int OSVideoSurface::getPitch() const {
+ assert(_ddSurface);
+ return _ddSurface->pitch;
+}
+
+void OSVideoSurface::resize(int width, int height) {
+ freeSurface();
+
+ _screenManager->resizeSurface(this, width, height);
+ if (_ddSurface)
+ _videoSurfaceCounter += _ddSurface->getSize();
+}
+
+int OSVideoSurface::proc26() {
+ if (!loadIfReady())
+ assert(0);
+
+ warning("TODO");
+ return 0;
+}
+
+bool OSVideoSurface::load() {
+ if (!_resourceKey.scanForFile())
+ return false;
+
+ switch (_resourceKey.fileTypeSuffix()) {
+ case FILETYPE_IMAGE:
+ switch (_resourceKey.imageTypeSuffix()) {
+ case IMAGETYPE_TARGA:
+ loadTarga(_resourceKey);
+ break;
+ case IMAGETYPE_JPEG:
+ loadJPEG(_resourceKey);
+ break;
+ default:
+ break;
+ }
+ return true;
+
+ case FILETYPE_MOVIE:
+ loadMovie();
+ return true;
+
+ default:
+ return false;
+ }
+}
+
+void OSVideoSurface::shiftColors() {
+ if (!loadIfReady())
+ return;
+
+ if (!lock())
+ assert(0);
+
+ int width = getWidth();
+ int height = getHeight();
+ int pitch = getPitch();
+ uint16 *pixels = (uint16 *)_rawSurface->getPixels();
+ uint16 *p;
+ int x, y;
+
+ for (y = 0; y < height; ++y, pixels += pitch) {
+ for (x = 0, p = pixels; x < width; ++x, ++p) {
+ *p = ((*p & 0xFFE0) * 2) | (*p & 0x1F);
+ }
+ }
+
+ unlock();
+}
+
+bool OSVideoSurface::loadIfReady() {
+ _videoSurfaceNum = _videoSurfaceCounter;
+
+ if (hasSurface()) {
+ return true;
+ } else if (_pendingLoad) {
+ _field50 = 1;
+ load();
+ return true;
+ } else {
+ return false;
+ }
+}
+
+int OSVideoSurface::freeSurface() {
+ if (!_ddSurface)
+ return 0;
+ int surfaceSize = _ddSurface->getSize();
+
+ delete _field34;
+ _field34 = nullptr;
+ delete _ddSurface;
+ _ddSurface = nullptr;
+
+ return surfaceSize;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/video_surface.h b/engines/titanic/video_surface.h
new file mode 100644
index 0000000000..47caffdcaf
--- /dev/null
+++ b/engines/titanic/video_surface.h
@@ -0,0 +1,231 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_VIDEO_SURFACE_H
+#define TITANIC_VIDEO_SURFACE_H
+
+#include "common/scummsys.h"
+#include "common/array.h"
+#include "titanic/font.h"
+#include "titanic/direct_draw.h"
+#include "titanic/core/list.h"
+#include "titanic/core/resource_key.h"
+
+namespace Titanic {
+
+class CScreenManager;
+class CJPEGDecode;
+class CTargaDecode;
+
+class CVideoSurface : public ListItem {
+ friend class CJPEGDecode;
+ friend class CTargaDecode;
+protected:
+ static int _videoSurfaceCounter;
+protected:
+ CScreenManager *_screenManager;
+ CResourceKey _resourceKey;
+ DirectDrawSurface *_ddSurface;
+ Graphics::Surface *_rawSurface;
+ void *_field34;
+ bool _pendingLoad;
+ int _field40;
+ int _field44;
+ int _field48;
+ int _videoSurfaceNum;
+ int _field50;
+ int _lockCount;
+public:
+ bool _field3C;
+public:
+ CVideoSurface(CScreenManager *screenManager);
+ virtual ~CVideoSurface();
+
+ /**
+ * Set the underlying surface for this video surface
+ */
+ void setSurface(CScreenManager *screenManager, DirectDrawSurface *surface);
+
+ /**
+ * Load the surface with the passed resource
+ */
+ virtual void loadResource(const CResourceKey &key) = 0;
+
+ /**
+ * Loads a Targa image file specified by the resource key
+ */
+ virtual void loadTarga(const CResourceKey &key) = 0;
+
+ /**
+ * Loads a JPEG image file specified by the resource key
+ */
+ virtual void loadJPEG(const CResourceKey &key) = 0;
+
+ /**
+ * Loads a movie file specified by the resource key
+ */
+ virtual void loadMovie() = 0;
+
+ /**
+ * Lock the surface for direct access to the pixels
+ */
+ virtual bool lock() = 0;
+
+ /**
+ * Unlocks the surface after prior calls to lock()
+ */
+ virtual void unlock() = 0;
+
+ /**
+ * Returns true if an underlying raw surface has been set
+ */
+ virtual bool hasSurface() = 0;
+
+ /**
+ * Returns the width of the surface
+ */
+ virtual int getWidth() const = 0;
+
+ /**
+ * Returns the height of the surface
+ */
+ virtual int getHeight() const = 0;
+
+ /**
+ * Returns the pitch of the surface in bytes
+ */
+ virtual int getPitch() const = 0;
+
+ /**
+ * Reiszes the surface
+ */
+ virtual void resize(int width, int height) = 0;
+
+ virtual int proc26() = 0;
+
+ /**
+ * Shifts the colors of the surface.. maybe greys it out?
+ */
+ virtual void shiftColors() = 0;
+
+ /**
+ * Loads the surface's resource if there's one pending
+ */
+ virtual bool loadIfReady() = 0;
+
+ /**
+ * Loads the surface data based on the currently set resource key
+ */
+ virtual bool load() = 0;
+
+ /**
+ * Frees the underlying surface
+ */
+ virtual int freeSurface() { return 0; }
+};
+
+class OSVideoSurface : public CVideoSurface {
+public:
+ OSVideoSurface(CScreenManager *screenManager, DirectDrawSurface *surface);
+ OSVideoSurface(CScreenManager *screenManager, const CResourceKey &key, bool flag = false);
+
+ /**
+ * Load the surface with the passed resource
+ */
+ virtual void loadResource(const CResourceKey &key);
+
+ /**
+ * Loads a Targa image file specified by the resource key
+ */
+ virtual void loadTarga(const CResourceKey &key);
+
+ /**
+ * Loads a JPEG image file specified by the resource key
+ */
+ virtual void loadJPEG(const CResourceKey &key);
+
+ /**
+ * Loads a movie file specified by the resource key
+ */
+ virtual void loadMovie();
+
+ /**
+ * Lock the surface for direct access to the pixels
+ */
+ virtual bool lock();
+
+ /**
+ * Unlocks the surface after prior calls to lock()
+ */
+ virtual void unlock();
+
+ /**
+ * Returns true if an underlying raw surface has been set
+ */
+ virtual bool hasSurface();
+
+ /**
+ * Returns the width of the surface
+ */
+ virtual int getWidth() const;
+
+ /**
+ * Returns the height of the surface
+ */
+ virtual int getHeight() const;
+
+ /**
+ * Returns the pitch of the surface in bytes
+ */
+ virtual int getPitch() const;
+
+ /**
+ * Reiszes the surface
+ */
+ virtual void resize(int width, int height);
+
+ virtual int proc26();
+
+ /**
+ * Shifts the colors of the surface.. maybe greys it out?
+ */
+ virtual void shiftColors();
+
+ /**
+ * Loads the surface's resource if there's one pending
+ */
+ virtual bool loadIfReady();
+
+ /**
+ * Loads the surface data based on the currently set resource key
+ */
+ virtual bool load();
+
+ /**
+ * Frees the underlying surface
+ */
+ virtual int freeSurface();
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_VIDEO_SURFACE_H */