/* ScummVM - Graphic Adventure Engine * * ScummVM is the legal property of its developers, whose names * are too numerous to list here. Please refer to the COPYRIGHT * file distributed with this source distribution. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along 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/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/room_item.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/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/gfx/volume_control.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/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 * CSaveableObject::_classList = nullptr; Common::List *CSaveableObject::_classDefs; #define DEFFN(T) ClassDef *T::_type; \ CSaveableObject *Function##T() { return new T(); } #define ADDFN(CHILD, PARENT) CHILD::_type = new TypeTemplate(#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(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(CRoomItem) 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(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(CVolumeControl) 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(CEjectCylinderMsg) DEFFN(CErasePhonographCylinderMsg) 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(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(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(CSeasonNoises) DEFFN(CSeasonalMusicPlayer) DEFFN(CTitaniaSpeech) DEFFN(CTriggerAutoMusicPlayer) DEFFN(CViewAutoSoundPlayer) DEFFN(CViewTogglesOtherMusic) DEFFN(CWaterLappingSounds) DEFFN(CStarControl) void CSaveableObject::initClassList() { _classDefs = new Common::List(); _classList = new Common::HashMap(); 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(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(CRoomItem, CNamedItem); 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(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(CVolumeControl, 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(CEjectCylinderMsg, CMessage); ADDFN(CErasePhonographCylinderMsg, 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(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(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(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::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