aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/advancedDetector.cpp2
-rw-r--r--engines/agi/agi.cpp21
-rw-r--r--engines/agi/agi.h2
-rw-r--r--engines/agi/cycle.cpp35
-rw-r--r--engines/agi/detection.cpp4
-rw-r--r--engines/agi/detection_tables.h66
-rw-r--r--engines/agi/loader_v1.cpp2
-rw-r--r--engines/agi/loader_v2.cpp2
-rw-r--r--engines/agi/loader_v3.cpp2
-rw-r--r--engines/agi/op_cmd.cpp6
-rw-r--r--engines/agi/op_test.cpp7
-rw-r--r--engines/agi/preagi_winnie.cpp9
-rw-r--r--engines/agi/saveload.cpp4
-rw-r--r--engines/agi/sound.cpp27
-rw-r--r--engines/agi/sound.h9
-rw-r--r--engines/agi/sound_2gs.cpp4
-rw-r--r--engines/agi/sound_2gs.h4
-rw-r--r--engines/agi/sound_midi.cpp2
-rw-r--r--engines/agi/sound_midi.h4
-rw-r--r--engines/agi/wagparser.cpp2
-rw-r--r--engines/agos/agos.cpp2
-rw-r--r--engines/agos/detection.cpp10
-rw-r--r--engines/agos/detection_tables.h112
-rw-r--r--engines/agos/feeble.cpp1
-rw-r--r--engines/agos/gfx.cpp4
-rw-r--r--engines/agos/icons.cpp2
-rw-r--r--engines/agos/res.cpp2
-rw-r--r--engines/agos/saveload.cpp12
-rw-r--r--engines/agos/sound.cpp2
-rw-r--r--engines/agos/verb.cpp2
-rw-r--r--engines/agos/vga_pn.cpp2
-rw-r--r--engines/cge/detection.cpp12
-rw-r--r--engines/cge/snail.cpp2
-rw-r--r--engines/cine/cine.cpp2
-rw-r--r--engines/cine/console.cpp1
-rw-r--r--engines/cine/detection.cpp2
-rw-r--r--engines/cine/detection_tables.h30
-rw-r--r--engines/cine/part.cpp2
-rw-r--r--engines/cine/script_fw.cpp4
-rw-r--r--engines/cine/script_os.cpp2
-rw-r--r--engines/cine/various.cpp2
-rw-r--r--engines/configure.engines2
-rw-r--r--engines/cruise/dataLoader.cpp3
-rw-r--r--engines/cruise/detection.cpp16
-rw-r--r--engines/draci/console.cpp1
-rw-r--r--engines/draci/detection.cpp8
-rw-r--r--engines/drascula/detection.cpp26
-rw-r--r--engines/drascula/interface.cpp4
-rw-r--r--engines/drascula/saveload.cpp4
-rw-r--r--engines/dreamweb/console.cpp1
-rw-r--r--engines/dreamweb/detection_tables.h24
-rw-r--r--engines/dreamweb/monitor.cpp18
-rw-r--r--engines/dreamweb/stubs.cpp4
-rw-r--r--engines/gob/detection/tables_adi2.h20
-rw-r--r--engines/gob/detection/tables_adi4.h26
-rw-r--r--engines/gob/detection/tables_adibou.h28
-rw-r--r--engines/gob/detection/tables_ajworld.h2
-rw-r--r--engines/gob/detection/tables_bargon.h10
-rw-r--r--engines/gob/detection/tables_dynasty.h12
-rw-r--r--engines/gob/detection/tables_fallback.h52
-rw-r--r--engines/gob/detection/tables_fascin.h22
-rw-r--r--engines/gob/detection/tables_geisha.h14
-rw-r--r--engines/gob/detection/tables_gob1.h44
-rw-r--r--engines/gob/detection/tables_gob2.h46
-rw-r--r--engines/gob/detection/tables_gob3.h50
-rw-r--r--engines/gob/detection/tables_inca2.h18
-rw-r--r--engines/gob/detection/tables_lit.h38
-rw-r--r--engines/gob/detection/tables_littlered.h10
-rw-r--r--engines/gob/detection/tables_onceupon.h10
-rw-r--r--engines/gob/detection/tables_playtoons.h50
-rw-r--r--engines/gob/detection/tables_urban.h16
-rw-r--r--engines/gob/detection/tables_ween.h28
-rw-r--r--engines/gob/detection/tables_woodruff.h52
-rw-r--r--engines/gob/hotspots.cpp1
-rw-r--r--engines/gob/init_v2.cpp2
-rw-r--r--engines/gob/inter_fascin.cpp2
-rw-r--r--engines/gob/inter_playtoons.cpp2
-rw-r--r--engines/gob/inter_v2.cpp2
-rw-r--r--engines/gob/pregob/onceupon/stork.h2
-rw-r--r--engines/gob/pregob/onceupon/title.cpp2
-rw-r--r--engines/groovie/cursor.cpp3
-rw-r--r--engines/groovie/detection.cpp18
-rw-r--r--engines/groovie/vdx.h6
-rw-r--r--engines/hopkins/anim.cpp85
-rw-r--r--engines/hopkins/anim.h4
-rw-r--r--engines/hopkins/computer.cpp12
-rw-r--r--engines/hopkins/debugger.cpp23
-rw-r--r--engines/hopkins/debugger.h2
-rw-r--r--engines/hopkins/detection_tables.h32
-rw-r--r--engines/hopkins/dialogs.cpp2
-rw-r--r--engines/hopkins/events.cpp2
-rw-r--r--engines/hopkins/font.cpp1
-rw-r--r--engines/hopkins/globals.cpp6
-rw-r--r--engines/hopkins/globals.h2
-rw-r--r--engines/hopkins/graphics.cpp82
-rw-r--r--engines/hopkins/graphics.h7
-rw-r--r--engines/hopkins/hopkins.cpp194
-rw-r--r--engines/hopkins/hopkins.h13
-rw-r--r--engines/hopkins/lines.cpp118
-rw-r--r--engines/hopkins/lines.h10
-rw-r--r--engines/hopkins/menu.cpp6
-rw-r--r--engines/hopkins/objects.cpp71
-rw-r--r--engines/hopkins/objects.h2
-rw-r--r--engines/hopkins/saveload.cpp4
-rw-r--r--engines/hopkins/script.cpp141
-rw-r--r--engines/hopkins/sound.cpp17
-rw-r--r--engines/hugo/detection.cpp6
-rw-r--r--engines/hugo/file.cpp7
-rw-r--r--engines/hugo/hugo.cpp27
-rw-r--r--engines/hugo/intro.cpp2
-rw-r--r--engines/kyra/darkmoon.cpp16
-rw-r--r--engines/kyra/debugger.cpp141
-rw-r--r--engines/kyra/debugger.h8
-rw-r--r--engines/kyra/detection_tables.h166
-rw-r--r--engines/kyra/eob.cpp17
-rw-r--r--engines/kyra/eob.h1
-rw-r--r--engines/kyra/eobcommon.h2
-rw-r--r--engines/kyra/gui_lol.cpp4
-rw-r--r--engines/kyra/kyra_hof.cpp6
-rw-r--r--engines/kyra/lol.cpp2
-rw-r--r--engines/kyra/saveload_eob.cpp3
-rw-r--r--engines/kyra/scene_eob.cpp4
-rw-r--r--engines/kyra/scene_hof.cpp2
-rw-r--r--engines/kyra/scene_rpg.cpp4
-rw-r--r--engines/kyra/script_eob.cpp8
-rw-r--r--engines/kyra/script_hof.cpp2
-rw-r--r--engines/kyra/sequences_hof.cpp4
-rw-r--r--engines/kyra/sequences_lok.cpp2
-rw-r--r--engines/kyra/sound.cpp2
-rw-r--r--engines/kyra/sound_lol.cpp6
-rw-r--r--engines/kyra/sound_midi.cpp2
-rw-r--r--engines/kyra/sprites_eob.cpp9
-rw-r--r--engines/kyra/staticres.cpp10
-rw-r--r--engines/kyra/staticres_lol.cpp2
-rw-r--r--engines/kyra/text_hof.cpp2
-rw-r--r--engines/lastexpress/entities/august.cpp3
-rw-r--r--engines/lastexpress/entities/kahina.cpp3
-rw-r--r--engines/lure/detection.cpp16
-rw-r--r--engines/lure/res_struct.cpp4
-rw-r--r--engines/lure/scripts.cpp2
-rw-r--r--engines/made/console.cpp1
-rw-r--r--engines/made/database.cpp2
-rw-r--r--engines/made/detection.cpp48
-rw-r--r--engines/mohawk/detection_tables.h17
-rw-r--r--engines/mohawk/livingbooks.cpp12
-rw-r--r--engines/mohawk/livingbooks_code.cpp79
-rw-r--r--engines/mohawk/livingbooks_code.h3
-rw-r--r--engines/mohawk/livingbooks_lbx.cpp17
-rw-r--r--engines/mohawk/view.cpp4
-rw-r--r--engines/parallaction/balloons.cpp2
-rw-r--r--engines/parallaction/callables_ns.cpp2
-rw-r--r--engines/parallaction/detection.cpp6
-rw-r--r--engines/parallaction/font.cpp4
-rw-r--r--engines/parallaction/gfxbase.cpp2
-rw-r--r--engines/parallaction/graphics.cpp4
-rw-r--r--engines/parallaction/graphics.h2
-rw-r--r--engines/parallaction/gui_br.cpp4
-rw-r--r--engines/parallaction/input.cpp2
-rw-r--r--engines/parallaction/parallaction_br.cpp4
-rw-r--r--engines/parallaction/parallaction_ns.cpp4
-rw-r--r--engines/parallaction/staticres.cpp4
-rw-r--r--engines/pegasus/neighborhood/caldoria/caldoria.cpp6
-rw-r--r--engines/pegasus/neighborhood/mars/mars.cpp1
-rw-r--r--engines/pegasus/neighborhood/norad/delta/globegame.cpp10
-rw-r--r--engines/queen/cutaway.cpp2
-rw-r--r--engines/queen/display.cpp4
-rw-r--r--engines/queen/graphics.cpp6
-rw-r--r--engines/queen/input.cpp4
-rw-r--r--engines/queen/input.h4
-rw-r--r--engines/queen/logic.cpp8
-rw-r--r--engines/queen/queen.cpp2
-rw-r--r--engines/queen/resource.cpp4
-rw-r--r--engines/queen/talk.h2
-rw-r--r--engines/saga/actor.cpp2
-rw-r--r--engines/saga/detection_tables.h32
-rw-r--r--engines/saga/interface.cpp4
-rw-r--r--engines/saga/music.cpp4
-rw-r--r--engines/saga/saveload.cpp2
-rw-r--r--engines/saga/sndres.cpp9
-rw-r--r--engines/saga/sndres.h1
-rw-r--r--engines/sci/detection.cpp4
-rw-r--r--engines/sci/detection_tables.h600
-rw-r--r--engines/sci/engine/features.cpp4
-rw-r--r--engines/sci/engine/kernel.cpp15
-rw-r--r--engines/sci/engine/kernel.h3
-rw-r--r--engines/sci/engine/kevent.cpp9
-rw-r--r--engines/sci/engine/kfile.cpp2
-rw-r--r--engines/sci/engine/klists.cpp3
-rw-r--r--engines/sci/engine/ksound.cpp27
-rw-r--r--engines/sci/engine/kstring.cpp12
-rw-r--r--engines/sci/engine/message.cpp2
-rw-r--r--engines/sci/engine/message.h2
-rw-r--r--engines/sci/engine/savegame.cpp2
-rw-r--r--engines/sci/engine/script_patches.cpp84
-rw-r--r--engines/sci/engine/seg_manager.cpp3
-rw-r--r--engines/sci/engine/state.h4
-rw-r--r--engines/sci/graphics/animate.cpp2
-rw-r--r--engines/sci/graphics/compare.cpp4
-rw-r--r--engines/sci/graphics/compare.h3
-rw-r--r--engines/sci/graphics/controls16.cpp7
-rw-r--r--engines/sci/graphics/controls16.h1
-rw-r--r--engines/sci/graphics/controls32.cpp4
-rw-r--r--engines/sci/graphics/controls32.h3
-rw-r--r--engines/sci/graphics/coordadjuster.h2
-rw-r--r--engines/sci/graphics/cursor.cpp48
-rw-r--r--engines/sci/graphics/fontsjis.h3
-rw-r--r--engines/sci/graphics/frameout.cpp3
-rw-r--r--engines/sci/graphics/menu.cpp1
-rw-r--r--engines/sci/graphics/paint16.cpp12
-rw-r--r--engines/sci/graphics/paint16.h3
-rw-r--r--engines/sci/graphics/paint32.cpp4
-rw-r--r--engines/sci/graphics/paint32.h5
-rw-r--r--engines/sci/graphics/palette.cpp2
-rw-r--r--engines/sci/graphics/picture.cpp2
-rw-r--r--engines/sci/graphics/screen.cpp2
-rw-r--r--engines/sci/graphics/text16.cpp4
-rw-r--r--engines/sci/graphics/text16.h3
-rw-r--r--engines/sci/parser/grammar.cpp4
-rw-r--r--engines/sci/resource.cpp28
-rw-r--r--engines/sci/resource_audio.cpp4
-rw-r--r--engines/sci/resource_intern.h2
-rw-r--r--engines/sci/sci.cpp43
-rw-r--r--engines/sci/sound/audio.cpp13
-rw-r--r--engines/sci/sound/drivers/adlib.cpp4
-rw-r--r--engines/sci/sound/drivers/cms.cpp2
-rw-r--r--engines/sci/sound/drivers/fb01.cpp2
-rw-r--r--engines/sci/sound/soundcmd.cpp16
-rw-r--r--engines/scumm/actor.cpp4
-rw-r--r--engines/scumm/debugger.h1
-rw-r--r--engines/scumm/detection.cpp2
-rw-r--r--engines/scumm/detection_tables.h16
-rw-r--r--engines/scumm/he/animation_he.h1
-rw-r--r--engines/scumm/he/logic/football.cpp101
-rw-r--r--engines/scumm/he/script_v100he.cpp3
-rw-r--r--engines/scumm/he/script_v60he.cpp4
-rw-r--r--engines/scumm/he/wiz_he.cpp6
-rw-r--r--engines/scumm/insane/insane.cpp28
-rw-r--r--engines/scumm/insane/insane_ben.cpp32
-rw-r--r--engines/scumm/insane/insane_enemy.cpp14
-rw-r--r--engines/scumm/insane/insane_iact.cpp2
-rw-r--r--engines/scumm/insane/insane_scenes.cpp30
-rw-r--r--engines/scumm/resource.cpp2
-rw-r--r--engines/scumm/script.cpp24
-rw-r--r--engines/scumm/script.h13
-rw-r--r--engines/scumm/script_v4.cpp2
-rw-r--r--engines/scumm/script_v5.cpp16
-rw-r--r--engines/scumm/script_v6.cpp2
-rw-r--r--engines/scumm/scumm-md5.h264
-rw-r--r--engines/scumm/scumm.cpp6
-rw-r--r--engines/scumm/smush/smush_player.cpp4
-rw-r--r--engines/scumm/sound.cpp2
-rw-r--r--engines/scumm/vars.cpp4
-rw-r--r--engines/sword1/animation.cpp2
-rw-r--r--engines/sword1/console.cpp1
-rw-r--r--engines/sword1/control.cpp4
-rw-r--r--engines/sword1/resman.cpp9
-rw-r--r--engines/sword1/sound.cpp3
-rw-r--r--engines/sword1/sound.h3
-rw-r--r--engines/sword1/sword1.cpp2
-rw-r--r--engines/sword2/console.cpp2
-rw-r--r--engines/sword2/controls.cpp4
-rw-r--r--engines/sword2/memory.cpp2
-rw-r--r--engines/sword2/memory.h4
-rw-r--r--engines/sword2/palette.cpp10
-rw-r--r--engines/sword2/sound.h1
-rw-r--r--engines/sword2/sprite.cpp5
-rw-r--r--engines/sword2/sword2.cpp4
-rw-r--r--engines/sword25/console.cpp1
-rw-r--r--engines/sword25/gfx/animation.cpp8
-rw-r--r--engines/sword25/gfx/animation.h2
-rw-r--r--engines/sword25/gfx/bitmapresource.h10
-rw-r--r--engines/sword25/gfx/dynamicbitmap.cpp16
-rw-r--r--engines/sword25/gfx/dynamicbitmap.h2
-rw-r--r--engines/sword25/gfx/graphicengine.cpp1
-rw-r--r--engines/sword25/gfx/image/image.h7
-rw-r--r--engines/sword25/gfx/image/renderedimage.cpp324
-rw-r--r--engines/sword25/gfx/image/renderedimage.h8
-rw-r--r--engines/sword25/gfx/image/swimage.cpp3
-rw-r--r--engines/sword25/gfx/image/swimage.h3
-rw-r--r--engines/sword25/gfx/image/vectorimage.cpp6
-rw-r--r--engines/sword25/gfx/image/vectorimage.h3
-rw-r--r--engines/sword25/gfx/microtiles.cpp164
-rw-r--r--engines/sword25/gfx/microtiles.h65
-rw-r--r--engines/sword25/gfx/panel.cpp14
-rw-r--r--engines/sword25/gfx/panel.h8
-rw-r--r--engines/sword25/gfx/renderobject.cpp56
-rw-r--r--engines/sword25/gfx/renderobject.h41
-rw-r--r--engines/sword25/gfx/renderobjectmanager.cpp73
-rw-r--r--engines/sword25/gfx/renderobjectmanager.h20
-rw-r--r--engines/sword25/gfx/rootrenderobject.h2
-rw-r--r--engines/sword25/gfx/staticbitmap.cpp10
-rw-r--r--engines/sword25/gfx/staticbitmap.h2
-rw-r--r--engines/sword25/gfx/text.cpp12
-rw-r--r--engines/sword25/gfx/text.h2
-rw-r--r--engines/sword25/module.mk1
-rw-r--r--engines/teenagent/detection.cpp4
-rw-r--r--engines/testbed/detection.cpp2
-rw-r--r--engines/testbed/midi.cpp4
-rw-r--r--engines/tinsel/detection_tables.h58
-rw-r--r--engines/tinsel/dialogs.cpp4
-rw-r--r--engines/tinsel/faders.cpp2
-rw-r--r--engines/tinsel/graphics.cpp5
-rw-r--r--engines/tinsel/object.cpp4
-rw-r--r--engines/tinsel/palette.cpp4
-rw-r--r--engines/toltecs/detection.cpp16
-rw-r--r--engines/toltecs/movie.cpp20
-rw-r--r--engines/toltecs/movie.h4
-rw-r--r--engines/toltecs/screen.cpp4
-rw-r--r--engines/toltecs/screen.h1
-rw-r--r--engines/toltecs/script.cpp6
-rw-r--r--engines/toltecs/toltecs.cpp5
-rw-r--r--engines/toon/anim.cpp4
-rw-r--r--engines/toon/console.cpp1
-rw-r--r--engines/toon/detection.cpp14
-rw-r--r--engines/toon/font.cpp8
-rw-r--r--engines/toon/toon.cpp2
-rw-r--r--engines/touche/detection.cpp16
-rw-r--r--engines/tsage/converse.cpp7
-rw-r--r--engines/tsage/core.cpp42
-rw-r--r--engines/tsage/core.h7
-rw-r--r--engines/tsage/detection_tables.h20
-rw-r--r--engines/tsage/graphics.h1
-rw-r--r--engines/tsage/ringworld/ringworld_scenes3.cpp6
-rw-r--r--engines/tsage/ringworld2/ringworld2_scenes1.cpp15
-rw-r--r--engines/tsage/sound.cpp13
-rw-r--r--engines/tucker/console.cpp3
-rw-r--r--engines/tucker/detection.cpp16
-rw-r--r--engines/wintermute/ad/ad_actor.cpp14
-rw-r--r--engines/wintermute/ad/ad_entity.cpp4
-rw-r--r--engines/wintermute/ad/ad_game.cpp14
-rw-r--r--engines/wintermute/ad/ad_inventory_box.cpp6
-rw-r--r--engines/wintermute/ad/ad_item.cpp6
-rw-r--r--engines/wintermute/ad/ad_node_state.cpp2
-rw-r--r--engines/wintermute/ad/ad_object.cpp40
-rw-r--r--engines/wintermute/ad/ad_path.cpp2
-rw-r--r--engines/wintermute/ad/ad_path_point.cpp2
-rw-r--r--engines/wintermute/ad/ad_response.cpp8
-rw-r--r--engines/wintermute/ad/ad_response_box.cpp12
-rw-r--r--engines/wintermute/ad/ad_response_context.cpp2
-rw-r--r--engines/wintermute/ad/ad_scene.cpp72
-rw-r--r--engines/wintermute/ad/ad_scene.h22
-rw-r--r--engines/wintermute/ad/ad_scene_node.cpp4
-rw-r--r--engines/wintermute/ad/ad_sentence.cpp18
-rw-r--r--engines/wintermute/ad/ad_sprite_set.cpp4
-rw-r--r--engines/wintermute/ad/ad_talk_def.cpp4
-rw-r--r--engines/wintermute/ad/ad_talk_holder.cpp2
-rw-r--r--engines/wintermute/ad/ad_talk_node.cpp4
-rw-r--r--engines/wintermute/base/base_frame.cpp2
-rw-r--r--engines/wintermute/base/base_game.cpp38
-rw-r--r--engines/wintermute/base/base_game_music.cpp2
-rw-r--r--engines/wintermute/base/base_object.cpp6
-rw-r--r--engines/wintermute/base/base_persistence_manager.cpp10
-rw-r--r--engines/wintermute/base/base_persistence_manager.h4
-rw-r--r--engines/wintermute/base/base_region.cpp2
-rw-r--r--engines/wintermute/base/base_scriptable.cpp6
-rw-r--r--engines/wintermute/base/base_sprite.cpp6
-rw-r--r--engines/wintermute/base/base_sprite.h2
-rw-r--r--engines/wintermute/base/base_sub_frame.h4
-rw-r--r--engines/wintermute/base/base_viewport.cpp10
-rw-r--r--engines/wintermute/base/base_viewport.h2
-rw-r--r--engines/wintermute/base/font/base_font_bitmap.cpp6
-rw-r--r--engines/wintermute/base/font/base_font_bitmap.h16
-rw-r--r--engines/wintermute/base/font/base_font_storage.cpp2
-rw-r--r--engines/wintermute/base/font/base_font_truetype.cpp17
-rw-r--r--engines/wintermute/base/font/base_font_truetype.h24
-rw-r--r--engines/wintermute/base/gfx/osystem/base_render_osystem.cpp49
-rw-r--r--engines/wintermute/base/gfx/osystem/base_render_osystem.h1
-rw-r--r--engines/wintermute/base/particles/part_emitter.cpp2
-rw-r--r--engines/wintermute/base/particles/part_emitter.h30
-rw-r--r--engines/wintermute/base/save_thumb_helper.cpp2
-rw-r--r--engines/wintermute/base/save_thumb_helper.h3
-rw-r--r--engines/wintermute/base/scriptables/script.cpp28
-rw-r--r--engines/wintermute/base/scriptables/script_engine.cpp6
-rw-r--r--engines/wintermute/base/scriptables/script_ext_array.cpp2
-rw-r--r--engines/wintermute/base/scriptables/script_ext_date.cpp29
-rw-r--r--engines/wintermute/base/scriptables/script_stack.cpp2
-rw-r--r--engines/wintermute/base/scriptables/script_value.cpp18
-rw-r--r--engines/wintermute/base/scriptables/script_value.h4
-rw-r--r--engines/wintermute/base/sound/base_sound.cpp2
-rw-r--r--engines/wintermute/base/timer.cpp2
-rw-r--r--engines/wintermute/base/timer.h2
-rw-r--r--engines/wintermute/coll_templ.h97
-rw-r--r--engines/wintermute/dcgf.h2
-rw-r--r--engines/wintermute/detection_tables.h4
-rw-r--r--engines/wintermute/persistent.h3
-rw-r--r--engines/wintermute/ui/ui_button.cpp26
-rw-r--r--engines/wintermute/ui/ui_edit.cpp20
-rw-r--r--engines/wintermute/ui/ui_entity.cpp2
-rw-r--r--engines/wintermute/ui/ui_object.cpp14
-rw-r--r--engines/wintermute/ui/ui_tiled_image.cpp4
-rw-r--r--engines/wintermute/ui/ui_tiled_image.h2
-rw-r--r--engines/wintermute/ui/ui_window.cpp12
-rw-r--r--engines/wintermute/video/video_theora_player.cpp2
393 files changed, 3936 insertions, 2452 deletions
diff --git a/engines/advancedDetector.cpp b/engines/advancedDetector.cpp
index 9beba6ce4a..b1d1008b60 100644
--- a/engines/advancedDetector.cpp
+++ b/engines/advancedDetector.cpp
@@ -78,7 +78,7 @@ static Common::String generatePreferredTarget(const Common::String &id, const AD
res = res + "-cd";
}
- if (desc->platform != Common::kPlatformPC && desc->platform != Common::kPlatformUnknown) {
+ if (desc->platform != Common::kPlatformDOS && desc->platform != Common::kPlatformUnknown) {
res = res + "-" + getPlatformAbbrev(desc->platform);
}
diff --git a/engines/agi/agi.cpp b/engines/agi/agi.cpp
index 98ffca22ed..1c342183cd 100644
--- a/engines/agi/agi.cpp
+++ b/engines/agi/agi.cpp
@@ -513,10 +513,7 @@ AgiBase::AgiBase(OSystem *syst, const AGIGameDescription *gameDesc) : Engine(sys
AgiBase::~AgiBase() {
delete _rnd;
- if (_sound) {
- _sound->deinitSound();
- delete _sound;
- }
+ delete _sound;
}
void AgiBase::initRenderMode() {
@@ -588,6 +585,21 @@ AgiEngine::AgiEngine(OSystem *syst, const AGIGameDescription *gameDesc) : AgiBas
setupOpcodes();
_game._curLogic = NULL;
_timerHack = 0;
+
+ _lastSaveTime = 0;
+ _lastTick = 0;
+
+ memset(_keyQueue, 0, sizeof(_keyQueue));
+ memset(_predictiveResult, 0, sizeof(_predictiveResult));
+
+ _sprites = NULL;
+ _picture = NULL;
+ _loader = NULL;
+ _console = NULL;
+
+ _egoHoldKey = false;
+
+
}
void AgiEngine::initialize() {
@@ -650,7 +662,6 @@ void AgiEngine::initialize() {
_game.sbuf = _game.sbuf16c; // Make sbuf point to the 16 color (+control line & priority info) AGI screen by default
_gfx->initVideo();
- _sound->initSound();
_lastSaveTime = 0;
diff --git a/engines/agi/agi.h b/engines/agi/agi.h
index 520b0aae59..93a456b9a6 100644
--- a/engines/agi/agi.h
+++ b/engines/agi/agi.h
@@ -942,7 +942,7 @@ public:
void setvar(int, int);
void decrypt(uint8 *mem, int len);
void releaseSprites();
- int mainCycle();
+ int mainCycle(bool onlyCheckForEvents = false);
int viewPictures();
int runGame();
void inventory();
diff --git a/engines/agi/cycle.cpp b/engines/agi/cycle.cpp
index 5daadbd1df..702ca907d7 100644
--- a/engines/agi/cycle.cpp
+++ b/engines/agi/cycle.cpp
@@ -187,12 +187,14 @@ void AgiEngine::oldInputMode() {
}
// If main_cycle returns false, don't process more events!
-int AgiEngine::mainCycle() {
+int AgiEngine::mainCycle(bool onlyCheckForEvents) {
unsigned int key, kascii;
VtEntry *v = &_game.viewTable[0];
- pollTimer();
- updateTimer();
+ if (!onlyCheckForEvents) {
+ pollTimer();
+ updateTimer();
+ }
key = doPollKeyboard();
@@ -205,7 +207,13 @@ int AgiEngine::mainCycle() {
_game.vars[29] = _mouse.y;
//}
- if (key == KEY_PRIORITY) {
+ if (key == KEY_STATUSLN) { // F11
+ _debug.statusline = !_debug.statusline;
+ writeStatus();
+ key = 0;
+ }
+
+ if (key == KEY_PRIORITY) { // F12
_sprites->eraseBoth();
_debug.priority = !_debug.priority;
_picture->showPic();
@@ -214,14 +222,8 @@ int AgiEngine::mainCycle() {
key = 0;
}
- if (key == KEY_STATUSLN) {
- _debug.statusline = !_debug.statusline;
- writeStatus();
- key = 0;
- }
-
// Click-to-walk mouse interface
- if (_game.playerControl && v->flags & fAdjEgoXY) {
+ if (_game.playerControl && (v->flags & fAdjEgoXY)) {
int toX = v->parm1;
int toY = v->parm2;
@@ -289,10 +291,13 @@ int AgiEngine::mainCycle() {
break;
}
} while (restartProcessKey);
- _gfx->doUpdate();
- if (_game.msgBoxTicks > 0)
- _game.msgBoxTicks--;
+ if (!onlyCheckForEvents) {
+ _gfx->doUpdate();
+
+ if (_game.msgBoxTicks > 0)
+ _game.msgBoxTicks--;
+ }
return true;
}
@@ -412,7 +417,7 @@ int AgiEngine::runGame() {
else
setvar(vSoundgen, kAgiSoundTandy);
break;
- case Common::kPlatformPC:
+ case Common::kPlatformDOS:
default:
setvar(vComputer, kAgiComputerPC);
setvar(vSoundgen, kAgiSoundPC);
diff --git a/engines/agi/detection.cpp b/engines/agi/detection.cpp
index 5f7780bfe3..3f55117868 100644
--- a/engines/agi/detection.cpp
+++ b/engines/agi/detection.cpp
@@ -318,8 +318,6 @@ SaveStateDescriptor AgiMetaEngine::querySaveMetaInfos(const char *target, int sl
int minutes = saveTime & 0xFF;
desc.setSaveTime(hour, minutes);
-
- // TODO: played time
}
@@ -350,7 +348,7 @@ const ADGameDescription *AgiMetaEngine::fallbackDetect(const FileMap &allFilesXX
// Set the default values for the fallback descriptor's ADGameDescription part.
g_fallbackDesc.desc.language = Common::UNK_LANG;
- g_fallbackDesc.desc.platform = Common::kPlatformPC;
+ g_fallbackDesc.desc.platform = Common::kPlatformDOS;
g_fallbackDesc.desc.flags = ADGF_NO_FLAGS;
// Set default values for the fallback descriptor's AGIGameDescription part.
diff --git a/engines/agi/detection_tables.h b/engines/agi/detection_tables.h
index 9d67b15adb..0c2c3ed3be 100644
--- a/engines/agi/detection_tables.h
+++ b/engines/agi/detection_tables.h
@@ -54,14 +54,14 @@ namespace Agi {
ver \
}
-#define BOOTER2(id,extra,fname,md5,size,ver,gid) GAME_LVFPN(id,extra,fname,md5,size,Common::EN_ANY,ver,0,gid,Common::kPlatformPC,GType_V2)
-#define GAME(id,extra,md5,ver,gid) GAME_LVFPN(id,extra,"logdir",md5,-1,Common::EN_ANY,ver,0,gid,Common::kPlatformPC,GType_V2)
-#define GAME3(id,extra,fname,md5,ver,gid) GAME_LVFPN(id,extra,fname,md5,-1,Common::EN_ANY,ver,0,gid,Common::kPlatformPC,GType_V3)
+#define BOOTER2(id,extra,fname,md5,size,ver,gid) GAME_LVFPN(id,extra,fname,md5,size,Common::EN_ANY,ver,0,gid,Common::kPlatformDOS,GType_V2)
+#define GAME(id,extra,md5,ver,gid) GAME_LVFPN(id,extra,"logdir",md5,-1,Common::EN_ANY,ver,0,gid,Common::kPlatformDOS,GType_V2)
+#define GAME3(id,extra,fname,md5,ver,gid) GAME_LVFPN(id,extra,fname,md5,-1,Common::EN_ANY,ver,0,gid,Common::kPlatformDOS,GType_V3)
#define GAME_P(id,extra,md5,ver,gid,platform) GAME_LVFPN(id,extra,"logdir",md5,-1,Common::EN_ANY,ver,0,gid,platform,GType_V2)
#define GAME_FP(id,extra,md5,ver,flags,gid,platform) GAME_LVFPN(id,extra,"logdir",md5,-1,Common::EN_ANY,ver,flags,gid,platform,GType_V2)
-#define GAME_F(id,extra,md5,ver,flags,gid) GAME_FP(id,extra,md5,ver,flags,gid,Common::kPlatformPC)
+#define GAME_F(id,extra,md5,ver,flags,gid) GAME_FP(id,extra,md5,ver,flags,gid,Common::kPlatformDOS)
#define GAME_PS(id,extra,md5,size,ver,gid,platform) GAME_LVFPN(id,extra,"logdir",md5,size,Common::EN_ANY,ver,0,gid,platform,GType_V2)
@@ -77,7 +77,7 @@ namespace Agi {
#define GAME3_PS(id,extra,fname,md5,size,ver,flags,gid,platform) GAME_LVFPN(id,extra,fname,md5,size,Common::EN_ANY,ver,flags,gid,platform,GType_V3)
-#define FANMADE_ILVF(id,name,md5,lang,ver,features) GAME_LVFPNF(id,name,"logdir",md5,-1,lang,ver,(GF_FANMADE|features),GID_FANMADE,Common::kPlatformPC,GType_V2)
+#define FANMADE_ILVF(id,name,md5,lang,ver,features) GAME_LVFPNF(id,name,"logdir",md5,-1,lang,ver,(GF_FANMADE|features),GID_FANMADE,Common::kPlatformDOS,GType_V2)
#define FANMADE_ISVP(id,name,md5,size,ver,platform) GAME_LVFPNF(id,name,"logdir",md5,size,Common::EN_ANY,ver,GF_FANMADE,GID_FANMADE,platform,GType_V2)
#define FANMADE_SVP(name,md5,size,ver,platform) FANMADE_ISVP("agi-fanmade",name,md5,size,ver,platform)
@@ -128,7 +128,7 @@ static const AGIGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -149,7 +149,7 @@ static const AGIGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -170,7 +170,7 @@ static const AGIGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -191,7 +191,7 @@ static const AGIGameDescription gameDescriptions[] = {
GAME("bc", "2.00 1987-06-14", "7f598d4712319b09d7bd5b3be10a2e4a", 0x2440, GID_BC),
// Black Cauldron (Russian)
- GAME_LPS("bc", "", "b7de782dfdf8ea7dde8064f09804bcf5", 357, Common::RU_RUS, 0x2440, GID_BC, Common::kPlatformPC),
+ GAME_LPS("bc", "", "b7de782dfdf8ea7dde8064f09804bcf5", 357, Common::RU_RUS, 0x2440, GID_BC, Common::kPlatformDOS),
// Black Cauldron (PC 5.25") 2.10 11/10/88 [AGI 3.002.098]
GAME3("bc", "2.10 1988-11-10 5.25\"", "bcdir", "0c5a9acbcc7e51127c34818e75806df6", 0x3149, GID_BC),
@@ -218,7 +218,7 @@ static const AGIGameDescription gameDescriptions[] = {
// reported by Filippos (thebluegr) in bugreport #1654500
// Menus not tested
- GAME_PS("ddp", "1.0C 1986-06-09", "550971d196f65190a5c760d2479406ef", 132, 0x2272, GID_DDP, Common::kPlatformPC),
+ GAME_PS("ddp", "1.0C 1986-06-09", "550971d196f65190a5c760d2479406ef", 132, 0x2272, GID_DDP, Common::kPlatformDOS),
// Gold Rush! (Amiga) 1.01 1/13/89 aka 2.05 3/9/89 # 2.316
GAME3_PS("goldrush", "1.01 1989-01-13 aka 2.05 1989-03-09", "dirs", "a1d4de3e75c2688c1e2ca2634ffc3bd8", 2399, 0x3149, 0, GID_GOLDRUSH, Common::kPlatformAmiga),
@@ -311,7 +311,7 @@ static const AGIGameDescription gameDescriptions[] = {
GAME("kq2", "2.2 1987-05-07 5.25\"/3.5\"", "b944c4ff18fb8867362dc21cc688a283", 0x2917, GID_KQ2),
// King's Quest 2 (Russian)
- GAME_LPS("kq2", "", "35211c574ececebdc723b23e35f99275", 543, Common::RU_RUS, 0x2917, GID_KQ2, Common::kPlatformPC),
+ GAME_LPS("kq2", "", "35211c574ececebdc723b23e35f99275", 543, Common::RU_RUS, 0x2917, GID_KQ2, Common::kPlatformDOS),
// King's Quest 2 (CoCo3 360k) [AGI 2.023]
GAME_PS("kq2", "", "b944c4ff18fb8867362dc21cc688a283", 543, 0x2440, GID_KQ2, Common::kPlatformCoCo3),
@@ -344,10 +344,10 @@ static const AGIGameDescription gameDescriptions[] = {
// King's Quest 3 (PC) 1.01 11/08/86 [AGI 2.272]
// Does not have menus, crashes if menus are enforced. Therefore, ESC pauses the game
- GAME_FP("kq3", "1.01 1986-11-08", "9c2b34e7ffaa89c8e2ecfeb3695d444b", 0x2272, GF_ESCPAUSE, GID_KQ3, Common::kPlatformPC),
+ GAME_FP("kq3", "1.01 1986-11-08", "9c2b34e7ffaa89c8e2ecfeb3695d444b", 0x2272, GF_ESCPAUSE, GID_KQ3, Common::kPlatformDOS),
// King's Quest 3 (Russian)
- GAME_LFPS("kq3", "", "5856dec6ccb9c4b70aee21044a19270a", 390, Common::RU_RUS, 0x2272, GF_ESCPAUSE, GID_KQ3, Common::kPlatformPC),
+ GAME_LFPS("kq3", "", "5856dec6ccb9c4b70aee21044a19270a", 390, Common::RU_RUS, 0x2272, GF_ESCPAUSE, GID_KQ3, Common::kPlatformDOS),
// King's Quest 3 (PC 5.25") 2.00 5/25/87 [AGI 2.435]
GAME("kq3", "2.00 1987-05-25 5.25\"", "18aad8f7acaaff760720c5c6885b6bab", 0x2440, GID_KQ3),
@@ -396,10 +396,10 @@ static const AGIGameDescription gameDescriptions[] = {
GAME("lsl1", "1.00 1987-06-01 5.25\"/3.5\"", "1fe764e66857e7f305a5f03ca3f4971d", 0x2440, GID_LSL1),
// Leisure Suit Larry 1 Polish
- GAME_LPS("lsl1", "2.00 2001-12-11", "7ba1fccc46d27c141e704706c1d0a85f", 303, Common::PL_POL, 0x2440, GID_LSL1, Common::kPlatformPC),
+ GAME_LPS("lsl1", "2.00 2001-12-11", "7ba1fccc46d27c141e704706c1d0a85f", 303, Common::PL_POL, 0x2440, GID_LSL1, Common::kPlatformDOS),
// Leisure Suit Larry 1 Polish - Demo
- GAME_LPS("lsl1", "Demo", "3b2f564306c401dff6334441df967ddd", 666, Common::PL_POL, 0x2917, GID_LSL1, Common::kPlatformPC),
+ GAME_LPS("lsl1", "Demo", "3b2f564306c401dff6334441df967ddd", 666, Common::PL_POL, 0x2917, GID_LSL1, Common::kPlatformDOS),
// Leisure Suit Larry 1 (ST) 1.04 6/18/87
GAME_P("lsl1", "1.04 1987-06-18", "8b579f8673fe9448c2538f5ed9887cf0", 0x2440, GID_LSL1, Common::kPlatformAtariST),
@@ -427,10 +427,10 @@ static const AGIGameDescription gameDescriptions[] = {
// reported by Filippos (thebluegr) in bugreport #1654500
// Manhunter NY (PC 5.25") 1.22 8/31/88 [AGI 3.002.107]
- GAME3_PS("mh1", "1.22 1988-08-31", "mhdir", "0c7b86f05fe02c2e26cff1b07450b82a", 2123, 0x3149, 0, GID_MH1, Common::kPlatformPC),
+ GAME3_PS("mh1", "1.22 1988-08-31", "mhdir", "0c7b86f05fe02c2e26cff1b07450b82a", 2123, 0x3149, 0, GID_MH1, Common::kPlatformDOS),
// Manhunter NY (PC 3.5") 1.22 8/31/88 [AGI 3.002.102]
- GAME3_PS("mh1", "1.22 1988-08-31", "mhdir", "5b625329021ad49fd0c1d6f2d6f54bba", 2141, 0x3149, 0, GID_MH1, Common::kPlatformPC),
+ GAME3_PS("mh1", "1.22 1988-08-31", "mhdir", "5b625329021ad49fd0c1d6f2d6f54bba", 2141, 0x3149, 0, GID_MH1, Common::kPlatformDOS),
// Manhunter NY (CoCo3 720k) [AGI 2.023]
GAME_PS("mh1", "", "b968285caf2f591c78dd9c9e26ab8974", 495, 0x2440, GID_MH1, Common::kPlatformCoCo3),
@@ -458,7 +458,7 @@ static const AGIGameDescription gameDescriptions[] = {
// Mickey's Space Adventure
// Preagi game
- GAMEpre_P("mickey", "", "1.pic", "b6ec04c91a05df374792872c4d4ce66d", 0x0000, GID_MICKEY, Common::kPlatformPC),
+ GAMEpre_P("mickey", "", "1.pic", "b6ec04c91a05df374792872c4d4ce66d", 0x0000, GID_MICKEY, Common::kPlatformDOS),
#if 0
// Mixed-Up Mother Goose (Amiga) 1.1
@@ -495,7 +495,7 @@ static const AGIGameDescription gameDescriptions[] = {
GAME("pq1", "2.0A 1987-10-23", "b9dbb305092851da5e34d6a9f00240b1", 0x2917, GID_PQ1),
// Police Quest 1 (Russian)
- GAME_LPS("pq1", "", "604cc8041d24c4c7e5fa8baf386ef76e", 360, Common::RU_RUS, 0x2917, GID_PQ1, Common::kPlatformPC),
+ GAME_LPS("pq1", "", "604cc8041d24c4c7e5fa8baf386ef76e", 360, Common::RU_RUS, 0x2917, GID_PQ1, Common::kPlatformDOS),
// Police Quest 1 2.0G 12/3/87
GAME("pq1", "2.0G 1987-12-03 5.25\"/ST", "231f3e28170d6e982fc0ced4c98c5c1c", 0x2440, GID_PQ1),
@@ -516,11 +516,11 @@ static const AGIGameDescription gameDescriptions[] = {
// Space Quest 1 (PC 360k) 1.1A [AGI 2.272]
// The original game did not have menus, they are enabled under ScummVM
- GAME_FP("sq1", "1.1A 1986-11-13", "8d8c20ab9f4b6e4817698637174a1cb6", 0x2272, GF_MENUS, GID_SQ1, Common::kPlatformPC),
+ GAME_FP("sq1", "1.1A 1986-11-13", "8d8c20ab9f4b6e4817698637174a1cb6", 0x2272, GF_MENUS, GID_SQ1, Common::kPlatformDOS),
// Space Quest 1 (PC 720k) 1.1A [AGI 2.272]
// The original game did not have menus, they are enabled under ScummVM
- GAME_FP("sq1", "1.1A 720kb", "0a92b1be7daf3bb98caad3f849868aeb", 0x2272, GF_MENUS, GID_SQ1, Common::kPlatformPC),
+ GAME_FP("sq1", "1.1A 720kb", "0a92b1be7daf3bb98caad3f849868aeb", 0x2272, GF_MENUS, GID_SQ1, Common::kPlatformDOS),
// Space Quest 1 (Amiga) 1.2 # 2.082
// The original game did not have menus, they are enabled under ScummVM
@@ -534,10 +534,10 @@ static const AGIGameDescription gameDescriptions[] = {
// Space Quest 1 (PC) 1.0X [AGI 2.089]
// Does not have menus, crashes if menus are enforced. Therefore, ESC pauses the game
- GAME_FP("sq1", "1.0X 1986-09-24", "af93941b6c51460790a9efa0e8cb7122", 0x2089, GF_ESCPAUSE, GID_SQ1, Common::kPlatformPC),
+ GAME_FP("sq1", "1.0X 1986-09-24", "af93941b6c51460790a9efa0e8cb7122", 0x2089, GF_ESCPAUSE, GID_SQ1, Common::kPlatformDOS),
// Space Quest 1 (Russian)
- GAME_LFPS("sq1", "", "a279eb8ddbdefdb1ea6adc827a1d632a", 372, Common::RU_RUS, 0x2089, GF_ESCPAUSE, GID_SQ1, Common::kPlatformPC),
+ GAME_LFPS("sq1", "", "a279eb8ddbdefdb1ea6adc827a1d632a", 372, Common::RU_RUS, 0x2089, GF_ESCPAUSE, GID_SQ1, Common::kPlatformDOS),
// Space Quest 1 (PC 5.25"/3.5") 2.2 [AGI 2.426/2.917]
GAME("sq1", "2.2 1987-05-07 5.25\"/3.5\"", "5d67630aba008ec5f7f9a6d0a00582f4", 0x2440, GID_SQ1),
@@ -584,17 +584,17 @@ static const AGIGameDescription gameDescriptions[] = {
// reported by Filippos (thebluegr) in bugreport #1654500
// Space Quest 2 (PC 5.25") 2.0A [AGI 2.912]
- GAME_PS("sq2", "2.0A 1987-11-06 5.25\"", "ad7ce8f800581ecc536f3e8021d7a74d", 423, 0x2917, GID_SQ2, Common::kPlatformPC),
+ GAME_PS("sq2", "2.0A 1987-11-06 5.25\"", "ad7ce8f800581ecc536f3e8021d7a74d", 423, 0x2917, GID_SQ2, Common::kPlatformDOS),
// reported by RadG (radg123) in bug report #3260349
// Space Quest 2 (Spanish)
- GAME_LPS("sq2", "", "1ae7640dd4d253c3ac2d708d61a35379", 426, Common::ES_ESP, 0x2917, GID_SQ2, Common::kPlatformPC),
+ GAME_LPS("sq2", "", "1ae7640dd4d253c3ac2d708d61a35379", 426, Common::ES_ESP, 0x2917, GID_SQ2, Common::kPlatformDOS),
// Space Quest 2 (Russian)
- GAME_LPS("sq2", "", "ba21c8934caf28e3ba45ce7d1cd6b041", 423, Common::RU_RUS, 0x2917, GID_SQ2, Common::kPlatformPC),
+ GAME_LPS("sq2", "", "ba21c8934caf28e3ba45ce7d1cd6b041", 423, Common::RU_RUS, 0x2917, GID_SQ2, Common::kPlatformDOS),
// Space Quest 2 (PC 3.5") 2.0A [AGI 2.912]
- GAME_PS("sq2", "2.0A 1987-11-06 3.5\"", "6c25e33d23b8bed42a5c7fa63d588e5c", 423, 0x2917, GID_SQ2, Common::kPlatformPC),
+ GAME_PS("sq2", "2.0A 1987-11-06 3.5\"", "6c25e33d23b8bed42a5c7fa63d588e5c", 423, 0x2917, GID_SQ2, Common::kPlatformDOS),
// Space Quest 2 (PC 5.25"/ST) 2.0C/A [AGI 2.915]
// Menus not tested
@@ -610,10 +610,10 @@ static const AGIGameDescription gameDescriptions[] = {
GAME_PS("sq2", "updated", "d24f19b047e65e1763eff4b46f3d50df", 768, 0x2440, GID_SQ2, Common::kPlatformCoCo3),
// Troll's Tale
- GAMEpre_PS("troll", "", "troll.img", "62903f264b3d849be4214b3a5c42a2fa", 184320, 0x0000, GID_TROLL, Common::kPlatformPC),
+ GAMEpre_PS("troll", "", "troll.img", "62903f264b3d849be4214b3a5c42a2fa", 184320, 0x0000, GID_TROLL, Common::kPlatformDOS),
// Winnie the Pooh in the Hundred Acre Wood
- GAMEpre_P("winnie", "", "title.pic", "2e7900c1ccaa7671d65405f6d1efed30", 0x0000, GID_WINNIE, Common::kPlatformPC),
+ GAMEpre_P("winnie", "", "title.pic", "2e7900c1ccaa7671d65405f6d1efed30", 0x0000, GID_WINNIE, Common::kPlatformDOS),
// Winnie the Pooh in the Hundred Acre Wood (Amiga)
GAMEpre_P("winnie", "", "title", "2e7900c1ccaa7671d65405f6d1efed30", 0x0000, GID_WINNIE, Common::kPlatformAmiga),
@@ -707,10 +707,10 @@ static const AGIGameDescription gameDescriptions[] = {
FANMADE("Good Man (demo v3.41)", "3facd8a8f856b7b6e0f6c3200274d88c"),
GAME_LVFPNF("agi-fanmade", "Groza (russian) [AGDS sample]", "logdir", "421da3a18004122a966d64ab6bd86d2e", -1,
- Common::RU_RUS, 0x2440, GF_AGDS, GID_FANMADE, Common::kPlatformPC,GType_V2),
+ Common::RU_RUS, 0x2440, GF_AGDS, GID_FANMADE, Common::kPlatformDOS,GType_V2),
GAME_LVFPNF("agi-fanmade", "Get Outta Space Quest", "logdir", "aaea5b4a348acb669d13b0e6f22d4dc9", -1,
- Common::EN_ANY, 0x2440, GF_FANMADE, GID_GETOUTTASQ, Common::kPlatformPC,GType_V2),
+ Common::EN_ANY, 0x2440, GF_FANMADE, GID_GETOUTTASQ, Common::kPlatformDOS,GType_V2),
FANMADE_F("Half-Death - Terror At White-Mesa", "b62c05d0ace878261392073f57ae788c", GF_AGIMOUSE),
FANMADE("Hank's Quest (v1.0 English) - Victim of Society", "64c15b3d0483d17888129100dc5af213"),
@@ -857,7 +857,7 @@ static const AGIGameDescription gameDescriptions[] = {
"V - The Graphical Adventure (Demo 2)",
AD_ENTRY1s("vdir", "c71f5c1e008d352ae9040b77fcf79327", 3080),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_USEEXTRAASTITLE,
GUIO0()
},
@@ -885,7 +885,7 @@ static AGIGameDescription g_fallbackDesc = {
"",
AD_ENTRY1(0, 0), // This should always be AD_ENTRY1(0, 0) in the fallback descriptor
Common::UNK_LANG,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
diff --git a/engines/agi/loader_v1.cpp b/engines/agi/loader_v1.cpp
index 189c98ee98..33e956af41 100644
--- a/engines/agi/loader_v1.cpp
+++ b/engines/agi/loader_v1.cpp
@@ -254,7 +254,7 @@ int AgiLoader_v1::loadResource(int t, int n) {
if (data != NULL) {
// Freeing of the raw resource from memory is delegated to the createFromRawResource-function
- _vm->_game.sounds[n] = AgiSound::createFromRawResource(data, _vm->_game.dirSound[n].len, n, *_vm->_sound, _vm->_soundemu);
+ _vm->_game.sounds[n] = AgiSound::createFromRawResource(data, _vm->_game.dirSound[n].len, n, _vm->_soundemu);
_vm->_game.dirSound[n].flags |= RES_LOADED;
} else {
ec = errBadResource;
diff --git a/engines/agi/loader_v2.cpp b/engines/agi/loader_v2.cpp
index a2ac6f0111..ee69bb5b27 100644
--- a/engines/agi/loader_v2.cpp
+++ b/engines/agi/loader_v2.cpp
@@ -230,7 +230,7 @@ int AgiLoader_v2::loadResource(int t, int n) {
if (data != NULL) {
// Freeing of the raw resource from memory is delegated to the createFromRawResource-function
- _vm->_game.sounds[n] = AgiSound::createFromRawResource(data, _vm->_game.dirSound[n].len, n, *_vm->_sound, _vm->_soundemu);
+ _vm->_game.sounds[n] = AgiSound::createFromRawResource(data, _vm->_game.dirSound[n].len, n, _vm->_soundemu);
_vm->_game.dirSound[n].flags |= RES_LOADED;
} else {
ec = errBadResource;
diff --git a/engines/agi/loader_v3.cpp b/engines/agi/loader_v3.cpp
index 29635f935b..250d8e7615 100644
--- a/engines/agi/loader_v3.cpp
+++ b/engines/agi/loader_v3.cpp
@@ -314,7 +314,7 @@ int AgiLoader_v3::loadResource(int t, int n) {
data = loadVolRes(&_vm->_game.dirSound[n]);
if (data != NULL) {
// Freeing of the raw resource from memory is delegated to the createFromRawResource-function
- _vm->_game.sounds[n] = AgiSound::createFromRawResource(data, _vm->_game.dirSound[n].len, n, *_vm->_sound, _vm->_soundemu);
+ _vm->_game.sounds[n] = AgiSound::createFromRawResource(data, _vm->_game.dirSound[n].len, n, _vm->_soundemu);
_vm->_game.dirSound[n].flags |= RES_LOADED;
} else {
ec = errBadResource;
diff --git a/engines/agi/op_cmd.cpp b/engines/agi/op_cmd.cpp
index 9d899b1855..2366d97a82 100644
--- a/engines/agi/op_cmd.cpp
+++ b/engines/agi/op_cmd.cpp
@@ -1219,7 +1219,7 @@ void cmdWander(AgiGame *state, uint8 *p) {
void cmdSetGameID(AgiGame *state, uint8 *p) {
if (state->_curLogic->texts && (p0 - 1) <= state->_curLogic->numTexts)
- strncpy(state->id, state->_curLogic->texts[p0 - 1], 8);
+ Common::strlcpy(state->id, state->_curLogic->texts[p0 - 1], 8);
else
state->id[0] = 0;
@@ -1705,7 +1705,9 @@ void cmdCallV1(AgiGame *state, uint8 *p) {
// FIXME: The following instruction looks incomplete.
// Maybe something is meant to be assigned to, or read from,
// the logic_list entry?
- state->logic_list[++state->max_logics];
+// state->logic_list[++state->max_logics];
+ // For now, just do the increment, to silence a clang warning
+ ++state->max_logics;
_v[13] = 1;
}
diff --git a/engines/agi/op_test.cpp b/engines/agi/op_test.cpp
index 124a1cfcb7..18861a2190 100644
--- a/engines/agi/op_test.cpp
+++ b/engines/agi/op_test.cpp
@@ -259,7 +259,12 @@ uint8 AgiEngine::testKeypressed() {
InputMode mode = _game.inputMode;
_game.inputMode = INPUT_NONE;
- mainCycle();
+ // Only check for events here, without updating the game cycle,
+ // otherwise the animations in some games are drawn too quickly
+ // like, for example, Manannan's lightnings in the intro of KQ3
+ // and the bullets opened in the logo of PQ1, during its intro.
+ // Fixes bug #3600733
+ mainCycle(true);
_game.inputMode = mode;
}
diff --git a/engines/agi/preagi_winnie.cpp b/engines/agi/preagi_winnie.cpp
index 53863a8c7e..bbe9ddd0c6 100644
--- a/engines/agi/preagi_winnie.cpp
+++ b/engines/agi/preagi_winnie.cpp
@@ -90,7 +90,7 @@ void WinnieEngine::parseObjHeader(WTP_OBJ_HDR *objHdr, byte *buffer, int len) {
uint32 WinnieEngine::readRoom(int iRoom, uint8 *buffer, WTP_ROOM_HDR &roomHdr) {
Common::String fileName;
- if (getPlatform() == Common::kPlatformPC)
+ if (getPlatform() == Common::kPlatformDOS)
fileName = Common::String::format(IDS_WTP_ROOM_DOS, iRoom);
else if (getPlatform() == Common::kPlatformAmiga)
fileName = Common::String::format(IDS_WTP_ROOM_AMIGA, iRoom);
@@ -123,7 +123,7 @@ uint32 WinnieEngine::readRoom(int iRoom, uint8 *buffer, WTP_ROOM_HDR &roomHdr) {
uint32 WinnieEngine::readObj(int iObj, uint8 *buffer) {
Common::String fileName;
- if (getPlatform() == Common::kPlatformPC)
+ if (getPlatform() == Common::kPlatformDOS)
fileName = Common::String::format(IDS_WTP_OBJ_DOS, iObj);
else if (getPlatform() == Common::kPlatformAmiga)
fileName = Common::String::format(IDS_WTP_OBJ_AMIGA, iObj);
@@ -1118,7 +1118,7 @@ void WinnieEngine::drawRoomPic() {
bool WinnieEngine::playSound(ENUM_WTP_SOUND iSound) {
// TODO: Only DOS sound is supported, currently
- if (getPlatform() != Common::kPlatformPC) {
+ if (getPlatform() != Common::kPlatformDOS) {
warning("STUB: playSound(%d)", iSound);
return false;
}
@@ -1134,7 +1134,7 @@ bool WinnieEngine::playSound(ENUM_WTP_SOUND iSound) {
file.read(data, size);
file.close();
- _game.sounds[0] = AgiSound::createFromRawResource(data, size, 0, *_sound, _soundemu);
+ _game.sounds[0] = AgiSound::createFromRawResource(data, size, 0, _soundemu);
_sound->startSound(0, 0);
bool cursorShowing = CursorMan.showMouse(false);
@@ -1334,7 +1334,6 @@ void WinnieEngine::init() {
}
_sound = new SoundMgr(this, _mixer);
- _sound->initSound();
setflag(fSoundOn, true); // enable sound
memset(&_gameStateWinnie, 0, sizeof(_gameStateWinnie));
diff --git a/engines/agi/saveload.cpp b/engines/agi/saveload.cpp
index d451a799a0..c449f076e7 100644
--- a/engines/agi/saveload.cpp
+++ b/engines/agi/saveload.cpp
@@ -316,7 +316,7 @@ int AgiEngine::loadGame(const Common::String &fileName, bool checkId) {
return errBadFileOpen;
}
- strncpy(_game.id, loadId, 8);
+ Common::strlcpy(_game.id, loadId, 8);
if (saveVersion >= 5) {
char md5[32 + 1];
@@ -678,7 +678,7 @@ int AgiEngine::selectSlot() {
switch (key) {
case KEY_ENTER:
rc = active;
- strncpy(_game.strings[MAX_STRINGS], desc[i], MAX_STRINGLEN);
+ Common::strlcpy(_game.strings[MAX_STRINGS], desc[i], MAX_STRINGLEN);
debugC(8, kDebugLevelMain | kDebugLevelInput, "Button pressed: %d", rc);
exitSelectSlot = true;
break;
diff --git a/engines/agi/sound.cpp b/engines/agi/sound.cpp
index ca3d799ecc..56c7ebcb0b 100644
--- a/engines/agi/sound.cpp
+++ b/engines/agi/sound.cpp
@@ -36,25 +36,25 @@ namespace Agi {
// TODO: add support for variable sampling rate in the output device
//
-AgiSound *AgiSound::createFromRawResource(uint8 *data, uint32 len, int resnum, SoundMgr &manager, int soundemu) {
+AgiSound *AgiSound::createFromRawResource(uint8 *data, uint32 len, int resnum, int soundemu) {
if (data == NULL || len < 2) // Check for too small resource or no resource at all
return NULL;
uint16 type = READ_LE_UINT16(data);
// For V1 sound resources
if (type != AGI_SOUND_SAMPLE && (type & 0xFF) == 0x01)
- return new PCjrSound(data, len, resnum, manager);
+ return new PCjrSound(data, len, resnum);
switch (type) { // Create a sound object based on the type
case AGI_SOUND_SAMPLE:
- return new IIgsSample(data, len, resnum, manager);
+ return new IIgsSample(data, len, resnum);
case AGI_SOUND_MIDI:
- return new IIgsMidi(data, len, resnum, manager);
+ return new IIgsMidi(data, len, resnum);
case AGI_SOUND_4CHN:
if (soundemu == SOUND_EMU_MIDI) {
- return new MIDISound(data, len, resnum, manager);
+ return new MIDISound(data, len, resnum);
} else {
- return new PCjrSound(data, len, resnum, manager);
+ return new PCjrSound(data, len, resnum);
}
}
@@ -62,7 +62,7 @@ AgiSound *AgiSound::createFromRawResource(uint8 *data, uint32 len, int resnum, S
return NULL;
}
-PCjrSound::PCjrSound(uint8 *data, uint32 len, int resnum, SoundMgr &manager) : AgiSound(manager) {
+PCjrSound::PCjrSound(uint8 *data, uint32 len, int resnum) : AgiSound() {
_data = data; // Save the resource pointer
_len = len; // Save the resource's length
_type = READ_LE_UINT16(data); // Read sound resource's type
@@ -167,16 +167,6 @@ void SoundMgr::stopSound() {
_endflag = -1;
}
-int SoundMgr::initSound() {
- return -1;
-}
-
-void SoundMgr::deinitSound() {
- stopSound();
-
- delete _soundGen;
-}
-
void SoundMgr::soundIsFinished() {
if (_endflag != -1)
_vm->setflag(_endflag, true);
@@ -219,6 +209,9 @@ void SoundMgr::setVolume(uint8 volume) {
}
SoundMgr::~SoundMgr() {
+ stopSound();
+
+ delete _soundGen;
}
} // End of namespace Agi
diff --git a/engines/agi/sound.h b/engines/agi/sound.h
index 6fd8dd516e..f300af83a3 100644
--- a/engines/agi/sound.h
+++ b/engines/agi/sound.h
@@ -93,7 +93,7 @@ public:
*/
class AgiSound {
public:
- AgiSound(SoundMgr &manager) : _manager(manager), _isPlaying(false), _isValid(false) {}
+ AgiSound() : _isPlaying(false), _isValid(false) {}
virtual ~AgiSound() {}
virtual void play() { _isPlaying = true; }
virtual void stop() { _isPlaying = false; }
@@ -108,17 +108,16 @@ public:
* from memory using free() or delegate the responsibility onwards to some other
* function!
*/
- static AgiSound *createFromRawResource(uint8 *data, uint32 len, int resnum, SoundMgr &manager, int soundemu);
+ static AgiSound *createFromRawResource(uint8 *data, uint32 len, int resnum, int soundemu);
protected:
- SoundMgr &_manager; ///< AGI sound manager object
bool _isPlaying; ///< Is the sound playing?
bool _isValid; ///< Is this a valid sound object?
};
class PCjrSound : public AgiSound {
public:
- PCjrSound(uint8 *data, uint32 len, int resnum, SoundMgr &manager);
+ PCjrSound(uint8 *data, uint32 len, int resnum);
~PCjrSound() { free(_data); }
virtual uint16 type() { return _type; }
const uint8 *getVoicePointer(uint voiceNum);
@@ -140,8 +139,6 @@ public:
void unloadSound(int);
void playSound();
- int initSound();
- void deinitSound();
void startSound(int, int);
void stopSound();
diff --git a/engines/agi/sound_2gs.cpp b/engines/agi/sound_2gs.cpp
index bfc8d4d8f3..f088ad3a01 100644
--- a/engines/agi/sound_2gs.cpp
+++ b/engines/agi/sound_2gs.cpp
@@ -447,7 +447,7 @@ void SoundGen2GS::setProgramChangeMapping(const IIgsMidiProgramMapping *mapping)
_progToInst = mapping;
}
-IIgsMidi::IIgsMidi(uint8 *data, uint32 len, int resnum, SoundMgr &manager) : AgiSound(manager) {
+IIgsMidi::IIgsMidi(uint8 *data, uint32 len, int resnum) : AgiSound() {
_data = data; // Save the resource pointer
_ptr = _data + 2; // Set current position to just after the header
_len = len; // Save the resource's length
@@ -472,7 +472,7 @@ static bool convertWave(Common::SeekableReadStream &source, int8 *dest, uint len
return !(source.eos() || source.err());
}
-IIgsSample::IIgsSample(uint8 *data, uint32 len, int resnum, SoundMgr &manager) : AgiSound(manager) {
+IIgsSample::IIgsSample(uint8 *data, uint32 len, int resnum) : AgiSound() {
Common::MemoryReadStream stream(data, len, DisposeAfterUse::YES);
// Check that the header was read ok and that it's of the correct type
diff --git a/engines/agi/sound_2gs.h b/engines/agi/sound_2gs.h
index 404f4a47a1..12e7b7b951 100644
--- a/engines/agi/sound_2gs.h
+++ b/engines/agi/sound_2gs.h
@@ -144,7 +144,7 @@ public:
class IIgsMidi : public AgiSound {
public:
- IIgsMidi(uint8 *data, uint32 len, int resnum, SoundMgr &manager);
+ IIgsMidi(uint8 *data, uint32 len, int resnum);
~IIgsMidi() { if (_data != NULL) free(_data); }
virtual uint16 type() { return _type; }
virtual const uint8 *getPtr() { return _ptr; }
@@ -161,7 +161,7 @@ public:
class IIgsSample : public AgiSound {
public:
- IIgsSample(uint8 *data, uint32 len, int resnum, SoundMgr &manager);
+ IIgsSample(uint8 *data, uint32 len, int resnum);
~IIgsSample() { delete[] _sample; }
virtual uint16 type() { return _header.type; }
const IIgsSampleHeader &getHeader() const { return _header; }
diff --git a/engines/agi/sound_midi.cpp b/engines/agi/sound_midi.cpp
index 47d354093b..24e3ca8fb7 100644
--- a/engines/agi/sound_midi.cpp
+++ b/engines/agi/sound_midi.cpp
@@ -59,7 +59,7 @@ namespace Agi {
static uint32 convertSND2MIDI(byte *snddata, byte **data);
-MIDISound::MIDISound(uint8 *data, uint32 len, int resnum, SoundMgr &manager) : AgiSound(manager) {
+MIDISound::MIDISound(uint8 *data, uint32 len, int resnum) : AgiSound() {
_data = data; // Save the resource pointer
_len = len; // Save the resource's length
_type = READ_LE_UINT16(data); // Read sound resource's type
diff --git a/engines/agi/sound_midi.h b/engines/agi/sound_midi.h
index 36bd66ee76..ac1b100b12 100644
--- a/engines/agi/sound_midi.h
+++ b/engines/agi/sound_midi.h
@@ -33,7 +33,7 @@ namespace Agi {
class MIDISound : public AgiSound {
public:
- MIDISound(uint8 *data, uint32 len, int resnum, SoundMgr &manager);
+ MIDISound(uint8 *data, uint32 len, int resnum);
~MIDISound() { free(_data); }
virtual uint16 type() { return _type; }
uint8 *_data; ///< Raw sound resource data
@@ -61,8 +61,6 @@ public:
private:
bool _isGM;
-
- SoundMgr *_manager;
};
} // End of namespace Agi
diff --git a/engines/agi/wagparser.cpp b/engines/agi/wagparser.cpp
index 61feac5d17..8dee6545c0 100644
--- a/engines/agi/wagparser.cpp
+++ b/engines/agi/wagparser.cpp
@@ -98,7 +98,7 @@ void WagProperty::setDefaults() {
}
void WagProperty::deleteData() {
- delete _propData;
+ delete[] _propData;
_propData = NULL;
}
diff --git a/engines/agos/agos.cpp b/engines/agos/agos.cpp
index 73a37e42ef..359a6f7289 100644
--- a/engines/agos/agos.cpp
+++ b/engines/agos/agos.cpp
@@ -580,7 +580,7 @@ Common::Error AGOSEngine::init() {
if ((getGameType() == GType_SIMON2 && getPlatform() == Common::kPlatformWindows) ||
(getGameType() == GType_SIMON1 && getPlatform() == Common::kPlatformWindows) ||
((getFeatures() & GF_TALKIE) && getPlatform() == Common::kPlatformAcorn) ||
- (getPlatform() == Common::kPlatformPC)) {
+ (getPlatform() == Common::kPlatformDOS)) {
int ret = _midi->open(getGameType());
if (ret)
diff --git a/engines/agos/detection.cpp b/engines/agos/detection.cpp
index 13559c2f4f..a5a42a86ad 100644
--- a/engines/agos/detection.cpp
+++ b/engines/agos/detection.cpp
@@ -53,12 +53,12 @@ static const Engines::ObsoleteGameID obsoleteGameIDsTable[] = {
{"simon1acorn", "simon1", Common::kPlatformAcorn},
{"simon1amiga", "simon1", Common::kPlatformAmiga},
{"simon1cd32", "simon1", Common::kPlatformAmiga},
- {"simon1demo", "simon1", Common::kPlatformPC},
- {"simon1dos", "simon1", Common::kPlatformPC},
- {"simon1talkie", "simon1", Common::kPlatformPC},
+ {"simon1demo", "simon1", Common::kPlatformDOS},
+ {"simon1dos", "simon1", Common::kPlatformDOS},
+ {"simon1talkie", "simon1", Common::kPlatformDOS},
{"simon1win", "simon1", Common::kPlatformWindows},
- {"simon2dos", "simon2", Common::kPlatformPC},
- {"simon2talkie", "simon2", Common::kPlatformPC},
+ {"simon2dos", "simon2", Common::kPlatformDOS},
+ {"simon2talkie", "simon2", Common::kPlatformDOS},
{"simon2mac", "simon2", Common::kPlatformMacintosh},
{"simon2win", "simon2", Common::kPlatformWindows},
{0, 0, Common::kPlatformUnknown}
diff --git a/engines/agos/detection_tables.h b/engines/agos/detection_tables.h
index 7fe6df5f17..70757865f5 100644
--- a/engines/agos/detection_tables.h
+++ b/engines/agos/detection_tables.h
@@ -105,7 +105,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -283,7 +283,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO,
GUIO1(GUIO_NOSPEECH)
},
@@ -306,7 +306,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -329,7 +329,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -352,7 +352,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -375,7 +375,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -584,7 +584,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -610,7 +610,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -636,7 +636,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -662,7 +662,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -688,7 +688,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -714,7 +714,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -740,7 +740,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -766,7 +766,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -843,7 +843,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO,
GUIO1(GUIO_NOSPEECH)
},
@@ -872,7 +872,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -901,7 +901,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -930,7 +930,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -959,7 +959,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -1249,7 +1249,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO,
GUIO1(GUIO_NOSPEECH)
},
@@ -1273,7 +1273,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -1297,7 +1297,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::CZ_CZE,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -1321,7 +1321,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::RU_RUS,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -1345,7 +1345,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -1369,7 +1369,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::CZ_CZE,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -1393,7 +1393,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::RU_RUS,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -1417,7 +1417,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -1441,7 +1441,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -1465,7 +1465,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -1489,7 +1489,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -1514,7 +1514,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO,
GUIO1(GUIO_NOSUBTITLES)
},
@@ -1539,7 +1539,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO1(GUIO_NOSUBTITLES)
},
@@ -1564,7 +1564,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO1(GUIO_NOSUBTITLES)
},
@@ -1589,7 +1589,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::RU_RUS,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -1614,7 +1614,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -1639,7 +1639,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSUBTITLES)
},
@@ -1664,7 +1664,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::HE_ISR,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -1689,7 +1689,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -1740,7 +1740,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -1815,7 +1815,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -1840,7 +1840,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::RU_RUS,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -1865,7 +1865,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -1890,7 +1890,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -1915,7 +1915,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -1940,7 +1940,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO,
GUIO0()
},
@@ -1965,7 +1965,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO,
GUIO0()
},
@@ -1990,7 +1990,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO,
GUIO0()
},
@@ -2015,7 +2015,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -2040,7 +2040,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -2065,7 +2065,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -2090,7 +2090,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -2115,7 +2115,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -2140,7 +2140,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::HE_ISR,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -2191,7 +2191,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -2338,7 +2338,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOMUSIC, GUIO_NOASPECT)
},
@@ -2359,7 +2359,7 @@ static const AGOSGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOMUSIC, GUIO_NOASPECT)
},
diff --git a/engines/agos/feeble.cpp b/engines/agos/feeble.cpp
index 4608969667..a96caa9f8b 100644
--- a/engines/agos/feeble.cpp
+++ b/engines/agos/feeble.cpp
@@ -38,6 +38,7 @@ AGOSEngine_Feeble::AGOSEngine_Feeble(OSystem *system, const AGOSGameDescription
_interactiveVideo = 0;
_moviePlayer = 0;
_vgaCurSpritePriority = 0;
+ _mouseToggle = false;
}
AGOSEngine_Feeble::~AGOSEngine_Feeble() {
diff --git a/engines/agos/gfx.cpp b/engines/agos/gfx.cpp
index fbf7f416ed..db0817250b 100644
--- a/engines/agos/gfx.cpp
+++ b/engines/agos/gfx.cpp
@@ -1450,7 +1450,7 @@ void AGOSEngine::setWindowImage(uint16 mode, uint16 vgaSpriteId, bool specialCas
}
if (getGameType() == GType_PN && !_wiped && !specialCase) {
- uint8 color = (getPlatform() == Common::kPlatformPC) ? 7 : 15;
+ uint8 color = (getPlatform() == Common::kPlatformDOS) ? 7 : 15;
dst = (byte *)screen->pixels + 48;
memset(dst, color, 224);
@@ -1475,7 +1475,7 @@ void AGOSEngine::setWindowImage(uint16 mode, uint16 vgaSpriteId, bool specialCas
// Personal Nightmare specific
void AGOSEngine::drawEdging() {
byte *dst;
- uint8 color = (getPlatform() == Common::kPlatformPC) ? 7 : 15;
+ uint8 color = (getPlatform() == Common::kPlatformDOS) ? 7 : 15;
Graphics::Surface *screen = _system->lockScreen();
diff --git a/engines/agos/icons.cpp b/engines/agos/icons.cpp
index 7db2d85f21..0ee1d62fde 100644
--- a/engines/agos/icons.cpp
+++ b/engines/agos/icons.cpp
@@ -1044,7 +1044,7 @@ void AGOSEngine_PN::drawIconHitBar() {
Graphics::Surface *screen = _system->lockScreen();
byte *dst = (byte *)screen->pixels + 3 * screen->pitch + 6 * 8;
const byte *src = hitBarData;
- uint8 color = (getPlatform() == Common::kPlatformPC) ? 7 : 15;
+ uint8 color = (getPlatform() == Common::kPlatformDOS) ? 7 : 15;
for (int h = 0; h < 7; h++) {
for (int w = 0; w < 12; w++) {
diff --git a/engines/agos/res.cpp b/engines/agos/res.cpp
index 2e44a6575c..cf1d062d96 100644
--- a/engines/agos/res.cpp
+++ b/engines/agos/res.cpp
@@ -932,7 +932,7 @@ void AGOSEngine::loadVGAVideoFile(uint16 id, uint8 type, bool useError) {
}
dstSize = srcSize = in->size();
- if (getGameType() == GType_PN && getPlatform() == Common::kPlatformPC && id == 17 && type == 2) {
+ if (getGameType() == GType_PN && getPlatform() == Common::kPlatformDOS && id == 17 && type == 2) {
// The A2.out file isn't compressed in PC version of Personal Nightmare
dst = allocBlock(dstSize + extraBuffer);
if (in->read(dst, dstSize) != dstSize)
diff --git a/engines/agos/saveload.cpp b/engines/agos/saveload.cpp
index e13fa214d1..48671390f0 100644
--- a/engines/agos/saveload.cpp
+++ b/engines/agos/saveload.cpp
@@ -105,7 +105,7 @@ char *AGOSEngine_Simon1::genSaveName(int slot) {
char *AGOSEngine_Waxworks::genSaveName(int slot) {
static char buf[20];
- if (getPlatform() == Common::kPlatformPC)
+ if (getPlatform() == Common::kPlatformDOS)
sprintf(buf, "waxworks-pc.%.3d", slot);
else
sprintf(buf, "waxworks.%.3d", slot);
@@ -116,7 +116,7 @@ char *AGOSEngine_Waxworks::genSaveName(int slot) {
char *AGOSEngine_Elvira2::genSaveName(int slot) {
static char buf[20];
- if (getPlatform() == Common::kPlatformPC)
+ if (getPlatform() == Common::kPlatformDOS)
sprintf(buf, "elvira2-pc.%.3d", slot);
else
sprintf(buf, "elvira2.%.3d", slot);
@@ -1264,7 +1264,7 @@ bool AGOSEngine_Elvira2::loadGame(const char *filename, bool restartMode) {
addTimeEvent(timeout, subroutine_id);
}
- if (getGameType() == GType_WW && getPlatform() == Common::kPlatformPC) {
+ if (getGameType() == GType_WW && getPlatform() == Common::kPlatformDOS) {
for (uint s = 0; s < _numRoomStates; s++) {
_roomStates[s].state = f->readUint16BE();
_roomStates[s].classFlags = f->readUint16BE();
@@ -1385,7 +1385,7 @@ bool AGOSEngine_Elvira2::loadGame(const char *filename, bool restartMode) {
if (getGameType() == GType_WW && getPlatform() == Common::kPlatformAmiga) {
_itemStore[i] = derefItem(f->readUint16BE() / 16);
} else if (getGameType() == GType_ELVIRA2) {
- if (getPlatform() == Common::kPlatformPC) {
+ if (getPlatform() == Common::kPlatformDOS) {
_itemStore[i] = derefItem(readItemID(f));
} else {
_itemStore[i] = derefItem(f->readUint16BE() / 18);
@@ -1475,7 +1475,7 @@ bool AGOSEngine_Elvira2::saveGame(uint slot, const char *caption) {
f->writeUint16BE(te->subroutine_id);
}
- if (getGameType() == GType_WW && getPlatform() == Common::kPlatformPC) {
+ if (getGameType() == GType_WW && getPlatform() == Common::kPlatformDOS) {
if (_roomsListPtr) {
byte *p = _roomsListPtr;
for (;;) {
@@ -1564,7 +1564,7 @@ bool AGOSEngine_Elvira2::saveGame(uint slot, const char *caption) {
if (getGameType() == GType_WW && getPlatform() == Common::kPlatformAmiga) {
f->writeUint16BE(itemPtrToID(_itemStore[i]) * 16);
} else if (getGameType() == GType_ELVIRA2) {
- if (getPlatform() == Common::kPlatformPC) {
+ if (getPlatform() == Common::kPlatformDOS) {
writeItemID(f, itemPtrToID(_itemStore[i]));
} else {
f->writeUint16BE(itemPtrToID(_itemStore[i]) * 18);
diff --git a/engines/agos/sound.cpp b/engines/agos/sound.cpp
index bec41bbbd3..a6a731ab24 100644
--- a/engines/agos/sound.cpp
+++ b/engines/agos/sound.cpp
@@ -674,7 +674,7 @@ void Sound::playRawData(byte *soundData, uint sound, uint size, uint freq) {
memcpy(buffer, soundData, size);
byte flags = 0;
- if (_vm->getPlatform() == Common::kPlatformPC)
+ if (_vm->getPlatform() == Common::kPlatformDOS)
flags = Audio::FLAG_UNSIGNED;
Audio::AudioStream *stream = Audio::makeRawStream(buffer, size, freq, flags);
diff --git a/engines/agos/verb.cpp b/engines/agos/verb.cpp
index dec05f6703..93077ed83e 100644
--- a/engines/agos/verb.cpp
+++ b/engines/agos/verb.cpp
@@ -1004,7 +1004,7 @@ void AGOSEngine::invertBox(HitArea *ha, byte a, byte b, byte c, byte d) {
src[i] = color;
}
} else if (getGameType() == GType_PN) {
- if (getPlatform() == Common::kPlatformPC) {
+ if (getPlatform() == Common::kPlatformDOS) {
if (color != 15) {
color ^= 7;
src[i] = color;
diff --git a/engines/agos/vga_pn.cpp b/engines/agos/vga_pn.cpp
index 3bd5400504..1e7b2ba060 100644
--- a/engines/agos/vga_pn.cpp
+++ b/engines/agos/vga_pn.cpp
@@ -152,7 +152,7 @@ void AGOSEngine::vc48_specialEffect() {
uint16 num = vcReadNextWord();
vcReadNextWord();
- if (getPlatform() == Common::kPlatformPC) {
+ if (getPlatform() == Common::kPlatformDOS) {
if (num == 1) {
Graphics::Surface *screen = _system->lockScreen();
byte *dst = (byte *)screen->pixels;
diff --git a/engines/cge/detection.cpp b/engines/cge/detection.cpp
index 3d6c24d68b..9e40c7b925 100644
--- a/engines/cge/detection.cpp
+++ b/engines/cge/detection.cpp
@@ -44,7 +44,7 @@ static const ADGameDescription gameDescriptions[] = {
{"vol.dat", 0, "f9ae2e7f8f7cac91378cdafca43faf1e", 8437572},
AD_LISTEND
},
- Common::PL_POL, Common::kPlatformPC, ADGF_NO_FLAGS, GUIO0()
+ Common::PL_POL, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO0()
},
{
"soltys", "Soltys Freeware",
@@ -53,7 +53,7 @@ static const ADGameDescription gameDescriptions[] = {
{"vol.dat", 0, "f9ae2e7f8f7cac91378cdafca43faf1e", 8437676},
AD_LISTEND
},
- Common::PL_POL, Common::kPlatformPC, ADGF_NO_FLAGS, GUIO0()
+ Common::PL_POL, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO0()
},
{
"soltys", "Soltys Demo (not supported)",
@@ -62,7 +62,7 @@ static const ADGameDescription gameDescriptions[] = {
{"vol.dat", 0, "75d385a6074c58b69f7730481f256051", 1796710},
AD_LISTEND
},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO , GUIO0()
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO , GUIO0()
},
{
"soltys", "Soltys Demo (not supported)",
@@ -71,7 +71,7 @@ static const ADGameDescription gameDescriptions[] = {
{"vol.dat", 0, "c5d9b15863cab61dc125551576dece04", 1075272},
AD_LISTEND
},
- Common::PL_POL, Common::kPlatformPC, ADGF_DEMO , GUIO0()
+ Common::PL_POL, Common::kPlatformDOS, ADGF_DEMO , GUIO0()
},
{
"soltys", "Soltys Freeware v1.0",
@@ -80,7 +80,7 @@ static const ADGameDescription gameDescriptions[] = {
{"vol.dat", 0, "4ffeff4abc99ac5999b55ccfc56ab1df", 8430868},
AD_LISTEND
},
- Common::EN_ANY, Common::kPlatformPC, ADGF_NO_FLAGS , GUIO0()
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_NO_FLAGS , GUIO0()
},
{
"soltys", "Soltys Freeware v1.0",
@@ -89,7 +89,7 @@ static const ADGameDescription gameDescriptions[] = {
{"vol.dat", 0, "0e43331c846094d77f5dd201827e0a3b", 8439339},
AD_LISTEND
},
- Common::PL_POL, Common::kPlatformPC, ADGF_NO_FLAGS, GUIO0()
+ Common::PL_POL, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO0()
},
AD_TABLE_END_MARKER
};
diff --git a/engines/cge/snail.cpp b/engines/cge/snail.cpp
index 4cd95a888e..edb8972040 100644
--- a/engines/cge/snail.cpp
+++ b/engines/cge/snail.cpp
@@ -1199,6 +1199,8 @@ void CGEEngine::snFlash(bool on) {
}
_vga->setColors(pal, 64);
}
+
+ free(pal);
} else
_vga->setColors(_vga->_sysPal, 64);
_dark = false;
diff --git a/engines/cine/cine.cpp b/engines/cine/cine.cpp
index aa7221f733..63092a8ffd 100644
--- a/engines/cine/cine.cpp
+++ b/engines/cine/cine.cpp
@@ -84,7 +84,7 @@ Common::Error CineEngine::run() {
// Initialize backend
initGraphics(320, 200, false);
- if (getPlatform() == Common::kPlatformPC) {
+ if (getPlatform() == Common::kPlatformDOS) {
g_sound = new PCSound(_mixer, this);
} else {
// Paula chipset for Amiga and Atari versions
diff --git a/engines/cine/console.cpp b/engines/cine/console.cpp
index 4af28592e7..46f0ea61d3 100644
--- a/engines/cine/console.cpp
+++ b/engines/cine/console.cpp
@@ -28,6 +28,7 @@ namespace Cine {
bool labyrinthCheat;
CineConsole::CineConsole(CineEngine *vm) : GUI::Debugger(), _vm(vm) {
+ assert(_vm);
DCmd_Register("labyrinthCheat", WRAP_METHOD(CineConsole, Cmd_LabyrinthCheat));
labyrinthCheat = false;
diff --git a/engines/cine/detection.cpp b/engines/cine/detection.cpp
index 823b8e38b5..a3d36cfd97 100644
--- a/engines/cine/detection.cpp
+++ b/engines/cine/detection.cpp
@@ -184,7 +184,7 @@ void CineMetaEngine::removeSaveState(const char *target, int slot) const {
// Set description for selected slot
char slotName[20];
slotName[0] = 0;
- strncpy(saveNames[slot], slotName, 20);
+ Common::strlcpy(saveNames[slot], slotName, 20);
// Update savegame descriptions
Common::String indexFile = Common::String::format("%s.dir", target);
diff --git a/engines/cine/detection_tables.h b/engines/cine/detection_tables.h
index bf02f0519c..224ebe5de2 100644
--- a/engines/cine/detection_tables.h
+++ b/engines/cine/detection_tables.h
@@ -29,7 +29,7 @@ static const CINEGameDescription gameDescriptions[] = {
"",
AD_ENTRY1("part01", "61d003202d301c29dd399acfb1354310"),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -49,7 +49,7 @@ static const CINEGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_USA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -64,7 +64,7 @@ static const CINEGameDescription gameDescriptions[] = {
"",
AD_ENTRY1("part01", "91d7271155520eae6915a9dd2dac120c"),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -78,7 +78,7 @@ static const CINEGameDescription gameDescriptions[] = {
"",
AD_ENTRY1("part01", "f5e98fcca3fb5e7afa284c81c39d8b14"),
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -92,7 +92,7 @@ static const CINEGameDescription gameDescriptions[] = {
"",
AD_ENTRY1("part01", "570109f965c7f53984b98c83d86eb206"),
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -106,7 +106,7 @@ static const CINEGameDescription gameDescriptions[] = {
"",
AD_ENTRY1("part01", "5d1acb97abe9591f9008e00d07add95a"),
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -250,7 +250,7 @@ static const CINEGameDescription gameDescriptions[] = {
"256 colors",
AD_ENTRY1("procs00", "d6752e7d25924cb866b61eb7cb0c8b56"),
Common::EN_GRB,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_UNSTABLE,
GUIO0()
},
@@ -266,7 +266,7 @@ static const CINEGameDescription gameDescriptions[] = {
"",
AD_ENTRY1("procs1", "9629129b86979fa592c1787385bf3695"),
Common::EN_GRB,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_UNSTABLE,
GUIO0()
},
@@ -280,7 +280,7 @@ static const CINEGameDescription gameDescriptions[] = {
"",
AD_ENTRY1("procs1", "d8c3a9d05a63e4cfa801826a7063a126"),
Common::EN_USA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_UNSTABLE,
GUIO0()
},
@@ -294,7 +294,7 @@ static const CINEGameDescription gameDescriptions[] = {
"256 colors",
AD_ENTRY1("procs00", "862a75d76fb7fffec30e52be9ad1c474"),
Common::EN_USA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_UNSTABLE,
GUIO0()
},
@@ -308,7 +308,7 @@ static const CINEGameDescription gameDescriptions[] = {
"",
AD_ENTRY1("procs1", "39b91ae35d1297ce0a76a1a803ca1593"),
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_UNSTABLE,
GUIO0()
},
@@ -322,7 +322,7 @@ static const CINEGameDescription gameDescriptions[] = {
"",
AD_ENTRY1("procs1", "74c2dabd9d212525fca8875a5f6d8994"),
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_UNSTABLE,
GUIO0()
},
@@ -340,7 +340,7 @@ static const CINEGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_UNSTABLE,
GUIO0()
},
@@ -354,7 +354,7 @@ static const CINEGameDescription gameDescriptions[] = {
"256 colors",
AD_ENTRY1("procs00", "f143567f08cfd1a9b1c9a41c89eadfef"),
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_UNSTABLE,
GUIO0()
},
@@ -368,7 +368,7 @@ static const CINEGameDescription gameDescriptions[] = {
"",
AD_ENTRY1("procs1", "da066e6b8dd93f2502c2a3755f08dc12"),
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_UNSTABLE,
GUIO0()
},
diff --git a/engines/cine/part.cpp b/engines/cine/part.cpp
index 813cbe50af..7c0ba3af0a 100644
--- a/engines/cine/part.cpp
+++ b/engines/cine/part.cpp
@@ -57,7 +57,7 @@ void loadPart(const char *partName) {
g_cine->_partFileHandle.readUint32BE(); // unused
}
- if (g_cine->getGameType() == Cine::GType_FW && g_cine->getPlatform() == Common::kPlatformPC && strcmp(partName, "BASESON.SND") != 0)
+ if (g_cine->getGameType() == Cine::GType_FW && g_cine->getPlatform() == Common::kPlatformDOS && strcmp(partName, "BASESON.SND") != 0)
loadPal(partName);
}
diff --git a/engines/cine/script_fw.cpp b/engines/cine/script_fw.cpp
index b4fe68c343..176380c14f 100644
--- a/engines/cine/script_fw.cpp
+++ b/engines/cine/script_fw.cpp
@@ -1727,7 +1727,7 @@ int FWScript::o1_loadMusic() {
debugC(5, kCineDebugScript, "Line: %d: loadMusic(%s)", _line, param);
g_sound->loadMusic(param);
- strncpy(currentDatName, param, 30);
+ Common::strlcpy(currentDatName, param, 30);
musicIsPlaying = 0;
return 0;
@@ -1868,7 +1868,7 @@ int FWScript::o1_playSampleSwapped() {
// since the only stereo output it supports should be the Roland MT-32.
// So it probably does the same as o1_playSample here. Checking this will
// be a good idea never the less.
- if (g_cine->getPlatform() == Common::kPlatformPC) {
+ if (g_cine->getPlatform() == Common::kPlatformDOS) {
return o1_playSample();
}
diff --git a/engines/cine/script_os.cpp b/engines/cine/script_os.cpp
index b452d9a8ee..84bb484369 100644
--- a/engines/cine/script_os.cpp
+++ b/engines/cine/script_os.cpp
@@ -421,7 +421,7 @@ int FWScript::o2_playSampleAlt() {
size = g_cine->_animDataTable[num]._width * g_cine->_animDataTable[num]._height;
}
if (g_cine->_animDataTable[num].data()) {
- if (g_cine->getPlatform() == Common::kPlatformPC) {
+ if (g_cine->getPlatform() == Common::kPlatformDOS) {
// if speaker output is available, play sound on it
// if it's another device, don't play anything
// TODO: implement this, it's used in the introduction for example
diff --git a/engines/cine/various.cpp b/engines/cine/various.cpp
index 23f439a7a7..99d93cfc09 100644
--- a/engines/cine/various.cpp
+++ b/engines/cine/various.cpp
@@ -427,7 +427,7 @@ void CineEngine::makeSystemMenu() {
if (!makeTextEntryMenu(otherMessages[6], saveName, 20, 120))
break;
- strncpy(currentSaveName[selectedSave], saveName, 20);
+ Common::strlcpy(currentSaveName[selectedSave], saveName, 20);
sprintf(saveFileName, "%s.%1d", _targetName.c_str(), selectedSave);
diff --git a/engines/configure.engines b/engines/configure.engines
index cdacb608f0..15aa11d0ef 100644
--- a/engines/configure.engines
+++ b/engines/configure.engines
@@ -16,7 +16,7 @@ add_engine dreamweb "Dreamweb" yes
add_engine gob "Gobli*ns" yes
add_engine groovie "Groovie" yes "groovie2" "7th Guest"
add_engine groovie2 "Groovie 2 games" no
-add_engine hopkins "Hopkins FBI" no "" "" "16bit"
+add_engine hopkins "Hopkins FBI" yes "" "" "16bit"
add_engine hugo "Hugo Trilogy" yes
add_engine kyra "Kyra" yes "lol eob" "Legend of Kyrandia 1-3"
add_engine lol "Lands of Lore" yes
diff --git a/engines/cruise/dataLoader.cpp b/engines/cruise/dataLoader.cpp
index 94d075ecc3..b2a319bb85 100644
--- a/engines/cruise/dataLoader.cpp
+++ b/engines/cruise/dataLoader.cpp
@@ -265,6 +265,8 @@ int loadFile(const char* name, int idx, int destIdx) {
error("Unknown fileType in loadFile");
}
+ MemFree(ptr);
+
return -1;
}
@@ -283,6 +285,7 @@ int loadFileRange(const char *name, int startIdx, int currentEntryIdx, int numId
for (i = 0; i < numIdx; i++) {
if ((startIdx + i) > numMaxEntriesInSet) {
+ MemFree(ptr);
return 0; // exit if limit is reached
}
loadSetEntry(name, ptr, startIdx + i, currentEntryIdx + i);
diff --git a/engines/cruise/detection.cpp b/engines/cruise/detection.cpp
index ba79df4822..b632e4ea7a 100644
--- a/engines/cruise/detection.cpp
+++ b/engines/cruise/detection.cpp
@@ -73,7 +73,7 @@ static const CRUISEGameDescription gameDescriptions[] = {
"16 colors",
AD_ENTRY1("D1", "cd29a4cd9162076e9a18495fe56a48f3"),
Common::EN_GRB,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -86,7 +86,7 @@ static const CRUISEGameDescription gameDescriptions[] = {
"16 colors",
AD_ENTRY1("D1", "41a7a4d426dbd048eb369cfee4bb2717"),
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -99,7 +99,7 @@ static const CRUISEGameDescription gameDescriptions[] = {
"256 colors",
AD_ENTRY1("D1", "a90d2b9ead6b4d812cd14268672cf178"),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -112,7 +112,7 @@ static const CRUISEGameDescription gameDescriptions[] = {
"256 colors",
AD_ENTRY1("D1", "e258865807ea31b2d523340e6f0a606b"),
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -125,7 +125,7 @@ static const CRUISEGameDescription gameDescriptions[] = {
"16 colors",
AD_ENTRY1("D1", "287d2ec1799e2f881dee23c70be96e81"),
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -138,7 +138,7 @@ static const CRUISEGameDescription gameDescriptions[] = {
"256 colors",
AD_ENTRY1("D1", "f2a26522d49983c4ae32bcccbb801b02"),
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -203,7 +203,7 @@ static const CRUISEGameDescription gameDescriptions[] = {
"256 colors",
AD_ENTRY1("D1", "e19a4ab2e24a69087e4ea994a5506231"),
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -216,7 +216,7 @@ static const CRUISEGameDescription gameDescriptions[] = {
"256 colors",
AD_ENTRY1("D1", "9a302ada55600d96061fda1d63a6ccda"),
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
diff --git a/engines/draci/console.cpp b/engines/draci/console.cpp
index a0013c59fe..07f0ff5542 100644
--- a/engines/draci/console.cpp
+++ b/engines/draci/console.cpp
@@ -26,6 +26,7 @@
namespace Draci {
DraciConsole::DraciConsole(DraciEngine *vm) : GUI::Debugger(), _vm(vm) {
+ assert(_vm);
}
DraciConsole::~DraciConsole() {
diff --git a/engines/draci/detection.cpp b/engines/draci/detection.cpp
index 2d78d05933..98a74824c8 100644
--- a/engines/draci/detection.cpp
+++ b/engines/draci/detection.cpp
@@ -41,7 +41,7 @@ const ADGameDescription gameDescriptions[] = {
0,
AD_ENTRY1s("INIT.DFW", "b890a5aeebaf16af39219cba2416b0a3", 906),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -51,7 +51,7 @@ const ADGameDescription gameDescriptions[] = {
0,
AD_ENTRY1s("INIT.DFW", "9921c8f0045679a8f37eca8d41c5ec02", 906),
Common::CZ_CZE,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -61,7 +61,7 @@ const ADGameDescription gameDescriptions[] = {
0,
AD_ENTRY1s("INIT.DFW", "76b9b78a8a8809a240acc395df4d0715", 906),
Common::PL_POL,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -71,7 +71,7 @@ const ADGameDescription gameDescriptions[] = {
0,
AD_ENTRY1s("INIT.DFW", "9a7115b91cdea361bcaff3e046ac7ded", 906),
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
diff --git a/engines/drascula/detection.cpp b/engines/drascula/detection.cpp
index e1f69e2158..8764b82a04 100644
--- a/engines/drascula/detection.cpp
+++ b/engines/drascula/detection.cpp
@@ -75,7 +75,7 @@ static const DrasculaGameDescription gameDescriptions[] = {
0,
AD_ENTRY1s("14.ald", "09b2735953edcd43af115c65ae00b10e", 1595),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -95,7 +95,7 @@ static const DrasculaGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
GF_PACKED,
GUIO0()
},
@@ -112,7 +112,7 @@ static const DrasculaGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
GF_PACKED,
GUIO0()
},
@@ -129,7 +129,7 @@ static const DrasculaGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
GF_PACKED,
GUIO0()
},
@@ -142,7 +142,7 @@ static const DrasculaGameDescription gameDescriptions[] = {
0,
AD_ENTRY1s("packet.001", "3c971aba65a037d29d0b479cad6f5943", 31702652),
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
GF_PACKED,
GUIO0()
},
@@ -155,7 +155,7 @@ static const DrasculaGameDescription gameDescriptions[] = {
0,
AD_ENTRY1s("14.ald", "0746ed1a5cc8d9728f790c29813f4b43", 23059),
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -168,7 +168,7 @@ static const DrasculaGameDescription gameDescriptions[] = {
0,
AD_ENTRY1s("14.ald", "72e46089033d56bad1c179ac36e2a9d2", 610),
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -181,7 +181,7 @@ static const DrasculaGameDescription gameDescriptions[] = {
0,
AD_ENTRY1s("14.ald", "eeeee96b82169003630e08992248296c", 608),
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -194,7 +194,7 @@ static const DrasculaGameDescription gameDescriptions[] = {
0,
AD_ENTRY1s("packet.001", "0253e924af223f5fe52537023385159b", 32564209),
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
GF_PACKED,
GUIO0()
},
@@ -206,7 +206,7 @@ static const DrasculaGameDescription gameDescriptions[] = {
0,
AD_ENTRY1s("14.ald", "02b49a18328d0bf2efe6ba658c9c7a1d", 2098),
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -223,7 +223,7 @@ static const DrasculaGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
GF_PACKED,
GUIO0()
},
@@ -240,7 +240,7 @@ static const DrasculaGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
GF_PACKED,
GUIO0()
},
@@ -257,7 +257,7 @@ static const DrasculaGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
GF_PACKED,
GUIO0()
},
diff --git a/engines/drascula/interface.cpp b/engines/drascula/interface.cpp
index 70212db9e8..fca8040f59 100644
--- a/engines/drascula/interface.cpp
+++ b/engines/drascula/interface.cpp
@@ -121,10 +121,8 @@ bool DrasculaEngine::confirmExit() {
void DrasculaEngine::showMenu() {
int h, n, x;
- char textIcon[13];
byte *srcSurface = (currentChapter == 6) ? tableSurface : frontSurface;
x = whichObject();
- strcpy(textIcon, iconName[x]);
for (n = 1; n < ARRAYSIZE(inventoryObjects); n++) {
h = inventoryObjects[n];
@@ -138,7 +136,7 @@ void DrasculaEngine::showMenu() {
}
if (x < 7)
- print_abc(textIcon, _itemLocations[x].x - 2, _itemLocations[x].y - 7);
+ print_abc(iconName[x], _itemLocations[x].x - 2, _itemLocations[x].y - 7);
}
void DrasculaEngine::clearMenu() {
diff --git a/engines/drascula/saveload.cpp b/engines/drascula/saveload.cpp
index ba4148fb76..996c9d3f03 100644
--- a/engines/drascula/saveload.cpp
+++ b/engines/drascula/saveload.cpp
@@ -40,10 +40,8 @@ void DrasculaEngine::checkForOldSaveGames() {
Common::InSaveFile *indexFile = _saveFileMan->openForLoading(indexFileName);
// Check for the existence of an old index file
- if (!indexFile) {
- delete indexFile;
+ if (!indexFile)
return;
- }
GUI::MessageDialog dialog0(
_("ScummVM found that you have old savefiles for Drascula that should be converted.\n"
diff --git a/engines/dreamweb/console.cpp b/engines/dreamweb/console.cpp
index d415089a48..532bf815ef 100644
--- a/engines/dreamweb/console.cpp
+++ b/engines/dreamweb/console.cpp
@@ -25,6 +25,7 @@
namespace DreamWeb {
DreamWebConsole::DreamWebConsole(DreamWebEngine *vm) : GUI::Debugger(), _vm(vm) {
+ assert(_vm);
}
DreamWebConsole::~DreamWebConsole() {
diff --git a/engines/dreamweb/detection_tables.h b/engines/dreamweb/detection_tables.h
index 8a2f94f99b..ec54484d28 100644
--- a/engines/dreamweb/detection_tables.h
+++ b/engines/dreamweb/detection_tables.h
@@ -45,7 +45,7 @@ static const DreamWebGameDescription gameDescriptions[] = {
AD_LISTEND
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
0,
GUIO2(GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_BRIGHTPALETTE)
},
@@ -62,7 +62,7 @@ static const DreamWebGameDescription gameDescriptions[] = {
AD_LISTEND
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO2(GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_BRIGHTPALETTE)
},
@@ -83,7 +83,7 @@ static const DreamWebGameDescription gameDescriptions[] = {
AD_LISTEND
},
Common::EN_GRB,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO2(GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_BRIGHTPALETTE)
},
@@ -100,7 +100,7 @@ static const DreamWebGameDescription gameDescriptions[] = {
AD_LISTEND
},
Common::EN_USA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO2(GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_BRIGHTPALETTE)
},
@@ -117,7 +117,7 @@ static const DreamWebGameDescription gameDescriptions[] = {
AD_LISTEND
},
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO2(GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_BRIGHTPALETTE)
},
@@ -135,7 +135,7 @@ static const DreamWebGameDescription gameDescriptions[] = {
AD_LISTEND
},
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO2(GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_BRIGHTPALETTE)
},
@@ -152,7 +152,7 @@ static const DreamWebGameDescription gameDescriptions[] = {
AD_LISTEND
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
0,
GUIO2(GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_BRIGHTPALETTE)
},
@@ -169,7 +169,7 @@ static const DreamWebGameDescription gameDescriptions[] = {
AD_LISTEND
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO2(GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_BRIGHTPALETTE)
},
@@ -186,7 +186,7 @@ static const DreamWebGameDescription gameDescriptions[] = {
AD_LISTEND
},
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
0,
GUIO2(GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_BRIGHTPALETTE)
},
@@ -203,7 +203,7 @@ static const DreamWebGameDescription gameDescriptions[] = {
AD_LISTEND
},
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO2(GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_BRIGHTPALETTE)
},
@@ -221,7 +221,7 @@ static const DreamWebGameDescription gameDescriptions[] = {
AD_LISTEND
},
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO2(GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_BRIGHTPALETTE)
},
@@ -238,7 +238,7 @@ static const DreamWebGameDescription gameDescriptions[] = {
AD_LISTEND
},
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
0,
GUIO2(GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_BRIGHTPALETTE)
},
diff --git a/engines/dreamweb/monitor.cpp b/engines/dreamweb/monitor.cpp
index b07fbf54fc..1f9fa8d24f 100644
--- a/engines/dreamweb/monitor.cpp
+++ b/engines/dreamweb/monitor.cpp
@@ -148,7 +148,7 @@ bool DreamWebEngine::execCommand() {
static const char *const comlistDE[] = {
"ENDE",
- "HILFE",
+ "HILF",
"LISTE",
"LIES",
"ZUGRIFF",
@@ -161,10 +161,20 @@ bool DreamWebEngine::execCommand() {
"AIUTO",
"ELENCA",
"LEGGI",
- "REGISTRA",
+ "ACCEDI",
"CHIAVI",
NULL
};
+
+ static const char *const comlistES[] = {
+ "SALIR",
+ "AYUDA",
+ "LISTA",
+ "LEER",
+ "ACCESO",
+ "CLAVES",
+ NULL
+ };
if (_inputLine[0] == 0) {
// No input
@@ -186,6 +196,8 @@ bool DreamWebEngine::execCommand() {
cmd = findCommand(comlistIT);
break;
case Common::ES_ESP:
+ cmd = findCommand(comlistES);
+ break;
default:
break;
}
@@ -210,7 +222,7 @@ bool DreamWebEngine::execCommand() {
monPrint("G\232LTIGE BEFEHLE SIND ENDE, HILFE, LISTE, LIES, ZUGRIFF, DATEN");
break;
case Common::IT_ITA:
- monPrint("I COMANDI VALIDI SONO ESCI, AIUTO, ELENCA, LEGGI, REGISTRA, CHIAVI");
+ monPrint("I COMANDI VALIDI SONO ESCI, AIUTO, ELENCA, LEGGI, ACCEDI, CHIAVI");
break;
case Common::ES_ESP:
default:
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index d93c2a951c..057a0c847a 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -1259,6 +1259,10 @@ void DreamWebEngine::commandWithOb(uint8 command, uint8 type, uint8 index) {
uint8 textLen = _textLen;
const uint8 *string = (const uint8 *)_commandText.getString(command);
+ // Fix spelling in command 3 FR: "Aller ver" => "Aller vers"
+ const char *command3Fr = "Aller vers";
+ if (command == 3 && getLanguage() == Common::FR_FRA)
+ string = (const uint8 *)command3Fr;
printDirect(string, _textAddressX, _textAddressY, textLen, (bool)(textLen & 1));
copyName(type, index, commandLine);
diff --git a/engines/gob/detection/tables_adi2.h b/engines/gob/detection/tables_adi2.h
index da05a31f40..e59552a554 100644
--- a/engines/gob/detection/tables_adi2.h
+++ b/engines/gob/detection/tables_adi2.h
@@ -33,7 +33,7 @@
"Adi 2.0 for Teachers",
AD_ENTRY1s("adi2.stk", "da6f1fb68bff32260c5eecdf9286a2f5", 1533168),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -47,7 +47,7 @@
"Adi 2",
AD_ENTRY1s("adi2.stk", "23f279615c736dc38320f1348e70c36e", 10817668),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
@@ -61,7 +61,7 @@
"Adi 2",
AD_ENTRY1s("adi2.stk", "d4162c4298f9423ecc1fb04965557e90", 11531214),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
@@ -75,7 +75,7 @@
"Adi 2.5",
AD_ENTRY1s("adi2.stk", "fcac60e6627f37aee219575b60859de9", 16944268),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
@@ -89,7 +89,7 @@
"Adi 2.5",
AD_ENTRY1s("adi2.stk", "072d5e2d7826a7c055865568ebf918bb", 16934596),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
@@ -103,7 +103,7 @@
"Adi 2.6",
AD_ENTRY1s("adi2.stk", "2fb940eb8105b12871f6b88c8c4d1615", 16780058),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
@@ -120,7 +120,7 @@
"Adi 2.6",
AD_ENTRY1s("adi2.stk", "fde7d98a67dbf859423b6473796e932a", 18044780),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
@@ -134,7 +134,7 @@
"Adi 2.7.1",
AD_ENTRY1s("adi2.stk", "6fa5dffebf5c7243c6af6b8c188ee00a", 19278008),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
@@ -151,7 +151,7 @@
"Adi 2",
AD_ENTRY1s("adi2.stk", "2a40bb48ccbd4e6fb3f7f0fc2f069d80", 17720132),
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
@@ -191,7 +191,7 @@
{0, 0, 0, 0}
},
EN_ANY,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
diff --git a/engines/gob/detection/tables_adi4.h b/engines/gob/detection/tables_adi4.h
index 4b967d76d3..7147a84d7a 100644
--- a/engines/gob/detection/tables_adi4.h
+++ b/engines/gob/detection/tables_adi4.h
@@ -33,7 +33,7 @@
"Adi 4.0",
AD_ENTRY1s("intro.stk", "a3c35d19b2d28ea261d96321d208cb5a", 6021466),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
@@ -47,7 +47,7 @@
"Adi 4.0",
AD_ENTRY1s("intro.stk", "44491d85648810bc6fcf84f9b3aa47d5", 5834944),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
@@ -61,7 +61,7 @@
"Adi 4.0",
AD_ENTRY1s("intro.stk", "29374c0e3c10b17dd8463b06a55ad093", 6012072),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
@@ -75,7 +75,7 @@
"Adi 4.0 Limited Edition",
AD_ENTRY1s("intro.stk", "ebbbc5e28a4adb695535ed989c1b8d66", 5929644),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
@@ -89,7 +89,7 @@
"ADI 4.10",
AD_ENTRY1s("intro.stk", "6afc2590856433b9f5295b032f2b205d", 5923112),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
@@ -103,7 +103,7 @@
"ADI 4.11",
AD_ENTRY1s("intro.stk", "6296e4be4e0c270c24d1330881900c7f", 5921234),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
@@ -117,7 +117,7 @@
"ADI 4.21",
AD_ENTRY1s("intro.stk", "c5b9f6222c0b463f51dab47317c5b687", 5950490),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
@@ -134,7 +134,7 @@
"Addy 4 Grundschule Basis CD",
AD_ENTRY1s("intro.stk", "d2f0fb8909e396328dc85c0e29131ba8", 5847588),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
@@ -148,7 +148,7 @@
"Addy 4 Sekundarstufe Basis CD",
AD_ENTRY1s("intro.stk", "367340e59c461b4fa36651cd74e32c4e", 5847378),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
@@ -162,7 +162,7 @@
"Addy 4.21",
AD_ENTRY1s("intro.stk", "534f0b674cd4830df94a9c32c4ea7225", 6878034),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
@@ -179,7 +179,7 @@
"ADI 4.10",
AD_ENTRY1s("intro.stk", "3e3fa9656e37d802027635ace88c4cc5", 5359144),
EN_GRB,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
@@ -196,7 +196,7 @@
"Adi 4.0 Interactive Demo",
AD_ENTRY1s("intro.stk", "89ace204dbaac001425c73f394334f6f", 2413102),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
@@ -210,7 +210,7 @@
"Adi 4.0 / Adibou 2 Demo",
AD_ENTRY1s("intro.stk", "d41d8cd98f00b204e9800998ecf8427e", 0),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_DEMO,
GUIO1(GUIO_NOASPECT)
},
diff --git a/engines/gob/detection/tables_adibou.h b/engines/gob/detection/tables_adibou.h
index 0e652839bb..e257ffdf8f 100644
--- a/engines/gob/detection/tables_adibou.h
+++ b/engines/gob/detection/tables_adibou.h
@@ -33,7 +33,7 @@
"ADIBOU 1 Environnement 4-7 ans",
AD_ENTRY1s("intro.stk", "6db110188fcb7c5208d9721b5282682a", 4805104),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -47,7 +47,7 @@
"ADIBOU 2",
AD_ENTRY1s("intro.stk", "94ae7004348dc8bf99c23a9a6ef81827", 956162),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -61,7 +61,7 @@
"Le Jardin Magique d'Adibou",
AD_ENTRY1s("intro.stk", "a8ff86f3cc40dfe5898e0a741217ef27", 956328),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -75,7 +75,7 @@
"ADIBOU Version Decouverte",
AD_ENTRY1s("intro.stk", "558c14327b79ed39214b49d567a75e33", 8737856),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -89,7 +89,7 @@
"ADIBOU 2.10 Environnement",
AD_ENTRY1s("intro.stk", "f2b797819aeedee557e904b0b5ccd82e", 8736454),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -103,7 +103,7 @@
"ADIBOU 2.11 Environnement",
AD_ENTRY1s("intro.stk", "7b1f1f6f6477f54401e95d913f75e333", 8736904),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -117,7 +117,7 @@
"ADIBOU 2.12 Environnement",
AD_ENTRY1s("intro.stk", "1e49c39a4a3ce6032a84b712539c2d63", 8738134),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -131,7 +131,7 @@
"ADIBOU 2.13s Environnement",
AD_ENTRY1s("intro.stk", "092707829555f27706920e4cacf1fada", 8737958),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -145,7 +145,7 @@
"ADIBOO 2.14 Environnement",
AD_ENTRY1s("intro.stk", "ff63637e3cb7f0a457edf79457b1c6b3", 9333874),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -162,7 +162,7 @@
"ADIBOU 2",
AD_ENTRY1s("intro.stk", "092707829555f27706920e4cacf1fada", 8737958),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -178,7 +178,7 @@
"ADIB\xD9 2",
AD_ENTRY1s("intro.stk", "092707829555f27706920e4cacf1fada", 8737958),
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -199,7 +199,7 @@
{0, 0, 0, 0}
},
EN_GRB,
- kPlatformPC,
+ kPlatformDOS,
ADGF_DEMO,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -217,7 +217,7 @@
{0, 0, 0, 0}
},
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_DEMO,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -235,7 +235,7 @@
{0, 0, 0, 0}
},
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_DEMO,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
diff --git a/engines/gob/detection/tables_ajworld.h b/engines/gob/detection/tables_ajworld.h
index d86bdb16be..99d61c882e 100644
--- a/engines/gob/detection/tables_ajworld.h
+++ b/engines/gob/detection/tables_ajworld.h
@@ -33,7 +33,7 @@
"",
AD_ENTRY1s("intro.stk", "e453bea7b28a67c930764d945f64d898", 3913628),
EN_ANY,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
diff --git a/engines/gob/detection/tables_bargon.h b/engines/gob/detection/tables_bargon.h
index ac90355476..5f7fa2ab6f 100644
--- a/engines/gob/detection/tables_bargon.h
+++ b/engines/gob/detection/tables_bargon.h
@@ -33,7 +33,7 @@
"",
AD_ENTRY1("intro.stk", "da3c54be18ab73fbdb32db24624a9c23"),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -47,7 +47,7 @@
"",
AD_ENTRY1s("intro.stk", "11103b304286c23945560b391fd37e7d", 3181890),
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -61,7 +61,7 @@
"",
AD_ENTRY1s("intro.stk", "da3c54be18ab73fbdb32db24624a9c23", 3181825),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -75,7 +75,7 @@
"",
AD_ENTRY1s("intro.stk", "00f6b4e2ee26e5c40b488e2df5adcf03", 3975580),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -89,7 +89,7 @@
"Fanmade",
AD_ENTRY1s("intro.stk", "da3c54be18ab73fbdb32db24624a9c23", 3181825),
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
diff --git a/engines/gob/detection/tables_dynasty.h b/engines/gob/detection/tables_dynasty.h
index 147bf32075..21e4ecc89f 100644
--- a/engines/gob/detection/tables_dynasty.h
+++ b/engines/gob/detection/tables_dynasty.h
@@ -33,7 +33,7 @@
"",
AD_ENTRY1s("intro.stk", "6190e32404b672f4bbbc39cf76f41fda", 2511470),
EN_USA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -47,7 +47,7 @@
"",
AD_ENTRY1s("intro.stk", "61e4069c16e27775a6cc6d20f529fb36", 2511300),
EN_USA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -61,7 +61,7 @@
"",
AD_ENTRY1s("intro.stk", "61e4069c16e27775a6cc6d20f529fb36", 2511300),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -75,7 +75,7 @@
"",
AD_ENTRY1s("intro.stk", "b3f8472484b7a1df94557b51e7b6fca0", 2322644),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -89,7 +89,7 @@
"",
AD_ENTRY1s("intro.stk", "bdbdac8919200a5e71ffb9fb0709f704", 2446652),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -106,7 +106,7 @@
"Demo",
AD_ENTRY1s("intro.stk", "464538a17ed39755d7f1ba9c751af1bd", 1847864),
EN_USA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_DEMO,
GUIO1(GUIO_NOASPECT)
},
diff --git a/engines/gob/detection/tables_fallback.h b/engines/gob/detection/tables_fallback.h
index 05f579c08c..69a9e4fd6b 100644
--- a/engines/gob/detection/tables_fallback.h
+++ b/engines/gob/detection/tables_fallback.h
@@ -32,7 +32,7 @@ static const GOBGameDescription fallbackDescs[] = {
"unknown",
AD_ENTRY1(0, 0),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -46,7 +46,7 @@ static const GOBGameDescription fallbackDescs[] = {
"unknown",
AD_ENTRY1(0, 0),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -60,7 +60,7 @@ static const GOBGameDescription fallbackDescs[] = {
"unknown",
AD_ENTRY1(0, 0),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -88,7 +88,7 @@ static const GOBGameDescription fallbackDescs[] = {
"unknown",
AD_ENTRY1(0, 0),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -102,7 +102,7 @@ static const GOBGameDescription fallbackDescs[] = {
"",
AD_ENTRY1(0, 0),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -116,7 +116,7 @@ static const GOBGameDescription fallbackDescs[] = {
"unknown",
AD_ENTRY1(0, 0),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -130,7 +130,7 @@ static const GOBGameDescription fallbackDescs[] = {
"unknown",
AD_ENTRY1(0, 0),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -144,7 +144,7 @@ static const GOBGameDescription fallbackDescs[] = {
"unknown",
AD_ENTRY1(0, 0),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -158,7 +158,7 @@ static const GOBGameDescription fallbackDescs[] = {
"unknown",
AD_ENTRY1(0, 0),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -186,7 +186,7 @@ static const GOBGameDescription fallbackDescs[] = {
"unknown",
AD_ENTRY1(0, 0),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -200,7 +200,7 @@ static const GOBGameDescription fallbackDescs[] = {
"unknown",
AD_ENTRY1(0, 0),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -214,7 +214,7 @@ static const GOBGameDescription fallbackDescs[] = {
"unknown",
AD_ENTRY1(0, 0),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -228,7 +228,7 @@ static const GOBGameDescription fallbackDescs[] = {
"unknown",
AD_ENTRY1(0, 0),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -242,7 +242,7 @@ static const GOBGameDescription fallbackDescs[] = {
"unknown",
AD_ENTRY1(0, 0),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -256,7 +256,7 @@ static const GOBGameDescription fallbackDescs[] = {
"unknown",
AD_ENTRY1(0, 0),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -270,7 +270,7 @@ static const GOBGameDescription fallbackDescs[] = {
"unknown",
AD_ENTRY1(0, 0),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -284,7 +284,7 @@ static const GOBGameDescription fallbackDescs[] = {
"unknown",
AD_ENTRY1(0, 0),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -298,7 +298,7 @@ static const GOBGameDescription fallbackDescs[] = {
"unknown",
AD_ENTRY1(0, 0),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -312,7 +312,7 @@ static const GOBGameDescription fallbackDescs[] = {
"unknown",
AD_ENTRY1(0, 0),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -326,7 +326,7 @@ static const GOBGameDescription fallbackDescs[] = {
"unknown",
AD_ENTRY1(0, 0),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -340,7 +340,7 @@ static const GOBGameDescription fallbackDescs[] = {
"unknown",
AD_ENTRY1(0, 0),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -382,7 +382,7 @@ static const GOBGameDescription fallbackDescs[] = {
"",
AD_ENTRY1(0, 0),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -396,7 +396,7 @@ static const GOBGameDescription fallbackDescs[] = {
"",
AD_ENTRY1(0, 0),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -410,7 +410,7 @@ static const GOBGameDescription fallbackDescs[] = {
"unknown",
AD_ENTRY1(0, 0),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
@@ -478,7 +478,7 @@ static const GOBGameDescription fallbackOnceUpon[kOnceUponATimeMAX][kOnceUponATi
"",
AD_ENTRY1(0, 0),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -522,7 +522,7 @@ static const GOBGameDescription fallbackOnceUpon[kOnceUponATimeMAX][kOnceUponATi
"",
AD_ENTRY1(0, 0),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
diff --git a/engines/gob/detection/tables_fascin.h b/engines/gob/detection/tables_fascin.h
index 1c9cced303..b74a057db9 100644
--- a/engines/gob/detection/tables_fascin.h
+++ b/engines/gob/detection/tables_fascin.h
@@ -33,7 +33,7 @@
"VGA",
AD_ENTRY1s("disk0.stk", "c14330d052fe4da5a441ac9d81bc5891", 1061955),
EN_ANY,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -47,7 +47,7 @@
"VGA",
AD_ENTRY1s("disk0.stk", "e8ab4f200a2304849f462dc901705599", 183337),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -64,7 +64,7 @@
"VGA 3 disks edition",
AD_ENTRY1s("disk0.stk", "ab3dfdce43917bc806812959d692fc8f", 1061929),
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -78,7 +78,7 @@
"VGA 3 disks edition",
AD_ENTRY1s("disk0.stk", "a50a8495e1b2d67699fb562cb98fc3e2", 1064387),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -92,7 +92,7 @@
"Hebrew edition (censored)",
AD_ENTRY1s("intro.stk", "d6e45ce548598727e2b5587a99718eba", 1055909),
HE_ISR,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -106,7 +106,7 @@
"VGA 3 disks edition",
AD_ENTRY1s("disk0.stk", "3a24e60a035250189643c86a9ceafb97", 1062480),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -123,7 +123,7 @@
"CD Version (Censored)",
AD_ENTRY1s("intro.stk", "9c61e9c22077f72921f07153e37ccf01", 545953),
EN_ANY,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSUBTITLES)
},
@@ -137,7 +137,7 @@
"CD Version (Censored)",
AD_ENTRY1s("intro.stk", "9c61e9c22077f72921f07153e37ccf01", 545953),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSUBTITLES)
},
@@ -151,7 +151,7 @@
"CD Version (Censored)",
AD_ENTRY1s("intro.stk", "9c61e9c22077f72921f07153e37ccf01", 545953),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSUBTITLES)
},
@@ -165,7 +165,7 @@
"CD Version (Censored)",
AD_ENTRY1s("intro.stk", "9c61e9c22077f72921f07153e37ccf01", 545953),
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSUBTITLES)
},
@@ -179,7 +179,7 @@
"CD Version (Censored)",
AD_ENTRY1s("intro.stk", "9c61e9c22077f72921f07153e37ccf01", 545953),
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSUBTITLES)
},
diff --git a/engines/gob/detection/tables_geisha.h b/engines/gob/detection/tables_geisha.h
index 2c9a8842d0..e9a5cfb77f 100644
--- a/engines/gob/detection/tables_geisha.h
+++ b/engines/gob/detection/tables_geisha.h
@@ -33,7 +33,7 @@
"",
AD_ENTRY1s("disk1.stk", "6eebbb98ad90cd3c44549fc2ab30f632", 212153),
EN_ANY,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -47,7 +47,7 @@
"",
AD_ENTRY1s("disk1.stk", "6eebbb98ad90cd3c44549fc2ab30f632", 212153),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -61,7 +61,7 @@
"",
AD_ENTRY1s("disk1.stk", "0c4c16090921664f50baefdfd24d7f5d", 211889),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -75,7 +75,7 @@
"",
AD_ENTRY1s("disk1.stk", "49107ac897e7c00af6c4ecd78a74a710", 212169),
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -89,7 +89,7 @@
"",
AD_ENTRY1s("disk1.stk", "49107ac897e7c00af6c4ecd78a74a710", 212169),
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -103,7 +103,7 @@
"",
AD_ENTRY1s("disk1.stk", "49107ac897e7c00af6c4ecd78a74a710", 212164),
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -117,7 +117,7 @@
"",
AD_ENTRY1s("disk1.stk", "f4d4d9d20f7ad1f879fc417d47faba89", 336732),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
diff --git a/engines/gob/detection/tables_gob1.h b/engines/gob/detection/tables_gob1.h
index e6086e990a..8ae72abf33 100644
--- a/engines/gob/detection/tables_gob1.h
+++ b/engines/gob/detection/tables_gob1.h
@@ -33,7 +33,7 @@
"EGA",
AD_ENTRY1("intro.stk", "c65e9cc8ba23a38456242e1f2b1caad4"),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -47,7 +47,7 @@
"EGA",
AD_ENTRY1("intro.stk", "f9233283a0be2464248d83e14b95f09c"),
RU_RUS,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -64,7 +64,7 @@
"VGA",
AD_ENTRY1("intro.stk", "26a9118c0770fa5ac93a9626761600b2"),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -78,7 +78,7 @@
"VGA",
AD_ENTRY1s("intro.stk", "e157cb59c6d330ca70d12ab0ef1dd12b", 288972),
EN_GRB,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -95,7 +95,7 @@
"Polish",
AD_ENTRY1s("intro.stk", "97d2443948b2e367cf567fe7e101f5f2", 4049267),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -109,7 +109,7 @@
"v1.000",
AD_ENTRY1("intro.stk", "2fbf4b5b82bbaee87eb45d4404c28998"),
EN_USA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -123,7 +123,7 @@
"v1.000",
AD_ENTRY1("intro.stk", "2fbf4b5b82bbaee87eb45d4404c28998"),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -137,7 +137,7 @@
"v1.000",
AD_ENTRY1("intro.stk", "2fbf4b5b82bbaee87eb45d4404c28998"),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -151,7 +151,7 @@
"v1.000",
AD_ENTRY1("intro.stk", "2fbf4b5b82bbaee87eb45d4404c28998"),
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -165,7 +165,7 @@
"v1.000",
AD_ENTRY1("intro.stk", "2fbf4b5b82bbaee87eb45d4404c28998"),
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -179,7 +179,7 @@
"v1.02",
AD_ENTRY1("intro.stk", "8bd873137b6831c896ee8ad217a6a398"),
EN_USA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -193,7 +193,7 @@
"v1.02",
AD_ENTRY1("intro.stk", "8bd873137b6831c896ee8ad217a6a398"),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -207,7 +207,7 @@
"v1.02",
AD_ENTRY1("intro.stk", "8bd873137b6831c896ee8ad217a6a398"),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -221,7 +221,7 @@
"v1.02",
AD_ENTRY1("intro.stk", "8bd873137b6831c896ee8ad217a6a398"),
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -235,7 +235,7 @@
"v1.02",
AD_ENTRY1("intro.stk", "8bd873137b6831c896ee8ad217a6a398"),
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -249,7 +249,7 @@
"v1.02",
AD_ENTRY1s("intro.stk", "40d4a53818f4fce3f5997d02c3fafe73", 4049248),
HU_HUN,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -263,7 +263,7 @@
"v1.02",
AD_ENTRY1s("intro.stk", "40d4a53818f4fce3f5997d02c3fafe73", 4049248),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -277,7 +277,7 @@
"v1.02",
AD_ENTRY1s("intro.stk", "40d4a53818f4fce3f5997d02c3fafe73", 4049248),
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -291,7 +291,7 @@
"v1.02",
AD_ENTRY1s("intro.stk", "40d4a53818f4fce3f5997d02c3fafe73", 4049248),
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -662,7 +662,7 @@
"Interactive Demo",
AD_ENTRY1("intro.stk", "e72bd1e3828c7dec4c8a3e58c48bdfdb"),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_DEMO,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -676,7 +676,7 @@
"Interactive Demo",
AD_ENTRY1s("intro.stk", "a796096280d5efd48cf8e7dfbe426eb5", 193595),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_DEMO,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -690,7 +690,7 @@
"Interactive Demo",
AD_ENTRY1s("intro.stk", "35a098571af9a03c04e2303aec7c9249", 116582),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_DEMO,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
diff --git a/engines/gob/detection/tables_gob2.h b/engines/gob/detection/tables_gob2.h
index 659e6df063..f2449d086d 100644
--- a/engines/gob/detection/tables_gob2.h
+++ b/engines/gob/detection/tables_gob2.h
@@ -33,7 +33,7 @@
"",
AD_ENTRY1("intro.stk", "b45b984ee8017efd6ea965b9becd4d66"),
EN_GRB,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -47,7 +47,7 @@
"",
AD_ENTRY1("intro.stk", "dedb5d31d8c8050a8cf77abedcc53dae"),
EN_USA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -61,7 +61,7 @@
"",
AD_ENTRY1s("intro.stk", "25a99827cd59751a80bed9620fb677a0", 893302),
EN_USA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -75,7 +75,7 @@
"",
AD_ENTRY1s("intro.stk", "a13ecb4f6d8fd881ebbcc02e45cb5475", 837275),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -89,7 +89,7 @@
"",
AD_ENTRY1("intro.stk", "3e4e7db0d201587dd2df4003b2993ef6"),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -103,7 +103,7 @@
"",
AD_ENTRY1("intro.stk", "a13892cdf4badda85a6f6fb47603a128"),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -117,7 +117,7 @@
"",
AD_ENTRY1("intro.stk", "c47faf1d406504e6ffe63243610bb1f4"),
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -131,7 +131,7 @@
"",
AD_ENTRY1("intro.stk", "cd3e1df8b273636ee32e34b7064f50e8"),
RU_RUS,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -145,7 +145,7 @@
"",
AD_ENTRY1s("intro.stk", "5f53c56e3aa2f1e76c2e4f0caa15887f", 829232),
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -162,7 +162,7 @@
"v1.000",
AD_ENTRY1("intro.stk", "9de5fbb41cf97182109e5fecc9d90347"),
EN_USA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -176,7 +176,7 @@
"v2.01 Polish",
AD_ENTRY1s("intro.stk", "3025f05482b646c18c2c79c615a3a1df", 5011726),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -190,7 +190,7 @@
"v2.01",
AD_ENTRY1("intro.stk", "24a6b32757752ccb1917ce92fd7c2a04"),
EN_ANY,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -204,7 +204,7 @@
"v2.01",
AD_ENTRY1("intro.stk", "24a6b32757752ccb1917ce92fd7c2a04"),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -218,7 +218,7 @@
"v2.01",
AD_ENTRY1("intro.stk", "24a6b32757752ccb1917ce92fd7c2a04"),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -232,7 +232,7 @@
"v2.01",
AD_ENTRY1("intro.stk", "24a6b32757752ccb1917ce92fd7c2a04"),
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -246,7 +246,7 @@
"v2.01",
AD_ENTRY1("intro.stk", "24a6b32757752ccb1917ce92fd7c2a04"),
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -260,7 +260,7 @@
"v1.02",
AD_ENTRY1s("intro.stk", "5ba85a4769a1ab03a283dd694588d526", 5006236),
HU_HUN,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -274,7 +274,7 @@
"v1.02",
AD_ENTRY1s("intro.stk", "5ba85a4769a1ab03a283dd694588d526", 5006236),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -288,7 +288,7 @@
"v1.02",
AD_ENTRY1s("intro.stk", "5ba85a4769a1ab03a283dd694588d526", 5006236),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -302,7 +302,7 @@
"v1.02",
AD_ENTRY1s("intro.stk", "5ba85a4769a1ab03a283dd694588d526", 5006236),
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -316,7 +316,7 @@
"v1.02",
AD_ENTRY1s("intro.stk", "5ba85a4769a1ab03a283dd694588d526", 5006236),
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -587,7 +587,7 @@
"Non-Interactive Demo",
AD_ENTRY1("intro.stk", "8b1c98ff2ab2e14f47a1b891e9b92217"),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_DEMO,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -601,7 +601,7 @@
"Interactive Demo",
AD_ENTRY1("intro.stk", "cf1c95b2939bd8ff58a25c756cb6125e"),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_DEMO,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
diff --git a/engines/gob/detection/tables_gob3.h b/engines/gob/detection/tables_gob3.h
index 22ec69054b..29a76d2491 100644
--- a/engines/gob/detection/tables_gob3.h
+++ b/engines/gob/detection/tables_gob3.h
@@ -33,7 +33,7 @@
"",
AD_ENTRY1s("intro.stk", "32b0f57f5ae79a9ae97e8011df38af42", 157084),
EN_GRB,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -47,7 +47,7 @@
"",
AD_ENTRY1s("intro.stk", "904fc32032295baa3efb3a41f17db611", 178582),
HE_ISR,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -61,7 +61,7 @@
"",
AD_ENTRY1s("intro.stk", "16b014bf32dbd6ab4c5163c44f56fed1", 445104),
EN_GRB,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -75,7 +75,7 @@
"",
AD_ENTRY1("intro.stk", "1e2f64ec8dfa89f42ee49936a27e66e7"),
EN_USA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -89,7 +89,7 @@
"",
AD_ENTRY1("intro.stk", "f6d225b25a180606fa5dbe6405c97380"),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -103,7 +103,7 @@
"",
AD_ENTRY1("intro.stk", "e42a4f2337d6549487a80864d7826972"),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -117,7 +117,7 @@
"",
AD_ENTRY1s("intro.stk", "fe8144daece35538085adb59c2d29613", 159402),
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -131,7 +131,7 @@
"",
AD_ENTRY1("intro.stk", "4e3af248a48a2321364736afab868527"),
RU_RUS,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -145,7 +145,7 @@
"",
AD_ENTRY1("intro.stk", "8d28ce1591b0e9cc79bf41cad0fc4c9c"),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -159,7 +159,7 @@
"",
AD_ENTRY1s("intro.stk", "d3b72938fbbc8159198088811f9e6d19", 160382),
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -353,7 +353,7 @@
"v1.000",
AD_ENTRY1("intro.stk", "6f2c226c62dd7ab0ab6f850e89d3fc47"),
EN_USA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -367,7 +367,7 @@
"v1.02 Polish",
AD_ENTRY1s("intro.stk", "978afddcac81bb95a04757b61f78471c", 619825),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -381,7 +381,7 @@
"v1.02",
AD_ENTRY1("intro.stk", "c3e9132ea9dc0fb866b6d60dcda10261"),
EN_ANY,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -395,7 +395,7 @@
"v1.02",
AD_ENTRY1("intro.stk", "c3e9132ea9dc0fb866b6d60dcda10261"),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -409,7 +409,7 @@
"v1.02",
AD_ENTRY1("intro.stk", "c3e9132ea9dc0fb866b6d60dcda10261"),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -423,7 +423,7 @@
"v1.02",
AD_ENTRY1("intro.stk", "c3e9132ea9dc0fb866b6d60dcda10261"),
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -437,7 +437,7 @@
"v1.02",
AD_ENTRY1("intro.stk", "c3e9132ea9dc0fb866b6d60dcda10261"),
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -451,7 +451,7 @@
"v1.02",
AD_ENTRY1s("intro.stk", "bfd7d4c6fedeb2cfcc8baa4d5ddb1f74", 616220),
HU_HUN,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -465,7 +465,7 @@
"v1.02",
AD_ENTRY1s("intro.stk", "bfd7d4c6fedeb2cfcc8baa4d5ddb1f74", 616220),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -479,7 +479,7 @@
"v1.02",
AD_ENTRY1s("intro.stk", "bfd7d4c6fedeb2cfcc8baa4d5ddb1f74", 616220),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -493,7 +493,7 @@
"v1.02",
AD_ENTRY1s("intro.stk", "bfd7d4c6fedeb2cfcc8baa4d5ddb1f74", 616220),
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -510,7 +510,7 @@
"Non-interactive Demo",
AD_ENTRY1("intro.stk", "b9b898fccebe02b69c086052d5024a55"),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_DEMO,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -524,7 +524,7 @@
"Interactive Demo",
AD_ENTRY1("intro.stk", "7aebd94e49c2c5c518c9e7b74f25de9d"),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_DEMO,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -538,7 +538,7 @@
"Interactive Demo 2",
AD_ENTRY1("intro.stk", "e5dcbc9f6658ebb1e8fe26bc4da0806d"),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_DEMO,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -552,7 +552,7 @@
"Interactive Demo 3",
AD_ENTRY1s("intro.stk", "9e20ad7b471b01f84db526da34eaf0a2", 395561),
EN_ANY,
- kPlatformPC,
+ kPlatformDOS,
ADGF_DEMO,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
diff --git a/engines/gob/detection/tables_inca2.h b/engines/gob/detection/tables_inca2.h
index 26989f7d1a..8ca9463277 100644
--- a/engines/gob/detection/tables_inca2.h
+++ b/engines/gob/detection/tables_inca2.h
@@ -33,7 +33,7 @@
"",
AD_ENTRY1s("intro.stk", "1fa92b00fe80a20f34ec34a8e2fa869e", 923072),
EN_USA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -47,7 +47,7 @@
"",
AD_ENTRY1s("intro.stk", "1fa92b00fe80a20f34ec34a8e2fa869e", 923072),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -61,7 +61,7 @@
"",
AD_ENTRY1s("intro.stk", "1fa92b00fe80a20f34ec34a8e2fa869e", 923072),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -78,7 +78,7 @@
"",
AD_ENTRY1s("intro.stk", "47c3b452767c4f49ea7b109143e77c30", 916828),
EN_USA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -92,7 +92,7 @@
"",
AD_ENTRY1s("intro.stk", "47c3b452767c4f49ea7b109143e77c30", 916828),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -106,7 +106,7 @@
"",
AD_ENTRY1s("intro.stk", "47c3b452767c4f49ea7b109143e77c30", 916828),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -120,7 +120,7 @@
"",
AD_ENTRY1s("intro.stk", "47c3b452767c4f49ea7b109143e77c30", 916828),
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -134,7 +134,7 @@
"",
AD_ENTRY1s("intro.stk", "47c3b452767c4f49ea7b109143e77c30", 916828),
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -237,7 +237,7 @@
{0, 0, 0, 0}
},
EN_ANY,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
diff --git a/engines/gob/detection/tables_lit.h b/engines/gob/detection/tables_lit.h
index 019d001f97..c4453312ec 100644
--- a/engines/gob/detection/tables_lit.h
+++ b/engines/gob/detection/tables_lit.h
@@ -33,7 +33,7 @@
"",
AD_ENTRY1s("intro.stk", "7b7f48490dedc8a7cb999388e2fadbe3", 3930674),
EN_USA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -47,7 +47,7 @@
"",
AD_ENTRY1s("intro.stk", "e0767783ff662ed93665446665693aef", 4371238),
HE_ISR,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -61,7 +61,7 @@
"",
AD_ENTRY1s("intro.stk", "f1f78b663893b58887add182a77df151", 3944090),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -75,7 +75,7 @@
"",
AD_ENTRY1s("intro.stk", "cd322cb3c64ef2ba2f2134aa2122cfe9", 3936700),
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -89,7 +89,7 @@
"",
AD_ENTRY1s("intro.stk", "6263d09e996c1b4e84ef2d650b820e57", 4831170),
EN_USA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -103,7 +103,7 @@
"",
AD_ENTRY1s("intro.stk", "6263d09e996c1b4e84ef2d650b820e57", 4831170),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -117,7 +117,7 @@
"",
AD_ENTRY1s("intro.stk", "6263d09e996c1b4e84ef2d650b820e57", 4831170),
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -131,7 +131,7 @@
"",
AD_ENTRY1s("intro.stk", "6263d09e996c1b4e84ef2d650b820e57", 4831170),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -145,7 +145,7 @@
"",
AD_ENTRY1s("intro.stk", "6263d09e996c1b4e84ef2d650b820e57", 4831170),
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -159,7 +159,7 @@
"",
AD_ENTRY1s("intro.stk", "6263d09e996c1b4e84ef2d650b820e57", 4831170),
EN_GRB,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -173,7 +173,7 @@
"",
AD_ENTRY1s("intro.stk", "795be7011ec31bf5bb8ce4efdb9ee5d3", 4838904),
EN_USA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -187,7 +187,7 @@
"",
AD_ENTRY1s("intro.stk", "795be7011ec31bf5bb8ce4efdb9ee5d3", 4838904),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -201,7 +201,7 @@
"",
AD_ENTRY1s("intro.stk", "795be7011ec31bf5bb8ce4efdb9ee5d3", 4838904),
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -215,7 +215,7 @@
"",
AD_ENTRY1s("intro.stk", "795be7011ec31bf5bb8ce4efdb9ee5d3", 4838904),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -229,7 +229,7 @@
"",
AD_ENTRY1s("intro.stk", "795be7011ec31bf5bb8ce4efdb9ee5d3", 4838904),
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -243,7 +243,7 @@
"",
AD_ENTRY1s("intro.stk", "795be7011ec31bf5bb8ce4efdb9ee5d3", 4838904),
EN_GRB,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -441,7 +441,7 @@
"Demo",
AD_ENTRY1("demo.stk", "c06f8cc20eb239d4c71f225ce3093edf"),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_DEMO,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -455,7 +455,7 @@
"Non-interactive Demo",
AD_ENTRY1("demo.stk", "2eba8abd9e3878c57307576012dd2fec"),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_DEMO,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -472,7 +472,7 @@
"",
AD_ENTRY1s("intro.stk", "3712e7527ba8ce5637d2aadf62783005", 72318),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_PIRATED,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
diff --git a/engines/gob/detection/tables_littlered.h b/engines/gob/detection/tables_littlered.h
index 2b41b65a71..55279f72b6 100644
--- a/engines/gob/detection/tables_littlered.h
+++ b/engines/gob/detection/tables_littlered.h
@@ -33,7 +33,7 @@
"",
AD_ENTRY1s("intro.stk", "0b72992f5d8b5e6e0330572a5753ea25", 256490),
EN_GRB,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -47,7 +47,7 @@
"",
AD_ENTRY1s("intro.stk", "0b72992f5d8b5e6e0330572a5753ea25", 256490),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -61,7 +61,7 @@
"",
AD_ENTRY1s("intro.stk", "0b72992f5d8b5e6e0330572a5753ea25", 256490),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -75,7 +75,7 @@
"",
AD_ENTRY1s("intro.stk", "0b72992f5d8b5e6e0330572a5753ea25", 256490),
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -89,7 +89,7 @@
"",
AD_ENTRY1s("intro.stk", "0b72992f5d8b5e6e0330572a5753ea25", 256490),
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
diff --git a/engines/gob/detection/tables_onceupon.h b/engines/gob/detection/tables_onceupon.h
index 366024d43c..c516719c55 100644
--- a/engines/gob/detection/tables_onceupon.h
+++ b/engines/gob/detection/tables_onceupon.h
@@ -234,7 +234,7 @@
{0, 0, 0, 0}
},
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -253,7 +253,7 @@
{0, 0, 0, 0}
},
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -272,7 +272,7 @@
{0, 0, 0, 0}
},
EN_ANY,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -291,7 +291,7 @@
{0, 0, 0, 0}
},
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -310,7 +310,7 @@
{0, 0, 0, 0}
},
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
diff --git a/engines/gob/detection/tables_playtoons.h b/engines/gob/detection/tables_playtoons.h
index 4eb5945b04..5bdc337eba 100644
--- a/engines/gob/detection/tables_playtoons.h
+++ b/engines/gob/detection/tables_playtoons.h
@@ -37,7 +37,7 @@
{0, 0, 0, 0}
},
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -55,7 +55,7 @@
{0, 0, 0, 0}
},
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -73,7 +73,7 @@
{0, 0, 0, 0}
},
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -91,7 +91,7 @@
{0, 0, 0, 0}
},
EN_ANY,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -114,7 +114,7 @@
{0, 0, 0, 0}
},
EN_ANY,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -132,7 +132,7 @@
{0, 0, 0, 0}
},
EN_ANY,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -154,7 +154,7 @@
{0, 0, 0, 0}
},
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -175,7 +175,7 @@
{0, 0, 0, 0}
},
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -196,7 +196,7 @@
{0, 0, 0, 0}
},
EN_ANY,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -214,7 +214,7 @@
{0, 0, 0, 0}
},
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -232,7 +232,7 @@
{0, 0, 0, 0}
},
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -250,7 +250,7 @@
{0, 0, 0, 0}
},
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -268,7 +268,7 @@
{0, 0, 0, 0}
},
EN_ANY,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -289,7 +289,7 @@
{0, 0, 0, 0}
},
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -307,7 +307,7 @@
{0, 0, 0, 0}
},
EN_ANY,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -325,7 +325,7 @@
{0, 0, 0, 0}
},
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -343,7 +343,7 @@
{0, 0, 0, 0}
},
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -361,7 +361,7 @@
{0, 0, 0, 0}
},
EN_ANY,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -382,7 +382,7 @@
{0, 0, 0, 0}
},
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -400,7 +400,7 @@
{0, 0, 0, 0}
},
EN_ANY,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -421,7 +421,7 @@
{0, 0, 0, 0}
},
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -442,7 +442,7 @@
{0, 0, 0, 0}
},
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -463,7 +463,7 @@
{0, 0, 0, 0}
},
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -484,7 +484,7 @@
{0, 0, 0, 0}
},
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -505,7 +505,7 @@
{0, 0, 0, 0}
},
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
diff --git a/engines/gob/detection/tables_urban.h b/engines/gob/detection/tables_urban.h
index d24f6a5011..71c34c9d89 100644
--- a/engines/gob/detection/tables_urban.h
+++ b/engines/gob/detection/tables_urban.h
@@ -33,7 +33,7 @@
"",
AD_ENTRY1s("intro.stk", "3ab2c542bd9216ae5d02cc6f45701ae1", 1252436),
EN_USA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -47,7 +47,7 @@
"",
AD_ENTRY1s("intro.stk", "6ce3d878178932053267237ec4843ce1", 1252518),
EN_USA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -61,7 +61,7 @@
"",
AD_ENTRY1s("intro.stk", "b991ed1d31c793e560edefdb349882ef", 1276408),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -75,7 +75,7 @@
"",
AD_ENTRY1s("intro.stk", "4ec3c0864e2b54c5b4ccf9f6ad96528d", 1253328),
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -89,7 +89,7 @@
"",
AD_ENTRY1s("intro.stk", "9ea647085a16dd0fb9ecd84cd8778ec9", 1253436),
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -103,7 +103,7 @@
"",
AD_ENTRY1s("intro.stk", "4e4a3c017fe5475353bf94c455fe3efd", 1253448),
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -117,7 +117,7 @@
"",
AD_ENTRY1s("intro.stk", "4bd31979ea3d77a58a358c09000a85ed", 1253018),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -139,7 +139,7 @@
{0, 0, 0, 0}
},
EN_ANY,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
diff --git a/engines/gob/detection/tables_ween.h b/engines/gob/detection/tables_ween.h
index a02b931b85..89da5ba794 100644
--- a/engines/gob/detection/tables_ween.h
+++ b/engines/gob/detection/tables_ween.h
@@ -33,7 +33,7 @@
"",
AD_ENTRY1("intro.stk", "2bb8878a8042244dd2b96ff682381baa"),
EN_GRB,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -47,7 +47,7 @@
"",
AD_ENTRY1s("intro.stk", "de92e5c6a8c163007ffceebef6e67f7d", 7117568),
EN_USA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -61,7 +61,7 @@
"",
AD_ENTRY1s("intro.stk", "6d60f9205ecfbd8735da2ee7823a70dc", 7014426),
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -75,7 +75,7 @@
"",
AD_ENTRY1("intro.stk", "4b10525a3782aa7ecd9d833b5c1d308b"),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -89,7 +89,7 @@
"",
AD_ENTRY1("intro.stk", "63170e71f04faba88673b3f510f9c4c8"),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -103,7 +103,7 @@
"",
AD_ENTRY1s("intro.stk", "8b57cd510da8a3bbd99e3a0297a8ebd1", 7018771),
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -236,7 +236,7 @@
"",
AD_ENTRY1("intro.stk", "2bb8878a8042244dd2b96ff682381baa"),
EN_GRB,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -250,7 +250,7 @@
"",
AD_ENTRY1s("intro.stk", "de92e5c6a8c163007ffceebef6e67f7d", 7117568),
EN_USA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -264,7 +264,7 @@
"",
AD_ENTRY1s("intro.stk", "6d60f9205ecfbd8735da2ee7823a70dc", 7014426),
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -278,7 +278,7 @@
"",
AD_ENTRY1("intro.stk", "4b10525a3782aa7ecd9d833b5c1d308b"),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -292,7 +292,7 @@
"",
AD_ENTRY1("intro.stk", "63170e71f04faba88673b3f510f9c4c8"),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -306,7 +306,7 @@
"",
AD_ENTRY1s("intro.stk", "8b57cd510da8a3bbd99e3a0297a8ebd1", 7018771),
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -323,7 +323,7 @@
"Demo",
AD_ENTRY1("intro.stk", "2e9c2898f6bf206ede801e3b2e7ee428"),
UNK_LANG,
- kPlatformPC,
+ kPlatformDOS,
ADGF_DEMO,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
@@ -337,7 +337,7 @@
"Demo",
AD_ENTRY1("intro.stk", "15fb91a1b9b09684b28ac75edf66e504"),
EN_USA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_DEMO,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
diff --git a/engines/gob/detection/tables_woodruff.h b/engines/gob/detection/tables_woodruff.h
index e369539984..f6675a0981 100644
--- a/engines/gob/detection/tables_woodruff.h
+++ b/engines/gob/detection/tables_woodruff.h
@@ -33,7 +33,7 @@
"",
AD_ENTRY1s("intro.stk", "dccf9d31cb720b34d75487408821b77e", 20296390),
EN_GRB,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -47,7 +47,7 @@
"",
AD_ENTRY1s("intro.stk", "dccf9d31cb720b34d75487408821b77e", 20296390),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -61,7 +61,7 @@
"",
AD_ENTRY1s("intro.stk", "dccf9d31cb720b34d75487408821b77e", 20296390),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -75,7 +75,7 @@
"",
AD_ENTRY1s("intro.stk", "dccf9d31cb720b34d75487408821b77e", 20296390),
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -89,7 +89,7 @@
"",
AD_ENTRY1s("intro.stk", "dccf9d31cb720b34d75487408821b77e", 20296390),
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -103,7 +103,7 @@
"",
AD_ENTRY1s("intro.stk", "b50fee012a5abcd0ac2963e1b4b56bec", 20298108),
EN_GRB,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -117,7 +117,7 @@
"",
AD_ENTRY1s("intro.stk", "b50fee012a5abcd0ac2963e1b4b56bec", 20298108),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -131,7 +131,7 @@
"",
AD_ENTRY1s("intro.stk", "b50fee012a5abcd0ac2963e1b4b56bec", 20298108),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -145,7 +145,7 @@
"",
AD_ENTRY1s("intro.stk", "b50fee012a5abcd0ac2963e1b4b56bec", 20298108),
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -159,7 +159,7 @@
"",
AD_ENTRY1s("intro.stk", "b50fee012a5abcd0ac2963e1b4b56bec", 20298108),
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -173,7 +173,7 @@
"",
AD_ENTRY1s("intro.stk", "5f5f4e0a72c33391e67a47674b120cc6", 20296422),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -187,7 +187,7 @@
"",
AD_ENTRY1s("intro.stk", "270529d9b8cce770b1575908a3800b52", 20296452),
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -201,7 +201,7 @@
"",
AD_ENTRY1s("intro.stk", "270529d9b8cce770b1575908a3800b52", 20296452),
EN_GRB,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -215,7 +215,7 @@
"",
AD_ENTRY1s("intro.stk", "270529d9b8cce770b1575908a3800b52", 20296452),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -229,7 +229,7 @@
"",
AD_ENTRY1s("intro.stk", "270529d9b8cce770b1575908a3800b52", 20296452),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -243,7 +243,7 @@
"",
AD_ENTRY1s("intro.stk", "270529d9b8cce770b1575908a3800b52", 20296452),
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -257,7 +257,7 @@
"",
AD_ENTRY1s("intro.stk", "f4c344023b073782d2fddd9d8b515318", 7069736),
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -271,7 +271,7 @@
"",
AD_ENTRY1s("intro.stk", "f4c344023b073782d2fddd9d8b515318", 7069736),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -285,7 +285,7 @@
"",
AD_ENTRY1s("intro.stk", "f4c344023b073782d2fddd9d8b515318", 7069736),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -299,7 +299,7 @@
"",
AD_ENTRY1s("intro.stk", "60348a87651f92e8492ee070556a96d8", 7069736),
EN_GRB,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -313,7 +313,7 @@
"",
AD_ENTRY1s("intro.stk", "60348a87651f92e8492ee070556a96d8", 7069736),
DE_DEU,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -327,7 +327,7 @@
"",
AD_ENTRY1s("intro.stk", "60348a87651f92e8492ee070556a96d8", 7069736),
FR_FRA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -341,7 +341,7 @@
"",
AD_ENTRY1s("intro.stk", "60348a87651f92e8492ee070556a96d8", 7069736),
IT_ITA,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -355,7 +355,7 @@
"",
AD_ENTRY1s("intro.stk", "60348a87651f92e8492ee070556a96d8", 7069736),
ES_ESP,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -369,7 +369,7 @@
"",
AD_ENTRY1s("intro.stk", "08a96bf061af1fa4f75c6a7cc56b60a4", 20734979),
PL_POL,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOASPECT)
},
@@ -390,7 +390,7 @@
{0, 0, 0, 0}
},
EN_ANY,
- kPlatformPC,
+ kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT)
},
diff --git a/engines/gob/hotspots.cpp b/engines/gob/hotspots.cpp
index 11b6150626..cd00cd13d7 100644
--- a/engines/gob/hotspots.cpp
+++ b/engines/gob/hotspots.cpp
@@ -1995,6 +1995,7 @@ bool Hotspots::leaveNthPlain(uint16 n, uint16 startIndex, int16 timeVal, const u
// Call the leave and time it
startTime = _vm->_util->getTimeKey();
call(spot.funcLeave);
+ _vm->_inter->animPalette();
callTime = _vm->_util->getTimeKey() - startTime;
// Remove the time it took from the time we have available
diff --git a/engines/gob/init_v2.cpp b/engines/gob/init_v2.cpp
index c204b04a40..1540ff6601 100644
--- a/engines/gob/init_v2.cpp
+++ b/engines/gob/init_v2.cpp
@@ -47,7 +47,7 @@ void Init_v2::initVideo() {
_vm->_global->_colorCount = 16;
if (!_vm->isEGA() &&
- ((_vm->getPlatform() == Common::kPlatformPC) ||
+ ((_vm->getPlatform() == Common::kPlatformDOS) ||
(_vm->getPlatform() == Common::kPlatformMacintosh) ||
(_vm->getPlatform() == Common::kPlatformWindows)) &&
((_vm->_global->_videoMode == 0x13) ||
diff --git a/engines/gob/inter_fascin.cpp b/engines/gob/inter_fascin.cpp
index 001ec06635..c3b5d98a58 100644
--- a/engines/gob/inter_fascin.cpp
+++ b/engines/gob/inter_fascin.cpp
@@ -132,7 +132,7 @@ void Inter_Fascination::oFascin_repeatUntil(OpFuncParams &params) {
// WORKAROUND: The script of the PC version of Fascination, when the protection check
// fails, writes on purpose everywhere in the memory in order to hang the computer.
// This results in a crash in Scummvm. This workaround avoids that crash.
- if (_vm->getPlatform() == Common::kPlatformPC) {
+ if (_vm->getPlatform() == Common::kPlatformDOS) {
if (((blockPos == 3533) && _vm->isCurrentTot("INTRO1.TOT")) ||
((blockPos == 3519) && _vm->isCurrentTot("INTRO2.TOT")) ||
((blockPos == 3265) && _vm->isCurrentTot("INTRO2.TOT"))) //PC Hebrew
diff --git a/engines/gob/inter_playtoons.cpp b/engines/gob/inter_playtoons.cpp
index f76ba8e97b..b0bdde07ac 100644
--- a/engines/gob/inter_playtoons.cpp
+++ b/engines/gob/inter_playtoons.cpp
@@ -301,7 +301,7 @@ void Inter_Playtoons::oPlaytoons_readData(OpFuncParams &params) {
WRITE_VAR(59, stream->readUint32LE());
// The scripts in some versions divide through 256^3 then,
// effectively doing a LE->BE conversion
- if ((_vm->getPlatform() != Common::kPlatformPC) && (VAR(59) < 256))
+ if ((_vm->getPlatform() != Common::kPlatformDOS) && (VAR(59) < 256))
WRITE_VAR(59, SWAP_BYTES_32(VAR(59)));
} else
retSize = stream->read(buf, size);
diff --git a/engines/gob/inter_v2.cpp b/engines/gob/inter_v2.cpp
index cb58fe86f7..6b7a4f03bd 100644
--- a/engines/gob/inter_v2.cpp
+++ b/engines/gob/inter_v2.cpp
@@ -1326,7 +1326,7 @@ void Inter_v2::o2_readData(OpFuncParams &params) {
WRITE_VAR(59, stream->readUint32LE());
// The scripts in some versions divide through 256^3 then,
// effectively doing a LE->BE conversion
- if ((_vm->getPlatform() != Common::kPlatformPC) && (VAR(59) < 256))
+ if ((_vm->getPlatform() != Common::kPlatformDOS) && (VAR(59) < 256))
WRITE_VAR(59, SWAP_BYTES_32(VAR(59)));
} else
retSize = stream->read(buf, size);
diff --git a/engines/gob/pregob/onceupon/stork.h b/engines/gob/pregob/onceupon/stork.h
index 756f5258c7..ae57983000 100644
--- a/engines/gob/pregob/onceupon/stork.h
+++ b/engines/gob/pregob/onceupon/stork.h
@@ -79,8 +79,6 @@ private:
};
- GobEngine *_vm;
-
Surface *_frame;
ANIObject *_bundle;
diff --git a/engines/gob/pregob/onceupon/title.cpp b/engines/gob/pregob/onceupon/title.cpp
index 5163ff6822..a3905541a0 100644
--- a/engines/gob/pregob/onceupon/title.cpp
+++ b/engines/gob/pregob/onceupon/title.cpp
@@ -62,7 +62,7 @@ void Title::handleFrameEvent() {
void Title::playMusic() {
// Look at what platform this is and play the appropriate music type
- if (_vm->getPlatform() == Common::kPlatformPC)
+ if (_vm->getPlatform() == Common::kPlatformDOS)
playMusicDOS();
else if (_vm->getPlatform() == Common::kPlatformAmiga)
playMusicAmiga();
diff --git a/engines/groovie/cursor.cpp b/engines/groovie/cursor.cpp
index 6422570220..cac78a95a3 100644
--- a/engines/groovie/cursor.cpp
+++ b/engines/groovie/cursor.cpp
@@ -378,8 +378,7 @@ void Cursor_v2::decodeFrame(byte *pal, byte *data, byte *dest) {
}
}
-
-
+ delete[] tmp;
}
void Cursor_v2::enable() {
diff --git a/engines/groovie/detection.cpp b/engines/groovie/detection.cpp
index 65452f5cf3..7c89114e83 100644
--- a/engines/groovie/detection.cpp
+++ b/engines/groovie/detection.cpp
@@ -54,7 +54,7 @@ static const GroovieGameDescription gameDescriptions[] = {
{
"t7g", "",
AD_ENTRY1s("script.grv", "d1b8033b40aa67c076039881eccce90d", 16659),
- Common::EN_ANY, Common::kPlatformPC, ADGF_NO_FLAGS,
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_NO_FLAGS,
GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT, GAMEOPTION_T7G_FAST_MOVIE_SPEED)
},
kGroovieT7G, 0
@@ -108,7 +108,7 @@ static const GroovieGameDescription gameDescriptions[] = {
{ "intro.gjd", 0, NULL, 31711554},
{ NULL, 0, NULL, 0}
},
- Common::RU_RUS, Common::kPlatformPC, ADGF_NO_FLAGS,
+ Common::RU_RUS, Common::kPlatformDOS, ADGF_NO_FLAGS,
GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT, GAMEOPTION_T7G_FAST_MOVIE_SPEED)
},
kGroovieT7G, 0
@@ -134,7 +134,7 @@ static const GroovieGameDescription gameDescriptions[] = {
{
"11h", "",
AD_ENTRY1s("disk.1", "5c0428cd3659fc7bbcd0aa16485ed5da", 227),
- Common::EN_ANY, Common::kPlatformPC, ADGF_UNSTABLE,
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE,
GUIO4(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT)
},
kGroovieV2, 1
@@ -175,7 +175,7 @@ static const GroovieGameDescription gameDescriptions[] = {
{
"11h", "Demo",
AD_ENTRY1s("disk.1", "aacb32ce07e0df2894bd83a3dee40c12", 70),
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO | ADGF_UNSTABLE,
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO | ADGF_UNSTABLE,
GUIO5(GUIO_NOLAUNCHLOAD, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT)
},
kGroovieV2, 1
@@ -186,7 +186,7 @@ static const GroovieGameDescription gameDescriptions[] = {
{
"11h", "Making Of",
AD_ENTRY1s("disk.1", "5c0428cd3659fc7bbcd0aa16485ed5da", 227),
- Common::EN_ANY, Common::kPlatformPC, ADGF_UNSTABLE,
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE,
GUIO3(GUIO_NOMIDI, GUIO_NOLAUNCHLOAD, GUIO_NOASPECT)
},
kGroovieV2, 2
@@ -227,7 +227,7 @@ static const GroovieGameDescription gameDescriptions[] = {
{
"clandestiny", "Trailer",
AD_ENTRY1s("disk.1", "5c0428cd3659fc7bbcd0aa16485ed5da", 227),
- Common::EN_ANY, Common::kPlatformPC, ADGF_UNSTABLE,
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE,
GUIO3(GUIO_NOMIDI, GUIO_NOLAUNCHLOAD, GUIO_NOASPECT)
},
kGroovieV2, 3
@@ -268,7 +268,7 @@ static const GroovieGameDescription gameDescriptions[] = {
{
"clandestiny", "",
AD_ENTRY1s("disk.1", "f79fc1515174540fef6a34132efc4c53", 76),
- Common::EN_ANY, Common::kPlatformPC, ADGF_UNSTABLE,
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE,
GUIO2(GUIO_NOMIDI, GUIO_NOASPECT)
},
kGroovieV2, 1
@@ -279,7 +279,7 @@ static const GroovieGameDescription gameDescriptions[] = {
{
"unclehenry", "",
AD_ENTRY1s("disk.1", "0e1b1d3cecc4fc7efa62a968844d1f7a", 72),
- Common::EN_ANY, Common::kPlatformPC, ADGF_UNSTABLE,
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE,
GUIO2(GUIO_NOMIDI, GUIO_NOASPECT)
},
kGroovieV2, 1
@@ -290,7 +290,7 @@ static const GroovieGameDescription gameDescriptions[] = {
{
"tlc", "",
AD_ENTRY1s("disk.1", "32a1afa68478f1f9d2b25eeea427f2e3", 84),
- Common::EN_ANY, Common::kPlatformPC, ADGF_UNSTABLE,
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE,
GUIO2(GUIO_NOMIDI, GUIO_NOASPECT)
},
kGroovieV2, 1
diff --git a/engines/groovie/vdx.h b/engines/groovie/vdx.h
index ebe58cb119..a9bfaa1eb4 100644
--- a/engines/groovie/vdx.h
+++ b/engines/groovie/vdx.h
@@ -62,11 +62,11 @@ private:
bool _flagEight;
bool _flagNine;
- bool _flagSkipStill;
+ //bool _flagSkipStill;
bool _flagSkipPalette;
bool _flagFirstFrame;
- bool _flagTransparent;
- bool _flagUpdateStill;
+ //bool _flagTransparent;
+ //bool _flagUpdateStill;
void getStill(Common::ReadStream *in);
void getDelta(Common::ReadStream *in);
diff --git a/engines/hopkins/anim.cpp b/engines/hopkins/anim.cpp
index 007197090f..2ec9cec009 100644
--- a/engines/hopkins/anim.cpp
+++ b/engines/hopkins/anim.cpp
@@ -55,7 +55,7 @@ void AnimationManager::clearAll() {
* @param rate2 Delay amount between animation frames
* @param rate3 Delay amount after animation finishes
*/
-void AnimationManager::playAnim(const Common::String &filename, uint32 rate1, uint32 rate2, uint32 rate3, bool skipSeqFl) {
+void AnimationManager::playAnim(const Common::String &hiresName, const Common::String &lowresName, uint32 rate1, uint32 rate2, uint32 rate3, bool skipSeqFl) {
Common::File f;
if (_vm->shouldQuit())
@@ -65,16 +65,10 @@ void AnimationManager::playAnim(const Common::String &filename, uint32 rate1, ui
byte *screenP = _vm->_graphicsMan->_backBuffer;
- Common::String tmpStr;
- // The Windows 95 demo only contains the interlaced version of the BOMBE1 and BOMBE2 videos
- if (_vm->getPlatform() == Common::kPlatformWindows && _vm->getIsDemo() && filename == "BOMBE1A.ANM")
- tmpStr = "BOMBE1.ANM";
- else if (_vm->getPlatform() == Common::kPlatformWindows && _vm->getIsDemo() && filename == "BOMBE2A.ANM")
- tmpStr = "BOMBE2.ANM";
- else
- tmpStr = filename;
- if (!f.open(tmpStr))
- error("File not found - %s", tmpStr.c_str());
+ if (!f.open(hiresName)) {
+ if (!f.open(lowresName))
+ error("Files not found: %s - %s", hiresName.c_str(), lowresName.c_str());
+ }
f.skip(6);
f.read(_vm->_graphicsMan->_palette, 800);
@@ -202,7 +196,7 @@ void AnimationManager::playAnim(const Common::String &filename, uint32 rate1, ui
/**
* Play Animation, type 2
*/
-void AnimationManager::playAnim2(const Common::String &filename, uint32 rate1, uint32 rate2, uint32 rate3) {
+void AnimationManager::playAnim2(const Common::String &hiresName, const Common::String &lowresName, uint32 rate1, uint32 rate2, uint32 rate3) {
int oldScrollPosX = 0;
byte *screenP = NULL;
Common::File f;
@@ -221,8 +215,10 @@ void AnimationManager::playAnim2(const Common::String &filename, uint32 rate1, u
_vm->_graphicsMan->_scrollOffset = 0;
screenP = _vm->_graphicsMan->_backBuffer;
- if (!f.open(filename))
- error("Error opening file - %s", filename.c_str());
+ if (!f.open(hiresName)) {
+ if (!f.open(lowresName))
+ error("Error opening files: %s - %s", hiresName.c_str(), lowresName.c_str());
+ }
f.skip(6);
f.read(_vm->_graphicsMan->_palette, 800);
@@ -675,42 +671,39 @@ void AnimationManager::playSequence2(const Common::String &file, uint32 rate1, u
int frameNumber;
Common::File f;
- for (;;) {
- if (_vm->shouldQuit())
- return;
+ if (_vm->shouldQuit())
+ return;
- _vm->_events->_mouseFl = false;
- screenP = _vm->_graphicsMan->_backBuffer;
+ _vm->_events->_mouseFl = false;
+ screenP = _vm->_graphicsMan->_backBuffer;
- if (!f.open(file))
- error("File not found - %s", file.c_str());
+ if (!f.open(file))
+ error("File not found - %s", file.c_str());
- f.skip(6);
- f.read(_vm->_graphicsMan->_palette, 800);
- f.skip(4);
- size_t nbytes = f.readUint32LE();
- f.skip(14);
- f.read(screenP, nbytes);
+ f.skip(6);
+ f.read(_vm->_graphicsMan->_palette, 800);
+ f.skip(4);
+ size_t nbytes = f.readUint32LE();
+ f.skip(14);
+ f.read(screenP, nbytes);
- if (skipSeqFl) {
- _vm->_graphicsMan->setPaletteVGA256(_vm->_graphicsMan->_palette);
- } else {
- _vm->_graphicsMan->setPaletteVGA256(_vm->_graphicsMan->_palette);
- _vm->_graphicsMan->display8BitRect(screenP, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0, 0);
+ if (skipSeqFl) {
+ _vm->_graphicsMan->setPaletteVGA256(_vm->_graphicsMan->_palette);
+ } else {
+ _vm->_graphicsMan->setPaletteVGA256(_vm->_graphicsMan->_palette);
+ _vm->_graphicsMan->display8BitRect(screenP, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0, 0);
- _vm->_graphicsMan->addRefreshRect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
- _vm->_graphicsMan->updateScreen();
- }
- _vm->_events->_rateCounter = 0;
- _vm->_events->_escKeyFl = false;
- _vm->_soundMan->loadAnimSound();
- if (_vm->_globals->_eventMode == EVENTMODE_IGNORE) {
- do {
- _vm->_events->refreshEvents();
- _vm->_soundMan->checkSoundEnd();
- } while (!_vm->shouldQuit() && !_vm->_events->_escKeyFl && _vm->_events->_rateCounter < rate1);
- }
- break;
+ _vm->_graphicsMan->addRefreshRect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
+ _vm->_graphicsMan->updateScreen();
+ }
+ _vm->_events->_rateCounter = 0;
+ _vm->_events->_escKeyFl = false;
+ _vm->_soundMan->loadAnimSound();
+ if (_vm->_globals->_eventMode == EVENTMODE_IGNORE) {
+ do {
+ _vm->_events->refreshEvents();
+ _vm->_soundMan->checkSoundEnd();
+ } while (!_vm->shouldQuit() && !_vm->_events->_escKeyFl && _vm->_events->_rateCounter < rate1);
}
if (!_vm->_events->_escKeyFl) {
@@ -760,7 +753,7 @@ void AnimationManager::playSequence2(const Common::String &file, uint32 rate1, u
f.seek(6);
f.read(_vm->_graphicsMan->_palette, 800);
f.skip(4);
- size_t nbytes = f.readUint32LE();
+ nbytes = f.readUint32LE();
f.skip(14);
f.read(screenP, nbytes);
diff --git a/engines/hopkins/anim.h b/engines/hopkins/anim.h
index 22f725681a..bf9b55aaae 100644
--- a/engines/hopkins/anim.h
+++ b/engines/hopkins/anim.h
@@ -64,8 +64,8 @@ public:
void loadAnim(const Common::String &animName);
void clearAnim();
- void playAnim(const Common::String &filename, uint32 rate1, uint32 rate2, uint32 rate3, bool skipSeqFl = false);
- void playAnim2(const Common::String &filename, uint32 rate1, uint32 rate2, uint32 rate3);
+ void playAnim(const Common::String &hiresName, const Common::String &lowresName, uint32 rate1, uint32 rate2, uint32 rate3, bool skipSeqFl = false);
+ void playAnim2(const Common::String &hiresName, const Common::String &lowresName, uint32 rate1, uint32 rate2, uint32 rate3);
void playSequence(const Common::String &file, uint32 rate1, uint32 rate2, uint32 rate3, bool skipEscFl, bool skipSeqFl, bool noColFl = false);
void playSequence2(const Common::String &file, uint32 rate1, uint32 rate2, uint32 rate3, bool skipSeqFl = false);
diff --git a/engines/hopkins/computer.cpp b/engines/hopkins/computer.cpp
index 467153e4dd..f7b923badf 100644
--- a/engines/hopkins/computer.cpp
+++ b/engines/hopkins/computer.cpp
@@ -326,13 +326,13 @@ static const char _spanishText[] =
"% **** ORDENADOR DEL FBI NUMERO 4985 **** ORDENADOR J.HOPKINS *****\n"
"% **** ORDENADOR DEL FBI NUMERO 4998 **** ORDENADOR S.COLLINS *****\n"
"% *** ORDENADOR DEL FBI NUMERO 4997 *** ORDENADOR DE ACCESO LIBRE ***\n"
-"% LA CONTRASE¥A ES: ALLFREE\n"
-"% ESCRIBE CONTRASE¥A ACTUAL\n"
+"% LA CONTRASE\0245A ES: ALLFREE\n"
+"% ESCRIBE CONTRASE\0245A ACTUAL\n"
"% **** ACCESO DENEGADO ****\n"
"% 1) *** JUEGO ***\n"
"% 0) SALIR DEL ORDENADOR\n"
-"% 2) CADAVER EXTRA¥O\n"
-"% 3) CADAVER EXTRA¥O\n"
+"% 2) CADAVER EXTRA\0245O\n"
+"% 3) CADAVER EXTRA\0245O\n"
"% 4) SENADOR FERGUSSON\n"
"% 5) MATAPERROS\n"
"% 2) CIENTIFICO SECUESTRADO.\n"
@@ -697,6 +697,10 @@ void ComputerManager::displayBricks() {
}
displayScore();
+
+ // Refresh the entire screen
+ _vm->_graphicsMan->addRefreshRect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
+ _vm->_graphicsMan->updateScreen();
}
/**
diff --git a/engines/hopkins/debugger.cpp b/engines/hopkins/debugger.cpp
index 246270c1c2..f111eb50d3 100644
--- a/engines/hopkins/debugger.cpp
+++ b/engines/hopkins/debugger.cpp
@@ -34,6 +34,8 @@ Debugger::Debugger(HopkinsEngine *vm) : GUI::Debugger() {
DCmd_Register("rects", WRAP_METHOD(Debugger, cmd_DirtyRects));
DCmd_Register("teleport", WRAP_METHOD(Debugger, cmd_Teleport));
DCmd_Register("show_room", WRAP_METHOD(Debugger, cmd_ShowCurrentRoom));
+ DCmd_Register("zones", WRAP_METHOD(Debugger, cmd_Zones));
+ DCmd_Register("lines", WRAP_METHOD(Debugger, cmd_Lines));
}
// Turns dirty rects on or off
@@ -64,4 +66,25 @@ bool Debugger::cmd_ShowCurrentRoom(int argc, const char **argv) {
return true;
}
+bool Debugger::cmd_Zones(int argc, const char **argv) {
+if (argc != 2) {
+ DebugPrintf("%s: [on | off]\n", argv[0]);
+ return true;
+ } else {
+ _vm->_graphicsMan->_showZones = !strcmp(argv[1], "on");
+ return false;
+ }
+}
+
+bool Debugger::cmd_Lines(int argc, const char **argv) {
+ if (argc != 2) {
+ DebugPrintf("%s: [on | off]\n", argv[0]);
+ return true;
+ } else {
+ _vm->_graphicsMan->_showLines = !strcmp(argv[1], "on");
+ return false;
+ }
+}
+
+
} // End of namespace Hopkins
diff --git a/engines/hopkins/debugger.h b/engines/hopkins/debugger.h
index 7f7bffd755..746c54a675 100644
--- a/engines/hopkins/debugger.h
+++ b/engines/hopkins/debugger.h
@@ -41,6 +41,8 @@ public:
bool cmd_DirtyRects(int argc, const char **argv);
bool cmd_Teleport(int argc, const char **argv);
bool cmd_ShowCurrentRoom(int argc, const char **argv);
+ bool cmd_Zones(int argc, const char **argv);
+ bool cmd_Lines(int argc, const char **argv);
};
} // End of namespace Hopkins
diff --git a/engines/hopkins/detection_tables.h b/engines/hopkins/detection_tables.h
index e1937372d2..3e04375fe9 100644
--- a/engines/hopkins/detection_tables.h
+++ b/engines/hopkins/detection_tables.h
@@ -155,6 +155,38 @@ static const HopkinsGameDescription gameDescriptions[] = {
},
},
{
+ // Hopkins FBI Win95 EN, provided by greencis in bug #3612406
+ {
+ "hopkins",
+ 0,
+ {
+ {"hopkins.exe", 0, "020690049fa1dfcd63a18fdafb139a0e", 421386},
+ {"RES_VAN.RES", 0, "f1693ac0b0859c8ecd8cb30ff43cf55f", 38296346},
+ AD_LISTEND
+ },
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ ADGF_NO_FLAGS,
+ GUIO1(GUIO_NONE)
+ },
+ },
+ {
+ // Hopkins FBI Win95 RU, provided by greencis in bug #3613068
+ {
+ "hopkins",
+ 0,
+ {
+ {"hopkins.exe", 0, "3043fef0bd3bfeba8252647cd090ce09", 419281},
+ {"res_van.res", 0, "bf17c710e184a25a6c8e9d1d9503c38e", 32197685},
+ AD_LISTEND
+ },
+ Common::RU_RUS,
+ Common::kPlatformWindows,
+ ADGF_NO_FLAGS,
+ GUIO1(GUIO_NONE)
+ },
+ },
+ {
// Hopkins FBI Linux, provided by Strangerke
{
"hopkins",
diff --git a/engines/hopkins/dialogs.cpp b/engines/hopkins/dialogs.cpp
index 5b9fb8afc2..6cdfbf47d1 100644
--- a/engines/hopkins/dialogs.cpp
+++ b/engines/hopkins/dialogs.cpp
@@ -422,6 +422,7 @@ void DialogsManager::showInventory() {
if (cursorId != 1 && cursorId != 2 && cursorId != 3 && cursorId != 16) {
if (mouseButton == 2) {
_vm->_objectsMan->nextObjectIcon(newInventoryItem);
+ cursorId = _vm->_events->_mouseCursorId;
if (cursorId != 23)
_vm->_events->changeMouseCursor(cursorId);
}
@@ -639,6 +640,7 @@ void DialogsManager::showSaveGame() {
// Since the original GUI doesn't support save names, use a default name
Common::String saveName = Common::String::format("Save #%d", slotNumber);
+ _vm->_events->refreshScreenAndEvents();
// Save the game
_vm->_saveLoad->saveGame(slotNumber, saveName);
}
diff --git a/engines/hopkins/events.cpp b/engines/hopkins/events.cpp
index 58389ef2e9..51c66c4f92 100644
--- a/engines/hopkins/events.cpp
+++ b/engines/hopkins/events.cpp
@@ -237,7 +237,7 @@ void EventsManager::checkForNextFrameCounter() {
void EventsManager::delay(int totalMilli) {
uint32 delayEnd = g_system->getMillis() + totalMilli;
- while (!g_system->getEventManager()->shouldQuit() && g_system->getMillis() < delayEnd) {
+ while (!_vm->shouldQuit() && g_system->getMillis() < delayEnd) {
g_system->delayMillis(10);
}
}
diff --git a/engines/hopkins/font.cpp b/engines/hopkins/font.cpp
index 611327e9a8..ac0eee2866 100644
--- a/engines/hopkins/font.cpp
+++ b/engines/hopkins/font.cpp
@@ -433,6 +433,7 @@ void FontManager::displayText(int xp, int yp, const Common::String &message, int
if (currentChar > 31) {
int characterIndex = currentChar - 32;
_vm->_graphicsMan->displayFont(_vm->_graphicsMan->_frontBuffer, _font, xp, yp, characterIndex, col);
+ _vm->_graphicsMan->addDirtyRect(xp, yp, xp + _vm->_objectsMan->getWidth(_font, characterIndex) + 1, yp + _vm->_objectsMan->getHeight(_font, characterIndex) + 1);
xp += _vm->_objectsMan->getWidth(_font, characterIndex);
}
}
diff --git a/engines/hopkins/globals.cpp b/engines/hopkins/globals.cpp
index 2e7a2195d1..28f22ed99e 100644
--- a/engines/hopkins/globals.cpp
+++ b/engines/hopkins/globals.cpp
@@ -89,7 +89,7 @@ Globals::Globals(HopkinsEngine *vm) {
_menuTextOff = 0;
_menuDisplayType = 0;
_checkDistanceFl = false;
- _characterType = 0;
+ _characterType = CHARACTER_HOPKINS;
_actionMoveTo = false;
_actionDirection = DIR_NONE;
@@ -134,9 +134,11 @@ Globals::~Globals() {
void Globals::setConfig() {
// CHECKME: Should be in Globals() but it doesn't work
// The Polish version is a translation of the English version. The filenames are the same.
+ // The Russian version looks like a translation of the English version, based on the filenames.
switch (_vm->getLanguage()) {
case Common::EN_ANY:
case Common::PL_POL:
+ case Common::RU_RUS:
_language = LANG_EN;
break;
case Common::FR_FRA:
@@ -185,8 +187,6 @@ void Globals::clearAll() {
}
void Globals::loadCharacterData() {
- assert(_characterType >= 0 && _characterType <= 2);
-
const int *srcList[] = { HOPKINS_PERSO_0, HOPKINS_PERSO_1, HOPKINS_PERSO_2 };
const int *srcP = srcList[_characterType];
diff --git a/engines/hopkins/globals.h b/engines/hopkins/globals.h
index f86a810c28..94512c3d26 100644
--- a/engines/hopkins/globals.h
+++ b/engines/hopkins/globals.h
@@ -172,7 +172,7 @@ public:
int _characterMaxPosY;
int _baseMapColor;
int _spriteSize[500];
- int _characterType;
+ PlayerCharacter _characterType;
uint _speed;
byte *_answerBuffer;
Savegame *_saveData;
diff --git a/engines/hopkins/graphics.cpp b/engines/hopkins/graphics.cpp
index f978a5803f..ebc5cfa8da 100644
--- a/engines/hopkins/graphics.cpp
+++ b/engines/hopkins/graphics.cpp
@@ -73,6 +73,8 @@ GraphicsManager::GraphicsManager(HopkinsEngine *vm) {
_zoomOutFactor = 0;
_width = 0;
_specialWidth = 0;
+ _showZones = false;
+ _showLines = false;
Common::fill(&_paletteBuffer[0], &_paletteBuffer[PALETTE_SIZE * 2], 0);
Common::fill(&_colorTable[0], &_colorTable[PALETTE_EXT_BLOCK_SIZE], 0);
@@ -663,11 +665,17 @@ uint16 GraphicsManager::mapRGB(byte r, byte g, byte b) {
}
void GraphicsManager::updateScreen() {
- // TODO: Is this okay here?
// Display any aras of the screen that need refreshing
displayDirtyRects();
displayRefreshRects();
+ // Extra checks for debug information
+ if (_showZones)
+ displayZones();
+
+ if (_showLines)
+ displayLines();
+
// Update the screen
g_system->updateScreen();
}
@@ -1012,7 +1020,7 @@ void GraphicsManager::endDisplayBob() {
_vm->_objectsMan->resetBob(idx);
}
- for (int idx = 1; idx <= 29; ++idx) {
+ for (int idx = 1; idx < 36; ++idx) {
_vm->_objectsMan->_lockedAnims[idx]._enableFl = false;
}
@@ -1140,6 +1148,7 @@ void GraphicsManager::displayRefreshRects() {
screenSurface = g_system->lockScreen();
g_system->copyRectToScreen(_screenBuffer, _screenLineSize, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
}
+
// Loop through copying over any specified rects to the screen
for (uint idx = 0; idx < _refreshRects.size(); ++idx) {
const Common::Rect &r = _refreshRects[idx];
@@ -1157,6 +1166,75 @@ void GraphicsManager::displayRefreshRects() {
resetRefreshRects();
}
+/**
+ * Display any zones for the current room
+ */
+void GraphicsManager::displayZones() {
+ Graphics::Surface *screenSurface = g_system->lockScreen();
+
+ for (int bobZoneId = 0; bobZoneId <= 48; bobZoneId++) {
+ int bobId = _vm->_linesMan->_bobZone[bobZoneId];
+ if (bobId) {
+ // Get the rectangle for the zone
+ Common::Rect r(_vm->_objectsMan->_bob[bobId]._oldX, _vm->_objectsMan->_bob[bobId]._oldY,
+ _vm->_objectsMan->_bob[bobId]._oldX + _vm->_objectsMan->_bob[bobId]._oldWidth,
+ _vm->_objectsMan->_bob[bobId]._oldY + _vm->_objectsMan->_bob[bobId]._oldHeight);
+
+ displayDebugRect(screenSurface, r, 0xff0000);
+ }
+ }
+
+ for (int squareZoneId = 0; squareZoneId <= 99; squareZoneId++) {
+ if (_vm->_linesMan->_zone[squareZoneId]._enabledFl && _vm->_linesMan->_squareZone[squareZoneId]._enabledFl) {
+ Common::Rect r(_vm->_linesMan->_squareZone[squareZoneId]._left, _vm->_linesMan->_squareZone[squareZoneId]._top,
+ _vm->_linesMan->_squareZone[squareZoneId]._right, _vm->_linesMan->_squareZone[squareZoneId]._bottom);
+
+ displayDebugRect(screenSurface, r, 0x00ff00);
+ }
+ }
+
+ g_system->unlockScreen();
+}
+
+/**
+ * Display any zones for the current room
+ */
+void GraphicsManager::displayLines() {
+ Graphics::Surface *screenSurface = g_system->lockScreen();
+
+ uint16* pixels = (uint16*)screenSurface->pixels;
+
+ for (int lineIndex = 0; lineIndex < _vm->_linesMan->_linesNumb; lineIndex++) {
+ int i = 0;
+ do {
+ int x = _vm->_linesMan->_lineItem[lineIndex]._lineData[i] - _scrollPosX;
+ int y = _vm->_linesMan->_lineItem[lineIndex]._lineData[i+1];
+ if (x >= 0 && x < SCREEN_WIDTH && y >= 0 && y < SCREEN_HEIGHT) {
+ pixels[ y * screenSurface->w + x ] = 0xffff;
+ }
+ i += 2;
+ }
+ while(_vm->_linesMan->_lineItem[lineIndex]._lineData[i] != -1);
+ }
+
+ g_system->unlockScreen();
+}
+
+
+void GraphicsManager::displayDebugRect(Graphics::Surface *surface, const Common::Rect &srcRect, uint32 color) {
+ Common::Rect r = srcRect;
+
+ // Move for scrolling offset and adjust to crop on-screen
+ r.translate(-_scrollPosX, 0);
+ r.left = MAX(r.left, (int16)0);
+ r.top = MAX(r.top, (int16)0);
+ r.right = MIN(r.right, (int16)SCREEN_WIDTH);
+ r.bottom = MIN(r.bottom, (int16)SCREEN_HEIGHT);
+
+ // If there's an on-screen portion, display it
+ if (r.isValidRect())
+ surface->frameRect(r, color);
+}
/**
* Fast Display of either a compressed or vesa sprite
diff --git a/engines/hopkins/graphics.h b/engines/hopkins/graphics.h
index b7d7eaa86f..268db7fc2b 100644
--- a/engines/hopkins/graphics.h
+++ b/engines/hopkins/graphics.h
@@ -118,12 +118,14 @@ public:
Common::Array<Common::Rect> _dirtyRects;
Common::Array<Common::Rect> _refreshRects;
bool _showDirtyRects;
+ bool _showZones;
+ bool _showLines;
byte *_palettePixels;
public:
GraphicsManager(HopkinsEngine *vm);
~GraphicsManager();
-
+
void clearPalette();
void clearScreen();
void clearVesaScreen();
@@ -135,6 +137,9 @@ public:
void addRectToArray(Common::Array<Common::Rect> &rects, const Common::Rect &newRect);
void displayDirtyRects();
void displayRefreshRects();
+ void displayZones();
+ void displayLines();
+ void displayDebugRect(Graphics::Surface *surface, const Common::Rect &srcRect, uint32 color = 0xffffff);
void copySurface(const byte *surface, int x1, int y1, int width, int height, byte *destSurface, int destX, int destY);
void loadImage(const Common::String &file);
void loadVgaImage(const Common::String &file);
diff --git a/engines/hopkins/hopkins.cpp b/engines/hopkins/hopkins.cpp
index bf9509c0d4..0d40f69e8f 100644
--- a/engines/hopkins/hopkins.cpp
+++ b/engines/hopkins/hopkins.cpp
@@ -39,6 +39,7 @@ HopkinsEngine *g_vm;
HopkinsEngine::HopkinsEngine(OSystem *syst, const HopkinsGameDescription *gameDesc) : Engine(syst),
_gameDescription(gameDesc), _randomSource("Hopkins") {
+ DebugMan.addDebugChannel(kDebugPath, "Path", "Pathfinding debug level");
g_vm = this;
_animMan = new AnimationManager(this);
_computer = new ComputerManager(this);
@@ -172,7 +173,7 @@ bool HopkinsEngine::runWin95Demo() {
_globals->_characterSpriteBuf = _fileIO->loadFile("PERSO.SPR");
}
- _globals->_characterType = 0;
+ _globals->_characterType = CHARACTER_HOPKINS;
_objectsMan->_mapCarPosX = _objectsMan->_mapCarPosY = 0;
memset(_globals->_saveData, 0, 2000);
_globals->_exitId = 0;
@@ -230,9 +231,9 @@ bool HopkinsEngine::runWin95Demo() {
_graphicsMan->clearScreen();
_graphicsMan->clearPalette();
if (!_globals->_censorshipFl)
- _animMan->playAnim("BANQUE.ANM", 200, 28, 200);
+ _animMan->playAnim("BANQUE.ANM", "BANKUK.ANM", 200, 28, 200);
else
- _animMan->playAnim("BANKUK.ANM", 200, 28, 200);
+ _animMan->playAnim("BANQUE.ANM", "BANKUK.ANM", 200, 28, 200);
_soundMan->_specialSoundNum = 0;
_soundMan->removeSample(1);
_soundMan->removeSample(2);
@@ -394,7 +395,7 @@ bool HopkinsEngine::runWin95Demo() {
_globals->_eventMode = EVENTMODE_ALT; // CHECKME!
_graphicsMan->clearScreen();
_graphicsMan->clearPalette();
- _animMan->playAnim("JOUR1A.anm", 12, 12, 2000);
+ _animMan->playAnim("JOUR1A.ANM", "JOUR1A.ANM", 12, 12, 2000);
_globals->_eventMode = EVENTMODE_DEFAULT;
_globals->_exitId = 300;
break;
@@ -417,7 +418,7 @@ bool HopkinsEngine::runWin95Demo() {
_globals->_eventMode = EVENTMODE_ALT; // CHECKME!
_graphicsMan->clearScreen();
_graphicsMan->clearPalette();
- _animMan->playAnim("JOUR4A.anm", 12, 12, 2000);
+ _animMan->playAnim("JOUR4A.ANM", "JOUR4A.ANM", 12, 12, 2000);
_globals->_eventMode = EVENTMODE_DEFAULT;
_globals->_exitId = 300;
break;
@@ -453,7 +454,7 @@ bool HopkinsEngine::runLinuxDemo() {
_globals->_eventMode = EVENTMODE_DEFAULT;
_globals->_characterSpriteBuf = _fileIO->loadFile("PERSO.SPR");
- _globals->_characterType = 0;
+ _globals->_characterType = CHARACTER_HOPKINS;
_objectsMan->_mapCarPosX = _objectsMan->_mapCarPosY = 0;
memset(_globals->_saveData, 0, 2000);
_globals->_exitId = 0;
@@ -529,9 +530,9 @@ bool HopkinsEngine::runLinuxDemo() {
_graphicsMan->_fadingFl = true;
if (!_globals->_censorshipFl)
- _animMan->playAnim("BANQUE.ANM", 200, 28, 200);
+ _animMan->playAnim("BANQUE.ANM", "BANKUK.ANM", 200, 28, 200);
else
- _animMan->playAnim("BANKUK.ANM", 200, 28, 200);
+ _animMan->playAnim("BANKUK.ANM", "BANQUE.ANM", 200, 28, 200);
_soundMan->_specialSoundNum = 0;
_soundMan->removeSample(1);
_soundMan->removeSample(2);
@@ -705,7 +706,7 @@ bool HopkinsEngine::runLinuxDemo() {
_graphicsMan->clearScreen();
_graphicsMan->clearPalette();
_graphicsMan->_fadingFl = true;
- _animMan->playAnim("JOUR1A.anm", 12, 12, 2000);
+ _animMan->playAnim("JOUR1A.ANM", "JOUR1A.ANM", 12, 12, 2000);
_globals->_eventMode = EVENTMODE_DEFAULT;
_globals->_exitId = 300;
break;
@@ -717,7 +718,7 @@ bool HopkinsEngine::runLinuxDemo() {
_graphicsMan->clearScreen();
_graphicsMan->clearPalette();
_graphicsMan->_fadingFl = true;
- _animMan->playAnim("JOUR3A.anm", 12, 12, 2000);
+ _animMan->playAnim("JOUR3A.ANM", "JOUR3A.ANM", 12, 12, 2000);
_globals->_eventMode = EVENTMODE_DEFAULT;
_globals->_exitId = 300;
break;
@@ -729,7 +730,7 @@ bool HopkinsEngine::runLinuxDemo() {
_graphicsMan->clearScreen();
_graphicsMan->clearPalette();
_graphicsMan->_fadingFl = true;
- _animMan->playAnim("JOUR4A.anm", 12, 12, 2000);
+ _animMan->playAnim("JOUR4A.ANM", "JOUR4A.ANM", 12, 12, 2000);
_globals->_eventMode = EVENTMODE_DEFAULT;
_globals->_exitId = 300;
break;
@@ -790,18 +791,21 @@ bool HopkinsEngine::runFull() {
_globals->_speed = 2;
_globals->_eventMode = EVENTMODE_IGNORE;
_graphicsMan->_fadingFl = true;
- _animMan->playAnim("MP.ANM", 10, 16, 200);
+ _animMan->playAnim("MP.ANM", "MP.ANM", 10, 16, 200);
} else {
- _animMan->playAnim("MP.ANM", 10, 16, 200);
+ _animMan->playAnim("MP.ANM", "MP.ANM", 10, 16, 200);
_graphicsMan->fadeOutLong();
}
}
+ _events->mouseOff();
+
if (!_events->_escKeyFl && _startGameSlot == -1) {
playIntro();
if (shouldQuit())
return false;
}
+
if (getPlatform() != Common::kPlatformLinux && _startGameSlot == -1) {
_graphicsMan->fadeOutShort();
_graphicsMan->loadImage("H2");
@@ -811,14 +815,17 @@ bool HopkinsEngine::runFull() {
}
_globals->_eventMode = EVENTMODE_DEFAULT;
_globals->_characterSpriteBuf = _fileIO->loadFile("PERSO.SPR");
- _globals->_characterType = 0;
+ _globals->_characterType = CHARACTER_HOPKINS;
_objectsMan->_mapCarPosX = _objectsMan->_mapCarPosY = 0;
memset(_globals->_saveData, 0, 2000);
_globals->_exitId = 0;
- if (_startGameSlot != -1)
+
+ if (_startGameSlot != -1) {
+ _soundMan->playSound(28);
_saveLoad->loadGame(_startGameSlot);
+ }
for (;;) {
if (_globals->_exitId == 300)
@@ -870,11 +877,11 @@ bool HopkinsEngine::runFull() {
_graphicsMan->_fadingFl = true;
if (!_globals->_censorshipFl)
- _animMan->playAnim("BANQUE.ANM", 200, 28, 200);
+ _animMan->playAnim("BANQUE.ANM", "BANKUK.ANM", 200, 28, 200);
else
- _animMan->playAnim("BANKUK.ANM", 200, 28, 200);
+ _animMan->playAnim("BANKUK.ANM", "BANQUE.ANM", 200, 28, 200);
} else {
- _animMan->playAnim("BANQUE.ANM", 200, 28, 200);
+ _animMan->playAnim("BANQUE.ANM", "BANKUK.ANM", 200, 28, 200);
}
_soundMan->_specialSoundNum = 0;
@@ -1002,14 +1009,14 @@ bool HopkinsEngine::runFull() {
if (getPlatform() == Common::kPlatformLinux) {
_soundMan->playSound(29);
_graphicsMan->_fadingFl = true;
- _animMan->playAnim("PURG1A.ANM", 12, 18, 50);
+ _animMan->playAnim("PURG1A.ANM", "PURG1.ANM", 12, 18, 50);
} else if (getPlatform() == Common::kPlatformWindows) {
_soundMan->playSound(29);
- _animMan->playAnim("PURG1A.ANM", 12, 18, 50);
+ _animMan->playAnim("PURG1A.ANM", "PURG1.ANM", 12, 18, 50);
_graphicsMan->fadeOutShort();
} else {
_soundMan->playSound(6);
- _animMan->playAnim("PURG1A.ANM", 12, 18, 50);
+ _animMan->playAnim("PURG1A.ANM", "PURG1.ANM", 12, 18, 50);
_graphicsMan->fadeOutShort();
}
_globals->_eventMode = EVENTMODE_DEFAULT;
@@ -1046,7 +1053,7 @@ bool HopkinsEngine::runFull() {
_soundMan->playSound(6);
if (getPlatform() == Common::kPlatformLinux)
_graphicsMan->_fadingFl = true;
- _animMan->playAnim("PURG2A.ANM", 12, 18, 50);
+ _animMan->playAnim("PURG2A.ANM", "PURG2.ANM", 12, 18, 50);
if (getPlatform() != Common::kPlatformLinux)
_graphicsMan->fadeOutShort();
_globals->_eventMode = EVENTMODE_DEFAULT;
@@ -1408,7 +1415,7 @@ bool HopkinsEngine::runFull() {
_graphicsMan->clearScreen();
_graphicsMan->clearPalette();
_soundMan->playSound(6);
- _animMan->playAnim("PURG1A.ANM", 12, 18, 50);
+ _animMan->playAnim("PURG1A.ANM", "PURG1.ANM", 12, 18, 50);
_graphicsMan->fadeOutShort();
_globals->_eventMode = EVENTMODE_DEFAULT;
}
@@ -1480,7 +1487,7 @@ bool HopkinsEngine::runFull() {
_graphicsMan->clearPalette();
if (getPlatform() == Common::kPlatformLinux)
_graphicsMan->_fadingFl = true;
- _animMan->playAnim("JOUR1A.ANM", 12, 12, 2000);
+ _animMan->playAnim("JOUR1A.ANM", "JOUR1A.ANM", 12, 12, 2000);
_globals->_eventMode = EVENTMODE_DEFAULT;
_globals->_exitId = 300;
break;
@@ -1492,7 +1499,7 @@ bool HopkinsEngine::runFull() {
_graphicsMan->clearPalette();
if (getPlatform() == Common::kPlatformLinux)
_graphicsMan->_fadingFl = true;
- _animMan->playAnim("JOUR3A.ANM", 12, 12, 2000);
+ _animMan->playAnim("JOUR3A.ANM", "JOUR3A.ANM", 12, 12, 2000);
_globals->_eventMode = EVENTMODE_DEFAULT;
_globals->_exitId = 300;
break;
@@ -1504,7 +1511,7 @@ bool HopkinsEngine::runFull() {
_graphicsMan->clearPalette();
if (getPlatform() == Common::kPlatformLinux)
_graphicsMan->_fadingFl = true;
- _animMan->playAnim("JOUR4A.ANM", 12, 12, 2000);
+ _animMan->playAnim("JOUR4A.ANM", "JOUR4A.ANM", 12, 12, 2000);
_globals->_eventMode = EVENTMODE_DEFAULT;
_globals->_exitId = 300;
break;
@@ -1523,7 +1530,7 @@ bool HopkinsEngine::runFull() {
//_globals->_exitId = WBASE(); // Handles the 3D Doom level (Windows)
_soundMan->stopSound();
_globals->_characterSpriteBuf = _fileIO->loadFile("PERSO.SPR");
- _globals->_characterType = 0;
+ _globals->_characterType = CHARACTER_HOPKINS;
_globals->_eventMode = EVENTMODE_DEFAULT;
_graphicsMan->_lineNbr = SCREEN_WIDTH;
break;
@@ -1534,10 +1541,6 @@ bool HopkinsEngine::runFull() {
return true;
}
-bool HopkinsEngine::shouldQuit() const {
- return g_system->getEventManager()->shouldQuit();
-}
-
int HopkinsEngine::getRandomNumber(int maxNumber) {
return _randomSource.getRandomNumber(maxNumber);
}
@@ -1599,22 +1602,25 @@ void HopkinsEngine::playIntro() {
_events->refreshScreenAndEvents();
_soundMan->playSound(16);
_animMan->setClearAnimFlag();
- _animMan->playAnim("J1.anm", 12, 12, 50);
+
+ _animMan->playAnim("J1.ANM", "J1.ANM", 12, 12, 50);
if (shouldQuit() || _events->_escKeyFl)
return;
-
+ _events->mouseOff();
_soundMan->mixVoice(1, 3);
- _animMan->playAnim("J2.anm", 12, 12, 50);
+ _animMan->playAnim("J2.ANM", "J2.ANM", 12, 12, 50);
if (shouldQuit() || _events->_escKeyFl)
return;
+ _events->mouseOff();
_soundMan->mixVoice(2, 3);
- _animMan->playAnim("J3.anm", 12, 12, 50);
+ _animMan->playAnim("J3.ANM", "J3.ANM", 12, 12, 50);
if (shouldQuit() || _events->_escKeyFl)
return;
+ _events->mouseOff();
_soundMan->mixVoice(3, 3);
_graphicsMan->clearScreen();
_graphicsMan->clearPalette();
@@ -1694,7 +1700,7 @@ void HopkinsEngine::playIntro() {
_soundMan->_specialSoundNum = 5;
_graphicsMan->_fadingFl = true;
- _animMan->playAnim("ELEC.ANM", 10, 26, 200);
+ _animMan->playAnim("ELEC.ANM", "ELEC.ANM", 10, 26, 200);
_soundMan->_specialSoundNum = 0;
if (shouldQuit() || _events->_escKeyFl)
@@ -1781,22 +1787,22 @@ void HopkinsEngine::playIntro() {
_soundMan->playSound(3);
_soundMan->_specialSoundNum = 1;
_animMan->setClearAnimFlag();
- _animMan->playAnim("INTRO1.anm", 10, 24, 18);
+ _animMan->playAnim("INTRO1.ANM", "INTRO1.ANM", 10, 24, 18);
_soundMan->_specialSoundNum = 0;
if (shouldQuit() || _events->_escKeyFl)
return;
- _animMan->playAnim("INTRO2.anm", 10, 24, 18);
+ _animMan->playAnim("INTRO2.ANM", "INTRO2.ANM", 10, 24, 18);
if (shouldQuit() || _events->_escKeyFl)
return;
- _animMan->playAnim("INTRO3.anm", 10, 24, 200);
+ _animMan->playAnim("INTRO3.ANM", "INTRO3.ANM", 10, 24, 200);
if (shouldQuit() || _events->_escKeyFl)
return;
_graphicsMan->_fadingFl = true;
_animMan->unsetClearAnimFlag();
- _animMan->playAnim("J4.anm", 12, 12, 1000);
+ _animMan->playAnim("J4.ANM", "J4.ANM", 12, 12, 1000);
break;
}
}
@@ -1855,7 +1861,7 @@ void HopkinsEngine::bombExplosion() {
_globals->_eventMode = EVENTMODE_IGNORE;
_soundMan->_specialSoundNum = 199;
_graphicsMan->_fadingFl = true;
- _animMan->playAnim("BOMBE2A.ANM", 50, 14, 500);
+ _animMan->playAnim("BOMBE2A.ANM", "BOMBE2.ANM", 50, 14, 500);
_soundMan->_specialSoundNum = 0;
_graphicsMan->loadImage("IM15");
_animMan->loadAnim("ANIM15");
@@ -1889,7 +1895,10 @@ void HopkinsEngine::bombExplosion() {
}
void HopkinsEngine::restoreSystem() {
- quitGame();
+ // If the game isn't alerady trying to quit, flag that quitting is needed
+ if (!shouldQuit())
+ quitGame();
+
_events->refreshEvents();
}
@@ -1962,31 +1971,31 @@ void HopkinsEngine::playSubmarineCutscene() {
_graphicsMan->clearPalette();
_soundMan->playSound(25);
_animMan->setClearAnimFlag();
- _animMan->playAnim("base00a.anm", 10, 18, 18);
+ _animMan->playAnim("BASE00A.ANM", "BASE00.ANM", 10, 18, 18);
if (!_events->_escKeyFl)
- _animMan->playAnim("base05a.anm", 10, 18, 18);
+ _animMan->playAnim("BASE05A.ANM", "BASE05.ANM", 10, 18, 18);
if (!_events->_escKeyFl)
- _animMan->playAnim("base10a.anm", 10, 18, 18);
+ _animMan->playAnim("BASE10A.ANM", "BASE10.ANM", 10, 18, 18);
if (!_events->_escKeyFl)
- _animMan->playAnim("base20a.anm", 10, 18, 18);
+ _animMan->playAnim("BASE20A.ANM", "BASE20.ANM", 10, 18, 18);
// CHECKME: The original code was doing the opposite test, which was a bug.
if (!_events->_escKeyFl)
- _animMan->playAnim("base30a.anm", 10, 18, 18);
+ _animMan->playAnim("BASE30A.ANM", "BASE30.ANM", 10, 18, 18);
if (!_events->_escKeyFl)
- _animMan->playAnim("base40a.anm", 10, 18, 18);
+ _animMan->playAnim("BASE40A.ANM", "BASE40.ANM", 10, 18, 18);
if (!_events->_escKeyFl)
- _animMan->playAnim("base50a.anm", 10, 18, 18);
+ _animMan->playAnim("BASE50A.ANM", "BASE50.ANM", 10, 18, 18);
if (!_events->_escKeyFl)
- _animMan->playAnim("OC00a.anm", 10, 18, 18);
+ _animMan->playAnim("OC00A.ANM", "OC00.ANM", 10, 18, 18);
if (!_events->_escKeyFl)
- _animMan->playAnim("OC05a.anm", 10, 18, 18);
+ _animMan->playAnim("OC05A.ANM", "OC05.ANM", 10, 18, 18);
if (!_events->_escKeyFl)
- _animMan->playAnim("OC10a.anm", 10, 18, 18);
+ _animMan->playAnim("OC10A.ANM", "OC10.ANM", 10, 18, 18);
if (!_events->_escKeyFl)
- _animMan->playAnim("OC20a.anm", 10, 18, 18);
+ _animMan->playAnim("OC20A.ANM", "OC20.ANM", 10, 18, 18);
if (!_events->_escKeyFl) {
_graphicsMan->_fadingFl = true;
- _animMan->playAnim("OC30a.anm", 10, 18, 18);
+ _animMan->playAnim("OC30A.ANM", "OC30.ANM", 10, 18, 18);
}
_events->_escKeyFl = false;
@@ -2108,7 +2117,7 @@ void HopkinsEngine::playEnding() {
_soundMan->_specialSoundNum = 200;
_soundMan->_skipRefreshFl = true;
_graphicsMan->_fadingFl = true;
- _animMan->playAnim("BERM.ANM", 100, 24, 300);
+ _animMan->playAnim("BERM.ANM", "BERM.ANM", 100, 24, 300);
_graphicsMan->endDisplayBob();
_soundMan->removeSample(1);
_graphicsMan->loadImage("PLAN3");
@@ -2125,15 +2134,16 @@ void HopkinsEngine::playEnding() {
_globals->_eventMode = EVENTMODE_IGNORE;
_soundMan->_specialSoundNum = 0;
_graphicsMan->_fadingFl = true;
- _animMan->playAnim("JOUR2A.anm", 12, 12, 1000);
+ _animMan->playAnim("JOUR2A.anm", "JOUR2A.anm", 12, 12, 1000);
_soundMan->playSound(11);
_graphicsMan->clearScreen();
_graphicsMan->clearPalette();
- _animMan->playAnim("FF1a.anm", 18, 18, 9);
- _animMan->playAnim("FF1a.anm", 9, 18, 9);
- _animMan->playAnim("FF1a.anm", 9, 18, 18);
- _animMan->playAnim("FF1a.anm", 9, 18, 9);
- _animMan->playAnim("FF2a.anm", 24, 24, 100);
+ _animMan->playAnim("FF1a.anm", "FF1.anm", 18, 18, 9);
+ _animMan->playAnim("FF1a.anm", "FF1.anm", 9, 18, 9);
+ _animMan->playAnim("FF1a.anm", "FF1.anm", 9, 18, 18);
+ _animMan->playAnim("FF1a.anm", "FF1.anm", 9, 18, 9);
+ _animMan->playAnim("FF2a.anm", "FF2.anm", 24, 24, 100);
+ _events->mouseOff();
displayCredits();
_globals->_eventMode = EVENTMODE_DEFAULT;
_globals->_exitId = 300;
@@ -2142,7 +2152,7 @@ void HopkinsEngine::playEnding() {
} else {
_soundMan->_specialSoundNum = 200;
_soundMan->_skipRefreshFl = true;
- _animMan->playAnim2("BERM.ANM", 100, 24, 300);
+ _animMan->playAnim2("BERM.ANM", "BERM.ANM", 100, 24, 300);
_objectsMan->stopBobAnimation(7);
_objectsMan->setBobAnimation(8);
_globals->_introSpeechOffFl = true;
@@ -2167,12 +2177,12 @@ void HopkinsEngine::playEnding() {
_soundMan->_specialSoundNum = 0;
_dialog->enableInvent();
_globals->_disableInventFl = false;
- _animMan->playAnim("JOUR4A.anm", 12, 12, 1000);
+ _animMan->playAnim("JOUR4A.ANM", "JOUR4A.ANM", 12, 12, 1000);
_globals->_eventMode = EVENTMODE_DEFAULT;
_globals->_exitId = 300;
}
_globals->_characterSpriteBuf = _fileIO->loadFile("PERSO.SPR");
- _globals->_characterType = 0;
+ _globals->_characterType = CHARACTER_HOPKINS;
_globals->_eventMode = EVENTMODE_DEFAULT;
}
@@ -2183,36 +2193,36 @@ void HopkinsEngine::playPlaneCutscene() {
_graphicsMan->clearPalette();
_animMan->unsetClearAnimFlag();
- _animMan->playAnim("aerop00a.anm", 10, 18, 18);
+ _animMan->playAnim("AEROP00A.ANM", "AEROP00.ANM", 10, 18, 18);
if (!_events->_escKeyFl)
- _animMan->playAnim("serop10a.anm", 10, 18, 18);
+ _animMan->playAnim("SEROP10A.ANM", "SEROP10A.ANM", 10, 18, 18);
if (!_events->_escKeyFl)
- _animMan->playAnim("aerop20a.anm", 10, 18, 18);
+ _animMan->playAnim("AEROP20A.ANM", "AEROP20.ANM", 10, 18, 18);
if (!_events->_escKeyFl)
- _animMan->playAnim("aerop30a.anm", 10, 18, 18);
+ _animMan->playAnim("AEROP30A.ANM", "AEROP30.ANM", 10, 18, 18);
if (!_events->_escKeyFl)
- _animMan->playAnim("aerop40a.anm", 10, 18, 18);
+ _animMan->playAnim("AEROP40A.ANM", "AEROP40.ANM", 10, 18, 18);
if (!_events->_escKeyFl)
- _animMan->playAnim("aerop50a.anm", 10, 18, 18);
+ _animMan->playAnim("AEROP50A.ANM", "AEROP50.ANM", 10, 18, 18);
if (!_events->_escKeyFl)
- _animMan->playAnim("aerop60a.anm", 10, 18, 18);
+ _animMan->playAnim("AEROP60A.ANM", "AEROP60.ANM", 10, 18, 18);
if (!_events->_escKeyFl)
- _animMan->playAnim("aerop70a.anm", 10, 18, 18);
+ _animMan->playAnim("AEROP70A.ANM", "AEROP70.ANM", 10, 18, 18);
if (!_events->_escKeyFl)
- _animMan->playAnim("trans00a.anm", 10, 18, 18);
+ _animMan->playAnim("TRANS00A.ANM", "TRANS00.ANM", 10, 18, 18);
if (!_events->_escKeyFl)
- _animMan->playAnim("trans10a.anm", 10, 18, 18);
+ _animMan->playAnim("TRANS10A.ANM", "TRANS10.ANM", 10, 18, 18);
if (!_events->_escKeyFl)
- _animMan->playAnim("trans15a.anm", 10, 18, 18);
+ _animMan->playAnim("TRANS15A.ANM", "TRANS15.ANM", 10, 18, 18);
if (!_events->_escKeyFl)
- _animMan->playAnim("trans20a.anm", 10, 18, 18);
+ _animMan->playAnim("TRANS20A.ANM", "TRANS20.ANM", 10, 18, 18);
if (!_events->_escKeyFl)
- _animMan->playAnim("trans30a.anm", 10, 18, 18);
+ _animMan->playAnim("TRANS30A.ANM", "TRANS30.ANM", 10, 18, 18);
if (!_events->_escKeyFl)
- _animMan->playAnim("trans40a.anm", 10, 18, 18);
+ _animMan->playAnim("TRANS40A.ANM", "TRANS40.ANM", 10, 18, 18);
if (!_events->_escKeyFl) {
_graphicsMan->_fadingFl = true;
- _animMan->playAnim("PARA00a.anm", 9, 9, 9);
+ _animMan->playAnim("PARA00A.ANM", "PARA00.ANM", 9, 9, 9);
}
_events->_escKeyFl = false;
@@ -2353,21 +2363,34 @@ void HopkinsEngine::loadCredits() {
_globals->_creditsPosY = 440;
_globals->_creditsStep = 45;
byte *bufPtr;
+ Common::String filename;
switch (_globals->_language) {
case LANG_EN:
- bufPtr = _fileIO->loadFile("CREAN.TXT");
+ filename = "CREAN.TXT";
break;
case LANG_FR:
- bufPtr = _fileIO->loadFile("CREFR.TXT");
+ filename = "CREFR.TXT";
break;
case LANG_SP:
- bufPtr = _fileIO->loadFile("CREES.TXT");
+ filename = "CREES.TXT";
break;
default:
error("Unhandled language");
break;
}
+ if (!_fileIO->fileExists(filename)) {
+ _globals->_creditsLineNumb = 1;
+ _globals->_creditsItem[0]._color = '1';
+ _globals->_creditsItem[0]._actvFl = true;
+ _globals->_creditsItem[0]._linePosY = _globals->_creditsPosY;
+ strcpy((char *)_globals->_creditsItem[0]._line, "The End");
+ _globals->_creditsItem[0]._lineSize = 7;
+ return;
+ }
+
+ bufPtr = _fileIO->loadFile(filename);
+
byte *curPtr = bufPtr;
int idxLines = 0;
bool loopCond = false;
@@ -2441,13 +2464,14 @@ void HopkinsEngine::displayCredits() {
_globals->_eventMode = EVENTMODE_CREDITS;
_globals->_creditsStartX = _globals->_creditsEndX = _globals->_creditsStartY = _globals->_creditsEndY = -1;
int soundId = 28;
+
do {
for (int i = 0; i < _globals->_creditsLineNumb; ++i) {
if (_globals->_creditsItem[i]._actvFl) {
int nextY = _globals->_creditsPosY + i * _globals->_creditsStep;
_globals->_creditsItem[i]._linePosY = nextY;
- if ((nextY - 21 >= 0) && (nextY - 21 <= 418)) {
+ if ((nextY >= 51) && (nextY <= 460)) {
int col = 0;
switch (_globals->_creditsItem[i]._color) {
case '1':
@@ -2472,7 +2496,7 @@ void HopkinsEngine::displayCredits() {
--_globals->_creditsPosY;
if (_globals->_creditsStartX != -1 || _globals->_creditsEndX != -1 || _globals->_creditsStartY != -1 || _globals->_creditsEndY != -1) {
_events->refreshScreenAndEvents();
- _graphicsMan->copySurface(_graphicsMan->_backBuffer, 60, 50, 520, 380, _graphicsMan->_frontBuffer, 60, 50);
+ _graphicsMan->copySurface(_graphicsMan->_backBuffer, 60, 50, 520, 430, _graphicsMan->_frontBuffer, 60, 50);
} else {
_events->refreshScreenAndEvents();
}
@@ -2800,7 +2824,7 @@ void HopkinsEngine::handleOceanMaze(int16 curExitId, Common::String backgroundFi
_objectsMan->removeSprite(0);
_objectsMan->clearScreen();
_globals->_characterSpriteBuf = _fileIO->loadFile("PERSO.SPR");
- _globals->_characterType = 0;
+ _globals->_characterType = CHARACTER_HOPKINS;
}
void HopkinsEngine::syncSoundSettings() {
diff --git a/engines/hopkins/hopkins.h b/engines/hopkins/hopkins.h
index 499f0c466d..86f15cc7cb 100644
--- a/engines/hopkins/hopkins.h
+++ b/engines/hopkins/hopkins.h
@@ -59,14 +59,6 @@
*/
namespace Hopkins {
-enum {
- kHopkinsDebugAnimations = 1 << 0,
- kHopkinsDebugActions = 1 << 1,
- kHopkinsDebugSound = 1 << 2,
- kHopkinsDebugMusic = 1 << 3,
- kHopkinsDebugScripts = 1 << 4
-};
-
#define DEBUG_BASIC 1
#define DEBUG_INTERMEDIATE 2
#define DEBUG_DETAILED 3
@@ -74,7 +66,9 @@ enum {
#define SCREEN_WIDTH 640
#define SCREEN_HEIGHT 480
-#define MAX_LINES 400
+enum HopkinsDebugChannels {
+ kDebugPath = 1 << 0
+};
/**
* A wrapper macro used around three character constants, like 'END', to
@@ -169,7 +163,6 @@ public:
Common::Platform getPlatform() const;
uint16 getVersion() const;
bool getIsDemo() const;
- bool shouldQuit() const;
int getRandomNumber(int maxNumber);
Common::String generateSaveName(int slotNumber);
diff --git a/engines/hopkins/lines.cpp b/engines/hopkins/lines.cpp
index 6603708449..e6d5e5ca7f 100644
--- a/engines/hopkins/lines.cpp
+++ b/engines/hopkins/lines.cpp
@@ -33,10 +33,11 @@ namespace Hopkins {
LinesManager::LinesManager(HopkinsEngine *vm) {
_vm = vm;
- for (int i = 0; i < MAX_LINES; ++i) {
+ for (int i = 0; i < MAX_LINES + 1; ++i)
Common::fill((byte *)&_zoneLine[i], (byte *)&_zoneLine[i] + sizeof(LigneZoneItem), 0);
+
+ for (int i = 0; i < MAX_LINES; ++i)
Common::fill((byte *)&_lineItem[i], (byte *)&_lineItem[i] + sizeof(LigneItem), 0);
- }
for (int i = 0; i < 4000; ++i)
Common::fill((byte *)&_smoothRoute[i], (byte *)&_smoothRoute[i] + sizeof(SmoothItem), 0);
@@ -98,6 +99,7 @@ LinesManager::~LinesManager() {
}
int LigneItem::appendToRouteInc(int from, int to, RouteItem *route, int index) {
+ debugC(5, kDebugPath, "appendToRouteInc(%d, %d, route, %d)", from, to, index);
if (to == -1)
to = _lineDataEndIdx;
@@ -105,7 +107,9 @@ int LigneItem::appendToRouteInc(int from, int to, RouteItem *route, int index) {
route[index++].set(_lineData[2*i], _lineData[2*i+1], _directionRouteInc);
return index;
}
+
int LigneItem::appendToRouteDec(int from, int to, RouteItem *route, int index) {
+ debugC(5, kDebugPath, "appendToRouteDecc(%d, %d, route, %d)", from, to, index);
if (from == -1)
from = _lineDataEndIdx - 1;
@@ -118,6 +122,7 @@ int LigneItem::appendToRouteDec(int from, int to, RouteItem *route, int index) {
* Load lines
*/
void LinesManager::loadLines(const Common::String &file) {
+ debugC(5, kDebugPath, "loadLines(%s)", file.c_str());
resetLines();
_linesNumb = 0;
_lastLine = 0;
@@ -139,6 +144,7 @@ void LinesManager::loadLines(const Common::String &file) {
* Returns the ID of the hotspot under mouse
*/
int LinesManager::checkInventoryHotspots(int posX, int posY) {
+ debugC(5, kDebugPath, "checkInventoryHotspots(%d, %d)", posX, posY);
int hotspotId = 0;
if (posY >= 120 && posY <= 153)
hotspotId = checkInventoryHotspotsRow(posX, 1, false);
@@ -165,6 +171,7 @@ int LinesManager::checkInventoryHotspots(int posX, int posY) {
* Returns the hotspot Id under the mouse, if any.
*/
int LinesManager::checkInventoryHotspotsRow(int posX, int minZoneNum, bool lastRow) {
+ debugC(5, kDebugPath, "checkInventoryHotspotsRow(%d, %d, %d)", posX, minZoneNum, lastRow ? 1 : 0);
int result = minZoneNum;
if (posX >= _vm->_graphicsMan->_scrollOffset + 158 && posX < _vm->_graphicsMan->_scrollOffset + 208)
@@ -202,13 +209,14 @@ int LinesManager::checkInventoryHotspotsRow(int posX, int minZoneNum, bool lastR
* Add Zone Line
*/
void LinesManager::addZoneLine(int idx, int fromX, int fromY, int destX, int destY, int bobZoneIdx) {
+ debugC(5, kDebugPath, "addZoneLine(%d, %d, %d, %d, %d, %d)", idx, fromX, fromY, destX, destY, bobZoneIdx);
int16 *zoneData;
if (fromX == fromY && fromY == destX && fromY == destY) {
_bobZoneFl[bobZoneIdx] = true;
_bobZone[bobZoneIdx] = fromY;
} else {
- assert (idx <= MAX_LINES);
+ assert(idx < MAX_LINES + 1);
_zoneLine[idx]._zoneData = (int16 *)_vm->_globals->freeMemory((byte *)_zoneLine[idx]._zoneData);
int distX = abs(fromX - destX);
@@ -252,7 +260,8 @@ void LinesManager::addZoneLine(int idx, int fromX, int fromY, int destX, int des
* Add Line
*/
void LinesManager::addLine(int lineIdx, Directions direction, int fromX, int fromY, int destX, int destY) {
- assert (lineIdx <= MAX_LINES);
+ debugC(5, kDebugPath, "addLine(%d, %d, %d, %d, %d, %d)", lineIdx, direction, fromX, fromY, destX, destY);
+ assert(lineIdx < MAX_LINES);
if (_linesNumb < lineIdx)
_linesNumb = lineIdx;
@@ -265,7 +274,7 @@ void LinesManager::addLine(int lineIdx, Directions direction, int fromX, int fro
maxDist = distX;
byte *zoneData = _vm->_globals->allocMemory(4 * maxDist + 8);
- assert (zoneData);
+ assert(zoneData);
Common::fill(zoneData, zoneData + 4 * maxDist + 8, 0);
_lineItem[lineIdx]._lineData = (int16 *)zoneData;
@@ -366,6 +375,7 @@ void LinesManager::addLine(int lineIdx, Directions direction, int fromX, int fro
* Check collision line
*/
bool LinesManager::checkCollisionLine(int xp, int yp, int *foundDataIdx, int *foundLineIdx, int startLineIdx, int endLineIdx) {
+ debugC(5, kDebugPath, "checkCollisionLine(%d, %d, foundDataIdx, foundLineIdx, %d, %d)", xp, yp, startLineIdx ,endLineIdx);
int16 *lineData;
int left = xp + 4;
@@ -425,6 +435,7 @@ bool LinesManager::checkCollisionLine(int xp, int yp, int *foundDataIdx, int *fo
* Init route
*/
void LinesManager::initRoute() {
+ debugC(5, kDebugPath, "initRoute()");
int lineX = _lineItem[0]._lineData[0];
int lineY = _lineItem[0]._lineData[1];
@@ -461,6 +472,7 @@ void LinesManager::initRoute() {
// Avoid obstacle
int LinesManager::avoidObstacle(int lineIdx, int lineDataIdx, int routeIdx, int destLineIdx, int destLineDataIdx, RouteItem *route) {
+ debugC(5, kDebugPath, "avoidObstacle(%d, %d, %d, %d, %d, route)", lineIdx, lineDataIdx, routeIdx, destLineIdx, destLineDataIdx);
int curLineIdx = lineIdx;
int curLineDataIdx = lineDataIdx;
int curRouteIdx = routeIdx;
@@ -492,6 +504,7 @@ int LinesManager::avoidObstacle(int lineIdx, int lineDataIdx, int routeIdx, int
// Avoid Obstacle, taking into account start/End lind Idx
int LinesManager::avoidObstacleOnSegment(int lineIdx, int lineDataIdx, int routeIdx, int destLineIdx, int destLineDataIdx, RouteItem *route, int startLineIdx, int endLineIdx) {
+ debugC(5, kDebugPath, "avoidObstacleOnSegment(%d, %d, %d, %d, %d, route, %d, %d)", lineIdx, lineDataIdx, routeIdx, destLineIdx, destLineDataIdx, startLineIdx, endLineIdx);
int curLineIdx = lineIdx;
int curLineDataIdx = lineDataIdx;
int curRouteIdx = routeIdx;
@@ -534,6 +547,7 @@ int LinesManager::avoidObstacleOnSegment(int lineIdx, int lineDataIdx, int route
}
bool LinesManager::MIRACLE(int fromX, int fromY, int lineIdx, int destLineIdx, int routeIdx) {
+ debugC(5, kDebugPath, "MIRACLE(%d, %d, %d, %d, %d)", fromX, fromY, lineIdx, destLineIdx, routeIdx);
int newLinesDataIdx = 0;
int newLinesIdx = 0;
int lineIdxLeft = 0;
@@ -775,6 +789,7 @@ bool LinesManager::MIRACLE(int fromX, int fromY, int lineIdx, int destLineIdx, i
}
int LinesManager::computeRouteIdx(int lineIdx, int dataIdx, int fromX, int fromY, int destX, int destY, int routerIdx, RouteItem *route) {
+ debugC(5, kDebugPath, "computeRouteIdx(%d, %d, %d, %d, %d, %d, %d)", lineIdx, dataIdx, fromX, fromY, destX, destY, routerIdx);
int result = routerIdx;
++_pathFindingMaxDepth;
if (_pathFindingMaxDepth > 10) {
@@ -1075,6 +1090,7 @@ int LinesManager::computeRouteIdx(int lineIdx, int dataIdx, int fromX, int fromY
// Find Route from a point to the other
RouteItem *LinesManager::findRoute(int fromX, int fromY, int destX, int destY) {
+ debugC(5, kDebugPath, "findRoute(%d, %d, %d, %d)", fromX, fromY, destX, destY);
int foundLineIdx;
int foundDataIdx;
int curLineY = 0;
@@ -1502,6 +1518,7 @@ RouteItem *LinesManager::findRoute(int fromX, int fromY, int destX, int destY) {
}
void LinesManager::useRoute0(int idx, int curRouteIdx) {
+ debugC(5, kDebugPath, "useRoute0(%d, %d)", idx, curRouteIdx);
if (idx) {
int i = 0;
do {
@@ -1513,6 +1530,7 @@ void LinesManager::useRoute0(int idx, int curRouteIdx) {
}
void LinesManager::useRoute1(int idx, int curRouteIdx) {
+ debugC(5, kDebugPath, "useRoute1(%d, %d)", idx, curRouteIdx);
if (idx) {
int i = 0;
do {
@@ -1524,6 +1542,7 @@ void LinesManager::useRoute1(int idx, int curRouteIdx) {
}
void LinesManager::useRoute2(int idx, int curRouteIdx) {
+ debugC(5, kDebugPath, "useRoute2(%d, %d)", idx, curRouteIdx);
if (idx) {
int i = 0;
do {
@@ -1535,6 +1554,7 @@ void LinesManager::useRoute2(int idx, int curRouteIdx) {
}
int LinesManager::characterRoute(int fromX, int fromY, int destX, int destY, int startLineIdx, int endLineIdx, int routeIdx) {
+ debugC(5, kDebugPath, "characterRoute(%d, %d, %d, %d, %d, %d, %d)", fromX, fromY, destX, destY, startLineIdx, endLineIdx, routeIdx);
int collDataIdxRoute2 = 0;
bool colResult = false;
@@ -1561,6 +1581,7 @@ int LinesManager::characterRoute(int fromX, int fromY, int destX, int destY, int
case DIR_DOWN_RIGHT:
curY += 2;
curX += 2;
+ break;
case DIR_DOWN:
curY += 2;
break;
@@ -1967,8 +1988,8 @@ int LinesManager::characterRoute(int fromX, int fromY, int destX, int destY, int
_newRouteIdx = curRouteIdx;
return 2;
}
- // CHECKME: Checking essai0[0]._x might make more sense here?
- if (_testRoute1[0]._x != -1 && foundLineIdx > collLineIdxRoute0 && collLineIdxRoute1 >= collLineIdxRoute0 && collLineIdxRoute2 >= collLineIdxRoute0 && endLineIdx <= collLineIdxRoute0) {
+
+ if (_testRoute0[0]._x != -1 && foundLineIdx > collLineIdxRoute0 && collLineIdxRoute1 >= collLineIdxRoute0 && collLineIdxRoute2 >= collLineIdxRoute0 && endLineIdx <= collLineIdxRoute0) {
_newLineIdx = collLineIdxRoute0;
_newLineDataIdx = collDataIdxRoute0;
int i = 0;
@@ -1985,6 +2006,7 @@ int LinesManager::characterRoute(int fromX, int fromY, int destX, int destY, int
}
RouteItem *LinesManager::cityMapCarRoute(int x1, int y1, int x2, int y2) {
+ debugC(5, kDebugPath, "cityMapCarRoute(%d, %d, %d, %d)", x1, y1, x2, y2);
RouteItem *result;
int arrDelta[10];
int arrDataIdx[10];
@@ -2163,6 +2185,7 @@ RouteItem *LinesManager::cityMapCarRoute(int x1, int y1, int x2, int y2) {
}
bool LinesManager::checkSmoothMove(int fromX, int fromY, int destX, int destY) {
+ debugC(5, kDebugPath, "checkSmoothMove(%d, %d, %d, %d)", fromX, fromY, destX, destY);
int distX = abs(fromX - destX) + 1;
int distY = abs(fromY - destY) + 1;
if (distX > distY)
@@ -2201,6 +2224,7 @@ bool LinesManager::checkSmoothMove(int fromX, int fromY, int destX, int destY) {
}
bool LinesManager::makeSmoothMove(int fromX, int fromY, int destX, int destY) {
+ debugC(5, kDebugPath, "makeSmoothMove(%d, %d, %d, %d)", fromX, fromY, destX, destY);
int curX = fromX;
int curY = fromY;
if (fromX > destX && destY > fromY) {
@@ -2218,10 +2242,11 @@ bool LinesManager::makeSmoothMove(int fromX, int fromY, int destX, int destY) {
realSpeedX = _vm->_graphicsMan->zoomIn(realSpeedX, spriteSize);
realSpeedY = _vm->_graphicsMan->zoomIn(realSpeedY, spriteSize);
}
+ int oldY = curY;
for (int i = 0; i < realSpeedX; i++) {
--curX;
_smoothRoute[smoothIdx]._posX = curX;
- if (curY != curY + realSpeedY)
+ if (curY != oldY + realSpeedY)
curY++;
_smoothRoute[smoothIdx]._posY = curY;
smoothIdx++;
@@ -2252,10 +2277,11 @@ bool LinesManager::makeSmoothMove(int fromX, int fromY, int destX, int destY) {
realSpeedX = _vm->_graphicsMan->zoomIn(realSpeedX, spriteSize);
realSpeedY = _vm->_graphicsMan->zoomIn(realSpeedY, spriteSize);
}
+ int oldY = curY;
for (int i = 0; i < realSpeedX; i++) {
++curX;
_smoothRoute[smoothIdx]._posX = curX;
- if (curY != curY + realSpeedY)
+ if (curY != oldY + realSpeedY)
curY++;
_smoothRoute[smoothIdx]._posY = curY;
smoothIdx++;
@@ -2331,6 +2357,7 @@ bool LinesManager::makeSmoothMove(int fromX, int fromY, int destX, int destY) {
}
bool LinesManager::PLAN_TEST(int paramX, int paramY, int superRouteIdx, int paramStartLineIdx, int paramEndLineIdx) {
+ debugC(5, kDebugPath, "PLAN_TEST(%d, %d, %d, %d, %d)", paramX, paramY, superRouteIdx, paramStartLineIdx, paramEndLineIdx);
int sideTestUp;
int sideTestDown;
int sideTestLeft;
@@ -2431,6 +2458,7 @@ bool LinesManager::PLAN_TEST(int paramX, int paramY, int superRouteIdx, int para
// Test line
int LinesManager::testLine(int paramX, int paramY, int *testValue, int *foundLineIdx, int *foundDataIdx) {
+ debugC(5, kDebugPath, "testLine(%d, %d, testValue, foundLineIdx, foundDataIdx)", paramX, paramY);
int16 *lineData;
int lineDataEndIdx;
int collLineIdx;
@@ -2439,21 +2467,22 @@ int LinesManager::testLine(int paramX, int paramY, int *testValue, int *foundLin
for (int idx = _lastLine + 1; idx < _linesNumb + 1; idx++) {
lineData = _lineItem[idx]._lineData;
lineDataEndIdx = _lineItem[idx]._lineDataEndIdx;
- if (lineData) {
- if (lineData[0] == paramX && lineData[1] == paramY) {
- *testValue = 1;
- int posX = lineData[2 * (lineDataEndIdx - 1)];
- int posY = lineData[2 * (lineDataEndIdx - 1) + 1];
- if (_lineItem[idx]._directionRouteInc == DIR_DOWN || _lineItem[idx]._directionRouteInc == DIR_UP)
- posY += 2;
- if (_lineItem[idx]._directionRouteInc == DIR_RIGHT || _lineItem[idx]._directionRouteDec == DIR_LEFT)
- posX += 2;
- if (!checkCollisionLine(posX, posY, &collDataIdx, &collLineIdx, 0, _lastLine))
- error("Error in test line");
- *foundLineIdx = collLineIdx;
- *foundDataIdx = collDataIdx;
- return idx;
- }
+ if (!lineData)
+ continue;
+
+ if (lineData[0] == paramX && lineData[1] == paramY) {
+ *testValue = 1;
+ int posX = lineData[2 * (lineDataEndIdx - 1)];
+ int posY = lineData[2 * (lineDataEndIdx - 1) + 1];
+ if (_lineItem[idx]._directionRouteInc == DIR_DOWN || _lineItem[idx]._directionRouteInc == DIR_UP)
+ posY += 2;
+ if (_lineItem[idx]._directionRouteInc == DIR_RIGHT || _lineItem[idx]._directionRouteDec == DIR_LEFT)
+ posX += 2;
+ if (!checkCollisionLine(posX, posY, &collDataIdx, &collLineIdx, 0, _lastLine))
+ error("Error in test line");
+ *foundLineIdx = collLineIdx;
+ *foundDataIdx = collDataIdx;
+ return idx;
}
if (lineDataEndIdx > 0) {
@@ -2477,12 +2506,13 @@ int LinesManager::testLine(int paramX, int paramY, int *testValue, int *foundLin
}
int LinesManager::computeYSteps(int idx) {
+ debugC(5, kDebugPath, "computeYSteps(%d)", idx);
int zoomPct = _vm->_globals->_spriteSize[idx];
- if (_vm->_globals->_characterType == 1) {
+ if (_vm->_globals->_characterType == CHARACTER_HOPKINS_CLONE) {
if (zoomPct < 0)
zoomPct = -zoomPct;
zoomPct = 20 * (5 * zoomPct - 100) / -80;
- } else if (_vm->_globals->_characterType == 2) {
+ } else if (_vm->_globals->_characterType == CHARACTER_SAMANTHA) {
if (zoomPct < 0)
zoomPct = -zoomPct;
zoomPct = 20 * (5 * zoomPct - 165) / -67;
@@ -2498,6 +2528,7 @@ int LinesManager::computeYSteps(int idx) {
}
void LinesManager::optimizeRoute(RouteItem *route) {
+ debugC(5, kDebugPath, "optimizeRoute(route)");
if (route[0]._x == -1 && route[0]._y == -1)
return;
@@ -2544,6 +2575,7 @@ void LinesManager::optimizeRoute(RouteItem *route) {
}
int LinesManager::getMouseZone() {
+ debugC(9, kDebugPath, "getMouseZone()");
int result;
int xp = _vm->_events->_mousePos.x + _vm->_events->_mouseOffset.x;
@@ -2564,6 +2596,11 @@ int LinesManager::getMouseZone() {
_zone[bobZoneId]._destY = _vm->_objectsMan->_bob[bobId]._oldHeight + _vm->_objectsMan->_bob[bobId]._oldY + 6;
_zone[bobZoneId]._spriteIndex = -1;
}
+
+ // WORKAROUND: Avoid allowing hotspots that should remain non-interactive
+ if (bobZoneId == 24 && _vm->_globals->_curRoomNum == 14)
+ continue;
+
return bobZoneId;
}
}
@@ -2632,6 +2669,7 @@ int LinesManager::getMouseZone() {
}
int LinesManager::checkCollision(int xp, int yp) {
+ debugC(7, kDebugPath, "checkCollision(%d, %d)", xp, yp);
if (_currentSegmentId <= 0)
return -1;
@@ -2681,6 +2719,7 @@ int LinesManager::checkCollision(int xp, int yp) {
// Square Zone
void LinesManager::initSquareZones() {
+ debugC(5, kDebugPath, "initSquareZones()");
for (int idx = 0; idx < 100; ++idx) {
SquareZoneItem *curZone = &_squareZone[idx];
curZone->_enabledFl = false;
@@ -2693,7 +2732,7 @@ void LinesManager::initSquareZones() {
curZone->_maxZoneLineIdx = 0;
}
- for (int idx = 0; idx < MAX_LINES; ++idx) {
+ for (int idx = 0; idx < MAX_LINES + 1; ++idx) {
int16 *dataP = _zoneLine[idx]._zoneData;
if (dataP == NULL)
continue;
@@ -2723,6 +2762,7 @@ void LinesManager::initSquareZones() {
}
void LinesManager::clearAll() {
+ debugC(5, kDebugPath, "clearAll()");
for (int idx = 0; idx < 105; ++idx) {
_zone[idx]._destX = 0;
_zone[idx]._destY = 0;
@@ -2768,6 +2808,7 @@ void LinesManager::clearAll() {
* Clear all zones and reset nextLine
*/
void LinesManager::clearAllZones() {
+ debugC(5, kDebugPath, "clearAllZones()");
for (int idx = 0; idx < MAX_LINES; ++idx)
removeZoneLine(idx);
}
@@ -2776,38 +2817,37 @@ void LinesManager::clearAllZones() {
* Remove Zone Line
*/
void LinesManager::removeZoneLine(int idx) {
- assert (idx <= MAX_LINES);
+ debugC(5, kDebugPath, "removeZoneLine(%d)", idx);
+ assert(idx < MAX_LINES + 1);
_zoneLine[idx]._zoneData = (int16 *)_vm->_globals->freeMemory((byte *)_zoneLine[idx]._zoneData);
}
void LinesManager::resetLines() {
+ debugC(5, kDebugPath, "resetLines()");
for (int idx = 0; idx < MAX_LINES; ++idx) {
- removeLine(idx);
+ _lineItem[idx]._lineData = (int16 *)_vm->_globals->freeMemory((byte *)_lineItem[idx]._lineData);
_lineItem[idx]._lineDataEndIdx = 0;
_lineItem[idx]._lineData = NULL;
}
}
-// Remove Line
-void LinesManager::removeLine(int idx) {
- if (idx > MAX_LINES)
- error("Attempting to add a line obstacle > MAX_LIGNE.");
- _lineItem[idx]._lineData = (int16 *)_vm->_globals->freeMemory((byte *)_lineItem[idx]._lineData);
-}
-
void LinesManager::setMaxLineIdx(int idx) {
+ debugC(5, kDebugPath, "setMaxLineIdx(%d)", idx);
_maxLineIdx = idx;
}
void LinesManager::resetLastLine() {
+ debugC(5, kDebugPath, "resetLastLine()");
_lastLine = 0;
}
void LinesManager::resetLinesNumb() {
+ debugC(5, kDebugPath, "resetLinesNumb()");
_linesNumb = 0;
}
void LinesManager::enableZone(int idx) {
+ debugC(5, kDebugPath, "enableZone(%d)", idx);
if (_bobZone[idx]) {
_bobZoneFl[idx] = true;
} else {
@@ -2816,6 +2856,7 @@ void LinesManager::enableZone(int idx) {
}
void LinesManager::disableZone(int idx) {
+ debugC(5, kDebugPath, "disableZone(%d)", idx);
if (_bobZone[idx]) {
_bobZoneFl[idx] = false;
} else {
@@ -2824,6 +2865,7 @@ void LinesManager::disableZone(int idx) {
}
void LinesManager::checkZone() {
+ debugC(9, kDebugPath, "checkZone()");
int mouseX = _vm->_events->getMouseX();
int mouseY = _vm->_events->getMouseY();
int oldMouseY = mouseY;
@@ -2854,6 +2896,10 @@ void LinesManager::checkZone() {
int zoneId;
if (_oldMouseX != mouseX || _oldMouseY != oldMouseY) {
zoneId = getMouseZone();
+
+ // WORKAROUND: Incorrect hotspot zones in the guard's control room
+ if (_vm->_globals->_curRoomNum == 71 && (zoneId == 14 || zoneId == 12 || zoneId == 17))
+ zoneId = _oldMouseZoneId;
} else {
zoneId = _oldMouseZoneId;
}
diff --git a/engines/hopkins/lines.h b/engines/hopkins/lines.h
index 9e397cca3d..b32dc6e2a5 100644
--- a/engines/hopkins/lines.h
+++ b/engines/hopkins/lines.h
@@ -40,6 +40,8 @@ struct LigneZoneItem {
#define INVALID_LINE_VALUE 1300
+#define MAX_LINES 400
+
struct RouteItem;
struct LigneItem {
@@ -111,13 +113,11 @@ private:
int _pathFindingMaxDepth;
SmoothItem _smoothRoute[4000];
Directions _smoothMoveDirection;
- LigneZoneItem _zoneLine[401];
+ LigneZoneItem _zoneLine[MAX_LINES+1];
SegmentItem _segment[101];
- SquareZoneItem _squareZone[101];
int _currentSegmentId;
int _maxLineIdx;
int _lastLine;
- int _linesNumb;
int _newLineIdx;
int _newLineDataIdx;
int _newRouteIdx;
@@ -134,7 +134,6 @@ private:
RouteItem *_testRoute0;
RouteItem *_testRoute1;
int16 *_lineBuf;
- LigneItem _lineItem[400];
RouteItem _bestRoute[8001];
int _zoneSkipCount;
int _oldMouseZoneId;
@@ -166,6 +165,9 @@ public:
int _bobZone[105];
bool _bobZoneFl[105];
ZoneItem _zone[106];
+ SquareZoneItem _squareZone[101];
+ LigneItem _lineItem[MAX_LINES];
+ int _linesNumb;
LinesManager(HopkinsEngine *vm);
~LinesManager();
diff --git a/engines/hopkins/menu.cpp b/engines/hopkins/menu.cpp
index 01aa84e4ed..455f4ad8d4 100644
--- a/engines/hopkins/menu.cpp
+++ b/engines/hopkins/menu.cpp
@@ -50,11 +50,11 @@ int MenuManager::menu() {
signed int result;
int frameIndex[] = { 0, 0, 0, 0, 0 };
- if (g_system->getEventManager()->shouldQuit())
+ if (_vm->shouldQuit())
return -1;
result = 0;
- while (!g_system->getEventManager()->shouldQuit()) {
+ while (!_vm->shouldQuit()) {
_vm->_objectsMan->_forestFl = false;
_vm->_events->_breakoutFl = false;
_vm->_globals->_disableInventFl = true;
@@ -97,7 +97,7 @@ int MenuManager::menu() {
// Loop to make menu selection
bool selectionMade = false;
do {
- if (g_system->getEventManager()->shouldQuit())
+ if (_vm->shouldQuit())
return -1;
menuIndex = MENU_NONE;
diff --git a/engines/hopkins/objects.cpp b/engines/hopkins/objects.cpp
index f139ee55ab..f2f547557f 100644
--- a/engines/hopkins/objects.cpp
+++ b/engines/hopkins/objects.cpp
@@ -41,12 +41,13 @@ ObjectsManager::ObjectsManager(HopkinsEngine *vm) {
for (int i = 0; i < 6; ++i)
Common::fill((byte *)&_sprite[i], (byte *)&_sprite[i] + sizeof(SpriteItem), 0);
- for (int i = 0; i < 36; ++i)
+ for (int i = 0; i < 36; ++i) {
Common::fill((byte *)&_bob[i], (byte *)&_bob[i] + sizeof(BobItem), 0);
+ Common::fill((byte *)&_lockedAnims[i], (byte *)&_lockedAnims[i] + sizeof(LockAnimItem), 0);
+ }
for (int i = 0; i < 30; ++i) {
Common::fill((byte *)&_vBob[i], (byte *)&_vBob[i] + sizeof(VBobItem), 0);
- Common::fill((byte *)&_lockedAnims[i], (byte *)&_lockedAnims[i] + sizeof(LockAnimItem), 0);
}
for (int i = 0; i < 300; ++i)
@@ -987,7 +988,7 @@ void ObjectsManager::computeSprite(int idx) {
// Before Sort
void ObjectsManager::beforeSort(SortMode sortMode, int index, int priority) {
++_sortedDisplayCount;
- assert (_sortedDisplayCount <= 48);
+ assert(_sortedDisplayCount <= 48);
_sortedDisplay[_sortedDisplayCount]._sortMode = sortMode;
_sortedDisplay[_sortedDisplayCount]._index = index;
@@ -1228,7 +1229,7 @@ void ObjectsManager::displayVBob() {
* Get Sprite X coordinate
*/
int ObjectsManager::getSpriteX(int idx) {
- assert (idx <= MAX_SPRITE);
+ assert(idx <= MAX_SPRITE);
return _sprite[idx]._spritePos.x;
}
@@ -1236,7 +1237,7 @@ int ObjectsManager::getSpriteX(int idx) {
* Get Sprite Y coordinate
*/
int ObjectsManager::getSpriteY(int idx) {
- assert (idx <= MAX_SPRITE);
+ assert(idx <= MAX_SPRITE);
return _sprite[idx]._spritePos.y;
}
@@ -1260,12 +1261,12 @@ void ObjectsManager::clearSprite() {
}
void ObjectsManager::animateSprite(int idx) {
- assert (idx <= MAX_SPRITE);
+ assert(idx <= MAX_SPRITE);
_sprite[idx]._animationType = 1;
}
void ObjectsManager::addStaticSprite(const byte *spriteData, Common::Point pos, int idx, int spriteIndex, int zoomFactor, bool flipFl, int deltaX, int deltaY) {
- assert (idx <= MAX_SPRITE);
+ assert(idx <= MAX_SPRITE);
SpriteItem *spr = &_sprite[idx];
spr->_spriteData = spriteData;
@@ -1298,7 +1299,7 @@ void ObjectsManager::removeSprite(int idx) {
* Set Sprite X coordinate
*/
void ObjectsManager::setSpriteX(int idx, int xp) {
- assert (idx <= MAX_SPRITE);
+ assert(idx <= MAX_SPRITE);
_sprite[idx]._spritePos.x = xp;
}
@@ -1306,7 +1307,7 @@ void ObjectsManager::setSpriteX(int idx, int xp) {
* Set Sprite Y coordinate
*/
void ObjectsManager::setSpriteY(int idx, int yp) {
- assert (idx <= MAX_SPRITE);
+ assert(idx <= MAX_SPRITE);
_sprite[idx]._spritePos.y = yp;
}
@@ -1314,19 +1315,19 @@ void ObjectsManager::setSpriteY(int idx, int yp) {
* Set Sprite Index
*/
void ObjectsManager::setSpriteIndex(int idx, int spriteIndex) {
- assert (idx <= MAX_SPRITE);
+ assert(idx <= MAX_SPRITE);
_sprite[idx]._spriteIndex = spriteIndex;
}
// Set Sprite Size
void ObjectsManager::setSpriteZoom(int idx, int zoomFactor) {
- assert (idx <= MAX_SPRITE);
+ assert(idx <= MAX_SPRITE);
if (!_sprite[idx]._rleFl)
_sprite[idx]._zoomFactor = zoomFactor;
}
void ObjectsManager::setFlipSprite(int idx, bool flipFl) {
- assert (idx <= MAX_SPRITE);
+ assert(idx <= MAX_SPRITE);
if (!_sprite[idx]._rleFl)
_sprite[idx]._flipFl = flipFl;
}
@@ -2185,7 +2186,7 @@ void ObjectsManager::changeCharacterHead(PlayerCharacter oldCharacter, PlayerCha
loc->_pos.y = getSpriteY(0);
loc->_startSpriteIndex = 64;
loc->_location = _vm->_globals->_screenId;
- loc->_zoomFactor = _sprite[0]._animationType;
+ loc->_zoomFactor = _sprite[0]._zoomFactor;
removeSprite(1);
addStaticSprite(_headSprites, loc->_pos, 1, 3, loc->_zoomFactor, false, 20, 127);
@@ -2198,7 +2199,7 @@ void ObjectsManager::changeCharacterHead(PlayerCharacter oldCharacter, PlayerCha
loc = &_vm->_globals->_saveData->_realHopkins;
_vm->_globals->_characterSpriteBuf = _vm->_fileIO->loadFile("PERSO.SPR");
- _vm->_globals->_characterType = 0;
+ _vm->_globals->_characterType = CHARACTER_HOPKINS;
addStaticSprite(_vm->_globals->_characterSpriteBuf, loc->_pos, 0, 64, loc->_zoomFactor, false, 34, 190);
animateSprite(0);
_vm->_globals->loadCharacterData();
@@ -2223,7 +2224,7 @@ void ObjectsManager::changeCharacterHead(PlayerCharacter oldCharacter, PlayerCha
loc = &_vm->_globals->_saveData->_samantha;
_vm->_globals->_characterSpriteBuf = _vm->_fileIO->loadFile("PSAMAN.SPR");
- _vm->_globals->_characterType = 2;
+ _vm->_globals->_characterType = CHARACTER_SAMANTHA;
addStaticSprite(_vm->_globals->_characterSpriteBuf, loc->_pos, 0, 64, loc->_zoomFactor, false, 20, 127);
animateSprite(0);
_vm->_globals->loadCharacterData();
@@ -2286,9 +2287,9 @@ void ObjectsManager::changeCharacterHead(PlayerCharacter oldCharacter, PlayerCha
// Check Size
void ObjectsManager::computeAndSetSpriteSize() {
int size = _vm->_globals->_spriteSize[getSpriteY(0)];
- if (_vm->_globals->_characterType == 1) {
+ if (_vm->_globals->_characterType == CHARACTER_HOPKINS_CLONE) {
size = 20 * (5 * abs(size) - 100) / -80;
- } else if (_vm->_globals->_characterType == 2) {
+ } else if (_vm->_globals->_characterType == CHARACTER_SAMANTHA) {
size = 20 * (5 * abs(size) - 165) / -67;
}
setSpriteZoom(0, size);
@@ -2675,7 +2676,7 @@ void ObjectsManager::handleSpecialGames() {
_vm->_soundMan->_specialSoundNum = 198;
_charactersEnabledFl = true;
_vm->_animMan->unsetClearAnimFlag();
- _vm->_animMan->playAnim("otage.ANM", 1, 24, 500, true);
+ _vm->_animMan->playAnim("OTAGE.ANM", "OTAGE.ANM", 1, 24, 500, true);
_vm->_soundMan->_specialSoundNum = 0;
_vm->_graphicsMan->displayScreen(false);
@@ -2889,7 +2890,7 @@ void ObjectsManager::doActionRight(int idx) {
showSpecialActionAnimationWithFlip(_gestureBuf, "23,24,25,-1,", 8, false);
break;
case 6:
- showSpecialActionAnimation(_gestureBuf, "24,,23,-1,", 8);
+ showSpecialActionAnimation(_gestureBuf, "24,23,-1,", 8);
break;
case 7:
showSpecialActionAnimationWithFlip(_gestureBuf, "23,24,25,26,27,-1,", 8, false);
@@ -2933,7 +2934,7 @@ void ObjectsManager::doActionDiagRight(int idx) {
showSpecialActionAnimation(_gestureBuf, "17,16,15,-1,", 8);
break;
case 7:
- showSpecialActionAnimationWithFlip(_gestureBuf, "15,16,17,18,19,20-1,", 8, false);
+ showSpecialActionAnimationWithFlip(_gestureBuf, "15,16,17,18,19,20,-1,", 8, false);
break;
case 8:
showSpecialActionAnimation(_gestureBuf, "19,18,17,16,15,-1,", 8);
@@ -3035,7 +3036,7 @@ void ObjectsManager::doActionLeft(int idx) {
showSpecialActionAnimationWithFlip(_gestureBuf, "23,24,25,-1,", 8, true);
break;
case 6:
- showSpecialActionAnimation(_gestureBuf, "24,,23,-1,", 8);
+ showSpecialActionAnimation(_gestureBuf, "24,23,-1,", 8);
break;
case 7:
showSpecialActionAnimationWithFlip(_gestureBuf, "23,24,25,26,27,-1,", 8, true);
@@ -3087,6 +3088,7 @@ void ObjectsManager::setBobAnimDataIdx(int idx, int animIdx) {
* Set Hopkins animation
*/
void ObjectsManager::setBobAnimation(int idx) {
+ assert(idx < 36);
BobItem *bob = &_bob[idx];
if (!bob->_disabledAnimationFl)
return;
@@ -3102,6 +3104,7 @@ void ObjectsManager::setBobAnimation(int idx) {
* Stop Hopkins animation
*/
void ObjectsManager::stopBobAnimation(int idx) {
+ assert(idx < 36);
_bob[idx]._disabledAnimationFl = true;
}
@@ -3438,6 +3441,7 @@ void ObjectsManager::disableVerb(int idx, int a2) {
case 13:
case 22:
curZone->_verbFl8 = 0;
+ break;
case 14:
case 21:
case 25:
@@ -3709,7 +3713,7 @@ void ObjectsManager::handleForest(int screenId, int minX, int maxX, int minY, in
}
if (_vm->_globals->_saveData->_data[savegameIdx] == 3) {
_vm->_graphicsMan->_fadingFl = true;
- _vm->_animMan->playAnim("CREVE2.ANM", 100, 24, 500);
+ _vm->_animMan->playAnim("CREVE2.ANM", "CREVE2.ANM", 100, 24, 500);
_vm->_globals->_exitId = 150;
_vm->_graphicsMan->_noFadingFl = true;
hideBob(1);
@@ -3857,30 +3861,29 @@ void ObjectsManager::sceneControl2(const Common::String &backgroundFile, const C
_vm->_graphicsMan->setColorPercentage(253, 100, 100, 100);
_vm->_graphicsMan->setColorPercentage(251, 100, 100, 100);
_vm->_graphicsMan->setColorPercentage(254, 0, 0, 0);
- if (_vm->_globals->_characterType) {
- if (!_vm->_globals->_saveData->_data[svAlternateSpriteFl] && !_vm->_globals->_saveData->_data[svField356]) {
- _vm->_globals->_characterSpriteBuf = _vm->_fileIO->loadFile("PERSO.SPR");
- _vm->_globals->_characterType = 0;
- }
+ if (_vm->_globals->_characterType != CHARACTER_HOPKINS && !_vm->_globals->_saveData->_data[svAlternateSpriteFl] && !_vm->_globals->_saveData->_data[svField356]) {
+ _vm->_globals->_characterSpriteBuf = _vm->_fileIO->loadFile("PERSO.SPR");
+ _vm->_globals->_characterType = CHARACTER_HOPKINS;
}
- if (!_vm->_globals->_characterType && _vm->_globals->_saveData->_data[svAlternateSpriteFl] == 1) {
+
+ if (_vm->_globals->_characterType == CHARACTER_HOPKINS && _vm->_globals->_saveData->_data[svAlternateSpriteFl] == 1) {
_vm->_globals->_characterSpriteBuf = _vm->_fileIO->loadFile("HOPFEM.SPR");
- _vm->_globals->_characterType = 1;
+ _vm->_globals->_characterType = CHARACTER_HOPKINS_CLONE;
}
- if (_vm->_globals->_characterType != 2 && _vm->_globals->_saveData->_data[svField356] == 1) {
+ if (_vm->_globals->_characterType != CHARACTER_SAMANTHA && _vm->_globals->_saveData->_data[svField356] == 1) {
_vm->_globals->_characterSpriteBuf = _vm->_fileIO->loadFile("PSAMAN.SPR");
- _vm->_globals->_characterType = 2;
+ _vm->_globals->_characterType = CHARACTER_SAMANTHA;
}
_vm->_globals->loadCharacterData();
switch (_vm->_globals->_characterType) {
- case 0:
+ case CHARACTER_HOPKINS:
addStaticSprite(_vm->_globals->_characterSpriteBuf, _characterPos, 0, _startSpriteIndex, 0, false, 34, 190);
break;
- case 1:
+ case CHARACTER_HOPKINS_CLONE:
addStaticSprite(_vm->_globals->_characterSpriteBuf, _characterPos, 0, _startSpriteIndex, 0, false, 28, 155);
break;
- case 2:
+ case CHARACTER_SAMANTHA:
addStaticSprite(_vm->_globals->_characterSpriteBuf, _characterPos, 0, _startSpriteIndex, 0, false, 20, 127);
break;
}
diff --git a/engines/hopkins/objects.h b/engines/hopkins/objects.h
index a5e309344b..5f1f5b1f59 100644
--- a/engines/hopkins/objects.h
+++ b/engines/hopkins/objects.h
@@ -239,7 +239,7 @@ public:
byte *_headSprites;
SpriteItem _sprite[6];
BobItem _bob[36];
- LockAnimItem _lockedAnims[30];
+ LockAnimItem _lockedAnims[36];
bool _charactersEnabledFl;
bool _refreshBobMode10Fl;
diff --git a/engines/hopkins/saveload.cpp b/engines/hopkins/saveload.cpp
index af0b043641..45b4885c90 100644
--- a/engines/hopkins/saveload.cpp
+++ b/engines/hopkins/saveload.cpp
@@ -307,6 +307,10 @@ void SaveLoadManager::convertThumb16To8(Graphics::Surface *thumb16, Graphics::Su
byte r, g, b;
pixelFormat16.colorToRGB(*lineSrcP++, r, g, b);
+ // Do like in the original and show thumbnail as a grayscale picture
+ int lum = (r * 21 + g * 72 + b * 7) / 100;
+ r = g = b = lum;
+
// Scan the palette for the closest match
int difference = 99999, foundIndex = 0;
for (int palIndex = 0; palIndex < PALETTE_SIZE; ++palIndex) {
diff --git a/engines/hopkins/script.cpp b/engines/hopkins/script.cpp
index 6167ac4c23..c39273203d 100644
--- a/engines/hopkins/script.cpp
+++ b/engines/hopkins/script.cpp
@@ -65,8 +65,6 @@ int ScriptManager::handleOpcode(const byte *dataP) {
mesgId = 639;
if (mesgId == 8)
mesgId = 637;
- if (mesgId == 53)
- mesgId = 644;
if (mesgId == 557)
mesgId = 636;
if (mesgId == 51)
@@ -99,8 +97,6 @@ int ScriptManager::handleOpcode(const byte *dataP) {
mesgId = 646;
if (mesgId == 604)
mesgId = 647;
- if (mesgId == 51)
- mesgId = 644;
if (mesgId == 607)
mesgId = 650;
if (mesgId == 605)
@@ -201,64 +197,70 @@ int ScriptManager::handleOpcode(const byte *dataP) {
opcodeType = 1;
break;
case MKTAG24('S', 'T', 'P'):
- if (!_vm->_objectsMan->_disableFl) {
- _vm->_objectsMan->_twoCharactersFl = false;
- _vm->_objectsMan->_characterPos.x = READ_LE_INT16(dataP + 6);
- _vm->_objectsMan->_characterPos.y = READ_LE_INT16(dataP + 8);
- _vm->_objectsMan->_startSpriteIndex = dataP[5];
- if (_vm->_objectsMan->_changeHeadFl) {
- if (_vm->_globals->_saveData->_data[svField354] == 1
- && _vm->_globals->_saveData->_cloneHopkins._pos.x && _vm->_globals->_saveData->_cloneHopkins._pos.y
- && _vm->_globals->_saveData->_cloneHopkins._startSpriteIndex && _vm->_globals->_saveData->_cloneHopkins._location) {
-
- _vm->_objectsMan->_characterPos = _vm->_globals->_saveData->_cloneHopkins._pos;
- _vm->_objectsMan->_startSpriteIndex = _vm->_globals->_saveData->_cloneHopkins._startSpriteIndex;
- }
- if (_vm->_globals->_saveData->_data[svField356] == 1
- && _vm->_globals->_saveData->_samantha._pos.x && _vm->_globals->_saveData->_samantha._pos.y
- && _vm->_globals->_saveData->_samantha._startSpriteIndex && _vm->_globals->_saveData->_samantha._location) {
- _vm->_objectsMan->_characterPos = _vm->_globals->_saveData->_samantha._pos;
- _vm->_objectsMan->_startSpriteIndex = _vm->_globals->_saveData->_samantha._startSpriteIndex;
- }
- if (_vm->_globals->_saveData->_data[svField357] == 1
- && _vm->_globals->_saveData->_realHopkins._pos.x && _vm->_globals->_saveData->_realHopkins._pos.y
- && _vm->_globals->_saveData->_realHopkins._startSpriteIndex && _vm->_globals->_saveData->_realHopkins._location) {
- _vm->_objectsMan->_characterPos = _vm->_globals->_saveData->_realHopkins._pos;
- _vm->_objectsMan->_startSpriteIndex = _vm->_globals->_saveData->_realHopkins._startSpriteIndex;
- }
+ if (!_vm->_objectsMan->_disableFl) {
+ // HACK: This piece of code is a replacement to the missing STE opcode when entering the FBI lab.
+ if (_vm->_globals->_curRoomNum == 10) {
+ _vm->_globals->_prevScreenId = _vm->_globals->_screenId;
+ _vm->_globals->_saveData->_data[svLastPrevScreenId] = _vm->_globals->_screenId;
+ _vm->_globals->_screenId = _vm->_globals->_saveData->_data[svLastScreenId] = 10;
+ }
+ _vm->_objectsMan->_twoCharactersFl = false;
+ _vm->_objectsMan->_characterPos.x = READ_LE_INT16(dataP + 6);
+ _vm->_objectsMan->_characterPos.y = READ_LE_INT16(dataP + 8);
+ _vm->_objectsMan->_startSpriteIndex = dataP[5];
+ if (_vm->_objectsMan->_changeHeadFl) {
+ if (_vm->_globals->_saveData->_data[svField354] == 1
+ && _vm->_globals->_saveData->_cloneHopkins._pos.x && _vm->_globals->_saveData->_cloneHopkins._pos.y
+ && _vm->_globals->_saveData->_cloneHopkins._startSpriteIndex && _vm->_globals->_saveData->_cloneHopkins._location) {
+
+ _vm->_objectsMan->_characterPos = _vm->_globals->_saveData->_cloneHopkins._pos;
+ _vm->_objectsMan->_startSpriteIndex = _vm->_globals->_saveData->_cloneHopkins._startSpriteIndex;
}
if (_vm->_globals->_saveData->_data[svField356] == 1
- && _vm->_globals->_saveData->_realHopkins._location == _vm->_globals->_screenId) {
- _vm->_objectsMan->addStaticSprite(
- _vm->_objectsMan->_headSprites,
- _vm->_globals->_saveData->_realHopkins._pos,
- 1,
- 2,
- _vm->_globals->_saveData->_realHopkins._zoomFactor,
- false,
- 34,
- 190);
- _vm->_objectsMan->animateSprite(1);
- _vm->_objectsMan->_twoCharactersFl = true;
+ && _vm->_globals->_saveData->_samantha._pos.x && _vm->_globals->_saveData->_samantha._pos.y
+ && _vm->_globals->_saveData->_samantha._startSpriteIndex && _vm->_globals->_saveData->_samantha._location) {
+ _vm->_objectsMan->_characterPos = _vm->_globals->_saveData->_samantha._pos;
+ _vm->_objectsMan->_startSpriteIndex = _vm->_globals->_saveData->_samantha._startSpriteIndex;
}
if (_vm->_globals->_saveData->_data[svField357] == 1
- && _vm->_globals->_saveData->_data[svField355] == 1
- && _vm->_globals->_saveData->_samantha._location == _vm->_globals->_screenId) {
- _vm->_objectsMan->addStaticSprite(
- _vm->_objectsMan->_headSprites,
- _vm->_globals->_saveData->_samantha._pos,
- 1,
- 3,
- _vm->_globals->_saveData->_samantha._zoomFactor,
- false,
- 20,
- 127);
- _vm->_objectsMan->animateSprite(1);
- _vm->_objectsMan->_twoCharactersFl = true;
+ && _vm->_globals->_saveData->_realHopkins._pos.x && _vm->_globals->_saveData->_realHopkins._pos.y
+ && _vm->_globals->_saveData->_realHopkins._startSpriteIndex && _vm->_globals->_saveData->_realHopkins._location) {
+ _vm->_objectsMan->_characterPos = _vm->_globals->_saveData->_realHopkins._pos;
+ _vm->_objectsMan->_startSpriteIndex = _vm->_globals->_saveData->_realHopkins._startSpriteIndex;
}
}
- opcodeType = 1;
- _vm->_objectsMan->_changeHeadFl = false;
+ if (_vm->_globals->_saveData->_data[svField356] == 1
+ && _vm->_globals->_saveData->_realHopkins._location == _vm->_globals->_screenId) {
+ _vm->_objectsMan->addStaticSprite(
+ _vm->_objectsMan->_headSprites,
+ _vm->_globals->_saveData->_realHopkins._pos,
+ 1,
+ 2,
+ _vm->_globals->_saveData->_realHopkins._zoomFactor,
+ false,
+ 34,
+ 190);
+ _vm->_objectsMan->animateSprite(1);
+ _vm->_objectsMan->_twoCharactersFl = true;
+ }
+ if (_vm->_globals->_saveData->_data[svField357] == 1
+ && _vm->_globals->_saveData->_data[svField355] == 1
+ && _vm->_globals->_saveData->_samantha._location == _vm->_globals->_screenId) {
+ _vm->_objectsMan->addStaticSprite(
+ _vm->_objectsMan->_headSprites,
+ _vm->_globals->_saveData->_samantha._pos,
+ 1,
+ 3,
+ _vm->_globals->_saveData->_samantha._zoomFactor,
+ false,
+ 20,
+ 127);
+ _vm->_objectsMan->animateSprite(1);
+ _vm->_objectsMan->_twoCharactersFl = true;
+ }
+ }
+ opcodeType = 1;
+ _vm->_objectsMan->_changeHeadFl = false;
break;
case MKTAG24('S', 'T', 'E'):
if (!_vm->_objectsMan->_disableFl) {
@@ -585,7 +587,7 @@ int ScriptManager::handleOpcode(const byte *dataP) {
if (!_vm->_globals->_censorshipFl) {
_vm->_soundMan->_specialSoundNum = 16;
_vm->_graphicsMan->_fadingFl = true;
- _vm->_animMan->playAnim("EGORGE.ANM", 50, 28, 500);
+ _vm->_animMan->playAnim("EGORGE.ANM", "EGORGE.ANM", 50, 28, 500);
_vm->_soundMan->_specialSoundNum = 0;
}
_vm->_animMan->loadAnim("ASCEN");
@@ -726,7 +728,7 @@ int ScriptManager::handleOpcode(const byte *dataP) {
_vm->_animMan->playSequence("grenade.SEQ", 1, 32, 100, false, false);
_vm->_soundMan->_specialSoundNum = 0;
_vm->_graphicsMan->_fadingFl = true;
- _vm->_animMan->playAnim("CREVE17.ANM", 24, 24, 200);
+ _vm->_animMan->playAnim("CREVE17.ANM", "CREVE17.ANM", 24, 24, 200);
_vm->_soundMan->removeSample(1);
_vm->_soundMan->removeSample(2);
_vm->_soundMan->removeSample(3);
@@ -953,21 +955,23 @@ int ScriptManager::handleOpcode(const byte *dataP) {
case 56:
_vm->_globals->_characterSpriteBuf = _vm->_fileIO->loadFile("HOPFEM.SPR");
- _vm->_globals->_characterType = 1;
+ _vm->_globals->_characterType = CHARACTER_HOPKINS_CLONE;
_vm->_globals->_saveData->_data[svAlternateSpriteFl] = 1;
_vm->_globals->loadCharacterData();
_vm->_objectsMan->_sprite[0]._deltaX = 28;
_vm->_objectsMan->_sprite[0]._deltaY = 155;
+ _vm->_objectsMan->_sprite[0]._spriteData = _vm->_globals->_characterSpriteBuf;
_vm->_objectsMan->computeAndSetSpriteSize();
break;
case 57:
_vm->_globals->_characterSpriteBuf = _vm->_fileIO->loadFile("PERSO.SPR");
- _vm->_globals->_characterType = 0;
+ _vm->_globals->_characterType = CHARACTER_HOPKINS;
_vm->_globals->_saveData->_data[svAlternateSpriteFl] = 0;
_vm->_globals->loadCharacterData();
_vm->_objectsMan->_sprite[0]._deltaX = 34;
_vm->_objectsMan->_sprite[0]._deltaY = 190;
+ _vm->_objectsMan->_sprite[0]._spriteData = _vm->_globals->_characterSpriteBuf;
_vm->_objectsMan->computeAndSetSpriteSize();
break;
@@ -1071,6 +1075,7 @@ int ScriptManager::handleOpcode(const byte *dataP) {
_vm->_soundMan->playWav(2);
playFl = true;
}
+ break;
case 6:
playFl = false;
break;
@@ -1395,7 +1400,7 @@ int ScriptManager::handleOpcode(const byte *dataP) {
_vm->_globals->_introSpeechOffFl = true;
_vm->_talkMan->startAnimatedCharacterDialogue("tourist1.pe2");
_vm->_globals->_introSpeechOffFl = false;
- _vm->_animMan->playAnim2("T421.ANM", 100, 14, 500);
+ _vm->_animMan->playAnim2("T421A.ANM", "T421.ANM", 100, 14, 500);
_vm->_events->refreshScreenAndEvents();
_vm->_events->refreshScreenAndEvents();
_vm->_events->refreshScreenAndEvents();
@@ -1957,7 +1962,7 @@ int ScriptManager::handleOpcode(const byte *dataP) {
_vm->_animMan->playSequence("SECRET2.SEQ", 1, 12, 100, false, true);
_vm->_soundMan->_specialSoundNum = 0;
_vm->_graphicsMan->_noFadingFl = true;
- _vm->_graphicsMan->fadeOutLong();
+ _vm->_graphicsMan->fadeOutShort();
for (int i = 1; i <= 39; i++) {
if (_vm->shouldQuit())
@@ -2326,7 +2331,7 @@ int ScriptManager::handleOpcode(const byte *dataP) {
if (!_vm->getIsDemo()) {
_vm->_graphicsMan->_fadingFl = true;
_vm->_graphicsMan->_fadeDefaultSpeed = 1;
- _vm->_animMan->playAnim("BOMBE1A.ANM", 100, 18, 100);
+ _vm->_animMan->playAnim("BOMBE1A.ANM", "BOMBE1.ANM", 100, 18, 100);
}
_vm->_graphicsMan->loadImage("BOMBEB");
_vm->_graphicsMan->setColorPercentage(252, 100, 100, 100);
@@ -2352,7 +2357,7 @@ int ScriptManager::handleOpcode(const byte *dataP) {
_vm->_objectsMan->setAndPlayAnim(3, 0, 16, true);
_vm->_soundMan->_specialSoundNum = 199;
_vm->_graphicsMan->_fadingFl = true;
- _vm->_animMan->playAnim("BOMBE2A.ANM", 50, 14, 500);
+ _vm->_animMan->playAnim("BOMBE2A.ANM", "BOMBE2.ANM", 50, 14, 500);
_vm->_soundMan->_specialSoundNum = 0;
memset(_vm->_graphicsMan->_frontBuffer, 0, 614400);
_vm->_graphicsMan->_noFadingFl = true;
@@ -2363,7 +2368,7 @@ int ScriptManager::handleOpcode(const byte *dataP) {
_vm->_graphicsMan->fastDisplay(_vm->_globals->_levelSpriteBuf, 513, 163, 7, false);
_vm->_objectsMan->setAndPlayAnim(1, 0, 16, true);
_vm->_soundMan->_specialSoundNum = 199;
- _vm->_animMan->playAnim("BOMBE2A.ANM", 50, 14, 500);
+ _vm->_animMan->playAnim("BOMBE2A.ANM", "BOMBE2.ANM", 50, 14, 500);
_vm->_soundMan->_specialSoundNum = 0;
_vm->_graphicsMan->_noFadingFl = true;
memset(_vm->_graphicsMan->_frontBuffer, 0, 614400);
@@ -2376,7 +2381,7 @@ int ScriptManager::handleOpcode(const byte *dataP) {
_vm->_graphicsMan->fadeOutShort();
_vm->_soundMan->_specialSoundNum = 199;
_vm->_graphicsMan->_fadingFl = true;
- _vm->_animMan->playAnim("BOMBE2A.ANM", 50, 14, 500);
+ _vm->_animMan->playAnim("BOMBE2A.ANM", "BOMBE2.ANM", 50, 14, 500);
_vm->_soundMan->_specialSoundNum = 0;
_vm->_graphicsMan->_noFadingFl = true;
memset(_vm->_graphicsMan->_frontBuffer, 0, 614400);
@@ -2387,7 +2392,7 @@ int ScriptManager::handleOpcode(const byte *dataP) {
_vm->_graphicsMan->fastDisplay(_vm->_globals->_levelSpriteBuf, 513, 163, 7, false);
_vm->_objectsMan->setAndPlayAnim(6, 0, 16, true);
if ((_vm->getPlatform() != Common::kPlatformWindows) || !_vm->getIsDemo()) {
- _vm->_animMan->playAnim("BOMBE3A.ANM", 50, 14, 500);
+ _vm->_animMan->playAnim("BOMBE3A.ANM", "BOMBE3.ANM", 50, 14, 500);
memset(_vm->_graphicsMan->_frontBuffer, 0, 614400);
}
_vm->_globals->_exitId = 6;
@@ -2397,7 +2402,7 @@ int ScriptManager::handleOpcode(const byte *dataP) {
// Display bomb plan
if (!_vm->getIsDemo()) {
memcpy(_vm->_graphicsMan->_oldPalette, _vm->_graphicsMan->_palette, 769);
- _vm->_animMan->playAnim2("PLAN.ANM", 50, 10, 800);
+ _vm->_animMan->playAnim2("PLAN.ANM", "PLAN.ANM", 50, 10, 800);
}
_vm->_graphicsMan->resetDirtyRects();
break;
diff --git a/engines/hopkins/sound.cpp b/engines/hopkins/sound.cpp
index d8dfba5246..bf816c08a4 100644
--- a/engines/hopkins/sound.cpp
+++ b/engines/hopkins/sound.cpp
@@ -456,10 +456,8 @@ void SoundManager::checkSounds() {
void SoundManager::checkVoiceActivity() {
// Check the status of each voice.
bool hasActiveVoice = false;
- for (int i = 0; i < VOICE_COUNT; ++i) {
- checkVoiceStatus(i);
- hasActiveVoice |= _voice[i]._status;
- }
+ for (int i = 0; i < VOICE_COUNT; ++i)
+ hasActiveVoice |= checkVoiceStatus(i);
if (!hasActiveVoice && _soundFl) {
_soundFl = false;
@@ -469,7 +467,6 @@ void SoundManager::checkVoiceActivity() {
bool SoundManager::mixVoice(int voiceId, int voiceMode, bool dispTxtFl) {
int fileNumber;
- int oldMusicVol;
bool breakFlag;
Common::String prefix;
Common::String filename;
@@ -575,7 +572,7 @@ bool SoundManager::mixVoice(int voiceId, int voiceMode, bool dispTxtFl) {
}
}
}
- oldMusicVol = _musicVolume;
+ int oldMusicVol = _musicVolume;
if (!loadVoice(filename, catPos, catLen, _sWav[20])) {
// This case only concerns the English Win95 demo
// If it's not possible to load the voice, we force the active flag
@@ -634,8 +631,6 @@ void SoundManager::removeSample(int soundIndex) {
stopVoice(1);
if (checkVoiceStatus(2))
stopVoice(2);
- if (checkVoiceStatus(3))
- stopVoice(3);
removeWavSample(soundIndex);
_sound[soundIndex]._active = false;
}
@@ -703,7 +698,6 @@ void SoundManager::playSample(int wavIndex, int voiceMode) {
switch (voiceMode) {
case 5:
- case 8:
// Case added to identify the former PLAY_SAMPLE2 calls
case 9:
if (checkVoiceStatus(1))
@@ -715,11 +709,6 @@ void SoundManager::playSample(int wavIndex, int voiceMode) {
stopVoice(1);
playWavSample(2, wavIndex);
break;
- case 7:
- if (checkVoiceStatus(3))
- stopVoice(1);
- playWavSample(3, wavIndex);
- break;
default:
break;
}
diff --git a/engines/hugo/detection.cpp b/engines/hugo/detection.cpp
index bb5944acc8..ede4ab2279 100644
--- a/engines/hugo/detection.cpp
+++ b/engines/hugo/detection.cpp
@@ -61,7 +61,7 @@ static const HugoGameDescription gameDescriptions[] = {
"hugo1", 0,
AD_ENTRY1s("house.art", "c9403b2fe539185c9fd569b6cc4ff5ca", 14811),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -85,7 +85,7 @@ static const HugoGameDescription gameDescriptions[] = {
"hugo2", 0,
AD_ENTRY1s("objects.dat", "88a718cc0ff2b3b25d49aaaa69d6d52c", 155240),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
GF_PACKED,
GUIO0()
},
@@ -109,7 +109,7 @@ static const HugoGameDescription gameDescriptions[] = {
"hugo3", 0,
AD_ENTRY1s("objects.dat", "bb1b061538a445f2eb99b682c0f506cc", 136419),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
GF_PACKED,
GUIO0()
},
diff --git a/engines/hugo/file.cpp b/engines/hugo/file.cpp
index 1758f3f6a5..e58c2e57d6 100644
--- a/engines/hugo/file.cpp
+++ b/engines/hugo/file.cpp
@@ -59,6 +59,11 @@ static const int s_bootCypherLen = sizeof(s_bootCypher) - 1;
FileManager::FileManager(HugoEngine *vm) : _vm(vm) {
_hasReadHeader = false;
_firstUIFFl = true;
+
+ _UIFHeader->_size = 0;
+ _UIFHeader->_offset = 0;
+ _soundHdr->_size = 0;
+ _soundHdr->_offset = 0;
}
FileManager::~FileManager() {
@@ -491,7 +496,7 @@ void FileManager::readBootFile() {
memset(_vm->_boot._distrib, '\0', sizeof(_vm->_boot._distrib));
_vm->_boot._registered = kRegFreeware;
return;
- } else if (_vm->getPlatform() == Common::kPlatformPC) {
+ } else if (_vm->getPlatform() == Common::kPlatformDOS) {
warning("readBootFile - Skipping as H2 and H3 Dos may be shareware");
memset(_vm->_boot._distrib, '\0', sizeof(_vm->_boot._distrib));
_vm->_boot._registered = kRegShareware;
diff --git a/engines/hugo/hugo.cpp b/engines/hugo/hugo.cpp
index 9d28e0ac69..bcf06055f8 100644
--- a/engines/hugo/hugo.cpp
+++ b/engines/hugo/hugo.cpp
@@ -66,6 +66,33 @@ HugoEngine::HugoEngine(OSystem *syst, const HugoGameDescription *gd) : Engine(sy
_console = new HugoConsole(this);
_rnd = 0;
+
+ _screen = NULL;
+ _mouse = NULL;
+ _inventory = NULL;
+ _parser = NULL;
+ _route = NULL;
+ _sound = NULL;
+ _intro = NULL;
+ _object = NULL;
+ _text = NULL;
+ _topMenu = NULL;
+ _status._storyModeFl = false;
+ _status._gameOverFl = false;
+ _status._lookFl = false;
+ _status._recallFl = false;
+ _status._newScreenFl = false;
+ _status._godModeFl = false;
+ _status._showBoundariesFl = false;
+ _status._doQuitFl = false;
+ _status._skipIntroFl = false;
+ _status._helpFl = false;
+ _status._tick = 0;
+ _status._viewState = kViewIntroInit;
+ _status._song = 0;
+ _gameType = kGameTypeNone;
+ _platform = Common::kPlatformUnknown;
+ _packedFl = false;
}
HugoEngine::~HugoEngine() {
diff --git a/engines/hugo/intro.cpp b/engines/hugo/intro.cpp
index f2ae06eb39..505e356049 100644
--- a/engines/hugo/intro.cpp
+++ b/engines/hugo/intro.cpp
@@ -41,6 +41,7 @@ namespace Hugo {
IntroHandler::IntroHandler(HugoEngine *vm) : _vm(vm), _introX(0), _introY(0) {
_introXSize = 0;
+ _introTicks = 0;
}
IntroHandler::~IntroHandler() {
@@ -76,6 +77,7 @@ void IntroHandler::freeIntroData() {
}
intro_v1d::intro_v1d(HugoEngine *vm) : IntroHandler(vm) {
+ _introState = 0;
}
intro_v1d::~intro_v1d() {
diff --git a/engines/kyra/darkmoon.cpp b/engines/kyra/darkmoon.cpp
index 130fb10df3..a694a4aba5 100644
--- a/engines/kyra/darkmoon.cpp
+++ b/engines/kyra/darkmoon.cpp
@@ -243,6 +243,17 @@ void DarkMoonEngine::replaceMonster(int unit, uint16 block, int pos, int dir, in
if (_monsters[i].flags & 0x40)
continue;
+ // WORKAROUND for bug #3611077 (Dran's dragon transformation sequence triggered prematurely):
+ // The boss level and the mindflayer level share the same monster data. If you hang around
+ // long enough in the mindflayer level all 30 monster slots will be used up. When this
+ // happens it will trigger the dragon transformation sequence when Dran is moved around by script.
+ // We avoid removing Dran here by prefering monster slots occupied by monsters from another
+ // sub level.
+ if (_monsters[i].sub != _currentSub) {
+ index = i;
+ break;
+ }
+
int dist = getBlockDistance(_monsters[i].block, _currentBlock);
if (dist > maxDist) {
@@ -261,7 +272,10 @@ void DarkMoonEngine::replaceMonster(int unit, uint16 block, int pos, int dir, in
}
bool DarkMoonEngine::killMonsterExtra(EoBMonsterInPlay *m) {
- if (_currentLevel == 16 && _currentSub == 1 && (_monsterProps[m->type].capsFlags & 4)) {
+ // WORKAROUND for bug #3611077 (see DarkMoonEngine::replaceMonster())
+ // The mindflayers have monster type 0, just like Dran. Using a monster slot occupied by a mindflayer would trigger the dragon transformation
+ // sequence when all 30 monster slots are used up. We avoid this by checking for m->sub == 1.
+ if (_currentLevel == 16 && _currentSub == 1 && m->sub == 1 && (_monsterProps[m->type].capsFlags & 4)) {
if (m->type) {
_playFinale = true;
_runFlag = false;
diff --git a/engines/kyra/debugger.cpp b/engines/kyra/debugger.cpp
index 75981958d6..99d73d19c7 100644
--- a/engines/kyra/debugger.cpp
+++ b/engines/kyra/debugger.cpp
@@ -482,8 +482,16 @@ Debugger_EoB::Debugger_EoB(EoBCoreEngine *vm) : Debugger(vm), _vm(vm) {
}
void Debugger_EoB::initialize() {
- DCmd_Register("import_savefile", WRAP_METHOD(Debugger_EoB, cmd_importSaveFile));
- DCmd_Register("save_original", WRAP_METHOD(Debugger_EoB, cmd_saveOriginal));
+ DCmd_Register("import_savefile", WRAP_METHOD(Debugger_EoB, cmd_importSaveFile));
+ DCmd_Register("save_original", WRAP_METHOD(Debugger_EoB, cmd_saveOriginal));
+ DCmd_Register("list_monsters", WRAP_METHOD(Debugger_EoB, cmd_listMonsters));
+ DCmd_Register("show_position", WRAP_METHOD(Debugger_EoB, cmd_showPosition));
+ DCmd_Register("set_position", WRAP_METHOD(Debugger_EoB, cmd_setPosition));
+ DCmd_Register("open_door", WRAP_METHOD(Debugger_EoB, cmd_openDoor));
+ DCmd_Register("close_door", WRAP_METHOD(Debugger_EoB, cmd_closeDoor));
+ DCmd_Register("list_flags", WRAP_METHOD(Debugger_EoB, cmd_listFlags));
+ DCmd_Register("set_flag", WRAP_METHOD(Debugger_EoB, cmd_setFlag));
+ DCmd_Register("clear_flag", WRAP_METHOD(Debugger_EoB, cmd_clearFlag));
}
bool Debugger_EoB::cmd_importSaveFile(int argc, const char **argv) {
@@ -558,6 +566,135 @@ bool Debugger_EoB::cmd_saveOriginal(int argc, const char **argv) {
return true;
}
+bool Debugger_EoB::cmd_listMonsters(int, const char **) {
+ DebugPrintf("\nCurrent level: %d\n----------------------\n\n", _vm->_currentLevel);
+ DebugPrintf("Id Type Unit Block Position Direction Sub Level Mode Dst.block HP Flags\n--------------------------------------------------------------------------------------------------------------\n");
+
+ for (int i = 0; i < 30; i++) {
+ EoBMonsterInPlay *m = &_vm->_monsters[i];
+ DebugPrintf("%.02d %.02d %.02d 0x%.04x %d %d %d %.02d 0x%.04x %.03d/%.03d 0x%.02x\n", i, m->type, m->unit, m->block, m->pos, m->dir, m->sub, m->mode, m->dest, m->hitPointsCur, m->hitPointsMax, m->flags);
+ }
+
+ DebugPrintf("\n");
+
+ return true;
+}
+
+bool Debugger_EoB::cmd_showPosition(int, const char **) {
+ DebugPrintf("\nCurrent level: %d\nCurrent Sub Level: %d\nCurrent block: %d (0x%.04x)\nNext block: %d (0x%.04x)\nCurrent direction: %d\n\n", _vm->_currentLevel, _vm->_currentSub, _vm->_currentBlock, _vm->_currentBlock, _vm->calcNewBlockPosition(_vm->_currentBlock, _vm->_currentDirection), _vm->calcNewBlockPosition(_vm->_currentBlock, _vm->_currentDirection), _vm->_currentDirection);
+ return true;
+}
+
+bool Debugger_EoB::cmd_setPosition(int argc, const char **argv) {
+ if (argc == 4) {
+ _vm->_currentBlock = atoi(argv[3]);
+ int sub = atoi(argv[2]);
+ int level = atoi(argv[1]);
+
+ int maxLevel = (_vm->game() == GI_EOB1) ? 12 : 16;
+ if (level < 1 || level > maxLevel) {
+ DebugPrintf("<level> must be a value from 1 to %d.\n\n", maxLevel);
+ return true;
+ }
+
+ if (level != _vm->_currentLevel || sub != _vm->_currentSub) {
+ _vm->completeDoorOperations();
+ _vm->generateTempData();
+ _vm->txt()->removePageBreakFlag();
+ _vm->screen()->setScreenDim(7);
+
+ _vm->loadLevel(level, sub);
+
+ if (_vm->_dialogueField)
+ _vm->restoreAfterDialogueSequence();
+ }
+
+ _vm->moveParty(_vm->_currentBlock);
+
+ _vm->_sceneUpdateRequired = true;
+ _vm->gui_drawAllCharPortraitsWithStats();
+ DebugPrintf("Success.\n\n");
+
+ } else {
+ DebugPrintf("Syntax: set_position <level>, <sub level>, <block>\n");
+ DebugPrintf(" (Warning: The sub level and block position parameters will not be checked. Invalid parameters may cause problems.)\n\n");
+ }
+ return true;
+}
+
+bool Debugger_EoB::cmd_openDoor(int, const char **) {
+ DebugPrintf("Warning: Using this command may cause glitches.\n");
+ uint16 block = _vm->calcNewBlockPosition(_vm->_currentBlock, _vm->_currentDirection);
+ int c = (_vm->_wllWallFlags[_vm->_levelBlockProperties[block].walls[0]] & 8) ? 0 : 1;
+ int v = _vm->_levelBlockProperties[block].walls[c];
+ int flg = (_vm->_flags.gameID == GI_EOB1) ? 1 : 0x10;
+ if (_vm->_wllWallFlags[v] & flg) {
+ DebugPrintf("Couldn't open any door. Make sure you're facing the door you wish to open and standing right in front of it.\n\n");
+ } else {
+ _vm->openDoor(block);
+ DebugPrintf("Trying to open door at block %d.\n\n", block);
+ }
+ return true;
+}
+
+bool Debugger_EoB::cmd_closeDoor(int, const char **) {
+ DebugPrintf("Warning: Using this command may cause glitches.\n");
+ uint16 block = _vm->calcNewBlockPosition(_vm->_currentBlock, _vm->_currentDirection);
+ int c = (_vm->_wllWallFlags[_vm->_levelBlockProperties[block].walls[0]] & 8) ? 0 : 1;
+ int v = _vm->_levelBlockProperties[block].walls[c];
+ if ((_vm->_flags.gameID == GI_EOB1 && !(_vm->_wllWallFlags[v] & 1)) || (_vm->_flags.gameID == GI_EOB2 && (_vm->_wllWallFlags[v] & 0x20))) {
+ DebugPrintf("Couldn't close any door. Make sure you're facing the door you wish to close and standing right in front of it.\n\n");
+ } else {
+ _vm->closeDoor(block);
+ DebugPrintf("Trying to close door at block %d.\n\n", block);
+ }
+ return true;
+}
+
+bool Debugger_EoB::cmd_listFlags(int, const char **) {
+ DebugPrintf("Flag Status\n----------------------\n\n");
+ for (int i = 0; i < 32; i++) {
+ uint32 flag = 1 << i;
+ DebugPrintf("%.2d %s\n", i, _vm->checkScriptFlags(flag) ? "TRUE" : "FALSE");
+ }
+ DebugPrintf("\n");
+ return true;
+}
+
+bool Debugger_EoB::cmd_setFlag(int argc, const char **argv) {
+ if (argc != 2) {
+ DebugPrintf("Syntax: set_flag <flag>\n\n");
+ return true;
+ }
+
+ int flag = atoi(argv[1]);
+ if (flag < 0 || flag > 31) {
+ DebugPrintf("<flag> must be a value from 0 to 31.\n\n");
+ } else {
+ _vm->setScriptFlags(1 << flag);
+ DebugPrintf("Flag '%.2d' has been set.\n\n", flag);
+ }
+
+ return true;
+}
+
+bool Debugger_EoB::cmd_clearFlag(int argc, const char **argv) {
+ if (argc != 2) {
+ DebugPrintf("Syntax: clear_flag <flag>\n\n");
+ return true;
+ }
+
+ int flag = atoi(argv[1]);
+ if (flag < 0 || flag > 31) {
+ DebugPrintf("<flag> must be a value from 0 to 31.\n\n");
+ } else {
+ _vm->clearScriptFlags(1 << flag);
+ DebugPrintf("Flag '%.2d' has been cleared.\n\n", flag);
+ }
+
+ return true;
+}
+
#endif // ENABLE_EOB
} // End of namespace Kyra
diff --git a/engines/kyra/debugger.h b/engines/kyra/debugger.h
index e4ab39102a..c1056a6cf3 100644
--- a/engines/kyra/debugger.h
+++ b/engines/kyra/debugger.h
@@ -121,6 +121,14 @@ protected:
bool cmd_importSaveFile(int argc, const char **argv);
bool cmd_saveOriginal(int argc, const char **argv);
+ bool cmd_listMonsters(int argc, const char **argv);
+ bool cmd_showPosition(int argc, const char **argv);
+ bool cmd_setPosition(int argc, const char **argv);
+ bool cmd_openDoor(int argc, const char **argv);
+ bool cmd_closeDoor(int argc, const char **argv);
+ bool cmd_listFlags(int argc, const char **argv);
+ bool cmd_setFlag(int argc, const char **argv);
+ bool cmd_clearFlag(int argc, const char **argv);
};
#endif // ENABLE_EOB
diff --git a/engines/kyra/detection_tables.h b/engines/kyra/detection_tables.h
index 5c2b8fe1e8..f59d173fe6 100644
--- a/engines/kyra/detection_tables.h
+++ b/engines/kyra/detection_tables.h
@@ -78,7 +78,7 @@ const KYRAGameDescription adGameDescs[] = {
0,
AD_ENTRY1("DISK1.EXE", "c8641d0414d6c966d0a3dad79db07bf4"),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO4(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIPCSPK)
},
@@ -91,7 +91,7 @@ const KYRAGameDescription adGameDescs[] = {
0,
AD_ENTRY1("DISK1.EXE", "5d5cee4c3d0b68d586788b74243d254a"),
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO4(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIPCSPK)
},
@@ -105,7 +105,7 @@ const KYRAGameDescription adGameDescs[] = {
"Extracted",
AD_ENTRY1("GEMCUT.EMC", "3c244298395520bb62b5edfe41688879"),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO5(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -118,7 +118,7 @@ const KYRAGameDescription adGameDescs[] = {
"Extracted",
AD_ENTRY1("GEMCUT.EMC", "796e44863dd22fa635b042df1bf16673"),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO5(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -130,7 +130,7 @@ const KYRAGameDescription adGameDescs[] = {
"Extracted",
AD_ENTRY1("GEMCUT.EMC", "abf8eb360e79a6c2a837751fbd4d3d24"),
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO5(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -142,7 +142,7 @@ const KYRAGameDescription adGameDescs[] = {
"Extracted",
AD_ENTRY1("GEMCUT.EMC", "6018e1dfeaca7fe83f8d0b00eb0dd049"),
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO5(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -154,7 +154,7 @@ const KYRAGameDescription adGameDescs[] = {
"Extracted",
AD_ENTRY1("GEMCUT.EMC", "f0b276781f47c130f423ec9679fe9ed9"),
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO5(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -166,7 +166,7 @@ const KYRAGameDescription adGameDescs[] = {
"Extracted",
AD_ENTRY1("GEMCUT.EMC", "689b62b7519215c1b2571d466c95624c"),
Common::RU_RUS,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO5(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -178,7 +178,7 @@ const KYRAGameDescription adGameDescs[] = {
"Extracted",
AD_ENTRY1("GEMCUT.EMC", "8909b41596913b3f5deaf3c9f1017b01"),
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO5(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -190,7 +190,7 @@ const KYRAGameDescription adGameDescs[] = {
"Extracted",
AD_ENTRY1("GEMCUT.EMC", "747861d2a9c643c59fdab570df5b9093"),
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO5(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -202,7 +202,7 @@ const KYRAGameDescription adGameDescs[] = {
"Extracted",
AD_ENTRY1("GEMCUT.EMC", "ef08c8c237ee1473fd52578303fc36df"),
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO5(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -318,7 +318,7 @@ const KYRAGameDescription adGameDescs[] = {
"CD",
AD_ENTRY1("GEMCUT.PAK", "fac399fe62f98671e56a005c5e94e39f"),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO4(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -330,7 +330,7 @@ const KYRAGameDescription adGameDescs[] = {
"CD",
AD_ENTRY1("GEMCUT.PAK", "230f54e6afc007ab4117159181a1c722"),
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO4(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -342,7 +342,7 @@ const KYRAGameDescription adGameDescs[] = {
"CD",
AD_ENTRY1("GEMCUT.PAK", "b037c41768b652a040360ffa3556fd2a"),
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO4(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -355,7 +355,7 @@ const KYRAGameDescription adGameDescs[] = {
"CD",
AD_ENTRY1("GEMCUT.PAK", "d8327fc4b7a72b23c900fa13aef4093a"),
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO4(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -417,7 +417,7 @@ const KYRAGameDescription adGameDescs[] = {
"Demo",
AD_ENTRY1("DEMO1.WSA", "fb722947d94897512b13b50cc84fd648"),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO,
GUIO5(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -430,7 +430,7 @@ const KYRAGameDescription adGameDescs[] = {
"Demo/CD",
AD_ENTRY1("INTRO.VRM", "e3045fb69b8c29db84b8fda3ccbdac54"),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO | ADGF_CD,
GUIO4(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -443,7 +443,7 @@ const KYRAGameDescription adGameDescs[] = {
0,
AD_ENTRY1("WESTWOOD.001", "3f52dda68c4f7696c8309038be9f4151"),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO6(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -456,7 +456,7 @@ const KYRAGameDescription adGameDescs[] = {
0,
AD_ENTRY1("WESTWOOD.001", "d787b9559afddfe058b84c0b3a787224"),
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO6(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -469,7 +469,7 @@ const KYRAGameDescription adGameDescs[] = {
"Extracted",
AD_ENTRY1("FATE.PAK", "1ba18be685ad8e5a0ab5d46a0ce4d345"),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO6(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -482,7 +482,7 @@ const KYRAGameDescription adGameDescs[] = {
"Extracted",
AD_ENTRY1("FATE.PAK", "262fb69dd8e52e596c7aefc6456f7c1b"),
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO6(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -495,7 +495,7 @@ const KYRAGameDescription adGameDescs[] = {
"Extracted",
AD_ENTRY1("FATE.PAK", "f7de11506b4c8fdf64bc763206c3e4e7"),
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO6(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -508,7 +508,7 @@ const KYRAGameDescription adGameDescs[] = {
"Extracted",
AD_ENTRY1("FATE.PAK", "e0a70c31b022cb4bb3061890020fc27c"),
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO6(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -521,7 +521,7 @@ const KYRAGameDescription adGameDescs[] = {
"Extracted",
AD_ENTRY1("CH01-S00.DLG", "54b7a5a94f6e1ec91f0fb1311eec09ab"),
Common::RU_RUS,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO6(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -534,7 +534,7 @@ const KYRAGameDescription adGameDescs[] = {
"Extracted",
AD_ENTRY1("CH01-S00.DLG", "7c36c0e63ab8c81cbb3ea58681331366"),
Common::RU_RUS,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO6(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -547,7 +547,7 @@ const KYRAGameDescription adGameDescs[] = {
"CD",
AD_ENTRY1("FATE.PAK", "28cbad1c5bf06b2d3825ae57d760d032"),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -559,7 +559,7 @@ const KYRAGameDescription adGameDescs[] = {
"CD",
AD_ENTRY1("FATE.PAK", "28cbad1c5bf06b2d3825ae57d760d032"),
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -571,7 +571,7 @@ const KYRAGameDescription adGameDescs[] = {
"CD",
AD_ENTRY1("FATE.PAK", "28cbad1c5bf06b2d3825ae57d760d032"),
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -585,7 +585,7 @@ const KYRAGameDescription adGameDescs[] = {
"CD",
AD_ENTRY1("FATE.PAK", "30487f3b8d7790c7857f4769ff2dd125"),
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -597,7 +597,7 @@ const KYRAGameDescription adGameDescs[] = {
"CD",
AD_ENTRY1("FATE.PAK", "30487f3b8d7790c7857f4769ff2dd125"),
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -609,7 +609,7 @@ const KYRAGameDescription adGameDescs[] = {
"CD",
AD_ENTRY1("FATE.PAK", "30487f3b8d7790c7857f4769ff2dd125"),
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -622,7 +622,7 @@ const KYRAGameDescription adGameDescs[] = {
"CD",
AD_ENTRY1("FATE.PAK", "39772ff82e42c4c520050518deb82e64"),
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -635,7 +635,7 @@ const KYRAGameDescription adGameDescs[] = {
"CD",
AD_ENTRY1("FATE.PAK", "39772ff82e42c4c520050518deb82e64"),
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -648,7 +648,7 @@ const KYRAGameDescription adGameDescs[] = {
"CD",
AD_ENTRY1("FATE.PAK", "39772ff82e42c4c520050518deb82e64"),
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -662,7 +662,7 @@ const KYRAGameDescription adGameDescs[] = {
"CD",
AD_ENTRY1("FERRY.CPS", "763e2103858347d4ffffc329910d323f"),
Common::RU_RUS,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -675,7 +675,7 @@ const KYRAGameDescription adGameDescs[] = {
"CD/Demo",
AD_ENTRY1("THANKS.CPS", "b1a78d990b120bb2234b7094f74e30a5"),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD | ADGF_DEMO,
GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -688,7 +688,7 @@ const KYRAGameDescription adGameDescs[] = {
"CD/Demo",
AD_ENTRY1("THANKS.CPS", "b1a78d990b120bb2234b7094f74e30a5"),
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD | ADGF_DEMO,
GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -701,7 +701,7 @@ const KYRAGameDescription adGameDescs[] = {
"CD/Demo",
AD_ENTRY1("THANKS.CPS", "b1a78d990b120bb2234b7094f74e30a5"),
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD | ADGF_DEMO,
GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -714,7 +714,7 @@ const KYRAGameDescription adGameDescs[] = {
"Demo",
AD_ENTRY1("VOC.PAK", "ecb3561b63749158172bf21528cf5f45"),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO,
GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -783,7 +783,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE,
GUIO5(GUIO_NOMIDI, GUIO_RENDERVGA, GAMEOPTION_KYRA3_AUDIENCE, GAMEOPTION_KYRA3_SKIP, GAMEOPTION_KYRA3_HELIUM)
},
@@ -799,7 +799,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE,
GUIO5(GUIO_NOMIDI, GUIO_RENDERVGA, GAMEOPTION_KYRA3_AUDIENCE, GAMEOPTION_KYRA3_SKIP, GAMEOPTION_KYRA3_HELIUM)
},
@@ -815,7 +815,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE,
GUIO5(GUIO_NOMIDI, GUIO_RENDERVGA, GAMEOPTION_KYRA3_AUDIENCE, GAMEOPTION_KYRA3_SKIP, GAMEOPTION_KYRA3_HELIUM)
},
@@ -833,7 +833,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE,
GUIO5(GUIO_NOMIDI, GUIO_RENDERVGA, GAMEOPTION_KYRA3_AUDIENCE, GAMEOPTION_KYRA3_SKIP, GAMEOPTION_KYRA3_HELIUM)
},
@@ -849,7 +849,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE,
GUIO5(GUIO_NOMIDI, GUIO_RENDERVGA, GAMEOPTION_KYRA3_AUDIENCE, GAMEOPTION_KYRA3_SKIP, GAMEOPTION_KYRA3_HELIUM)
},
@@ -865,7 +865,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE,
GUIO5(GUIO_NOMIDI, GUIO_RENDERVGA, GAMEOPTION_KYRA3_AUDIENCE, GAMEOPTION_KYRA3_SKIP, GAMEOPTION_KYRA3_HELIUM)
},
@@ -933,7 +933,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE,
GUIO5(GUIO_NOMIDI, GUIO_RENDERVGA, GAMEOPTION_KYRA3_AUDIENCE, GAMEOPTION_KYRA3_SKIP, GAMEOPTION_KYRA3_HELIUM)
},
@@ -949,7 +949,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE,
GUIO5(GUIO_NOMIDI, GUIO_RENDERVGA, GAMEOPTION_KYRA3_AUDIENCE, GAMEOPTION_KYRA3_SKIP, GAMEOPTION_KYRA3_HELIUM)
},
@@ -965,7 +965,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE,
GUIO5(GUIO_NOMIDI, GUIO_RENDERVGA, GAMEOPTION_KYRA3_AUDIENCE, GAMEOPTION_KYRA3_SKIP, GAMEOPTION_KYRA3_HELIUM)
},
@@ -983,7 +983,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE,
GUIO5(GUIO_NOMIDI, GUIO_RENDERVGA, GAMEOPTION_KYRA3_AUDIENCE, GAMEOPTION_KYRA3_SKIP, GAMEOPTION_KYRA3_HELIUM)
},
@@ -999,7 +999,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE,
GUIO5(GUIO_NOMIDI, GUIO_RENDERVGA, GAMEOPTION_KYRA3_AUDIENCE, GAMEOPTION_KYRA3_SKIP, GAMEOPTION_KYRA3_HELIUM)
},
@@ -1015,7 +1015,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE,
GUIO5(GUIO_NOMIDI, GUIO_RENDERVGA, GAMEOPTION_KYRA3_AUDIENCE, GAMEOPTION_KYRA3_SKIP, GAMEOPTION_KYRA3_HELIUM)
},
@@ -1034,7 +1034,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO7(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS)
},
@@ -1051,7 +1051,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO7(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS)
},
@@ -1068,7 +1068,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO7(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS)
},
@@ -1085,7 +1085,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO7(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS)
},
@@ -1102,7 +1102,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO7(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS)
},
@@ -1119,7 +1119,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO7(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS)
},
@@ -1137,7 +1137,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO7(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS)
},
@@ -1155,7 +1155,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO7(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS)
},
@@ -1172,7 +1172,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::RU_RUS,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO7(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS)
},
@@ -1190,7 +1190,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO7(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS)
},
@@ -1207,7 +1207,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO7(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS)
},
@@ -1224,7 +1224,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO7(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS)
},
@@ -1241,7 +1241,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO7(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS)
},
@@ -1258,7 +1258,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO7(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS)
},
@@ -1275,7 +1275,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO7(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS)
},
@@ -1291,7 +1291,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO8(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS)
},
@@ -1307,7 +1307,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO8(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS)
},
@@ -1323,7 +1323,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO8(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS)
},
@@ -1339,7 +1339,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO8(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS)
},
@@ -1356,7 +1356,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO8(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS)
},
@@ -1373,7 +1373,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO8(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS)
},
@@ -1390,7 +1390,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO8(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS)
},
@@ -1407,7 +1407,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO8(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS)
},
@@ -1424,7 +1424,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO8(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS)
},
@@ -1441,7 +1441,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO8(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS)
},
@@ -1459,7 +1459,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::RU_RUS,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO8(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GAMEOPTION_LOL_SCROLLING, GAMEOPTION_LOL_CURSORS)
},
@@ -1510,7 +1510,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO,
GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -1526,7 +1526,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO,
GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_MIDIPCSPK, GUIO_RENDERVGA)
},
@@ -1544,7 +1544,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_TESTING,
GUIO7(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GUIO_RENDEREGA, GUIO_RENDERCGA, GAMEOPTION_EOB_HPGRAPHS)
},
@@ -1560,7 +1560,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_TESTING,
GUIO7(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GUIO_RENDEREGA, GUIO_RENDERCGA, GAMEOPTION_EOB_HPGRAPHS)
},
@@ -1576,7 +1576,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_TESTING,
GUIO6(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GUIO_RENDEREGA, GAMEOPTION_EOB_HPGRAPHS)
},
@@ -1592,7 +1592,7 @@ const KYRAGameDescription adGameDescs[] = {
{ 0, 0, 0, 0 }
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_TESTING,
GUIO6(GUIO_NOSPEECH, GUIO_MIDIADLIB, GUIO_MIDIPCSPK, GUIO_RENDERVGA, GUIO_RENDEREGA, GAMEOPTION_EOB_HPGRAPHS)
},
diff --git a/engines/kyra/eob.cpp b/engines/kyra/eob.cpp
index 1fb4d0a790..405ea2129a 100644
--- a/engines/kyra/eob.cpp
+++ b/engines/kyra/eob.cpp
@@ -178,13 +178,14 @@ void EoBEngine::runNpcDialogue(int npcIndex) {
case 1:
if (!checkScriptFlags(0x10000)) {
if (checkScriptFlags(0x8000)) {
- a = 1;
+ a = 13;
} else {
setScriptFlags(0x8000);
r = DLG2(3, 3);
+ a = 4;
}
if (!r)
- r = DLG2(a ? 13 : 4, 4);
+ r = DLG2(a, 4);
if (!r) {
for (a = 0; a < 6; a++)
@@ -214,8 +215,8 @@ void EoBEngine::runNpcDialogue(int npcIndex) {
if (!checkScriptFlags(0x100000)) {
if (deletePartyItems(6, -1)) {
- //_npcSequenceSub = 0;
- //drawNpcScene(npcIndex);
+ _npcSequenceSub = 0;
+ drawNpcScene(npcIndex);
TXT(28);
createItemOnCurrentBlock(32);
setScriptFlags(0x100000);
@@ -338,6 +339,14 @@ void EoBEngine::replaceMonster(int unit, uint16 block, int pos, int dir, int typ
}
}
+bool EoBEngine::killMonsterExtra(EoBMonsterInPlay *m) {
+ if (m->type == 21) {
+ _playFinale = true;
+ _runFlag = false;
+ }
+ return true;
+}
+
void EoBEngine::updateScriptTimersExtra() {
int cnt = 0;
for (int i = 1; i < 30; i++) {
diff --git a/engines/kyra/eob.h b/engines/kyra/eob.h
index bf5440b942..b423b0da9d 100644
--- a/engines/kyra/eob.h
+++ b/engines/kyra/eob.h
@@ -74,6 +74,7 @@ private:
// Monsters
void replaceMonster(int unit, uint16 block, int d, int dir, int type, int shpIndex, int mode, int h2, int randItem, int fixedItem);
+ bool killMonsterExtra(EoBMonsterInPlay *m);
void updateScriptTimersExtra();
// Level
diff --git a/engines/kyra/eobcommon.h b/engines/kyra/eobcommon.h
index 1a74321364..6421159dbe 100644
--- a/engines/kyra/eobcommon.h
+++ b/engines/kyra/eobcommon.h
@@ -487,7 +487,7 @@ protected:
void placeMonster(EoBMonsterInPlay *m, uint16 block, int dir);
virtual void replaceMonster(int b, uint16 block, int pos, int dir, int type, int shpIndex, int mode, int h2, int randItem, int fixedItem) = 0;
void killMonster(EoBMonsterInPlay *m, bool giveExperience);
- virtual bool killMonsterExtra(EoBMonsterInPlay *m);
+ virtual bool killMonsterExtra(EoBMonsterInPlay *m) = 0;
int countSpecificMonsters(int type);
void updateAttackingMonsterFlags();
diff --git a/engines/kyra/gui_lol.cpp b/engines/kyra/gui_lol.cpp
index b73eddbaf3..8808c313fc 100644
--- a/engines/kyra/gui_lol.cpp
+++ b/engines/kyra/gui_lol.cpp
@@ -373,8 +373,8 @@ void LoLEngine::gui_drawCharPortraitWithStats(int charNum) {
} else {
gui_drawLiveMagicBar(33, 32, _characters[charNum].magicPointsCur, 0, _characters[charNum].magicPointsMax, 5, 32, 162, 1, 0);
gui_drawLiveMagicBar(39, 32, _characters[charNum].hitPointsCur, 0, _characters[charNum].hitPointsMax, 5, 32, 154, 1, 1);
- _screen->printText((_flags.platform == Common::kPlatformPC && !_flags.isTalkie) ? "M" : getLangString(0x4253), 33, 1, 160, 0);
- _screen->printText((_flags.platform == Common::kPlatformPC && !_flags.isTalkie) ? "H" : getLangString(0x4254), 39, 1, 152, 0);
+ _screen->printText((_flags.platform == Common::kPlatformDOS && !_flags.isTalkie) ? "M" : getLangString(0x4253), 33, 1, 160, 0);
+ _screen->printText((_flags.platform == Common::kPlatformDOS && !_flags.isTalkie) ? "H" : getLangString(0x4254), 39, 1, 152, 0);
}
int spellLevels = 0;
diff --git a/engines/kyra/kyra_hof.cpp b/engines/kyra/kyra_hof.cpp
index b180285ffc..ce9b530dbe 100644
--- a/engines/kyra/kyra_hof.cpp
+++ b/engines/kyra/kyra_hof.cpp
@@ -244,7 +244,7 @@ Common::Error KyraEngine_HoF::go() {
// load just the pak files needed for ingame
_staticres->loadStaticResourceFile();
- if (_flags.platform == Common::kPlatformPC && _flags.isTalkie) {
+ if (_flags.platform == Common::kPlatformDOS && _flags.isTalkie) {
if (!_res->loadFileList("FILEDATA.FDT"))
error("couldn't load 'FILEDATA.FDT'");
} else {
@@ -990,7 +990,7 @@ void KyraEngine_HoF::loadNPCScript() {
char filename[] = "_NPC.EMC";
- if (_flags.platform != Common::kPlatformPC || _flags.isTalkie) {
+ if (_flags.platform != Common::kPlatformDOS || _flags.isTalkie) {
switch (_lang) {
case 0:
filename[5] = 'E';
@@ -1449,7 +1449,7 @@ void KyraEngine_HoF::snd_playSoundEffect(int track, int volume) {
int16 vocIndex = (int16)READ_LE_UINT16(&_ingameSoundIndex[track * 2]);
if (vocIndex != -1) {
_sound->voicePlay(_ingameSoundList[vocIndex], 0, 255, 255, true);
- } else if (_flags.platform == Common::kPlatformPC) {
+ } else if (_flags.platform == Common::kPlatformDOS) {
if (_sound->getSfxType() == Sound::kMidiMT32)
track = track < _mt32SfxMapSize ? _mt32SfxMap[track] - 1 : -1;
else if (_sound->getSfxType() == Sound::kMidiGM)
diff --git a/engines/kyra/lol.cpp b/engines/kyra/lol.cpp
index 3af65d9b7a..3695041b83 100644
--- a/engines/kyra/lol.cpp
+++ b/engines/kyra/lol.cpp
@@ -535,7 +535,7 @@ Common::Error LoLEngine::go() {
_sound->loadSoundFile("sound.dat");
_sound->selectAudioResourceSet(kMusicIngame);
- if (_flags.platform != Common::kPlatformPC)
+ if (_flags.platform != Common::kPlatformDOS)
_sound->loadSoundFile(0);
_tim = new TIMInterpreter_LoL(this, _screen, _system);
diff --git a/engines/kyra/saveload_eob.cpp b/engines/kyra/saveload_eob.cpp
index 1e5b40af83..aa223414bc 100644
--- a/engines/kyra/saveload_eob.cpp
+++ b/engines/kyra/saveload_eob.cpp
@@ -768,6 +768,7 @@ Common::String EoBCoreEngine::readOriginalSaveFile(Common::String &file) {
l->flags = new uint16[1024];
memset(l->flags, 0, 1024 * sizeof(uint16));
EoBMonsterInPlay *lm = new EoBMonsterInPlay[30];
+ memset(lm, 0, 30 * sizeof(EoBMonsterInPlay));
l->monsters = lm;
EoBFlyingObject *lf = new EoBFlyingObject[_numFlyingObjects];
memset(lf, 0, _numFlyingObjects * sizeof(EoBFlyingObject));
@@ -826,7 +827,7 @@ Common::String EoBCoreEngine::readOriginalSaveFile(Common::String &file) {
m->sub = in.readByte();
}
- _levelBlockProperties[m->block].flags++;
+ l->flags[m->block]++;
}
if (_flags.gameID == GI_EOB1)
diff --git a/engines/kyra/scene_eob.cpp b/engines/kyra/scene_eob.cpp
index 45de232cb6..cfac5db8b3 100644
--- a/engines/kyra/scene_eob.cpp
+++ b/engines/kyra/scene_eob.cpp
@@ -86,6 +86,10 @@ void EoBCoreEngine::loadLevel(int level, int sub) {
pos += 2;
}
+ // WORKAROUND for bug #3596547 (EOB1: Door Buttons Don't Work)
+ if (_flags.gameID == GI_EOB1 && level == 7 && _levelBlockProperties[0x035C].assignedObjects == 0x0E89)
+ _levelBlockProperties[0x035C].assignedObjects = 0x0E8D;
+
loadVcnData(gfxFile.c_str(), (_flags.gameID == GI_EOB1) ? _cgaMappingLevel[_cgaLevelMappingIndex[level - 1]] : 0);
_screen->loadEoBBitmap("INVENT", _cgaMappingInv, 5, 3, 2);
delayUntil(end);
diff --git a/engines/kyra/scene_hof.cpp b/engines/kyra/scene_hof.cpp
index f6cd77ca89..62690c4766 100644
--- a/engines/kyra/scene_hof.cpp
+++ b/engines/kyra/scene_hof.cpp
@@ -437,7 +437,7 @@ void KyraEngine_HoF::startSceneScript(int unk1) {
strcpy(filename, _sceneList[sceneId].filename1);
strcat(filename, ".");
- strcat(filename, _scriptLangExt[(_flags.platform == Common::kPlatformPC && !_flags.isTalkie) ? 0 : _lang]);
+ strcat(filename, _scriptLangExt[(_flags.platform == Common::kPlatformDOS && !_flags.isTalkie) ? 0 : _lang]);
_res->exists(filename, true);
_emc->load(filename, &_sceneScriptData, &_opcodes);
diff --git a/engines/kyra/scene_rpg.cpp b/engines/kyra/scene_rpg.cpp
index 6d724efed0..927d891a5f 100644
--- a/engines/kyra/scene_rpg.cpp
+++ b/engines/kyra/scene_rpg.cpp
@@ -563,9 +563,9 @@ void KyraRpgEngine::openCloseDoor(int block, int openClose) {
int c = (_wllWallFlags[_levelBlockProperties[block].walls[0]] & 8) ? 0 : 1;
int v = _levelBlockProperties[block].walls[c];
- int flg = (openClose == 1) ? 0x10 : (openClose == -1 ? 0x20 : 0);
+ int flg = (_flags.gameID == GI_EOB1) ? 1 : ((openClose == 1) ? 0x10 : (openClose == -1 ? 0x20 : 0));
- if (_wllWallFlags[v] & flg)
+ if ((_flags.gameID == GI_EOB1 && openClose == -1 && !(_wllWallFlags[v] & flg)) || (!(_flags.gameID == GI_EOB1 && openClose == -1) && (_wllWallFlags[v] & flg)))
return;
for (int i = 0; i < 3; i++) {
diff --git a/engines/kyra/script_eob.cpp b/engines/kyra/script_eob.cpp
index de4d01b254..4a6a498173 100644
--- a/engines/kyra/script_eob.cpp
+++ b/engines/kyra/script_eob.cpp
@@ -216,21 +216,25 @@ bool EoBInfProcessor::preventRest() const {
void EoBInfProcessor::loadState(Common::SeekableSubReadStreamEndian &in, bool origFile) {
_preventRest = (_vm->game() == GI_EOB1 && origFile) ? 0 : in.readByte();
- int numFlags = (_vm->game() == GI_EOB1 && origFile) ? 13 : 18;
+ int numFlags = (_vm->game() == GI_EOB1 && origFile) ? 12 : 18;
for (int i = 0; i < numFlags; i++)
_flagTable[i] = in.readUint32();
+ if (_vm->game() == GI_EOB1 && origFile)
+ setFlags(in.readUint32());
}
void EoBInfProcessor::saveState(Common::OutSaveFile *out, bool origFile) {
if (_vm->game() == GI_EOB2 || !origFile)
out->writeByte(_preventRest);
- int numFlags = (_vm->game() == GI_EOB1 && origFile) ? 13 : 18;
+ int numFlags = (_vm->game() == GI_EOB1 && origFile) ? 12 : 18;
for (int i = 0; i < numFlags; i++) {
if (origFile)
out->writeUint32LE(_flagTable[i]);
else
out->writeUint32BE(_flagTable[i]);
}
+ if (_vm->game() == GI_EOB1 && origFile)
+ out->writeUint32LE(_flagTable[17]);
}
void EoBInfProcessor::reset() {
diff --git a/engines/kyra/script_hof.cpp b/engines/kyra/script_hof.cpp
index 5bf8f6e78d..f6fde65109 100644
--- a/engines/kyra/script_hof.cpp
+++ b/engines/kyra/script_hof.cpp
@@ -362,7 +362,7 @@ int KyraEngine_HoF::o2_addItemToCurScene(EMCState *script) {
int KyraEngine_HoF::o2_loadSoundFile(EMCState *script) {
debugC(3, kDebugLevelScriptFuncs, "KyraEngine_HoF::o2_loadSoundFile(%p) (%d)", (const void *)script, stackPos(0));
- if (_flags.platform == Common::kPlatformPC)
+ if (_flags.platform == Common::kPlatformDOS)
snd_loadSoundFile(stackPos(0));
return 0;
}
diff --git a/engines/kyra/sequences_hof.cpp b/engines/kyra/sequences_hof.cpp
index 306f504b9e..9fcce4eb55 100644
--- a/engines/kyra/sequences_hof.cpp
+++ b/engines/kyra/sequences_hof.cpp
@@ -1750,7 +1750,7 @@ bool SeqPlayer_HOF::countDownRunning() {
#define CASE_ALT(dosCase, towns98Case)\
case dosCase:\
case towns98Case:\
- if (!((_callbackCurrentFrame == towns98Case && (_vm->gameFlags().platform == Common::kPlatformFMTowns || _vm->gameFlags().platform == Common::kPlatformPC98)) || (_callbackCurrentFrame == dosCase && _vm->gameFlags().platform == Common::kPlatformPC)))\
+ if (!((_callbackCurrentFrame == towns98Case && (_vm->gameFlags().platform == Common::kPlatformFMTowns || _vm->gameFlags().platform == Common::kPlatformPC98)) || (_callbackCurrentFrame == dosCase && _vm->gameFlags().platform == Common::kPlatformDOS)))\
break;
int SeqPlayer_HOF::cbHOF_westwood(WSAMovie_v2 *wsaObj, int x, int y, int frm) {
@@ -1774,7 +1774,7 @@ int SeqPlayer_HOF::cbHOF_title(WSAMovie_v2 *wsaObj, int x, int y, int frm) {
_result = _menu->handle(11) + 1;
_updateAnimations = false;
- if (_result == 1) {
+ if (_result == 1 || _result == 3) {
_curScene = _lastScene;
_preventLooping = true;
}
diff --git a/engines/kyra/sequences_lok.cpp b/engines/kyra/sequences_lok.cpp
index 994bd2ba9b..2a2f9a5493 100644
--- a/engines/kyra/sequences_lok.cpp
+++ b/engines/kyra/sequences_lok.cpp
@@ -250,7 +250,7 @@ bool KyraEngine_LoK::seq_introStory() {
if (!textEnabled() && speechEnabled() && _flags.lang != Common::IT_ITA)
return false;
- if (((_flags.lang == Common::EN_ANY || _flags.lang == Common::RU_RUS) && !_flags.isTalkie && _flags.platform == Common::kPlatformPC) || _flags.platform == Common::kPlatformAmiga)
+ if (((_flags.lang == Common::EN_ANY || _flags.lang == Common::RU_RUS) && !_flags.isTalkie && _flags.platform == Common::kPlatformDOS) || _flags.platform == Common::kPlatformAmiga)
_screen->loadBitmap("TEXT.CPS", 3, 3, &_screen->getPalette(0));
else if (_flags.lang == Common::EN_ANY || _flags.lang == Common::JA_JPN)
_screen->loadBitmap("TEXT_ENG.CPS", 3, 3, &_screen->getPalette(0));
diff --git a/engines/kyra/sound.cpp b/engines/kyra/sound.cpp
index 32d175bdb0..cb6faf2580 100644
--- a/engines/kyra/sound.cpp
+++ b/engines/kyra/sound.cpp
@@ -288,7 +288,7 @@ void KyraEngine_v1::snd_playWanderScoreViaMap(int command, int restart) {
// XXX
//}
- if (_flags.platform == Common::kPlatformPC || _flags.platform == Common::kPlatformMacintosh) {
+ if (_flags.platform == Common::kPlatformDOS || _flags.platform == Common::kPlatformMacintosh) {
assert(command*2+1 < _trackMapSize);
if (_curMusicTheme != _trackMap[command*2]) {
if (_trackMap[command*2] != -1 && _trackMap[command*2] != -2)
diff --git a/engines/kyra/sound_lol.cpp b/engines/kyra/sound_lol.cpp
index 48230d025c..7ac33967dd 100644
--- a/engines/kyra/sound_lol.cpp
+++ b/engines/kyra/sound_lol.cpp
@@ -189,7 +189,7 @@ void LoLEngine::snd_playSoundEffect(int track, int volume) {
if (hasVocFile) {
if (_sound->isVoicePresent(_ingameSoundList[vocIndex]))
_sound->voicePlay(_ingameSoundList[vocIndex], 0, volume, priority, true);
- } else if (_flags.platform == Common::kPlatformPC) {
+ } else if (_flags.platform == Common::kPlatformDOS) {
if (_sound->getSfxType() == Sound::kMidiMT32)
track = (track < _ingameMT32SoundIndexSize) ? (_ingameMT32SoundIndex[track] - 1) : -1;
else if (_sound->getSfxType() == Sound::kMidiGM)
@@ -247,7 +247,7 @@ void LoLEngine::snd_playQueuedEffects() {
void LoLEngine::snd_loadSoundFile(int track) {
if (_sound->musicEnabled()) {
- if (_flags.platform == Common::kPlatformPC) {
+ if (_flags.platform == Common::kPlatformDOS) {
int t = (track - 250) * 3;
if (_curMusicFileIndex != _musicTrackMap[t] || _curMusicFileExt != (char)_musicTrackMap[t + 1]) {
snd_stopMusic();
@@ -269,7 +269,7 @@ int LoLEngine::snd_playTrack(int track) {
_lastMusicTrack = track;
if (_sound->musicEnabled()) {
- if (_flags.platform == Common::kPlatformPC) {
+ if (_flags.platform == Common::kPlatformDOS) {
snd_loadSoundFile(track);
int t = (track - 250) * 3;
_sound->playTrack(_musicTrackMap[t + 2]);
diff --git a/engines/kyra/sound_midi.cpp b/engines/kyra/sound_midi.cpp
index b93b42fa9c..fc6e92abd9 100644
--- a/engines/kyra/sound_midi.cpp
+++ b/engines/kyra/sound_midi.cpp
@@ -323,7 +323,7 @@ void MidiOutput::setSourceVolume(int source, int volume, bool apply) {
for (int i = 0; i < 16; ++i) {
// Controller 0 in the state table should always be '7' aka
// volume control
- byte realVol = (_channels[i].controllers[0].value * volume) >> 8;
+ byte realVol = (_sources[source].controllers[i][0].value * volume) >> 8;
sendIntern(0xB0, i, 0x07, realVol);
}
}
diff --git a/engines/kyra/sprites_eob.cpp b/engines/kyra/sprites_eob.cpp
index 1d4c143185..b96f2eca08 100644
--- a/engines/kyra/sprites_eob.cpp
+++ b/engines/kyra/sprites_eob.cpp
@@ -213,20 +213,11 @@ void EoBCoreEngine::killMonster(EoBMonsterInPlay *m, bool giveExperience) {
if (killMonsterExtra(m)) {
placeMonster(m, 0, -1);
- if ((_flags.gameID == GI_EOB1) && (m->type == 21)) {
- _playFinale = true;
- _runFlag = false;
- }
-
if (m->mode == 8)
updateAttackingMonsterFlags();
}
}
-bool EoBCoreEngine::killMonsterExtra(EoBMonsterInPlay *) {
- return true;
-}
-
int EoBCoreEngine::countSpecificMonsters(int type) {
int res = 0;
for (int i = 0; i < 30; i++) {
diff --git a/engines/kyra/staticres.cpp b/engines/kyra/staticres.cpp
index bac31f0a3e..c52b0a04ad 100644
--- a/engines/kyra/staticres.cpp
+++ b/engines/kyra/staticres.cpp
@@ -102,7 +102,7 @@ byte getLanguageID(const GameFlags &flags) {
}
const IndexTable iPlatformTable[] = {
- { Common::kPlatformPC, 0 },
+ { Common::kPlatformDOS, 0 },
{ Common::kPlatformAmiga, 1 },
{ Common::kPlatformFMTowns, 2 },
{ Common::kPlatformPC98, 3 },
@@ -818,12 +818,12 @@ void KyraEngine_LoK::initStaticResource() {
for (int i = 0; i < soundFilesSize; i++)
soundFiles[i] = (i < size1) ? soundfiles1[i] : soundfiles2[i - size1];
}
- const char *const *soundFilesIntro = _staticres->loadStrings(k1AudioTracksIntro, temp);
+ const char *const *soundFilesIntro = _staticres->loadStrings(k1AudioTracksIntro, soundFilesIntroSize);
const int32 *cdaTable = (const int32 *)_staticres->loadRawData(k1TownsCDATable, cdaTableSize);
// FIXME: It seems Kyra1 MAC CD includes AdLib and MIDI music and sfx, thus we enable
// support for those for now. (Based on patch #2767489 "Support for Mac Kyrandia 1 CD" by satz).
- if (_flags.platform == Common::kPlatformPC || _flags.platform == Common::kPlatformMacintosh) {
+ if (_flags.platform == Common::kPlatformDOS || _flags.platform == Common::kPlatformMacintosh) {
SoundResourceInfo_PC resInfoIntro(soundFilesIntro, soundFilesIntroSize);
SoundResourceInfo_PC resInfoIngame(soundFiles, soundFilesSize);
_sound->initAudioResourceInfo(kMusicIntro, &resInfoIntro);
@@ -956,7 +956,7 @@ void KyraEngine_LoK::loadButtonShapes() {
void KyraEngine_LoK::loadMainScreen(int page) {
_screen->clearPage(page);
- if (((_flags.lang == Common::EN_ANY || _flags.lang == Common::RU_RUS) && !_flags.isTalkie && _flags.platform == Common::kPlatformPC) || _flags.platform == Common::kPlatformAmiga)
+ if (((_flags.lang == Common::EN_ANY || _flags.lang == Common::RU_RUS) && !_flags.isTalkie && _flags.platform == Common::kPlatformDOS) || _flags.platform == Common::kPlatformAmiga)
_screen->loadBitmap("MAIN15.CPS", page, page, &_screen->getPalette(0));
else if (_flags.lang == Common::EN_ANY || _flags.lang == Common::JA_JPN || (_flags.isTalkie && _flags.lang == Common::IT_ITA))
_screen->loadBitmap("MAIN_ENG.CPS", page, page, 0);
@@ -997,7 +997,7 @@ void KyraEngine_HoF::initStaticResource() {
_itemAnimDefinition = _staticres->loadItemAnimDefinition(k2IngameShapeAnimData, _itemAnimDefinitionSize);
// assign music data
- if (_flags.platform == Common::kPlatformPC) {
+ if (_flags.platform == Common::kPlatformDOS) {
SoundResourceInfo_PC resInfoIntro(_musicFileListIntro, _musicFileListIntroSize);
SoundResourceInfo_PC resInfoIngame(_musicFileListIngame, _musicFileListIngameSize);
SoundResourceInfo_PC resInfoFinale(_musicFileListFinale, _musicFileListFinaleSize);
diff --git a/engines/kyra/staticres_lol.cpp b/engines/kyra/staticres_lol.cpp
index a1c5ff340c..c2cdcf9f51 100644
--- a/engines/kyra/staticres_lol.cpp
+++ b/engines/kyra/staticres_lol.cpp
@@ -215,7 +215,7 @@ void StaticResource::freeButtonDefs(void *&ptr, int &size) {
void LoLEngine::initStaticResource() {
// assign music resource data.
- if (_flags.platform == Common::kPlatformPC) {
+ if (_flags.platform == Common::kPlatformDOS) {
if (_flags.isDemo) {
static const char *const file[] = { "LOREDEMO" };
SoundResourceInfo_PC resInfoDemo(file, ARRAYSIZE(file));
diff --git a/engines/kyra/text_hof.cpp b/engines/kyra/text_hof.cpp
index 7fa823da0f..f1933e9623 100644
--- a/engines/kyra/text_hof.cpp
+++ b/engines/kyra/text_hof.cpp
@@ -430,7 +430,7 @@ void KyraEngine_HoF::updateDlgBuffer() {
Common::String filename = Common::String::format("CH%.02d-S%.02d.DL", _currentChapter, _npcTalkDlgIndex);
const char *suffix = _flags.isTalkie ? suffixTalkie : suffixTowns;
- if (_flags.platform != Common::kPlatformPC || _flags.isTalkie)
+ if (_flags.platform != Common::kPlatformDOS || _flags.isTalkie)
filename += suffix[_lang];
else
filename += 'G';
diff --git a/engines/lastexpress/entities/august.cpp b/engines/lastexpress/entities/august.cpp
index dbae7bad20..b0bc0732d4 100644
--- a/engines/lastexpress/entities/august.cpp
+++ b/engines/lastexpress/entities/august.cpp
@@ -3248,8 +3248,9 @@ IMPLEMENT_FUNCTION(63, August, function63)
break;
case kAction1:
- if (getEntities()->isInSalon(kEntityAlexei))
+ if (getEntities()->isInSalon(kEntityAlexei)) {
RESET_ENTITY_STATE(kEntityAlexei, Alexei, setup_function44);
+ }
getData()->inventoryItem = kItemNone;
diff --git a/engines/lastexpress/entities/kahina.cpp b/engines/lastexpress/entities/kahina.cpp
index 7860836a26..467c8d8b3c 100644
--- a/engines/lastexpress/entities/kahina.cpp
+++ b/engines/lastexpress/entities/kahina.cpp
@@ -723,8 +723,9 @@ IMPLEMENT_FUNCTION_II(19, Kahina, function19, CarIndex, EntityPosition)
break;
case kActionNone:
- if (getEvent(kEventAnnaBaggageArgument))
+ if (getEvent(kEventAnnaBaggageArgument)) {
RESET_ENTITY_STATE(kEntityKahina, Kahina, setup_function22);
+ }
if (getEntities()->updateEntity(kEntityKahina, (CarIndex)params->param1, (EntityPosition)params->param2))
callbackAction();
diff --git a/engines/lure/detection.cpp b/engines/lure/detection.cpp
index ab7615c265..64d26c4c04 100644
--- a/engines/lure/detection.cpp
+++ b/engines/lure/detection.cpp
@@ -70,7 +70,7 @@ static const LureGameDescription gameDescriptions[] = {
"VGA",
AD_ENTRY1("disk1.vga", "b2a8aa6d7865813a17a3c636e063572e"),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -83,7 +83,7 @@ static const LureGameDescription gameDescriptions[] = {
"EGA",
AD_ENTRY1("disk1.ega", "e9c9fdd8a19f7910d68e53cb84651273"),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -96,7 +96,7 @@ static const LureGameDescription gameDescriptions[] = {
"VGA",
AD_ENTRY1("disk1.vga", "cf69d5ada228dd74f89046691c16aafb"),
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -109,7 +109,7 @@ static const LureGameDescription gameDescriptions[] = {
"EGA",
AD_ENTRY1("disk1.ega", "b80aced0321f64c58df2c7d3d74dfe79"),
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -122,7 +122,7 @@ static const LureGameDescription gameDescriptions[] = {
"",
AD_ENTRY1("disk1.vga", "7aa19e444dab1ac7194d9f7a40ffe54a"),
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -135,7 +135,7 @@ static const LureGameDescription gameDescriptions[] = {
"",
AD_ENTRY1("disk1.vga", "894a2c2caeccbad2fc2f4a79a8ee47b0"),
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -148,7 +148,7 @@ static const LureGameDescription gameDescriptions[] = {
"",
AD_ENTRY1("disk1.vga", "1c94475c1bb7e0e88c1757d3b5377e94"),
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -161,7 +161,7 @@ static const LureGameDescription gameDescriptions[] = {
"",
AD_ENTRY1("disk1.vga", "1751145b653959f7a64fe1618d6b97ac"),
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
diff --git a/engines/lure/res_struct.cpp b/engines/lure/res_struct.cpp
index aee4f11215..15e7c1302d 100644
--- a/engines/lure/res_struct.cpp
+++ b/engines/lure/res_struct.cpp
@@ -1262,7 +1262,7 @@ bool ValueTableData::isKnownField(uint16 fieldIndex) {
}
uint16 ValueTableData::getField(uint16 fieldIndex) {
- if (fieldIndex > NUM_VALUE_FIELDS)
+ if (fieldIndex >= NUM_VALUE_FIELDS)
error("Invalid field index specified %d", fieldIndex);
// if (!isKnownField(fieldIndex))
// warning("Unknown field index %d in GET_FIELD opcode", fieldIndex);
@@ -1274,7 +1274,7 @@ uint16 ValueTableData::getField(FieldName fieldName) {
}
void ValueTableData::setField(uint16 fieldIndex, uint16 value) {
- if (fieldIndex > NUM_VALUE_FIELDS)
+ if (fieldIndex >= NUM_VALUE_FIELDS)
error("Invalid field index specified %d", fieldIndex);
_fieldList[fieldIndex] = value;
// if (!isKnownField(fieldIndex))
diff --git a/engines/lure/scripts.cpp b/engines/lure/scripts.cpp
index df2f06df96..8afdaa5ad1 100644
--- a/engines/lure/scripts.cpp
+++ b/engines/lure/scripts.cpp
@@ -673,7 +673,7 @@ void Script::barmanServe(uint16 v1, uint16 v2, uint16 v3) {
// Stores the current number of groats in the general field
void Script::getNumGroats(uint16 v1, uint16 v2, uint16 v3) {
- ValueTableData fields = Resources::getReference().fieldList();
+ ValueTableData &fields = Resources::getReference().fieldList();
fields.setField(GENERAL, fields.numGroats());
}
diff --git a/engines/made/console.cpp b/engines/made/console.cpp
index c835988788..0076b6a4f9 100644
--- a/engines/made/console.cpp
+++ b/engines/made/console.cpp
@@ -26,6 +26,7 @@
namespace Made {
MadeConsole::MadeConsole(MadeEngine *vm) : GUI::Debugger(), _vm(vm) {
+ assert(_vm);
}
MadeConsole::~MadeConsole() {
diff --git a/engines/made/database.cpp b/engines/made/database.cpp
index 2b87f97392..bf47164e8f 100644
--- a/engines/made/database.cpp
+++ b/engines/made/database.cpp
@@ -694,7 +694,7 @@ int16 GameDatabaseV3::savegame(const char *filename, const char *description, in
warning("Can't create file '%s', game not saved", filename);
return 6;
}
- strncpy(desc, description, 64);
+ Common::strlcpy(desc, description, 64);
out->writeUint32BE(MKTAG('S','G','A','M'));
out->writeUint32LE(size);
out->writeUint16LE(version);
diff --git a/engines/made/detection.cpp b/engines/made/detection.cpp
index 2591e92af3..e8b755cb40 100644
--- a/engines/made/detection.cpp
+++ b/engines/made/detection.cpp
@@ -78,7 +78,7 @@ static const MadeGameDescription gameDescriptions[] = {
"V1.0, 9/15/93, installed, CD",
AD_ENTRY1("rtzcd.dat", "e95c38ded389e39cfbf87a8cb250b12e"),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -96,7 +96,7 @@ static const MadeGameDescription gameDescriptions[] = {
"V1.0, 9/15/93, CD",
AD_ENTRY1("rtzcd.red", "cd8b62ece4677c438688c1de3f5379b9"),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -113,7 +113,7 @@ static const MadeGameDescription gameDescriptions[] = {
"V1.1, 12/7/93, installed, CD",
AD_ENTRY1s("rtzcd.dat", "a1db8c97a78dae10f91d356f16ad07b8", 536064),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -130,7 +130,7 @@ static const MadeGameDescription gameDescriptions[] = {
"V1.1, 12/7/93, CD",
AD_ENTRY1s("rtzcd.red", "c4e2430e6b6c6ff1562a80fb4a9df24c", 276177),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -148,7 +148,7 @@ static const MadeGameDescription gameDescriptions[] = {
"V1.2, 9/29/94, installed, CD",
AD_ENTRY1("rtzcd.dat", "9d740378da2d16e83d0d0efff01bf83a"),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -165,7 +165,7 @@ static const MadeGameDescription gameDescriptions[] = {
"V1.2, 9/29/94, CD",
AD_ENTRY1s("rtzcd.red", "946997d8b0aa6cb4e848bad02a1fc3d2", 276584),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -183,7 +183,7 @@ static const MadeGameDescription gameDescriptions[] = {
"V1.2, 9/29/94, installed, CD",
AD_ENTRY1s("rtzcd.dat", "9d740378da2d16e83d0d0efff01bf83a", 525824),
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -201,7 +201,7 @@ static const MadeGameDescription gameDescriptions[] = {
"V1.2, 4/18/95, CD",
AD_ENTRY1s("rtzcd.red", "946997d8b0aa6cb4e848bad02a1fc3d2", 355442),
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -219,7 +219,7 @@ static const MadeGameDescription gameDescriptions[] = {
"V1.2, 3/31/95, installed, CD",
AD_ENTRY1s("rtzcd.dat", "5b86035aed0277f96e3d173542b5364a", 523776),
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -237,7 +237,7 @@ static const MadeGameDescription gameDescriptions[] = {
"V1.2, 3/31/95, CD",
AD_ENTRY1s("rtzcd.red", "946997d8b0aa6cb4e848bad02a1fc3d2", 354971),
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -255,7 +255,7 @@ static const MadeGameDescription gameDescriptions[] = {
"V1.2, 5/13/95, installed, CD",
AD_ENTRY1s("rtzcd.dat", "bde8251a8e34e87c54e3f93147d56c9e", 523776),
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -273,7 +273,7 @@ static const MadeGameDescription gameDescriptions[] = {
"V1.2, 3/31/95, CD",
AD_ENTRY1s("rtzcd.red", "946997d8b0aa6cb4e848bad02a1fc3d2", 354614),
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -290,7 +290,7 @@ static const MadeGameDescription gameDescriptions[] = {
"Floppy",
AD_ENTRY1("rtz.prj", "764d02f52ce1c219f2c0066677fba4ce"),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -307,7 +307,7 @@ static const MadeGameDescription gameDescriptions[] = {
"Demo",
AD_ENTRY1("demo.dat", "2a6a1354bd5346fad4aee08e5b56caaa"),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO,
GUIO0()
},
@@ -325,7 +325,7 @@ static const MadeGameDescription gameDescriptions[] = {
"",
AD_ENTRY1("rtzcd.dat", "c4fccf67ad247f09b94c3c808b138576"),
Common::JA_JPN,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -378,7 +378,7 @@ static const MadeGameDescription gameDescriptions[] = {
"",
AD_ENTRY1("manhole.dat", "cb21e31ed35c963208343bc995225b73"),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO1(GUIO_NOSPEECH)
},
@@ -395,7 +395,7 @@ static const MadeGameDescription gameDescriptions[] = {
"EGA",
AD_ENTRY1("manhole.dat", "2b1658292599a861c4cd3cf6cdb3c581"),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -412,7 +412,7 @@ static const MadeGameDescription gameDescriptions[] = {
"",
AD_ENTRY1("lgop2.dat", "8137996db200ff67e8f172ff106f2e48"),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -430,7 +430,7 @@ static const MadeGameDescription gameDescriptions[] = {
"",
AD_ENTRY1s("lgop2.dat", "a0ffea6a3b7e39bd861edd00c397641c", 299466),
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -448,7 +448,7 @@ static const MadeGameDescription gameDescriptions[] = {
"",
AD_ENTRY1s("lgop2.dat", "f9e974087af7cf4b7ec2d8dc45d01e0c", 295366),
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -466,7 +466,7 @@ static const MadeGameDescription gameDescriptions[] = {
"",
AD_ENTRY1s("lgop2.dat", "96eb95b4d75b9a3da0b0d67e3b4a787d", 288984),
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -483,7 +483,7 @@ static const MadeGameDescription gameDescriptions[] = {
"",
AD_ENTRY1("rodneys.dat", "a79887dbaa47689facd7c6f09258ba5a"),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -506,7 +506,7 @@ static MadeGameDescription g_fallbackDesc = {
"",
AD_ENTRY1(0, 0), // This should always be AD_ENTRY1(0, 0) in the fallback descriptor
Common::UNK_LANG,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -560,7 +560,7 @@ bool MadeMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGame
const ADGameDescription *MadeMetaEngine::fallbackDetect(const FileMap &allFiles, const Common::FSList &fslist) const {
// Set the default values for the fallback descriptor's ADGameDescription part.
Made::g_fallbackDesc.desc.language = Common::UNK_LANG;
- Made::g_fallbackDesc.desc.platform = Common::kPlatformPC;
+ Made::g_fallbackDesc.desc.platform = Common::kPlatformDOS;
Made::g_fallbackDesc.desc.flags = ADGF_NO_FLAGS;
// Set default values for the fallback descriptor's MadeGameDescription part.
diff --git a/engines/mohawk/detection_tables.h b/engines/mohawk/detection_tables.h
index 87635bfc6a..0d5dc1a405 100644
--- a/engines/mohawk/detection_tables.h
+++ b/engines/mohawk/detection_tables.h
@@ -1361,6 +1361,23 @@ static const MohawkGameDescription gameDescriptions[] = {
"GRANDMA.EXE"
},
+ // Just Grandma and Me 1.1 Mac
+ // From eisnerguy1 in bug#3610725
+ {
+ {
+ "grandma",
+ "v1.1",
+ AD_ENTRY1("BookOutline", "76eb265ec5fe42bc5b07f2bb418bd871"),
+ Common::EN_ANY,
+ Common::kPlatformMacintosh,
+ ADGF_NO_FLAGS,
+ GUIO1(GUIO_NOASPECT)
+ },
+ GType_LIVINGBOOKSV1,
+ 0,
+ 0
+ },
+
// from jjnryan in bug #3389857
{
{
diff --git a/engines/mohawk/livingbooks.cpp b/engines/mohawk/livingbooks.cpp
index 2b0a45d4e6..f80dbfacbd 100644
--- a/engines/mohawk/livingbooks.cpp
+++ b/engines/mohawk/livingbooks.cpp
@@ -245,6 +245,8 @@ Common::Error MohawkEngine_LivingBooks::run() {
case Common::KEYCODE_ESCAPE:
if (_curMode == kLBIntroMode)
tryLoadPageStart(kLBControlMode, 1);
+ else
+ _video->stopVideos();
break;
case Common::KEYCODE_LEFT:
@@ -587,8 +589,8 @@ void MohawkEngine_LivingBooks::updatePage() {
_items.remove_at(i);
i--;
_orderedItems.remove(delayedEvent.item);
- delete delayedEvent.item;
_page->itemDestroyed(delayedEvent.item);
+ delete delayedEvent.item;
if (_focus == delayedEvent.item)
_focus = NULL;
break;
@@ -1356,8 +1358,9 @@ void MohawkEngine_LivingBooks::handleNotify(NotifyEvent &event) {
if (!loadPage((LBMode)event.newMode, event.newPage, event.newSubpage)) {
if (event.newPage != 0 || !loadPage((LBMode)event.newMode, _curPage, event.newSubpage))
if (event.newSubpage != 0 || !loadPage((LBMode)event.newMode, event.newPage, 1))
- error("kLBNotifyChangeMode failed to move to mode %d, page %d.%d",
- event.newMode, event.newPage, event.newSubpage);
+ if (event.newSubpage != 1 || !loadPage((LBMode)event.newMode, event.newPage, 0))
+ error("kLBNotifyChangeMode failed to move to mode %d, page %d.%d",
+ event.newMode, event.newPage, event.newSubpage);
}
break;
case 3:
@@ -3775,7 +3778,7 @@ LBMovieItem::~LBMovieItem() {
void LBMovieItem::update() {
if (_playing) {
VideoHandle videoHandle = _vm->_video->findVideoHandle(_resourceId);
- if (_vm->_video->endOfVideo(videoHandle))
+ if (videoHandle == NULL_VID_HANDLE || _vm->_video->endOfVideo(videoHandle))
done(true);
}
@@ -3785,6 +3788,7 @@ void LBMovieItem::update() {
bool LBMovieItem::togglePlaying(bool playing, bool restart) {
if (playing) {
if ((_loaded && _enabled && _globalEnabled) || _phase == kLBPhaseNone) {
+ debug("toggled video for phase %d", _phase);
_vm->_video->playMovie(_resourceId, _rect.left, _rect.top);
return true;
diff --git a/engines/mohawk/livingbooks_code.cpp b/engines/mohawk/livingbooks_code.cpp
index bb8f7a0d05..c45efb2c39 100644
--- a/engines/mohawk/livingbooks_code.cpp
+++ b/engines/mohawk/livingbooks_code.cpp
@@ -519,9 +519,17 @@ void LBCode::parseMain() {
*val = _stack.pop();
_stack.push(*val);
} else
- _stack.push(LBValue());
- } else if (_currToken == kTokenAndEquals) {
- debugN(" &= ");
+ error("assignment failed, no dest");
+// _stack.push(LBValue());
+ } else if (_currToken == kTokenPlusEquals || _currToken == kTokenMinusEquals || _currToken == kTokenAndEquals) {
+ // FIXME: do +=/-= belong here?
+ byte token = _currToken;
+ if (_currToken == kTokenPlusEquals)
+ debugN(" += ");
+ else if (_currToken == kTokenMinusEquals)
+ debugN(" -= ");
+ else if (_currToken == kTokenAndEquals)
+ debugN(" &= ");
nextToken();
parseStatement();
if (!_stack.size())
@@ -532,9 +540,19 @@ void LBCode::parseMain() {
else
val = &_vm->_variables[varname];
if (val) {
- if (val->type != kLBValueString)
- error("operator &= used on non-string");
- val->string = val->string + _stack.pop().toString();
+ if (token == kTokenAndEquals) {
+ if (val->type != kLBValueString)
+ error("operator &= used on non-string");
+ val->string = val->string + _stack.pop().toString();
+ } else {
+ // FIXME: non-integers
+ if (val->type != kLBValueInteger)
+ error("operator used on non-integer");
+ if (token == kTokenPlusEquals)
+ val->integer = val->integer + _stack.pop().toInt();
+ else
+ val->integer = val->integer - _stack.pop().toInt();
+ }
_stack.push(*val);
} else
_stack.push(LBValue());
@@ -581,6 +599,7 @@ void LBCode::parseMain() {
debugN("--");
nextToken();
+ // FIXME: do we need to handle indexing?
if (_currToken != kTokenIdentifier)
error("expected identifier");
assert(_currValue.type == kLBValueString);
@@ -669,6 +688,24 @@ void LBCode::parseMain() {
_stack.push(_stack.pop().isZero() ? 1 : 0);
break;
+ case kTokenEval:
+ // FIXME: original token?
+ debugN("..");
+ nextToken();
+ parseStatement();
+ if (!_stack.size())
+ error("eval op failed");
+ {
+ // FIXME: XXX
+ LBValue in = _stack.pop();
+ if (in.type != kLBValueString)
+ error("eval op on non-string");
+ Common::String varname = in.string;
+ LBValue &val = _vm->_variables[varname];
+ _stack.push(val);
+ }
+ break;
+
case kTokenGeneralCommand:
runGeneralCommand();
break;
@@ -692,9 +729,7 @@ void LBCode::parseMain() {
assert(val.isNumeric());
// FIXME
if (prefix == kTokenMinus)
- val.integer--;
- else
- val.integer++;
+ val.integer = -val.integer;
_stack.push(val);
}
}
@@ -1554,12 +1589,32 @@ uint LBCode::nextFreeString() {
error("nextFreeString couldn't find a space");
}
+static const char *const functionNameAliases[][2] = {
+ { "makerect", "getRect" },
+ { "makepair", "makePt" },
+ { "getframerect", "getFrameBounds" },
+ { "dragbegin", "dragBeginFrom" },
+ { "x", "xpos" },
+ { "y", "ypos" }
+};
+
/*
* Helper function for parseCode:
* Given a name, appends the appropriate data to the provided code array and
* returns true if it's a function, or false otherwise.
*/
-bool LBCode::parseCodeSymbol(const Common::String &name, uint &pos, Common::Array<byte> &code) {
+bool LBCode::parseCodeSymbol(Common::String name, uint &pos, Common::Array<byte> &code, bool useAllAliases) {
+ // Check to see if we have one of the older function names
+ // and remap it to the newer function names
+ for (uint i = 0; i < ARRAYSIZE(functionNameAliases); i++) {
+ if (name.equalsIgnoreCase(functionNameAliases[i][0])) {
+ if (name.size() == 1 && !useAllAliases)
+ continue;
+ name = functionNameAliases[i][1];
+ break;
+ }
+ }
+
// first, check whether the name matches a known function
for (uint i = 0; i < 2; i++) {
byte cmdToken;
@@ -1770,7 +1825,7 @@ uint LBCode::parseCode(const Common::String &source) {
break;
tempString += source[pos++];
}
- wasFunction = parseCodeSymbol(tempString, pos, code);
+ wasFunction = parseCodeSymbol(tempString, pos, code, true);
if (!wasFunction)
error("while parsing script '%s', encountered explicit function call to unknown function '%s'",
source.c_str(), tempString.c_str());
@@ -1805,7 +1860,7 @@ uint LBCode::parseCode(const Common::String &source) {
} else if (tempString.equalsIgnoreCase("false")) {
code.push_back(kTokenFalse);
} else {
- wasFunction = parseCodeSymbol(tempString, pos, code);
+ wasFunction = parseCodeSymbol(tempString, pos, code, false);
}
} else {
error("while parsing script '%s', couldn't parse '%c'", source.c_str(), token);
diff --git a/engines/mohawk/livingbooks_code.h b/engines/mohawk/livingbooks_code.h
index 47dd90f814..c9d9ae06e6 100644
--- a/engines/mohawk/livingbooks_code.h
+++ b/engines/mohawk/livingbooks_code.h
@@ -188,6 +188,7 @@ enum {
kTokenConstEventId = 0x42,
kTokenConstScriptOpcode = 0x43, // ??
kTokenConstScriptParam = 0x44, // ??
+ kTokenEval = 0x4b,
kTokenGeneralCommand = 0x4d,
kTokenItemCommand = 0x4e,
kTokenNotifyCommand = 0x4f,
@@ -242,7 +243,7 @@ protected:
void runNotifyCommand();
uint nextFreeString();
- bool parseCodeSymbol(const Common::String &name, uint &pos, Common::Array<byte> &code);
+ bool parseCodeSymbol(Common::String name, uint &pos, Common::Array<byte> &code, bool useAllAliases);
public:
void cmdUnimplemented(const Common::Array<LBValue> &params);
diff --git a/engines/mohawk/livingbooks_lbx.cpp b/engines/mohawk/livingbooks_lbx.cpp
index 9628e06294..2b8b22ec81 100644
--- a/engines/mohawk/livingbooks_lbx.cpp
+++ b/engines/mohawk/livingbooks_lbx.cpp
@@ -48,8 +48,10 @@ LBXDataFile::~LBXDataFile() {
enum {
kLBXDataFileOpen = 1,
+ kLBXDataFileAddSection = 3,
kLBXDataFileGetSectionList = 4,
kLBXDataFileSetCurSection = 5,
+ kLBXDataFileSetKey = 7,
kLBXDataFileLoadCurSectionVars = 8,
kLBXDataFileDeleteCurSection = 10,
kLBXDataFileSectionExists = 14
@@ -64,6 +66,14 @@ bool LBXDataFile::call(uint callId, const Common::Array<LBValue> &params, LBValu
open(params[0].toString());
return false;
+ case kLBXDataFileAddSection:
+ if (params.size() != 1)
+ error("incorrect number of parameters (%d) to LBXDataFile::addSection", params.size());
+
+ _dataFile.addSection(params[0].toString());
+ _curSection = params[0].toString();
+ return false;
+
case kLBXDataFileGetSectionList:
{
Common::SharedPtr<LBList> list = Common::SharedPtr<LBList>(new LBList);
@@ -81,6 +91,13 @@ bool LBXDataFile::call(uint callId, const Common::Array<LBValue> &params, LBValu
_curSection = params[0].toString();
return false;
+ case kLBXDataFileSetKey:
+ if (params.size() != 2)
+ error("incorrect number of parameters (%d) to LBXDataFile::setKey", params.size());
+
+ _dataFile.setKey(params[0].toString(), _curSection, params[1].toString());
+ return false;
+
case kLBXDataFileLoadCurSectionVars:
if (params.size() != 0)
error("incorrect number of parameters (%d) to LBXDataFile::loadCurSectionVars", params.size());
diff --git a/engines/mohawk/view.cpp b/engines/mohawk/view.cpp
index 36e8f8466e..719c288af5 100644
--- a/engines/mohawk/view.cpp
+++ b/engines/mohawk/view.cpp
@@ -361,8 +361,8 @@ void View::idleView() {
void View::setModule(Module *module) {
if (_currentModule) {
- module->shutdown();
- delete module;
+ _currentModule->shutdown();
+ delete _currentModule;
}
_currentModule = NULL;
diff --git a/engines/parallaction/balloons.cpp b/engines/parallaction/balloons.cpp
index 1ddd401b20..2a7e0ce375 100644
--- a/engines/parallaction/balloons.cpp
+++ b/engines/parallaction/balloons.cpp
@@ -727,7 +727,7 @@ void BalloonManager_br::cacheAnims() {
BalloonManager_br::BalloonManager_br(Parallaction_br *vm, Font *font) : _vm(vm), _numBalloons(0),
_leftBalloon(0), _rightBalloon(0), _sw(font), _se(font) {
- if (_vm->getPlatform() == Common::kPlatformPC) {
+ if (_vm->getPlatform() == Common::kPlatformDOS) {
_textColors[kSelectedColor] = 12;
_textColors[kUnselectedColor] = 0;
_textColors[kNormalColor] = 0;
diff --git a/engines/parallaction/callables_ns.cpp b/engines/parallaction/callables_ns.cpp
index c1720a1a8e..04642aa632 100644
--- a/engines/parallaction/callables_ns.cpp
+++ b/engines/parallaction/callables_ns.cpp
@@ -439,7 +439,7 @@ void Parallaction_ns::_c_closeMusic(void *) {
void Parallaction_ns::_c_startIntro(void *parm) {
_rightHandAnim = _location.findAnimation("righthand");
- if (getPlatform() == Common::kPlatformPC) {
+ if (getPlatform() == Common::kPlatformDOS) {
_soundManI->setMusicFile("intro");
_soundManI->playMusic();
}
diff --git a/engines/parallaction/detection.cpp b/engines/parallaction/detection.cpp
index 43176a0759..fb892c44b2 100644
--- a/engines/parallaction/detection.cpp
+++ b/engines/parallaction/detection.cpp
@@ -70,7 +70,7 @@ static const PARALLACTIONGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::UNK_LANG,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -153,7 +153,7 @@ static const PARALLACTIONGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::UNK_LANG,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -170,7 +170,7 @@ static const PARALLACTIONGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::UNK_LANG,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO,
GUIO1(GUIO_NOSPEECH)
},
diff --git a/engines/parallaction/font.cpp b/engines/parallaction/font.cpp
index 3b40960381..03b1ced8e1 100644
--- a/engines/parallaction/font.cpp
+++ b/engines/parallaction/font.cpp
@@ -668,7 +668,7 @@ GfxObj* DosDisk_br::createInventoryObjects(Common::SeekableReadStream &stream) {
void Parallaction_ns::initFonts() {
- if (getPlatform() == Common::kPlatformPC) {
+ if (getPlatform() == Common::kPlatformDOS) {
_dialogueFont = _disk->loadFont("comic");
_labelFont = _disk->loadFont("topaz");
_menuFont = _disk->loadFont("slide");
@@ -683,7 +683,7 @@ void Parallaction_ns::initFonts() {
}
void Parallaction_br::initFonts() {
- if (getPlatform() == Common::kPlatformPC) {
+ if (getPlatform() == Common::kPlatformDOS) {
_menuFont = _disk->loadFont("russia");
_dialogueFont = _disk->loadFont("comic");
_labelFont = _menuFont;
diff --git a/engines/parallaction/gfxbase.cpp b/engines/parallaction/gfxbase.cpp
index a9889cc7af..e2d9532c8a 100644
--- a/engines/parallaction/gfxbase.cpp
+++ b/engines/parallaction/gfxbase.cpp
@@ -31,7 +31,7 @@
namespace Parallaction {
GfxObj::GfxObj(uint objType, Frames *frames, const char* name) :
- _frames(frames), _keep(true), x(0), y(0), z(0), _prog(0), _flags(0),
+ _frames(frames), x(0), y(0), z(0), _prog(0), _flags(0),
type(objType), frame(0), layer(3), scale(100), _hasMask(false), _hasPath(false) {
if (name) {
diff --git a/engines/parallaction/graphics.cpp b/engines/parallaction/graphics.cpp
index 59cd02e6ef..b8a8ceb61f 100644
--- a/engines/parallaction/graphics.cpp
+++ b/engines/parallaction/graphics.cpp
@@ -746,7 +746,7 @@ Gfx::Gfx(Parallaction* vm) :
_unpackedBitmap = new byte[MAXIMUM_UNPACKED_BITMAP_SIZE];
assert(_unpackedBitmap);
- if ((_gameType == GType_BRA) && (_vm->getPlatform() == Common::kPlatformPC)) {
+ if ((_gameType == GType_BRA) && (_vm->getPlatform() == Common::kPlatformDOS)) {
// this loads the backup palette needed by the PC version of BRA (see setBackground()).
BackgroundInfo paletteInfo;
_disk->loadSlide(paletteInfo, "pointer");
@@ -834,7 +834,7 @@ void Gfx::setBackground(uint type, BackgroundInfo *info) {
// The PC version of BRA needs the entries 20-31 of the palette to be constant, but
// the background resource files are screwed up. The right colors come from an unused
// bitmap (pointer.bmp). Nothing is known about the Amiga version so far.
- if ((_gameType == GType_BRA) && (_vm->getPlatform() == Common::kPlatformPC)) {
+ if ((_gameType == GType_BRA) && (_vm->getPlatform() == Common::kPlatformDOS)) {
int r, g, b;
for (uint i = 16; i < 32; i++) {
_backupPal.getEntry(i, r, g, b);
diff --git a/engines/parallaction/graphics.h b/engines/parallaction/graphics.h
index e9daabb194..55c1c0c04e 100644
--- a/engines/parallaction/graphics.h
+++ b/engines/parallaction/graphics.h
@@ -289,8 +289,6 @@ class GfxObj {
char *_name;
Frames *_frames;
- bool _keep;
-
public:
int16 x, y;
diff --git a/engines/parallaction/gui_br.cpp b/engines/parallaction/gui_br.cpp
index 5bc5acf630..ddbc31d730 100644
--- a/engines/parallaction/gui_br.cpp
+++ b/engines/parallaction/gui_br.cpp
@@ -120,7 +120,7 @@ class MainMenuInputState_BR : public MenuInputState {
memset(data, 0, MENUITEM_WIDTH * MENUITEM_HEIGHT * 2);
// build first frame to be displayed when item is not selected
- if (_vm->getPlatform() == Common::kPlatformPC) {
+ if (_vm->getPlatform() == Common::kPlatformDOS) {
_vm->_menuFont->setColor(0);
} else {
_vm->_menuFont->setColor(23);
@@ -238,7 +238,7 @@ public:
virtual void enter() {
_vm->_gfx->clearScreen();
int x = 0, y = 0, i = 0;
- if (_vm->getPlatform() == Common::kPlatformPC) {
+ if (_vm->getPlatform() == Common::kPlatformDOS) {
x = 20;
y = 50;
}
diff --git a/engines/parallaction/input.cpp b/engines/parallaction/input.cpp
index 484e210893..bf7cdc439d 100644
--- a/engines/parallaction/input.cpp
+++ b/engines/parallaction/input.cpp
@@ -478,7 +478,7 @@ void Input::initCursors() {
break;
case GType_BRA:
- if (_vm->getPlatform() == Common::kPlatformPC) {
+ if (_vm->getPlatform() == Common::kPlatformDOS) {
_dinoCursor = _vm->_disk->loadPointer("pointer1");
_dougCursor = _vm->_disk->loadPointer("pointer2");
_donnaCursor = _vm->_disk->loadPointer("pointer3");
diff --git a/engines/parallaction/parallaction_br.cpp b/engines/parallaction/parallaction_br.cpp
index 07755fac5f..f9df9d85db 100644
--- a/engines/parallaction/parallaction_br.cpp
+++ b/engines/parallaction/parallaction_br.cpp
@@ -52,7 +52,7 @@ Common::Error Parallaction_br::init() {
_screenWidth = 640;
_screenHeight = 400;
- if (getPlatform() == Common::kPlatformPC) {
+ if (getPlatform() == Common::kPlatformDOS) {
if (getFeatures() & GF_DEMO) {
_disk = new DosDemoDisk_br(this);
} else {
@@ -297,7 +297,7 @@ void Parallaction_br::changeLocation() {
// TODO: maybe handle this into Disk
delete _objects;
- if (getPlatform() == Common::kPlatformPC) {
+ if (getPlatform() == Common::kPlatformDOS) {
_objects = _disk->loadObjects("icone.ico");
} else {
_objects = _disk->loadObjects("icons.ico", _part);
diff --git a/engines/parallaction/parallaction_ns.cpp b/engines/parallaction/parallaction_ns.cpp
index d33be0aa47..49b63dcac3 100644
--- a/engines/parallaction/parallaction_ns.cpp
+++ b/engines/parallaction/parallaction_ns.cpp
@@ -152,7 +152,7 @@ Common::Error Parallaction_ns::init() {
_screenWidth = 320;
_screenHeight = 200;
- if (getPlatform() == Common::kPlatformPC) {
+ if (getPlatform() == Common::kPlatformDOS) {
_disk = new DosDisk_ns(this);
} else {
if (getFeatures() & GF_DEMO) {
@@ -163,7 +163,7 @@ Common::Error Parallaction_ns::init() {
_disk->init();
- if (getPlatform() == Common::kPlatformPC) {
+ if (getPlatform() == Common::kPlatformDOS) {
_soundManI = new DosSoundMan_ns(this);
_soundManI->setMusicVolume(ConfMan.getInt("music_volume"));
} else {
diff --git a/engines/parallaction/staticres.cpp b/engines/parallaction/staticres.cpp
index f09b1241bc..32404037f0 100644
--- a/engines/parallaction/staticres.cpp
+++ b/engines/parallaction/staticres.cpp
@@ -396,7 +396,7 @@ void Parallaction_ns::initResources() {
_localFlagNames = new FixedTable(NUM_LOCATIONS, 1);
_localFlagNames->addData("visited");
- if (getPlatform() == Common::kPlatformPC) {
+ if (getPlatform() == Common::kPlatformDOS) {
_callables = _dosCallables;
} else {
_callables = _amigaCallables;
@@ -412,7 +412,7 @@ void Parallaction_br::initResources() {
_localFlagNames->addData("visited");
_localFlagNames->addData("testtrue");
- if (getPlatform() == Common::kPlatformPC) {
+ if (getPlatform() == Common::kPlatformDOS) {
_callables = _dosCallables;
} else {
_callables = _amigaCallables;
diff --git a/engines/pegasus/neighborhood/caldoria/caldoria.cpp b/engines/pegasus/neighborhood/caldoria/caldoria.cpp
index 3d81a813db..9a378a6728 100644
--- a/engines/pegasus/neighborhood/caldoria/caldoria.cpp
+++ b/engines/pegasus/neighborhood/caldoria/caldoria.cpp
@@ -1641,10 +1641,12 @@ void Caldoria::takeElevator(uint startFloor, uint endFloor) {
break;
case 2:
_croppedMovie.setTime(k1To2Time);
+ _croppedMovie.redrawMovieWorld();
requestSpotSound(kCaldoriaNoOtherDestinationIn, kCaldoriaNoOtherDestinationOut, kFilterNoInput, kSpotSoundCompletedFlag);
break;
case 3:
_croppedMovie.setTime(k1To3Time);
+ _croppedMovie.redrawMovieWorld();
requestSpotSound(kCaldoriaNoOtherDestinationIn, kCaldoriaNoOtherDestinationOut, kFilterNoInput, kSpotSoundCompletedFlag);
break;
case 4:
@@ -1671,10 +1673,12 @@ void Caldoria::takeElevator(uint startFloor, uint endFloor) {
break;
case 2:
_croppedMovie.setTime(k4To2Time);
+ _croppedMovie.redrawMovieWorld();
requestSpotSound(kCaldoriaNoOtherDestinationIn, kCaldoriaNoOtherDestinationOut, kFilterNoInput, kSpotSoundCompletedFlag);
break;
case 3:
_croppedMovie.setTime(k4To3Time);
+ _croppedMovie.redrawMovieWorld();
requestSpotSound(kCaldoriaNoOtherDestinationIn, kCaldoriaNoOtherDestinationOut, kFilterNoInput, kSpotSoundCompletedFlag);
break;
case 4:
@@ -1698,10 +1702,12 @@ void Caldoria::takeElevator(uint startFloor, uint endFloor) {
break;
case 2:
_croppedMovie.setTime(k5To2Time);
+ _croppedMovie.redrawMovieWorld();
requestSpotSound(kCaldoriaNoOtherDestinationIn, kCaldoriaNoOtherDestinationOut, kFilterNoInput, kSpotSoundCompletedFlag);
break;
case 3:
_croppedMovie.setTime(k5To3Time);
+ _croppedMovie.redrawMovieWorld();
requestSpotSound(kCaldoriaNoOtherDestinationIn, kCaldoriaNoOtherDestinationOut, kFilterNoInput, kSpotSoundCompletedFlag);
break;
case 4:
diff --git a/engines/pegasus/neighborhood/mars/mars.cpp b/engines/pegasus/neighborhood/mars/mars.cpp
index aa7ccd596c..775221589a 100644
--- a/engines/pegasus/neighborhood/mars/mars.cpp
+++ b/engines/pegasus/neighborhood/mars/mars.cpp
@@ -2470,6 +2470,7 @@ void Mars::doCanyonChase() {
playSpotSoundSync(kShuttleCockpitIn, kShuttleCockpitOut);
_centerShuttleMovie.setTime(kShuttleCenterCheckTime);
+ _centerShuttleMovie.redrawMovieWorld();
playSpotSoundSync(kShuttleOnboardIn, kShuttleOnboardOut);
_shuttleEnergyMeter.initShuttleEnergyMeter();
diff --git a/engines/pegasus/neighborhood/norad/delta/globegame.cpp b/engines/pegasus/neighborhood/norad/delta/globegame.cpp
index 06e40c2b3a..1416c51c8d 100644
--- a/engines/pegasus/neighborhood/norad/delta/globegame.cpp
+++ b/engines/pegasus/neighborhood/norad/delta/globegame.cpp
@@ -64,6 +64,10 @@ void GlobeTracker::setTrackParameters(const Hotspot *trackSpot, GlobeTrackDirect
_globeMovie->setSegment(start, start + kDurationPerRow);
+ // Clip new time so we don't go past the end of the segment
+ if (newTime >= start + kDurationPerRow)
+ newTime = start + kDurationPerRow - 1;
+
if (newTime != time) {
_globeMovie->setTime(newTime);
_globeMovie->redrawMovieWorld();
@@ -84,6 +88,10 @@ void GlobeTracker::setTrackParameters(const Hotspot *trackSpot, GlobeTrackDirect
_globeMovie->setSegment(start, start + kDurationPerRow);
+ // Clip new time so we don't go past the end of the segment
+ if (newTime >= start + kDurationPerRow)
+ newTime = start + kDurationPerRow - 1;
+
if (newTime != time) {
_globeMovie->setTime(newTime);
_globeMovie->redrawMovieWorld();
@@ -621,6 +629,7 @@ void GlobeGame::receiveNotification(Notification *notification, const Notificati
_monitorMovie.stop();
_monitorMovie.setSegment(0, _monitorMovie.getDuration());
_monitorMovie.setTime(kSplash2End * scale - 1);
+ _monitorMovie.redrawMovieWorld();
_monitorMovie.setFlags(0);
_owner->requestDelay(1, 2, kFilterNoInput, 0);
@@ -643,6 +652,7 @@ void GlobeGame::receiveNotification(Notification *notification, const Notificati
_monitorMovie.stop();
_monitorMovie.setSegment(0, _monitorMovie.getDuration());
_monitorMovie.setTime(kNewLaunchSiloTime * scale);
+ _monitorMovie.redrawMovieWorld();
_owner->requestSpotSound(kNewLaunchSiloIn, kNewLaunchSiloOut, kFilterNoInput,
kSpotSoundCompletedFlag);
_gameState = kPlayingNewSilo1;
diff --git a/engines/queen/cutaway.cpp b/engines/queen/cutaway.cpp
index de54b7e33c..1e53c00564 100644
--- a/engines/queen/cutaway.cpp
+++ b/engines/queen/cutaway.cpp
@@ -515,7 +515,7 @@ const byte *Cutaway::getCutawayAnim(const byte *ptr, int header, CutawayAnim &an
anim.scale = (int16)READ_BE_INT16(ptr);
ptr += 2;
- if ((_vm->resource()->isDemo() && _vm->resource()->getPlatform() == Common::kPlatformPC) ||
+ if ((_vm->resource()->isDemo() && _vm->resource()->getPlatform() == Common::kPlatformDOS) ||
(_vm->resource()->isInterview() && _vm->resource()->getPlatform() == Common::kPlatformAmiga)) {
anim.song = 0;
} else {
diff --git a/engines/queen/display.cpp b/engines/queen/display.cpp
index d7b20c203e..7437bab974 100644
--- a/engines/queen/display.cpp
+++ b/engines/queen/display.cpp
@@ -167,7 +167,7 @@ void Display::palSet(const uint8 *pal, int start, int end, bool updateScreen) {
}
void Display::palSetJoeDress() {
- if (_vm->resource()->getPlatform() == Common::kPlatformPC) {
+ if (_vm->resource()->getPlatform() == Common::kPlatformDOS) {
memcpy(_pal.room + 144 * 3, _palJoeDress, 16 * 3);
memcpy(_pal.screen + 144 * 3, _palJoeDress, 16 * 3);
palSet(_pal.screen, 144, 159, true);
@@ -175,7 +175,7 @@ void Display::palSetJoeDress() {
}
void Display::palSetJoeNormal() {
- if (_vm->resource()->getPlatform() == Common::kPlatformPC) {
+ if (_vm->resource()->getPlatform() == Common::kPlatformDOS) {
memcpy(_pal.room + 144 * 3, _palJoeClothes, 16 * 3);
memcpy(_pal.screen + 144 * 3, _palJoeClothes, 16 * 3);
palSet(_pal.screen, 144, 159, true);
diff --git a/engines/queen/graphics.cpp b/engines/queen/graphics.cpp
index fbb72fde44..70f7d7c94b 100644
--- a/engines/queen/graphics.cpp
+++ b/engines/queen/graphics.cpp
@@ -214,7 +214,7 @@ Graphics::~Graphics() {
}
void Graphics::unpackControlBank() {
- if (_vm->resource()->getPlatform() == Common::kPlatformPC) {
+ if (_vm->resource()->getPlatform() == Common::kPlatformDOS) {
_vm->bankMan()->load("CONTROL.BBK",17);
// unpack mouse pointer frame
@@ -231,7 +231,7 @@ void Graphics::unpackControlBank() {
}
void Graphics::setupArrows() {
- if (_vm->resource()->getPlatform() == Common::kPlatformPC) {
+ if (_vm->resource()->getPlatform() == Common::kPlatformDOS) {
int scrollX = _vm->display()->horizontalScroll();
BobSlot *arrow;
arrow = bob(ARROW_BOB_UP);
@@ -1250,7 +1250,7 @@ void BamScene::updateFightAnimation() {
break;
case 99: // end of BAM data
_lastSoundIndex = _index = 0;
- if (_vm->resource()->getPlatform() == Common::kPlatformPC) {
+ if (_vm->resource()->getPlatform() == Common::kPlatformDOS) {
_fightData = fightDataBlocks[_vm->randomizer.getRandomNumber(2)];
}
if (_flag == F_REQ_STOP) {
diff --git a/engines/queen/input.cpp b/engines/queen/input.cpp
index 30bf681e63..dd10e7ad46 100644
--- a/engines/queen/input.cpp
+++ b/engines/queen/input.cpp
@@ -50,12 +50,12 @@ const Verb Input::_verbKeys[] = {
VERB_USE
};
-Input::Input(Common::Language language, OSystem *system, QueenEngine *vm) :
+Input::Input(Common::Language language, OSystem *system) :
_system(system), _eventMan(system->getEventManager()), _fastMode(false),
_keyVerb(VERB_NONE), _cutawayRunning(false), _canQuit(false),
_cutawayQuit(false), _dialogueRunning(false), _talkQuit(false),
_quickSave(false), _quickLoad(false), _debugger(false), _inKey(Common::KEYCODE_INVALID),
- _mouseButton(0), _idleTime(0) , _vm(vm) {
+ _mouseButton(0), _idleTime(0) {
switch (language) {
case Common::EN_ANY:
diff --git a/engines/queen/input.h b/engines/queen/input.h
index b3bf811cd1..f04ecb24f7 100644
--- a/engines/queen/input.h
+++ b/engines/queen/input.h
@@ -46,7 +46,7 @@ public:
MOUSE_RBUTTON = 2
};
- Input(Common::Language language, OSystem *system, QueenEngine *vm);
+ Input(Common::Language language, OSystem *system);
void delay(uint amount);
@@ -96,8 +96,6 @@ private:
Common::EventManager *_eventMan;
- QueenEngine *_vm;
-
//! some cutaways require update() run faster
bool _fastMode;
diff --git a/engines/queen/logic.cpp b/engines/queen/logic.cpp
index 6d90254608..ea13e5973e 100644
--- a/engines/queen/logic.cpp
+++ b/engines/queen/logic.cpp
@@ -101,7 +101,7 @@ void Logic::readQueenJas() {
}
_roomData[_numRooms + 1] = _numObjects;
- if ((_vm->resource()->isDemo() && _vm->resource()->getPlatform() == Common::kPlatformPC) ||
+ if ((_vm->resource()->isDemo() && _vm->resource()->getPlatform() == Common::kPlatformDOS) ||
(_vm->resource()->isInterview() && _vm->resource()->getPlatform() == Common::kPlatformAmiga)) {
_sfxName = NULL;
} else {
@@ -1798,7 +1798,7 @@ void Logic::asmScaleBlimp() {
int16 x = bob->x;
int16 y = bob->y;
bob->scale = 100;
- while (bob->x > 150) {
+ while (bob->x > 150 && !_vm->shouldQuit()) {
bob->x = x * 256 / z + 150;
bob->y = y * 256 / z + 112;
if (_vm->resource()->getPlatform() != Common::kPlatformAmiga) {
@@ -2088,7 +2088,7 @@ bool LogicDemo::changeToSpecialRoom() {
void LogicDemo::setupSpecialMoveTable() {
_specialMoves[4] = &LogicDemo::asmMakeJoeUseUnderwear;
_specialMoves[14] = &LogicDemo::asmEndDemo;
- if (_vm->resource()->getPlatform() == Common::kPlatformPC) {
+ if (_vm->resource()->getPlatform() == Common::kPlatformDOS) {
_specialMoves[5] = &LogicDemo::asmSwitchToDressPalette;
}
}
@@ -2185,7 +2185,7 @@ void LogicGame::setupSpecialMoveTable() {
_specialMoves[31] = &LogicGame::asmWaitForCarPosition;
_specialMoves[33] = &LogicGame::asmAttemptPuzzle;
_specialMoves[34] = &LogicGame::asmScrollTitle;
- if (_vm->resource()->getPlatform() == Common::kPlatformPC) {
+ if (_vm->resource()->getPlatform() == Common::kPlatformDOS) {
_specialMoves[5] = &LogicGame::asmSwitchToDressPalette;
_specialMoves[6] = &LogicGame::asmSwitchToNormalPalette;
_specialMoves[13] = &LogicGame::asmShrinkRobot;
diff --git a/engines/queen/queen.cpp b/engines/queen/queen.cpp
index c403536e22..08fc594560 100644
--- a/engines/queen/queen.cpp
+++ b/engines/queen/queen.cpp
@@ -500,7 +500,7 @@ Common::Error QueenEngine::run() {
_display = new Display(this, _system);
_graphics = new Graphics(this);
_grid = new Grid(this);
- _input = new Input(_resource->getLanguage(), _system, this);
+ _input = new Input(_resource->getLanguage(), _system);
if (_resource->isDemo()) {
_logic = new LogicDemo(this);
diff --git a/engines/queen/resource.cpp b/engines/queen/resource.cpp
index 84043fa3af..6a55929d65 100644
--- a/engines/queen/resource.cpp
+++ b/engines/queen/resource.cpp
@@ -204,11 +204,11 @@ bool Resource::detectVersion(DetectedGameVersion *ver, Common::File *f) {
switch (ver->str[0]) {
case 'P':
ver->features |= GF_FLOPPY;
- ver->platform = Common::kPlatformPC;
+ ver->platform = Common::kPlatformDOS;
break;
case 'C':
ver->features |= GF_TALKIE;
- ver->platform = Common::kPlatformPC;
+ ver->platform = Common::kPlatformDOS;
break;
case 'a':
ver->features |= GF_FLOPPY;
diff --git a/engines/queen/talk.h b/engines/queen/talk.h
index 68196784b1..cba77cc255 100644
--- a/engines/queen/talk.h
+++ b/engines/queen/talk.h
@@ -88,8 +88,6 @@ private:
QueenEngine *_vm;
- bool _wasFullscren;
-
//! Raw .dog file data (without 20 byte header)
byte *_fileData;
diff --git a/engines/saga/actor.cpp b/engines/saga/actor.cpp
index 06ce335518..0548da9ee5 100644
--- a/engines/saga/actor.cpp
+++ b/engines/saga/actor.cpp
@@ -1030,6 +1030,8 @@ bool Actor::getSpriteParams(CommonObjectData *commonObjectData, int &frameNumber
} else if (validObjId(commonObjectData->_id)) {
spriteList = &_vm->_sprite->_mainSprites;
frameNumber = commonObjectData->_spriteListResourceId;
+ } else {
+ return false;
}
if (spriteList->empty()) {
diff --git a/engines/saga/detection_tables.h b/engines/saga/detection_tables.h
index 234a10acfe..30cb13a031 100644
--- a/engines/saga/detection_tables.h
+++ b/engines/saga/detection_tables.h
@@ -188,7 +188,7 @@ static const SAGAGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO,
GUIO1(GUIO_NOSPEECH)
},
@@ -434,7 +434,7 @@ static const SAGAGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -458,7 +458,7 @@ static const SAGAGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -482,7 +482,7 @@ static const SAGAGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -507,7 +507,7 @@ static const SAGAGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -534,7 +534,7 @@ static const SAGAGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -558,7 +558,7 @@ static const SAGAGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -582,7 +582,7 @@ static const SAGAGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -615,7 +615,7 @@ static const SAGAGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO,
GUIO1(GUIO_NOASPECT)
},
@@ -647,7 +647,7 @@ static const SAGAGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
@@ -677,7 +677,7 @@ static const SAGAGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
@@ -705,7 +705,7 @@ static const SAGAGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
@@ -734,7 +734,7 @@ static const SAGAGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
@@ -762,7 +762,7 @@ static const SAGAGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOASPECT)
},
@@ -817,7 +817,7 @@ static const SAGAGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_UNSTABLE,
GUIO1(GUIO_NOASPECT)
},
@@ -847,7 +847,7 @@ static const SAGAGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_UNSTABLE,
GUIO1(GUIO_NOASPECT)
},
diff --git a/engines/saga/interface.cpp b/engines/saga/interface.cpp
index a7bd7edbe5..b105e34487 100644
--- a/engines/saga/interface.cpp
+++ b/engines/saga/interface.cpp
@@ -723,7 +723,7 @@ void Interface::setStatusText(const char *text, int statusColor) {
if (_vm->_render->getFlags() & RF_MAP || _vm->_interface->getMode() == kPanelPlacard)
return;
- strncpy(_statusText, text, STATUS_TEXT_LEN);
+ Common::strlcpy(_statusText, text, STATUS_TEXT_LEN);
_statusOnceColor = statusColor;
drawStatusBar();
}
@@ -2420,7 +2420,7 @@ bool Interface::converseAddText(const char *text, int strId, int replyId, byte r
assert(strlen(text) < CONVERSE_MAX_WORK_STRING);
- strncpy(_converseWorkString, text, CONVERSE_MAX_WORK_STRING);
+ Common::strlcpy(_converseWorkString, text, CONVERSE_MAX_WORK_STRING);
while (1) {
len = strlen(_converseWorkString);
diff --git a/engines/saga/music.cpp b/engines/saga/music.cpp
index 0eebf3f175..812d967b9f 100644
--- a/engines/saga/music.cpp
+++ b/engines/saga/music.cpp
@@ -176,6 +176,10 @@ Music::Music(SagaEngine *vm, Audio::Mixer *mixer) : _vm(vm), _mixer(mixer) {
}
}
+ _trackNumber = 0;
+ _targetVolume = 0;
+ _currentVolumePercent = 0;
+
_digitalMusic = false;
}
diff --git a/engines/saga/saveload.cpp b/engines/saga/saveload.cpp
index 3cd44eba40..9784cf4e33 100644
--- a/engines/saga/saveload.cpp
+++ b/engines/saga/saveload.cpp
@@ -176,7 +176,7 @@ void SagaEngine::save(const char *fileName, const char *saveName) {
// Note that IHNM has a smaller save title size than ITE
// We allocate the ITE save title size here, to preserve
// savegame backwards compatibility
- strncpy(_saveHeader.name, saveName, SAVE_TITLE_SIZE);
+ Common::strlcpy(_saveHeader.name, saveName, SAVE_TITLE_SIZE);
out->writeUint32BE(_saveHeader.type);
out->writeUint32LE(_saveHeader.size);
diff --git a/engines/saga/sndres.cpp b/engines/saga/sndres.cpp
index 71044034d7..49d24753a1 100644
--- a/engines/saga/sndres.cpp
+++ b/engines/saga/sndres.cpp
@@ -104,6 +104,15 @@ SndRes::SndRes(SagaEngine *vm) : _vm(vm), _sfxContext(NULL), _voiceContext(NULL)
}
}
+SndRes::~SndRes() {
+#ifdef ENABLE_IHNM
+ if (_vm->getGameId() == GID_IHNM && _vm->isMacResources()) {
+ // Delete the dummy voice context. See setVoiceBank()
+ delete _voiceContext;
+ }
+#endif
+}
+
void SndRes::setVoiceBank(int serial) {
Common::File *file;
if (_voiceSerial == serial)
diff --git a/engines/saga/sndres.h b/engines/saga/sndres.h
index bc38bed431..979c0288f6 100644
--- a/engines/saga/sndres.h
+++ b/engines/saga/sndres.h
@@ -39,6 +39,7 @@ class SndRes {
public:
SndRes(SagaEngine *vm);
+ ~SndRes();
void playSound(uint32 resourceId, int volume, bool loop);
void playVoice(uint32 resourceId);
diff --git a/engines/sci/detection.cpp b/engines/sci/detection.cpp
index ebad3d039a..09c348f273 100644
--- a/engines/sci/detection.cpp
+++ b/engines/sci/detection.cpp
@@ -452,7 +452,7 @@ static ADGameDescription s_fallbackDesc = {
"",
AD_ENTRY1(0, 0), // This should always be AD_ENTRY1(0, 0) in the fallback descriptor
Common::UNK_LANG,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)
};
@@ -514,7 +514,7 @@ const ADGameDescription *SciMetaEngine::fallbackDetect(const FileMap &allFiles,
s_fallbackDesc.extra = "";
s_fallbackDesc.language = Common::EN_ANY;
s_fallbackDesc.flags = ADGF_NO_FLAGS;
- s_fallbackDesc.platform = Common::kPlatformPC; // default to PC platform
+ s_fallbackDesc.platform = Common::kPlatformDOS; // default to PC platform
s_fallbackDesc.gameid = "sci";
s_fallbackDesc.guioptions = GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI);
diff --git a/engines/sci/detection_tables.h b/engines/sci/detection_tables.h
index c8137c8fb4..fa7acaf4b8 100644
--- a/engines/sci/detection_tables.h
+++ b/engines/sci/detection_tables.h
@@ -37,7 +37,7 @@ namespace Sci {
{"sci-fanmade", name, { \
{"resource.map", 0, resMapMd5, resMapSize}, \
{"resource.001", 0, resMd5, resSize}, \
- AD_LISTEND}, lang, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) \
+ AD_LISTEND}, lang, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) \
}
#define FANMADE(name, resMapMd5, resMapSize, resMd5, resSize) FANMADE_L(name, resMapMd5, resMapSize, resMd5, resSize, Common::EN_ANY)
@@ -50,7 +50,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "f3d1be7752d30ba60614533d531e2e98", 474},
{"resource.001", 0, "6fd05926c2199af0af6f72f90d0d7260", 126895},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Castle of Dr. Brain - English Amiga (from www.back2roots.org)
// Executable scanning reports "1.005.000"
@@ -93,7 +93,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "9780f040d58182994e22d2e34fab85b0", 67367},
{"resource.001", 0, "2af49dbd8f2e1db4ab09f9310dc91259", 570553},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Castle of Dr. Brain - English DOS 5.25" Floppy EGA (from omer_mor, bug report #3035349)
{"castlebrain", "EGA", {
@@ -106,7 +106,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.005", 0, "8a5ed3ba96e2eaf18e36fedfaab89419", 297838},
{"resource.006", 0, "dceed92e709cad1bd9582809a235b0a0", 266682},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Castle of Dr. Brain - English DOS 3.5" Floppy EGA (from nozomi77, bug report #3405307)
{"castlebrain", "EGA", {
@@ -116,7 +116,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.002", 0, "de2f182529efaad2c4b510b452ab77ac", 633662},
{"resource.003", 0, "38b4b37febc6b4f5061c461a283df148", 430388},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Castle of Dr. Brain - English DOS Floppy (from jvprat)
// Executable scanning reports "1.000.044", Floppy label reports "1.0, 10.30.91", VERSION file reports "1.000"
@@ -127,7 +127,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.001", 0, "d2f5a1be74ed963fa849a76892be5290", 794832},
{"resource.002", 0, "c0c29c51af66d65cb53f49e785a2d978", 1280907},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Castle of Dr. Brain - English DOS 5.25" Floppy VGA 1.1 (from rnjacobs, bug report #3578286)
{"castlebrain", "", {
@@ -137,7 +137,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.002", 0, "583d348c908f89f94f8551d7fe0a2eca", 991752},
{"resource.003", 0, "6c3d1bb26ad532c94046bc9ac49b5ff4", 728315},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Castle of Dr. Brain - English DOS Floppy 1.1
{"castlebrain", "", {
@@ -146,7 +146,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.001", 0, "13e81e1839cd7b216d2bb5615c1ca160", 796776},
{"resource.002", 0, "930e416bec196b9703a331d81b3d66f2", 1283812},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Castle of Dr. Brain - English DOS Floppy 1.000
// Reported by graxer in bug report #3037942
@@ -161,7 +161,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "1d778a0c65cac9ddbab65495e50a94ee", 335281},
{"resource.007", 0, "063bb8ce4157c778cf30d1c912c006f1", 335631},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Castle of Dr. Brain - Spanish DOS (also includes english language)
// SCI interpreter version 1.000.510
@@ -170,7 +170,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "27ec5fa09cd12a7fd16e86d96a2ed245", 1197694},
{"resource.001", 0, "735be4e58957180cfc807d5e18fdffcd", 1433302},
AD_LISTEND},
- Common::ES_ESP, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::ES_ESP, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
#ifdef ENABLE_SCI32
// Inside the Chest / Behind the Developer's Shield
@@ -179,7 +179,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "9dd015e79cac4f91e7de805448f39775", 1912},
{"resource.000", 0, "e4efcd042f86679dd4e1834bb3a38edb", 3770943},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_UNSTABLE, GUIO3(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO3(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_FB01_MIDI) },
#endif
// Christmas Card 1988 - English DOS
@@ -188,7 +188,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "39485580d34a72997f3d5b3aba4d24f1", 426},
{"resource.001", 0, "11391434f41c834090d7a1e9488ce936", 129739},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Christmas Card 1990: The Seasoned Professional - English DOS (16 Colors)
// SCI interpreter version 1.000.172
@@ -196,7 +196,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "8f656714a05b94423ac6eb10ee8797d0", 600},
{"resource.001", 0, "acde93e58fca4f7a2a5a220558a94aa8", 272629},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Christmas Card 1990: The Seasoned Professional - English DOS (256 Colors)
// SCI interpreter version 1.000.174
@@ -204,7 +204,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "44b8f45b841b9b5e17e939a35e443988", 600},
{"resource.001", 0, "acde93e58fca4f7a2a5a220558a94aa8", 335362},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Christmas Card 1992 - English DOS
// SCI interpreter version 1.001.055
@@ -212,7 +212,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "f1f8c8a8443f523422af70b4ec85b71c", 318},
{"resource.000", 0, "62fb9256f8e7e6e65a6875efdb7939ac", 203396},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Codename: Iceman - English Amiga (from www.back2roots.org)
// Executable scanning reports "1.002.031"
@@ -234,7 +234,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "782974f29d8a824782d2d4aea39964e3", 1056},
{"resource.001", 0, "d4b75e280d1c3a97cfef1b0bebff387c", 573647},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Codename: Iceman - English DOS (from jvprat)
// Executable scanning reports "0.000.685", Floppy label reports "1.033, 6.8.90", VERSION file reports "1.033"
@@ -247,7 +247,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.003", 0, "d97a96f1ab91b41cf46a02cc89b0a04e", 624303},
{"resource.004", 0, "8613c45fc771d658e5a505b9a4a54f31", 670883},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Codename: Iceman - English DOS (from FRG)
// SCI interpreter version 0.000.668
@@ -259,7 +259,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.003", 0, "dc7c5280e7acfaffe6ef2a6c963c5f94", 622118},
{"resource.004", 0, "64f342463f6f35ba71b3509ef696ae3f", 669188},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Codename: Iceman - English DOS (supplied by ssburnout in bug report #3049193)
// 1.022 9x5.25" (label: Int#0.000.668)
@@ -274,7 +274,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "08050329aa113a9f14ed99cbfe3536ec", 232942},
{"resource.007", 0, "64f342463f6f35ba71b3509ef696ae3f", 267811},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Codename: Iceman - English DOS 1.023 (from abevi, bug report #2612718)
{"iceman", "", {
@@ -288,7 +288,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "08050329aa113a9f14ed99cbfe3536ec", 232942},
{"resource.007", 0, "64f342463f6f35ba71b3509ef696ae3f", 267702},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Conquests of Camelot - English Amiga (from www.back2roots.org)
// Executable scanning reports "1.002.030"
@@ -311,7 +311,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "f4cd75c15be75e04cdca3acda2c0b0ea", 468},
{"resource.001", 0, "4930708722f34bfbaa4945fb08f55f61", 232523},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Conquests of Camelot - English DOS (from jvprat)
// Executable scanning reports "0.000.685", Floppy label reports "1.001, 0.000.685", VERSION file reports "1.001.000"
@@ -323,7 +323,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.003", 0, "8e1a3a8c588007404b532b8dfacc1460", 723712},
{"resource.004", 0, "8e1a3a8c588007404b532b8dfacc1460", 729143},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Conquests of Camelot - English DOS
// SCI interpreter version 0.000.685
@@ -337,7 +337,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "8e1a3a8c588007404b532b8dfacc1460", 332446},
{"resource.007", 0, "8e1a3a8c588007404b532b8dfacc1460", 358182},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Conquests of the Longbow - English Amiga (from www.back2roots.org)
// Executable scanning reports "1.005.001"
@@ -366,7 +366,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.005", 0, "d036df0872f2db19bca34601276be2d7", 1154950},
{"resource.006", 0, "b367a6a59f29ee30dde1d88a5a41152d", 1042966},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Conquests of the Longbow - English DOS Floppy (from jvprat)
// Executable scanning reports "1.000.168", Floppy label reports "1.1, 1.13.92", VERSION file reports "1.1"
@@ -380,7 +380,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.004", 0, "9cfce07e204a329e94fda8b5657621da", 1261462},
{"resource.005", 0, "21ebe6b39b57a73fc449f67f013765aa", 1284720},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Conquests of the Longbow - English DOS
// SCI interpreter version 1.000.510
@@ -393,7 +393,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.004", 0, "9cfce07e204a329e94fda8b5657621da", 1260237},
{"resource.005", 0, "21ebe6b39b57a73fc449f67f013765aa", 1284609},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Conquests of the Longbow EGA - English DOS
// SCI interpreter version 1.000.510
@@ -406,7 +406,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.004", 0, "b7bb35c027bb424ecefcd122768e5e60", 705631},
{"resource.005", 0, "58942b1aa6d6ffeb66e9f8897fd4435f", 469243},
{"resource.006", 0, "8c767b3939add63d11274065e46aad04", 713158},
- AD_LISTEND}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ AD_LISTEND}, Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Conquests of the Longbow DOS 1.0 EGA (4 x 5.25" disks)
// Provided by ssburnout in bug report #3046802
@@ -416,7 +416,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.001", 0, "76c729e563809170e6cc8b2f3f6cf0a4", 1196133},
{"resource.002", 0, "8c767b3939add63d11274065e46aad04", 1152478},
{"resource.003", 0, "7025b87e735b1df3f0e9488a621f4333", 1171439},
- AD_LISTEND}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ AD_LISTEND}, Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Conquests of the Longbow - English DOS Non-Interactive Demo
// SCI interpreter version 1.000.510
@@ -424,7 +424,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "cbc5cb73341de1bff1b1e20a640af220", 588},
{"resource.001", 0, "f05a20cc07eee85da8e999d0ac0f596b", 869916},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Conquests of the Longbow - German DOS (suplied by markcoolio in bug report #2727681, also includes english language)
// SCI interpreter version 1.000.510
@@ -438,7 +438,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.005", 0, "d036df0872f2db19bca34601276be2d7", 1176914},
{"resource.006", 0, "b367a6a59f29ee30dde1d88a5a41152d", 1123585},
AD_LISTEND},
- Common::DE_DEU, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::DE_DEU, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Eco Quest - English DOS Non-Interactive Demo (from FRG)
// Executable scanning reports "x.yyy.zzz"
@@ -447,7 +447,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "c819e171359b7c95f4c13b846d5c034e", 873},
{"resource.001", 0, "baf9393a9bfa73098adb501e5bc5487b", 657518},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Eco Quest - English DOS CD 1.1
// SCI interpreter version 1.001.064
@@ -455,7 +455,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "a4b73d5d2b55bdb6e44345e99c8fbdd0", 4804},
{"resource.000", 0, "d908dbef56816ac6c60dd145fdeafb2b", 3536046},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_CD, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_CD, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Eco Quest - English DOS CD 1.1
// SCI interpreter version 1.001.064
@@ -476,7 +476,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.002", 0, "28fe9b4f0567e71feb198bc9f3a2c605", 1241816},
{"resource.003", 0, "f3146df0ad4297f5ce35aa8c4753bf6c", 586832},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Eco Quest - English DOS Floppy
// SCI interpreter version 1.000.510
@@ -487,7 +487,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.002", 0, "323b3b12f43d53f27d259beb225f0aa7", 1129316},
{"resource.003", 0, "83ac03e4bddb2c1ac2d36d2a587d0536", 1145616},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Eco Quest - German DOS Floppy (supplied by markcoolio in bug report #2723744, also includes english language)
// SCI interpreter version 1.000.510
@@ -498,7 +498,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.002", 0, "02d7d0411f7903aacb3bc8b0f8ca8a9a", 1202581},
{"resource.003", 0, "84dd11b6825255671c703aee5ceff620", 1175835},
AD_LISTEND},
- Common::DE_DEU, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::DE_DEU, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Eco Quest - Spanish DOS Floppy (from jvprat, also includes english language)
// Executable scanning reports "1.ECO.013", VERSION file reports "1.000, 11.12.92"
@@ -510,7 +510,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.002", 0, "2d21a1d2dcbffa551552e3e0725d2284", 1186033},
{"resource.003", 0, "84dd11b6825255671c703aee5ceff620", 1174993},
AD_LISTEND},
- Common::ES_ESP, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::ES_ESP, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Eco Quest - French DOS Floppy (from Strangerke, also includes english language)
// SCI interpreter version 1.ECO.013
@@ -521,7 +521,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.002", 0, "b836c6ee9de67d814ac5d1b05f5b9858", 1173872},
{"resource.003", 0, "f8f767f9d6351432621c6e54c1b2ba8c", 1141520},
AD_LISTEND},
- Common::FR_FRA, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::FR_FRA, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Eco Quest 2 - English DOS Non-Interactive Demo
// SCI interpreter version 1.001.055
@@ -529,7 +529,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "607cfa0d8a03b7d348c06ee727e3d939", 1321},
{"resource.000", 0, "dd6f614c43c029f063e93cd243af90a4", 525992},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Eco Quest 2 - English DOS Floppy (supplied by markcoolio in bug report #2723761)
// SCI interpreter version 1.001.065
@@ -537,7 +537,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "28fb7b6abb9fc1cb8882d7c2e701b63f", 5658},
{"resource.000", 0, "cc1d17e5637528dbe4a812699e1cbfc6", 4208192},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Eco Quest 2 - French DOS Floppy (from Strangerke)
// SCI interpreter version 1.001.081
@@ -545,7 +545,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "c22ab8b33c339c138b6b1697b77b9e79", 5588},
{"resource.000", 0, "1c4093f7248240329121fdf8c0d59152", 4231946},
AD_LISTEND},
- Common::FR_FRA, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::FR_FRA, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Eco Quest 2 - Spanish DOS Floppy (supplied by umbrio in bug report #3313962)
{"ecoquest2", "Floppy", {
@@ -553,7 +553,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "1c4093f7248240329121fdf8c0d59152", 4209150},
{"resource.msg", 0, "eff8be1925d42288de55e405983e9314", 117810},
AD_LISTEND},
- Common::ES_ESP, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::ES_ESP, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Freddy Pharkas - English DOS demo (from FRG)
// SCI interpreter version 1.001.069
@@ -561,7 +561,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "97aa9fcfe84c9993a64debd28c32393a", 1909},
{"resource.000", 0, "5ea8e7a3ea10cce6efd5c106dc62fd8c", 867724},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Freddy Pharkas - English CD DOS (from FRG)
// SCI interpreter version 1.001.132
@@ -569,7 +569,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "d46b282f228a67ba13bd4b4009e95f8f", 6058},
{"resource.000", 0, "ee3c64ffff0ba9fb08bea2624631c598", 5490246},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_CD, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_CD, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Freddy Pharkas - English DOS Floppy (updated information from markcoolio in bug reports #2723773 and #2724720)
// Executable scanning reports "1.cfs.081"
@@ -579,7 +579,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "96b07e9b914dba1c8dc6c78a176326df", 5233230},
{"resource.msg", 0, "554f65315d851184f6e38211489fdd8f", -1},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Freddy Pharkas - French DOS Floppy (supplied by misterhands in bug report #3589449)
// Executable scanning reports "1.cfs.081"
@@ -588,7 +588,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "fed4808fdb72486908ac7ad0044b14d8", 5233230},
{"resource.msg", 0, "4dc478f5c73b57e5d690bdfffdcf1c44", 816518},
AD_LISTEND},
- Common::FR_FRA, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::FR_FRA, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Freddy Pharkas - Windows (supplied by abevi in bug report #2612718)
// Executable scanning reports "1.cfs.081"
@@ -607,7 +607,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "96b07e9b914dba1c8dc6c78a176326df", 5233230},
{"resource.msg", 0, "304b5a5781800affd2235152a5794fa8", -1},
AD_LISTEND},
- Common::DE_DEU, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::DE_DEU, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Freddy Pharkas - Spanish DOS (from jvprat)
// Executable scanning reports "1.cfs.081", VERSION file reports "1.000, March 30, 1995"
@@ -620,7 +620,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.003", 0, "05acdc256c742e79c50b9fe7ec2cc898", 863310},
{"resource.msg", 0, "45b5bf74933ac3727e4cc844446dc052", 796156},
AD_LISTEND},
- Common::ES_ESP, Common::kPlatformPC, ADGF_CD, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::ES_ESP, Common::kPlatformDOS, ADGF_CD, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Freddy Pharkas - Spanish DOS (from jvprat)
// Executable scanning reports "1.cfs.081", VERSION file reports "1.000, March 30, 1995"
@@ -630,7 +630,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "96b07e9b914dba1c8dc6c78a176326df", 5233230},
{"resource.msg", 0, "45b5bf74933ac3727e4cc844446dc052", 796156},
AD_LISTEND},
- Common::ES_ESP, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::ES_ESP, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Freddy Pharkas - English DOS CD Demo
// SCI interpreter version 1.001.095
@@ -638,7 +638,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "a62a7eae85dd1e6b07f39662b278437e", 1918},
{"resource.000", 0, "4962a3c4dd44e36e78ea4a7a374c2220", 957382},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Freddy Pharkas - English Macintosh
{"freddypharkas", "", {
@@ -653,7 +653,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "7ee6859ef74314f6d91938c3595348a9", 282},
{"resource.001", 0, "f1e680095424e31f7fae1255d36bacba", 40692},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Gabriel Knight - English DOS CD Demo
// SCI interpreter version 1.001.092
@@ -661,7 +661,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "39645952ae0ed8072c7e838f31b75464", 2490},
{"resource.000", 0, "eb3ed7477ca4110813fe1fcf35928561", 1718450},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
#ifdef ENABLE_SCI32
// Gabriel Knight - English DOS Floppy
@@ -670,7 +670,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "372d059f75856afa6d73dd84cbb8913d", 10783},
{"resource.000", 0, "69b7516962510f780d38519cc15fcc7c", 13022630},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_UNSTABLE, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Gabriel Knight - English DOS Floppy (supplied my markcoolio in bug report #2723777)
// SCI interpreter version 2.000.000
@@ -678,7 +678,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "65e8c14092e4c9b3b3538b7602c8c5ec", 10783},
{"resource.000", 0, "69b7516962510f780d38519cc15fcc7c", 13022630},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_UNSTABLE, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Gabriel Knight - English DOS Floppy
// SCI interpreter version 2.000.000, VERSION file reports "1.0\nGabriel Knight\n11/22/10:33 pm\n\x1A"
@@ -686,7 +686,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "ef41df08cf2c1f680216cdbeed0f8311", 10783},
{"resource.000", 0, "69b7516962510f780d38519cc15fcc7c", 13022630},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_UNSTABLE, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Gabriel Knight - German DOS Floppy (supplied my markcoolio in bug report #2723775)
// SCI interpreter version 2.000.000
@@ -694,7 +694,15 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "ad6508b0296b25c07b1f58828dc33696", 10789},
{"resource.000", 0, "091cf08910780feabc56f8551b09cb36", 13077029},
AD_LISTEND},
- Common::DE_DEU, Common::kPlatformPC, ADGF_UNSTABLE, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::DE_DEU, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+
+ // Gabriel Knight - French DOS Floppy (supplied my kervala in bug report #3611487)
+ // SCI interpreter version 2.000.000
+ {"gk1", "", {
+ {"resource.map", 0, "236e36cc847cdeafdd5e5fa8cba916ed", 10801},
+ {"resource.000", 0, "091cf08910780feabc56f8551b09cb36", 13033072},
+ AD_LISTEND},
+ Common::FR_FRA, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Gabriel Knight - English DOS CD (from jvprat)
// Executable scanning reports "2.000.000", VERSION file reports "01.100.000"
@@ -702,7 +710,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "372d059f75856afa6d73dd84cbb8913d", 10996},
{"resource.000", 0, "69b7516962510f780d38519cc15fcc7c", 12581736},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_CD | ADGF_UNSTABLE, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_CD | ADGF_UNSTABLE, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Gabriel Knight - English Windows CD (from jvprat)
// Executable scanning reports "2.000.000", VERSION file reports "01.100.000"
@@ -718,7 +726,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "a7d3e55114c65647310373cb390815ba", 11392},
{"resource.000", 0, "091cf08910780feabc56f8551b09cb36", 13400497},
AD_LISTEND},
- Common::DE_DEU, Common::kPlatformPC, ADGF_CD | ADGF_UNSTABLE, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::DE_DEU, Common::kPlatformDOS, ADGF_CD | ADGF_UNSTABLE, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Gabriel Knight - Spanish DOS CD (from jvprat)
// Executable scanning reports "2.000.000", VERSION file reports "1.000.000, April 13, 1995"
@@ -726,7 +734,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "7cb6e9bba15b544ec7a635c45bde9953", 11404},
{"resource.000", 0, "091cf08910780feabc56f8551b09cb36", 13381599},
AD_LISTEND},
- Common::ES_ESP, Common::kPlatformPC, ADGF_CD | ADGF_UNSTABLE, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::ES_ESP, Common::kPlatformDOS, ADGF_CD | ADGF_UNSTABLE, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Gabriel Knight - French DOS CD (from Hkz)
// VERSION file reports "1.000.000, May 3, 1994"
@@ -734,7 +742,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "55f909ba93a2515042a08d8a2da8414e", 11392},
{"resource.000", 0, "091cf08910780feabc56f8551b09cb36", 13325145},
AD_LISTEND},
- Common::FR_FRA, Common::kPlatformPC, ADGF_CD | ADGF_UNSTABLE, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::FR_FRA, Common::kPlatformDOS, ADGF_CD | ADGF_UNSTABLE, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Gabriel Knight - German Windows CD (from Tobis87)
// SCI interpreter version 2.000.000
@@ -775,7 +783,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resmap.000", 0, "b996fa1e57389a1e179a00a0049de1f4", 8110},
{"ressci.000", 0, "a19fc3604c6e5407abcf03d59ee87217", 168522221},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Gabriel Knight 2 - English DOS (from jvprat)
// Executable scanning reports "2.100.002", VERSION file reports "1.1"
@@ -793,7 +801,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resmap.006", 0, "ce9359037277b7d7976da185c2fa0aad", 2977},
{"ressci.006", 0, "8e44e03890205a7be12f45aaba9644b4", 60659424},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Gabriel Knight 2 - French DOS (6-CDs Sierra Originals reedition)
// Executable scanning reports "2.100.002", VERSION file reports "1.0"
@@ -811,7 +819,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resmap.006", 0, "11b2e722170b8c93fdaa5428e2c7676f", 3001},
{"ressci.006", 0, "4037d941aec39d2e654e20960429aefc", 60568486},
AD_LISTEND},
- Common::FR_FRA, Common::kPlatformPC, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::FR_FRA, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Gabriel Knight 2 - English Macintosh
// NOTE: This only contains disc 1 files (as well as the persistent file:
@@ -835,7 +843,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.002", 0, "e0dd44069a62a463fd124974b915f10d", 342149},
{"resource.003", 0, "e0dd44069a62a463fd124974b915f10d", 328925},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Hoyle 1 - English DOS (supplied by wibble92 in bug report #2644547)
// SCI interpreter version 0.000.530
@@ -845,7 +853,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.002", 0, "e0dd44069a62a463fd124974b915f10d", 342309},
{"resource.003", 0, "e0dd44069a62a463fd124974b915f10d", 328912},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Hoyle 1 - English DOS (supplied by merkur in bug report #2719227)
// SCI interpreter version 0.000.530
@@ -853,14 +861,14 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "1034a218943d12f1f36e753fa10c95b8", 4386},
{"resource.001", 0, "e0dd44069a62a463fd124974b915f10d", 518308},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Hoyle 1 3.5' - English DOS (supplied by eddydrama in bug report #3052366 and dinnerx in bug report #3090841)
{"hoyle1", "", {
{"resource.map", 0, "0af9a3dcd72a091960de070432e1f524", 4386},
{"resource.001", 0, "e0dd44069a62a463fd124974b915f10d", 518127},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
#if 0 // TODO: unknown if these files are corrupt
// Hoyle 1 - English Amiga (from www.back2roots.org)
@@ -880,7 +888,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.001", 0, "8f2dd70abe01112eca464cda818b5eb6", 98138},
{"resource.002", 0, "8f2dd70abe01112eca464cda818b5eb6", 196631},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Hoyle 2 - English DOS (supplied by ssburnout in bug report #3049193)
// 1.000.011 1x3.5" (label:Int#6.21.90)
@@ -888,7 +896,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "db0ba08b953e9904a4960ad99cd29c20", 1356},
{"resource.001", 0, "8f2dd70abe01112eca464cda818b5eb6", 216315},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Hoyle 2 - English Amiga (from www.back2roots.org)
// Executable scanning reports "1.002.032"
@@ -926,7 +934,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "0d06cacc87dc21a08cd017e73036f905", 735},
{"resource.001", 0, "24db2bccda0a3c43ac4a7b5edb116c7e", 797678},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Hoyle 3 - English DOS Floppy (from jvprat)
// Executable scanning reports "x.yyy.zzz", Floppy label reports "1.0, 11.2.91", VERSION file reports "1.000"
@@ -936,7 +944,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "6ef28cac094dcd97fdb461662ead6f92", 541845},
{"resource.001", 0, "0a98a268ee99b92c233a0d7187c1f0fa", 845795},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Hoyle 3 - English DOS Floppy (supplied by eddydrama in bug report #3038837)
{"hoyle3", "", {
@@ -947,7 +955,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.003", 0, "97cfd72633f8f9b2a0b1d4116cf3ee81", 346116},
{"resource.004", 0, "2884fb91b225fabd9ca87ea231293b48", 351218},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Hoyle 3 EGA - English DOS Floppy 1.0 (supplied by abevi in bug report #2612718)
{"hoyle3", "EGA", {
@@ -955,14 +963,14 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "6ef28cac094dcd97fdb461662ead6f92", 319905},
{"resource.001", 0, "0a98a268ee99b92c233a0d7187c1f0fa", 526438},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Hoyle 4 (Hoyle Classic Card Games) - English DOS Demo
{"hoyle4", "Demo", {
{"resource.map", 0, "60f764020a6b788bbbe415dbc2ccb9f3", 931},
{"resource.000", 0, "5fe3670e3ddcd4f85c10013b5453141a", 615522},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Hoyle 4 (Hoyle Classic Card Games) - English DOS Demo
// SCI interpreter version 1.001.200 (just a guess)
@@ -971,7 +979,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "662087cb383e52e3cc4ae7ecb10e20aa", 938},
{"resource.000", 0, "24c10844792c54d476d272213cbac300", 675252},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Hoyle 4 (Hoyle Classic Card Games) - English DOS/Win
// Supplied by abevi in bug report #3039291
@@ -979,7 +987,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "2b577c975cc8d8d43f61b6a756129fe3", 4352},
{"resource.000", 0, "43e2c15ce436aab611a462ad0603e12d", 2000132},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Hoyle 4 (Hoyle Classic Card Games) - English Macintosh Floppy
// VERSION file reports "2.0"
@@ -996,14 +1004,14 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.001", 0, "bac3ec6cb3e3920984ab0f32becf5163", 202105},
{"resource.002", 0, "b86daa3ba2784d1502da881eedb80d9b", 341771},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Jones in the Fast Lane EGA - English DOS (supplied by EddyDrama in bug report #3038761)
{"jones", "EGA", {
{"resource.map", 0, "8e92cf319180cc8b5b87b2ce93a4fe22", 1602},
{"resource.001", 0, "bac3ec6cb3e3920984ab0f32becf5163", 511528},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Jones in the Fast Lane VGA - English DOS
// SCI interpreter version 1.000.172
@@ -1012,7 +1020,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.001", 0, "bac3ec6cb3e3920984ab0f32becf5163", 313476},
{"resource.002", 0, "b86daa3ba2784d1502da881eedb80d9b", 719747},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Jones in the Fast Lane VGA - English DOS (supplied by omer_mor in bug report #3037054)
// VERSION file reports "1.000.060"
@@ -1020,14 +1028,14 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "db175ab494ab0666f19ab8f2597a8e49", 1602},
{"resource.001", 0, "bac3ec6cb3e3920984ab0f32becf5163", 994487},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Jones in the Fast Lane - English DOS CD
{"jones", "CD", {
{"resource.map", 0, "459f5b04467bc2107aec02f5c4b71b37", 4878},
{"resource.001", 0, "3876da2ce16fb7dea2f5d943d946fa84", 1652150},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_CD, GUIO1(GAMEOPTION_JONES_CDAUDIO) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_CD, GUIO1(GAMEOPTION_JONES_CDAUDIO) },
// Jones in the Fast Lane - English DOS CD
// Same entry as the DOS version above. This one is used for the alternate
@@ -1056,7 +1064,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "59b13619078bd47011421468959ee5d4", 954},
{"resource.001", 0, "4cfb9040db152868f7cb6a1e8151c910", 296555},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 1 SCI Remake - English DOS (from the King's Quest Collection)
// Executable scanning reports "S.old.010", VERSION file reports "1.000.051"
@@ -1067,7 +1075,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.002", 0, "fed9e0072ffd511d248674e60dee2099", 714062},
{"resource.003", 0, "fed9e0072ffd511d248674e60dee2099", 717478},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 1 SCI Remake - English DOS (supplied by ssburnout in bug report #3049193)
// 1.000.051 9x5.25" (label: INT#9.19.90)
@@ -1081,7 +1089,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "fed9e0072ffd511d248674e60dee2099", 351062},
{"resource.007", 0, "fed9e0072ffd511d248674e60dee2099", 330472},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 4 - English Amiga (from www.back2roots.org)
// Executable scanning reports "1.002.032"
@@ -1102,7 +1110,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "992ac7cc31d3717fe53818a9bb6d1dae", 594},
{"resource.001", 0, "143e1c14f15ad0fbfc714f648a65f661", 205330},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 4 - English DOS (original boxed release, 3 1/2" disks)
// SCI interpreter version 0.000.247
@@ -1113,7 +1121,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.003", 0, "851a62d00972dc4002f472cc0d84e71d", 683145},
{"resource.004", 0, "851a62d00972dc4002f472cc0d84e71d", 649441},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 4 - English DOS (from the King's Quest Collection)
// Executable scanning reports "0.000.502"
@@ -1125,7 +1133,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.003", 0, "77615c595388acf3d1df8e107bfb6b52", 707591},
{"resource.004", 0, "77615c595388acf3d1df8e107bfb6b52", 479562},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 4 - English DOS (supplied by ssburnout in bug report #3049193)
// 1.006.003 8x5.25" (label: Int.#0.000.502)
@@ -1139,7 +1147,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "6db7de6f93c6ea62dca78abee677f8c0", 324789},
{"resource.007", 0, "6db7de6f93c6ea62dca78abee677f8c0", 334441},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 4 - English DOS
// SCI interpreter version 0.000.274
@@ -1153,7 +1161,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "851a62d00972dc4002f472cc0d84e71d", 333777},
{"resource.007", 0, "851a62d00972dc4002f472cc0d84e71d", 341038},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 4 - English DOS
// SCI interpreter version 0.000.253
@@ -1167,7 +1175,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "0c8566848a76eea19a6d6220914030a7", 337288},
{"resource.007", 0, "0c8566848a76eea19a6d6220914030a7", 343882},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 4 - English Atari ST (double-sided diskettes)
// Game version 1.003.006 (January 12, 1989)
@@ -1238,7 +1246,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "449471bfd77be52f18a3773c7f7d843d", 571368},
{"resource.001", 0, "b45a581ff8751e052c7e364f58d3617f", 16800210},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_CD, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_CD, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 5 - English DOS CD (from the King's Quest Collection)
// Executable scanning reports "x.yyy.zzz", VERSION file reports "1.000.052"
@@ -1265,7 +1273,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "672ede1136e9e401658538e51bd5dc22", 1172619},
{"resource.007", 0, "2f48faf27666b58c276dda20f91f4a93", 1240456},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 5 - English DOS Floppy
// VERSION file reports "0.000.051"
@@ -1283,7 +1291,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "da82e4beb744731d0a151f1d4922fafa", 1170456},
{"resource.007", 0, "431def14ca29cdb5e6a5e84d3f38f679", 1240176},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 5 - English DOS Floppy (supplied by omer_mor in bug report #3036996)
// VERSION file reports "0.000.051"
@@ -1298,7 +1306,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "06cb3f689836086ebe08b1efc0126592", 921113},
{"resource.007", 0, "252249753c6e850eacceb8af634986d3", 1133608},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 5 EGA (supplied by markcoolio in bug report #2829470)
// SCI interpreter version 1.000.060
@@ -1314,7 +1322,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "698c698570cde9015e4d51eb8d2e9db1", 666527},
{"resource.007", 0, "703d8df30e89541af337d7706540d5c4", 541743},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 5 EGA 1.2M disk version (from LordHoto)
// VERSION file reports "0.000.055"
@@ -1326,7 +1334,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "53206afb4fd73871a484e83acab80f31", 7608},
{"resource.004", 0, "83568edf7fde18b3eed988bc5d22ceb1", 1188053},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 5 EGA (supplied by omer_mor in bug report #3035421)
// VERSION file reports "0.000.062"
@@ -1341,7 +1349,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "698c698570cde9015e4d51eb8d2e9db1", 666541},
{"resource.007", 0, "703d8df30e89541af337d7706540d5c4", 541762},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest V DOS 0.000.062 EGA (5 x 5.25" disks)
// Supplied by ssburnout in bug report #3046780
@@ -1353,7 +1361,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.003", 0, "3cca5b2dae8afe94532edfdc98d7edbe", 1092325},
{"resource.004", 0, "8e5c1bc4d738cf7316ff506f59d265e2", 1187803},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 5 DOS Spanish Floppy 0.000.062 VGA (5 x 3.5" disks)
// Supplied by dianiu in bug report #3555646
@@ -1368,7 +1376,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "65b520e60c4217e6a6572d9edf77193b", 1141985},
{"resource.007", 0, "f42b0100f0a1c30806814f8648b6bc28", 1145583},
AD_LISTEND},
- Common::ES_ESP, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::ES_ESP, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 5 - German DOS Floppy (supplied by markcoolio in bug report #2727101, also includes english language)
// SCI interpreter version 1.000.060
@@ -1383,7 +1391,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "d1a75fdc01840664d00366cff6919366", 1208972},
{"resource.007", 0, "c07494f0cce7c05210893938786a955b", 1337361},
AD_LISTEND},
- Common::DE_DEU, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::DE_DEU, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 5 - French DOS Floppy (from the King's Quest Collector's Edition 1994, also includes english language)
// Supplied by aroenai in bug report #2812611
@@ -1399,7 +1407,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "f7dc85307632ef657ceb1651204f6f51", 1210081},
{"resource.007", 0, "7db4d0a1d8d547c0019cb7d2a6acbdd4", 1338473},
AD_LISTEND},
- Common::FR_FRA, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::FR_FRA, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 5 - Italian DOS Floppy (from glorifindel, includes english language)
// SCI interpreter version 1.000.060
@@ -1414,7 +1422,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "8eeabd92af71e766e323db2100879102", 1209325},
{"resource.007", 0, "dc10c107e0923b902326a040b9c166b9", 1337859},
AD_LISTEND},
- Common::IT_ITA, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::IT_ITA, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 5 - Polish DOS Floppy (supplied by jacek909 in bug report #2725722)
// SCI interpreter version 1.000.060
@@ -1432,7 +1440,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.007", 0, "431def14ca29cdb5e6a5e84d3f38f679", 1240176},
{"text.000", 0, "601aa35a3ddeb558e1280e0963e955a2", 1517},
AD_LISTEND},
- Common::PL_POL, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::PL_POL, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 5 - English Macintosh
// VERSION file reports "1.000.055"
@@ -1483,7 +1491,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "535b1b920441ec73f42eaa4ccfd47b89", 264116},
{"resource.msg", 0, "54d1fdc936f98c81f9e4c19e04fb1510", 8260},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 6 - English DOS Floppy
// SCI interpreter version 1.001.054
@@ -1492,7 +1500,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "f2b7f753992c56a0c7a08d6a5077c895", 7863324},
{"resource.msg", 0, "3cf5de44de36191f109d425b8450efc8", 258590},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 6 - French DOS Floppy (supplied by misterhands in bug #3503425)
// SCI interpreter version ???
@@ -1501,7 +1509,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "f2b7f753992c56a0c7a08d6a5077c895", 7863324},
{"resource.msg", 0, "adc2aa8adbdcc97507d44a6f492fbd77", 265194},
AD_LISTEND},
- Common::FR_FRA, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::FR_FRA, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 6 - German DOS Floppy (supplied by markcoolio in bug report #2727156)
// SCI interpreter version 1.001.054
@@ -1510,7 +1518,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "f2b7f753992c56a0c7a08d6a5077c895", 7863324},
{"resource.msg", 0, "756297b2155db9e43f621c6f6fb763c3", 282822},
AD_LISTEND},
- Common::DE_DEU, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::DE_DEU, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 6 - Spanish DOS Floppy (from jvprat)
// Executable scanning reports "1.cfs.158", VERSION file reports "1.000.000, July 5, 1994"
@@ -1520,7 +1528,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "4da3ad5868a775549a7cc4f72770a58e", 8537260},
{"resource.msg", 0, "41eed2d3893e1ca6c3695deba4e9d2e8", 267102},
AD_LISTEND},
- Common::ES_ESP, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::ES_ESP, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 6 - Italian DOS Floppy (supplied by guybrush79 in bug report #3606719)
{"kq6", "", {
@@ -1528,7 +1536,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "d3358ba7306378aed83d02b5c3f11311", 8531908},
{"resource.msg", 0, "b7e8220be596fd6a9287eae5a8fd354a", 279886},
AD_LISTEND},
- Common::IT_ITA, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::IT_ITA, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 6 - English DOS CD (from the King's Quest Collection)
// Executable scanning reports "1.cfs.158", VERSION file reports "1.034 9/11/94 - KQ6 version 1.000.00G"
@@ -1537,7 +1545,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "7a550ebfeae2575ca00d47703a6a774c", 9215},
{"resource.000", 0, "233394a5f33b475ae5975e7e9a420865", 8376352},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_CD, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_CD, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 6 - English Windows CD (from the King's Quest Collection)
// Executable scanning reports "1.cfs.158", VERSION file reports "1.034 9/11/94 - KQ6 version 1.000.00G"
@@ -1581,7 +1589,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "8676b0fbbd7362989a029fe72fea14c6", 18709},
{"resource.000", 0, "51c1ead1163e19a2de8f121c39df7a76", 200764100},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 7 - English Windows (from FRG)
// SCI interpreter version 2.100.002, VERSION file reports "2.00b"
@@ -1597,7 +1605,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "838b9ff132bd6962026fee832e8a7ddb", 18697},
{"resource.000", 0, "eb63ea3a2c2469dc2d777d351c626404", 206626576},
AD_LISTEND},
- Common::DE_DEU, Common::kPlatformPC, ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::DE_DEU, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 7 - Spanish DOS (from jvprat)
// Executable scanning reports "2.100.002", VERSION file reports "2.00"
@@ -1605,7 +1613,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "0b62693cbe87e3aaca3e8655a437f27f", 18709},
{"resource.000", 0, "51c1ead1163e19a2de8f121c39df7a76", 200764100},
AD_LISTEND},
- Common::ES_ESP, Common::kPlatformPC, ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::ES_ESP, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// King's Quest 7 - English DOS Non-Interactive Demo
// SCI interpreter version 2.100.002
@@ -1613,7 +1621,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "b44f774108d63faa1d021101221c5a54", 1690},
{"resource.000", 0, "d9659d2cf0c269c6a9dc776707f5bea0", 2433827},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO | ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO | ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
#endif // ENABLE_SCI32
@@ -1649,7 +1657,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "e625726268ff4e123ada11f31f0249f3", 768},
{"resource.001", 0, "0c8912290af0890f8d95faeb4ddb2d68", 333031},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Laura Bow - English DOS 3.5" Floppy (from "The Roberta Williams Anthology"/1996)
// SCI interpreter version 0.000.631
@@ -1660,7 +1668,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.003", 0, "e45c888d9c7c04aec0a20e9f820b79ff", 667468},
{"resource.004", 0, "e45c888d9c7c04aec0a20e9f820b79ff", 683807},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Laura Bow - English DOS (from FRG)
// SCI interpreter version 0.000.631
@@ -1674,7 +1682,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "e45c888d9c7c04aec0a20e9f820b79ff", 328390},
{"resource.007", 0, "e45c888d9c7c04aec0a20e9f820b79ff", 317687},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Laura Bow 2 - English DOS Non-Interactive Demo (from FRG)
// Executable scanning reports "x.yyy.zzz"
@@ -1683,7 +1691,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "24dffc5db1d88c7999f13e8767ed7346", 855},
{"resource.000", 0, "2b2b1b4f7584f9b38fd13f6ab95634d1", 781912},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Laura Bow 2 - English DOS Floppy
// Executable scanning reports "2.000.274"
@@ -1692,7 +1700,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "610bfd9a852004222f0faaf5fc9e630a", 6489},
{"resource.000", 0, "57084910bc923bff5d6d9bc1b56e9604", 5035964},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Laura Bow 2 - English DOS CD (from "The Roberta Williams Antology"/1996)
// Executable scanning reports "1.001.072", VERSION file reports "1.1" (from jvprat)
@@ -1701,7 +1709,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "a70945e61ba7ac7bfea6b7bd72c6aec5", 7274},
{"resource.000", 0, "82578b8d5a7e09c4c58891ca49fae35b", 5598672},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_CD, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_CD, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Laura Bow 2 v1.1 - French DOS Floppy (from Hkz)
{"laurabow2", "", {
@@ -1709,7 +1717,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "57084910bc923bff5d6d9bc1b56e9604", 5028766},
{"resource.msg", 0, "0fceedfbdd85a4bc7851fdd9dd2d2f19", 278253},
AD_LISTEND},
- Common::FR_FRA, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::FR_FRA, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Laura Bow 2 v1.1 - German DOS Floppy (from Tobis87, updated info from markcoolio in bug report #2723787, updated info from #2797962))
// Executable scanning reports "2.000.274"
@@ -1718,7 +1726,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "57084910bc923bff5d6d9bc1b56e9604", 5028766},
{"resource.msg", 0, "795c928cd00dfec9fbc62ebcd12e1f65", 303185},
AD_LISTEND},
- Common::DE_DEU, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::DE_DEU, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Laura Bow 2 - Spanish DOS CD (from jvprat)
// Executable scanning reports "2.000.274", VERSION file reports "1.000.000, May 10, 1994"
@@ -1727,7 +1735,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "57084910bc923bff5d6d9bc1b56e9604", 5028766},
{"resource.msg", 0, "71f1f0cd9f082da2e750c793a8ed9d84", 286141},
AD_LISTEND},
- Common::ES_ESP, Common::kPlatformPC, ADGF_CD, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::ES_ESP, Common::kPlatformDOS, ADGF_CD, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 1 EGA Remake - English DOS (from spookypeanut)
// SCI interpreter version 0.000.510 (or 0.000.577?)
@@ -1738,7 +1746,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.002", 0, "24c958bc922b07f91e25e8c93aa01fcf", 491230},
{"resource.003", 0, "685cd6c1e05a695ab1e0db826337ee2a", 553279},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
#if 0
// The resource.002 file, contained in disk 3, is broken in this version
@@ -1767,7 +1775,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.001", 0, "ec20246209d7b19f38989261e5c8f5b8", 1111226},
{"resource.002", 0, "85d6935ef77e6b0e16bc307640a0d913", 1088312},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 1 VGA Remake - English DOS (from FRG)
// SCI interpreter version 1.000.510
@@ -1777,7 +1785,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.001", 0, "d34cadb11e1aefbb497cf91bc1d3baa7", 1114688},
{"resource.002", 0, "85b030bb66d5342b0a068f1208c431a8", 1078443},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 1 VGA Remake - English Macintosh (from omer_mor, bug report #3328262)
{"lsl1sci", "SCI", {
@@ -1794,7 +1802,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "434e1f6c39d71647b34f0ee57b2bbd68", 444},
{"resource.001", 0, "0c0768215c562d9dace4a5ca53696cf3", 359913},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 1 VGA Remake - Spanish DOS (from the Leisure Suit Larry Collection, also includes english language)
// Executable scanning reports "1.SQ4.057", VERSION file reports "1.000"
@@ -1807,7 +1815,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.002", 0, "3fe2a3aec0ed53c7d6db1845a67e3aa2", 1095908},
{"resource.003", 0, "ac175df0ea9a2cba57f0248651856d27", 376556},
AD_LISTEND},
- Common::ES_ESP, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::ES_ESP, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 1 VGA Remake - Russian DOS (also includes english language?!)
// Executable scanning reports "1.000.510", VERSION file reports "2.0"
@@ -1818,7 +1826,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.001", 0, "bc8ca10c807515d959cbd91f9ba47735", 1123759},
{"resource.002", 0, "b7409ab32bc3bee2d6cce887cd33f2b6", 1092160},
AD_LISTEND},
- Common::RU_RUS, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::RU_RUS, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 1 VGA Remake - Polish DOS (from Polish Leisure Suit Larry Collection, official release)
// SCI interpreter version 1.000.577, VERSION file reports "2.1" (this release does NOT include english text)
@@ -1826,7 +1834,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "58330a85767e42a2487129913283ab5b", 3228},
{"resource.000", 0, "b6097ff35cdc8469f02150fe2f824198", 4781210},
AD_LISTEND},
- Common::PL_POL, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::PL_POL, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 2 - English Amiga (from www.back2roots.org)
// Executable scanning reports "x.yyy.zzz"
@@ -1847,7 +1855,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "03dba704bb77da55a91ad27b5a3cac09", 528},
{"resource.001", 0, "9f5520f0297206928df0b0b36493cd33", 127532},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 2 - English DOS
// SCI interpreter version 0.000.409
@@ -1860,7 +1868,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.005", 0, "4a24443a25e2b1492462a52809605dc2", 277732},
{"resource.006", 0, "4a24443a25e2b1492462a52809605dc2", 345683},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 2 - English DOS
// SCI interpreter version 0.000.343
@@ -1875,7 +1883,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
//{"resource.006", 0, "96033f57accfca903750413fd09193c8", 345818},
{"resource.006", 0, "96033f57accfca903750413fd09193c8", -1}, // 345818 or 208739
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 2 - English DOS (supplied by ssburnout in bug report #3049193)
// 1.000.011 3x3.5" (label: Int. #0.000.343)
@@ -1885,7 +1893,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.002", 0, "96033f57accfca903750413fd09193c8", 407014},
{"resource.003", 0, "96033f57accfca903750413fd09193c8", 592834},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 2 - English DOS (supplied by ssburnout in bug report #3049193)
// 1.002.000 3x3.5" (label: INT#0.000.409)
@@ -1895,7 +1903,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.002", 0, "4a24443a25e2b1492462a52809605dc2", 406935},
{"resource.003", 0, "4a24443a25e2b1492462a52809605dc2", 592533},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 3 - English Amiga (from www.back2roots.org)
// Executable scanning reports "1.002.032"
@@ -1911,17 +1919,6 @@ static const struct ADGameDescription SciGameDescriptions[] = {
AD_LISTEND},
Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
- // Larry 3 - English DOS
- // SCI interpreter version 0.000.572
- {"lsl3", "", {
- {"resource.map", 0, "0b6bd3e039682830a51c5755c06591db", 5916},
- {"resource.001", 0, "f18441027154292836b973c655fa3175", 456722},
- {"resource.002", 0, "f18441027154292836b973c655fa3175", 578024},
- {"resource.003", 0, "f18441027154292836b973c655fa3175", 506807},
- {"resource.004", 0, "f18441027154292836b973c655fa3175", 513651},
- AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
-
// Larry 3 - English DOS (supplied by ssburnout in bug report #3049193)
// 1.021 8x5.25" (label: Int#5.15.90)
{"lsl3", "", {
@@ -1934,7 +1931,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "f18441027154292836b973c655fa3175", 282649},
{"resource.007", 0, "f18441027154292836b973c655fa3175", 257178},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 3 - English DOS
// SCI interpreter version 0.000.572
@@ -1948,7 +1945,28 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "f18441027154292836b973c655fa3175", 282465},
{"resource.007", 0, "f18441027154292836b973c655fa3175", 257174},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+
+ // Larry 3 - English DOS
+ // SCI interpreter version 0.000.572
+ {"lsl3", "", {
+ {"resource.map", 0, "0b6bd3e039682830a51c5755c06591db", 5916},
+ {"resource.001", 0, "f18441027154292836b973c655fa3175", 456722},
+ {"resource.002", 0, "f18441027154292836b973c655fa3175", 578024},
+ {"resource.003", 0, "f18441027154292836b973c655fa3175", 506807},
+ {"resource.004", 0, "f18441027154292836b973c655fa3175", 513651},
+ AD_LISTEND},
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+
+ // Larry 3 - English DOS (supplied by kervala in bug report #3611488)
+ {"lsl3", "", {
+ {"resource.map", 0, "534d8946f10bc71a71b5bf89a84c31be", 5916},
+ {"resource.001", 0, "f18441027154292836b973c655fa3175", 456265},
+ {"resource.002", 0, "f18441027154292836b973c655fa3175", 577059},
+ {"resource.003", 0, "f18441027154292836b973c655fa3175", 506817},
+ {"resource.004", 0, "f18441027154292836b973c655fa3175", 513337},
+ AD_LISTEND},
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 3 - English DOS Non-Interactive Demo
// SCI interpreter version 0.000.530
@@ -1957,7 +1975,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.001", 0, "f773d79b93dfd4052ec8c1cc64c1e6ab", 76525},
{"resource.002", 0, "f773d79b93dfd4052ec8c1cc64c1e6ab", 268299},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 3 - German DOS (from Tobis87, updated info from markcoolio in bug report #2723832, also includes english language)
// Executable scanning reports "S.old.123"
@@ -1969,7 +1987,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.003", 0, "3827a9b17b926e12dcc336860f50612a", 587036},
{"resource.004", 0, "3827a9b17b926e12dcc336860f50612a", 691932},
AD_LISTEND},
- Common::DE_DEU, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::DE_DEU, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 3 - French DOS (provided by richiefs in bug report #2670691, also includes english language)
// Executable scanning reports "S.old.123"
@@ -1981,7 +1999,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.003", 0, "65f1bdaa20f6d0470e9d969f22473873", 586921},
{"resource.004", 0, "65f1bdaa20f6d0470e9d969f22473873", 690826},
AD_LISTEND},
- Common::FR_FRA, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::FR_FRA, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 3 1.050 Fr/En (9 x 5.25" disks)
// Provided by ssburnout in bug report #3046779
@@ -1995,7 +2013,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "65f1bdaa20f6d0470e9d969f22473873", 325292},
{"resource.007", 0, "65f1bdaa20f6d0470e9d969f22473873", 308982},
AD_LISTEND},
- Common::FR_FRA, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::FR_FRA, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 5 - English Amiga
// Executable scanning reports "1.004.023"
@@ -2034,7 +2052,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "efe8d3f45ce4f6bd9a6643e0ac8d2a97", 504},
{"resource.001", 0, "8bd8d9c0b5f455ee1269d63ce86c50dd", 531380},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 5 - English DOS (from spookypeanut)
// SCI interpreter version 1.000.510
@@ -2049,7 +2067,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "dda27ce00682aa76198dac124bbbe334", 1024810},
{"resource.007", 0, "ac443fae1285fb359bf2b2bc6a7301ae", 1030656},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 5 - English Macintosh (from omer_mor, bug report #3328257)
{"lsl5", "", {
@@ -2078,7 +2096,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "dda27ce00682aa76198dac124bbbe334", 1021774},
{"resource.007", 0, "ac443fae1285fb359bf2b2bc6a7301ae", 993408},
AD_LISTEND},
- Common::DE_DEU, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::DE_DEU, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 5 - French DOS (provided by richiefs in bug report #2670691)
// Executable scanning reports "1.lsl5.019"
@@ -2094,7 +2112,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "dda27ce00682aa76198dac124bbbe334", 946540},
{"resource.007", 0, "ac443fae1285fb359bf2b2bc6a7301ae", 958842},
AD_LISTEND},
- Common::FR_FRA, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::FR_FRA, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 5 - Spanish DOS (from the Leisure Suit Larry Collection)
// Executable scanning reports "1.ls5.006", VERSION file reports "1.000, 4/21/92"
@@ -2110,7 +2128,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "dda27ce00682aa76198dac124bbbe334", 1015136},
{"resource.007", 0, "ac443fae1285fb359bf2b2bc6a7301ae", 987222},
AD_LISTEND},
- Common::ES_ESP, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::ES_ESP, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 5 - Italian DOS Floppy (from glorifindel)
// SCI interpreter version 1.000.510 (just a guess)
@@ -2118,7 +2136,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "a99776df795127f387cb35dae872d4e4", 5919},
{"resource.000", 0, "a8989a5a89e7d4f702b26b378c7a357a", 7001981},
AD_LISTEND},
- Common::IT_ITA, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::IT_ITA, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 5 1.0 EGA DOS (8 x 3.5" disks)
// Provided by ssburnout in bug report #3046806
@@ -2133,7 +2151,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "f6046a8445422f17d40b1b10ab21ebf3", 568551},
{"resource.007", 0, "640ee65595d40372ef95462f2c1ae28a", 593429},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 5 EGA
// Supplied by omer_mor in bug report #3049771
@@ -2144,7 +2162,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.002", 0, "5a55af4e40728b1a8103dc47ad2afa8d", 1100539},
{"resource.003", 0, "16f4d8fb1b526125edaca4fc6cbb7530", 1064563},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 6 - English DOS (from spookypeanut)
// SCI interpreter version 1.001.113
@@ -2152,7 +2170,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "bb8a39d9e2a77ba449a1e591109ad9a8", 6973},
{"resource.000", 0, "4462fe48c7452d98fddcec327a3e738d", 5789138},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 6 - English/German/French DOS CD - LOWRES
// SCI interpreter version 1.001.115
@@ -2160,7 +2178,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "0b91234b7112782962cb480b7791b6e2", 7263},
{"resource.000", 0, "57d5fe8bb9e044158514476ea7678eb0", 5754790},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_CD, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_CD, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 6 - German DOS CD - LOWRES (provided by richiefs in bug report #2670691)
// SCI interpreter version 1.001.115
@@ -2168,7 +2186,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "bafe85f32738854135991d4324ad147e", 7268},
{"resource.000", 0, "f6cbc6da7b90ea135883e0759848ca2c", 5773160},
AD_LISTEND},
- Common::DE_DEU, Common::kPlatformPC, ADGF_CD, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::DE_DEU, Common::kPlatformDOS, ADGF_CD, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 6 - French DOS CD - LOWRES (provided by richiefs in bug report #2670691)
// SCI interpreter version 1.001.115
@@ -2176,7 +2194,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "97797ea775baaf18a1907d357d3c0ea6", 7268},
{"resource.000", 0, "f6cbc6da7b90ea135883e0759848ca2c", 5776092},
AD_LISTEND},
- Common::FR_FRA, Common::kPlatformPC, ADGF_CD, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::FR_FRA, Common::kPlatformDOS, ADGF_CD, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 6 - Spanish DOS - LOWRES (from the Leisure Suit Larry Collection)
// Executable scanning reports "1.001.113", VERSION file reports "1.000, 11.06.93, FIVE PATCHES ADDED TO DISK 6 ON 11-18-93"
@@ -2184,7 +2202,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "633bf8f42170b6271019917c8009989b", 6943},
{"resource.000", 0, "7884a8db9253e29e6b37a2651fd90ba3", 5733116},
AD_LISTEND},
- Common::ES_ESP, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::ES_ESP, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Crazy Nick's Software Picks: Leisure Suit Larry's Casino - English DOS (from the Leisure Suit Larry Collection)
// Executable scanning reports "1.001.029", VERSION file reports "1.000"
@@ -2192,35 +2210,35 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "194f1578f2624db813c9072359ad1639", 783},
{"resource.001", 0, "3733433b517ec3d14a3331d9ab3842ae", 344830},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Crazy Nick's Software Picks: King Graham's Board Game Challenge
{"cnick-kq", "", {
{"resource.map", 0, "44bc538a5cd24b39ffccc967c0ebf84d", 1137},
{"resource.001", 0, "470e7a4a3504635e70b623c44461e1ac", 451272},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Crazy Nick's Software Picks: Parlor Games with Laura Bow
{"cnick-laurabow", "", {
{"resource.map", 0, "3b826bfe64f8ff1ccf30eef93cd2f727", 999},
{"resource.001", 0, "985ac8db6f636f2b4334c04b0fbb44fb", 336698},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Crazy Nick's Software Picks: Robin Hood's Game of Skill and Chance
{"cnick-longbow", "", {
{"resource.map", 0, "4a5c81f485a2416bde12978506f2fb5f", 897},
{"resource.001", 0, "ef16dc9e867eb8eeb5b13e110b90bd4b", 571466},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Crazy Nick's Software Picks: Roger Wilco's Spaced Out Game Pack
{"cnick-sq", "", {
{"resource.map", 0, "b4d95b02d84e297441bd999d34eaa6b1", 879},
{"resource.001", 0, "82ff2b64a60117886fbcd6a3a8c977c6", 364921},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
#ifdef ENABLE_SCI32
// Larry 6 - English/German DOS CD - HIRES
@@ -2229,7 +2247,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "0c0804434ea62278dd15032b1947426c", 8872},
{"resource.000", 0, "9a9f4870504444cda863dd14d077a680", 18520872},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 6 - German DOS CD - HIRES (provided by richiefs in bug report #2670691)
// SCI interpreter version 2.100.002
@@ -2237,7 +2255,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "badfdf446ffed569a310d2c63a249421", 8896},
{"resource.000", 0, "bd944d2b06614a5b39f1586906f0ee88", 18534274},
AD_LISTEND},
- Common::DE_DEU, Common::kPlatformPC, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::DE_DEU, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 6 - French DOS CD - HIRES (provided by richiefs in bug report #2670691)
// SCI interpreter version 2.100.002
@@ -2245,7 +2263,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "d184e9aa4f2d4b5670ddb3669db82cda", 8896},
{"resource.000", 0, "bd944d2b06614a5b39f1586906f0ee88", 18538987},
AD_LISTEND},
- Common::FR_FRA, Common::kPlatformPC, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::FR_FRA, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 7 - English DOS Demo (provided by richiefs in bug report #2670691)
// SCI interpreter version 2.100.002
@@ -2253,7 +2271,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"ressci.000", 0, "5cc6159688b2dc03790a67c90ccc67f9", 10195878},
{"resmap.000", 0, "6a2b2811eef82e87cde91cf1de845af8", 2695},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO | ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO | ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
#ifdef ENABLE_SCI3_GAMES
// Larry 7 - English DOS CD (from spookypeanut)
@@ -2262,7 +2280,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resmap.000", 0, "eae93e1b1d1ccc58b4691c371281c95d", 8188},
{"ressci.000", 0, "89353723488219e25589165d73ed663e", 66965678},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 7 - German DOS (from Tobis87)
// SCI interpreter version 3.000.000
@@ -2270,7 +2288,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resmap.000", 0, "c11e6bfcfc2f2d05da47e5a7df3e9b1a", 8188},
{"ressci.000", 0, "a8c6817bb94f332ff498a71c8b47f893", 66971724},
AD_LISTEND},
- Common::DE_DEU, Common::kPlatformPC, ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::DE_DEU, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 7 - French DOS (provided by richiefs in bug report #2670691)
// SCI interpreter version 3.000.000
@@ -2278,7 +2296,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resmap.000", 0, "4407849fd52fe3efb0c30fba60cd5cd4", 8206},
{"ressci.000", 0, "dc37c3055fffbefb494ff22b145d377b", 66964472},
AD_LISTEND},
- Common::FR_FRA, Common::kPlatformPC, ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::FR_FRA, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 7 - Italian DOS CD (from glorifindel)
// SCI interpreter version 3.000.000
@@ -2286,7 +2304,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resmap.000", 0, "9852a97141f789413f29bf956052acdb", 8212},
{"ressci.000", 0, "440b9fed89590abb4e4386ed6f948ee2", 67140181},
AD_LISTEND},
- Common::IT_ITA, Common::kPlatformPC, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::IT_ITA, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Larry 7 - Spanish DOS (from the Leisure Suit Larry Collection)
// Executable scanning reports "3.000.000", VERSION file reports "1.0s"
@@ -2294,7 +2312,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resmap.000", 0, "8f3d603e1acc834a5d598b30cdfc93f3", 8188},
{"ressci.000", 0, "32792f9bc1bf3633a88b382bb3f6e40d", 67071418},
AD_LISTEND},
- Common::ES_ESP, Common::kPlatformPC, ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::ES_ESP, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
#endif
// Lighthouse - English Windows Demo (from jvprat)
@@ -2303,7 +2321,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "543124606352bfa5e07696ddf2a669be", 64},
{"resource.000", 0, "5d7714416b612463d750fb9c5690c859", 28952},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO | ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO | ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
#ifdef ENABLE_SCI3_GAMES
// Lighthouse - English Windows Demo
@@ -2312,7 +2330,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resmap.000", 0, "3bdee7a16926975a4729f75cf6b80a92", 1525},
{"ressci.000", 0, "3c585827fa4a82f4c04a56a0bc52ccee", 11494351},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO | ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO | ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Lighthouse - English DOS (from jvprat)
// Executable scanning reports "3.000.000", VERSION file reports "1.1"
@@ -2322,7 +2340,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resmap.002", 0, "c68db5333f152fea6ca2dfc75cad8b34", 7573},
{"ressci.002", 0, "175468431a979b9f317c294ce3bc1430", 94628315},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Lighthouse - Spanish DOS (from jvprat)
// Executable scanning reports "3.000.000", VERSION file reports "1.1"
@@ -2332,7 +2350,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resmap.002", 0, "e7dc85884a2417e2eff9de0c63dd65fa", 7630},
{"ressci.002", 0, "3c8d627c555b0e3e4f1d9955bc0f0df4", 94631127},
AD_LISTEND},
- Common::ES_ESP, Common::kPlatformPC, ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::ES_ESP, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
#endif // ENABLE_SCI3_GAMES
#endif // ENABLE_SCI32
@@ -2343,7 +2361,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "8be56a3a88c065ee00c02c0e29199f3a", 14643},
{"resource.001", 0, "9e33566515b18bee7915db448063bba2", 871853},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Mixed-Up Fairy Tales - English DOS Floppy EGA (from omer_mor, bug report #3035350)
{"fairytales", "EGA", {
@@ -2354,7 +2372,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.003", 0, "509b2467ba779100d5933ed51a9ae32f", 560255},
{"resource.004", 0, "93afc85d5ffa60ea555d6cc336d22c03", 651109},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Mixed-Up Fairy Tales v1.000 - English DOS (supplied by markcoolio in bug report #2723791)
// Executable scanning reports "1.000.145"
@@ -2366,7 +2384,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.003", 0, "b1288e0821ee358d1ffe877e5900c8ec", 1047565},
{"resource.004", 0, "f79daa70390d73746742ffcfc3dc4471", 937580},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Mixed-Up Fairy Tales - English DOS Floppy (from jvprat)
// Executable scanning reports "1.000.145", Floppy label reports "1.0, 11.13.91", VERSION file reports "1.000"
@@ -2377,7 +2395,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.002", 0, "564f516d991032e781492592a4eaa275", 1414142},
{"resource.003", 0, "dd6cef0c592eadb7e6be9a25307c57a2", 1344719},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Mixed-Up Mother Goose - English Amiga (from www.back2roots.org)
// Executable scanning reports "1.003.009"
@@ -2395,7 +2413,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.001", 0, "d893892d62b3f061357291d66775e360", 239906},
{"resource.002", 0, "d893892d62b3f061357291d66775e360", 719398},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Mixed-Up Mother Goose - English DOS Floppy EGA (supplied by ssburnout in bug report #3049193)
// 1.011 5x5.25" (label: Int#8.2.90)
@@ -2408,7 +2426,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.004", 0, "dbbc22f124533ce308bc386b08956326", 146251},
{"resource.005", 0, "2ba5348e7fad641b9c4c7ff7c7cf4e68", 110979},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Mixed-Up Mother Goose v2.000 - English DOS Floppy (supplied by markcoolio in bug report #2723795)
// Executable scanning reports "1.001.031"
@@ -2416,7 +2434,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "52aae15e493cafd1da7e1c9b657a5bb9", 7026},
{"resource.000", 0, "b7ecd8ae9e254e80310b5a668b276e6e", 2948975},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Mixed-Up Mother Goose - English DOS CD (from jvprat)
// Executable scanning reports "x.yyy.zzz"
@@ -2425,7 +2443,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "1c7f311b0a2c927b2fbe81ae341fb2f6", 5790},
{"resource.001", 0, "5a0ed1d745855148364de1b3be099bac", 4369438},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_CD, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_CD, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Mixed-Up Mother Goose - English Windows Interactive Demo
// Executable scanning reports "x.yyy.zzz"
@@ -2454,7 +2472,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "5159a1578c4306bfe070a3e4d8c2e1d3", 4741},
{"resource.000", 0, "1926925c95d82f0999590e93b02887c5", 15150768},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Mixed-Up Mother Goose Deluxe - Multilingual Windows CD (English/French/German/Spanish)
// Executable scanning reports "2.100.002"
@@ -2462,7 +2480,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resmap.000", 0, "ef611af561898dcfea87846919ebf3eb", 4969},
{"ressci.000", 0, "227685bc59d90821978d330713e44a7a", 17205800},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
#endif // ENABLE_SCI32
// Ms. Astro Chicken - English DOS
@@ -2471,7 +2489,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "5b457cbe5042f557e5b610148171f6c0", 1158},
{"resource.001", 0, "453ea81ef66a50cbe33ce06302afe47f", 229737},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
#ifdef ENABLE_SCI32
// Phantasmagoria - English DOS (from jvprat)
@@ -2492,7 +2510,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resmap.007", 0, "afbd16ea77869a720afa1c5371de107d", 7972},
//{"ressci.007", 0, "3aae6559aa1df273bc542d5ac6330d75", 25859038},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Phantasmagoria - English DOS Demo
// Executable scanning reports "2.100.002"
@@ -2500,7 +2518,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resmap.001", 0, "416138651ea828219ca454cae18341a3", 11518},
{"ressci.001", 0, "3aae6559aa1df273bc542d5ac6330d75", 65844612},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO | ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO | ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Phantasmagoria - English DOS/Windows (GOG version) - ressci.* merged in ressci.000
// Windows executable scanning reports "2.100.002" - "Sep 19 1995 15:09:43"
@@ -2511,7 +2529,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"ressci.000", 0, "cd5967f9b9586e3380645961c0765be3", 116822037},
{"resmap.000", 0, "3cafc1c6a53945c1f3babbfd6380c64c", 16468},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Phantasmagoria - English Macintosh
// NOTE: This only contains disc 1 files (as well as the two persistent files:
@@ -2565,7 +2583,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "72726dc81c1b4c1110c486be77369bc8", 5179},
{"resource.000", 0, "670d0c53622429f4b11275caf7f8d292", 5459574},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Pepper - English DOS Non-Interactive Demo
// Executable scanning reports "1.001.060", VERSION file reports "1.000"
@@ -2573,7 +2591,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "379bb4fb896630b14f2d91ed21e36ba1", 984},
{"resource.000", 0, "118f6c31a93ec7fd9a231c61125229e3", 645494},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Pepper - English DOS/Windows Interactive Demo
// Executable scanning reports "1.001.069", VERSION file reports ".001"
@@ -2581,7 +2599,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "975e8df76106a5c13d12ab674f906a02", 2514},
{"resource.000", 0, "e6a918a2dd7a4bcecd8fb389f43287c2", 1698164},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Pepper - English DOS Interactive Demo
// Executable scanning reports "1.001.072", VERSION file reports "1.000"
@@ -2589,7 +2607,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "9c9b7b900651a370dd3fb38d478b1798", 2524},
{"resource.000", 0, "e6a918a2dd7a4bcecd8fb389f43287c2", 1713544},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Police Quest 1 VGA Remake - English DOS (from the Police Quest Collection)
// Executable scanning reports "1.001.029", VERSION file reports "2.000"
@@ -2597,7 +2615,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "35efa814fb994b1cbdac9611e401da67", 5013},
{"resource.000", 0, "e0d5ddf34eda903a38f0837e2aa7145b", 6401433},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Police Quest 2 - English Amiga (from www.back2roots.org)
// SCI interpreter version 0.000.685 (just a guess)
@@ -2616,7 +2634,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "8b77d0d4650c2052b356cece28294b58", 576},
{"resource.001", 0, "376ef6d6eaaeed66e1424bd219c4b9ab", 215398},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Police Quest 2 - English DOS (provided by richiefs in bug report #2670691)
// SCI interpreter version 0.000.395
@@ -2629,7 +2647,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.005", 0, "77f02def3094af804fd2371db25b7100", 349899},
{"resource.006", 0, "77f02def3094af804fd2371db25b7100", 354991},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Police Quest 2 - English DOS (from the Police Quest Collection)
// Executable scanning reports "0.000.490"
@@ -2639,7 +2657,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.002", 0, "77f02def3094af804fd2371db25b7100", 546000},
{"resource.003", 0, "77f02def3094af804fd2371db25b7100", 591851},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Police Quest 2 - English DOS (from FRG)
// SCI interpreter version 0.000.395
@@ -2649,7 +2667,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.002", 0, "77f02def3094af804fd2371db25b7100", 542897},
{"resource.003", 0, "77f02def3094af804fd2371db25b7100", 586857},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Police Quest 2 English DOS 1.001.006 (supplied by merkur-kun in bug report #3028479)
{"pq2", "", {
@@ -2658,7 +2676,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.002", 0, "77f02def3094af804fd2371db25b7100", 541261},
{"resource.003", 0, "77f02def3094af804fd2371db25b7100", 587511},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Police Quest 2 - Japanese PC-98 (also includes english language)
// SCI interpreter version unknown
@@ -2708,7 +2726,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.003", 0, "8791b9eef53edf77c2dac950142221d3", 1159791},
{"resource.004", 0, "1b91e891a3c60a941dac0eecdf83375b", 1143606},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Police Quest 3 - English DOS Non-Interactive Demo
// Executable scanning reports "T.A00.052"
@@ -2718,7 +2736,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "277f97771f7a6d89677141f02da313d6", 65150},
{"resource.001", 0, "5c5a551b6c86cce2ee75becb90e0b586", 624411},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Police Quest 3 - German DOS (supplied by markcoolio in bug report #2723837, also includes english language)
// Executable scanning reports "T.A00.178"
@@ -2731,14 +2749,14 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.003", 0, "4836f460f4cfc8de61e2df4c45775504", 1180956},
{"resource.004", 0, "0c3eb84b9755852d9e795e0d5c9373c7", 1171760},
AD_LISTEND},
- Common::DE_DEU, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::DE_DEU, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Police Quest 3 - Spanish DOS v1.000 - Supplied by dianiu in bug report #3555647
{"pq3", "", {
{"resource.map", 0, "ffa0b4631c4e36d69631256d19ba29e7", 5421},
{"resource.000", 0, "5ee460af3d70c06a745cc482b6c783ba", 5410263},
AD_LISTEND},
- Common::ES_ESP, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::ES_ESP, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Police Quest 3 EGA
// Reported by musiclyinspired in bug report #3046573
@@ -2751,7 +2769,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.004", 0, "b96a86ab681769e4cbb439670d967ca6", 449682},
{"resource.005", 0, "9e6c53a0e7eef53694d260fade8b1fc7", 724000},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Police Quest 4 - English DOS Non-Interactive Demo (from FRG)
// SCI interpreter version 1.001.096
@@ -2759,7 +2777,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "be56f87a1c4a13062a30a362df860c2f", 1472},
{"resource.000", 0, "527d5684016e6816157cd15d9071b11b", 1121310},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
#ifdef ENABLE_SCI32
// Police Quest 4 - English DOS CD (from the Police Quest Collection)
@@ -2768,7 +2786,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "379dfe80ed6bd16c47e4b950c4722eac", 11374},
{"resource.000", 0, "fd316a09b628b7032248139003369022", 18841068},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_CD | ADGF_UNSTABLE, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_CD | ADGF_UNSTABLE, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Police Quest 4 - German DOS CD (German text, English speech)
// Supplied by markcoolio in bug report #3392955
@@ -2776,7 +2794,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "a398076371ed0e1e706c8f9fb9fc7ac5", 11386},
{"resource.000", 0, "6ff21954e0a2c5992279e7eb787c8d56", 18918747},
AD_LISTEND},
- Common::DE_DEU, Common::kPlatformPC, ADGF_CD | ADGF_UNSTABLE, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::DE_DEU, Common::kPlatformDOS, ADGF_CD | ADGF_UNSTABLE, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Police Quest 4 - English DOS
// SCI interpreter version 2.000.000 (a guess?)
@@ -2784,7 +2802,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "aed9643158ccf01b71f359db33137f82", 9895},
{"resource.000", 0, "da383857b3be1e4514daeba2524359e0", 15141432},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_UNSTABLE, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Police Quest 4 - French DOS (supplied by abevi in bug report #2612718)
// SCI interpreter version 2.000.000
@@ -2792,7 +2810,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "008030846edcc7c5c7a812c7f4ae4ceb", 9256},
{"resource.000", 0, "6ba98bd2e436739d87ecd2a9b99cabb4", 14730153},
AD_LISTEND},
- Common::FR_FRA, Common::kPlatformPC, ADGF_UNSTABLE, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::FR_FRA, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Police Quest 4 - German DOS (supplied by markcoolio in bug report #2723840)
// SCI interpreter version 2.000.000 (a guess?)
@@ -2800,7 +2818,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "2393ee728ab930b2762cb5889f9b5aff", 9256},
{"resource.000", 0, "6ba98bd2e436739d87ecd2a9b99cabb4", 14730155},
AD_LISTEND},
- Common::DE_DEU, Common::kPlatformPC, ADGF_UNSTABLE, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::DE_DEU, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Police Quest: SWAT - English DOS/Windows Demo (from jvprat)
// Executable scanning reports "2.100.002", VERSION file reports "0.001.200"
@@ -2808,7 +2826,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "8c96733ef94c21526792f7ca4e3f2120", 1648},
{"resource.000", 0, "d8892f1b8c56c8f7704325460f49b300", 3676175},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO | ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO | ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Police Quest: SWAT - English DOS (from GOG.com)
// Executable scanning reports "2.100.002", VERSION file reports "1.0c"
@@ -2816,7 +2834,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resmap.000", 0, "1c2563fee189885e29d9348f37306d94", 12175},
{"ressci.000", 0, "b2e1826ca81ce2e7e764587f5a14eee9", 127149181},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Police Quest: SWAT - English Windows (from the Police Quest Collection)
// Executable scanning reports "2.100.002", VERSION file reports "1.0c"
@@ -2844,7 +2862,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.003", 0, "7ab2bf8e224b57f75e0cd6e4ba790761", 642203},
{"resource.004", 0, "7ab2bf8e224b57f75e0cd6e4ba790761", 641688},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 1 / Hero's Quest - English DOS 3.5" Floppy (supplied by alonzotg in bug report #3206006)
{"qfg1", "", {
@@ -2855,7 +2873,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.003", 0, "7ab2bf8e224b57f75e0cd6e4ba790761", 642203},
{"resource.004", 0, "7ab2bf8e224b57f75e0cd6e4ba790761", 641688},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 1 / Hero's Quest - English DOS 3.5" Floppy v1.102 Int#0.000.629 (suppled by digitoxin1 in bug report #3554611)
{"qfg1", "", {
@@ -2866,7 +2884,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.003", 0, "f0af87c60ec869946da442833aa5afa8", 640502},
{"resource.004", 0, "f0af87c60ec869946da442833aa5afa8", 644575},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 1 / Hero's Quest - English DOS 5.25" Floppy v1.102 Int#0.000.629 (suppled by digitoxin1 in bug report #3554611)
{"qfg1", "", {
@@ -2880,7 +2898,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "48b2b3c964dcbeccb68e984e6d4e97db", 278473},
{"resource.007", 0, "f0af87c60ec869946da442833aa5afa8", 269237},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 1 / Hero's Quest - English DOS 5.25" Floppy (supplied by markcoolio in bug report #2723843)
// Executable scanning reports "0.000.566"
@@ -2895,7 +2913,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "69366c2a2f99917199fe1b60a4fee19d", 267852},
{"resource.007", 0, "7ab2bf8e224b57f75e0cd6e4ba790761", 272747},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 1 / Hero's Quest - English DOS 5.25" Floppy (supplied by ssburnout in bug report #3049193)
// 1.001 10x5.25" (label: INT.#0.000.566)
@@ -2910,7 +2928,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "69366c2a2f99917199fe1b60a4fee19d", 267852},
{"resource.007", 0, "7ab2bf8e224b57f75e0cd6e4ba790761", 272747},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 1 / Hero's Quest - English DOS 5.25" Floppy (supplied by ssburnout in bug report #3049193)
// 1.200 10x5.25" (label: INT#9.10.90)
@@ -2925,7 +2943,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "f46690dca714abc8c89357d30e363dd3", 278387},
{"resource.007", 0, "951299a82a8134ed12c5c18118d45c2f", 269173},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 1 / Hero's Quest - English DOS Demo
// Executable scanning reports "0.000.685"
@@ -2933,7 +2951,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "df34c758cbb9026da175793ff686b0e6", 882},
{"resource.001", 0, "73fbaafdd313b39aeedb80fbf85ecef1", 389884},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 1 - Japanese PC-98 5.25" Floppy (also includes English language)
// Executable scanning reports "S.old.201"
@@ -2979,7 +2997,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.003", 0, "951299a82a8134ed12c5c18118d45c2f", 640483},
{"resource.004", 0, "951299a82a8134ed12c5c18118d45c2f", 644443},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 1 VGA Remake - English DOS
// Executable scanning reports "2.000.411"
@@ -2987,7 +3005,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "a731fb6c9c0b282443f7027bc8694d4c", 8469},
{"resource.000", 0, "ecace1a2771846b1a8aa1afdd44111a0", 6570147},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 1 VGA Remake - English DOS Non-Interactive Demo (from FRG)
// SCI interpreter version 1.001.029
@@ -2995,7 +3013,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "ac0257051c95a59c0cdc0be24d9b11fa", 729},
{"resource.000", 0, "ec6f5cf369054dd3e5392995e9975b9e", 768218},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 1 VGA Remake - English Macintosh Floppy
// VERSION file reports "2.0"
@@ -3031,7 +3049,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.003", 0, "0790f67d87642132be515cab05026baa", 972144},
{"resource.004", 0, "2ac1e6fea9aa1f5b91a06693a67b9766", 982830},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 2 - English (supplied by ssburnout in bug report #3049193)
// 1.000 9x3.5" (label: INT#10.31.90)
@@ -3046,7 +3064,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "5e9deacbdb17198ad844988e04833520", 498593},
{"resource.007", 0, "2ac1e6fea9aa1f5b91a06693a67b9766", 490151},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 2 - English (from FRG)
// Executable scanning reports "1.000.072"
@@ -3058,7 +3076,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.003", 0, "b192607c42f6960ecdf2ad2e4f90e9bc", 972804},
{"resource.004", 0, "cd2de58e27665d5853530de93fae7cd6", 983617},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 2 - English DOS
// Executable scanning reports "1.000.072"
@@ -3073,7 +3091,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "b1944bd664ddbd2859cdaa0c4a0d6281", 507489},
{"resource.007", 0, "cd2de58e27665d5853530de93fae7cd6", 490794},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 2 - English DOS (supplied by digitoxin1 in bug report #3554614)
// v1.102 9x3.5" (label: Int#11.20.90)
@@ -3088,7 +3106,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "b1944bd664ddbd2859cdaa0c4a0d6281", 507489},
{"resource.007", 0, "cd2de58e27665d5853530de93fae7cd6", 490794},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 2 - English DOS Non-Interactive Demo
// Executable scanning reports "1.000.046"
@@ -3096,7 +3114,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "e75eb86bdd517b3ef709058249986a87", 906},
{"resource.001", 0, "9b098f9e1008abe30e56c93b896494e6", 362123},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 3 - English DOS Non-Interactive Demo (from FRG)
// Executable scanning reports "1.001.021", VERSION file reports "1.000, 0.001.059, 6.12.92"
@@ -3104,7 +3122,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "fd71de9b588a45f085317caacf050e91", 687},
{"resource.000", 0, "b6c69bf6c18bf177492249fe81fc6a6d", 648702},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 3 - English DOS
// SCI interpreter version 1.001.050
@@ -3112,7 +3130,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "19e2bf9b693932b5e2bb59b9f9ab86c9", 5958},
{"resource.000", 0, "6178ad2e83e58e4671ca03315f7a6498", 5868000},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 3 - English DOS (supplied by abevi in bug report #2612718)
// SCI interpreter version 1.001.050
@@ -3120,7 +3138,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "62c185d190363d7df06330fa0cc45b36", 5958},
{"resource.000", 0, "6178ad2e83e58e4671ca03315f7a6498", 5867442},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 3 - English DOS (supplied by dknute in bug report #3125559)
{"qfg3", "", {
@@ -3128,7 +3146,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "6178ad2e83e58e4671ca03315f7a6498", 5868042},
{"resource.msg", 0, "27e5419c98ce444253f88c95dced14a9", 246888},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 3 - German DOS (supplied by markcoolio in bug report #2723846)
// Executable scanning reports "L.rry.083"
@@ -3136,7 +3154,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "19e2bf9b693932b5e2bb59b9f9ab86c9", 5958},
{"resource.000", 0, "6178ad2e83e58e4671ca03315f7a6498", 5868042},
AD_LISTEND},
- Common::DE_DEU, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::DE_DEU, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 3 - French DOS v1.1 (supplied by misterhands in bug report #3586214)
// Executable scanning reports "L.rry.083"
@@ -3145,7 +3163,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "6178ad2e83e58e4671ca03315f7a6498", 5868000},
{"resource.msg", 0, "0fa1047002df904b8d1807bb7bab4fab", 267210},
AD_LISTEND},
- Common::FR_FRA, Common::kPlatformPC, 0, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::FR_FRA, Common::kPlatformDOS, 0, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 3 - Spanish DOS CD (from jvprat)
// Executable scanning reports "L.rry.083", VERSION file reports "1.000.000, June 30, 1994"
@@ -3154,7 +3172,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "ba7ac86155e4c531e46cd73c86daa80a", 5884098},
{"resource.msg", 0, "a63974730d294dec0bea10057c36e506", 256014},
AD_LISTEND},
- Common::ES_ESP, Common::kPlatformPC, 0, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::ES_ESP, Common::kPlatformDOS, 0, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 3 - Italian DOS
// Supplied by ghoost in bug report #3053457
@@ -3163,7 +3181,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "6178ad2e83e58e4671ca03315f7a6498", 5868000},
{"resource.msg", 0, "5a0a896ff3e4a628db38a75eb6c84114", 259018},
AD_LISTEND},
- Common::IT_ITA, Common::kPlatformPC, 0, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::IT_ITA, Common::kPlatformDOS, 0, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 4 - English DOS Non-Interactive Demo (from FRG)
// SCI interpreter version 1.001.069 (just a guess)
@@ -3171,7 +3189,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "1ba7c7ae1efb315326d45cb931569b1b", 922},
{"resource.000", 0, "41ba03f0b188b029132daa3ece0d3e14", 623154},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
#ifdef ENABLE_SCI32
// Quest for Glory 4 1.1 Floppy - English DOS (supplied by markcool in bug report #2723852)
@@ -3180,7 +3198,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "685bdb1ed47bbbb0e5e25db392da83ce", 9301},
{"resource.000", 0, "f64fd6aa3977939a86ff30783dd677e1", 11004993},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_UNSTABLE, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 4 1.1 Floppy - English DOS (supplied by abevi in bug report #2612718)
// SCI interpreter version 2.000.000
@@ -3188,7 +3206,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "d10a4cc177d2091d744e2ad8c049b0ae", 9295},
{"resource.000", 0, "f64fd6aa3977939a86ff30783dd677e1", 11003589},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_UNSTABLE, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 4 1.1 Floppy - German DOS (supplied by markcool in bug report #2723850)
// Executable scanning reports "2.000.000", VERSION file reports "1.1"
@@ -3196,7 +3214,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "9e0abba8746f40565bc7eb5720522ecd", 9301},
{"resource.000", 0, "57f22cdc54eeb35fce1f26b31b5c3ee1", 11076197},
AD_LISTEND},
- Common::DE_DEU, Common::kPlatformPC, ADGF_UNSTABLE, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::DE_DEU, Common::kPlatformDOS, ADGF_UNSTABLE, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Quest for Glory 4 CD - English DOS/Windows (from jvprat)
// Executable scanning reports "2.100.002", VERSION file reports "1.0"
@@ -3204,7 +3222,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "aba367f2102e81782d961b14fbe3d630", 10246},
{"resource.000", 0, "263dce4aa34c49d3ad29bec889007b1c", 11571394},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_CD | ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_CD | ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// RAMA - English DOS/Windows Demo
// Executable scanning reports "2.100.002", VERSION file reports "000.000.008"
@@ -3307,7 +3325,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.msg", 0, "1aeafe2b495de288d002109650b66614", 1364},
{"resource.000", 0, "8e10d4f05c1fd9f883384fa38a898489", 377394},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Slater & Charlie Go Camping - English DOS/Windows
{"slater", "", {
@@ -3315,7 +3333,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "21f85414124dc23e54544a5536dc35cd", 4044},
{"resource.msg", 0, "c44f51fb955eae266fecf360ebcd5ad2", 1132},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Slater & Charlie Go Camping - English DOS/Windows (Sierra Originals)
@@ -3324,7 +3342,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "21f85414124dc23e54544a5536dc35cd", 4044},
{"resource.msg", 0, "c44f51fb955eae266fecf360ebcd5ad2", 1132},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Slater & Charlie Go Camping - English Macintosh
{"slater", "", {
@@ -3357,7 +3375,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.003", 0, "c47600e50c6fc591957ae0c5020ee7b8", 1213262},
{"resource.004", 0, "e19ea4ad131472f9238590f2e1d40289", 1203051},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 1 VGA Remake - English Mac (from Fingolfin)
{"sq1sci", "SCI", {
@@ -3376,7 +3394,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "5af709ac5e0e923e0b8174f49978c30e", 636},
{"resource.001", 0, "fd99ea43f57576ded7c86036996346cf", 507642},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 1 VGA Remake - Spanish DOS Floppy (from jvprat)
// Executable scanning reports "T.A00.081", VERSION file reports "2.000"
@@ -3390,7 +3408,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.004", 0, "9b78228ad4f9f335fedf74f1812dcfca", 513325},
{"resource.005", 0, "7d4ebcb745c0bf8fc42e4013f52ecd49", 1101812},
AD_LISTEND},
- Common::ES_ESP, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::ES_ESP, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest I 2.0 EGA DOS (6 x 3.5" disks)
// Provided by ssburnout in bug report #3046805
@@ -3403,7 +3421,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.004", 0, "975c6e81194ae6b65e960a248129ecaa", 684119},
{"resource.005", 0, "13d96f7905637552c0647175ff816145", 695589},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 3 - English Amiga (from www.back2roots.org)
// SCI interpreter version 0.000.453 (just a guess)
@@ -3435,7 +3453,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "ec66ac2b1ce58b2575ba00b65058de1a", 612},
{"resource.001", 0, "ceeda7202b96e5c85ecaa88a40a540fc", 180245},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 3 - English DOS (provided by richiefs in bug report #2670691)
// SCI interpreter version 0.000.453
@@ -3445,7 +3463,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.002", 0, "ceeda7202b96e5c85ecaa88a40a540fc", 720244},
{"resource.003", 0, "ceeda7202b96e5c85ecaa88a40a540fc", 688367},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 3 - English DOS (from the Space Quest Collection)
// Executable scanning reports "0.000.685", VERSION file reports "1.018"
@@ -3455,7 +3473,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.002", 0, "8b55c4875298f45ea5696a5ee8f6a7fe", 715777},
{"resource.003", 0, "8b55c4875298f45ea5696a5ee8f6a7fe", 703370},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 3 - English DOS (from abevi, bug report #2612718)
{"sq3", "", {
@@ -3467,7 +3485,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.005", 0, "ceeda7202b96e5c85ecaa88a40a540fc", 328278},
{"resource.006", 0, "ceeda7202b96e5c85ecaa88a40a540fc", 356702},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 3 - English Mac (from Fingolfin)
{"sq3", "", {
@@ -3490,7 +3508,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.006", 0, "9107c2aa5398e28b5c5406df13491f85", 320643},
{"resource.007", 0, "9107c2aa5398e28b5c5406df13491f85", 344287},
AD_LISTEND},
- Common::DE_DEU, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::DE_DEU, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 3 v1.052 - German DOS (supplied by markcoolio in bug report #2723860, also includes english language)
// Executable scanning reports "S.old.114"
@@ -3500,7 +3518,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.002", 0, "9107c2aa5398e28b5c5406df13491f85", 596768},
{"resource.003", 0, "9107c2aa5398e28b5c5406df13491f85", 693573},
AD_LISTEND},
- Common::DE_DEU, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::DE_DEU, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 4 - English Amiga
// Executable scanning reports "1.004.024"
@@ -3538,7 +3556,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "a18088c8aceb06025dbc945f29e02935", 5124},
{"resource.000", 0, "e1f46832cd2458796028e054a0466031", 5502009},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_PIRATED, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_PIRATED, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 4 - English DOS
// Executable scanning reports "1.000.753"
@@ -3547,7 +3565,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "71ccf4f82ac4efb588731acfb7bf2603", 5646},
{"resource.000", 0, "e1f46832cd2458796028e054a0466031", 933928},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 4 1.052 - English DOS Floppy (supplied by markcoolio in bug report #2723865)
// Executable scanning reports "1.000.753"
@@ -3561,7 +3579,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.004", 0, "ff9c87da3bc53473fdee8b9d3edbc93c", 1200631},
{"resource.005", 0, "e33019ac19f755ae33fbf49b4fc9066c", 1053294},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 4 1.000 - French DOS Floppy (supplied by misterhands in bug report #3515247)
{"sq4", "", {
@@ -3574,7 +3592,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.004", 0, "b2cca3afcf2e013b8ce86b64155af766", 1254353},
{"resource.005", 0, "9e520577e035547c4b5149a6d12ef85b", 1098814},
AD_LISTEND},
- Common::FR_FRA, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::FR_FRA, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 4 1.000 - English DOS Floppy (from abevi, bug report #2612718)
{"sq4", "", {
@@ -3586,7 +3604,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.004", 0, "c06350184a490c10eb4585fff0aa3192", 1254368},
{"resource.005", 0, "b8d6efbd3235329bfe844c794097b2c9", 1098717},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest IV DOS 1.060 EGA (6 x 3.5" disks)
// Supplied by ssburnout in bug report #3046781
@@ -3599,7 +3617,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.004", 0, "9a673e33c3f6dd560b993ffed77eeb49", 534994},
{"resource.005", 0, "3c4841d0a3ebba4404af588c93620c22", 595465},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 4 - German DOS (from Tobis87, also includes english language)
// SCI interpreter version 1.000.200 (just a guess)
@@ -3613,7 +3631,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.005", 0, "47ee647b5b12232d27e63cc627c25899", 1156765},
{"resource.006", 0, "dfb023e4e2a1e7a00fa18f9ede72a91b", 924059},
AD_LISTEND},
- Common::DE_DEU, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::DE_DEU, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 4 - Italian DOS Floppy (from glorifindel, also includes english language)
// SCI interpreter version 1.000.200 (just a guess)
@@ -3626,7 +3644,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.004", 0, "4277c61bed40a50dadc4b5a344520af2", 1251000},
{"resource.005", 0, "5f885abd335978e2fd4e5f886d7676c8", 1102880},
AD_LISTEND},
- Common::IT_ITA, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::IT_ITA, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 4 - Japanese PC-98 5.25" Floppy (also includes english language)
// SCI interpreter version 1.000.1068
@@ -3654,7 +3672,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "ed90a8e3ccc53af6633ff6ab58392bae", 7054},
{"resource.000", 0, "63247e3901ab8963d4eece73747832e0", 5157378},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_CD, GUIO4(GAMEOPTION_SQ4_SILVER_CURSORS, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_CD, GUIO4(GAMEOPTION_SQ4_SILVER_CURSORS, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 4 - English Windows CD (from the Space Quest Collection)
// Executable scanning reports "1.001.064", VERSION file reports "1.0"
@@ -3678,7 +3696,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.004", 0, "776fba81c110d1908776232cbe190e20", 1253752},
{"resource.005", 0, "55fae26c2a92f16ef72c1e216e827c0f", 1098328},
AD_LISTEND},
- Common::ES_ESP, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO4(GAMEOPTION_SQ4_SILVER_CURSORS, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::ES_ESP, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO4(GAMEOPTION_SQ4_SILVER_CURSORS, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 4 - Spanish DOS Floppy (from jvprat, also includes english language)
// Executable scanning reports "1.SQ4.056", VERSION file reports "1.000"
@@ -3690,7 +3708,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.002", 0, "74c62fa2146ff3b3b2ea2b3fb95b9af9", 1140801},
{"resource.003", 0, "42a307941edeb1a3be31daeb2e4be90b", 1088408},
AD_LISTEND},
- Common::ES_ESP, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::ES_ESP, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 4 1.000 - German DOS Floppy (supplied by markcoolio in bug report #2723862, also includes english language)
// Executable scanning reports "1.SQ4.030"
@@ -3704,7 +3722,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.004", 0, "c06350184a490c10eb4585fff0aa3192", 1254368},
{"resource.005", 0, "b8d6efbd3235329bfe844c794097b2c9", 1098717},
AD_LISTEND},
- Common::DE_DEU, Common::kPlatformPC, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::DE_DEU, Common::kPlatformDOS, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 4 - English Macintosh
// Executable scanning reports "x.yyy.zzz"
@@ -3732,7 +3750,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.004", 0, "2763fe4f0cb74df716ec8b0c464b0988", 1217428},
{"resource.005", 0, "d608713197c5ba1cd8c6ed46299c3069", 1057924},
AD_LISTEND},
- Common::RU_RUS, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::RU_RUS, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 5 - English DOS (from the Space Quest Collection)
// Executable scanning reports "1.001.068", VERSION file reports "1.04"
@@ -3741,16 +3759,16 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "4147edc5045e6d62998018b5614c58ec", 5496486},
{"resource.msg", 0, "bb8ad78793c26bdb3f77498b1d6515a9", 125988},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 5 - English DOS - THIS IS THE UNOFFICIAL BETA VERSION, WHICH IS OBVIOUSLY PIRATED AND CONTAINS MANY BUGS
- // ffs. http://www.akril15.com/sr/sq5alt/sq5alt.html =DO NOT RE-ADD=
+ // refer to http://www.akril15.com/sr/sq5alt/sq5alt.html =DO NOT RE-ADD=
// SCI interpreter version 1.001.067
{"sq5", "", {
{"resource.map", 0, "8bde0a9adb9a3e9aaa861826874c9834", 6473},
{"resource.000", 0, "f4a48705764544d7cc64a7bb22a610df", 6025184},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_PIRATED, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_PIRATED, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 5 v1.04 - German DOS (from Tobis87, updated information by markcool from bug reports #2723935 and #2724762)
// SCI interpreter version 1.001.068
@@ -3759,7 +3777,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "4147edc5045e6d62998018b5614c58ec", 5496486},
{"resource.msg", 0, "7c71cfc36153cfe07b450423a51f7e68", 146282},
AD_LISTEND},
- Common::DE_DEU, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::DE_DEU, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 5 v1.04 - French DOS (from Hkz, Included in Space Quest Collector's Edition, with chapters I-V)
{"sq5", "", {
@@ -3767,7 +3785,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "4147edc5045e6d62998018b5614c58ec", 5496486},
{"resource.msg", 0, "877c42380320eb1db7dad83ccd261214", 140374},
AD_LISTEND},
- Common::FR_FRA, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::FR_FRA, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 5 - Italian DOS Floppy (from glorifindel)
// SCI interpreter version 1.001.068 (just a guess)
@@ -3775,7 +3793,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "5040026519f37199f3616fb1d4704dff", 6047170},
{"resource.map", 0, "5b09168baa2f6e2e22787429b2d72f54", 6492},
AD_LISTEND},
- Common::IT_ITA, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::IT_ITA, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 5 - Spanish DOS Floppy (from mirir, bug report #3090664)
{"sq5", "", {
@@ -3783,7 +3801,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "5714a899033bdebf2d61ad333c8c6637", 6492},
{"resource.msg", 0, "46deca7ef9cf057f7d442df98c1a2ae2", 134612},
AD_LISTEND},
- Common::ES_ESP, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::ES_ESP, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 5 - Russian DOS
// Executable scanning reports "1.001.068", VERSION file reports "1.994"
@@ -3792,7 +3810,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "6f9ed21e1001526b4137f6703ed476af", 6103778},
{"resource.msg", 0, "0a8931990cd2eac1691602391c68ab85", 147580},
AD_LISTEND},
- Common::RU_RUS, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::RU_RUS, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
#ifdef ENABLE_SCI32
// Space Quest 6 - English DOS/Win3.11 CD (from the Space Quest Collection)
@@ -3801,7 +3819,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "6dddfa3a8f3a3a513ec9dfdfae955005", 10528},
{"resource.000", 0, "c4259ab7355aead07773397b1052827d", 41150806},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_CD | ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_CD | ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 6 - English DOS/Win3.11 CD ver 1.11 (from FRG)
// SCI interpreter version 2.100.002 (just a guess)
@@ -3809,7 +3827,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "e0615d6e4e10e37ae42e6a2a95aaf145", 10528},
{"resource.000", 0, "c4259ab7355aead07773397b1052827d", 41150806},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_CD | ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_CD | ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 6 - French DOS/Win3.11 CD (from French magazine Joystick - September 1997)
// Executable scanning reports "2.100.002", VERSION file reports "1.0"
@@ -3817,7 +3835,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "3c831625931d5079b73ae8c275f52c95", 10534},
{"resource.000", 0, "4195ca940f759424f62b90e262cc1737", 40932397},
AD_LISTEND},
- Common::FR_FRA, Common::kPlatformPC, ADGF_CD | ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::FR_FRA, Common::kPlatformDOS, ADGF_CD | ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 6 - German DOS (from Tobis87, updated info from markcoolio in bug report #2723884)
// SCI interpreter version 2.100.002 (just a guess)
@@ -3825,7 +3843,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "664d797415484f85c90b1b45aedc7686", 10534},
{"resource.000", 0, "ba87ba91e5bdabb4169dd0df75777722", 40933685},
AD_LISTEND},
- Common::DE_DEU, Common::kPlatformPC, ADGF_CD | ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::DE_DEU, Common::kPlatformDOS, ADGF_CD | ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// Space Quest 6 - English DOS/Win3.11 Interactive Demo (from FRG)
// SCI interpreter version 2.100.002 (just a guess)
@@ -3833,7 +3851,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "368f07b07433db3f819fa3fa0e5efee5", 2572},
{"resource.000", 0, "ab12724e078dea34b624e0d2a38dcd7c", 2272050},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO | ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO | ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
#endif // ENABLE_SCI32
// The Island of Dr. Brain - English DOS CD (from jvprat)
@@ -3842,7 +3860,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "2388efef8430b041b0f3b00b9050e4a2", 3281},
{"resource.000", 0, "b3acd9b9dd7fe53c4ee133ac9a1acfab", 2103560},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// The Island of Dr. Brain - English DOS (from Quietust)
// Executable scanning reports "1.001.053", VERSION file reports "1.1 2.3.93"
@@ -3850,7 +3868,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "3c07da06bdd1689f9d07af78fb94d0ec", 3101},
{"resource.000", 0, "ecc686e0034fb4d41de077ac7167b3cf", 1947866},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
// The Island of Dr. Brain - English DOS Non-Interactive Demo
// SCI interpreter version 1.001.053 (just a guess)
@@ -3858,7 +3876,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.map", 0, "a8e5ca8ed1996974afa59f4c45e06195", 986},
{"resource.000", 0, "b3acd9b9dd7fe53c4ee133ac9a1acfab", 586560},
AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
#ifdef ENABLE_SCI32
// Torin's Passage - English Windows Interactive Demo
diff --git a/engines/sci/engine/features.cpp b/engines/sci/engine/features.cpp
index 49e2bfc79f..6005ac50be 100644
--- a/engines/sci/engine/features.cpp
+++ b/engines/sci/engine/features.cpp
@@ -496,7 +496,9 @@ bool GameFeatures::autoDetectSci21KernelType() {
opcode = extOpcode >> 1;
// Check for end of script
- if (opcode == op_ret || offset >= script->getBufSize())
+ // We don't check for op_ret here because the Phantasmagoria Mac script
+ // has an op_ret early on in its script (controlled by a branch).
+ if (offset >= script->getBufSize())
break;
if (opcode == op_callk) {
diff --git a/engines/sci/engine/kernel.cpp b/engines/sci/engine/kernel.cpp
index 46051ef145..8d55790ad2 100644
--- a/engines/sci/engine/kernel.cpp
+++ b/engines/sci/engine/kernel.cpp
@@ -132,7 +132,7 @@ void Kernel::loadSelectorNames() {
return;
}
- int count = isBE ? READ_BE_UINT16(r->data) : READ_LE_UINT16(r->data) + 1; // Counter is slightly off
+ int count = (isBE ? READ_BE_UINT16(r->data) : READ_LE_UINT16(r->data)) + 1; // Counter is slightly off
for (int i = 0; i < count; i++) {
int offset = isBE ? READ_BE_UINT16(r->data + 2 + i * 2) : READ_LE_UINT16(r->data + 2 + i * 2);
@@ -536,7 +536,7 @@ void Kernel::mapFunctions() {
SciVersion myVersion = getSciVersion();
switch (g_sci->getPlatform()) {
- case Common::kPlatformPC:
+ case Common::kPlatformDOS:
case Common::kPlatformFMTowns:
platformMask = SIGFOR_DOS;
break;
@@ -585,6 +585,17 @@ void Kernel::mapFunctions() {
continue;
}
+#ifdef ENABLE_SCI32
+ // HACK: Phantasmagoria Mac uses a modified kDoSound (which *nothing*
+ // else seems to use)!
+ if (g_sci->getPlatform() == Common::kPlatformMacintosh && g_sci->getGameId() == GID_PHANTASMAGORIA && kernelName == "DoSound") {
+ _kernelFuncs[id].function = kDoSoundPhantasmagoriaMac;
+ _kernelFuncs[id].signature = parseKernelSignature("DoSoundPhantasmagoriaMac", "i.*");
+ _kernelFuncs[id].name = "DoSoundPhantasmagoriaMac";
+ continue;
+ }
+#endif
+
// If the name is known, look it up in s_kernelMap. This table
// maps kernel func names to actual function (pointers).
SciKernelMapEntry *kernelMap = s_kernelMap;
diff --git a/engines/sci/engine/kernel.h b/engines/sci/engine/kernel.h
index e3ebce80fb..8a021073fc 100644
--- a/engines/sci/engine/kernel.h
+++ b/engines/sci/engine/kernel.h
@@ -471,6 +471,9 @@ reg_t kAddLine(EngineState *s, int argc, reg_t *argv);
reg_t kUpdateLine(EngineState *s, int argc, reg_t *argv);
reg_t kDeleteLine(EngineState *s, int argc, reg_t *argv);
+// Phantasmagoria Mac Special Kernel Function
+reg_t kDoSoundPhantasmagoriaMac(EngineState *s, int argc, reg_t *argv);
+
// SCI3 Kernel functions
reg_t kPlayDuck(EngineState *s, int argc, reg_t *argv);
#endif
diff --git a/engines/sci/engine/kevent.cpp b/engines/sci/engine/kevent.cpp
index 34477cc23b..11ef18c0c2 100644
--- a/engines/sci/engine/kevent.cpp
+++ b/engines/sci/engine/kevent.cpp
@@ -87,10 +87,11 @@ reg_t kGetEvent(EngineState *s, int argc, reg_t *argv) {
g_sci->getVocabulary()->parser_event = NULL_REG; // Invalidate parser event
if (s->_cursorWorkaroundActive) {
- // ffs: GfxCursor::setPosition()
- // we check, if actual cursor position is inside given rect
- // if that's the case, we switch ourself off. Otherwise
- // we simulate the original set position to the scripts
+ // We check if the actual cursor position is inside specific rectangles
+ // where the cursor itself should be moved to. If this is the case, we
+ // set the mouse cursor's position to be within the rectangle in
+ // question. Check GfxCursor::setPosition(), for a more detailed
+ // explanation and a list of cursor position workarounds.
if (s->_cursorWorkaroundRect.contains(mousePos.x, mousePos.y)) {
s->_cursorWorkaroundActive = false;
} else {
diff --git a/engines/sci/engine/kfile.cpp b/engines/sci/engine/kfile.cpp
index 09ea35e792..c6635f2f27 100644
--- a/engines/sci/engine/kfile.cpp
+++ b/engines/sci/engine/kfile.cpp
@@ -978,7 +978,7 @@ reg_t kGetSaveFiles(EngineState *s, int argc, reg_t *argv) {
char *saveNamePtr = saveNames;
for (uint i = 0; i < totalSaves; i++) {
- *slot++ = make_reg(0, saves[i].id + SAVEGAMEID_OFFICIALRANGE_START); // Store the virtual savegame ID ffs. see above
+ *slot++ = make_reg(0, saves[i].id + SAVEGAMEID_OFFICIALRANGE_START); // Store the virtual savegame ID (see above)
strcpy(saveNamePtr, saves[i].name);
saveNamePtr += SCI_MAX_SAVENAME_LENGTH;
}
diff --git a/engines/sci/engine/klists.cpp b/engines/sci/engine/klists.cpp
index 342fa95eda..7e6c112b9f 100644
--- a/engines/sci/engine/klists.cpp
+++ b/engines/sci/engine/klists.cpp
@@ -801,7 +801,8 @@ reg_t kArray(EngineState *s, int argc, reg_t *argv) {
#endif
return NULL_REG;
}
- if (s->_segMan->getSegmentObj(argv[1].getSegment())->getType() != SEG_TYPE_ARRAY)
+ SegmentObj *sobj = s->_segMan->getSegmentObj(argv[1].getSegment());
+ if (!sobj || sobj->getType() != SEG_TYPE_ARRAY)
error("kArray(Dup): Request to duplicate a segment which isn't an array");
reg_t arrayHandle;
diff --git a/engines/sci/engine/ksound.cpp b/engines/sci/engine/ksound.cpp
index b803e123f1..2879b7f45d 100644
--- a/engines/sci/engine/ksound.cpp
+++ b/engines/sci/engine/ksound.cpp
@@ -309,6 +309,33 @@ reg_t kSetLanguage(EngineState *s, int argc, reg_t *argv) {
return s->r_acc;
}
+reg_t kDoSoundPhantasmagoriaMac(EngineState *s, int argc, reg_t *argv) {
+ // Phantasmagoria Mac (and seemingly no other game (!)) uses this
+ // cutdown version of kDoSound.
+
+ switch (argv[0].toUint16()) {
+ case 0:
+ return g_sci->_soundCmd->kDoSoundMasterVolume(argc - 1, argv + 1, s->r_acc);
+ case 2:
+ return g_sci->_soundCmd->kDoSoundInit(argc - 1, argv + 1, s->r_acc);
+ case 3:
+ return g_sci->_soundCmd->kDoSoundDispose(argc - 1, argv + 1, s->r_acc);
+ case 4:
+ return g_sci->_soundCmd->kDoSoundPlay(argc - 1, argv + 1, s->r_acc);
+ case 5:
+ return g_sci->_soundCmd->kDoSoundStop(argc - 1, argv + 1, s->r_acc);
+ case 8:
+ return g_sci->_soundCmd->kDoSoundSetVolume(argc - 1, argv + 1, s->r_acc);
+ case 9:
+ return g_sci->_soundCmd->kDoSoundSetLoop(argc - 1, argv + 1, s->r_acc);
+ case 10:
+ return g_sci->_soundCmd->kDoSoundUpdateCues(argc - 1, argv + 1, s->r_acc);
+ }
+
+ error("Unknown kDoSound Phantasmagoria Mac subop %d", argv[0].toUint16());
+ return s->r_acc;
+}
+
#endif
} // End of namespace Sci
diff --git a/engines/sci/engine/kstring.cpp b/engines/sci/engine/kstring.cpp
index 65e139e1ee..15a9f54996 100644
--- a/engines/sci/engine/kstring.cpp
+++ b/engines/sci/engine/kstring.cpp
@@ -488,9 +488,9 @@ enum kMessageFunc {
K_MESSAGE_GET,
K_MESSAGE_NEXT,
K_MESSAGE_SIZE,
- K_MESSAGE_REFCOND,
- K_MESSAGE_REFVERB,
K_MESSAGE_REFNOUN,
+ K_MESSAGE_REFVERB,
+ K_MESSAGE_REFCOND,
K_MESSAGE_PUSH,
K_MESSAGE_POP,
K_MESSAGE_LASTMESSAGE
@@ -511,16 +511,10 @@ reg_t kMessage(EngineState *s, int argc, reg_t *argv) {
#ifdef ENABLE_SCI32
if (getSciVersion() >= SCI_VERSION_2) {
// In complete weirdness, SCI32 bumps up subops 3-8 to 4-9 and stubs off subop 3.
- // In addition, SCI32 reorders the REF* subops.
if (func == 3)
error("SCI32 kMessage(3)");
- else if (func > 3) {
+ else if (func > 3)
func--;
- if (func == K_MESSAGE_REFCOND)
- func = K_MESSAGE_REFNOUN;
- else if (func == K_MESSAGE_REFNOUN || func == K_MESSAGE_REFVERB)
- func--;
- }
}
#endif
diff --git a/engines/sci/engine/message.cpp b/engines/sci/engine/message.cpp
index 49be25d7f1..8c5741f8b0 100644
--- a/engines/sci/engine/message.cpp
+++ b/engines/sci/engine/message.cpp
@@ -56,7 +56,7 @@ public:
protected:
MessageReader(const byte *data, uint size, uint headerSize, uint recordSize)
- : _data(data), _size(size), _headerSize(headerSize), _recordSize(recordSize) { }
+ : _data(data), _size(size), _headerSize(headerSize), _recordSize(recordSize), _messageCount(0) { }
const byte *_data;
const uint _size;
diff --git a/engines/sci/engine/message.h b/engines/sci/engine/message.h
index 4444ede3bb..5bead82efe 100644
--- a/engines/sci/engine/message.h
+++ b/engines/sci/engine/message.h
@@ -60,7 +60,7 @@ typedef Common::Stack<CursorStack> CursorStackStack;
class MessageState {
public:
- MessageState(SegManager *segMan) : _segMan(segMan) { }
+ MessageState(SegManager *segMan) : _segMan(segMan), _lastReturnedModule(0) { }
int getMessage(int module, MessageTuple &t, reg_t buf);
int nextMessage(reg_t buf);
int messageSize(int module, MessageTuple &t);
diff --git a/engines/sci/engine/savegame.cpp b/engines/sci/engine/savegame.cpp
index b2d95c599e..c8076ec819 100644
--- a/engines/sci/engine/savegame.cpp
+++ b/engines/sci/engine/savegame.cpp
@@ -678,7 +678,7 @@ void GfxPalette::saveLoadWithSerializer(Common::Serializer &s) {
// We need to save intensity of the _sysPalette at least for kq6 when entering the dark cave (room 390)
// from room 340. scripts will set intensity to 60 for this room and restore them when leaving.
// Sierra SCI is also doing this (although obviously not for SCI0->SCI01 games, still it doesn't hurt
- // to save it everywhere). ffs. bug #3072868
+ // to save it everywhere). Refer to bug #3072868
s.syncBytes(_sysPalette.intensity, 256);
}
if (s.getVersion() >= 24) {
diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp
index c928cf3569..20c5c52178 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -23,6 +23,7 @@
#include "sci/sci.h"
#include "sci/engine/script.h"
#include "sci/engine/state.h"
+#include "sci/engine/features.h"
#include "common/util.h"
@@ -62,7 +63,7 @@ struct SciScriptSignature {
// boundaries of room 660. Normally a textbox is supposed to get on screen
// but the call is wrong, so not only do we get an error message the script
// is also hanging because the cue won't get sent out
-// This also happens in sierra sci - ffs. bug #3038387
+// This also happens in sierra sci - refer to bug #3038387
const byte ecoquest1SignatureStayAndHelp[] = {
40,
0x3f, 0x01, // link 01
@@ -128,7 +129,7 @@ const SciScriptSignature ecoquest1Signatures[] = {
// ecorder. This is done by reusing temp-space, that was filled on state 1.
// this worked in sierra sci just by accident. In our sci, the temp space
// is resetted every time, which means the previous text isn't available
-// anymore. We have to patch the code because of that ffs. bug #3035386
+// anymore. We have to patch the code because of that - bug #3035386
const byte ecoquest2SignatureEcorder[] = {
35,
0x31, 0x22, // bnt [next state]
@@ -363,10 +364,42 @@ const uint16 freddypharkasPatchLadderEvent[] = {
PATCH_END
};
+// In the Macintosh version of Freddy Pharkas, kRespondsTo is broken for
+// property selectors. They hacked the script to work around the issue,
+// so we revert the script back to using the values of the DOS script.
+const byte freddypharkasSignatureMacInventory[] = {
+ 10,
+ 0x39, 0x23, // pushi 23
+ 0x39, 0x74, // pushi 74
+ 0x78, // push1
+ 0x38, 0x01, 0x74, // pushi 0174
+ 0x85, 0x15, // lat 15
+ 0
+};
+
+const uint16 freddypharkasPatchMacInventory[] = {
+ 0x39, 0x02, // pushi 02 (now matches the DOS version)
+ 0x39, 0x74, // pushi 74
+ 0x78, // push1
+ 0x38, 0x01, 0x74, // pushi 0174
+ 0x85, 0x15, // lat 15
+ 0x4a, 0x06, // send 06
+ 0x31, 0x08, // bnt 08
+ 0x38, 0x01, 0x74, // pushi 0174
+ 0x76, // push0
+ 0x85, 0x15, // lat 15
+ 0x4a, 0x04, // send 04
+ 0x02, // add
+ 0xa5, 0x12, // sat 12
+ 0x39, 0x04, // pushi 04 (now matches the DOS version)
+ PATCH_END
+};
+
// script, description, magic DWORD, adjust
const SciScriptSignature freddypharkasSignatures[] = {
{ 0, "CD: score early disposal", 1, PATCH_MAGICDWORD(0x39, 0x0d, 0x43, 0x75), -3, freddypharkasSignatureScoreDisposal, freddypharkasPatchScoreDisposal },
- { 235, "CD: canister pickup hang", 3, PATCH_MAGICDWORD(0x39, 0x07, 0x39, 0x08), -4, freddypharkasSignatureCanisterHang, freddypharkasPatchCanisterHang },
+ { 15, "Mac: broken inventory", 1, PATCH_MAGICDWORD(0x39, 0x23, 0x39, 0x74), 0, freddypharkasSignatureMacInventory, freddypharkasPatchMacInventory },
+ { 235, "CD: canister pickup hang", 3, PATCH_MAGICDWORD(0x39, 0x07, 0x39, 0x08), -4, freddypharkasSignatureCanisterHang, freddypharkasPatchCanisterHang },
{ 320, "ladder event issue", 2, PATCH_MAGICDWORD(0x6d, 0x76, 0x38, 0xf5), -1, freddypharkasSignatureLadderEvent, freddypharkasPatchLadderEvent },
SCI_SIGNATUREENTRY_TERMINATOR
};
@@ -590,6 +623,34 @@ const uint16 kq5PatchWitchCageInit[] = {
PATCH_END
};
+
+// In the final battle, the DOS version uses signals in the music to handle
+// timing, while in the Windows version another method is used and the GM
+// tracks do not contain these signals.
+// The original kq5 interpreter used global 400 to distinguish between
+// Windows (1) and DOS (0) versions.
+// We replace the 4 relevant checks for global 400 by a fixed true when
+// we use these GM tracks.
+//
+// Instead, we could have set global 400, but this has the possibly unwanted
+// side effects of switching to black&white cursors (which also needs complex
+// changes to GameFeatures::detectsetCursorType() ) and breaking savegame
+// compatibilty between the DOS and Windows CD versions of KQ5.
+// TODO: Investigate these side effects more closely.
+const byte kq5SignatureWinGMSignals[] = {
+ 9,
+ 0x80, 0x90, 0x01, // lag 0x190
+ 0x18, // not
+ 0x30, 0x1b, 0x00, // bnt +0x001B
+ 0x89, 0x57, // lsg 0x57
+ 0
+};
+
+const uint16 kq5PatchWinGMSignals[] = {
+ 0x34, 0x01, 0x00, // ldi 0x0001
+ PATCH_END
+};
+
// script, description, magic DWORD, adjust
const SciScriptSignature kq5Signatures[] = {
{ 0, "CD: harpy volume change", 1, PATCH_MAGICDWORD(0x80, 0x91, 0x01, 0x18), 0, kq5SignatureCdHarpyVolume, kq5PatchCdHarpyVolume },
@@ -597,6 +658,13 @@ const SciScriptSignature kq5Signatures[] = {
SCI_SIGNATUREENTRY_TERMINATOR
};
+const SciScriptSignature kq5WinGMSignatures[] = {
+ { 0, "CD: harpy volume change", 1, PATCH_MAGICDWORD(0x80, 0x91, 0x01, 0x18), 0, kq5SignatureCdHarpyVolume, kq5PatchCdHarpyVolume },
+ { 200, "CD: witch cage init", 1, PATCH_MAGICDWORD(0x7a, 0x00, 0xc8, 0x00), -10, kq5SignatureWitchCageInit, kq5PatchWitchCageInit },
+ { 124, "Win: GM Music signal checks", 4, PATCH_MAGICDWORD(0x80, 0x90, 0x01, 0x18), 0, kq5SignatureWinGMSignals, kq5PatchWinGMSignals },
+ SCI_SIGNATUREENTRY_TERMINATOR
+};
+
// ===========================================================================
// When giving the milk bottle to one of the babies in the garden in KQ6 (room
// 480), script 481 starts a looping baby cry sound. However, that particular
@@ -1034,7 +1102,7 @@ const SciScriptSignature qfg3Signatures[] = {
// adds it to nest::x. The problem is that the script also checks if x exceeds
// we never reach that of course, so the pterodactyl-flight will go endlessly
// we could either calculate property count differently somehow fixing this
-// but I think just patching it out is cleaner (ffs. bug #3037938)
+// but I think just patching it out is cleaner (bug #3037938)
const byte sq4FloppySignatureEndlessFlight[] = {
8,
0x39, 0x04, // pushi 04 (selector x)
@@ -1045,7 +1113,7 @@ const byte sq4FloppySignatureEndlessFlight[] = {
0
};
-// Similar to the above, for the German version (ffs. bug #3110215)
+// Similar to the above, for the German version (bug #3110215)
const byte sq4FloppySignatureEndlessFlightGerman[] = {
8,
0x39, 0x04, // pushi 04 (selector x)
@@ -1317,7 +1385,11 @@ void Script::matchSignatureAndPatch(uint16 scriptNr, byte *scriptData, const uin
signatureTable = gk1Signatures;
break;
case GID_KQ5:
- signatureTable = kq5Signatures;
+ // See the explanation in the kq5SignatureWinGMSignals comment
+ if (g_sci->_features->useAltWinGMSound())
+ signatureTable = kq5WinGMSignatures;
+ else
+ signatureTable = kq5Signatures;
break;
case GID_KQ6:
signatureTable = kq6Signatures;
diff --git a/engines/sci/engine/seg_manager.cpp b/engines/sci/engine/seg_manager.cpp
index 04c1dab158..97e33f256b 100644
--- a/engines/sci/engine/seg_manager.cpp
+++ b/engines/sci/engine/seg_manager.cpp
@@ -36,6 +36,9 @@ SegManager::SegManager(ResourceManager *resMan) {
_nodesSegId = 0;
_hunksSegId = 0;
+ _saveDirPtr = NULL_REG;
+ _parserPtr = NULL_REG;
+
#ifdef ENABLE_SCI32
_arraysSegId = 0;
_stringSegId = 0;
diff --git a/engines/sci/engine/state.h b/engines/sci/engine/state.h
index 81090876c7..25110ce0ca 100644
--- a/engines/sci/engine/state.h
+++ b/engines/sci/engine/state.h
@@ -58,7 +58,7 @@ enum AbortGameState {
};
// We assume that scripts give us savegameId 0->99 for creating a new save slot
-// and savegameId 100->199 for existing save slots ffs. kfile.cpp
+// and savegameId 100->199 for existing save slots. Refer to kfile.cpp
enum {
SAVEGAMEID_OFFICIALRANGE_START = 100,
SAVEGAMEID_OFFICIALRANGE_END = 199
@@ -133,7 +133,7 @@ public:
uint _chosenQfGImportItem; // Remembers the item selected in QfG import rooms
- bool _cursorWorkaroundActive; // ffs. GfxCursor::setPosition()
+ bool _cursorWorkaroundActive; // Refer to GfxCursor::setPosition()
Common::Point _cursorWorkaroundPoint;
Common::Rect _cursorWorkaroundRect;
diff --git a/engines/sci/graphics/animate.cpp b/engines/sci/graphics/animate.cpp
index ee28c5ca31..53715613fc 100644
--- a/engines/sci/graphics/animate.cpp
+++ b/engines/sci/graphics/animate.cpp
@@ -528,7 +528,7 @@ void GfxAnimate::addToPicDrawCels() {
it->priority = _ports->kernelCoordinateToPriority(it->y);
if (!view->isScaleable()) {
- // Laura Bow 2 specific - ffs. fill()
+ // Laura Bow 2 specific - Check fill() below
it->scaleSignal = 0;
it->scaleY = it->scaleX = 128;
}
diff --git a/engines/sci/graphics/compare.cpp b/engines/sci/graphics/compare.cpp
index 70dff15a86..b42063b119 100644
--- a/engines/sci/graphics/compare.cpp
+++ b/engines/sci/graphics/compare.cpp
@@ -37,8 +37,8 @@
namespace Sci {
-GfxCompare::GfxCompare(SegManager *segMan, Kernel *kernel, GfxCache *cache, GfxScreen *screen, GfxCoordAdjuster *coordAdjuster)
- : _segMan(segMan), _kernel(kernel), _cache(cache), _screen(screen), _coordAdjuster(coordAdjuster) {
+GfxCompare::GfxCompare(SegManager *segMan, GfxCache *cache, GfxScreen *screen, GfxCoordAdjuster *coordAdjuster)
+ : _segMan(segMan), _cache(cache), _screen(screen), _coordAdjuster(coordAdjuster) {
}
GfxCompare::~GfxCompare() {
diff --git a/engines/sci/graphics/compare.h b/engines/sci/graphics/compare.h
index 91e3b90fdb..0080406a3b 100644
--- a/engines/sci/graphics/compare.h
+++ b/engines/sci/graphics/compare.h
@@ -34,7 +34,7 @@ class Screen;
*/
class GfxCompare {
public:
- GfxCompare(SegManager *segMan, Kernel *kernel, GfxCache *cache, GfxScreen *screen, GfxCoordAdjuster *coordAdjuster);
+ GfxCompare(SegManager *segMan, GfxCache *cache, GfxScreen *screen, GfxCoordAdjuster *coordAdjuster);
~GfxCompare();
uint16 kernelOnControl(byte screenMask, const Common::Rect &rect);
@@ -47,7 +47,6 @@ public:
private:
SegManager *_segMan;
- Kernel *_kernel;
GfxCache *_cache;
GfxScreen *_screen;
GfxCoordAdjuster *_coordAdjuster;
diff --git a/engines/sci/graphics/controls16.cpp b/engines/sci/graphics/controls16.cpp
index 7c09969717..0098f7b9ef 100644
--- a/engines/sci/graphics/controls16.cpp
+++ b/engines/sci/graphics/controls16.cpp
@@ -42,16 +42,13 @@ namespace Sci {
GfxControls16::GfxControls16(SegManager *segMan, GfxPorts *ports, GfxPaint16 *paint16, GfxText16 *text16, GfxScreen *screen)
: _segMan(segMan), _ports(ports), _paint16(paint16), _text16(text16), _screen(screen) {
- init();
+ _texteditBlinkTime = 0;
+ _texteditCursorVisible = false;
}
GfxControls16::~GfxControls16() {
}
-void GfxControls16::init() {
- _texteditCursorVisible = false;
-}
-
const char controlListUpArrow[2] = { 0x18, 0 };
const char controlListDownArrow[2] = { 0x19, 0 };
diff --git a/engines/sci/graphics/controls16.h b/engines/sci/graphics/controls16.h
index 90bd7beacb..2cde86d4b1 100644
--- a/engines/sci/graphics/controls16.h
+++ b/engines/sci/graphics/controls16.h
@@ -63,7 +63,6 @@ public:
void kernelTexteditChange(reg_t controlObject, reg_t eventObject);
private:
- void init();
void texteditSetBlinkTime();
void drawListControl(Common::Rect rect, reg_t obj, int16 maxChars, int16 count, const char **entries, GuiResourceId fontId, int16 upperPos, int16 cursorPos, bool isAlias);
diff --git a/engines/sci/graphics/controls32.cpp b/engines/sci/graphics/controls32.cpp
index 5535a7408a..5b61e1a86a 100644
--- a/engines/sci/graphics/controls32.cpp
+++ b/engines/sci/graphics/controls32.cpp
@@ -35,8 +35,8 @@
namespace Sci {
-GfxControls32::GfxControls32(SegManager *segMan, GfxCache *cache, GfxScreen *screen, GfxText32 *text)
- : _segMan(segMan), _cache(cache), _screen(screen), _text(text) {
+GfxControls32::GfxControls32(SegManager *segMan, GfxCache *cache, GfxText32 *text)
+ : _segMan(segMan), _cache(cache), _text(text) {
}
GfxControls32::~GfxControls32() {
diff --git a/engines/sci/graphics/controls32.h b/engines/sci/graphics/controls32.h
index 68dca59462..1b705988c2 100644
--- a/engines/sci/graphics/controls32.h
+++ b/engines/sci/graphics/controls32.h
@@ -34,7 +34,7 @@ class GfxText32;
*/
class GfxControls32 {
public:
- GfxControls32(SegManager *segMan, GfxCache *cache, GfxScreen *screen, GfxText32 *text);
+ GfxControls32(SegManager *segMan, GfxCache *cache, GfxText32 *text);
~GfxControls32();
void kernelTexteditChange(reg_t controlObject);
@@ -42,7 +42,6 @@ public:
private:
SegManager *_segMan;
GfxCache *_cache;
- GfxScreen *_screen;
GfxText32 *_text;
};
diff --git a/engines/sci/graphics/coordadjuster.h b/engines/sci/graphics/coordadjuster.h
index 63f608be6b..25279b34b1 100644
--- a/engines/sci/graphics/coordadjuster.h
+++ b/engines/sci/graphics/coordadjuster.h
@@ -71,8 +71,6 @@ public:
private:
GfxPorts *_ports;
-
- Port *backuppedPort;
};
#ifdef ENABLE_SCI32
diff --git a/engines/sci/graphics/cursor.cpp b/engines/sci/graphics/cursor.cpp
index fe2aefd689..a9c741670f 100644
--- a/engines/sci/graphics/cursor.cpp
+++ b/engines/sci/graphics/cursor.cpp
@@ -69,6 +69,10 @@ GfxCursor::GfxCursor(ResourceManager *resMan, GfxPalette *palette, GfxScreen *sc
_useSilverSQ4CDCursors = ConfMan.getBool("silver_cursors");
else
_useSilverSQ4CDCursors = false;
+
+ // _coordAdjuster and _event will be initialized later on
+ _coordAdjuster = NULL;
+ _event = NULL;
}
GfxCursor::~GfxCursor() {
@@ -277,16 +281,16 @@ void GfxCursor::kernelSetView(GuiResourceId viewNum, int loopNum, int celNum, Co
delete cursorHotspot;
}
-// this list contains all mandatory set cursor changes, that need special handling
-// ffs. GfxCursor::setPosition (below)
-// Game, newPosition, validRect
+// This list contains all mandatory set cursor changes, that need special handling
+// Refer to GfxCursor::setPosition() below
+// Game, newPosition, validRect
static const SciCursorSetPositionWorkarounds setPositionWorkarounds[] = {
- { GID_ISLANDBRAIN, 84, 109, 46, 76, 174, 243 }, // island of dr. brain / game menu
- { GID_ISLANDBRAIN,143, 135, 57, 102, 163, 218 },// island of dr. brain / pause menu within copy protection
- { GID_LSL5, 23, 171, 0, 0, 26, 320 }, // larry 5 / skip forward helper
- { GID_QFG1VGA, 64, 174, 40, 37, 74, 284 }, // Quest For Glory 1 VGA / run/walk/sleep sub-menu
- { GID_QFG3, 70, 170, 40, 61, 81, 258 }, // Quest For Glory 3 / run/walk/sleep sub-menu
- { (SciGameId)0, -1, -1, -1, -1, -1, -1 }
+ { GID_ISLANDBRAIN, 84, 109, 46, 76, 174, 243 }, // Island of Dr. Brain, game menu
+ { GID_ISLANDBRAIN, 143, 135, 57, 102, 163, 218 }, // Island of Dr. Brain, pause menu within copy protection
+ { GID_LSL5, 23, 171, 0, 0, 26, 320 }, // Larry 5, skip forward helper pop-up
+ { GID_QFG1VGA, 64, 174, 40, 37, 74, 284 }, // Quest For Glory 1 VGA, run/walk/sleep sub-menu
+ { GID_QFG3, 70, 170, 40, 61, 81, 258 }, // Quest For Glory 3, run/walk/sleep sub-menu
+ { (SciGameId)0, -1, -1, -1, -1, -1, -1 }
};
void GfxCursor::setPosition(Common::Point pos) {
@@ -306,16 +310,24 @@ void GfxCursor::setPosition(Common::Point pos) {
g_system->warpMouse(pos.x, pos.y);
}
+ // WORKAROUNDS for games with windows that are hidden when the mouse cursor
+ // is moved outside them - also check setPositionWorkarounds above.
+ //
// Some games display a new menu, set mouse position somewhere within and
- // expect it to be in there. This is fine for a real mouse, but on wii using
- // wii-mote or touch interfaces this won't work. In fact on those platforms
- // the menus will close immediately because of that behavior.
- // We identify those cases and set a reaction-rect. If the mouse it outside
- // of that rect, we won't report the position back to the scripts.
- // As soon as the mouse was inside once, we will revert to normal behavior
- // Currently this code is enabled for all platforms, especially because we can't
- // differentiate between e.g. Windows used via mouse and Windows used via touchscreen
- // The workaround won't hurt real-mouse platforms
+ // expect it to be in there. This is fine for a real mouse, but on platforms
+ // without a mouse, such as a Wii with a Wii Remote, or touch interfaces,
+ // this won't work. In these platforms, the affected menus will close
+ // immediately, because the mouse cursor's position won't be what the game
+ // scripts expect.
+ // We identify these cases via the cursor position set. If the mouse position
+ // is outside the expected rectangle, we report back to the game scripts that
+ // it's actually inside it, the first time that the mouse position is polled,
+ // as the scripts expect. In subsequent mouse position poll attempts, we
+ // return back the actual mouse coordinates.
+ // Currently this code is enabled for all platforms, as we can't differentiate
+ // between ones that have normal mouse input, and platforms that have
+ // alternative mouse input methods, like a touch screen. Platforms that have
+ // a normal mouse for input won't be affected by this workaround.
const SciGameId gameId = g_sci->getGameId();
const SciCursorSetPositionWorkarounds *workaround;
workaround = setPositionWorkarounds;
diff --git a/engines/sci/graphics/fontsjis.h b/engines/sci/graphics/fontsjis.h
index c4ae4ab580..ae5eaa43f9 100644
--- a/engines/sci/graphics/fontsjis.h
+++ b/engines/sci/graphics/fontsjis.h
@@ -50,9 +50,6 @@ private:
GuiResourceId _resourceId;
Graphics::FontSJIS *_commonFont;
-
- byte _lastForDoubleByteWidth;
- byte _lastForDoubleByteDraw;
};
} // End of namespace Sci
diff --git a/engines/sci/graphics/frameout.cpp b/engines/sci/graphics/frameout.cpp
index 5f65762685..bf1ce6da64 100644
--- a/engines/sci/graphics/frameout.cpp
+++ b/engines/sci/graphics/frameout.cpp
@@ -747,7 +747,8 @@ void GfxFrameout::kernelFrameout() {
// TODO: We can only process symmetrical scaling for now (i.e. same value for scaleX/scaleY)
if ((itemEntry->scaleSignal & kScaleSignalDoScaling32) &&
!(itemEntry->scaleSignal & kScaleSignalDisableGlobalScaling32) &&
- (itemEntry->scaleX == itemEntry->scaleY))
+ (itemEntry->scaleX == itemEntry->scaleY) &&
+ itemEntry->scaleX != 128)
applyGlobalScaling(itemEntry, it->planeRect, view->getHeight(itemEntry->loopNo, itemEntry->celNo));
if ((itemEntry->scaleX == 128) && (itemEntry->scaleY == 128))
diff --git a/engines/sci/graphics/menu.cpp b/engines/sci/graphics/menu.cpp
index e5b734782c..d2416ab4e0 100644
--- a/engines/sci/graphics/menu.cpp
+++ b/engines/sci/graphics/menu.cpp
@@ -46,6 +46,7 @@ GfxMenu::GfxMenu(EventManager *event, SegManager *segMan, GfxPorts *ports, GfxPa
_menuSaveHandle = NULL_REG;
_barSaveHandle = NULL_REG;
_oldPort = NULL;
+ _mouseOldState = false;
reset();
}
diff --git a/engines/sci/graphics/paint16.cpp b/engines/sci/graphics/paint16.cpp
index d20aa80c77..940a1ac3cf 100644
--- a/engines/sci/graphics/paint16.cpp
+++ b/engines/sci/graphics/paint16.cpp
@@ -41,8 +41,14 @@
namespace Sci {
-GfxPaint16::GfxPaint16(ResourceManager *resMan, SegManager *segMan, Kernel *kernel, GfxCache *cache, GfxPorts *ports, GfxCoordAdjuster *coordAdjuster, GfxScreen *screen, GfxPalette *palette, GfxTransitions *transitions, AudioPlayer *audio)
- : _resMan(resMan), _segMan(segMan), _kernel(kernel), _cache(cache), _ports(ports), _coordAdjuster(coordAdjuster), _screen(screen), _palette(palette), _transitions(transitions), _audio(audio) {
+GfxPaint16::GfxPaint16(ResourceManager *resMan, SegManager *segMan, GfxCache *cache, GfxPorts *ports, GfxCoordAdjuster *coordAdjuster, GfxScreen *screen, GfxPalette *palette, GfxTransitions *transitions, AudioPlayer *audio)
+ : _resMan(resMan), _segMan(segMan), _cache(cache), _ports(ports),
+ _coordAdjuster(coordAdjuster), _screen(screen), _palette(palette),
+ _transitions(transitions), _audio(audio), _EGAdrawingVisualize(false) {
+
+ // _animate and _text16 will be initialized later on
+ _animate = NULL;
+ _text16 = NULL;
}
GfxPaint16::~GfxPaint16() {
@@ -51,8 +57,6 @@ GfxPaint16::~GfxPaint16() {
void GfxPaint16::init(GfxAnimate *animate, GfxText16 *text16) {
_animate = animate;
_text16 = text16;
-
- _EGAdrawingVisualize = false;
}
void GfxPaint16::debugSetEGAdrawingVisualize(bool state) {
diff --git a/engines/sci/graphics/paint16.h b/engines/sci/graphics/paint16.h
index 46df203200..e06021c3e7 100644
--- a/engines/sci/graphics/paint16.h
+++ b/engines/sci/graphics/paint16.h
@@ -38,7 +38,7 @@ class GfxView;
*/
class GfxPaint16 : public GfxPaint {
public:
- GfxPaint16(ResourceManager *resMan, SegManager *segMan, Kernel *kernel, GfxCache *cache, GfxPorts *ports, GfxCoordAdjuster *coordAdjuster, GfxScreen *screen, GfxPalette *palette, GfxTransitions *transitions, AudioPlayer *audio);
+ GfxPaint16(ResourceManager *resMan, SegManager *segMan, GfxCache *cache, GfxPorts *ports, GfxCoordAdjuster *coordAdjuster, GfxScreen *screen, GfxPalette *palette, GfxTransitions *transitions, AudioPlayer *audio);
~GfxPaint16();
void init(GfxAnimate *animate, GfxText16 *text16);
@@ -89,7 +89,6 @@ public:
private:
ResourceManager *_resMan;
SegManager *_segMan;
- Kernel *_kernel;
AudioPlayer *_audio;
GfxAnimate *_animate;
GfxCache *_cache;
diff --git a/engines/sci/graphics/paint32.cpp b/engines/sci/graphics/paint32.cpp
index a9590c829a..a03e77dfa6 100644
--- a/engines/sci/graphics/paint32.cpp
+++ b/engines/sci/graphics/paint32.cpp
@@ -34,8 +34,8 @@
namespace Sci {
-GfxPaint32::GfxPaint32(ResourceManager *resMan, SegManager *segMan, Kernel *kernel, GfxCoordAdjuster *coordAdjuster, GfxCache *cache, GfxScreen *screen, GfxPalette *palette)
- : _resMan(resMan), _segMan(segMan), _kernel(kernel), _coordAdjuster(coordAdjuster), _cache(cache), _screen(screen), _palette(palette) {
+GfxPaint32::GfxPaint32(ResourceManager *resMan, GfxCoordAdjuster *coordAdjuster, GfxScreen *screen, GfxPalette *palette)
+ : _resMan(resMan), _coordAdjuster(coordAdjuster), _screen(screen), _palette(palette) {
}
GfxPaint32::~GfxPaint32() {
diff --git a/engines/sci/graphics/paint32.h b/engines/sci/graphics/paint32.h
index 66b31de282..81e355f77f 100644
--- a/engines/sci/graphics/paint32.h
+++ b/engines/sci/graphics/paint32.h
@@ -34,7 +34,7 @@ class GfxPorts;
*/
class GfxPaint32 : public GfxPaint {
public:
- GfxPaint32(ResourceManager *resMan, SegManager *segMan, Kernel *kernel, GfxCoordAdjuster *coordAdjuster, GfxCache *cache, GfxScreen *screen, GfxPalette *palette);
+ GfxPaint32(ResourceManager *resMan, GfxCoordAdjuster *coordAdjuster, GfxScreen *screen, GfxPalette *palette);
~GfxPaint32();
void fillRect(Common::Rect rect, byte color);
@@ -44,10 +44,7 @@ public:
private:
ResourceManager *_resMan;
- SegManager *_segMan;
- Kernel *_kernel;
GfxCoordAdjuster *_coordAdjuster;
- GfxCache *_cache;
GfxScreen *_screen;
GfxPalette *_palette;
};
diff --git a/engines/sci/graphics/palette.cpp b/engines/sci/graphics/palette.cpp
index 9b6eff6edc..d8d788b00a 100644
--- a/engines/sci/graphics/palette.cpp
+++ b/engines/sci/graphics/palette.cpp
@@ -851,7 +851,7 @@ int16 GfxPalette::kernelPalVaryReverse(int16 ticks, uint16 stepStop, int16 direc
if (!_palVaryTicks) {
_palVaryDirection = _palVaryStepStop - _palVaryStep;
- // ffs. see palVaryInit right above, we fix the code here as well
+ // see palVaryInit above, we fix the code here as well
// just in case
palVaryProcess(1, true);
} else {
diff --git a/engines/sci/graphics/picture.cpp b/engines/sci/graphics/picture.cpp
index bb326b1d2f..af372640da 100644
--- a/engines/sci/graphics/picture.cpp
+++ b/engines/sci/graphics/picture.cpp
@@ -605,7 +605,7 @@ void GfxPicture::drawVectorData(byte *data, int dataSize) {
case PIC_OP_MEDIUM_LINES: // medium line
vectorGetAbsCoords(data, curPos, x, y);
if (icemanDrawFix) {
- // WORKAROUND: remove certain lines in iceman ffs. see above
+ // WORKAROUND: remove certain lines in iceman - see above
if ((pic_color == 1) && (pic_priority == 14)) {
if ((y < 100) || (!(y & 1))) {
pic_color = 255;
diff --git a/engines/sci/graphics/screen.cpp b/engines/sci/graphics/screen.cpp
index 246b6bfff9..74503c0c77 100644
--- a/engines/sci/graphics/screen.cpp
+++ b/engines/sci/graphics/screen.cpp
@@ -115,6 +115,8 @@ GfxScreen::GfxScreen(ResourceManager *resMan) : _resMan(resMan) {
_controlScreen = (byte *)calloc(_pixels, 1);
_displayScreen = (byte *)calloc(_displayPixels, 1);
+ memset(&_ditheredPicColors, 0, sizeof(_ditheredPicColors));
+
// Sets display screen to be actually displayed
_activeScreen = _displayScreen;
diff --git a/engines/sci/graphics/text16.cpp b/engines/sci/graphics/text16.cpp
index 7eaa0168b8..56e9ea8b69 100644
--- a/engines/sci/graphics/text16.cpp
+++ b/engines/sci/graphics/text16.cpp
@@ -36,8 +36,8 @@
namespace Sci {
-GfxText16::GfxText16(ResourceManager *resMan, GfxCache *cache, GfxPorts *ports, GfxPaint16 *paint16, GfxScreen *screen)
- : _resMan(resMan), _cache(cache), _ports(ports), _paint16(paint16), _screen(screen) {
+GfxText16::GfxText16(GfxCache *cache, GfxPorts *ports, GfxPaint16 *paint16, GfxScreen *screen)
+ : _cache(cache), _ports(ports), _paint16(paint16), _screen(screen) {
init();
}
diff --git a/engines/sci/graphics/text16.h b/engines/sci/graphics/text16.h
index b33c2c4df0..321c7fc25e 100644
--- a/engines/sci/graphics/text16.h
+++ b/engines/sci/graphics/text16.h
@@ -40,7 +40,7 @@ class GfxFont;
*/
class GfxText16 {
public:
- GfxText16(ResourceManager *_resMan, GfxCache *fonts, GfxPorts *ports, GfxPaint16 *paint16, GfxScreen *screen);
+ GfxText16(GfxCache *fonts, GfxPorts *ports, GfxPaint16 *paint16, GfxScreen *screen);
~GfxText16();
GuiResourceId GetFontId();
@@ -75,7 +75,6 @@ private:
void init();
bool SwitchToFont900OnSjis(const char *text);
- ResourceManager *_resMan;
GfxCache *_cache;
GfxPorts *_ports;
GfxPaint16 *_paint16;
diff --git a/engines/sci/parser/grammar.cpp b/engines/sci/parser/grammar.cpp
index 6e02eb75e3..26e3ec9238 100644
--- a/engines/sci/parser/grammar.cpp
+++ b/engines/sci/parser/grammar.cpp
@@ -386,8 +386,10 @@ ParseRuleList *Vocabulary::buildGNF(bool verbose) {
for (uint i = 1; i < _parserBranches.size(); i++) { // branch rule 0 is treated specially
ParseRule *rule = _vbuild_rule(&_parserBranches[i]);
- if (!rule)
+ if (!rule) {
+ freeRuleList(ntlist);
return NULL;
+ }
ntlist = _vocab_add_rule(ntlist, rule);
}
diff --git a/engines/sci/resource.cpp b/engines/sci/resource.cpp
index 1da0c5dccc..d14c965ebb 100644
--- a/engines/sci/resource.cpp
+++ b/engines/sci/resource.cpp
@@ -158,24 +158,24 @@ static const ResourceType s_resTypeMapSci21[] = {
ResourceType ResourceManager::convertResType(byte type) {
type &= 0x7f;
- if (_mapVersion < kResVersionSci2) {
+ bool forceSci0 = false;
+
+ // LSL6 hires doesn't have the chunk resource type, to match
+ // the resource types of the lowres version, thus we use the
+ // older resource types here.
+ // PQ4 CD and QFG4 CD are SCI2.1, but use the resource types of the
+ // corresponding SCI2 floppy disk versions.
+ if (g_sci && (g_sci->getGameId() == GID_LSL6HIRES ||
+ g_sci->getGameId() == GID_QFG4 || g_sci->getGameId() == GID_PQ4))
+ forceSci0 = true;
+
+ if (_mapVersion < kResVersionSci2 || forceSci0) {
// SCI0 - SCI2
if (type < ARRAYSIZE(s_resTypeMapSci0))
return s_resTypeMapSci0[type];
} else {
- // SCI2.1+
- if (type < ARRAYSIZE(s_resTypeMapSci21)) {
- // LSL6 hires doesn't have the chunk resource type, to match
- // the resource types of the lowres version, thus we use the
- // older resource types here.
- // PQ4 CD and QFG4 CD are SCI2.1, but use the resource types of the
- // corresponding SCI2 floppy disk versions.
- if (g_sci && (g_sci->getGameId() == GID_LSL6HIRES ||
- g_sci->getGameId() == GID_QFG4 || g_sci->getGameId() == GID_PQ4))
- return s_resTypeMapSci0[type];
- else
- return s_resTypeMapSci21[type];
- }
+ if (type < ARRAYSIZE(s_resTypeMapSci21))
+ return s_resTypeMapSci21[type];
}
return kResourceTypeInvalid;
diff --git a/engines/sci/resource_audio.cpp b/engines/sci/resource_audio.cpp
index 684e1a1d0d..744f05f2b9 100644
--- a/engines/sci/resource_audio.cpp
+++ b/engines/sci/resource_audio.cpp
@@ -75,6 +75,10 @@ AudioVolumeResourceSource::AudioVolumeResourceSource(ResourceManager *resMan, co
delete fileStream;
}
+AudioVolumeResourceSource::~AudioVolumeResourceSource() {
+ delete[] _audioCompressionOffsetMapping;
+}
+
bool Resource::loadFromWaveFile(Common::SeekableReadStream *file) {
data = new byte[size];
diff --git a/engines/sci/resource_intern.h b/engines/sci/resource_intern.h
index e8e66503d8..c256c9d156 100644
--- a/engines/sci/resource_intern.h
+++ b/engines/sci/resource_intern.h
@@ -149,6 +149,8 @@ protected:
public:
AudioVolumeResourceSource(ResourceManager *resMan, const Common::String &name, ResourceSource *map, int volNum);
+ virtual ~AudioVolumeResourceSource();
+
virtual void loadResource(ResourceManager *resMan, Resource *res);
virtual uint32 getAudioCompressionType() const;
diff --git a/engines/sci/sci.cpp b/engines/sci/sci.cpp
index 1f5c354d1f..c1aadc3622 100644
--- a/engines/sci/sci.cpp
+++ b/engines/sci/sci.cpp
@@ -385,7 +385,7 @@ bool SciEngine::gameHasFanMadePatch() {
{ GID_PQ3, 994, 4686, 1291, 0x78 }, // English
{ GID_PQ3, 994, 4734, 1283, 0x78 }, // German
{ GID_QFG1VGA, 994, 4388, 0, 0x00 },
- { GID_QFG3, 33, 260, 0, 0x00 },
+ { GID_QFG3, 994, 4714, 2, 0x48 },
// TODO: Disabled, as it fixes a whole lot of bugs which can't be tested till SCI2.1 support is finished
//{ GID_QFG4, 710, 11477, 0, 0x00 },
{ GID_SQ1, 994, 4740, 0, 0x00 },
@@ -455,10 +455,19 @@ static byte patchGameRestoreSaveSci21[] = {
static void patchGameSaveRestoreCode(SegManager *segMan, reg_t methodAddress, byte id) {
Script *script = segMan->getScript(methodAddress.getSegment());
byte *patchPtr = const_cast<byte *>(script->getBuf(methodAddress.getOffset()));
- if (getSciVersion() <= SCI_VERSION_1_1)
+
+ if (getSciVersion() <= SCI_VERSION_1_1) {
memcpy(patchPtr, patchGameRestoreSave, sizeof(patchGameRestoreSave));
- else // SCI2+
+ } else { // SCI2+
memcpy(patchPtr, patchGameRestoreSaveSci2, sizeof(patchGameRestoreSaveSci2));
+
+ if (g_sci->isBE()) {
+ // LE -> BE
+ patchPtr[9] = 0x00;
+ patchPtr[10] = 0x06;
+ }
+ }
+
patchPtr[8] = id;
}
@@ -466,8 +475,16 @@ static void patchGameSaveRestoreCodeSci21(SegManager *segMan, reg_t methodAddres
Script *script = segMan->getScript(methodAddress.getSegment());
byte *patchPtr = const_cast<byte *>(script->getBuf(methodAddress.getOffset()));
memcpy(patchPtr, patchGameRestoreSaveSci21, sizeof(patchGameRestoreSaveSci21));
+
if (doRestore)
patchPtr[2] = 0x78; // push1
+
+ if (g_sci->isBE()) {
+ // LE -> BE
+ patchPtr[10] = 0x00;
+ patchPtr[11] = 0x08;
+ }
+
patchPtr[9] = id;
}
@@ -627,11 +644,11 @@ void SciEngine::initGraphics() {
// SCI32 graphic objects creation
_gfxCoordAdjuster = new GfxCoordAdjuster32(_gamestate->_segMan);
_gfxCursor->init(_gfxCoordAdjuster, _eventMan);
- _gfxCompare = new GfxCompare(_gamestate->_segMan, _kernel, _gfxCache, _gfxScreen, _gfxCoordAdjuster);
- _gfxPaint32 = new GfxPaint32(_resMan, _gamestate->_segMan, _kernel, _gfxCoordAdjuster, _gfxCache, _gfxScreen, _gfxPalette);
+ _gfxCompare = new GfxCompare(_gamestate->_segMan, _gfxCache, _gfxScreen, _gfxCoordAdjuster);
+ _gfxPaint32 = new GfxPaint32(_resMan, _gfxCoordAdjuster, _gfxScreen, _gfxPalette);
_gfxPaint = _gfxPaint32;
_gfxText32 = new GfxText32(_gamestate->_segMan, _gfxCache, _gfxScreen);
- _gfxControls32 = new GfxControls32(_gamestate->_segMan, _gfxCache, _gfxScreen, _gfxText32);
+ _gfxControls32 = new GfxControls32(_gamestate->_segMan, _gfxCache, _gfxText32);
_robotDecoder = new RobotDecoder(getPlatform() == Common::kPlatformMacintosh);
_gfxFrameout = new GfxFrameout(_gamestate->_segMan, _resMan, _gfxCoordAdjuster, _gfxCache, _gfxScreen, _gfxPalette, _gfxPaint32);
} else {
@@ -640,24 +657,24 @@ void SciEngine::initGraphics() {
_gfxPorts = new GfxPorts(_gamestate->_segMan, _gfxScreen);
_gfxCoordAdjuster = new GfxCoordAdjuster16(_gfxPorts);
_gfxCursor->init(_gfxCoordAdjuster, _eventMan);
- _gfxCompare = new GfxCompare(_gamestate->_segMan, _kernel, _gfxCache, _gfxScreen, _gfxCoordAdjuster);
+ _gfxCompare = new GfxCompare(_gamestate->_segMan, _gfxCache, _gfxScreen, _gfxCoordAdjuster);
_gfxTransitions = new GfxTransitions(_gfxScreen, _gfxPalette);
- _gfxPaint16 = new GfxPaint16(_resMan, _gamestate->_segMan, _kernel, _gfxCache, _gfxPorts, _gfxCoordAdjuster, _gfxScreen, _gfxPalette, _gfxTransitions, _audio);
+ _gfxPaint16 = new GfxPaint16(_resMan, _gamestate->_segMan, _gfxCache, _gfxPorts, _gfxCoordAdjuster, _gfxScreen, _gfxPalette, _gfxTransitions, _audio);
_gfxPaint = _gfxPaint16;
_gfxAnimate = new GfxAnimate(_gamestate, _gfxCache, _gfxPorts, _gfxPaint16, _gfxScreen, _gfxPalette, _gfxCursor, _gfxTransitions);
- _gfxText16 = new GfxText16(_resMan, _gfxCache, _gfxPorts, _gfxPaint16, _gfxScreen);
+ _gfxText16 = new GfxText16(_gfxCache, _gfxPorts, _gfxPaint16, _gfxScreen);
_gfxControls16 = new GfxControls16(_gamestate->_segMan, _gfxPorts, _gfxPaint16, _gfxText16, _gfxScreen);
_gfxMenu = new GfxMenu(_eventMan, _gamestate->_segMan, _gfxPorts, _gfxPaint16, _gfxText16, _gfxScreen, _gfxCursor);
_gfxMenu->reset();
-#ifdef ENABLE_SCI32
- }
-#endif
- if (_gfxPorts) {
_gfxPorts->init(_features->usesOldGfxFunctions(), _gfxPaint16, _gfxText16);
_gfxPaint16->init(_gfxAnimate, _gfxText16);
+
+#ifdef ENABLE_SCI32
}
+#endif
+
// Set default (EGA, amiga or resource 999) palette
_gfxPalette->setDefault();
}
diff --git a/engines/sci/sound/audio.cpp b/engines/sci/sound/audio.cpp
index 528bb51393..8f405b0fa5 100644
--- a/engines/sci/sound/audio.cpp
+++ b/engines/sci/sound/audio.cpp
@@ -324,7 +324,10 @@ Audio::RewindableAudioStream *AudioPlayer::getAudioStream(uint32 number, uint32
// Calculate samplelen from WAVE header
int waveSize = 0, waveRate = 0;
byte waveFlags = 0;
- Audio::loadWAVFromStream(*waveStream, waveSize, waveRate, waveFlags);
+ bool ret = Audio::loadWAVFromStream(*waveStream, waveSize, waveRate, waveFlags);
+ if (!ret)
+ error("Failed to load WAV from stream");
+
*sampleLen = (waveFlags & Audio::FLAG_16BITS ? waveSize >> 1 : waveSize) * 60 / waveRate;
waveStream->seek(0, SEEK_SET);
@@ -336,7 +339,10 @@ Audio::RewindableAudioStream *AudioPlayer::getAudioStream(uint32 number, uint32
// Calculate samplelen from AIFF header
int waveSize = 0, waveRate = 0;
byte waveFlags = 0;
- Audio::loadAIFFFromStream(*waveStream, waveSize, waveRate, waveFlags);
+ bool ret = Audio::loadAIFFFromStream(*waveStream, waveSize, waveRate, waveFlags);
+ if (!ret)
+ error("Failed to load AIFF from stream");
+
*sampleLen = (waveFlags & Audio::FLAG_16BITS ? waveSize >> 1 : waveSize) * 60 / waveRate;
waveStream->seek(0, SEEK_SET);
@@ -347,6 +353,9 @@ Audio::RewindableAudioStream *AudioPlayer::getAudioStream(uint32 number, uint32
Common::SeekableReadStream *sndStream = new Common::MemoryReadStream(audioRes->data, audioRes->size, DisposeAfterUse::NO);
audioSeekStream = Audio::makeMacSndStream(sndStream, DisposeAfterUse::YES);
+ if (!audioSeekStream)
+ error("Failed to load Mac sound stream");
+
} else {
// SCI1 raw audio
size = audioRes->size;
diff --git a/engines/sci/sound/drivers/adlib.cpp b/engines/sci/sound/drivers/adlib.cpp
index 191e13db0a..3229fd7071 100644
--- a/engines/sci/sound/drivers/adlib.cpp
+++ b/engines/sci/sound/drivers/adlib.cpp
@@ -512,7 +512,7 @@ int MidiDriver_AdLib::findVoiceBasic(int channel) {
}
if (voice == -1) {
- if (oldestVoice != -1) {
+ if (oldestVoice >= 0) {
voiceOff(oldestVoice);
voice = oldestVoice;
} else {
@@ -550,7 +550,7 @@ int MidiDriver_AdLib::findVoice(int channel) {
}
if (voice == -1) {
- if (oldestVoice != -1) {
+ if (oldestVoice >= 0) {
voiceOff(oldestVoice);
voice = oldestVoice;
} else {
diff --git a/engines/sci/sound/drivers/cms.cpp b/engines/sci/sound/drivers/cms.cpp
index dbcbf3d431..fd60863177 100644
--- a/engines/sci/sound/drivers/cms.cpp
+++ b/engines/sci/sound/drivers/cms.cpp
@@ -422,7 +422,7 @@ int MidiDriver_CMS::findVoiceBasic(int channel) {
}
if (voice == -1) {
- if (oldestVoice != -1) {
+ if (oldestVoice >= 0) {
voiceOff(oldestVoice);
voice = oldestVoice;
} else {
diff --git a/engines/sci/sound/drivers/fb01.cpp b/engines/sci/sound/drivers/fb01.cpp
index 9f3945bbec..b16473e62e 100644
--- a/engines/sci/sound/drivers/fb01.cpp
+++ b/engines/sci/sound/drivers/fb01.cpp
@@ -250,7 +250,7 @@ int MidiPlayer_Fb01::findVoice(int channel) {
}
if (voice == -1) {
- if (oldestVoice != -1) {
+ if (oldestVoice >= 0) {
voiceOff(oldestVoice);
voice = oldestVoice;
} else {
diff --git a/engines/sci/sound/soundcmd.cpp b/engines/sci/sound/soundcmd.cpp
index 873a16cc73..daba976f50 100644
--- a/engines/sci/sound/soundcmd.cpp
+++ b/engines/sci/sound/soundcmd.cpp
@@ -177,18 +177,6 @@ void SoundCommandParser::processPlaySound(reg_t obj) {
writeSelectorValue(_segMan, obj, SELECTOR(state), kSoundPlaying);
}
- // WORKAROUND: Songs 1840, 1843 and 1849 in the Windows version of KQ5CD
- // are all missing their channel 15 (all played during its ending
- // sequences, when fighting with Mordack). This makes the game scripts
- // wait indefinitely for the missing signals in these songs. In the
- // original interpreter, this bug manifests as an "Out of heap" error. We
- // signal the game scripts to stop waiting forever by setting the song's
- // dataInc selector to something other than 0. This causes Mordack's
- // appearing animation to occur a bit earlier than expected, but at least
- // the game doesn't freeze at that point. Fixes bug #3605269.
- if (g_sci->getGameId() == GID_KQ5 && (resourceId == 1840 || resourceId == 1843 || resourceId == 1849))
- musicSlot->dataInc = 1;
-
musicSlot->loop = readSelectorValue(_segMan, obj, SELECTOR(loop));
musicSlot->priority = readSelectorValue(_segMan, obj, SELECTOR(priority));
// Reset hold when starting a new song. kDoSoundSetHold is always called after
@@ -395,7 +383,7 @@ reg_t SoundCommandParser::kDoSoundFade(int argc, reg_t *argv, reg_t acc) {
if (musicSlot->fadeTo == musicSlot->volume)
return acc;
- // sometimes we get objects in that position, fix it up (ffs. workarounds)
+ // Sometimes we get objects in that position, so fix the value (refer to workarounds.cpp)
if (!argv[1].getSegment())
musicSlot->fadeStep = volume > musicSlot->fadeTo ? -argv[3].toUint16() : argv[3].toUint16();
else
@@ -749,7 +737,7 @@ void SoundCommandParser::updateSci0Cues() {
}
if (noOnePlaying && pWaitingForPlay) {
- // If there is a queued entry, play it now ffs: SciMusic::soundPlay()
+ // If there is a queued entry, play it now - check SciMusic::soundPlay()
pWaitingForPlay->isQueued = false;
_music->soundPlay(pWaitingForPlay);
}
diff --git a/engines/scumm/actor.cpp b/engines/scumm/actor.cpp
index 0c375efcdd..5c148a7b57 100644
--- a/engines/scumm/actor.cpp
+++ b/engines/scumm/actor.cpp
@@ -1880,7 +1880,7 @@ bool Actor::actorHitTest(int x, int y) {
#endif
void Actor::startAnimActor(int f) {
- if (_vm->_game.version >= 7 && !((_vm->_game.id == GID_FT) && (_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))) {
+ if (_vm->_game.version >= 7 && !((_vm->_game.id == GID_FT) && (_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))) {
switch (f) {
case 1001:
f = _initFrame;
@@ -1968,7 +1968,7 @@ void Actor_v0::startAnimActor(int f) {
void Actor::animateActor(int anim) {
int cmd, dir;
- if (_vm->_game.version >= 7 && !((_vm->_game.id == GID_FT) && (_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))) {
+ if (_vm->_game.version >= 7 && !((_vm->_game.id == GID_FT) && (_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))) {
if (anim == 0xFF)
anim = 2000;
diff --git a/engines/scumm/debugger.h b/engines/scumm/debugger.h
index a9b340d691..b60a1a2f03 100644
--- a/engines/scumm/debugger.h
+++ b/engines/scumm/debugger.h
@@ -35,7 +35,6 @@ public:
private:
ScummEngine *_vm;
- bool _old_soundsPaused;
// Commands
bool Cmd_Room(int argc, const char **argv);
diff --git a/engines/scumm/detection.cpp b/engines/scumm/detection.cpp
index e5c3023380..170ca0993c 100644
--- a/engines/scumm/detection.cpp
+++ b/engines/scumm/detection.cpp
@@ -963,7 +963,7 @@ static Common::String generatePreferredTarget(const DetectorResult &x) {
}
// Append the platform, if a non-standard one has been specified.
- if (x.game.platform != Common::kPlatformPC && x.game.platform != Common::kPlatformUnknown) {
+ if (x.game.platform != Common::kPlatformDOS && x.game.platform != Common::kPlatformUnknown) {
// HACK: For CoMI, it's pointless to encode the fact that it's for Windows
if (x.game.id != GID_CMI)
res = res + "-" + Common::getPlatformAbbrev(x.game.platform);
diff --git a/engines/scumm/detection_tables.h b/engines/scumm/detection_tables.h
index 9f6206439d..cb807997e9 100644
--- a/engines/scumm/detection_tables.h
+++ b/engines/scumm/detection_tables.h
@@ -205,11 +205,11 @@ static const Engines::ObsoleteGameID obsoleteGameIDsTable[] = {
static const GameSettings gameVariantsTable[] = {
{"maniac", "Apple II", 0, GID_MANIAC, 0, 0, MDT_APPLEIIGS, 0, Common::kPlatformApple2GS, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)},
{"maniac", "C64", 0, GID_MANIAC, 0, 0, MDT_C64, 0, Common::kPlatformC64, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI) },
- {"maniac", "V1", "v1", GID_MANIAC, 1, 0, MDT_PCSPK | MDT_PCJR, 0, Common::kPlatformPC, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)},
- {"maniac", "V1 Demo", "v1", GID_MANIAC, 1, 0, MDT_PCSPK | MDT_PCJR, GF_DEMO, Common::kPlatformPC, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)},
+ {"maniac", "V1", "v1", GID_MANIAC, 1, 0, MDT_PCSPK | MDT_PCJR, 0, Common::kPlatformDOS, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)},
+ {"maniac", "V1 Demo", "v1", GID_MANIAC, 1, 0, MDT_PCSPK | MDT_PCJR, GF_DEMO, Common::kPlatformDOS, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)},
{"maniac", "NES", 0, GID_MANIAC, 1, 0, MDT_NONE, 0, Common::kPlatformNES, GUIO3(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_NOASPECT)},
{"maniac", "V2", "v2", GID_MANIAC, 2, 0, MDT_PCSPK | MDT_PCJR, 0, UNK, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)},
- {"maniac", "V2 Demo", "v2", GID_MANIAC, 2, 0, MDT_PCSPK | MDT_PCJR, GF_DEMO, Common::kPlatformPC, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)},
+ {"maniac", "V2 Demo", "v2", GID_MANIAC, 2, 0, MDT_PCSPK | MDT_PCJR, GF_DEMO, Common::kPlatformDOS, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)},
{"zak", "V1", "v1", GID_ZAK, 1, 0, MDT_PCSPK | MDT_PCJR, 0, UNK, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)},
{"zak", "V2", "v2", GID_ZAK, 2, 0, MDT_PCSPK | MDT_PCJR, 0, UNK, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)},
@@ -220,7 +220,7 @@ static const GameSettings gameVariantsTable[] = {
{"indy3", "EGA", "ega", GID_INDY3, 3, 0, MDT_PCSPK | MDT_PCJR | MDT_CMS | MDT_ADLIB, 0, UNK, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)},
{"indy3", "No AdLib", "ega", GID_INDY3, 3, 0, MDT_PCSPK | MDT_PCJR, 0, UNK, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)},
- {"indy3", "VGA", "vga", GID_INDY3, 3, 0, MDT_PCSPK | MDT_PCJR | MDT_CMS | MDT_ADLIB, GF_OLD256 | GF_FEW_LOCALS, Common::kPlatformPC, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)},
+ {"indy3", "VGA", "vga", GID_INDY3, 3, 0, MDT_PCSPK | MDT_PCJR | MDT_CMS | MDT_ADLIB, GF_OLD256 | GF_FEW_LOCALS, Common::kPlatformDOS, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)},
{"indy3", "FM-TOWNS", 0, GID_INDY3, 3, 0, MDT_TOWNS, GF_OLD256 | GF_FEW_LOCALS | GF_AUDIOTRACKS, Common::kPlatformFMTowns, GUIO4(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_MIDITOWNS, GUIO_NOASPECT)},
{"loom", "EGA", "ega", GID_LOOM, 3, 0, MDT_PCSPK | MDT_PCJR | MDT_CMS | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO1(GUIO_NOSPEECH)},
@@ -229,14 +229,14 @@ static const GameSettings gameVariantsTable[] = {
{"loom", "PC-Engine", 0, GID_LOOM, 3, 0, MDT_NONE, GF_AUDIOTRACKS | GF_OLD256 | GF_16BIT_COLOR, Common::kPlatformPCEngine, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)},
#endif
{"loom", "FM-TOWNS", 0, GID_LOOM, 3, 0, MDT_TOWNS, GF_AUDIOTRACKS | GF_OLD256, Common::kPlatformFMTowns, GUIO4(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_MIDITOWNS, GUIO_NOASPECT)},
- {"loom", "VGA", "vga", GID_LOOM, 4, 0, MDT_NONE, GF_AUDIOTRACKS, Common::kPlatformPC, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)},
+ {"loom", "VGA", "vga", GID_LOOM, 4, 0, MDT_NONE, GF_AUDIOTRACKS, Common::kPlatformDOS, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)},
- {"pass", 0, 0, GID_PASS, 4, 0, MDT_PCSPK | MDT_PCJR | MDT_CMS | MDT_ADLIB, GF_16COLOR, Common::kPlatformPC, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)},
+ {"pass", 0, 0, GID_PASS, 4, 0, MDT_PCSPK | MDT_PCJR | MDT_CMS | MDT_ADLIB, GF_16COLOR, Common::kPlatformDOS, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)},
{"monkey", "VGA", "vga", GID_MONKEY_VGA, 4, 0, MDT_PCSPK | MDT_PCJR | MDT_CMS | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO1(GUIO_NOSPEECH)},
- {"monkey", "EGA", "ega", GID_MONKEY_EGA, 4, 0, MDT_PCSPK | MDT_PCJR | MDT_CMS | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, GF_16COLOR, Common::kPlatformPC, GUIO1(GUIO_NOSPEECH)},
+ {"monkey", "EGA", "ega", GID_MONKEY_EGA, 4, 0, MDT_PCSPK | MDT_PCJR | MDT_CMS | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, GF_16COLOR, Common::kPlatformDOS, GUIO1(GUIO_NOSPEECH)},
{"monkey", "No AdLib", "ega", GID_MONKEY_EGA, 4, 0, MDT_PCSPK | MDT_PCJR, GF_16COLOR, Common::kPlatformAtariST, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)},
- {"monkey", "Demo", "ega", GID_MONKEY_EGA, 4, 0, MDT_PCSPK | MDT_PCJR | MDT_CMS | MDT_ADLIB, GF_16COLOR, Common::kPlatformPC, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)},
+ {"monkey", "Demo", "ega", GID_MONKEY_EGA, 4, 0, MDT_PCSPK | MDT_PCJR | MDT_CMS | MDT_ADLIB, GF_16COLOR, Common::kPlatformDOS, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)},
{"monkey", "CD", 0, GID_MONKEY, 5, 0, MDT_ADLIB, GF_AUDIOTRACKS, UNK, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)},
{"monkey", "FM-TOWNS", 0, GID_MONKEY, 5, 0, MDT_TOWNS, GF_AUDIOTRACKS, Common::kPlatformFMTowns, GUIO4(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_MIDITOWNS, GUIO_NOASPECT)},
{"monkey", "SEGA", 0, GID_MONKEY, 5, 0, MDT_NONE, GF_AUDIOTRACKS, Common::kPlatformSegaCD, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)},
diff --git a/engines/scumm/he/animation_he.h b/engines/scumm/he/animation_he.h
index 7fa31a195d..e17c1b9a39 100644
--- a/engines/scumm/he/animation_he.h
+++ b/engines/scumm/he/animation_he.h
@@ -55,7 +55,6 @@ private:
Video::VideoDecoder *_video;
- char baseName[40];
uint32 _flags;
uint32 _wizResNum;
};
diff --git a/engines/scumm/he/logic/football.cpp b/engines/scumm/he/logic/football.cpp
index b405d634a4..ea990ca86b 100644
--- a/engines/scumm/he/logic/football.cpp
+++ b/engines/scumm/he/logic/football.cpp
@@ -218,10 +218,10 @@ int LogicHEfootball::nextPoint(int32 *args) {
if (res >= (double)args[6]) {
var8 = (double)args[6] * var8 / res;
var10 = (double)args[6] * var10 / res;
- res = (double)args[6] * var6 / res;
+ var6 = (double)args[6] * var6 / res;
}
- writeScummVar(108, (int32)res);
+ writeScummVar(108, (int32)var6);
writeScummVar(109, (int32)var10);
writeScummVar(110, (int32)var8);
@@ -297,6 +297,15 @@ private:
int initScreenTranslations();
int getPlaybookFiles(int32 *args);
int largestFreeBlock();
+
+ float _var0;
+ float _var1;
+ float _var2;
+ float _var3;
+ float _var4;
+ float _angle;
+ int32 _maxX;
+ int32 _minX;
};
int32 LogicHEfootball2002::dispatch(int op, int numArgs, int32 *args) {
@@ -325,8 +334,16 @@ int32 LogicHEfootball2002::dispatch(int op, int numArgs, int32 *args) {
res = 1;
break;
+ case 1030:
+ // Get Computer Name (online play only)
+ break;
+
+ case 1515:
+ // Initialize Session (online play only)
+ break;
+
case 1516:
- // Start auto LAN game
+ // Start auto LAN game (online play only)
break;
default:
@@ -338,13 +355,74 @@ int32 LogicHEfootball2002::dispatch(int op, int numArgs, int32 *args) {
}
int LogicHEfootball2002::translateWorldToScreen(int32 *args) {
- // TODO: Implement modified 2002 version
- return LogicHEfootball::translateWorldToScreen(args);
+ // While this performs the same task as football's 1006 opcode,
+ // the implementation is different. Note that this is also the
+ // same as basketball's 1006 opcode with different constants!
+
+ double v9;
+ if (args[1] >= _minX) {
+ if (args[1] < _maxX) {
+ v9 = (sqrt(_var1 + args[1]) - sqrt(_var1)) / sqrt(_var0);
+ } else {
+ double v10 = sqrt(_var0 * (_maxX + _var1));
+ v9 = 1.0 / (v10 + v10) * (args[1] - _maxX) + 451.0;
+ }
+ } else {
+ double v8 = sqrt(_var0 * (_minX + _var1));
+ v9 = 1.0 / (v8 + v8) * (args[1] - _minX) - 29.0;
+ }
+
+ double v11 = tan(_angle);
+ double v12, v13;
+
+ if (v9 >= -29.0) {
+ if (v9 >= 451.0) {
+ v12 = 1517.0 - (451.0 / v11 + 451.0 / v11);
+ v13 = tan(1.570796326794895 - _angle) * 451.0;
+ } else {
+ v12 = 1517.0 - (v9 / v11 + v9 / v11);
+ v13 = tan(1.570796326794895 - _angle) * v9;
+ }
+ } else {
+ v12 = 1517.0 - (-29.0 / v11 + -29.0 / v11);
+ v13 = tan(1.570796326794895 - _angle) * -29.0;
+ }
+
+ writeScummVar(108, scummRound(v12 * args[0] / 12200.0 + v13 + 41.0));
+ writeScummVar(109, scummRound(611.0 - v9 - v12 * args[2] / 12200.0));
+
+ return 1;
}
int LogicHEfootball2002::translateScreenToWorld(int32 *args) {
- // TODO: Implement modified 2002 version
- return LogicHEfootball::translateScreenToWorld(args);
+ // While this performs the same task as football's 1010 opcode,
+ // the implementation is different. Note that this is also the
+ // same as basketball's 1010 opcode with different constants!
+
+ double v15 = 611.0 - args[1];
+ double v5 = tan(_angle);
+ double v4, v6, v7;
+
+ if (v15 >= -29.0) {
+ if (v15 >= 451.0) {
+ v4 = (_var2 * 902.0 + _var3) * (v15 - 451.0) + _maxX;
+ v6 = 1517.0 - (451.0 / v5 + 451.0 / v5);
+ v7 = tan(1.570796326794895 - _angle) * 451.0;
+ } else {
+ v4 = (v15 * _var2 + _var3) * v15 + _var4;
+ v6 = 1517.0 - (v15 / v5 + v15 / v5);
+ v7 = tan(1.570796326794895 - _angle) * v15;
+ }
+ } else {
+ v4 = (_var3 - _var2 * 58.0) * (v15 - -29.0) + _minX;
+ v6 = 1517.0 - (-29.0 / v5 + -29.0 / v5);
+ v7 = tan(1.570796326794895 - _angle) * -29.0;
+ }
+
+ writeScummVar(108, scummRound((args[0] - (v7 + 41.0)) * (12200.0 / v6)));
+ writeScummVar(109, scummRound(v4));
+
+ return 1;
}
int LogicHEfootball2002::getDayOfWeek() {
@@ -358,7 +436,14 @@ int LogicHEfootball2002::getDayOfWeek() {
}
int LogicHEfootball2002::initScreenTranslations() {
- // TODO: Set values used by translateWorldToScreen/translateScreenToWorld
+ // Set values used by translateWorldToScreen/translateScreenToWorld
+ _var0 = _var2 = 0.0029172597f;
+ _var1 = 4896.3755f;
+ _var3 = 7.5588355f;
+ _var4 = 0.0f;
+ _angle = (float)atan(2.899280575539569);
+ _maxX = 4002;
+ _minX = -217;
return 1;
}
diff --git a/engines/scumm/he/script_v100he.cpp b/engines/scumm/he/script_v100he.cpp
index a2eb42214b..b024154c7f 100644
--- a/engines/scumm/he/script_v100he.cpp
+++ b/engines/scumm/he/script_v100he.cpp
@@ -2237,7 +2237,10 @@ void ScummEngine_v100he::o100_videoOps() {
switch (subOp) {
case 0:
memset(_videoParams.filename, 0, sizeof(_videoParams.filename));
+ _videoParams.status = 0;
+ _videoParams.flags = 0;
_videoParams.unk2 = pop();
+ _videoParams.wizResNum = 0;
break;
case 19:
_videoParams.status = 19;
diff --git a/engines/scumm/he/script_v60he.cpp b/engines/scumm/he/script_v60he.cpp
index 5e359385b6..bbd8725904 100644
--- a/engines/scumm/he/script_v60he.cpp
+++ b/engines/scumm/he/script_v60he.cpp
@@ -804,7 +804,7 @@ void ScummEngine_v60he::o60_readFile() {
int val;
// Fatty Bear uses positive values
- if (_game.platform == Common::kPlatformPC && _game.id == GID_FBEAR)
+ if (_game.platform == Common::kPlatformDOS && _game.id == GID_FBEAR)
size = -size;
assert(_hInFileTable[slot]);
@@ -834,7 +834,7 @@ void ScummEngine_v60he::o60_writeFile() {
int slot = pop();
// Fatty Bear uses positive values
- if (_game.platform == Common::kPlatformPC && _game.id == GID_FBEAR)
+ if (_game.platform == Common::kPlatformDOS && _game.id == GID_FBEAR)
size = -size;
assert(_hOutFileTable[slot]);
diff --git a/engines/scumm/he/wiz_he.cpp b/engines/scumm/he/wiz_he.cpp
index 798f703db6..ca360803bd 100644
--- a/engines/scumm/he/wiz_he.cpp
+++ b/engines/scumm/he/wiz_he.cpp
@@ -1548,12 +1548,18 @@ uint8 *Wiz::drawWizImage(int resNum, int state, int maskNum, int maskState, int
if (rScreen.intersects(clip)) {
rScreen.clip(clip);
} else {
+ if (flags & kWIFBlitToMemBuffer)
+ free(dst);
+
return 0;
}
} else if (_rectOverrideEnabled) {
if (rScreen.intersects(_rectOverride)) {
rScreen.clip(_rectOverride);
} else {
+ if (flags & kWIFBlitToMemBuffer)
+ free(dst);
+
return 0;
}
}
diff --git a/engines/scumm/insane/insane.cpp b/engines/scumm/insane/insane.cpp
index b8089ff226..44528e5bac 100644
--- a/engines/scumm/insane/insane.cpp
+++ b/engines/scumm/insane/insane.cpp
@@ -54,7 +54,7 @@ Insane::Insane(ScummEngine_v7 *scumm) {
initvars();
- if (!((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))) {
+ if (!((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))) {
readFileToMem("roadrash.rip", &_smush_roadrashRip);
readFileToMem("roadrsh2.rip", &_smush_roadrsh2Rip);
readFileToMem("roadrsh3.rip", &_smush_roadrsh3Rip);
@@ -173,7 +173,7 @@ void Insane::initvars() {
_iactBits[i] = 0;
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC)) {
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS)) {
init_enemyStruct(EN_ROTT1, EN_ROTT1, 0, 0, 60, 0, INV_MACE, 63, "endcrshr.san",
25, 15, 16, 26, 13, 3);
} else {
@@ -356,7 +356,7 @@ void Insane::initvars() {
init_scenePropStruct(138, 57, 0, 59, 134, 0xFF, 0xFF, 0xFF, 0, 30, 0);
_actor[0].damage = 0;
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))
_actor[0].maxdamage = 60;
else
_actor[0].maxdamage = 80;
@@ -466,7 +466,7 @@ void Insane::init_enemyStruct(int n, int32 handler, int32 initializer,
_enemy[n].isEmpty = isEmpty;
_enemy[n].weapon = weapon;
_enemy[n].sound = sound;
- strncpy(_enemy[n].filename, filename, 20);
+ Common::strlcpy(_enemy[n].filename, filename, 20);
_enemy[n].costume4 = costume4;
_enemy[n].costume6 = costume6;
_enemy[n].costume5 = costume5;
@@ -632,7 +632,7 @@ void Insane::putActors() {
void Insane::readState() { // PATCH
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC)) {
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS)) {
_actor[0].inventory[INV_CHAIN] = 0;
_actor[0].inventory[INV_CHAINSAW] = 0;
_actor[0].inventory[INV_MACE] = 0;
@@ -801,7 +801,7 @@ void Insane::prepareScenePropScene(int32 scenePropNum, bool arg_4, bool arg_8) {
debugC(DEBUG_INSANE, "Insane::prepareScenePropScene(%d, %d, %d)", scenePropNum, arg_4, arg_8);
- if (((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC)) || !loadScenePropSounds(idx))
+ if (((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS)) || !loadScenePropSounds(idx))
return;
_actor[0].defunct = arg_4;
@@ -898,7 +898,7 @@ int32 Insane::weaponDamage(int32 actornum) {
}
void Insane::reinitActors() {
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC)) {
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS)) {
smlayer_setActorCostume(0, 2, readArray(11));
smlayer_setActorCostume(0, 0, readArray(13));
smlayer_setActorCostume(0, 1, readArray(12));
@@ -966,7 +966,7 @@ void Insane::escapeKeyHandler() {
debugC(DEBUG_INSANE, "scene: %d", _currSceneId);
switch (_currSceneId) {
case 1:
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC)) {
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS)) {
queueSceneSwitch(1, 0, "minedriv.san", 64, 0, 0, 0);
} else {
queueSceneSwitch(1, _smush_minedrivFlu, "minedriv.san", 64, 0, _continueFrame1, 1300);
@@ -979,7 +979,7 @@ void Insane::escapeKeyHandler() {
break;
case 2:
flu = &_fluConf[14 + _iactSceneId2];
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))
queueSceneSwitch(4, 0, "tovista.san", 64, 0, 0, 0);
else
queueSceneSwitch(flu->sceneId, *flu->fluPtr, flu->filenamePtr, 64, 0,
@@ -1033,7 +1033,7 @@ void Insane::escapeKeyHandler() {
break;
case 8:
flu = &_fluConf[7 + _iactSceneId2];
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))
queueSceneSwitch(1, 0, "minedriv.san", 64, 0, 0, 0);
else
queueSceneSwitch(flu->sceneId, *flu->fluPtr, flu->filenamePtr, 64, 0,
@@ -1041,7 +1041,7 @@ void Insane::escapeKeyHandler() {
break;
case 7:
flu = &_fluConf[0 + _iactSceneId2];
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))
queueSceneSwitch(1, 0, "minedriv.san", 64, 0, 0, 0);
else
queueSceneSwitch(flu->sceneId, *flu->fluPtr, flu->filenamePtr, 64, 0,
@@ -1060,7 +1060,7 @@ void Insane::escapeKeyHandler() {
queueSceneSwitch(1, _smush_minedrivFlu, "minedriv.san", 64, 0, _continueFrame1, 1300);
break;
case 13:
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))
queueSceneSwitch(1, 0, "minedriv.san", 64, 0, 0, 0);
else
queueSceneSwitch(1, _smush_minedrivFlu, "minedriv.san", 64, 0, _continueFrame, 1300);
@@ -1195,7 +1195,7 @@ void Insane::smlayer_setActorLayer(int actornum, int actnum, int layer) {
}
void Insane::smlayer_setFluPalette(byte *pal, int shut_flag) {
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))
return;
// if (shut_flag)
@@ -1311,7 +1311,7 @@ void Insane::procSKIP(int32 subSize, Common::SeekableReadStream &b) {
int16 par1, par2;
_player->_skipNext = false;
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC)) {
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS)) {
assert(subSize >= 2);
par1 = b.readUint16LE();
par2 = 0;
diff --git a/engines/scumm/insane/insane_ben.cpp b/engines/scumm/insane/insane_ben.cpp
index 9d11f14e4e..a7fa72c417 100644
--- a/engines/scumm/insane/insane_ben.cpp
+++ b/engines/scumm/insane/insane_ben.cpp
@@ -125,7 +125,7 @@ int32 Insane::actionBen() {
bool doDamage = false;
int sound;
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))
sound = 59;
else
sound = 95;
@@ -558,7 +558,7 @@ void Insane::actor02Reaction(int32 buttons) {
_actor[0].weaponClass = 1;
_actor[0].act[2].state = 3;
_actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- if (!((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC)))
+ if (!((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS)))
smlayer_startSfx(63);
break;
case 3:
@@ -567,7 +567,7 @@ void Insane::actor02Reaction(int32 buttons) {
if (_actor[0].act[2].frame == 2) {
if (_currEnemy != EN_CAVEFISH) {
tmp = calcEnemyDamage(1, 1);
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC)) {
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS)) {
if (tmp == 1)
smlayer_startSfx(50);
} else {
@@ -890,7 +890,7 @@ void Insane::actor02Reaction(int32 buttons) {
case INV_2X4:
case INV_BOOT:
tmp = calcEnemyDamage(1, 1);
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC)) {
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS)) {
if (tmp == 1)
smlayer_startSfx(52);
if (tmp == 1000)
@@ -1015,7 +1015,7 @@ void Insane::actor02Reaction(int32 buttons) {
smlayer_setActorFacing(0, 2, 19, 180);
_actor[0].act[2].state = 27;
_actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- if (!((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC)))
+ if (!((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS)))
smlayer_startSfx(72);
break;
case 27:
@@ -1058,7 +1058,7 @@ void Insane::actor02Reaction(int32 buttons) {
case INV_BOOT:
case INV_DUST:
tmp = calcEnemyDamage(1, 1);
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC)) {
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS)) {
if (tmp == 1)
smlayer_startSfx(58);
if (tmp == 1000)
@@ -1178,7 +1178,7 @@ void Insane::actor02Reaction(int32 buttons) {
_actor[0].lost = true;
smlayer_setActorLayer(0, 2, 5);
_actor[0].kicking = false;
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))
smlayer_setActorCostume(0, 2, readArray(17));
else
smlayer_setActorCostume(0, 2, readArray(18));
@@ -1214,7 +1214,7 @@ void Insane::actor02Reaction(int32 buttons) {
smlayer_setActorLayer(0, 2, 25);
_actor[0].cursorX = 0;
_actor[0].kicking = false;
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC)) {
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS)) {
if (_actor[0].act[2].frame >= 28) {
queueSceneSwitch(9, 0, "bencrshe.san", 64, 0, 0, 0);
_actor[0].act[2].state = 38;
@@ -1229,7 +1229,7 @@ void Insane::actor02Reaction(int32 buttons) {
case EN_ROTT1:
case EN_ROTT2:
case EN_ROTT3:
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))
queueSceneSwitch(9, 0, "bencrshe.san", 64, 0, 0, 0);
else
queueSceneSwitch(9, 0, "wr2_benr.san", 64, 0, 0, 0);
@@ -1902,7 +1902,7 @@ void Insane::switchBenWeapon() {
switch (_actor[0].weapon) {
case INV_CHAIN:
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))
smlayer_setActorCostume(0, 2, readArray(19));
else
smlayer_setActorCostume(0, 2, readArray(20));
@@ -1911,7 +1911,7 @@ void Insane::switchBenWeapon() {
_actor[0].act[2].state = 34;
break;
case INV_CHAINSAW:
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))
smlayer_setActorCostume(0, 2, readArray(23));
else
smlayer_setActorCostume(0, 2, readArray(24));
@@ -1920,7 +1920,7 @@ void Insane::switchBenWeapon() {
_actor[0].act[2].state = 34;
break;
case INV_MACE:
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))
smlayer_setActorCostume(0, 2, readArray(22));
else
smlayer_setActorCostume(0, 2, readArray(23));
@@ -1929,7 +1929,7 @@ void Insane::switchBenWeapon() {
_actor[0].act[2].state = 34;
break;
case INV_2X4:
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC)) {
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS)) {
smlayer_setActorCostume(0, 2, readArray(18));
} else {
if (_currEnemy == EN_CAVEFISH)
@@ -1942,7 +1942,7 @@ void Insane::switchBenWeapon() {
_actor[0].act[2].state = 34;
break;
case INV_WRENCH:
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))
smlayer_setActorCostume(0, 2, readArray(24));
else
smlayer_setActorCostume(0, 2, readArray(25));
@@ -1953,7 +1953,7 @@ void Insane::switchBenWeapon() {
case INV_BOOT:
case INV_HAND:
case INV_DUST:
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))
smlayer_setActorCostume(0, 2, readArray(11));
else
smlayer_setActorCostume(0, 2, readArray(12));
@@ -2004,7 +2004,7 @@ int32 Insane::setBenState() {
void Insane::ouchSoundBen() {
_actor[0].act[3].state = 52;
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC)) {
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS)) {
smlayer_startVoice(54);
return;
}
diff --git a/engines/scumm/insane/insane_enemy.cpp b/engines/scumm/insane/insane_enemy.cpp
index 8107956646..fa6d4264ec 100644
--- a/engines/scumm/insane/insane_enemy.cpp
+++ b/engines/scumm/insane/insane_enemy.cpp
@@ -1244,7 +1244,7 @@ void Insane::ouchSoundEnemy() {
_actor[1].act[3].state = 52;
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC)) {
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS)) {
smlayer_startVoice(55);
return;
}
@@ -1671,7 +1671,7 @@ void Insane::actor12Reaction(int32 buttons) {
_actor[1].weaponClass = 1;
_actor[1].act[2].state = 3;
_actor[1].act[2].tilt = calcTilt(_actor[1].tilt);
- if (!((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC)))
+ if (!((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS)))
smlayer_startSfx(63);
break;
case 3:
@@ -1679,7 +1679,7 @@ void Insane::actor12Reaction(int32 buttons) {
_actor[1].weaponClass = 1;
if (_actor[1].act[2].frame >= 6) {
tmp = calcBenDamage(1, 1);
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC)) {
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS)) {
if (tmp == 1)
smlayer_startSfx(50);
} else if (tmp == 1)
@@ -1851,7 +1851,7 @@ void Insane::actor12Reaction(int32 buttons) {
smlayer_setActorFacing(1, 2, 19, 180);
_actor[1].act[2].state = 19;
_actor[1].act[2].tilt = calcTilt(_actor[1].tilt);
- if (!((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))) {
+ if (!((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))) {
smlayer_startSfx(69);
if (!_actor[1].field_54) {
tmp = _vm->_rnd.getRandomNumber(4);
@@ -1916,7 +1916,7 @@ void Insane::actor12Reaction(int32 buttons) {
case INV_2X4:
case INV_BOOT:
tmp = calcBenDamage(1, 1);
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC)) {
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS)) {
if (tmp == 1)
smlayer_startSfx(52);
else if (tmp == 1000)
@@ -2034,7 +2034,7 @@ void Insane::actor12Reaction(int32 buttons) {
_actor[1].kicking = true;
if (_actor[1].act[2].frame >= 3) {
tmp = calcBenDamage(1, 1);
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC)) {
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS)) {
if (tmp == 1)
smlayer_startSfx(57);
} else if (tmp == 1)
@@ -2088,7 +2088,7 @@ void Insane::actor12Reaction(int32 buttons) {
smlayer_setActorLayer(1, 2, 25);
_actor[1].act[2].state = 37;
- if (!((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))) {
+ if (!((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))) {
smlayer_startSfx(96);
switch (_currEnemy) {
case EN_ROTT1:
diff --git a/engines/scumm/insane/insane_iact.cpp b/engines/scumm/insane/insane_iact.cpp
index 48c96b537c..9c395beea6 100644
--- a/engines/scumm/insane/insane_iact.cpp
+++ b/engines/scumm/insane/insane_iact.cpp
@@ -171,7 +171,7 @@ void Insane::iactScene1(byte *renderBitmap, int32 codecparam, int32 setupsan12,
}
void Insane::chooseEnemy() {
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC)) {
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS)) {
_currEnemy = EN_ROTT1;
return;
}
diff --git a/engines/scumm/insane/insane_scenes.cpp b/engines/scumm/insane/insane_scenes.cpp
index db0b0171bc..06d5d7ac68 100644
--- a/engines/scumm/insane/insane_scenes.cpp
+++ b/engines/scumm/insane/insane_scenes.cpp
@@ -61,7 +61,7 @@ void Insane::runScene(int arraynum) {
case 1:
initScene(1);
setupValues();
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))
smlayer_setActorCostume(0, 2, readArray(9));
else
smlayer_setActorCostume(0, 2, readArray(10));
@@ -70,14 +70,14 @@ void Insane::runScene(int arraynum) {
break;
case 2:
setupValues();
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))
smlayer_setActorCostume(0, 2, readArray(10));
else
smlayer_setActorCostume(0, 2, readArray(11));
smlayer_putActor(0, 2, _actor[0].x, _actor[0].y1 + 190, _smlayer_room2);
_mainRoadPos = readArray(2);
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC)) {
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS)) {
initScene(5);
startVideo("tovista.san", 1, 32, 12, 0);
} else if (_mainRoadPos == _posBrokenTruck) {
@@ -93,7 +93,7 @@ void Insane::runScene(int arraynum) {
break;
case 3:
setupValues();
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))
smlayer_setActorCostume(0, 2, readArray(10));
else
smlayer_setActorCostume(0, 2, readArray(11));
@@ -148,7 +148,7 @@ void Insane::runScene(int arraynum) {
_insaneIsRunning = false;
_player->insanity(false);
- if (!((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))) {
+ if (!((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))) {
writeArray(50, _actor[0].inventory[INV_CHAIN]);
writeArray(51, _actor[0].inventory[INV_CHAINSAW]);
writeArray(52, _actor[0].inventory[INV_MACE]);
@@ -243,7 +243,7 @@ void Insane::stopSceneSounds(int sceneId) {
_actor[1].defunct = 0;
_actor[1].scenePropSubIdx = 0;
_actor[1].field_54 = 0;
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC)) {
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS)) {
smlayer_stopSound(59);
smlayer_stopSound(63);
} else {
@@ -319,7 +319,7 @@ void Insane::shutCurrentScene() {
// insane_loadSceneData1 & insane_loadSceneData2
int Insane::loadSceneData(int scene, int flag, int phase) {
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))
return 1;
int retvalue = 1;
@@ -621,7 +621,7 @@ void Insane::setSceneCostumes(int sceneId) {
switch (sceneId) {
case 1:
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))
smlayer_setActorCostume(0, 2, readArray(9));
else
smlayer_setActorCostume(0, 2, readArray(10));
@@ -634,7 +634,7 @@ void Insane::setSceneCostumes(int sceneId) {
setupValues();
return;
case 2:
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))
smlayer_setActorCostume(0, 2, readArray(9));
else
smlayer_setActorCostume(0, 2, readArray(10));
@@ -653,7 +653,7 @@ void Insane::setSceneCostumes(int sceneId) {
case 4:
case 5:
case 6:
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))
smlayer_setActorCostume(0, 2, readArray(10));
else
smlayer_setActorCostume(0, 2, readArray(11));
@@ -672,7 +672,7 @@ void Insane::setEnemyCostumes() {
debugC(DEBUG_INSANE, "setEnemyCostumes(%d)", _currEnemy);
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC)) {
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS)) {
smlayer_setActorCostume(0, 2, readArray(11));
smlayer_setActorCostume(0, 0, readArray(13));
smlayer_setActorCostume(0, 1, readArray(12));
@@ -1000,7 +1000,7 @@ void Insane::postCase11(byte *renderBitmap, int32 codecparam, int32 setupsan12,
if (_firstBattle) {
smush_setToFinish();
} else {
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))
queueSceneSwitch(1, 0, "minedriv.san", 64, 0, 0, 0);
else
queueSceneSwitch(1, _smush_minedrivFlu, "minedriv.san", 64, 0,
@@ -1096,7 +1096,7 @@ void Insane::postCase1(byte *renderBitmap, int32 codecparam, int32 setupsan12,
if ((curFrame >= maxFrame) && !_needSceneSwitch) {
flu = &_fluConf[14 + _iactSceneId2];
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))
queueSceneSwitch(4, 0, "tovista.san", 64, 0, 0, 0);
else
queueSceneSwitch(flu->sceneId, *flu->fluPtr, flu->filenamePtr, 64, 0,
@@ -1224,7 +1224,7 @@ void Insane::postCase6(byte *renderBitmap, int32 codecparam, int32 setupsan12,
else
flu = &_fluConf[0 + _iactSceneId2];
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))
queueSceneSwitch(1, 0, "minedriv.san", 64, 0, 0, 0);
else
queueSceneSwitch(flu->sceneId, *flu->fluPtr, flu->filenamePtr, 64, 0,
@@ -1243,7 +1243,7 @@ void Insane::postCase8(byte *renderBitmap, int32 codecparam, int32 setupsan12,
queueSceneSwitch(13, _smush_minefiteFlu, "minefite.san", 64, 0,
_continueFrame, 1300);
} else {
- if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC)) {
+ if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS)) {
queueSceneSwitch(1, 0, "minedriv.san", 64, 0, 0, 0);
} else {
if (_currSceneId == 23) {
diff --git a/engines/scumm/resource.cpp b/engines/scumm/resource.cpp
index b2093e9c1a..7c42b40f58 100644
--- a/engines/scumm/resource.cpp
+++ b/engines/scumm/resource.cpp
@@ -1214,7 +1214,7 @@ void ScummEngine_v7::readMAXS(int blockSize) {
_objectRoomTable = (byte *)calloc(_numGlobalObjects, 1);
if ((_game.id == GID_FT) && (_game.features & GF_DEMO) &&
- (_game.platform == Common::kPlatformPC))
+ (_game.platform == Common::kPlatformDOS))
_numGlobalScripts = 300;
else
_numGlobalScripts = 2000;
diff --git a/engines/scumm/script.cpp b/engines/scumm/script.cpp
index 8587fb8092..c8eabdd61c 100644
--- a/engines/scumm/script.cpp
+++ b/engines/scumm/script.cpp
@@ -49,6 +49,8 @@ void ScummEngine::runScript(int script, bool freezeResistant, bool recursive, in
if (!recursive)
stopScript(script);
+ uint16 number = (_currentScript != 0xFF) ? vm.slot[_currentScript].number : 0;
+
if (script < _numGlobalScripts) {
// Call getResourceAddress to ensure the resource is loaded & its usage count reset
/*scriptPtr =*/ getResourceAddress(rtScript, script);
@@ -56,7 +58,7 @@ void ScummEngine::runScript(int script, bool freezeResistant, bool recursive, in
scriptType = WIO_GLOBAL;
debugC(DEBUG_SCRIPTS, "runScript(Global-%d) from %d-%d", script,
- vm.slot[_currentScript].number, _roomResource);
+ number, _roomResource);
} else {
scriptOffs = _localScriptOffsets[script - _numGlobalScripts];
if (scriptOffs == 0)
@@ -64,7 +66,7 @@ void ScummEngine::runScript(int script, bool freezeResistant, bool recursive, in
scriptType = WIO_LOCAL;
debugC(DEBUG_SCRIPTS, "runScript(%d) from %d-%d", script,
- vm.slot[_currentScript].number, _roomResource);
+ number, _roomResource);
}
if (cycle == 0)
@@ -138,10 +140,10 @@ void ScummEngine::runObjectScript(int object, int entry, bool freezeResistant, b
void ScummEngine::initializeLocals(int slot, int *vars) {
int i;
if (!vars) {
- for (i = 0; i < 25; i++)
+ for (i = 0; i < NUM_SCRIPT_LOCAL; i++)
vm.localvar[slot][i] = 0;
} else {
- for (i = 0; i < 25; i++)
+ for (i = 0; i < NUM_SCRIPT_LOCAL; i++)
vm.localvar[slot][i] = vars[i];
}
}
@@ -755,13 +757,13 @@ void ScummEngine::stopObjectCode() {
}
void ScummEngine::runInventoryScript(int i) {
- int args[24];
- memset(args, 0, sizeof(args));
- args[0] = i;
if (VAR(VAR_INVENTORY_SCRIPT)) {
if (_game.id == GID_INDY3 && _game.platform == Common::kPlatformMacintosh) {
inventoryScriptIndy3Mac();
} else {
+ int args[NUM_SCRIPT_LOCAL];
+ memset(args, 0, sizeof(args));
+ args[0] = i;
runScript(VAR(VAR_INVENTORY_SCRIPT), 0, 0, args);
}
}
@@ -1060,7 +1062,7 @@ void ScummEngine::doSentence(int verb, int objectA, int objectB) {
void ScummEngine::checkAndRunSentenceScript() {
int i;
- int localParamList[24];
+ int localParamList[NUM_SCRIPT_LOCAL];
const ScriptSlot *ss;
int sentenceScript;
@@ -1308,7 +1310,7 @@ void ScummEngine_v0::runSentenceScript() {
}
void ScummEngine_v2::runInputScript(int clickArea, int val, int mode) {
- int args[24];
+ int args[NUM_SCRIPT_LOCAL];
int verbScript;
verbScript = 4;
@@ -1332,7 +1334,7 @@ void ScummEngine_v2::runInputScript(int clickArea, int val, int mode) {
}
void ScummEngine::runInputScript(int clickArea, int val, int mode) {
- int args[24];
+ int args[NUM_SCRIPT_LOCAL];
int verbScript;
verbScript = VAR(VAR_VERB_SCRIPT);
@@ -1490,7 +1492,7 @@ void ScummEngine::beginCutscene(int *args) {
void ScummEngine::endCutscene() {
ScriptSlot *ss = &vm.slot[_currentScript];
- int args[16];
+ int args[NUM_SCRIPT_LOCAL];
if (ss->cutsceneOverride > 0) // Only terminate if active
ss->cutsceneOverride--;
diff --git a/engines/scumm/script.h b/engines/scumm/script.h
index 7b2c625144..74ffaaf426 100644
--- a/engines/scumm/script.h
+++ b/engines/scumm/script.h
@@ -66,13 +66,15 @@ struct OpcodeEntry : Common::NonCopyable {
/**
* The number of script slots, which determines the maximal number
- * of concurrently running scripts.
- * WARNING: Do NOT changes this value unless you really have to, as
+ * of concurrently running scripts, and the number of local variables
+ * in a script.
+ * WARNING: Do NOT changes these values unless you really have to, as
* this will break savegame compatibility if done carelessly. If you
- * have to change it, make sure you update saveload.cpp accordingly!
+ * have to change them, make sure you update saveload.cpp accordingly!
*/
enum {
- NUM_SCRIPT_SLOT = 80
+ NUM_SCRIPT_SLOT = 80,
+ NUM_SCRIPT_LOCAL = 25
};
/* Script status type (slot.status) */
@@ -122,7 +124,8 @@ struct VirtualMachineState {
int16 cutSceneScriptIndex;
byte cutSceneStackPointer;
ScriptSlot slot[NUM_SCRIPT_SLOT];
- int32 localvar[NUM_SCRIPT_SLOT][26];
+ // Why does localvar have space for one extra local variable?
+ int32 localvar[NUM_SCRIPT_SLOT][NUM_SCRIPT_LOCAL + 1];
NestedScript nest[kMaxScriptNesting];
byte numNestedScripts;
diff --git a/engines/scumm/script_v4.cpp b/engines/scumm/script_v4.cpp
index 1de9f08168..ec3ac4b00f 100644
--- a/engines/scumm/script_v4.cpp
+++ b/engines/scumm/script_v4.cpp
@@ -415,7 +415,7 @@ void ScummEngine_v4::o4_saveLoadGame() {
char* ptr;
int firstSlot = (_game.id == GID_LOOM) ? STRINGID_SAVENAME1_LOOM : STRINGID_SAVENAME1;
ptr = (char *)getStringAddress(slot + firstSlot - 1);
- strncpy(name, ptr, sizeof(name));
+ Common::strlcpy(name, ptr, sizeof(name));
}
if (savePreparedSavegame(slot, name))
diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp
index 0bf51a2816..2d4c326b68 100644
--- a/engines/scumm/script_v5.cpp
+++ b/engines/scumm/script_v5.cpp
@@ -630,7 +630,7 @@ void ScummEngine_v5::o5_breakHere() {
}
void ScummEngine_v5::o5_chainScript() {
- int vars[16];
+ int vars[NUM_SCRIPT_LOCAL];
int script;
int cur;
@@ -663,7 +663,7 @@ void ScummEngine_v5::o5_chainScript() {
void ScummEngine_v5::o5_cursorCommand() {
int i, j, k;
- int table[16];
+ int table[NUM_SCRIPT_LOCAL];
switch ((_opcode = fetchScriptByte()) & 0x1F) {
case 1: // SO_CURSOR_ON
_cursor.state = 1;
@@ -736,7 +736,7 @@ void ScummEngine_v5::o5_cursorCommand() {
}
void ScummEngine_v5::o5_cutscene() {
- int args[16];
+ int args[NUM_SCRIPT_LOCAL];
getWordVararg(args);
beginCutscene(args);
}
@@ -2083,14 +2083,14 @@ void ScummEngine_v5::o5_isSoundRunning() {
}
void ScummEngine_v5::o5_soundKludge() {
- int items[16];
+ int items[NUM_SCRIPT_LOCAL];
int num = getWordVararg(items);
_sound->soundKludge(items, num);
}
void ScummEngine_v5::o5_startObject() {
int obj, script;
- int data[16];
+ int data[NUM_SCRIPT_LOCAL];
obj = getVarOrDirectWord(PARAM_1);
script = getVarOrDirectByte(PARAM_2);
@@ -2101,7 +2101,7 @@ void ScummEngine_v5::o5_startObject() {
void ScummEngine_v5::o5_startScript() {
int op, script;
- int data[16];
+ int data[NUM_SCRIPT_LOCAL];
op = _opcode;
script = getVarOrDirectByte(PARAM_1);
@@ -2130,7 +2130,7 @@ void ScummEngine_v5::o5_startScript() {
// Method used by original games to skip copy protection scheme
if (!_copyProtection) {
// Copy protection was disabled in LucasArts Classic Adventures (PC Disk)
- if (_game.id == GID_LOOM && _game.platform == Common::kPlatformPC && _game.version == 3 && _currentRoom == 69 && script == 201)
+ if (_game.id == GID_LOOM && _game.platform == Common::kPlatformDOS && _game.version == 3 && _currentRoom == 69 && script == 201)
script = 205;
// Copy protection was disabled in KIXX XL release (Amiga Disk) and
// in LucasArts Classic Adventures (PC Disk)
@@ -2556,7 +2556,7 @@ void ScummEngine_v5::o5_walkActorToObject() {
int ScummEngine_v5::getWordVararg(int *ptr) {
int i;
- for (i = 0; i < 16; i++)
+ for (i = 0; i < NUM_SCRIPT_LOCAL; i++)
ptr[i] = 0;
i = 0;
diff --git a/engines/scumm/script_v6.cpp b/engines/scumm/script_v6.cpp
index decd34222d..a75e864e7a 100644
--- a/engines/scumm/script_v6.cpp
+++ b/engines/scumm/script_v6.cpp
@@ -2510,7 +2510,7 @@ void ScummEngine_v7::o6_kernelSetFunctions() {
_disableFadeInEffect = true;
}
} else if (_game.id == GID_FT && !_skipVideo) {
- const int insaneVarNum = ((_game.features & GF_DEMO) && (_game.platform == Common::kPlatformPC))
+ const int insaneVarNum = ((_game.features & GF_DEMO) && (_game.platform == Common::kPlatformDOS))
? 232 : 233;
_insane->setSmushParams(_smushFrameRate);
diff --git a/engines/scumm/scumm-md5.h b/engines/scumm/scumm-md5.h
index faa03b3fbb..6aad52578d 100644
--- a/engines/scumm/scumm-md5.h
+++ b/engines/scumm/scumm-md5.h
@@ -1,5 +1,5 @@
/*
- This file was generated by the md5table tool on Fri Apr 05 21:06:17 2013
+ This file was generated by the md5table tool on Thu May 2 21:27:50 2013
DO NOT EDIT MANUALLY!
*/
@@ -17,7 +17,7 @@ static const MD5Table md5table[] = {
{ "008e76ec3ae58d0add637ea7aa299a2c", "freddi3", "", "", -1, Common::FR_FRA, Common::kPlatformMacintosh },
{ "02cae0e7ff8504f73618391873d5781a", "freddi3", "HE 98.5", "", -1, Common::DE_DEU, Common::kPlatformWindows },
{ "0305e850382b812fec6e5998ef88a966", "pajama", "", "Demo", -1, Common::NL_NLD, Common::kPlatformUnknown },
- { "035deab53b47bc43abc763560d0f8d4b", "atlantis", "Floppy", "Demo", -1, Common::EN_ANY, Common::kPlatformPC },
+ { "035deab53b47bc43abc763560d0f8d4b", "atlantis", "Floppy", "Demo", -1, Common::EN_ANY, Common::kPlatformDOS },
{ "037385a953789190298494d92b89b3d0", "catalog", "HE 72", "Demo", -1, Common::EN_ANY, Common::kPlatformWindows },
{ "03d3b18ee3fd68114e2a687c871e38d5", "freddi4", "HE 99", "Mini Game", -1, Common::EN_USA, Common::kPlatformWindows },
{ "0425954a9db5c340861672892c3e678d", "samnmax", "", "Demo", -1, Common::EN_ANY, Common::kPlatformUnknown },
@@ -33,7 +33,7 @@ static const MD5Table md5table[] = {
{ "07b810e37be7489263f7bc7627d4765d", "freddi4", "unenc", "Unencrypted", -1, Common::RU_RUS, Common::kPlatformWindows },
{ "084ed0fa98a6d1e9368d67fe9cfbd417", "freddi", "HE 71", "Demo", -1, Common::EN_ANY, Common::kPlatformWindows },
{ "0855496dde35356b1a9691e22ba84cdc", "freddi", "HE 73", "Demo", -1, Common::EN_ANY, Common::kPlatformWindows },
- { "08656dd9698ddf1023ba9bf8a195e37b", "monkey", "VGA", "VGA", -1, Common::EN_ANY, Common::kPlatformPC },
+ { "08656dd9698ddf1023ba9bf8a195e37b", "monkey", "VGA", "VGA", -1, Common::EN_ANY, Common::kPlatformDOS },
{ "08cc5c3eedaf72ebe12734eee94f7fa2", "balloon", "HE 80", "", -1, Common::EN_ANY, Common::kPlatformUnknown },
{ "09820417db26687bb7fe0c83cc4c553b", "ft", "", "Version A", 19697, Common::EN_ANY, Common::kPlatformUnknown },
{ "0a212fa35fa8421f31c1f3961272caf0", "monkey", "VGA", "VGA", -1, Common::DE_DEU, Common::kPlatformAmiga },
@@ -43,15 +43,15 @@ static const MD5Table md5table[] = {
{ "0aa050f4ad79402fbe9c4f78fb8ac494", "loom", "PC-Engine", "", 6532, Common::EN_ANY, Common::kPlatformPCEngine },
{ "0ab19be9e2a3f6938226638b2a3744fe", "PuttTime", "HE 100", "Demo", -1, Common::EN_USA, Common::kPlatformUnknown },
{ "0ac41e2e3d2174e5a042a6b565328dba", "puttrace", "HE 98", "Demo", 13110, Common::EN_USA, Common::kPlatformUnknown },
- { "0b3222aaa7efcf283eb621e0cefd26cc", "puttputt", "HE 60", "", -1, Common::RU_RUS, Common::kPlatformPC },
- { "0be88565f734b1e9e77ccaaf3bb14b29", "loom", "EGA", "EGA", -1, Common::ES_ESP, Common::kPlatformPC },
+ { "0b3222aaa7efcf283eb621e0cefd26cc", "puttputt", "HE 60", "", -1, Common::RU_RUS, Common::kPlatformDOS },
+ { "0be88565f734b1e9e77ccaaf3bb14b29", "loom", "EGA", "EGA", -1, Common::ES_ESP, Common::kPlatformDOS },
{ "0bf1a3eb198ca1bd2ebe104825cec770", "puttrace", "HE 99", "Demo", -1, Common::FR_FRA, Common::kPlatformWindows },
{ "0c331637580950aea2346e012ef2a868", "maniac", "V2", "V2", 1988, Common::EN_ANY, Common::kPlatformAtariST },
{ "0c45eb4baff0c12c3d9dfa889c8070ab", "pajama3", "", "Demo", 13884, Common::DE_DEU, Common::kPlatformUnknown },
{ "0cccfa5223099a60e76cfcca57a1a141", "freddi3", "", "", -1, Common::NL_NLD, Common::kPlatformUnknown },
- { "0d1b69471605201ef2fa9cec1f5f02d2", "maniac", "V2", "V2", -1, Common::ES_ESP, Common::kPlatformPC },
+ { "0d1b69471605201ef2fa9cec1f5f02d2", "maniac", "V2", "V2", -1, Common::ES_ESP, Common::kPlatformDOS },
{ "0ddf1174d0d097956ba10dd452ea65e6", "freddi3", "HE 99", "", -1, Common::HE_ISR, Common::kPlatformWindows },
- { "0e4c5d54a0ad4b26132e78b5ea76642a", "samnmax", "Floppy", "Demo", 6485, Common::EN_ANY, Common::kPlatformPC },
+ { "0e4c5d54a0ad4b26132e78b5ea76642a", "samnmax", "Floppy", "Demo", 6485, Common::EN_ANY, Common::kPlatformDOS },
{ "0e96ab45a4eb72acc1b46813976589fd", "activity", "", "", -1, Common::EN_ANY, Common::kPlatformMacintosh },
{ "0e9b01430e31d9fcd94071d433bbc6bf", "loom", "No AdLib", "EGA", -1, Common::FR_FRA, Common::kPlatformAtariST },
{ "0f5935bd5e88ba6f09e558d64459746d", "thinker1", "", "Demo", 30919, Common::EN_USA, Common::kPlatformWindows },
@@ -62,7 +62,7 @@ static const MD5Table md5table[] = {
{ "1005456bfe351c1b679e1ff2dc2849e9", "puttzoo", "", "", -1, Common::UNK_LANG, Common::kPlatformWindows },
{ "100b4c8403ad6a83d4bf7dbf83e44dc4", "spyfox", "", "", -1, Common::FR_FRA, Common::kPlatformWindows },
{ "10d8e66cd11049ce64815ebb9fd76eb3", "spyozon", "", "", -1, Common::FR_FRA, Common::kPlatformUnknown },
- { "114acdc2659a273c220f86ee9edb24c1", "maniac", "V2", "V2", -1, Common::FR_FRA, Common::kPlatformPC },
+ { "114acdc2659a273c220f86ee9edb24c1", "maniac", "V2", "V2", -1, Common::FR_FRA, Common::kPlatformDOS },
{ "11ddf1fde76e3156eb3a38da213f484e", "monkey2", "", "", -1, Common::IT_ITA, Common::kPlatformAmiga },
{ "11e6e244078ff09b0f3832e35420e0a7", "catalog", "", "Demo", -1, Common::EN_ANY, Common::kPlatformWindows },
{ "132bff65e6367c09cc69318ce1b59333", "monkey2", "", "", 11155, Common::EN_ANY, Common::kPlatformAmiga },
@@ -74,20 +74,20 @@ static const MD5Table md5table[] = {
{ "15240c59d3681ed53f714f8d925cb2d6", "maniac", "V2", "V2", -1, Common::ES_ESP, Common::kPlatformAtariST },
{ "157367c3c21e0d03a0cba44361b4cf65", "indy3", "No AdLib", "EGA", -1, Common::EN_ANY, Common::kPlatformAtariST },
{ "15878e3bee2e1e759184abee98589eaa", "spyfox", "HE 100", "", -1, Common::EN_ANY, Common::kPlatformIOS },
- { "15e03ffbfeddb9c2aebc13dcb2a4a8f4", "monkey", "VGA", "VGA", 8357, Common::EN_ANY, Common::kPlatformPC },
+ { "15e03ffbfeddb9c2aebc13dcb2a4a8f4", "monkey", "VGA", "VGA", 8357, Common::EN_ANY, Common::kPlatformDOS },
{ "15f588e887e857e8c56fe6ade4956168", "atlantis", "Floppy", "Floppy", -1, Common::ES_ESP, Common::kPlatformAmiga },
{ "16542a7342a918bfe4ba512007d36c47", "FreddisFunShop", "HE 99L", "", -1, Common::EN_USA, Common::kPlatformUnknown },
{ "166553538ff320c69edafeee29525419", "samnmax", "", "CD", 199195304, Common::EN_ANY, Common::kPlatformMacintosh },
{ "16effd200aa6b8abe9c569c3e578814d", "freddi4", "HE 99", "Demo", -1, Common::NL_NLD, Common::kPlatformUnknown },
{ "179879b6e35c1ead0d93aab26db0951b", "fbear", "HE 70", "", 13381, Common::EN_ANY, Common::kPlatformWindows },
- { "17b5d5e6af4ae89d62631641d66d5a05", "indy3", "VGA", "VGA", -1, Common::IT_ITA, Common::kPlatformPC },
+ { "17b5d5e6af4ae89d62631641d66d5a05", "indy3", "VGA", "VGA", -1, Common::IT_ITA, Common::kPlatformDOS },
{ "17f7296f63c78642724f057fd8e736a7", "maniac", "NES", "", 2082, Common::EN_GRB, Common::kPlatformNES },
- { "17fa250eb72dae2dad511ba79c0b6b0a", "tentacle", "", "Demo", -1, Common::FR_FRA, Common::kPlatformPC },
- { "182344899c2e2998fca0bebcd82aa81a", "atlantis", "", "CD", 12035, Common::EN_ANY, Common::kPlatformPC },
- { "183d7464902d40d00800e8ee1f04117c", "maniac", "V2", "V2", 1988, Common::DE_DEU, Common::kPlatformPC },
- { "1875b90fade138c9253a8e967007031a", "indy3", "VGA", "VGA", 6295, Common::EN_ANY, Common::kPlatformPC },
- { "187d315f6b5168f68680dfe8c3d76a3e", "loom", "EGA", "EGA", -1, Common::HE_ISR, Common::kPlatformPC },
- { "1900e501a52fbf55bde6e4196f6d2aa6", "zak", "V2", "V2", -1, Common::IT_ITA, Common::kPlatformPC },
+ { "17fa250eb72dae2dad511ba79c0b6b0a", "tentacle", "", "Demo", -1, Common::FR_FRA, Common::kPlatformDOS },
+ { "182344899c2e2998fca0bebcd82aa81a", "atlantis", "", "CD", 12035, Common::EN_ANY, Common::kPlatformDOS },
+ { "183d7464902d40d00800e8ee1f04117c", "maniac", "V2", "V2", 1988, Common::DE_DEU, Common::kPlatformDOS },
+ { "1875b90fade138c9253a8e967007031a", "indy3", "VGA", "VGA", 6295, Common::EN_ANY, Common::kPlatformDOS },
+ { "187d315f6b5168f68680dfe8c3d76a3e", "loom", "EGA", "EGA", -1, Common::HE_ISR, Common::kPlatformDOS },
+ { "1900e501a52fbf55bde6e4196f6d2aa6", "zak", "V2", "V2", -1, Common::IT_ITA, Common::kPlatformDOS },
{ "19263586f749a560c1adf8b3393a9593", "socks", "HE 85", "", -1, Common::RU_RUS, Common::kPlatformWindows },
{ "19bf6938a94698296bcb0c99c31c91a7", "spyfox2", "", "Demo", -1, Common::EN_GRB, Common::kPlatformWindows },
{ "1a6e5ae2777a6a33f06ffc0226210934", "atlantis", "", "CD", -1, Common::EN_ANY, Common::kPlatformMacintosh },
@@ -96,13 +96,13 @@ static const MD5Table md5table[] = {
{ "1c792d28376d45e145cb916bca0400a2", "spyfox2", "", "Demo", -1, Common::NL_NLD, Common::kPlatformUnknown },
{ "1c7e7db2cfab1ad62746ab680a634204", "maniac", "NES", "", -1, Common::FR_FRA, Common::kPlatformNES },
{ "1ca86e2cf9aaa2068738a1e5ba477e60", "zak", "FM-TOWNS", "", -1, Common::JA_JPN, Common::kPlatformFMTowns },
- { "1d05cd189e4908f79b57e78a4402f292", "monkey", "EGA", "EGA", -1, Common::EN_ANY, Common::kPlatformPC },
+ { "1d05cd189e4908f79b57e78a4402f292", "monkey", "EGA", "EGA", -1, Common::EN_ANY, Common::kPlatformDOS },
{ "1d7a2e1ddcade791e2de0cfceac86725", "pajama", "", "", -1, Common::FR_FRA, Common::kPlatformUnknown },
- { "1dd3c11ea4439adfe681e4e405b624e1", "monkey", "EGA", "EGA", -1, Common::FR_FRA, Common::kPlatformPC },
+ { "1dd3c11ea4439adfe681e4e405b624e1", "monkey", "EGA", "EGA", -1, Common::FR_FRA, Common::kPlatformDOS },
{ "1dd7aa088e09f96d06818aa9a9deabe0", "indy3", "No AdLib", "EGA", 5361, Common::EN_ANY, Common::kPlatformMacintosh },
{ "1ed22f601f8b3695804a6583cc3083f1", "puttrace", "HE 98.5", "", -1, Common::NL_NLD, Common::kPlatformUnknown },
{ "1f2e62b5a9c50589fc342285a6bb3a27", "freddi", "HE 73", "", -1, Common::HE_ISR, Common::kPlatformWindows },
- { "1fbebd7b2b692df5297870447a80cfed", "atlantis", "Floppy", "Floppy", 12030, Common::DE_DEU, Common::kPlatformPC },
+ { "1fbebd7b2b692df5297870447a80cfed", "atlantis", "Floppy", "Floppy", 12030, Common::DE_DEU, Common::kPlatformDOS },
{ "1ff5997c78fbd0a841a75ef15a05d9d5", "BluesBirthday", "Red", "Red", -1, Common::EN_ANY, Common::kPlatformUnknown },
{ "2012f854d83d9cc6f73b2b544cd8bbf8", "water", "HE 80", "", -1, Common::RU_RUS, Common::kPlatformWindows },
{ "20176076d708bf14407bcc9bdcd7a418", "pajama3", "", "", -1, Common::RU_RUS, Common::kPlatformWindows },
@@ -115,22 +115,22 @@ static const MD5Table md5table[] = {
{ "225e18566e810c634bf7de63e7568e3e", "mustard", "", "", -1, Common::EN_USA, Common::kPlatformUnknown },
{ "22c9eb04455440131ffc157aeb8d40a8", "fbear", "HE 70", "Demo", -1, Common::EN_ANY, Common::kPlatformWindows },
{ "22de86b2f7ec6e5db745ed1123310b44", "spyfox2", "", "Demo", 15832, Common::FR_FRA, Common::kPlatformWindows },
- { "22f4ea88a09da12df9308ba30bcb7d0f", "loom", "EGA", "EGA", -1, Common::EN_ANY, Common::kPlatformPC },
+ { "22f4ea88a09da12df9308ba30bcb7d0f", "loom", "EGA", "EGA", -1, Common::EN_ANY, Common::kPlatformDOS },
{ "23394c8d29cc63c61313959431a12476", "spyfox", "HE 100", "Updated", -1, Common::EN_ANY, Common::kPlatformWindows },
{ "254fede2f15dbb32a23760d601b01816", "zak", "V1", "", -1, Common::EN_ANY, Common::kPlatformC64 },
- { "2723fea3dae0cb47768c424b145ae0e7", "tentacle", "Floppy", "Floppy", 7932, Common::EN_ANY, Common::kPlatformPC },
+ { "2723fea3dae0cb47768c424b145ae0e7", "tentacle", "Floppy", "Floppy", 7932, Common::EN_ANY, Common::kPlatformDOS },
{ "27b2ef1653089fe5b897d9cc89ce784f", "balloon", "HE 80", "", -1, Common::RU_RUS, Common::kPlatformWindows },
{ "27b3a4224ad63d5b04627595c1c1a025", "zak", "V2", "V2", -1, Common::IT_ITA, Common::kPlatformAmiga },
{ "28d24a33448fab6795850bc9f159a4a2", "atlantis", "FM-TOWNS", "Demo", 11170, Common::JA_JPN, Common::kPlatformFMTowns },
- { "28ef68ee3ed76d7e2ee8ee13c15fbd5b", "loom", "EGA", "EGA", 5748, Common::EN_ANY, Common::kPlatformPC },
+ { "28ef68ee3ed76d7e2ee8ee13c15fbd5b", "loom", "EGA", "EGA", 5748, Common::EN_ANY, Common::kPlatformDOS },
{ "28f07458f1b6c24e118a1ea056827701", "lost", "HE 99", "", -1, Common::NL_NLD, Common::kPlatformUnknown },
- { "2a208ffbcd0e83e86f4356e6f64aa6e1", "loom", "EGA", "EGA", -1, Common::ES_ESP, Common::kPlatformPC },
+ { "2a208ffbcd0e83e86f4356e6f64aa6e1", "loom", "EGA", "EGA", -1, Common::ES_ESP, Common::kPlatformDOS },
{ "2a41b53cf1a90b6e6f26c10cc6041084", "tentacle", "", "Demo", 2439158, Common::EN_ANY, Common::kPlatformMacintosh },
{ "2a446817ffcabfef8716e0c456ecaf81", "puttzoo", "", "Demo", -1, Common::DE_DEU, Common::kPlatformWindows },
{ "2a8658dbd13d84d1bce64a71a35995eb", "pajama2", "HE 99", "Demo", -1, Common::HE_ISR, Common::kPlatformWindows },
- { "2c04aacffb8428f30ccf4f734fbe3adc", "activity", "", "", -1, Common::EN_ANY, Common::kPlatformPC },
+ { "2c04aacffb8428f30ccf4f734fbe3adc", "activity", "", "", -1, Common::EN_ANY, Common::kPlatformDOS },
{ "2ccd8891ce4d3f1a334d21bff6a88ca2", "monkey", "CD", "", 9455, Common::EN_ANY, Common::kPlatformMacintosh },
- { "2d1e891fe52df707c30185e52c50cd92", "monkey", "CD", "CD", 8955, Common::EN_ANY, Common::kPlatformPC },
+ { "2d1e891fe52df707c30185e52c50cd92", "monkey", "CD", "CD", 8955, Common::EN_ANY, Common::kPlatformDOS },
{ "2d388339d6050d8ccaa757b64633954e", "indyloom", "FM-TOWNS", "Demo", 7520, Common::EN_ANY, Common::kPlatformFMTowns },
{ "2d4536a56e01da4b02eb021e7770afa2", "zak", "FM-TOWNS", "", 7520, Common::EN_ANY, Common::kPlatformFMTowns },
{ "2d4acbdcfd8e374c9da8c2e7303a5cd0", "BluesBirthday", "", "Demo", -1, Common::EN_ANY, Common::kPlatformUnknown },
@@ -139,14 +139,14 @@ static const MD5Table md5table[] = {
{ "2e85f7aa054930c692a5b1bed1dfc295", "football2002", "", "Patched", -1, Common::EN_ANY, Common::kPlatformUnknown },
{ "2e8a1f76ea33bc5e04347646feee173d", "pajama3", "", "", -1, Common::DE_DEU, Common::kPlatformUnknown },
{ "2fe369ad70f52a8cf7ad6077ee64f81a", "loom", "EGA", "EGA", -1, Common::DE_DEU, Common::kPlatformAmiga },
- { "305d3dd57c96c65b017bc70c8c7cfb5e", "monkey", "CD", "CD", 8955, Common::DE_DEU, Common::kPlatformPC },
+ { "305d3dd57c96c65b017bc70c8c7cfb5e", "monkey", "CD", "CD", 8955, Common::DE_DEU, Common::kPlatformDOS },
{ "30ba1e825d4ad2b448143ae8df18482a", "pajama2", "HE 98.5", "Demo", -1, Common::NL_NLD, Common::kPlatformUnknown },
{ "30d1903b0715759af064be2127381cd0", "freddi", "HE 100", "", 34837, Common::DE_DEU, Common::kPlatformWii },
{ "319a4dde52c7960b5aae8a1ec348d918", "monkey", "VGA", "VGA", -1, Common::DE_DEU, Common::kPlatformAmiga },
- { "31aa57f460a3d12429f0552a46a90b39", "puttputt", "Demo", "Demo", 6150, Common::EN_ANY, Common::kPlatformPC },
+ { "31aa57f460a3d12429f0552a46a90b39", "puttputt", "Demo", "Demo", 6150, Common::EN_ANY, Common::kPlatformDOS },
{ "31b8fda4c8c7413fa6b39997e776eba4", "loom", "FM-TOWNS", "", -1, Common::JA_JPN, Common::kPlatformFMTowns },
{ "32709cbeeb3044b34129950860a83f14", "pajama2", "HE 99", "", -1, Common::RU_RUS, Common::kPlatformWindows },
- { "32a433dea56b86a55b59e4ff7d755711", "ft", "Demo", "Demo", -1, Common::EN_ANY, Common::kPlatformPC },
+ { "32a433dea56b86a55b59e4ff7d755711", "ft", "Demo", "Demo", -1, Common::EN_ANY, Common::kPlatformDOS },
{ "330f631502e381a4e199a3f7cb483c20", "indy3", "EGA", "EGA", -1, Common::DE_DEU, Common::kPlatformAmiga },
{ "33e989f85da700e2014d00f345cab3d7", "puttrace", "HE 98.5", "", -1, Common::FR_FRA, Common::kPlatformWindows },
{ "3433be9866ca4261b2d5d25374e3f243", "monkey", "VGA", "VGA", -1, Common::FR_FRA, Common::kPlatformAmiga },
@@ -154,16 +154,16 @@ static const MD5Table md5table[] = {
{ "356fb5f680b68251333016175935d126", "BluesABCTime", "HE CUP", "Preview", 4133436, Common::UNK_LANG, Common::kPlatformUnknown },
{ "35a2d3040fa512f8232d9e443319d84d", "dig", "", "", 659335495, Common::EN_ANY, Common::kPlatformMacintosh },
{ "362c1d281fb9899254cda66ad246c66a", "dig", "Demo", "Demo", 3472, Common::EN_ANY, Common::kPlatformUnknown },
- { "3686cf8f89e102ececf4366e1d2c8126", "monkey2", "", "", 11135, Common::EN_ANY, Common::kPlatformPC },
+ { "3686cf8f89e102ececf4366e1d2c8126", "monkey2", "", "", 11135, Common::EN_ANY, Common::kPlatformDOS },
{ "36a6750e03fb505fc19fc2bf3e4dbe91", "pajama2", "", "Demo", 58749, Common::EN_ANY, Common::kPlatformUnknown },
{ "3769b56c9a22f5521d74525ee459f88d", "puttrace", "HE 99", "Demo", 13108, Common::DE_DEU, Common::kPlatformWindows },
{ "37aed3f91c1ef959e0bd265f9b13781f", "pajama", "HE 100", "Updated", -1, Common::EN_USA, Common::kPlatformUnknown },
- { "37f56ceb13e401a7ac7d9e6b37fecaf7", "loom", "EGA", "EGA", 5748, Common::EN_ANY, Common::kPlatformPC },
+ { "37f56ceb13e401a7ac7d9e6b37fecaf7", "loom", "EGA", "EGA", 5748, Common::EN_ANY, Common::kPlatformDOS },
{ "37ff1b308999c4cca7319edfcc1280a0", "puttputt", "HE 70", "Demo", 8269, Common::EN_ANY, Common::kPlatformWindows },
- { "3824e60cdf639d22f6df92a03dc4b131", "fbear", "HE 62", "", 7732, Common::EN_ANY, Common::kPlatformPC },
- { "387a544b8b10b26912d8413bab63a853", "monkey2", "", "Demo", -1, Common::EN_ANY, Common::kPlatformPC },
+ { "3824e60cdf639d22f6df92a03dc4b131", "fbear", "HE 62", "", 7732, Common::EN_ANY, Common::kPlatformDOS },
+ { "387a544b8b10b26912d8413bab63a853", "monkey2", "", "Demo", -1, Common::EN_ANY, Common::kPlatformDOS },
{ "3938ee1aa4433fca9d9308c9891172b1", "indyzak", "FM-TOWNS", "Demo", 7520, Common::EN_ANY, Common::kPlatformFMTowns },
- { "399b217b0c8d65d0398076da486363a9", "indy3", "VGA", "VGA", 6295, Common::DE_DEU, Common::kPlatformPC },
+ { "399b217b0c8d65d0398076da486363a9", "indy3", "VGA", "VGA", 6295, Common::DE_DEU, Common::kPlatformDOS },
{ "39cb9dec16fa16f38d79acd80effb059", "loom", "EGA", "EGA", -1, Common::UNK_LANG, Common::kPlatformAmiga },
{ "39fd6db10d0222d817025c4d3346e3b4", "farm", "", "Demo", -1, Common::EN_ANY, Common::kPlatformMacintosh },
{ "3a03dab514e4038df192d8a8de469788", "atlantis", "Floppy", "Floppy", -1, Common::EN_ANY, Common::kPlatformAmiga },
@@ -173,32 +173,32 @@ static const MD5Table md5table[] = {
{ "3a5ec90d556d4920976c5578bfbfaf79", "maniac", "NES", "", -1, Common::DE_DEU, Common::kPlatformNES },
{ "3ae7f002d9256b8bdf76aaf8a3a069f8", "freddi", "HE 100", "", 34837, Common::EN_GRB, Common::kPlatformWii },
{ "3af61c5edf8e15b43dbafd285b2e9777", "puttcircus", "", "Demo", -1, Common::HE_ISR, Common::kPlatformWindows },
- { "3b301b7892f883ce42ab4be6a274fea6", "samnmax", "Floppy", "Floppy", -1, Common::EN_ANY, Common::kPlatformPC },
+ { "3b301b7892f883ce42ab4be6a274fea6", "samnmax", "Floppy", "Floppy", -1, Common::EN_ANY, Common::kPlatformDOS },
{ "3b832f4a90740bf22e9b8ed42ca0128c", "freddi4", "HE 99", "", -1, Common::EN_GRB, Common::kPlatformUnknown },
{ "3c4c471342bd95505a42334367d8f127", "puttmoon", "HE 70", "", 12161, Common::RU_RUS, Common::kPlatformWindows },
- { "3cce1913a3bc586b51a75c3892ff18dd", "indy3", "VGA", "VGA", -1, Common::RU_RUS, Common::kPlatformPC },
- { "3d219e7546039543307b55a91282bf18", "funpack", "", "", -1, Common::EN_ANY, Common::kPlatformPC },
+ { "3cce1913a3bc586b51a75c3892ff18dd", "indy3", "VGA", "VGA", -1, Common::RU_RUS, Common::kPlatformDOS },
+ { "3d219e7546039543307b55a91282bf18", "funpack", "", "", -1, Common::EN_ANY, Common::kPlatformDOS },
{ "3de99ef0523f8ca7958faa3afccd035a", "spyfox", "HE 100", "Updated", -1, Common::EN_USA, Common::kPlatformUnknown },
{ "3df6ead57930488bc61e6e41901d0e97", "fbear", "HE 62", "", -1, Common::EN_ANY, Common::kPlatformMacintosh },
{ "3e48298920fab9b7aec5a971e1bd1fab", "pajama3", "", "Demo", -1, Common::EN_GRB, Common::kPlatformWindows },
{ "3e861421f494711bc6f619d4aba60285", "airport", "", "", 93231, Common::RU_RUS, Common::kPlatformWindows },
- { "40564ec47da48a67787d1f9bd043902a", "maniac", "V2 Demo", "V2 Demo", 1988, Common::EN_ANY, Common::kPlatformPC },
+ { "40564ec47da48a67787d1f9bd043902a", "maniac", "V2 Demo", "V2 Demo", 1988, Common::EN_ANY, Common::kPlatformDOS },
{ "4167a92a1d46baa4f4127d918d561f88", "tentacle", "", "CD", 7932, Common::EN_ANY, Common::kPlatformUnknown },
{ "41958e24d03181ff9a381a66d048a581", "ft", "", "", -1, Common::PT_BRA, Common::kPlatformUnknown },
{ "425205754fa749f4f0b0dd9d09fa45fd", "football", "", "Demo", -1, Common::EN_ANY, Common::kPlatformUnknown },
{ "430bc518017b6fac046f58bab6baad5d", "monkey2", "FM-TOWNS", "", -1, Common::JA_JPN, Common::kPlatformFMTowns },
{ "439a7f4adf510489981ac52308e7d7a2", "maniac", "C64", "", -1, Common::DE_DEU, Common::kPlatformC64 },
{ "45082a5c9f42ba14dacfe1fdeeba819d", "freddicove", "HE 100", "Demo", 18422, Common::EN_ANY, Common::kPlatformUnknown },
- { "45152f7cf2ba8f43cf8a8ea2e740ae09", "monkey", "VGA", "VGA", 8357, Common::ES_ESP, Common::kPlatformPC },
+ { "45152f7cf2ba8f43cf8a8ea2e740ae09", "monkey", "VGA", "VGA", 8357, Common::ES_ESP, Common::kPlatformDOS },
{ "4521138d15d1fd7649c31fb981746231", "pajama2", "HE 98.5", "Demo", -1, Common::DE_DEU, Common::kPlatformUnknown },
{ "4522564b3c31aaf218b6a96826a549fd", "maze", "HE 99", "", -1, Common::EN_USA, Common::kPlatformWindows },
- { "46b53fd430adcfbed791b48a0d4b079f", "funpack", "", "", -1, Common::EN_ANY, Common::kPlatformPC },
- { "470c45b636139bb40716daa1c7edaad0", "loom", "EGA", "EGA", -1, Common::DE_DEU, Common::kPlatformPC },
- { "477dbafbd66a53c98416dc01aef019ad", "monkey", "EGA", "EGA", -1, Common::IT_ITA, Common::kPlatformPC },
+ { "46b53fd430adcfbed791b48a0d4b079f", "funpack", "", "", -1, Common::EN_ANY, Common::kPlatformDOS },
+ { "470c45b636139bb40716daa1c7edaad0", "loom", "EGA", "EGA", -1, Common::DE_DEU, Common::kPlatformDOS },
+ { "477dbafbd66a53c98416dc01aef019ad", "monkey", "EGA", "EGA", -1, Common::IT_ITA, Common::kPlatformDOS },
{ "47e041521d35c7a801bb1c010d84da9d", "freddi4", "HE 99", "Demo", -1, Common::IT_ITA, Common::kPlatformWindows },
- { "47e75b1bdcb44c78cb94883d1731ccf8", "fbear", "HE 62", "Demo", 6203, Common::EN_ANY, Common::kPlatformPC },
+ { "47e75b1bdcb44c78cb94883d1731ccf8", "fbear", "HE 62", "Demo", 6203, Common::EN_ANY, Common::kPlatformDOS },
{ "48b9f04b348bc5013327753f0d12a144", "loom", "EGA", "EGA", -1, Common::ES_ESP, Common::kPlatformAmiga },
- { "49210e124e4c2b30f1290a9ef6306301", "monkey", "EGA", "EGA", 8357, Common::EN_ANY, Common::kPlatformPC },
+ { "49210e124e4c2b30f1290a9ef6306301", "monkey", "EGA", "EGA", 8357, Common::EN_ANY, Common::kPlatformDOS },
{ "499c958affc394f2a3868f1eb568c3ee", "freddi4", "HE 99", "Demo", -1, Common::NL_NLD, Common::kPlatformUnknown },
{ "49a1739981a89066b1121fac04b710f4", "spyfox2", "HE CUP", "Preview", 5756234, Common::UNK_LANG, Common::kPlatformUnknown },
{ "4aa93cb30e485b728504ba3a693f12bf", "pajama", "HE 100", "", -1, Common::RU_RUS, Common::kPlatformWindows },
@@ -211,7 +211,7 @@ static const MD5Table md5table[] = {
{ "4c4820518e16e1a0e3616a3b021a04f3", "catalog", "HE CUP", "Preview", 10927456, Common::DE_DEU, Common::kPlatformUnknown },
{ "4cb9c3618f71668f8e4346c8f323fa82", "monkey2", "", "", 10700, Common::EN_ANY, Common::kPlatformMacintosh },
{ "4ce2d5b355964bbcb5e5ce73236ef868", "freddicove", "HE 100", "", -1, Common::RU_RUS, Common::kPlatformWindows },
- { "4cfd3fda4a4e6e64a1fc488eba973b7a", "fbpack", "", "", -1, Common::EN_ANY, Common::kPlatformPC },
+ { "4cfd3fda4a4e6e64a1fc488eba973b7a", "fbpack", "", "", -1, Common::EN_ANY, Common::kPlatformDOS },
{ "4d34042713958b971cb139fba4658586", "atlantis", "FM-TOWNS", "", -1, Common::JA_JPN, Common::kPlatformFMTowns },
{ "4d3fbc888de4e6565013f61dc83da6b6", "FreddisFunShop", "HE 99", "", 36245, Common::NL_NLD, Common::kPlatformUnknown },
{ "4dbff3787aedcd96b0b325f2d92d7ad9", "maze", "HE 100", "Updated", -1, Common::EN_USA, Common::kPlatformUnknown },
@@ -221,7 +221,7 @@ static const MD5Table md5table[] = {
{ "4edbf9d03550f7ba01e7f34d69b678dd", "spyfox", "HE 98.5", "Demo", -1, Common::NL_NLD, Common::kPlatformUnknown },
{ "4f04b321a95d4315ce6d65f8e1dd0368", "maze", "HE 80", "", -1, Common::EN_USA, Common::kPlatformUnknown },
{ "4f138ac6f9b2ac5a41bc68b2c3296064", "freddi4", "HE 99", "", -1, Common::FR_FRA, Common::kPlatformWindows },
- { "4f1d6f8b38343dba405472538b5037ed", "fbear", "HE 62", "", 7717, Common::EN_ANY, Common::kPlatformPC },
+ { "4f1d6f8b38343dba405472538b5037ed", "fbear", "HE 62", "", 7717, Common::EN_ANY, Common::kPlatformDOS },
{ "4f267a901719623de7dde83e47d5b474", "atlantis", "Floppy", "Floppy", -1, Common::DE_DEU, Common::kPlatformAmiga },
{ "4f580a021eee026f3b4589e17d130d78", "freddi4", "", "", -1, Common::UNK_LANG, Common::kPlatformUnknown },
{ "4fa6870d9bc8c313b65d54b1da5a1891", "pajama", "", "", -1, Common::NL_NLD, Common::kPlatformUnknown },
@@ -230,11 +230,11 @@ static const MD5Table md5table[] = {
{ "5057fb0e99e5aa29df1836329232f101", "freddi2", "HE 80", "", -1, Common::UNK_LANG, Common::kPlatformWindows },
{ "507bb360688dc4180fdf0d7597352a69", "freddi", "HE 73", "", 26402, Common::SE_SWE, Common::kPlatformWindows },
{ "50b831f11b8c4b83784cf81f4dcc69ea", "spyfox", "HE 101", "", -1, Common::EN_ANY, Common::kPlatformWii },
- { "50fcdc982a25063b78ad46bf389b8e8d", "tentacle", "Floppy", "Floppy", -1, Common::IT_ITA, Common::kPlatformPC },
+ { "50fcdc982a25063b78ad46bf389b8e8d", "tentacle", "Floppy", "Floppy", -1, Common::IT_ITA, Common::kPlatformDOS },
{ "51305e929e330e24a75a0351c8f9975e", "freddi2", "HE 99", "Updated", -1, Common::EN_USA, Common::kPlatformUnknown },
{ "513f91a9dbe8d5490b39e56a3ac5bbdf", "pajama2", "HE 98.5", "", -1, Common::NL_NLD, Common::kPlatformUnknown },
{ "5262a27afcaee04e5c4900220bd463e7", "PuttsFunShop", "", "", -1, Common::EN_USA, Common::kPlatformUnknown },
- { "52a4bae0746a11d7b1e8554e91a6645c", "zak", "V2", "V2", -1, Common::FR_FRA, Common::kPlatformPC },
+ { "52a4bae0746a11d7b1e8554e91a6645c", "zak", "V2", "V2", -1, Common::FR_FRA, Common::kPlatformDOS },
{ "53e94115b55dd51d4b8ff0871aa1df1e", "spyfox", "", "Demo", 20103, Common::EN_ANY, Common::kPlatformUnknown },
{ "54a936ad06161ff7bfefcb96200f7bff", "monkey", "VGA", "VGA Demo", 7617, Common::EN_ANY, Common::kPlatformAmiga },
{ "55518cd73cf9c6d23ea29c51ee06bdfe", "ft", "", "", -1, Common::IT_ITA, Common::kPlatformUnknown },
@@ -246,53 +246,53 @@ static const MD5Table md5table[] = {
{ "5798972220cd458be2626d54c80f71d7", "atlantis", "Floppy", "Floppy", -1, Common::IT_ITA, Common::kPlatformAmiga },
{ "57a17febe2183f521250e55d55b83e60", "PuttTime", "HE 99", "", -1, Common::FR_FRA, Common::kPlatformWindows },
{ "57a5cfec9ef231a007043cc1917e8988", "freddi", "HE 100", "", -1, Common::EN_ANY, Common::kPlatformWii },
- { "57b0d89af79befe1cabce3bece869e7f", "tentacle", "Floppy", "Floppy", -1, Common::DE_DEU, Common::kPlatformPC },
+ { "57b0d89af79befe1cabce3bece869e7f", "tentacle", "Floppy", "Floppy", -1, Common::DE_DEU, Common::kPlatformDOS },
{ "58436e634f4fae1d9973591c2ffa1fcb", "spyfox", "HE 99", "Updated", -1, Common::EN_ANY, Common::kPlatformUnknown },
{ "589601b676c98b1c0c987bc031ab68b3", "chase", "HE 95", "", -1, Common::EN_USA, Common::kPlatformUnknown },
{ "58fdf4c7ad13540a734e18f8584cad89", "puttzoo", "", "", -1, Common::EN_ANY, Common::kPlatformMacintosh },
{ "590e6546aacd0d374b7f3a4f53013ab1", "freddicove", "", "", -1, Common::UNK_LANG, Common::kPlatformUnknown },
{ "59d5cfcc5e672a6e07baae01328b918b", "PuttTime", "HE 90", "Demo", -1, Common::FR_FRA, Common::kPlatformUnknown },
- { "5a35e36fd777e9c37a49c5b2faca52f9", "loom", "EGA", "EGA Demo", 6108, Common::EN_ANY, Common::kPlatformPC },
+ { "5a35e36fd777e9c37a49c5b2faca52f9", "loom", "EGA", "EGA Demo", 6108, Common::EN_ANY, Common::kPlatformDOS },
{ "5b08000a9c47b2887df6506ac767ca68", "fbear", "HE 62", "", -1, Common::EN_ANY, Common::kPlatform3DO },
{ "5bd335265a61caa3d78956ad9f88ba23", "football", "", "Demo", 23135, Common::EN_ANY, Common::kPlatformUnknown },
{ "5c21fc49aee8f46e58fef21579e614a1", "thinker1", "", "", -1, Common::EN_USA, Common::kPlatformUnknown },
{ "5c9cecbd2952ccec14c9ecebf5822a34", "puttzoo", "HE 100", "", -1, Common::EN_ANY, Common::kPlatformIOS },
- { "5d88b9d6a88e6f8e90cded9d01b7f082", "loom", "VGA", "VGA", 8307, Common::EN_ANY, Common::kPlatformPC },
+ { "5d88b9d6a88e6f8e90cded9d01b7f082", "loom", "VGA", "VGA", 8307, Common::EN_ANY, Common::kPlatformDOS },
{ "5dda73606533d66a4c3f4f9ea6e842af", "farm", "", "", 87061, Common::RU_RUS, Common::kPlatformWindows },
{ "5e8fb66971a60e523e5afbc4c129c0e8", "socks", "HE 85", "", -1, Common::EN_USA, Common::kPlatformUnknown },
{ "5ebb57234b2fe5c5dff641e00184ad81", "freddi", "HE 73", "", -1, Common::FR_FRA, Common::kPlatformWindows },
- { "5fbe557049892eb4b709d90916ec97ca", "indy3", "EGA", "EGA", 5361, Common::EN_ANY, Common::kPlatformPC },
+ { "5fbe557049892eb4b709d90916ec97ca", "indy3", "EGA", "EGA", 5361, Common::EN_ANY, Common::kPlatformDOS },
{ "5fdb2ac2483908b065c6e77988338a54", "freddi4", "HE 99", "Demo", -1, Common::NL_NLD, Common::kPlatformWindows },
{ "600abd3e9f47e63e670188b7e4e86ac7", "spyozon", "", "", 47128, Common::EN_USA, Common::kPlatformUnknown },
{ "6027e9ca9c35746d95dee2068cec17e5", "zak", "V2", "V2", -1, Common::DE_DEU, Common::kPlatformAmiga },
{ "60ba818dc3bede86d40357e3913f8505", "ft", "", "Version B", 19697, Common::EN_ANY, Common::kPlatformUnknown },
{ "613f64f78ea26c7353b2a5940eb61d6a", "zak", "V2", "V2", -1, Common::FR_FRA, Common::kPlatformAtariST },
{ "62050da376483d8edcbd98cd26b6cb57", "puttrace", "HE 99", "", -1, Common::RU_RUS, Common::kPlatformWindows },
- { "624cdb93654667c869d204a64af7e57f", "maniac", "V2", "V2", 1988, Common::EN_ANY, Common::kPlatformPC },
+ { "624cdb93654667c869d204a64af7e57f", "maniac", "V2", "V2", 1988, Common::EN_ANY, Common::kPlatformDOS },
{ "6269b8fbf51a353e5b501e4ad98cdc67", "arttime", "", "", -1, Common::EN_ANY, Common::kPlatformUnknown },
{ "6271130f440066830eca9056c1d7926f", "water", "HE 80", "", -1, Common::RU_RUS, Common::kPlatformWindows },
{ "62b8c16b6db226ba95aaa8be73f9885c", "indy3", "EGA", "EGA", -1, Common::ES_ESP, Common::kPlatformAmiga },
{ "632d2fddb8ba97723fa15334763ae857", "thinker1", "", "", 33270, Common::EN_ANY, Common::kPlatformWindows },
{ "63fdcdc95cdeea00060883aed38e5504", "PuttTime", "HE 85", "", -1, Common::EN_ANY, Common::kPlatformUnknown },
- { "6508fd55530e6915507e1cc37f7f045d", "indy3", "EGA", "EGA", -1, Common::EN_ANY, Common::kPlatformPC },
+ { "6508fd55530e6915507e1cc37f7f045d", "indy3", "EGA", "EGA", -1, Common::EN_ANY, Common::kPlatformDOS },
{ "65563295c3a06493351870f20a1630cf", "spyozon", "HE CUP", "Preview", 5235008, Common::UNK_LANG, Common::kPlatformUnknown },
{ "659942b9a6b519f123a13cca3c333a13", "jungle", "", "", -1, Common::EN_ANY, Common::kPlatformMacintosh },
{ "65fa23d6884e8ca23d5d2406d70de7e8", "puttzoo", "", "Demo", -1, Common::FR_FRA, Common::kPlatformWindows },
- { "66236cd1aec24e1d4aff4c4cc93b7e18", "indy3", "EGA", "EGA", -1, Common::FR_FRA, Common::kPlatformPC },
+ { "66236cd1aec24e1d4aff4c4cc93b7e18", "indy3", "EGA", "EGA", -1, Common::FR_FRA, Common::kPlatformDOS },
{ "663743c03ae0c007f3d665cf631c0e6b", "puttrace", "HE 99", "Demo", 13135, Common::DE_DEU, Common::kPlatformUnknown },
- { "66fd5ff9a810dfeb6d6bdada18221140", "monkey", "VGA", "VGA", -1, Common::IT_ITA, Common::kPlatformPC },
+ { "66fd5ff9a810dfeb6d6bdada18221140", "monkey", "VGA", "VGA", -1, Common::IT_ITA, Common::kPlatformDOS },
{ "672dec94b82f7f0877ebb5b5cf7f4bc1", "pajama", "", "", -1, Common::EN_USA, Common::kPlatformUnknown },
- { "675d71151e9b5a968c8ce46d9fbf4cbf", "zak", "V2", "V2", 1916, Common::EN_ANY, Common::kPlatformPC },
+ { "675d71151e9b5a968c8ce46d9fbf4cbf", "zak", "V2", "V2", 1916, Common::EN_ANY, Common::kPlatformDOS },
{ "679855cf61932f9bf995c8f3677380ed", "pajama3", "", "Demo", -1, Common::FR_FRA, Common::kPlatformWindows },
{ "68155a6bf082221525f431c2cbdac8ab", "SamsFunShop", "", "", -1, Common::EN_USA, Common::kPlatformUnknown },
{ "684732efb5799c0f78804c99d8de9aba", "puttputt", "HE 62", "", -1, Common::EN_ANY, Common::kPlatformMacintosh },
{ "68530d2e15f339fbbf3150b78b4d2ffb", "freddi", "HE 73", "", -1, Common::EN_ANY, Common::kPlatformMacintosh },
{ "688328c5bdc4c8ec4145688dfa077bf2", "freddi4", "HE 99", "Demo", -1, Common::DE_DEU, Common::kPlatformUnknown },
- { "6886e5d08cee329b1f2e743ae2e3ceed", "monkey2", "", "", 11135, Common::DE_DEU, Common::kPlatformPC },
+ { "6886e5d08cee329b1f2e743ae2e3ceed", "monkey2", "", "", 11135, Common::DE_DEU, Common::kPlatformDOS },
{ "695fe0b3963333b7e15b37514db3c745", "thinkerk", "", "Demo", 29789, Common::EN_USA, Common::kPlatformUnknown },
- { "697c9b7c55a05d8199c48b48e379d2c8", "puttmoon", "", "", -1, Common::HE_ISR, Common::kPlatformPC },
- { "69d70269fafc4445adbb0d223e4f9a3f", "indy3", "EGA", "EGA", 5361, Common::EN_ANY, Common::kPlatformPC },
- { "69ea626f1f87eecb78ea0d6c6b983a1d", "monkey2", "", "", -1, Common::IT_ITA, Common::kPlatformPC },
+ { "697c9b7c55a05d8199c48b48e379d2c8", "puttmoon", "", "", -1, Common::HE_ISR, Common::kPlatformDOS },
+ { "69d70269fafc4445adbb0d223e4f9a3f", "indy3", "EGA", "EGA", 5361, Common::EN_ANY, Common::kPlatformDOS },
+ { "69ea626f1f87eecb78ea0d6c6b983a1d", "monkey2", "", "", -1, Common::IT_ITA, Common::kPlatformDOS },
{ "69ffe29185b8d71f09f6199f8b2a87cb", "lost", "HE 100", "", -1, Common::RU_RUS, Common::kPlatformWindows },
{ "6a30a07f353a75cdc602db27d73e1b42", "puttputt", "HE 70", "", -1, Common::EN_ANY, Common::kPlatformWindows },
{ "6a60d395b78b205c93a956100b1bf5ae", "pajama2", "HE 98.5", "", -1, Common::DE_DEU, Common::kPlatformUnknown },
@@ -300,7 +300,7 @@ static const MD5Table md5table[] = {
{ "6b19d0e25cbf720d05822379b8b90ed9", "PuttTime", "HE 90", "Demo", -1, Common::NL_NLD, Common::kPlatformUnknown },
{ "6b257bb2827dd894b8109a50a1a18b5a", "freddicove", "HE 100", "Demo", -1, Common::NL_NLD, Common::kPlatformUnknown },
{ "6b27dbcd8d5697d5c918eeca0f68ef6a", "puttrace", "HE CUP", "Preview", 3901484, Common::UNK_LANG, Common::kPlatformUnknown },
- { "6b3ec67da214f558dc5ceaa2acd47453", "indy3", "EGA", "EGA", -1, Common::EN_ANY, Common::kPlatformPC },
+ { "6b3ec67da214f558dc5ceaa2acd47453", "indy3", "EGA", "EGA", -1, Common::EN_ANY, Common::kPlatformDOS },
{ "6b5a3fef241e90d4b2e77f1e222773ee", "maniac", "NES", "", -1, Common::SE_SWE, Common::kPlatformNES },
{ "6bca7a1a96d16e52b8f3c42b50dbdca3", "fbear", "HE 62", "", -1, Common::JA_JPN, Common::kPlatform3DO },
{ "6bf70eee5de3d24d2403e0dd3d267e8a", "spyfox", "", "", 49221, Common::UNK_LANG, Common::kPlatformWindows },
@@ -311,36 +311,36 @@ static const MD5Table md5table[] = {
{ "6e959d65358eedf9b68b81e304b97fa4", "tentacle", "", "CD", 7932, Common::DE_DEU, Common::kPlatformUnknown },
{ "6ea966b4d660c870b9ee790d1fbfc535", "monkey2", "", "", -1, Common::ES_ESP, Common::kPlatformAmiga },
{ "6f0be328c64d689bb606d22a389e1b0f", "loom", "No AdLib", "EGA", 5748, Common::EN_ANY, Common::kPlatformMacintosh },
- { "6f6ef668c608c7f534fea6e6d3878dde", "indy3", "EGA", "EGA", -1, Common::DE_DEU, Common::kPlatformPC },
- { "6f8a22bfa397be1f7ed4b74aba0e397e", "loom", "EGA", "EGA", -1, Common::FR_FRA, Common::kPlatformPC },
+ { "6f6ef668c608c7f534fea6e6d3878dde", "indy3", "EGA", "EGA", -1, Common::DE_DEU, Common::kPlatformDOS },
+ { "6f8a22bfa397be1f7ed4b74aba0e397e", "loom", "EGA", "EGA", -1, Common::FR_FRA, Common::kPlatformDOS },
{ "701246819d1a70573f41bf33fc19214f", "soccer", "", "", -1, Common::EN_ANY, Common::kPlatformUnknown },
{ "7015b059ab72cff3a0ef9fb4d5e9889d", "spyozon", "", "", -1, Common::DE_DEU, Common::kPlatformWindows },
- { "7020931d5a2be0a49d68e7a1882363e4", "zak", "V1", "V1", 1896, Common::EN_ANY, Common::kPlatformPC },
+ { "7020931d5a2be0a49d68e7a1882363e4", "zak", "V1", "V1", 1896, Common::EN_ANY, Common::kPlatformDOS },
{ "70b0719ac3a5b47ae233c561823d5b96", "puttzoo", "", "", -1, Common::NL_NLD, Common::kPlatformMacintosh },
- { "71523b539491527d9860f4407faf0411", "monkey", "Demo", "EGA Demo", 7607, Common::EN_ANY, Common::kPlatformPC },
+ { "71523b539491527d9860f4407faf0411", "monkey", "Demo", "EGA Demo", 7607, Common::EN_ANY, Common::kPlatformDOS },
{ "71d384e7676c53d513ddd333eae1d82c", "Blues123time", "", "", -1, Common::EN_ANY, Common::kPlatformUnknown },
{ "71fe97c3108678cf604f14abe342341b", "spyfox2", "", "", -1, Common::NL_NLD, Common::kPlatformWindows },
{ "7222f260253f325c21fcfa68b5bfab67", "spyfox2", "", "Demo", -1, Common::EN_USA, Common::kPlatformUnknown },
{ "72ac6bc980d5101c2142189d746bd62f", "spyfox", "HE 99", "", -1, Common::RU_RUS, Common::kPlatformWindows },
{ "732845548b1d6c2da572cb6a1bf81b07", "spyfox2", "", "Demo", -1, Common::DE_DEU, Common::kPlatformUnknown },
{ "73b8197e236da4bf49adc99fe8f5fa1b", "spyfox", "", "Demo", -1, Common::DE_DEU, Common::kPlatformUnknown },
- { "73e5ab7dbb9a8061cc6d25df02dbd1e7", "loom", "EGA", "EGA", -1, Common::EN_ANY, Common::kPlatformPC },
+ { "73e5ab7dbb9a8061cc6d25df02dbd1e7", "loom", "EGA", "EGA", -1, Common::EN_ANY, Common::kPlatformDOS },
{ "7410a8ba9795020cd42f171c4320659e", "pajama3", "", "", -1, Common::FR_FRA, Common::kPlatformWindows },
{ "746e88c172a5b7a1ae89ac0ee3ee681a", "freddi", "HE 90", "Updated", -1, Common::RU_RUS, Common::kPlatformWindows },
{ "74da3494fbe1a7d20213b0afe0954755", "catalog", "HE CUP", "Preview", 10841544, Common::FR_FRA, Common::kPlatformUnknown },
{ "754feb59d3bf86b8a00840df74fd7b26", "freddi3", "", "Demo", -1, Common::NL_NLD, Common::kPlatformUnknown },
- { "75ba23fff4fd63fa446c02864f2a5a4b", "zak", "V2", "V2", -1, Common::IT_ITA, Common::kPlatformPC },
+ { "75ba23fff4fd63fa446c02864f2a5a4b", "zak", "V2", "V2", -1, Common::IT_ITA, Common::kPlatformDOS },
{ "75bff95816b84672b877d22a911ab811", "freddi3", "HE 99", "Updated", -1, Common::RU_RUS, Common::kPlatformWindows },
{ "76b66b43e593ad4d2f1dfb5cc8f19700", "spyfox", "HE 99", "", -1, Common::NL_NLD, Common::kPlatformWindows },
- { "771bc18ec6f93837b839c992b211904b", "monkey", "Demo", "EGA Demo", -1, Common::DE_DEU, Common::kPlatformPC },
- { "7766c9487f9d53a8cb0edabda5119c3d", "puttputt", "HE 60", "", 8022, Common::EN_ANY, Common::kPlatformPC },
+ { "771bc18ec6f93837b839c992b211904b", "monkey", "Demo", "EGA Demo", -1, Common::DE_DEU, Common::kPlatformDOS },
+ { "7766c9487f9d53a8cb0edabda5119c3d", "puttputt", "HE 60", "", 8022, Common::EN_ANY, Common::kPlatformDOS },
{ "77f5c9cc0986eb729c1a6b4c8823bbae", "zakloom", "FM-TOWNS", "Demo", 7520, Common::EN_ANY, Common::kPlatformFMTowns },
- { "780e4a0ae2ff17dc296f4a79543b44f8", "puttmoon", "", "", -1, Common::UNK_LANG, Common::kPlatformPC },
+ { "780e4a0ae2ff17dc296f4a79543b44f8", "puttmoon", "", "", -1, Common::UNK_LANG, Common::kPlatformDOS },
{ "782393c5934ecd0b536eaf5fd541bd26", "pajama", "HE 101", "Updated", -1, Common::EN_ANY, Common::kPlatformWindows },
{ "784b499c98d07260a30952685758636b", "pajama3", "", "Demo", 13911, Common::DE_DEU, Common::kPlatformWindows },
{ "78bd5f036ea35a878b74e4f47941f784", "freddi4", "HE 99", "", -1, Common::RU_RUS, Common::kPlatformWindows },
{ "78c07ca088526d8d4446a4c2cb501203", "freddi3", "HE 99", "", -1, Common::FR_FRA, Common::kPlatformUnknown },
- { "7974365d3dc0f43a2748c975f91ff042", "monkey2", "", "", -1, Common::ES_ESP, Common::kPlatformPC },
+ { "7974365d3dc0f43a2748c975f91ff042", "monkey2", "", "", -1, Common::ES_ESP, Common::kPlatformDOS },
{ "79b05f628586837e7166e82b2279bb50", "loom", "PC-Engine", "", -1, Common::JA_JPN, Common::kPlatformPCEngine },
{ "7bad72e332a59f9fcc1d437f4edad32a", "puttcircus", "", "", -1, Common::RU_RUS, Common::kPlatformUnknown },
{ "7c2e76087027eeee9c8f8985f93a1cc5", "freddi4", "", "Demo", 13584, Common::EN_ANY, Common::kPlatformUnknown },
@@ -350,7 +350,7 @@ static const MD5Table md5table[] = {
{ "7e151c17adf624f1966c8fc5827c95e9", "puttputt", "HE 61", "", -1, Common::EN_ANY, Common::kPlatform3DO },
{ "7ea2da67ebabea4ac20cee9f4f9d2934", "airport", "", "Demo", -1, Common::EN_ANY, Common::kPlatformMacintosh },
{ "7edd665bbede7ea8b7233f8e650be6f8", "samnmax", "", "CD", -1, Common::FR_FRA, Common::kPlatformUnknown },
- { "7f45ddd6dbfbf8f80c0c0efea4c295bc", "maniac", "V1", "V1", 1972, Common::EN_ANY, Common::kPlatformPC },
+ { "7f45ddd6dbfbf8f80c0c0efea4c295bc", "maniac", "V1", "V1", 1972, Common::EN_ANY, Common::kPlatformDOS },
{ "7f945525abcd48015adf1632637a44a1", "pajama", "", "Demo", -1, Common::FR_FRA, Common::kPlatformUnknown },
{ "7fc6cdb46b4c9d384c52327f4bca6416", "football", "", "", -1, Common::EN_ANY, Common::kPlatformUnknown },
{ "810a9da887aefa597b0cf3c77d262897", "BluesABCTime", "", "Demo", -1, Common::EN_ANY, Common::kPlatformUnknown },
@@ -363,18 +363,18 @@ static const MD5Table md5table[] = {
{ "84e3c23a49ded8a6f9197735c8eb3de7", "PuttTime", "HE 85", "", -1, Common::DE_DEU, Common::kPlatformWindows },
{ "8539c0ff89868e55a08e652ac44daaae", "water", "HE 98.5", "", -1, Common::NL_NLD, Common::kPlatformUnknown },
{ "861e59ed72a1cd0e6d454f7ee7e2bf3d", "comi", "", "", -1, Common::RU_RUS, Common::kPlatformWindows },
- { "86be8ada36371d4fdc35659d0e912a26", "indy3", "EGA", "EGA", -1, Common::ES_ESP, Common::kPlatformPC },
+ { "86be8ada36371d4fdc35659d0e912a26", "indy3", "EGA", "EGA", -1, Common::ES_ESP, Common::kPlatformDOS },
{ "86c9902b7bec1a17926d4dae85beaa45", "airport", "HE 71", "Demo", -1, Common::EN_ANY, Common::kPlatformWindows },
{ "870d1e3c86bc50846d808d14a36b4e08", "monkey", "VGA", "VGA", -1, Common::ES_ESP, Common::kPlatformAmiga },
{ "8776caed014c321272af407c1502a2df", "monkey", "CD", "", 8955, Common::EN_ANY, Common::kPlatformMacintosh },
{ "87df3e0074624040407764b7c5e710b9", "pajama", "", "Demo", 18354, Common::NL_NLD, Common::kPlatformWindows },
- { "87f6e8037b7cc996e13474b491a7a98e", "maniac", "V2", "V2", -1, Common::IT_ITA, Common::kPlatformPC },
+ { "87f6e8037b7cc996e13474b491a7a98e", "maniac", "V2", "V2", -1, Common::IT_ITA, Common::kPlatformDOS },
{ "8801fb4a1200b347f7a38523339526dd", "jungle", "", "", -1, Common::EN_ANY, Common::kPlatformWindows },
{ "880c5ca5b944648b3f8b03feb41705a8", "freddi", "HE 100", "", 34837, Common::SE_SWE, Common::kPlatformWii },
{ "883af4b0af4f77a92f1dcf1d0a283140", "tentacle", "", "CD", -1, Common::ES_ESP, Common::kPlatformUnknown },
{ "898ce8eb1234a955ef75e87141902bb3", "freddi3", "", "", -1, Common::RU_RUS, Common::kPlatformWindows },
{ "898eaa21f79cf8d4f08db856244689ff", "pajama", "HE 99", "Updated", 66505, Common::EN_ANY, Common::kPlatformWindows },
- { "89cfc425566003ff74b7dc7b3e6fd469", "indy3", "EGA", "EGA", -1, Common::FR_FRA, Common::kPlatformPC },
+ { "89cfc425566003ff74b7dc7b3e6fd469", "indy3", "EGA", "EGA", -1, Common::FR_FRA, Common::kPlatformDOS },
{ "8a484262363a8e18be87112454f1456b", "pjgames", "", "", -1, Common::EN_USA, Common::kPlatformUnknown },
{ "8aa05d3cdb0e795436043f0546af2da2", "tentacle", "", "CD?", -1, Common::FR_FRA, Common::kPlatformUnknown },
{ "8aed489aba45d2b9fb8a04079c9c6e6a", "baseball", "HE CUP", "Preview", 12876596, Common::UNK_LANG, Common::kPlatformUnknown },
@@ -383,41 +383,41 @@ static const MD5Table md5table[] = {
{ "8d479e36f35e80257dfc102cf4b8a912", "farm", "HE 72", "Demo", 34333, Common::EN_ANY, Common::kPlatformWindows },
{ "8de13897f0121c79d29a2377159f9ad0", "socks", "HE 99", "Updated", -1, Common::EN_ANY, Common::kPlatformWindows },
{ "8e3241ddd6c8dadf64305e8740d45e13", "balloon", "HE 100", "Updated", -1, Common::EN_ANY, Common::kPlatformUnknown },
- { "8e4ee4db46954bfe2912e259a16fad82", "monkey2", "", "", -1, Common::FR_FRA, Common::kPlatformPC },
+ { "8e4ee4db46954bfe2912e259a16fad82", "monkey2", "", "", -1, Common::FR_FRA, Common::kPlatformDOS },
{ "8e9417564f33790815445b2136efa667", "atlantis", "", "CD", 11915, Common::JA_JPN, Common::kPlatformMacintosh },
{ "8e9830a6f2702be5b22c8fa0a6aaf977", "freddi2", "HE 80", "", -1, Common::NL_NLD, Common::kPlatformMacintosh },
{ "8eb84cee9b429314c7f0bdcf560723eb", "monkey", "FM-TOWNS", "", 9925, Common::EN_ANY, Common::kPlatformFMTowns },
{ "8ee63cafb1fe9d62aa0d5a23117e70e7", "freddi2", "HE 100", "Updated", -1, Common::EN_USA, Common::kPlatformUnknown },
- { "8f3758ff98c9c5d78e5d635222cad026", "atlantis", "Floppy", "Floppy", -1, Common::IT_ITA, Common::kPlatformPC },
+ { "8f3758ff98c9c5d78e5d635222cad026", "atlantis", "Floppy", "Floppy", -1, Common::IT_ITA, Common::kPlatformDOS },
{ "8fec68383202d38c0d25e9e3b757c5df", "comi", "Demo", "Demo", 18041, Common::UNK_LANG, Common::kPlatformWindows },
{ "8ffd618a776a4c0d8922bb28b09f8ce8", "airport", "", "Demo", -1, Common::EN_ANY, Common::kPlatformWindows },
- { "90a329d8ad5b7ce0690429e98cfbb32f", "funpack", "", "", -1, Common::HE_ISR, Common::kPlatformPC },
+ { "90a329d8ad5b7ce0690429e98cfbb32f", "funpack", "", "", -1, Common::HE_ISR, Common::kPlatformDOS },
{ "90c755e1c9b9b8a4129d37b2259d0655", "chase", "HE 100", "Updated", -1, Common::EN_USA, Common::kPlatformUnknown },
{ "90e2f0af4f779629695c6394a65bb702", "spyfox2", "", "", -1, Common::FR_FRA, Common::kPlatformUnknown },
- { "910e31cffb28226bd68c569668a0d6b4", "monkey", "EGA", "EGA", -1, Common::ES_ESP, Common::kPlatformPC },
+ { "910e31cffb28226bd68c569668a0d6b4", "monkey", "EGA", "EGA", -1, Common::ES_ESP, Common::kPlatformDOS },
{ "91469353f7be1b122fa88d23480a1320", "zak", "V2", "V2", -1, Common::FR_FRA, Common::kPlatformAmiga },
{ "91d5db93187fab54d823f73bd6441cb6", "maniac", "NES", "", -1, Common::EN_USA, Common::kPlatformNES },
{ "927a764615c7fcdd72f591355e089d8c", "monkey", "No AdLib", "EGA", -1, Common::DE_DEU, Common::kPlatformAtariST },
- { "92b078d9d6d9d751da9c26b8b3075779", "tentacle", "Floppy", "Floppy", -1, Common::FR_FRA, Common::kPlatformPC },
+ { "92b078d9d6d9d751da9c26b8b3075779", "tentacle", "Floppy", "Floppy", -1, Common::FR_FRA, Common::kPlatformDOS },
{ "92e7727e67f5cd979d8a1070e4eb8cb3", "puttzoo", "HE 98.5", "Updated", -1, Common::EN_ANY, Common::kPlatformUnknown },
{ "92fc0073a4cf259ff36070ecb8628ba8", "thinkerk", "", "", -1, Common::EN_USA, Common::kPlatformUnknown },
- { "94aaedbb8f26d71ed3ad6dd34490e29e", "tentacle", "Floppy", "Floppy", -1, Common::FR_FRA, Common::kPlatformPC },
+ { "94aaedbb8f26d71ed3ad6dd34490e29e", "tentacle", "Floppy", "Floppy", -1, Common::FR_FRA, Common::kPlatformDOS },
{ "94db6519da85b8d08c976d8e9a858ea7", "baseball", "HE CUP", "Preview", 10044774, Common::UNK_LANG, Common::kPlatformUnknown },
{ "95818b178d473c989ac753574e8892aa", "readtime", "", "Demo", -1, Common::EN_ANY, Common::kPlatformUnknown },
{ "95b3806e043be08668c54c3ffe98650f", "BluesABCTime", "", "", -1, Common::EN_ANY, Common::kPlatformUnknown },
{ "95be99181bd0f10fef4872c2d4a771cb", "zak", "V1", "", -1, Common::DE_DEU, Common::kPlatformC64 },
{ "96a3069a3c63caa7329588ce1fef41ee", "spyozon", "", "", -1, Common::RU_RUS, Common::kPlatformUnknown },
- { "9708cf716ed8bcc9ff3fcfc69413b746", "puttputt", "HE 62", "", -1, Common::EN_ANY, Common::kPlatformPC },
+ { "9708cf716ed8bcc9ff3fcfc69413b746", "puttputt", "HE 62", "", -1, Common::EN_ANY, Common::kPlatformDOS },
{ "9778341eefc6feb447ca07e7be21791c", "puttrace", "HE 99", "Demo", -1, Common::IT_ITA, Common::kPlatformWindows },
{ "9781422e4288dbc090720e4563168ba7", "puttzoo", "", "", -1, Common::FR_FRA, Common::kPlatformWindows },
{ "981e1e1891f2be7e25a01f50ae55a5af", "puttrace", "HE 98", "", -1, Common::EN_USA, Common::kPlatformUnknown },
- { "98744fe66ff730e8c2b3b1f58803ab0b", "atlantis", "Floppy", "Demo", -1, Common::EN_ANY, Common::kPlatformPC },
+ { "98744fe66ff730e8c2b3b1f58803ab0b", "atlantis", "Floppy", "Demo", -1, Common::EN_ANY, Common::kPlatformDOS },
{ "99128b6a5bdd9831d9682fb8b5cbf8d4", "BluesBirthday", "Yellow", "Yellow", -1, Common::EN_ANY, Common::kPlatformUnknown },
- { "99a3699f80b8f776efae592b44b9b991", "maniac", "V2", "V2", -1, Common::FR_FRA, Common::kPlatformPC },
- { "99b6f822b0b2612415407865438697d6", "atlantis", "", "Demo", -1, Common::EN_ANY, Common::kPlatformPC },
+ { "99a3699f80b8f776efae592b44b9b991", "maniac", "V2", "V2", -1, Common::FR_FRA, Common::kPlatformDOS },
+ { "99b6f822b0b2612415407865438697d6", "atlantis", "", "Demo", -1, Common::EN_ANY, Common::kPlatformDOS },
{ "9b7452b5cd6d3ffb2b2f5118010af84f", "ft", "Demo", "Demo", 116463537, Common::EN_ANY, Common::kPlatformMacintosh },
{ "9bc548e179cdb0767009401c094d0895", "maniac", "V2", "V2", -1, Common::DE_DEU, Common::kPlatformAmiga },
- { "9bd2a8f72613e715c199246dd511e10f", "atlantis", "Floppy", "Floppy", -1, Common::ES_ESP, Common::kPlatformPC },
+ { "9bd2a8f72613e715c199246dd511e10f", "atlantis", "Floppy", "Floppy", -1, Common::ES_ESP, Common::kPlatformDOS },
{ "9bda5fee51d2fda5253d02c642016bf4", "spyfox", "HE 98.5", "", -1, Common::NL_NLD, Common::kPlatformUnknown },
{ "9c0ee9c252785e9fca0143e42ac4b256", "freddi2", "HE 99", "Updated", -1, Common::DE_DEU, Common::kPlatformWindows },
{ "9c0fee288ad564a7d25ec3e841810d79", "indy3", "EGA", "EGA", -1, Common::EN_ANY, Common::kPlatformAmiga },
@@ -429,8 +429,8 @@ static const MD5Table md5table[] = {
{ "9dc02577bf50d4cfaf3de3fbac06fbe2", "puttmoon", "", "", -1, Common::EN_ANY, Common::kPlatformMacintosh },
{ "9e5e0fb43bd22f4628719b7501adb717", "monkey", "No AdLib", "EGA", -1, Common::FR_FRA, Common::kPlatformAtariST },
{ "9fd66fb3b04703bd50da4356e4202558", "spyfox2", "", "", 51295, Common::EN_ANY, Common::kPlatformMacintosh },
- { "a00554c31d623fdb9fcb0f924b89b42b", "loom", "EGA", "EGA Demo", -1, Common::EN_ANY, Common::kPlatformPC },
- { "a01fab4a64d47b96e2e58e6b0f825cc7", "monkey", "VGA", "VGA", 8347, Common::FR_FRA, Common::kPlatformPC },
+ { "a00554c31d623fdb9fcb0f924b89b42b", "loom", "EGA", "EGA Demo", -1, Common::EN_ANY, Common::kPlatformDOS },
+ { "a01fab4a64d47b96e2e58e6b0f825cc7", "monkey", "VGA", "VGA", 8347, Common::FR_FRA, Common::kPlatformDOS },
{ "a095616d2d23ccf43b8e257711202cba", "football2002", "", "", -1, Common::EN_ANY, Common::kPlatformUnknown },
{ "a095e33061606d231ff37dca4c64c8ac", "pajama", "HE 99", "", -1, Common::DE_DEU, Common::kPlatformUnknown },
{ "a0a7dea72003933b8b3f8b99b9f7ddeb", "loom", "No AdLib", "EGA", -1, Common::EN_ANY, Common::kPlatformAtariST },
@@ -440,7 +440,7 @@ static const MD5Table md5table[] = {
{ "a2386da005672cbd5136f4f27a626c5f", "farm", "", "", 87061, Common::NL_NLD, Common::kPlatformWindows },
{ "a28135a7ade38cc0208b04507c46efd1", "spyfox", "HE 99", "", -1, Common::DE_DEU, Common::kPlatformUnknown },
{ "a2bb6aa0537402c1b3c2ea899ccef64b", "lost", "HE 99", "Demo", 15540, Common::EN_ANY, Common::kPlatformWindows },
- { "a3036878840720fbefa41e6965fa4a0a", "samnmax", "Floppy", "Floppy", -1, Common::EN_ANY, Common::kPlatformPC },
+ { "a3036878840720fbefa41e6965fa4a0a", "samnmax", "Floppy", "Floppy", -1, Common::EN_ANY, Common::kPlatformDOS },
{ "a336134914eaab4892d35625aa15ad1d", "freddi4", "HE 99", "", -1, Common::RU_RUS, Common::kPlatformWindows },
{ "a525c1753c1db5011c00417da37887ef", "PuttTime", "HE 100", "Updated", -1, Common::EN_USA, Common::kPlatformUnknown },
{ "a561d2e2413cc1c71d5a1bf87bf493ea", "lost", "HE 100", "Updated", -1, Common::EN_USA, Common::kPlatformUnknown },
@@ -456,38 +456,38 @@ static const MD5Table md5table[] = {
{ "a9543ef0d79bcb47cd76ec197ad0a967", "puttmoon", "", "", -1, Common::EN_ANY, Common::kPlatform3DO },
{ "a99c39ba65b6086be28aef576da69595", "spyozon", "", "Demo", -1, Common::FR_FRA, Common::kPlatformWindows },
{ "a9f2f04b1ecaab9495b59befffe9bf88", "pajama3", "", "Demo", -1, Common::EN_USA, Common::kPlatformUnknown },
- { "aa6a91b7f6f119d1b7b1f2a4c9e24d59", "puttmoon", "", "Demo", 6233, Common::EN_ANY, Common::kPlatformPC },
- { "aa7a07d94ae853f6460be4ce0a1bf530", "monkey", "EGA", "EGA", -1, Common::FR_FRA, Common::kPlatformPC },
+ { "aa6a91b7f6f119d1b7b1f2a4c9e24d59", "puttmoon", "", "Demo", 6233, Common::EN_ANY, Common::kPlatformDOS },
+ { "aa7a07d94ae853f6460be4ce0a1bf530", "monkey", "EGA", "EGA", -1, Common::FR_FRA, Common::kPlatformDOS },
{ "aa81aa6d5545ce172fdba81f2e2f9d36", "puttzoo", "", "Demo", -1, Common::NL_NLD, Common::kPlatformWindows },
- { "aa8a0cb65f3afbbe2c14c3f9f92775a3", "monkey", "CD", "CD", 8955, Common::FR_FRA, Common::kPlatformPC },
+ { "aa8a0cb65f3afbbe2c14c3f9f92775a3", "monkey", "CD", "CD", 8955, Common::FR_FRA, Common::kPlatformDOS },
{ "aaa587701cde7e74692c68c1024b85eb", "puttrace", "HE 99", "Demo", -1, Common::NL_NLD, Common::kPlatformUnknown },
{ "aaa7f36a253f277dd29dd1c051b0e4b9", "indy3", "No AdLib", "EGA", -1, Common::DE_DEU, Common::kPlatformAtariST },
{ "ab0693e9324cfcf498fdcbb12acf8bb4", "puttcircus", "", "", -1, Common::EN_ANY, Common::kPlatformUnknown },
- { "ac1642b6edfb8521ca03760126f1c250", "tentacle", "", "Demo", -1, Common::DE_DEU, Common::kPlatformPC },
+ { "ac1642b6edfb8521ca03760126f1c250", "tentacle", "", "Demo", -1, Common::DE_DEU, Common::kPlatformDOS },
{ "ac62d50e39492ee3738b4e83a5ac780f", "freddi2", "HE 80", "", -1, Common::NL_NLD, Common::kPlatformWindows },
{ "acad97ab1c6fc2a5b2d98abf6db4a190", "tentacle", "Floppy", "Floppy", -1, Common::EN_ANY, Common::kPlatformUnknown },
- { "ae94f110a14ce71fc515d5b648827a8f", "tentacle", "Floppy", "Floppy", -1, Common::ES_ESP, Common::kPlatformPC },
+ { "ae94f110a14ce71fc515d5b648827a8f", "tentacle", "Floppy", "Floppy", -1, Common::ES_ESP, Common::kPlatformDOS },
{ "aeec382acef62e122bf0d5b14581cfa4", "zak", "V1", "", -1, Common::IT_ITA, Common::kPlatformC64 },
{ "aefa244ea034b7cd2041f0a44be7d9ba", "pajama3", "", "", -1, Common::EN_ANY, Common::kPlatformMacintosh },
{ "af2bd1a43b50b55915d87994e093203d", "freddi", "HE 99", "Updated", 34829, Common::DE_DEU, Common::kPlatformWindows },
{ "b100abf7ff83146df50db78dbd5e9cfa", "freddicove", "HE 100", "", -1, Common::FR_FRA, Common::kPlatformUnknown },
- { "b23f7cd7c304d7dff08e92a96120d5b4", "zak", "V1", "V1", -1, Common::EN_ANY, Common::kPlatformPC },
- { "b250d0f9cc83f80ced56fe11a4fb057c", "maniac", "V2", "V2", 1988, Common::EN_ANY, Common::kPlatformPC },
- { "b289a2a8cbedbf45786e0b4ad2f510f1", "samnmax", "Floppy", "Floppy", -1, Common::IT_ITA, Common::kPlatformPC },
+ { "b23f7cd7c304d7dff08e92a96120d5b4", "zak", "V1", "V1", -1, Common::EN_ANY, Common::kPlatformDOS },
+ { "b250d0f9cc83f80ced56fe11a4fb057c", "maniac", "V2", "V2", 1988, Common::EN_ANY, Common::kPlatformDOS },
+ { "b289a2a8cbedbf45786e0b4ad2f510f1", "samnmax", "Floppy", "Floppy", -1, Common::IT_ITA, Common::kPlatformDOS },
{ "b47be81e39a9710f6f595f7b527b60f8", "puttrace", "HE 99", "", -1, Common::EN_GRB, Common::kPlatformWindows },
{ "b5298a5c15ffbe8b381d51ea4e26d35c", "freddi4", "HE 99", "", -1, Common::DE_DEU, Common::kPlatformUnknown },
- { "b597e0403cc0002f69170e6caba7edd9", "indy3", "EGA", "EGA Demo", 5361, Common::EN_ANY, Common::kPlatformPC },
+ { "b597e0403cc0002f69170e6caba7edd9", "indy3", "EGA", "EGA Demo", 5361, Common::EN_ANY, Common::kPlatformDOS },
{ "b628506f7def772e40de0aa5440fb8e1", "activity", "HE 70", "", -1, Common::EN_ANY, Common::kPlatformWindows },
{ "b7d37d6b786b5a22deea3b038eca96ca", "maniac", "NES", "", -1, Common::ES_ESP, Common::kPlatformNES },
- { "b886b0a5d909c7158a914e1d7c1c6c65", "loom", "EGA", "EGA", -1, Common::FR_FRA, Common::kPlatformPC },
+ { "b886b0a5d909c7158a914e1d7c1c6c65", "loom", "EGA", "EGA", -1, Common::FR_FRA, Common::kPlatformDOS },
{ "b8955d7d23b4972229060d1592489fef", "freddicove", "HE 100", "", -1, Common::NL_NLD, Common::kPlatformUnknown },
{ "b9ba19ce376efc69be78ef3baef8d2b9", "monkey", "CD", "", -1, Common::EN_ANY, Common::kPlatformMacintosh },
- { "b9bb68c5d2c9b6e2d9c513a29a754a57", "puttmoon", "", "", 7828, Common::EN_ANY, Common::kPlatformPC },
+ { "b9bb68c5d2c9b6e2d9c513a29a754a57", "puttmoon", "", "", 7828, Common::EN_ANY, Common::kPlatformDOS },
{ "ba888e6831517597859e91aa173f945c", "spyfox", "", "Demo", -1, Common::FR_FRA, Common::kPlatformUnknown },
{ "bab0fb81dcb12b8930c5d850b8f2a7de", "balloon", "HE 80", "", 12800, Common::DE_DEU, Common::kPlatformWindows },
{ "bbadf7309c4a2c2763e4bbba3c3be634", "freddi3", "", "Demo", -1, Common::FR_FRA, Common::kPlatformUnknown },
{ "bc4700bc0e12879f6d25d14d6be6cfdd", "spyfox2", "", "", -1, Common::DE_DEU, Common::kPlatformUnknown },
- { "bd126753de619a495f9f22adc951c8d5", "monkey2", "", "", -1, Common::IT_ITA, Common::kPlatformPC },
+ { "bd126753de619a495f9f22adc951c8d5", "monkey2", "", "", -1, Common::IT_ITA, Common::kPlatformDOS },
{ "bd5fd7835335dfce03064d5f77b7f0ae", "dog", "", "", 19681, Common::NL_NLD, Common::kPlatformWindows },
{ "be2abe172f58db170de3a037daa1dd27", "puttputt", "HE 61", "", -1, Common::JA_JPN, Common::kPlatform3DO },
{ "be39a5d4db60e8aa736b9086778cb45c", "spyozon", "", "", -1, Common::EN_GRB, Common::kPlatformWindows },
@@ -501,18 +501,18 @@ static const MD5Table md5table[] = {
{ "c24c490373aeb48fbd54caa8e7ae376d", "loom", "No AdLib", "EGA", -1, Common::DE_DEU, Common::kPlatformAtariST },
{ "c25755b08a8d0d47695e05f1e2111bfc", "freddi4", "", "Demo", -1, Common::EN_USA, Common::kPlatformUnknown },
{ "c30ef068add4277104243c31ce46c12b", "monkey2", "", "", -1, Common::FR_FRA, Common::kPlatformAmiga },
- { "c3196c5349e53e387aaff1533d95e53a", "samnmax", "Floppy", "Demo", -1, Common::EN_ANY, Common::kPlatformPC },
+ { "c3196c5349e53e387aaff1533d95e53a", "samnmax", "Floppy", "Demo", -1, Common::EN_ANY, Common::kPlatformDOS },
{ "c3b22fa4654bb580b20325ebf4174841", "puttzoo", "", "", -1, Common::NL_NLD, Common::kPlatformWindows },
- { "c3df37df9d3b481b45f75283a9907c47", "loom", "EGA", "EGA", -1, Common::IT_ITA, Common::kPlatformPC },
- { "c4787c3e8b5e2dfda90850ee800af00f", "zak", "V2", "V2", -1, Common::FR_FRA, Common::kPlatformPC },
+ { "c3df37df9d3b481b45f75283a9907c47", "loom", "EGA", "EGA", -1, Common::IT_ITA, Common::kPlatformDOS },
+ { "c4787c3e8b5e2dfda90850ee800af00f", "zak", "V2", "V2", -1, Common::FR_FRA, Common::kPlatformDOS },
{ "c4ffae9fac495475d6bc3343ccc8faf9", "Soccer2004", "", "", -1, Common::EN_ANY, Common::kPlatformUnknown },
{ "c5cc7cba02a2fbd539c4439e775b0536", "puttzoo", "HE 99", "Updated", 43470, Common::DE_DEU, Common::kPlatformWindows },
{ "c5d10e190d4b4d59114b824f2fdbd00e", "loom", "FM-TOWNS", "", 7540, Common::EN_ANY, Common::kPlatformFMTowns },
- { "c63ee46143ba65f9ce14cf539ca51bd7", "atlantis", "Floppy", "Floppy", -1, Common::EN_ANY, Common::kPlatformPC },
+ { "c63ee46143ba65f9ce14cf539ca51bd7", "atlantis", "Floppy", "Floppy", -1, Common::EN_ANY, Common::kPlatformDOS },
{ "c666a998af90d81db447eccba9f72c8d", "monkey", "No AdLib", "EGA", -1, Common::EN_ANY, Common::kPlatformAtariST },
{ "c6907d44f1166941d982864cd42cdc89", "pajama2", "HE 99", "", -1, Common::DE_DEU, Common::kPlatformUnknown },
{ "c782fbbe74a987c3df8ac73cd3e289ed", "freddi", "HE 73", "", -1, Common::SE_SWE, Common::kPlatformMacintosh },
- { "c7890e038806df2bb5c0c8c6f1986ea2", "monkey", "VGA", "VGA", -1, Common::EN_ANY, Common::kPlatformPC },
+ { "c7890e038806df2bb5c0c8c6f1986ea2", "monkey", "VGA", "VGA", -1, Common::EN_ANY, Common::kPlatformDOS },
{ "c7be10f775404fd9785a8b92a06d240c", "atlantis", "FM-TOWNS", "", 12030, Common::EN_ANY, Common::kPlatformFMTowns },
{ "c7c492a107ec520d7a7943037d0ca54a", "freddi", "HE 71", "Demo", -1, Common::NL_NLD, Common::kPlatformWindows },
{ "c8253da0f4626d2236b5291b99e33408", "puttcircus", "HE 99", "", -1, Common::HE_ISR, Common::kPlatformWindows },
@@ -524,15 +524,15 @@ static const MD5Table md5table[] = {
{ "cb1559e8405d17a5a278a6b5ad9338d1", "freddi3", "", "Demo", 22718, Common::EN_ANY, Common::kPlatformUnknown },
{ "cc04a076779379524ed4d9c5ee3c6fb1", "tentacle", "", "CD", 282467632, Common::EN_ANY, Common::kPlatformMacintosh },
{ "cc0c4111449054f1692bb3c0c5e04629", "BluesBirthday", "", "Demo", -1, Common::EN_ANY, Common::kPlatformUnknown },
- { "cc8ba2b0df2f9c450bcf055fe2711979", "samnmax", "Floppy", "Demo", 7485, Common::DE_DEU, Common::kPlatformPC },
+ { "cc8ba2b0df2f9c450bcf055fe2711979", "samnmax", "Floppy", "Demo", 7485, Common::DE_DEU, Common::kPlatformDOS },
{ "cd424f143a141bc59226ad83a6e40f51", "maze", "HE 98.5", "", -1, Common::NL_NLD, Common::kPlatformUnknown },
- { "cd46c9f122272d02bbf79332ff521898", "loom", "EGA", "EGA", 5748, Common::RU_RUS, Common::kPlatformPC },
+ { "cd46c9f122272d02bbf79332ff521898", "loom", "EGA", "EGA", 5748, Common::RU_RUS, Common::kPlatformDOS },
{ "cd9c05e755d7bf8e9b9590ad1ebe273e", "dig", "Demo", "Demo", 45156007, Common::EN_ANY, Common::kPlatformMacintosh },
- { "cdd760228cf1010c2903f37e788ea31c", "zak", "V2", "V2", 1916, Common::DE_DEU, Common::kPlatformPC },
+ { "cdd760228cf1010c2903f37e788ea31c", "zak", "V2", "V2", 1916, Common::DE_DEU, Common::kPlatformDOS },
{ "ce2304f3919e1dcfcc512a81d7b603e0", "SoccerMLS", "", "", -1, Common::EN_ANY, Common::kPlatformUnknown },
- { "ce6a4cef315b20fef58a95bc40a2d8d3", "monkey", "EGA", "EGA", -1, Common::FR_FRA, Common::kPlatformPC },
+ { "ce6a4cef315b20fef58a95bc40a2d8d3", "monkey", "EGA", "EGA", -1, Common::FR_FRA, Common::kPlatformDOS },
{ "ce7733f185b838e248927c7ba1a04204", "maniac", "V2", "V2", -1, Common::FR_FRA, Common::kPlatformAmiga },
- { "ce7fd0c382389a6791fc3e199c117ef4", "indy3", "EGA", "EGA", -1, Common::ES_ESP, Common::kPlatformPC },
+ { "ce7fd0c382389a6791fc3e199c117ef4", "indy3", "EGA", "EGA", -1, Common::ES_ESP, Common::kPlatformDOS },
{ "cea91e3dd47f2518ea418e41611aa77f", "spyfox2", "", "", -1, Common::RU_RUS, Common::kPlatformUnknown },
{ "cf400d20769fb70eb21766582f4924f7", "moonbase", "", "", -1, Common::EN_ANY, Common::kPlatformWindows },
{ "cf4ef315214c7d8cdab6302cdb7e50db", "freddi", "HE 73", "Demo", -1, Common::DE_DEU, Common::kPlatformWindows },
@@ -541,13 +541,13 @@ static const MD5Table md5table[] = {
{ "cf90b4db5486ef798db78fe6fbf897e5", "pajama3", "", "Demo", 13902, Common::EN_USA, Common::kPlatformWindows },
{ "d00ffc8c32d17e575fd985d435d2eb88", "arttime", "", "Demo", -1, Common::EN_ANY, Common::kPlatformUnknown },
{ "d0549508a06bbb9f99ed19c9e97891f3", "football2002", "", "", -1, Common::EN_ANY, Common::kPlatformUnknown },
- { "d06fbe28818fef7bfc45c2cdf0c0849d", "zak", "V2", "V2", -1, Common::DE_DEU, Common::kPlatformPC },
+ { "d06fbe28818fef7bfc45c2cdf0c0849d", "zak", "V2", "V2", -1, Common::DE_DEU, Common::kPlatformDOS },
{ "d0ad929def3e9cfe39dea55bd12098d4", "puttcircus", "", "", -1, Common::FR_FRA, Common::kPlatformWindows },
- { "d0b531227a27c6662018d2bd05aac52a", "monkey", "VGA", "VGA", 8357, Common::DE_DEU, Common::kPlatformPC },
+ { "d0b531227a27c6662018d2bd05aac52a", "monkey", "VGA", "VGA", 8357, Common::DE_DEU, Common::kPlatformDOS },
{ "d220d154aafbfa12bd6f3ab1b2dae420", "puttzoo", "", "Demo", -1, Common::DE_DEU, Common::kPlatformMacintosh },
{ "d2cc8e31bce61e6cf2951249e10638fe", "basketball", "", "", -1, Common::EN_ANY, Common::kPlatformUnknown },
{ "d37c55388294b66e53e7ced3af88fa68", "freddi2", "HE 100", "Updated Demo", -1, Common::EN_ANY, Common::kPlatformUnknown },
- { "d43352a805d78b5f4936c6d7779bf575", "samnmax", "", "CD", -1, Common::RU_RUS, Common::kPlatformPC },
+ { "d43352a805d78b5f4936c6d7779bf575", "samnmax", "", "CD", -1, Common::RU_RUS, Common::kPlatformDOS },
{ "d4aac997e2f4e15341f0bfbf905419bd", "PuttTime", "HE 99", "", 62698, Common::EN_GRB, Common::kPlatformWindows },
{ "d4b8ee426b1afd3e53bc0cf020418cf6", "dog", "HE 99", "", -1, Common::EN_ANY, Common::kPlatformWindows },
{ "d4cccb5af88f3e77f370896e9ba8c5f9", "freddi", "HE 71", "", -1, Common::UNK_LANG, Common::kPlatformWindows },
@@ -555,7 +555,7 @@ static const MD5Table md5table[] = {
{ "d54622d31255619d207dd245d3f92327", "freddi4", "HE 99", "Demo", -1, Common::FR_FRA, Common::kPlatformWindows },
{ "d55eff37c2100f5065cde9de428621fa", "zak", "V2", "V2", -1, Common::EN_ANY, Common::kPlatformAtariST },
{ "d62047a6729349ab36f7ee065bf26509", "dig", "", "", -1, Common::RU_RUS, Common::kPlatformUnknown },
- { "d62d248c3df6ec177405e2cb23d923b2", "indy3", "EGA", "EGA", -1, Common::IT_ITA, Common::kPlatformPC },
+ { "d62d248c3df6ec177405e2cb23d923b2", "indy3", "EGA", "EGA", -1, Common::IT_ITA, Common::kPlatformDOS },
{ "d6334a5a9b61afe18c368540fdf522ca", "airport", "", "", -1, Common::EN_ANY, Common::kPlatformMacintosh },
{ "d6dd0646404768a63e963891a96daadd", "atlantis", "Floppy", "Floppy", 12035, Common::EN_ANY, Common::kPlatformMacintosh },
{ "d73c851b942af44deb9b6d5f416a0972", "freddi3", "HE 99", "Demo", -1, Common::HE_ISR, Common::kPlatformWindows },
@@ -564,9 +564,9 @@ static const MD5Table md5table[] = {
{ "d7b247c26bf1f01f8f7daf142be84de3", "balloon", "HE 99", "Updated", -1, Common::EN_ANY, Common::kPlatformWindows },
{ "d8323015ecb8b10bf53474f6e6b0ae33", "dig", "", "", 16304, Common::UNK_LANG, Common::kPlatformUnknown },
{ "d917f311a448e3cc7239c31bddb00dd2", "samnmax", "", "CD", 9080, Common::EN_ANY, Common::kPlatformUnknown },
- { "d9d0dd93d16ab4dec55cabc2b86bbd17", "samnmax", "", "Demo", 6478, Common::EN_ANY, Common::kPlatformPC },
+ { "d9d0dd93d16ab4dec55cabc2b86bbd17", "samnmax", "", "Demo", 6478, Common::EN_ANY, Common::kPlatformDOS },
{ "da09e666fc8f5b78d7b0ac65d1a3b56e", "monkey2", "FM-TOWNS", "", 11135, Common::EN_ANY, Common::kPlatformFMTowns },
- { "da6269b18fcb08189c0aa9c95533cce2", "monkey", "CD", "CD", 8955, Common::IT_ITA, Common::kPlatformPC },
+ { "da6269b18fcb08189c0aa9c95533cce2", "monkey", "CD", "CD", 8955, Common::IT_ITA, Common::kPlatformDOS },
{ "da669b20271b85182e9c17a2a37ea02e", "monkey2", "", "", -1, Common::DE_DEU, Common::kPlatformAmiga },
{ "db21a6e338fe3b70c2723b6530865bf2", "PuttTime", "HE 85", "", -1, Common::FR_FRA, Common::kPlatformUnknown },
{ "db74136c20557eca6ed3411bff39f7a1", "puttcircus", "", "", -1, Common::EN_GRB, Common::kPlatformWindows },
@@ -574,7 +574,7 @@ static const MD5Table md5table[] = {
{ "dcf0119a90451a7d6e0f1920931ba130", "freddi4", "HE 99", "Demo", -1, Common::FR_FRA, Common::kPlatformWindows },
{ "dd30a53035393baa5a5e222e716559af", "maniac", "V2", "V2", -1, Common::FR_FRA, Common::kPlatformAtariST },
{ "de4efb910210736813c9a1185384bace", "puttzoo", "HE 72", "Demo", 14337, Common::EN_ANY, Common::kPlatformWindows },
- { "debe337f73d660e951ece7c1f1c81add", "zak", "V2", "V2", -1, Common::EN_ANY, Common::kPlatformPC },
+ { "debe337f73d660e951ece7c1f1c81add", "zak", "V2", "V2", -1, Common::EN_ANY, Common::kPlatformDOS },
{ "defb8cb9ec4b0f91acfb6b61c6129ad9", "PuttTime", "HE 99", "", -1, Common::RU_RUS, Common::kPlatformWindows },
{ "df03ee021aa9b81d90cab9c26da07614", "indy3", "EGA", "EGA", -1, Common::IT_ITA, Common::kPlatformAmiga },
{ "df047cc4792150f601290357566d36a6", "freddi", "HE 90", "Updated", -1, Common::EN_USA, Common::kPlatformUnknown },
@@ -583,7 +583,7 @@ static const MD5Table md5table[] = {
{ "e144f5f49d9241d2a9dee2576b3d09cb", "airport", "", "Demo", 51152, Common::EN_ANY, Common::kPlatformWindows },
{ "e17db1ddf91b39ca6bbc8ad3ed19e883", "monkey", "FM-TOWNS", "", -1, Common::JA_JPN, Common::kPlatformFMTowns },
{ "e246e02db9630533a40d99c9f54a8e01", "monkey2", "", "", -1, Common::EN_ANY, Common::kPlatformMacintosh },
- { "e361a7058ed8e8ebb462663c0a3ae8d6", "puttputt", "HE 62", "", -1, Common::HE_ISR, Common::kPlatformPC },
+ { "e361a7058ed8e8ebb462663c0a3ae8d6", "puttputt", "HE 62", "", -1, Common::HE_ISR, Common::kPlatformDOS },
{ "e41de1c2a15abbcdbf9977e2d7e8a340", "freddi2", "HE 100", "Updated", -1, Common::RU_RUS, Common::kPlatformWindows },
{ "e44ea295a3f8fe4f41983080dab1e9ce", "freddi", "HE 90", "Updated", -1, Common::FR_FRA, Common::kPlatformMacintosh },
{ "e534d29afb3c6e0ee9dc3d53c5956714", "atlantis", "Floppy", "Floppy", -1, Common::DE_DEU, Common::kPlatformAmiga },
@@ -592,36 +592,36 @@ static const MD5Table md5table[] = {
{ "e62056ba675ad65d8854ab3c5ad4b3c0", "spyfox2", "", "Mini Game", -1, Common::EN_ANY, Common::kPlatformWindows },
{ "e63a0b9249b5ca4cc4d3ac34305ae360", "freddi", "HE 99", "", -1, Common::NB_NOR, Common::kPlatformWindows },
{ "e689bdf67f98b1d760ce4487ec0e8d06", "indy3", "EGA", "EGA", -1, Common::FR_FRA, Common::kPlatformAmiga },
- { "e6cd81b25ab1453a8a6d3482118c391e", "pass", "", "", 7857, Common::EN_ANY, Common::kPlatformPC },
+ { "e6cd81b25ab1453a8a6d3482118c391e", "pass", "", "", 7857, Common::EN_ANY, Common::kPlatformDOS },
{ "e72bb4c2b613db2cf50f89ff6350e70a", "ft", "", "", -1, Common::ES_ESP, Common::kPlatformUnknown },
{ "e781230da44a44e2f0770edb2b3b3633", "maniac", "V2", "V2", -1, Common::EN_ANY, Common::kPlatformAmiga },
- { "e8d0697906e53fee8b7e9f5652696da8", "atlantis", "", "CD", 11915, Common::JA_JPN, Common::kPlatformPC },
+ { "e8d0697906e53fee8b7e9f5652696da8", "atlantis", "", "CD", 11915, Common::JA_JPN, Common::kPlatformDOS },
{ "e9271b3d0694c7101f10d675ab7c0133", "freddi4", "HE 99", "", -1, Common::IT_ITA, Common::kPlatformWindows },
{ "e94c7cc3686fce406d3c91b5eae5a72d", "zak", "V2", "V2", -1, Common::EN_ANY, Common::kPlatformAmiga },
{ "e95cf980719c0be078fb68a67af97b4a", "funpack", "", "", -1, Common::JA_JPN, Common::kPlatform3DO },
- { "e98b982ceaf9d253d730bde8903233d6", "monkey", "EGA", "EGA", -1, Common::DE_DEU, Common::kPlatformPC },
+ { "e98b982ceaf9d253d730bde8903233d6", "monkey", "EGA", "EGA", -1, Common::DE_DEU, Common::kPlatformDOS },
{ "eae95b2b3546d8ba86ae1d397c383253", "dog", "", "", -1, Common::EN_ANY, Common::kPlatformUnknown },
- { "eb700bb73ca1cc44a1ad5e4b1a4bdeaf", "indy3", "EGA", "EGA", 5361, Common::DE_DEU, Common::kPlatformPC },
+ { "eb700bb73ca1cc44a1ad5e4b1a4bdeaf", "indy3", "EGA", "EGA", 5361, Common::DE_DEU, Common::kPlatformDOS },
{ "ebd0b2c8a387f18887282afe6cad894a", "spyozon", "", "Demo", 15317, Common::EN_ANY, Common::kPlatformUnknown },
{ "ebd324dcf06a4c49e1ba5c231eee1060", "freddi4", "HE 99", "Demo", -1, Common::EN_USA, Common::kPlatformUnknown },
{ "ecc4340c2b801f5af8da4e00c0e432d9", "puttcircus", "", "", -1, Common::NL_NLD, Common::kPlatformUnknown },
{ "ed2b074bc3166087a747acb2a3c6abb0", "freddi3", "HE 98.5", "Demo", -1, Common::DE_DEU, Common::kPlatformUnknown },
{ "ed361270102e355afe5236954216aba2", "lost", "", "", -1, Common::EN_USA, Common::kPlatformUnknown },
{ "ede149fda3edfc1dbd7347e0737cb583", "tentacle", "", "CD", -1, Common::FR_FRA, Common::kPlatformMacintosh },
- { "edfdb24a499d92c59f824c52987c0eec", "atlantis", "Floppy", "Floppy", -1, Common::FR_FRA, Common::kPlatformPC },
+ { "edfdb24a499d92c59f824c52987c0eec", "atlantis", "Floppy", "Floppy", -1, Common::FR_FRA, Common::kPlatformDOS },
{ "ee41f6afbc5b26fa475754b56fe92048", "puttputt", "HE 61", "", 8032, Common::JA_JPN, Common::kPlatform3DO },
{ "ee785fe2569bc9965526e774f7ab86f1", "spyfox", "HE 99", "", -1, Common::FR_FRA, Common::kPlatformMacintosh },
{ "eea4d9ac2fb6f145945a308e8866915b", "maniac", "C64", "", -1, Common::EN_ANY, Common::kPlatformC64 },
- { "ef347474f3c7be3b29584eaa133cca05", "samnmax", "Floppy", "Floppy", -1, Common::FR_FRA, Common::kPlatformPC },
+ { "ef347474f3c7be3b29584eaa133cca05", "samnmax", "Floppy", "Floppy", -1, Common::FR_FRA, Common::kPlatformDOS },
{ "ef71a322b6530ac45b1a070f7c0795f7", "moonbase", "Demo", "Demo", -1, Common::EN_ANY, Common::kPlatformWindows },
- { "ef74d9071d4e564b037cb44bd6774de7", "fbear", "HE 62", "", -1, Common::HE_ISR, Common::kPlatformPC },
+ { "ef74d9071d4e564b037cb44bd6774de7", "fbear", "HE 62", "", -1, Common::HE_ISR, Common::kPlatformDOS },
{ "efe0a04a703e765ebebe92b6c8aa6b86", "baseball2003", "", "", -1, Common::EN_ANY, Common::kPlatformUnknown },
- { "f049e38c1f8302b5db6170f1872af89a", "monkey", "CD", "CD", 8955, Common::ES_ESP, Common::kPlatformPC },
- { "f06e66fd45b2f8b0f4a2833ff4476050", "fbpack", "", "", -1, Common::HE_ISR, Common::kPlatformPC },
+ { "f049e38c1f8302b5db6170f1872af89a", "monkey", "CD", "CD", 8955, Common::ES_ESP, Common::kPlatformDOS },
+ { "f06e66fd45b2f8b0f4a2833ff4476050", "fbpack", "", "", -1, Common::HE_ISR, Common::kPlatformDOS },
{ "f08145577e4f13584cc90b3d6e9caa55", "pajama3", "", "Demo", -1, Common::NL_NLD, Common::kPlatformUnknown },
{ "f1b0e0d587b85052de5534a3847e68fe", "water", "HE 99", "Updated", -1, Common::EN_ANY, Common::kPlatformUnknown },
{ "f237bf8a5ef9af78b2a6a4f3901da341", "pajama", "", "Demo", 18354, Common::EN_ANY, Common::kPlatformUnknown },
- { "f27b1ba0eadaf2a6617b2b58192d1dbf", "samnmax", "Floppy", "Floppy", -1, Common::DE_DEU, Common::kPlatformPC },
+ { "f27b1ba0eadaf2a6617b2b58192d1dbf", "samnmax", "Floppy", "Floppy", -1, Common::DE_DEU, Common::kPlatformDOS },
{ "f2ec78e50bdc63b70044e9758be10914", "spyfox", "HE 98.5", "Demo", -1, Common::NL_NLD, Common::kPlatformMacintosh },
{ "f3d55aea441e260e9e9c7d2a187097e0", "puttzoo", "", "Demo", 14337, Common::EN_ANY, Common::kPlatformWindows },
{ "f40a7f495f59188ca57a9d1d50301bb6", "puttputt", "HE 60", "Demo", -1, Common::EN_ANY, Common::kPlatformMacintosh },
@@ -631,7 +631,7 @@ static const MD5Table md5table[] = {
{ "f7711f9264d4d43c2a1518ec7c10a607", "pajama3", "", "", 79382, Common::EN_USA, Common::kPlatformUnknown },
{ "f79e60c17cca601e411f1f75e8ee9b5a", "spyfox2", "", "", 51286, Common::UNK_LANG, Common::kPlatformUnknown },
{ "f8be685007a8b425ba2a455da732f59f", "pajama2", "HE 99", "", -1, Common::FR_FRA, Common::kPlatformMacintosh },
- { "fa127d7c4bb47d05bb1c33ddcaa9f767", "loom", "EGA", "EGA", 5748, Common::DE_DEU, Common::kPlatformPC },
+ { "fa127d7c4bb47d05bb1c33ddcaa9f767", "loom", "EGA", "EGA", 5748, Common::DE_DEU, Common::kPlatformDOS },
{ "fa30c4a7a806629626269b6dcab59a15", "BluesBirthday", "HE CUP", "Preview", 7819264, Common::UNK_LANG, Common::kPlatformUnknown },
{ "fa3cb1541f9d7cf99ccbae6249bc150c", "maniac", "NES", "", -1, Common::IT_ITA, Common::kPlatformNES },
{ "fa84cb1018103a4ee4e5fa8041c1d0d1", "freddi4", "", "Demo", 13609, Common::DE_DEU, Common::kPlatformWindows },
@@ -639,8 +639,8 @@ static const MD5Table md5table[] = {
{ "fbb697d89d2beca87360a145f467bdae", "PuttTime", "HE 90", "Demo", -1, Common::DE_DEU, Common::kPlatformUnknown },
{ "fbbbb38a81fc9d6a61d509278390a290", "farm", "", "", -1, Common::EN_ANY, Common::kPlatformMacintosh },
{ "fbdd947d21e8f5bac6d6f7a316af1c5a", "spyfox", "", "Demo", 15693, Common::EN_ANY, Common::kPlatformUnknown },
- { "fc53ce0e5f6562b1c1e1b4b8203acafb", "samnmax", "Floppy", "Floppy", -1, Common::ES_ESP, Common::kPlatformPC },
- { "fc6b6148e80d67939d9a18697c0f626a", "monkey", "EGA", "EGA", 8367, Common::DE_DEU, Common::kPlatformPC },
+ { "fc53ce0e5f6562b1c1e1b4b8203acafb", "samnmax", "Floppy", "Floppy", -1, Common::ES_ESP, Common::kPlatformDOS },
+ { "fc6b6148e80d67939d9a18697c0f626a", "monkey", "EGA", "EGA", 8367, Common::DE_DEU, Common::kPlatformDOS },
{ "fc8d197a22146e74766e9cb0cfcaf1da", "freddi2", "HE 80", "Demo", 27298, Common::EN_ANY, Common::kPlatformUnknown },
{ "fcb78ebecab2757264c590890c319cc5", "PuttTime", "HE 85", "", -1, Common::NL_NLD, Common::kPlatformUnknown },
{ "fce4b8010704b103acfeea9413788f32", "freddi2", "HE 80", "", -1, Common::DE_DEU, Common::kPlatformUnknown },
diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp
index 3afeeda13d..2a14673855 100644
--- a/engines/scumm/scumm.cpp
+++ b/engines/scumm/scumm.cpp
@@ -1747,7 +1747,7 @@ void ScummEngine::setupMusic(int midi) {
}
if ((_game.id == GID_MONKEY_EGA || (_game.id == GID_LOOM && _game.version == 3))
- && (_game.platform == Common::kPlatformPC) && _sound->_musicType == MDT_MIDI) {
+ && (_game.platform == Common::kPlatformDOS) && _sound->_musicType == MDT_MIDI) {
Common::String fileName;
bool missingFile = false;
if (_game.id == GID_LOOM) {
@@ -2124,7 +2124,7 @@ load_game:
// HACK as in game save stuff isn't supported currently
if (_game.id == GID_LOOM) {
- int args[16];
+ int args[NUM_SCRIPT_LOCAL];
uint var;
memset(args, 0, sizeof(args));
args[0] = 2;
@@ -2512,7 +2512,7 @@ void ScummEngine::restart() {
}
void ScummEngine::runBootscript() {
- int args[16];
+ int args[NUM_SCRIPT_LOCAL];
memset(args, 0, sizeof(args));
args[0] = _bootParam;
if (_game.id == GID_MANIAC && (_game.features & GF_DEMO))
diff --git a/engines/scumm/smush/smush_player.cpp b/engines/scumm/smush/smush_player.cpp
index a53b808ba1..ce098f07aa 100644
--- a/engines/scumm/smush/smush_player.cpp
+++ b/engines/scumm/smush/smush_player.cpp
@@ -920,7 +920,7 @@ void SmushPlayer::handleAnimHeader(int32 subSize, Common::SeekableReadStream &b)
void SmushPlayer::setupAnim(const char *file) {
if (_insanity) {
- if (!((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC)))
+ if (!((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS)))
readString("mineroad.trs");
} else
readString(file);
@@ -933,7 +933,7 @@ SmushFont *SmushPlayer::getFont(int font) {
return _sf[font];
if (_vm->_game.id == GID_FT) {
- if (!((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC))) {
+ if (!((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformDOS))) {
const char *ft_fonts[] = {
"scummfnt.nut",
"techfnt.nut",
diff --git a/engines/scumm/sound.cpp b/engines/scumm/sound.cpp
index 2fe16c5441..3f6290f8fc 100644
--- a/engines/scumm/sound.cpp
+++ b/engines/scumm/sound.cpp
@@ -1815,7 +1815,7 @@ int ScummEngine::readSoundResourceSmallHeader(ResId idx) {
debug(4, "readSoundResourceSmallHeader(%d)", idx);
- if ((_game.id == GID_LOOM) && (_game.version == 3) && (_game.platform == Common::kPlatformPC) && VAR(VAR_SOUNDCARD) == 4) {
+ if ((_game.id == GID_LOOM) && (_game.version == 3) && (_game.platform == Common::kPlatformDOS) && VAR(VAR_SOUNDCARD) == 4) {
// Roland resources in Loom are tagless
// So we add an RO tag to allow imuse to detect format
byte *ptr, *src_ptr;
diff --git a/engines/scumm/vars.cpp b/engines/scumm/vars.cpp
index 6d132c601f..77c7daa0df 100644
--- a/engines/scumm/vars.cpp
+++ b/engines/scumm/vars.cpp
@@ -741,7 +741,7 @@ void ScummEngine::resetScummVars() {
break;
default:
if ((_game.id == GID_MONKEY_EGA || _game.id == GID_MONKEY_VGA || (_game.id == GID_LOOM && _game.version == 3))
- && (_game.platform == Common::kPlatformPC)) {
+ && (_game.platform == Common::kPlatformDOS)) {
VAR(VAR_SOUNDCARD) = 4;
} else {
VAR(VAR_SOUNDCARD) = 3;
@@ -770,7 +770,7 @@ void ScummEngine::resetScummVars() {
// Set screen size for the Macintosh version of Indy3/Loom
VAR(39) = 320;
}
- if (_game.platform == Common::kPlatformPC && _game.id == GID_LOOM && _game.version == 3) {
+ if (_game.platform == Common::kPlatformDOS && _game.id == GID_LOOM && _game.version == 3) {
// Set number of sound resources
VAR(39) = 80;
}
diff --git a/engines/sword1/animation.cpp b/engines/sword1/animation.cpp
index ff3c897dba..206bd68b07 100644
--- a/engines/sword1/animation.cpp
+++ b/engines/sword1/animation.cpp
@@ -98,7 +98,7 @@ static const char *const sequenceListPSX[20] = {
///////////////////////////////////////////////////////////////////////////////
MoviePlayer::MoviePlayer(SwordEngine *vm, Text *textMan, ResMan *resMan, OSystem *system, Video::VideoDecoder *decoder, DecoderType decoderType)
- : _vm(vm), _textMan(textMan), _resMan(resMan), _system(system) {
+ : _vm(vm), _textMan(textMan), _resMan(resMan), _system(system), _textX(0), _textY(0), _textWidth(0), _textHeight(0), _textColor(1) {
_decoderType = decoderType;
_decoder = decoder;
diff --git a/engines/sword1/console.cpp b/engines/sword1/console.cpp
index 603efd308e..4c55f8d990 100644
--- a/engines/sword1/console.cpp
+++ b/engines/sword1/console.cpp
@@ -26,6 +26,7 @@
namespace Sword1 {
SwordConsole::SwordConsole(SwordEngine *vm) : GUI::Debugger(), _vm(vm) {
+ assert(_vm);
}
SwordConsole::~SwordConsole() {
diff --git a/engines/sword1/control.cpp b/engines/sword1/control.cpp
index 7cd85dff54..80d8edc1dd 100644
--- a/engines/sword1/control.cpp
+++ b/engines/sword1/control.cpp
@@ -856,10 +856,8 @@ bool Control::savegamesExist() {
void Control::checkForOldSaveGames() {
Common::InSaveFile *inf = _saveFileMan->openForLoading("SAVEGAME.INF");
- if (!inf) {
- delete inf;
+ if (!inf)
return;
- }
GUI::MessageDialog dialog0(
_("ScummVM found that you have old savefiles for Broken Sword 1 that should be converted.\n"
diff --git a/engines/sword1/resman.cpp b/engines/sword1/resman.cpp
index 878ba8eceb..7222965c9d 100644
--- a/engines/sword1/resman.cpp
+++ b/engines/sword1/resman.cpp
@@ -227,7 +227,10 @@ Header *ResMan::lockScript(uint32 scrID) {
#else
openScriptResourceLittleEndian(scrID);
#endif
- return (Header *)resHandle(scrID)->data;
+ MemHandle *handle = resHandle(scrID);
+ if (!handle)
+ error("Script resource handle %d not found", scrID);
+ return (Header *)handle->data;
}
void ResMan::unlockScript(uint32 scrID) {
@@ -343,8 +346,8 @@ MemHandle *ResMan::resHandle(uint32 id) {
uint8 cluster = (uint8)((id >> 24) - 1);
uint8 group = (uint8)(id >> 16);
- // There is a know case of reading beyond array boundaries when trying to use
- // portuguese subtitles (cluster file 2, group 6) with a version that do not
+ // There is a known case of reading beyond array boundaries when trying to use
+ // portuguese subtitles (cluster file 2, group 6) with a version that does not
// contain subtitles for this languages (i.e. has only 6 languages and not 7).
if (cluster >= _prj.noClu || group >= _prj.clu[cluster].noGrp)
return NULL;
diff --git a/engines/sword1/sound.cpp b/engines/sword1/sound.cpp
index 61bf5257ab..268da74508 100644
--- a/engines/sword1/sound.cpp
+++ b/engines/sword1/sound.cpp
@@ -45,9 +45,8 @@ namespace Sword1 {
#define SOUND_SPEECH_ID 1
#define SPEECH_FLAGS (Audio::FLAG_16BITS | Audio::FLAG_LITTLE_ENDIAN)
-Sound::Sound(const char *searchPath, Audio::Mixer *mixer, ResMan *pResMan)
+Sound::Sound(Audio::Mixer *mixer, ResMan *pResMan)
: _rnd("sword1sound") {
- strcpy(_filePath, searchPath);
_mixer = mixer;
_resMan = pResMan;
_bigEndianSpeech = false;
diff --git a/engines/sword1/sound.h b/engines/sword1/sound.h
index 4e1ac7ba34..b52d89f390 100644
--- a/engines/sword1/sound.h
+++ b/engines/sword1/sound.h
@@ -80,7 +80,7 @@ enum CowMode {
class Sound {
public:
- Sound(const char *searchPath, Audio::Mixer *mixer, ResMan *pResMan);
+ Sound(Audio::Mixer *mixer, ResMan *pResMan);
~Sound();
void setSpeechVol(uint8 volL, uint8 volR) { _speechVolL = volL; _speechVolR = volR; }
void setSfxVol(uint8 volL, uint8 volR) { _sfxVolL = volL; _sfxVolR = volR; }
@@ -125,7 +125,6 @@ private:
Audio::Mixer *_mixer;
ResMan *_resMan;
bool _bigEndianSpeech;
- char _filePath[100];
static const char _musicList[270];
static const uint16 _roomsFixedFx[TOTAL_ROOMS][TOTAL_FX_PER_ROOM];
static const FxDef _fxList[312];
diff --git a/engines/sword1/sword1.cpp b/engines/sword1/sword1.cpp
index fa593b8df4..2d5452778d 100644
--- a/engines/sword1/sword1.cpp
+++ b/engines/sword1/sword1.cpp
@@ -104,7 +104,7 @@ Common::Error SwordEngine::init() {
_mouse = new Mouse(_system, _resMan, _objectMan);
_screen = new Screen(_system, _resMan, _objectMan);
_music = new Music(_mixer);
- _sound = new Sound("", _mixer, _resMan);
+ _sound = new Sound(_mixer, _resMan);
_menu = new Menu(_screen, _mouse);
_logic = new Logic(this, _objectMan, _resMan, _screen, _mouse, _sound, _music, _menu, _system, _mixer);
_mouse->useLogicAndMenu(_logic, _menu);
diff --git a/engines/sword2/console.cpp b/engines/sword2/console.cpp
index 28e2e8ce7b..4838bd15f6 100644
--- a/engines/sword2/console.cpp
+++ b/engines/sword2/console.cpp
@@ -173,7 +173,7 @@ bool Debugger::Cmd_Mem(int argc, const char **argv) {
int16 numBlocks = _vm->_memory->getNumBlocks();
MemBlock *memBlocks = _vm->_memory->getMemBlocks();
- MemBlock **blocks = (MemBlock **)malloc(numBlocks * sizeof(MemBlock));
+ MemBlock **blocks = (MemBlock **)malloc(numBlocks * sizeof(MemBlock *));
int i, j;
diff --git a/engines/sword2/controls.cpp b/engines/sword2/controls.cpp
index 3611294eb8..a4b540ac7b 100644
--- a/engines/sword2/controls.cpp
+++ b/engines/sword2/controls.cpp
@@ -117,8 +117,6 @@ private:
Glyph _glyph[SIZE_OF_CHAR_SET];
- int _fontId;
-
public:
enum {
kAlignLeft,
@@ -142,7 +140,7 @@ public:
};
FontRendererGui::FontRendererGui(Sword2Engine *vm, int fontId)
- : _vm(vm), _fontId(fontId) {
+ : _vm(vm) {
byte *font = _vm->_resman->openResource(fontId);
SpriteInfo sprite;
diff --git a/engines/sword2/memory.cpp b/engines/sword2/memory.cpp
index 5fd2d4e78e..391983930d 100644
--- a/engines/sword2/memory.cpp
+++ b/engines/sword2/memory.cpp
@@ -52,7 +52,7 @@
namespace Sword2 {
-MemoryManager::MemoryManager(Sword2Engine *vm) : _vm(vm) {
+MemoryManager::MemoryManager() {
// The id stack contains all the possible ids for the memory blocks.
// We use this to ensure that no two blocks ever have the same id.
diff --git a/engines/sword2/memory.h b/engines/sword2/memory.h
index 3f511dd5db..250da138c2 100644
--- a/engines/sword2/memory.h
+++ b/engines/sword2/memory.h
@@ -40,8 +40,6 @@ struct MemBlock {
class MemoryManager {
private:
- Sword2Engine *_vm;
-
MemBlock *_memBlocks;
MemBlock **_memBlockIndex;
int16 _numBlocks;
@@ -56,7 +54,7 @@ private:
int16 findInsertionPointInIndex(byte *ptr);
public:
- MemoryManager(Sword2Engine *vm);
+ MemoryManager();
~MemoryManager();
int16 getNumBlocks() { return _numBlocks; }
diff --git a/engines/sword2/palette.cpp b/engines/sword2/palette.cpp
index c3a3d24075..9634d3af10 100644
--- a/engines/sword2/palette.cpp
+++ b/engines/sword2/palette.cpp
@@ -288,19 +288,17 @@ void Screen::fadeServer() {
}
void Screen::setSystemPalette(const byte *colors, uint start, uint num) {
- const byte *palette;
-
if (_dimPalette) {
byte pal[256 * 3];
for (uint i = start * 3; i < 3 * (start + num); i++)
pal[i] = colors[i] / 2;
- palette = pal;
- } else
- palette = colors;
+ _vm->_system->getPaletteManager()->setPalette(pal, start, num);
+ } else {
+ _vm->_system->getPaletteManager()->setPalette(colors, start, num);
+ }
- _vm->_system->getPaletteManager()->setPalette(palette, start, num);
}
} // End of namespace Sword2
diff --git a/engines/sword2/sound.h b/engines/sword2/sound.h
index 9a59ef27a8..e250707fb9 100644
--- a/engines/sword2/sound.h
+++ b/engines/sword2/sound.h
@@ -142,7 +142,6 @@ private:
bool _looping;
int32 _fading;
int32 _fadeSamples;
- bool _paused;
void refill();
diff --git a/engines/sword2/sprite.cpp b/engines/sword2/sprite.cpp
index 91a5e2e86b..5e25a86d75 100644
--- a/engines/sword2/sprite.cpp
+++ b/engines/sword2/sprite.cpp
@@ -590,8 +590,11 @@ int32 Screen::drawSprite(SpriteInfo *s) {
s->w = (decompData / (s->h / 2));
sprite = (byte *)malloc(s->w * s->h);
- if (!sprite)
+ if (!sprite) {
+ free(tempBuf);
+
return RDERR_OUTOFMEMORY;
+ }
resizePsxSprite(sprite, tempBuf, s->w, s->h);
free(tempBuf);
diff --git a/engines/sword2/sword2.cpp b/engines/sword2/sword2.cpp
index dfa6a23320..3375dda312 100644
--- a/engines/sword2/sword2.cpp
+++ b/engines/sword2/sword2.cpp
@@ -314,7 +314,7 @@ Sword2Engine::Sword2Engine(OSystem *syst) : Engine(syst), _rnd("sword2") {
if (!scumm_stricmp(ConfMan.get("gameid").c_str(), "sword2psx") || !scumm_stricmp(ConfMan.get("gameid").c_str(), "sword2psxdemo"))
Sword2Engine::_platform = Common::kPlatformPSX;
else
- Sword2Engine::_platform = Common::kPlatformPC;
+ Sword2Engine::_platform = Common::kPlatformWindows;
_bootParam = ConfMan.getInt("boot_param");
_saveSlot = ConfMan.getInt("save_slot");
@@ -450,7 +450,7 @@ Common::Error Sword2Engine::run() {
_debugger = new Debugger(this);
- _memory = new MemoryManager(this);
+ _memory = new MemoryManager();
_resman = new ResourceManager(this);
if (!_resman->init())
diff --git a/engines/sword25/console.cpp b/engines/sword25/console.cpp
index 5d15f189ab..f1b91d2bc2 100644
--- a/engines/sword25/console.cpp
+++ b/engines/sword25/console.cpp
@@ -26,6 +26,7 @@
namespace Sword25 {
Sword25Console::Sword25Console(Sword25Engine *vm) : GUI::Debugger(), _vm(vm) {
+ assert(_vm);
}
Sword25Console::~Sword25Console() {
diff --git a/engines/sword25/gfx/animation.cpp b/engines/sword25/gfx/animation.cpp
index 22a4dfb71b..1660c393c0 100644
--- a/engines/sword25/gfx/animation.cpp
+++ b/engines/sword25/gfx/animation.cpp
@@ -170,7 +170,7 @@ void Animation::setFrame(uint nr) {
forceRefresh();
}
-bool Animation::doRender() {
+bool Animation::doRender(RectangleList *updateRects) {
AnimationDescription *animationDescriptionPtr = getAnimationDescription();
assert(animationDescriptionPtr);
assert(_currentFrame < animationDescriptionPtr->getFrameCount());
@@ -191,12 +191,14 @@ bool Animation::doRender() {
result = pBitmapResource->blit(_absoluteX, _absoluteY,
(animationDescriptionPtr->getFrame(_currentFrame).flipV ? BitmapResource::FLIP_V : 0) |
(animationDescriptionPtr->getFrame(_currentFrame).flipH ? BitmapResource::FLIP_H : 0),
- 0, _modulationColor, _width, _height);
+ 0, _modulationColor, _width, _height,
+ updateRects);
} else {
result = pBitmapResource->blit(_absoluteX, _absoluteY,
(animationDescriptionPtr->getFrame(_currentFrame).flipV ? BitmapResource::FLIP_V : 0) |
(animationDescriptionPtr->getFrame(_currentFrame).flipH ? BitmapResource::FLIP_H : 0),
- 0, _modulationColor, -1, -1);
+ 0, _modulationColor, -1, -1,
+ updateRects);
}
// Resource freigeben
diff --git a/engines/sword25/gfx/animation.h b/engines/sword25/gfx/animation.h
index 60070be214..44255e3b64 100644
--- a/engines/sword25/gfx/animation.h
+++ b/engines/sword25/gfx/animation.h
@@ -151,7 +151,7 @@ public:
void setCallbacks();
protected:
- virtual bool doRender();
+ virtual bool doRender(RectangleList *updateRects);
private:
enum Direction {
diff --git a/engines/sword25/gfx/bitmapresource.h b/engines/sword25/gfx/bitmapresource.h
index f1278f3885..72b8a3ea1f 100644
--- a/engines/sword25/gfx/bitmapresource.h
+++ b/engines/sword25/gfx/bitmapresource.h
@@ -123,9 +123,10 @@ public:
int flipping = FLIP_NONE,
Common::Rect *pSrcPartRect = NULL,
uint color = BS_ARGB(255, 255, 255, 255),
- int width = -1, int height = -1) {
+ int width = -1, int height = -1,
+ RectangleList *updateRects = 0) {
assert(_pImage);
- return _pImage->blit(posX, posY, flipping, pSrcPartRect, color, width, height);
+ return _pImage->blit(posX, posY, flipping, pSrcPartRect, color, width, height, updateRects);
}
/**
@@ -202,6 +203,11 @@ public:
return _pImage->isColorModulationAllowed();
}
+ bool isSolid() {
+ assert(_pImage);
+ return _pImage->isSolid();
+ }
+
private:
Image *_pImage;
};
diff --git a/engines/sword25/gfx/dynamicbitmap.cpp b/engines/sword25/gfx/dynamicbitmap.cpp
index 137d943575..242508bf85 100644
--- a/engines/sword25/gfx/dynamicbitmap.cpp
+++ b/engines/sword25/gfx/dynamicbitmap.cpp
@@ -53,10 +53,13 @@ DynamicBitmap::DynamicBitmap(InputPersistenceBlock &reader, RenderObjectPtr<Rend
bool DynamicBitmap::createRenderedImage(uint width, uint height) {
bool result = false;
_image.reset(new RenderedImage(width, height, result));
-
+
_originalWidth = _width = width;
_originalHeight = _height = height;
+ _image->setIsTransparent(false);
+ _isSolid = true;
+
return result;
}
@@ -70,11 +73,11 @@ uint DynamicBitmap::getPixel(int x, int y) const {
return _image->getPixel(x, y);
}
-bool DynamicBitmap::doRender() {
+bool DynamicBitmap::doRender(RectangleList *updateRects) {
// Get the frame buffer object
GraphicEngine *pGfx = Kernel::getInstance()->getGfx();
assert(pGfx);
-
+
// Draw the bitmap
bool result;
if (_scaleFactorX == 1.0f && _scaleFactorY == 1.0f) {
@@ -85,7 +88,8 @@ bool DynamicBitmap::doRender() {
result = _image->blit(_absoluteX, _absoluteY,
(_flipV ? BitmapResource::FLIP_V : 0) |
(_flipH ? BitmapResource::FLIP_H : 0),
- 0, _modulationColor, -1, -1);
+ 0, _modulationColor, -1, -1,
+ updateRects);
#else
// WIP: A bit faster code
@@ -103,13 +107,15 @@ bool DynamicBitmap::doRender() {
result = _image->blit(_absoluteX, _absoluteY,
(_flipV ? BitmapResource::FLIP_V : 0) |
(_flipH ? BitmapResource::FLIP_H : 0),
- 0, _modulationColor, _width, _height);
+ 0, _modulationColor, _width, _height,
+ updateRects);
}
return result;
}
bool DynamicBitmap::setContent(const byte *pixeldata, uint size, uint offset, uint stride) {
+ ++_version; // Update version to display the new video image
return _image->setContent(pixeldata, size, offset, stride);
}
diff --git a/engines/sword25/gfx/dynamicbitmap.h b/engines/sword25/gfx/dynamicbitmap.h
index 35ed9a9341..ed53776577 100644
--- a/engines/sword25/gfx/dynamicbitmap.h
+++ b/engines/sword25/gfx/dynamicbitmap.h
@@ -59,7 +59,7 @@ public:
virtual bool unpersist(InputPersistenceBlock &reader);
protected:
- virtual bool doRender();
+ virtual bool doRender(RectangleList *updateRects);
private:
DynamicBitmap(RenderObjectPtr<RenderObject> parentPtr, uint width, uint height);
diff --git a/engines/sword25/gfx/graphicengine.cpp b/engines/sword25/gfx/graphicengine.cpp
index 216d801f3e..bfdb51481b 100644
--- a/engines/sword25/gfx/graphicengine.cpp
+++ b/engines/sword25/gfx/graphicengine.cpp
@@ -216,7 +216,6 @@ bool GraphicEngine::fill(const Common::Rect *fillRectPtr, uint color) {
}
}
- g_system->copyRectToScreen(_backSurface.getBasePtr(rect.left, rect.top), _backSurface.pitch, rect.left, rect.top, rect.width(), rect.height());
}
return true;
diff --git a/engines/sword25/gfx/image/image.h b/engines/sword25/gfx/image/image.h
index f1934656da..9d7fc43251 100644
--- a/engines/sword25/gfx/image/image.h
+++ b/engines/sword25/gfx/image/image.h
@@ -46,6 +46,8 @@
namespace Sword25 {
+class RectangleList;
+
class Image {
public:
virtual ~Image() {}
@@ -129,7 +131,8 @@ public:
int flipping = FLIP_NONE,
Common::Rect *pPartRect = NULL,
uint color = BS_ARGB(255, 255, 255, 255),
- int width = -1, int height = -1) = 0;
+ int width = -1, int height = -1,
+ RectangleList *updateRects = 0) = 0;
/**
@brief fills a rectangular section of the image with a color.
@@ -202,6 +205,8 @@ public:
@brief Returns true, if the content of the BS_Image is allowed to be replaced by call of SetContent().
*/
virtual bool isSetContentAllowed() const = 0;
+
+ virtual bool isSolid() const { return false; }
//@}
};
diff --git a/engines/sword25/gfx/image/renderedimage.cpp b/engines/sword25/gfx/image/renderedimage.cpp
index 27ee4ef182..c8a6666046 100644
--- a/engines/sword25/gfx/image/renderedimage.cpp
+++ b/engines/sword25/gfx/image/renderedimage.cpp
@@ -38,6 +38,8 @@
#include "sword25/gfx/image/imgloader.h"
#include "sword25/gfx/image/renderedimage.h"
+#include "sword25/gfx/renderobjectmanager.h"
+
#include "common/system.h"
namespace Sword25 {
@@ -99,7 +101,8 @@ static byte *readSavegameThumbnail(const Common::String &filename, uint &fileSiz
RenderedImage::RenderedImage(const Common::String &filename, bool &result) :
_data(0),
_width(0),
- _height(0) {
+ _height(0),
+ _isTransparent(true) {
result = false;
PackageManager *pPackage = Kernel::getInstance()->getPackage();
@@ -142,6 +145,11 @@ RenderedImage::RenderedImage(const Common::String &filename, bool &result) :
_doCleanup = true;
+#if defined(SCUMM_LITTLE_ENDIAN)
+ // Makes sense for LE only at the moment
+ checkForTransparency();
+#endif
+
return;
}
@@ -149,7 +157,8 @@ RenderedImage::RenderedImage(const Common::String &filename, bool &result) :
RenderedImage::RenderedImage(uint width, uint height, bool &result) :
_width(width),
- _height(height) {
+ _height(height),
+ _isTransparent(true) {
_data = new byte[width * height * 4];
Common::fill(_data, &_data[width * height * 4], 0);
@@ -162,7 +171,7 @@ RenderedImage::RenderedImage(uint width, uint height, bool &result) :
return;
}
-RenderedImage::RenderedImage() : _width(0), _height(0), _data(0) {
+RenderedImage::RenderedImage() : _width(0), _height(0), _data(0), _isTransparent(true) {
_backSurface = Kernel::getInstance()->getGfx()->getSurface();
_doCleanup = false;
@@ -219,7 +228,7 @@ uint RenderedImage::getPixel(int x, int y) {
// -----------------------------------------------------------------------------
-bool RenderedImage::blit(int posX, int posY, int flipping, Common::Rect *pPartRect, uint color, int width, int height) {
+bool RenderedImage::blit(int posX, int posY, int flipping, Common::Rect *pPartRect, uint color, int width, int height, RectangleList *updateRects) {
int ca = (color >> 24) & 0xff;
// Check if we need to draw anything at all
@@ -282,156 +291,175 @@ bool RenderedImage::blit(int posX, int posY, int flipping, Common::Rect *pPartRe
img = &srcImage;
}
- // Handle off-screen clipping
- if (posY < 0) {
- img->h = MAX(0, (int)img->h - -posY);
- img->pixels = (byte *)img->pixels + img->pitch * -posY;
- posY = 0;
- }
-
- if (posX < 0) {
- img->w = MAX(0, (int)img->w - -posX);
- img->pixels = (byte *)img->pixels + (-posX * 4);
- posX = 0;
- }
-
- img->w = CLIP((int)img->w, 0, (int)MAX((int)_backSurface->w - posX, 0));
- img->h = CLIP((int)img->h, 0, (int)MAX((int)_backSurface->h - posY, 0));
-
- if ((img->w > 0) && (img->h > 0)) {
- int xp = 0, yp = 0;
-
- int inStep = 4;
- int inoStep = img->pitch;
- if (flipping & Image::FLIP_V) {
- inStep = -inStep;
- xp = img->w - 1;
+ for (RectangleList::iterator it = updateRects->begin(); it != updateRects->end(); ++it) {
+ const Common::Rect &clipRect = *it;
+
+ int skipLeft = 0, skipTop = 0;
+ int drawX = posX, drawY = posY;
+ int drawWidth = img->w;
+ int drawHeight = img->h;
+
+ // Handle clipping
+ if (drawX < clipRect.left) {
+ skipLeft = clipRect.left - drawX;
+ drawWidth -= skipLeft;
+ drawX = clipRect.left;
}
-
- if (flipping & Image::FLIP_H) {
- inoStep = -inoStep;
- yp = img->h - 1;
+
+ if (drawY < clipRect.top) {
+ skipTop = clipRect.top - drawY;
+ drawHeight -= skipTop;
+ drawY = clipRect.top;
}
- byte *ino = (byte *)img->getBasePtr(xp, yp);
- byte *outo = (byte *)_backSurface->getBasePtr(posX, posY);
- byte *in, *out;
-
- for (int i = 0; i < img->h; i++) {
- out = outo;
- in = ino;
- for (int j = 0; j < img->w; j++) {
- uint32 pix = *(uint32 *)in;
- int b = (pix >> 0) & 0xff;
- int g = (pix >> 8) & 0xff;
- int r = (pix >> 16) & 0xff;
- int a = (pix >> 24) & 0xff;
- in += inStep;
-
- if (ca != 255) {
- a = a * ca >> 8;
- }
+ if (drawX + drawWidth >= clipRect.right)
+ drawWidth = clipRect.right - drawX;
+
+ if (drawY + drawHeight >= clipRect.bottom)
+ drawHeight = clipRect.bottom - drawY;
+
+ if ((drawWidth > 0) && (drawHeight > 0)) {
+ int xp = 0, yp = 0;
+
+ int inStep = 4;
+ int inoStep = img->pitch;
+ if (flipping & Image::FLIP_V) {
+ inStep = -inStep;
+ xp = img->w - 1 - skipLeft;
+ } else {
+ xp = skipLeft;
+ }
+
+ if (flipping & Image::FLIP_H) {
+ inoStep = -inoStep;
+ yp = img->h - 1 - skipTop;
+ } else {
+ yp = skipTop;
+ }
+
+ byte *ino = (byte *)img->getBasePtr(xp, yp);
+ byte *outo = (byte *)_backSurface->getBasePtr(drawX, drawY);
- switch (a) {
- case 0: // Full transparency
- out += 4;
- break;
- case 255: // Full opacity
#if defined(SCUMM_LITTLE_ENDIAN)
- if (cb != 255)
- *out++ = (b * cb) >> 8;
- else
- *out++ = b;
-
- if (cg != 255)
- *out++ = (g * cg) >> 8;
- else
- *out++ = g;
-
- if (cr != 255)
- *out++ = (r * cr) >> 8;
- else
- *out++ = r;
-
- *out++ = a;
+ // Simple memcpy if the source bitmap doesn't have transparent pixels and the drawing transparency is 255
+ // NOTE Only possible with LE-machines at the moment, maybe it would be feasible to convert the bitmap pixels at loading time?
+ if (!_isTransparent && ca == 255) {
+ for (int i = 0; i < drawHeight; i++) {
+ memcpy(outo, ino, drawWidth * 4);
+ outo += _backSurface->pitch;
+ ino += inoStep;
+ }
+ } else
+#endif
+ {
+ byte *in, *out;
+ for (int i = 0; i < drawHeight; i++) {
+ out = outo;
+ in = ino;
+ for (int j = 0; j < drawWidth; j++) {
+ uint32 pix = *(uint32 *)in;
+ int a = (pix >> 24) & 0xff;
+ in += inStep;
+
+ if (ca != 255) {
+ a = a * ca >> 8;
+ }
+
+ if (a == 0) {
+ // Full transparency
+ out += 4;
+ continue;
+ }
+
+ int b = (pix >> 0) & 0xff;
+ int g = (pix >> 8) & 0xff;
+ int r = (pix >> 16) & 0xff;
+
+ if (a == 255) {
+#if defined(SCUMM_LITTLE_ENDIAN)
+ if (cb != 255)
+ b = (b * cb) >> 8;
+ if (cg != 255)
+ g = (g * cg) >> 8;
+ if (cr != 255)
+ r = (r * cr) >> 8;
+ *(uint32 *)out = (255 << 24) | (r << 16) | (g << 8) | b;
+ out += 4;
#else
- *out++ = a;
-
- if (cr != 255)
- *out++ = (r * cr) >> 8;
- else
- *out++ = r;
-
- if (cg != 255)
- *out++ = (g * cg) >> 8;
- else
- *out++ = g;
-
- if (cb != 255)
- *out++ = (b * cb) >> 8;
- else
- *out++ = b;
+ *out++ = a;
+ if (cr != 255)
+ *out++ = (r * cr) >> 8;
+ else
+ *out++ = r;
+ if (cg != 255)
+ *out++ = (g * cg) >> 8;
+ else
+ *out++ = g;
+ if (cb != 255)
+ *out++ = (b * cb) >> 8;
+ else
+ *out++ = b;
#endif
- break;
-
- default: // alpha blending
+ } else {
#if defined(SCUMM_LITTLE_ENDIAN)
- if (cb == 0)
- *out = 0;
- else if (cb != 255)
- *out += ((b - *out) * a * cb) >> 16;
- else
- *out += ((b - *out) * a) >> 8;
- out++;
- if (cg == 0)
- *out = 0;
- else if (cg != 255)
- *out += ((g - *out) * a * cg) >> 16;
- else
- *out += ((g - *out) * a) >> 8;
- out++;
- if (cr == 0)
- *out = 0;
- else if (cr != 255)
- *out += ((r - *out) * a * cr) >> 16;
- else
- *out += ((r - *out) * a) >> 8;
- out++;
- *out = 255;
- out++;
+ pix = *(uint32 *)out;
+ int outb = (pix >> 0) & 0xff;
+ int outg = (pix >> 8) & 0xff;
+ int outr = (pix >> 16) & 0xff;
+ if (cb == 0)
+ outb = 0;
+ else if (cb != 255)
+ outb += ((b - outb) * a * cb) >> 16;
+ else
+ outb += ((b - outb) * a) >> 8;
+ if (cg == 0)
+ outg = 0;
+ else if (cg != 255)
+ outg += ((g - outg) * a * cg) >> 16;
+ else
+ outg += ((g - outg) * a) >> 8;
+ if (cr == 0)
+ outr = 0;
+ else if (cr != 255)
+ outr += ((r - outr) * a * cr) >> 16;
+ else
+ outr += ((r - outr) * a) >> 8;
+ *(uint32 *)out = (255 << 24) | (outr << 16) | (outg << 8) | outb;
+ out += 4;
#else
- *out = 255;
- out++;
- if (cr == 0)
- *out = 0;
- else if (cr != 255)
- *out += ((r - *out) * a * cr) >> 16;
- else
- *out += ((r - *out) * a) >> 8;
- out++;
- if (cg == 0)
- *out = 0;
- else if (cg != 255)
- *out += ((g - *out) * a * cg) >> 16;
- else
- *out += ((g - *out) * a) >> 8;
- out++;
- if (cb == 0)
- *out = 0;
- else if (cb != 255)
- *out += ((b - *out) * a * cb) >> 16;
- else
- *out += ((b - *out) * a) >> 8;
- out++;
+ *out = 255;
+ out++;
+ if (cr == 0)
+ *out = 0;
+ else if (cr != 255)
+ *out += ((r - *out) * a * cr) >> 16;
+ else
+ *out += ((r - *out) * a) >> 8;
+ out++;
+ if (cg == 0)
+ *out = 0;
+ else if (cg != 255)
+ *out += ((g - *out) * a * cg) >> 16;
+ else
+ *out += ((g - *out) * a) >> 8;
+ out++;
+ if (cb == 0)
+ *out = 0;
+ else if (cb != 255)
+ *out += ((b - *out) * a * cb) >> 16;
+ else
+ *out += ((b - *out) * a) >> 8;
+ out++;
#endif
+ }
+ }
+ outo += _backSurface->pitch;
+ ino += inoStep;
}
}
- outo += _backSurface->pitch;
- ino += inoStep;
- }
- g_system->copyRectToScreen(_backSurface->getBasePtr(posX, posY), _backSurface->pitch, posX, posY,
- img->w, img->h);
+ }
+
}
if (imgScaled) {
@@ -467,6 +495,20 @@ void RenderedImage::copyDirectly(int posX, int posY) {
g_system->copyRectToScreen(data, _backSurface->pitch, posX, posY, w, h);
}
+void RenderedImage::checkForTransparency() {
+ // Check if the source bitmap has any transparent pixels at all
+ _isTransparent = false;
+ byte *data = _data;
+ for (int i = 0; i < _height; i++) {
+ for (int j = 0; j < _width; j++) {
+ _isTransparent = data[3] != 0xff;
+ if (_isTransparent)
+ return;
+ data += 4;
+ }
+ }
+}
+
/**
* Scales a passed surface, creating a new surface with the result
* @param srcImage Source image to scale
diff --git a/engines/sword25/gfx/image/renderedimage.h b/engines/sword25/gfx/image/renderedimage.h
index f92a5b39b4..a25b258592 100644
--- a/engines/sword25/gfx/image/renderedimage.h
+++ b/engines/sword25/gfx/image/renderedimage.h
@@ -75,7 +75,8 @@ public:
int flipping = Image::FLIP_NONE,
Common::Rect *pPartRect = NULL,
uint color = BS_ARGB(255, 255, 255, 255),
- int width = -1, int height = -1);
+ int width = -1, int height = -1,
+ RectangleList *updateRects = 0);
virtual bool fill(const Common::Rect *pFillRect, uint color);
virtual bool setContent(const byte *pixeldata, uint size, uint offset = 0, uint stride = 0);
void replaceContent(byte *pixeldata, int width, int height);
@@ -105,14 +106,19 @@ public:
static Graphics::Surface *scale(const Graphics::Surface &srcImage, int xSize, int ySize);
+ void setIsTransparent(bool isTransparent) { _isTransparent = isTransparent; }
+ virtual bool isSolid() const { return !_isTransparent; }
+
private:
byte *_data;
int _width;
int _height;
bool _doCleanup;
+ bool _isTransparent;
Graphics::Surface *_backSurface;
+ void checkForTransparency();
static int *scaleLine(int size, int srcSize);
};
diff --git a/engines/sword25/gfx/image/swimage.cpp b/engines/sword25/gfx/image/swimage.cpp
index 0b9cc11df2..7e4c3143f5 100644
--- a/engines/sword25/gfx/image/swimage.cpp
+++ b/engines/sword25/gfx/image/swimage.cpp
@@ -79,7 +79,8 @@ bool SWImage::blit(int posX, int posY,
int flipping,
Common::Rect *pPartRect,
uint color,
- int width, int height) {
+ int width, int height,
+ RectangleList *updateRects) {
error("Blit() is not supported.");
return false;
}
diff --git a/engines/sword25/gfx/image/swimage.h b/engines/sword25/gfx/image/swimage.h
index 5f348958b2..a35127a41d 100644
--- a/engines/sword25/gfx/image/swimage.h
+++ b/engines/sword25/gfx/image/swimage.h
@@ -58,7 +58,8 @@ public:
int flipping = Image::FLIP_NONE,
Common::Rect *pPartRect = NULL,
uint color = BS_ARGB(255, 255, 255, 255),
- int width = -1, int height = -1);
+ int width = -1, int height = -1,
+ RectangleList *updateRects = 0);
virtual bool fill(const Common::Rect *fillRectPtr, uint color);
virtual bool setContent(const byte *pixeldata, uint size, uint offset, uint stride);
virtual uint getPixel(int x, int y);
diff --git a/engines/sword25/gfx/image/vectorimage.cpp b/engines/sword25/gfx/image/vectorimage.cpp
index 81f4fc2ad5..ab895b5cef 100644
--- a/engines/sword25/gfx/image/vectorimage.cpp
+++ b/engines/sword25/gfx/image/vectorimage.cpp
@@ -190,6 +190,7 @@ Common::Rect CalculateBoundingBox(const VectorImageElement &vectorImageElement)
ArtVpath *vec = art_bez_path_to_vec(bez, 0.5);
if (vec[0].code == ART_END) {
+ free(vec);
continue;
} else {
x0 = x1 = vec[0].x;
@@ -602,7 +603,8 @@ bool VectorImage::blit(int posX, int posY,
int flipping,
Common::Rect *pPartRect,
uint color,
- int width, int height) {
+ int width, int height,
+ RectangleList *updateRects) {
static VectorImage *oldThis = 0;
static int oldWidth = -2;
static int oldHeight = -2;
@@ -623,7 +625,7 @@ bool VectorImage::blit(int posX, int posY,
RenderedImage *rend = new RenderedImage();
rend->replaceContent(_pixelData, width, height);
- rend->blit(posX, posY, flipping, pPartRect, color, width, height);
+ rend->blit(posX, posY, flipping, pPartRect, color, width, height, updateRects);
delete rend;
diff --git a/engines/sword25/gfx/image/vectorimage.h b/engines/sword25/gfx/image/vectorimage.h
index 959f251c14..d1760a433e 100644
--- a/engines/sword25/gfx/image/vectorimage.h
+++ b/engines/sword25/gfx/image/vectorimage.h
@@ -212,7 +212,8 @@ public:
int flipping = FLIP_NONE,
Common::Rect *pPartRect = NULL,
uint color = BS_ARGB(255, 255, 255, 255),
- int width = -1, int height = -1);
+ int width = -1, int height = -1,
+ RectangleList *updateRects = 0);
class SWFBitStream;
diff --git a/engines/sword25/gfx/microtiles.cpp b/engines/sword25/gfx/microtiles.cpp
new file mode 100644
index 0000000000..8dceed5348
--- /dev/null
+++ b/engines/sword25/gfx/microtiles.cpp
@@ -0,0 +1,164 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ *
+ */
+
+#include "sword25/gfx/microtiles.h"
+
+namespace Sword25 {
+
+MicroTileArray::MicroTileArray(int16 width, int16 height) {
+ _tilesW = (width / TileSize) + ((width % TileSize) > 0 ? 1 : 0);
+ _tilesH = (height / TileSize) + ((height % TileSize) > 0 ? 1 : 0);
+ _tiles = new BoundingBox[_tilesW * _tilesH];
+ clear();
+}
+
+MicroTileArray::~MicroTileArray() {
+ delete[] _tiles;
+}
+
+void MicroTileArray::addRect(Common::Rect r) {
+
+ int ux0, uy0, ux1, uy1;
+ int tx0, ty0, tx1, ty1;
+ int ix0, iy0, ix1, iy1;
+
+ r.clip(Common::Rect(0, 0, 799, 599));
+
+ ux0 = r.left / TileSize;
+ uy0 = r.top / TileSize;
+ ux1 = r.right / TileSize;
+ uy1 = r.bottom / TileSize;
+
+ tx0 = r.left % TileSize;
+ ty0 = r.top % TileSize;
+ tx1 = r.right % TileSize;
+ ty1 = r.bottom % TileSize;
+
+ for (int yc = uy0; yc <= uy1; yc++) {
+ for (int xc = ux0; xc <= ux1; xc++) {
+ ix0 = (xc == ux0) ? tx0 : 0;
+ ix1 = (xc == ux1) ? tx1 : TileSize - 1;
+ iy0 = (yc == uy0) ? ty0 : 0;
+ iy1 = (yc == uy1) ? ty1 : TileSize - 1;
+ updateBoundingBox(_tiles[xc + yc * _tilesW], ix0, iy0, ix1, iy1);
+ }
+ }
+
+}
+
+void MicroTileArray::clear() {
+ memset(_tiles, 0, _tilesW * _tilesH * sizeof(BoundingBox));
+}
+
+byte MicroTileArray::TileX0(const BoundingBox &boundingBox) {
+ return (boundingBox >> 24) & 0xFF;
+}
+
+byte MicroTileArray::TileY0(const BoundingBox &boundingBox) {
+ return (boundingBox >> 16) & 0xFF;
+}
+
+byte MicroTileArray::TileX1(const BoundingBox &boundingBox) {
+ return (boundingBox >> 8) & 0xFF;
+}
+
+byte MicroTileArray::TileY1(const BoundingBox &boundingBox) {
+ return boundingBox & 0xFF;
+}
+
+bool MicroTileArray::isBoundingBoxEmpty(const BoundingBox &boundingBox) {
+ return boundingBox == EmptyBoundingBox;
+}
+
+bool MicroTileArray::isBoundingBoxFull(const BoundingBox &boundingBox) {
+ return boundingBox == FullBoundingBox;
+}
+
+void MicroTileArray::setBoundingBox(BoundingBox &boundingBox, byte x0, byte y0, byte x1, byte y1) {
+ boundingBox = (x0 << 24) | (y0 << 16) | (x1 << 8) | y1;
+}
+
+void MicroTileArray::updateBoundingBox(BoundingBox &boundingBox, byte x0, byte y0, byte x1, byte y1) {
+ if (!isBoundingBoxEmpty(boundingBox)) {
+ x0 = MIN(TileX0(boundingBox), x0);
+ y0 = MIN(TileY0(boundingBox), y0);
+ x1 = MAX(TileX1(boundingBox), x1);
+ y1 = MAX(TileY1(boundingBox), y1);
+ }
+ setBoundingBox(boundingBox, x0, y0, x1, y1);
+}
+
+RectangleList *MicroTileArray::getRectangles() {
+
+ RectangleList *rects = new RectangleList();
+
+ int x, y;
+ int x0, y0, x1, y1;
+ int i = 0;
+
+ for (y = 0; y < _tilesH; ++y) {
+ for (x = 0; x < _tilesW; ++x) {
+
+ int start;
+ int finish = 0;
+ BoundingBox boundingBox = _tiles[i];
+
+ if (isBoundingBoxEmpty(boundingBox)) {
+ ++i;
+ continue;
+ }
+
+ x0 = (x * TileSize) + TileX0(boundingBox);
+ y0 = (y * TileSize) + TileY0(boundingBox);
+ y1 = (y * TileSize) + TileY1(boundingBox);
+
+ start = i;
+
+ if (TileX1(boundingBox) == TileSize - 1 && x != _tilesW - 1) { // check if the tile continues
+ while (!finish) {
+ ++x;
+ ++i;
+ if (x == _tilesW || i >= _tilesW * _tilesH ||
+ TileY0(_tiles[i]) != TileY0(boundingBox) ||
+ TileY1(_tiles[i]) != TileY1(boundingBox) ||
+ TileX0(_tiles[i]) != 0)
+ {
+ --x;
+ --i;
+ finish = 1;
+ }
+ }
+ }
+
+ x1 = (x * TileSize) + TileX1(_tiles[i]);
+
+ rects->push_back(Common::Rect(x0, y0, x1 + 1, y1 + 1));
+
+ ++i;
+ }
+ }
+
+ return rects;
+}
+
+} // End of namespace Sword25
diff --git a/engines/sword25/gfx/microtiles.h b/engines/sword25/gfx/microtiles.h
new file mode 100644
index 0000000000..454fc39f37
--- /dev/null
+++ b/engines/sword25/gfx/microtiles.h
@@ -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.
+ *
+ *
+ */
+
+#ifndef SWORD25_MICROTILES_H
+#define SWORD25_MICROTILES_H
+
+#include "common/scummsys.h"
+#include "common/list.h"
+#include "common/util.h"
+#include "common/rect.h"
+
+namespace Sword25 {
+
+typedef uint32 BoundingBox;
+
+const BoundingBox FullBoundingBox = 0x00001F1F;
+const BoundingBox EmptyBoundingBox = 0x00000000;
+const int TileSize = 32;
+
+class RectangleList : public Common::List<Common::Rect> {
+};
+
+class MicroTileArray {
+public:
+ MicroTileArray(int16 width, int16 height);
+ ~MicroTileArray();
+ void addRect(Common::Rect r);
+ void clear();
+ RectangleList *getRectangles();
+protected:
+ BoundingBox *_tiles;
+ int16 _tilesW, _tilesH;
+ byte TileX0(const BoundingBox &boundingBox);
+ byte TileY0(const BoundingBox &boundingBox);
+ byte TileX1(const BoundingBox &boundingBox);
+ byte TileY1(const BoundingBox &boundingBox);
+ bool isBoundingBoxEmpty(const BoundingBox &boundingBox);
+ bool isBoundingBoxFull(const BoundingBox &boundingBox);
+ void setBoundingBox(BoundingBox &boundingBox, byte x0, byte y0, byte x1, byte y1);
+ void updateBoundingBox(BoundingBox &boundingBox, byte x0, byte y0, byte x1, byte y1);
+};
+
+} // namespace Sword25
+
+#endif // SWORD25_MICROTILES_H
diff --git a/engines/sword25/gfx/panel.cpp b/engines/sword25/gfx/panel.cpp
index 6d5b2a623d..931b9cdbe7 100644
--- a/engines/sword25/gfx/panel.cpp
+++ b/engines/sword25/gfx/panel.cpp
@@ -36,6 +36,8 @@
#include "sword25/gfx/graphicengine.h"
#include "sword25/gfx/image/image.h"
+#include "sword25/gfx/renderobjectmanager.h"
+
namespace Sword25 {
Panel::Panel(RenderObjectPtr<RenderObject> parentPtr, int width, int height, uint color) :
@@ -67,7 +69,7 @@ Panel::Panel(InputPersistenceBlock &reader, RenderObjectPtr<RenderObject> parent
Panel::~Panel() {
}
-bool Panel::doRender() {
+bool Panel::doRender(RectangleList *updateRects) {
// Falls der Alphawert 0 ist, ist das Panel komplett durchsichtig und es muss nichts gezeichnet werden.
if (_color >> 24 == 0)
return true;
@@ -75,7 +77,15 @@ bool Panel::doRender() {
GraphicEngine *gfxPtr = Kernel::getInstance()->getGfx();
assert(gfxPtr);
- return gfxPtr->fill(&_bbox, _color);
+ for (RectangleList::iterator it = updateRects->begin(); it != updateRects->end(); ++it) {
+ const Common::Rect &clipRect = *it;
+ if (_bbox.intersects(clipRect)) {
+ Common::Rect intersectionRect = _bbox.findIntersectingRect(clipRect);
+ gfxPtr->fill(&intersectionRect, _color);
+ }
+ }
+
+ return true;
}
bool Panel::persist(OutputPersistenceBlock &writer) {
diff --git a/engines/sword25/gfx/panel.h b/engines/sword25/gfx/panel.h
index cbf04ce40f..74a93247b6 100644
--- a/engines/sword25/gfx/panel.h
+++ b/engines/sword25/gfx/panel.h
@@ -51,15 +51,17 @@ public:
return _color;
}
void setColor(uint color) {
- _color = color;
- forceRefresh();
+ if (_color != color) {
+ _color = color;
+ forceRefresh();
+ }
}
virtual bool persist(OutputPersistenceBlock &writer);
virtual bool unpersist(InputPersistenceBlock &reader);
protected:
- virtual bool doRender();
+ virtual bool doRender(RectangleList *updateRects);
private:
uint _color;
diff --git a/engines/sword25/gfx/renderobject.cpp b/engines/sword25/gfx/renderobject.cpp
index a977eb80ba..807c1eb64b 100644
--- a/engines/sword25/gfx/renderobject.cpp
+++ b/engines/sword25/gfx/renderobject.cpp
@@ -48,6 +48,8 @@
namespace Sword25 {
+int RenderObject::_nextGlobalVersion = 0;
+
RenderObject::RenderObject(RenderObjectPtr<RenderObject> parentPtr, TYPES type, uint handle) :
_managerPtr(0),
_parentPtr(parentPtr),
@@ -65,7 +67,9 @@ RenderObject::RenderObject(RenderObjectPtr<RenderObject> parentPtr, TYPES type,
_type(type),
_initSuccess(false),
_refreshForced(true),
- _handle(0) {
+ _handle(0),
+ _version(++_nextGlobalVersion),
+ _isSolid(false) {
// Renderobject registrieren, abhängig vom Handle-Parameter entweder mit beliebigem oder vorgegebenen Handle.
if (handle == 0)
@@ -106,13 +110,12 @@ RenderObject::~RenderObject() {
RenderObjectRegistry::instance().deregisterObject(this);
}
-bool RenderObject::render() {
+void RenderObject::preRender(RenderObjectQueue *renderQueue) {
// Objektänderungen validieren
validateObject();
- // Falls das Objekt nicht sichtbar ist, muss gar nichts gezeichnet werden
if (!_visible)
- return true;
+ return;
// Falls notwendig, wird die Renderreihenfolge der Kinderobjekte aktualisiert.
if (_childChanged) {
@@ -120,13 +123,36 @@ bool RenderObject::render() {
_childChanged = false;
}
+ renderQueue->add(this);
+
+ RENDEROBJECT_ITER it = _children.begin();
+ for (; it != _children.end(); ++it)
+ (*it)->preRender(renderQueue);
+
+}
+
+bool RenderObject::render(RectangleList *updateRects, const Common::Array<int> &updateRectsMinZ) {
+
+ // Falls das Objekt nicht sichtbar ist, muss gar nichts gezeichnet werden
+ if (!_visible)
+ return true;
+
// Objekt zeichnen.
- doRender();
+ bool needRender = false;
+ int index = 0;
+
+ // Only draw if the bounding box intersects any update rectangle and
+ // the object is in front of the minimum Z value.
+ for (RectangleList::iterator rectIt = updateRects->begin(); !needRender && rectIt != updateRects->end(); ++rectIt, ++index)
+ needRender = (_bbox.contains(*rectIt) || _bbox.intersects(*rectIt)) && getAbsoluteZ() >= updateRectsMinZ[index];
+
+ if (needRender)
+ doRender(updateRects);
// Dann müssen die Kinder gezeichnet werden
RENDEROBJECT_ITER it = _children.begin();
for (; it != _children.end(); ++it)
- if (!(*it)->render())
+ if (!(*it)->render(updateRects, updateRectsMinZ))
return false;
return true;
@@ -157,6 +183,8 @@ bool RenderObject::updateObjectState() {
// Die Bounding-Box neu berechnen und Update-Regions registrieren.
updateBoxes();
+
+ ++_version;
// Änderungen Validieren
validateObject();
@@ -191,9 +219,10 @@ Common::Rect RenderObject::calcBoundingBox() const {
return bbox;
}
-void RenderObject::calcAbsolutePos(int &x, int &y) const {
+void RenderObject::calcAbsolutePos(int &x, int &y, int &z) const {
x = calcAbsoluteX();
y = calcAbsoluteY();
+ z = calcAbsoluteZ();
}
int RenderObject::calcAbsoluteX() const {
@@ -210,6 +239,13 @@ int RenderObject::calcAbsoluteY() const {
return _y;
}
+int RenderObject::calcAbsoluteZ() const {
+ if (_parentPtr.isValid())
+ return _parentPtr->getAbsoluteZ() + _z;
+ else
+ return _z;
+}
+
void RenderObject::deleteAllChildren() {
// Es ist nicht notwendig die Liste zu iterieren, da jedes Kind für sich DetatchChildren an diesem Objekt aufruft und sich somit
// selber entfernt. Daher muss immer nur ein beliebiges Element (hier das letzte) gelöscht werden, bis die Liste leer ist.
@@ -253,7 +289,7 @@ void RenderObject::sortRenderObjects() {
}
void RenderObject::updateAbsolutePos() {
- calcAbsolutePos(_absoluteX, _absoluteY);
+ calcAbsolutePos(_absoluteX, _absoluteY, _absoluteZ);
RENDEROBJECT_ITER it = _children.begin();
for (; it != _children.end(); ++it)
@@ -285,8 +321,10 @@ void RenderObject::setY(int y) {
void RenderObject::setZ(int z) {
if (z < 0)
error("Tried to set a negative Z value (%d).", z);
- else
+ else {
_z = z;
+ updateAbsolutePos();
+ }
}
void RenderObject::setVisible(bool visible) {
diff --git a/engines/sword25/gfx/renderobject.h b/engines/sword25/gfx/renderobject.h
index f963ccaeb3..7e0334ee88 100644
--- a/engines/sword25/gfx/renderobject.h
+++ b/engines/sword25/gfx/renderobject.h
@@ -53,6 +53,8 @@ namespace Sword25 {
class Kernel;
class RenderObjectManager;
+class RenderObjectQueue;
+class RectangleList;
class Bitmap;
class Animation;
class AnimationTemplate;
@@ -211,6 +213,9 @@ public:
// Interface
// ---------
+
+ void preRender(RenderObjectQueue *renderQueue);
+
/**
@brief Rendert des Objekt und alle seine Unterobjekte.
@return Gibt false zurück, falls beim Rendern ein Fehler aufgetreten ist.
@@ -218,7 +223,8 @@ public:
Dieses kann entweder direkt geschehen oder durch den Aufruf von UpdateObjectState() an einem Vorfahren-Objekt.<br>
Diese Methode darf nur von BS_RenderObjectManager aufgerufen werden.
*/
- bool render();
+ bool render(RectangleList *updateRects, const Common::Array<int> &updateRectsMinZ);
+
/**
@brief Bereitet das Objekt und alle seine Unterobjekte auf einen Rendervorgang vor.
Hierbei werden alle Dirty-Rectangles berechnet und die Renderreihenfolge aktualisiert.
@@ -230,7 +236,7 @@ public:
@brief Löscht alle Kinderobjekte.
*/
void deleteAllChildren();
-
+
// Accessor-Methoden
// -----------------
/**
@@ -299,6 +305,11 @@ public:
int getZ() const {
return _z;
}
+
+ int getAbsoluteZ() const {
+ return _absoluteZ;
+ }
+
/**
@brief Gibt die Breite des Objektes zurück.
*/
@@ -352,6 +363,15 @@ public:
return _handle;
}
+ // Get the RenderObjects current version
+ int getVersion() const {
+ return _version;
+ }
+
+ bool isSolid() const {
+ return _isSolid;
+ }
+
// Persistenz-Methoden
// -------------------
virtual bool persist(OutputPersistenceBlock &writer);
@@ -370,9 +390,10 @@ protected:
int _x; ///< Die X-Position des Objektes relativ zum Eltern-Objekt
int _y; ///< Die Y-Position des Objektes relativ zum Eltern-Objekt
+ int _z; ///< Der Z-Wert des Objektes relativ zum Eltern-Objekt
int _absoluteX; ///< Die absolute X-Position des Objektes
int _absoluteY; ///< Die absolute Y-Position des Objektes
- int _z; ///< Der Z-Wert des Objektes relativ zum Eltern-Objekt
+ int _absoluteZ;
int _width; ///< Die Breite des Objektes
int _height; ///< Die Höhe des Objektes
bool _visible; ///< Ist true, wenn das Objekt sichtbar ist
@@ -388,6 +409,13 @@ protected:
int _oldZ;
bool _oldVisible;
+ static int _nextGlobalVersion;
+
+ int _version;
+
+ // This should be set to true if the RenderObject is NOT alpha-blended to optimize drawing
+ bool _isSolid;
+
/// Ein Pointer auf den BS_RenderObjektManager, der das Objekt verwaltet.
RenderObjectManager *_managerPtr;
@@ -402,7 +430,7 @@ protected:
@return Gibt false zurück, falls das Rendern fehlgeschlagen ist.
@remark
*/
- virtual bool doRender() = 0; // { return true; }
+ virtual bool doRender(RectangleList *updateRects) = 0; // { return true; }
// RenderObject-Baum Variablen
// ---------------------------
@@ -472,7 +500,7 @@ private:
/**
@brief Berechnet die absolute Position des Objektes.
*/
- void calcAbsolutePos(int &x, int &y) const;
+ void calcAbsolutePos(int &x, int &y, int &z) const;
/**
@brief Berechnet die absolute Position des Objektes auf der X-Achse.
*/
@@ -481,6 +509,9 @@ private:
@brief Berechnet die absolute Position des Objektes.
*/
int calcAbsoluteY() const;
+
+ int calcAbsoluteZ() const;
+
/**
@brief Sortiert alle Kinderobjekte nach ihrem Renderang.
*/
diff --git a/engines/sword25/gfx/renderobjectmanager.cpp b/engines/sword25/gfx/renderobjectmanager.cpp
index 38289991eb..994d9367ab 100644
--- a/engines/sword25/gfx/renderobjectmanager.cpp
+++ b/engines/sword25/gfx/renderobjectmanager.cpp
@@ -41,17 +41,37 @@
#include "sword25/gfx/timedrenderobject.h"
#include "sword25/gfx/rootrenderobject.h"
+#include "common/system.h"
+
namespace Sword25 {
+void RenderObjectQueue::add(RenderObject *renderObject) {
+ push_back(RenderObjectQueueItem(renderObject, renderObject->getBbox(), renderObject->getVersion()));
+}
+
+bool RenderObjectQueue::exists(const RenderObjectQueueItem &renderObjectQueueItem) {
+ for (RenderObjectQueue::iterator it = begin(); it != end(); ++it)
+ if ((*it)._renderObject == renderObjectQueueItem._renderObject &&
+ (*it)._version == renderObjectQueueItem._version)
+ return true;
+ return false;
+}
+
RenderObjectManager::RenderObjectManager(int width, int height, int framebufferCount) :
_frameStarted(false) {
// Wurzel des BS_RenderObject-Baumes erzeugen.
_rootPtr = (new RootRenderObject(this, width, height))->getHandle();
+ _uta = new MicroTileArray(width, height);
+ _currQueue = new RenderObjectQueue();
+ _prevQueue = new RenderObjectQueue();
}
RenderObjectManager::~RenderObjectManager() {
// Die Wurzel des Baumes löschen, damit werden alle BS_RenderObjects mitgelöscht.
_rootPtr.erase();
+ delete _uta;
+ delete _currQueue;
+ delete _prevQueue;
}
void RenderObjectManager::startFrame() {
@@ -76,7 +96,58 @@ bool RenderObjectManager::render() {
_frameStarted = false;
// Die Render-Methode der Wurzel aufrufen. Dadurch wird das rekursive Rendern der Baumelemente angestoßen.
- return _rootPtr->render();
+
+ _currQueue->clear();
+ _rootPtr->preRender(_currQueue);
+
+ _uta->clear();
+
+ // Add rectangles of objects which don't exist in this frame any more
+ for (RenderObjectQueue::iterator it = _prevQueue->begin(); it != _prevQueue->end(); ++it)
+ if (!_currQueue->exists(*it))
+ _uta->addRect((*it)._bbox);
+ // Add rectangles of objects which are different from the previous frame
+ for (RenderObjectQueue::iterator it = _currQueue->begin(); it != _currQueue->end(); ++it)
+ if (!_prevQueue->exists(*it))
+ _uta->addRect((*it)._bbox);
+
+ RectangleList *updateRects = _uta->getRectangles();
+ Common::Array<int> updateRectsMinZ;
+
+ updateRectsMinZ.reserve(updateRects->size());
+
+ // Calculate the minimum drawing Z value of each update rectangle
+ // Solid bitmaps with a Z order less than the value calculated here would be overdrawn again and
+ // so don't need to be drawn in the first place which speeds things up a bit.
+ for (RectangleList::iterator rectIt = updateRects->begin(); rectIt != updateRects->end(); ++rectIt) {
+ int minZ = 0;
+ for (RenderObjectQueue::iterator it = _currQueue->reverse_begin(); it != _currQueue->end(); --it) {
+ if ((*it)._renderObject->isVisible() && (*it)._renderObject->isSolid() &&
+ (*it)._renderObject->getBbox().contains(*rectIt)) {
+ minZ = (*it)._renderObject->getAbsoluteZ();
+ break;
+ }
+ }
+ updateRectsMinZ.push_back(minZ);
+ }
+
+ if (_rootPtr->render(updateRects, updateRectsMinZ)) {
+ // Copy updated rectangles to the video screen
+ Graphics::Surface *backSurface = Kernel::getInstance()->getGfx()->getSurface();
+ for (RectangleList::iterator rectIt = updateRects->begin(); rectIt != updateRects->end(); ++rectIt) {
+ const int x = (*rectIt).left;
+ const int y = (*rectIt).top;
+ const int width = (*rectIt).width();
+ const int height = (*rectIt).height();
+ g_system->copyRectToScreen(backSurface->getBasePtr(x, y), backSurface->pitch, x, y, width, height);
+ }
+ }
+
+ delete updateRects;
+
+ SWAP(_currQueue, _prevQueue);
+
+ return true;
}
void RenderObjectManager::attatchTimedRenderObject(RenderObjectPtr<TimedRenderObject> renderObjectPtr) {
diff --git a/engines/sword25/gfx/renderobjectmanager.h b/engines/sword25/gfx/renderobjectmanager.h
index 9e7efd8e60..1db91dfbe6 100644
--- a/engines/sword25/gfx/renderobjectmanager.h
+++ b/engines/sword25/gfx/renderobjectmanager.h
@@ -47,11 +47,28 @@
#include "sword25/gfx/renderobjectptr.h"
#include "sword25/kernel/persistable.h"
+#include "sword25/gfx/microtiles.h"
+
namespace Sword25 {
class Kernel;
class RenderObject;
class TimedRenderObject;
+class RenderObjectManager;
+
+struct RenderObjectQueueItem {
+ RenderObject *_renderObject;
+ Common::Rect _bbox;
+ int _version;
+ RenderObjectQueueItem(RenderObject *renderObject, const Common::Rect &bbox, int version)
+ : _renderObject(renderObject), _bbox(bbox), _version(version) {}
+};
+
+class RenderObjectQueue : public Common::List<RenderObjectQueueItem> {
+public:
+ void add(RenderObject *renderObject);
+ bool exists(const RenderObjectQueueItem &renderObjectQueueItem);
+};
/**
@brief Diese Klasse ist für die Verwaltung von BS_RenderObjects zuständig.
@@ -114,6 +131,9 @@ private:
typedef Common::Array<RenderObjectPtr<TimedRenderObject> > RenderObjectList;
RenderObjectList _timedRenderObjects;
+ MicroTileArray *_uta;
+ RenderObjectQueue *_currQueue, *_prevQueue;
+
// RenderObject-Tree Variablen
// ---------------------------
// Der Baum legt die hierachische Ordnung der BS_RenderObjects fest.
diff --git a/engines/sword25/gfx/rootrenderobject.h b/engines/sword25/gfx/rootrenderobject.h
index 4782fad175..f1b19d6bae 100644
--- a/engines/sword25/gfx/rootrenderobject.h
+++ b/engines/sword25/gfx/rootrenderobject.h
@@ -59,7 +59,7 @@ private:
}
protected:
- virtual bool doRender() {
+ virtual bool doRender(RectangleList *updateRects) {
return true;
}
};
diff --git a/engines/sword25/gfx/staticbitmap.cpp b/engines/sword25/gfx/staticbitmap.cpp
index 0ae07b36b5..91b93e8910 100644
--- a/engines/sword25/gfx/staticbitmap.cpp
+++ b/engines/sword25/gfx/staticbitmap.cpp
@@ -71,6 +71,8 @@ bool StaticBitmap::initBitmapResource(const Common::String &filename) {
// RenderObject Eigenschaften aktualisieren
_originalWidth = _width = bitmapPtr->getWidth();
_originalHeight = _height = bitmapPtr->getHeight();
+
+ _isSolid = bitmapPtr->isSolid();
// Bild-Resource freigeben
bitmapPtr->release();
@@ -81,7 +83,7 @@ bool StaticBitmap::initBitmapResource(const Common::String &filename) {
StaticBitmap::~StaticBitmap() {
}
-bool StaticBitmap::doRender() {
+bool StaticBitmap::doRender(RectangleList *updateRects) {
// Bitmap holen
Resource *resourcePtr = Kernel::getInstance()->getResourceManager()->requestResource(_resourceFilename);
assert(resourcePtr);
@@ -98,12 +100,14 @@ bool StaticBitmap::doRender() {
result = bitmapResourcePtr->blit(_absoluteX, _absoluteY,
(_flipV ? BitmapResource::FLIP_V : 0) |
(_flipH ? BitmapResource::FLIP_H : 0),
- 0, _modulationColor, -1, -1);
+ 0, _modulationColor, -1, -1,
+ updateRects);
} else {
result = bitmapResourcePtr->blit(_absoluteX, _absoluteY,
(_flipV ? BitmapResource::FLIP_V : 0) |
(_flipH ? BitmapResource::FLIP_H : 0),
- 0, _modulationColor, _width, _height);
+ 0, _modulationColor, _width, _height,
+ updateRects);
}
// Resource freigeben
diff --git a/engines/sword25/gfx/staticbitmap.h b/engines/sword25/gfx/staticbitmap.h
index e66ede02b4..90b92b4331 100644
--- a/engines/sword25/gfx/staticbitmap.h
+++ b/engines/sword25/gfx/staticbitmap.h
@@ -65,7 +65,7 @@ public:
virtual bool unpersist(InputPersistenceBlock &reader);
protected:
- virtual bool doRender();
+ virtual bool doRender(RectangleList *updateRects);
private:
Common::String _resourceFilename;
diff --git a/engines/sword25/gfx/text.cpp b/engines/sword25/gfx/text.cpp
index 82bb7cdff7..d4aaa90682 100644
--- a/engines/sword25/gfx/text.cpp
+++ b/engines/sword25/gfx/text.cpp
@@ -91,9 +91,11 @@ bool Text::setFont(const Common::String &font) {
}
void Text::setText(const Common::String &text) {
- _text = text;
- updateFormat();
- forceRefresh();
+ if (_text != text) {
+ _text = text;
+ updateFormat();
+ forceRefresh();
+ }
}
void Text::setColor(uint modulationColor) {
@@ -129,7 +131,7 @@ void Text::setAutoWrapThreshold(uint autoWrapThreshold) {
}
}
-bool Text::doRender() {
+bool Text::doRender(RectangleList *updateRects) {
// Font-Resource locken.
FontResource *fontPtr = lockFontResource();
if (!fontPtr)
@@ -171,7 +173,7 @@ bool Text::doRender() {
Common::Rect renderRect(curX, curY, curX + curRect.width(), curY + curRect.height());
renderRect.translate(curRect.left - curX, curRect.top - curY);
- result = charMapPtr->blit(curX, curY, Image::FLIP_NONE, &renderRect, _modulationColor);
+ result = charMapPtr->blit(curX, curY, Image::FLIP_NONE, &renderRect, _modulationColor, -1, -1, updateRects);
if (!result)
break;
diff --git a/engines/sword25/gfx/text.h b/engines/sword25/gfx/text.h
index a0d668014f..94e7a30865 100644
--- a/engines/sword25/gfx/text.h
+++ b/engines/sword25/gfx/text.h
@@ -136,7 +136,7 @@ public:
virtual bool unpersist(InputPersistenceBlock &reader);
protected:
- virtual bool doRender();
+ virtual bool doRender(RectangleList *updateRects);
private:
Text(RenderObjectPtr<RenderObject> parentPtr);
diff --git a/engines/sword25/module.mk b/engines/sword25/module.mk
index e24a221244..234baec165 100644
--- a/engines/sword25/module.mk
+++ b/engines/sword25/module.mk
@@ -16,6 +16,7 @@ MODULE_OBJS := \
gfx/fontresource.o \
gfx/graphicengine.o \
gfx/graphicengine_script.o \
+ gfx/microtiles.o \
gfx/panel.o \
gfx/renderobject.o \
gfx/renderobjectmanager.o \
diff --git a/engines/teenagent/detection.cpp b/engines/teenagent/detection.cpp
index 0c1268a5fc..f9f5d2f13a 100644
--- a/engines/teenagent/detection.cpp
+++ b/engines/teenagent/detection.cpp
@@ -53,7 +53,7 @@ static const ADGameDescription teenAgentGameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -73,7 +73,7 @@ static const ADGameDescription teenAgentGameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::CZ_CZE,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
diff --git a/engines/testbed/detection.cpp b/engines/testbed/detection.cpp
index 02a9dfcb87..fd426d3e98 100644
--- a/engines/testbed/detection.cpp
+++ b/engines/testbed/detection.cpp
@@ -38,7 +38,7 @@ static const ADGameDescription testbedDescriptions[] = {
"",
AD_ENTRY1("TESTBED", 0), // Game-data file for detection
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
diff --git a/engines/testbed/midi.cpp b/engines/testbed/midi.cpp
index 69d361b0d6..70ede406d5 100644
--- a/engines/testbed/midi.cpp
+++ b/engines/testbed/midi.cpp
@@ -96,6 +96,10 @@ TestExitStatus MidiTests::playMidiMusic() {
Common::String errMsg = MidiDriver::getErrorName(errCode);
Testsuite::writeOnScreen(errMsg, Common::Point(0, 100));
Testsuite::logPrintf("Error! %s", errMsg.c_str());
+
+ delete smfParser;
+ delete driver;
+
return kTestFailed;
}
diff --git a/engines/tinsel/detection_tables.h b/engines/tinsel/detection_tables.h
index 4762acfe2c..f05f39b319 100644
--- a/engines/tinsel/detection_tables.h
+++ b/engines/tinsel/detection_tables.h
@@ -41,7 +41,7 @@ static const TinselGameDescription gameDescriptions[] = {
AD_ENTRY1s("dw.gra", "ce1b57761ba705221bcf70955b827b97", 441192),
//AD_ENTRY1s("dw.scn", "ccd72f02183d0e96b6e7d8df9492cda8", 23308),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO,
GUIO3(GUIO_NOSPEECH, GUIO_NOSFX, GUIO_NOMUSIC)
},
@@ -60,7 +60,7 @@ static const TinselGameDescription gameDescriptions[] = {
{"english.smp", 0, NULL, -1},
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO | ADGF_CD,
GUIO0()
},
@@ -104,7 +104,7 @@ static const TinselGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE,
GUIO1(GUIO_NOSPEECH)
},
@@ -127,7 +127,7 @@ static const TinselGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE,
GUIO1(GUIO_NOSPEECH)
},
@@ -150,7 +150,7 @@ static const TinselGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE,
GUIO1(GUIO_NOSPEECH)
},
@@ -173,7 +173,7 @@ static const TinselGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE,
GUIO1(GUIO_NOSPEECH)
},
@@ -189,7 +189,7 @@ static const TinselGameDescription gameDescriptions[] = {
"Floppy",
AD_ENTRY1s("dw.gra", "c8808ccd988d603dd35dff42013ae7fd", 781656),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NOSPEECH)
},
@@ -208,7 +208,7 @@ static const TinselGameDescription gameDescriptions[] = {
{"english.smp", 0, NULL, -1},
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -227,7 +227,7 @@ static const TinselGameDescription gameDescriptions[] = {
{"english.smp", 0, NULL, -1},
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO_NONE
},
@@ -243,7 +243,7 @@ static const TinselGameDescription gameDescriptions[] = {
"Floppy",
AD_ENTRY1s("dw.gra", "ef05bbd2a754bd11a2e87bcd84ab5ccf", 781864),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO_NOSPEECH
},
@@ -265,7 +265,7 @@ static const TinselGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO0()
},
@@ -290,7 +290,7 @@ static const TinselGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO0()
},
@@ -314,7 +314,7 @@ static const TinselGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE,
GUIO0()
},
@@ -337,7 +337,7 @@ static const TinselGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO0()
},
@@ -360,7 +360,7 @@ static const TinselGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DROPLANGUAGE | ADGF_CD,
GUIO0()
},
@@ -380,7 +380,7 @@ static const TinselGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -400,7 +400,7 @@ static const TinselGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::HE_ISR,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -463,7 +463,7 @@ static const TinselGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -501,7 +501,7 @@ static const TinselGameDescription gameDescriptions[] = {
"CD",
AD_ENTRY1s("dw.scn", "6182c7986eaec893c62fb6ea13a9f225", 774556),
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO0()
},
@@ -522,7 +522,7 @@ static const TinselGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::RU_RUS,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO1(GUIO_NOASPECT)
},
@@ -543,7 +543,7 @@ static const TinselGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::PL_POL,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO_NONE
},
@@ -563,7 +563,7 @@ static const TinselGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO | ADGF_CD,
GUIO1(GUIO_NOASPECT)
},
@@ -583,7 +583,7 @@ static const TinselGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::EN_GRB,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO1(GUIO_NOASPECT)
},
@@ -603,7 +603,7 @@ static const TinselGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::EN_USA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO1(GUIO_NOASPECT)
},
@@ -623,7 +623,7 @@ static const TinselGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO1(GUIO_NOASPECT)
},
@@ -643,7 +643,7 @@ static const TinselGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO1(GUIO_NOASPECT)
},
@@ -664,7 +664,7 @@ static const TinselGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO1(GUIO_NOASPECT)
},
@@ -684,7 +684,7 @@ static const TinselGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO1(GUIO_NOASPECT)
},
@@ -705,7 +705,7 @@ static const TinselGameDescription gameDescriptions[] = {
{NULL, 0, NULL, 0}
},
Common::RU_RUS,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO1(GUIO_NOASPECT)
},
diff --git a/engines/tinsel/dialogs.cpp b/engines/tinsel/dialogs.cpp
index d0c99f7830..e6229ff3a0 100644
--- a/engines/tinsel/dialogs.cpp
+++ b/engines/tinsel/dialogs.cpp
@@ -3655,10 +3655,10 @@ extern void HideConversation(bool bHide) {
if (g_InventoryState == ACTIVE_INV && g_ino == INV_CONV) {
if (bHide) {
// Move all the window and icons off-screen
- for (i = 0; g_objArray[i] && i < MAX_WCOMP; i++) {
+ for (i = 0; i < MAX_WCOMP && g_objArray[i]; i++) {
MultiAdjustXY(g_objArray[i], 2 * SCREEN_WIDTH, 0);
}
- for (i = 0; g_iconArray[i] && i < MAX_ICONS; i++) {
+ for (i = 0; i < MAX_ICONS && g_iconArray[i]; i++) {
MultiAdjustXY(g_iconArray[i], 2 * SCREEN_WIDTH, 0);
}
diff --git a/engines/tinsel/faders.cpp b/engines/tinsel/faders.cpp
index b772e37b47..b51b1d6d4f 100644
--- a/engines/tinsel/faders.cpp
+++ b/engines/tinsel/faders.cpp
@@ -106,7 +106,7 @@ static void FadeProcess(CORO_PARAM, const void *param) {
FadingPalette(pFade->pPalQ, true);
// get pointer to palette - reduce pointer indirection a bit
- _ctx->pPalette = (PALETTE *)LockMem(FROM_32(pFade->pPalQ->hPal));
+ _ctx->pPalette = (PALETTE *)LockMem(pFade->pPalQ->hPal);
for (_ctx->pColMult = pFade->pColorMultTable; *_ctx->pColMult >= 0; _ctx->pColMult++) {
// go through all multipliers in table - until a negative entry
diff --git a/engines/tinsel/graphics.cpp b/engines/tinsel/graphics.cpp
index ef8a10221b..5dae984def 100644
--- a/engines/tinsel/graphics.cpp
+++ b/engines/tinsel/graphics.cpp
@@ -797,9 +797,10 @@ static void PackedWrtNonZero(DRAWOBJECT *pObj, uint8 *srcP, uint8 *destP,
* Clears both the screen surface buffer and screen to the specified value
*/
void ClearScreen() {
+ byte blackColorIndex = (!TinselV1Mac) ? 0 : 255;
void *pDest = _vm->screen().getBasePtr(0, 0);
- memset(pDest, 0, SCREEN_WIDTH * SCREEN_HEIGHT);
- g_system->fillScreen(0);
+ memset(pDest, blackColorIndex, SCREEN_WIDTH * SCREEN_HEIGHT);
+ g_system->fillScreen(blackColorIndex);
g_system->updateScreen();
}
diff --git a/engines/tinsel/object.cpp b/engines/tinsel/object.cpp
index cbf1c86649..b70b581bbe 100644
--- a/engines/tinsel/object.cpp
+++ b/engines/tinsel/object.cpp
@@ -375,7 +375,7 @@ OBJECT *InitObject(const OBJ_INIT *pInitTbl) {
if (pImg->hImgPal) {
// allocate a palette for this object
- pPalQ = AllocPalette(FROM_LE_32(pImg->hImgPal));
+ pPalQ = AllocPalette(FROM_32(pImg->hImgPal));
// make sure palette allocated
assert(pPalQ != NULL);
@@ -494,7 +494,7 @@ OBJECT *RectangleObject(SCNHANDLE hPal, int color, int width, int height) {
OBJECT *pRect = InitObject(&rectObj);
// allocate a palette for this object
- pPalQ = AllocPalette(FROM_32(hPal));
+ pPalQ = AllocPalette(hPal);
// make sure palette allocated
assert(pPalQ != NULL);
diff --git a/engines/tinsel/palette.cpp b/engines/tinsel/palette.cpp
index 505cb21adb..b72d52cc8d 100644
--- a/engines/tinsel/palette.cpp
+++ b/engines/tinsel/palette.cpp
@@ -150,7 +150,7 @@ void PalettesToVideoDAC() {
// we are using a palette handle
// get hardware palette pointer
- pPalette = (const PALETTE *)LockMem(FROM_32(pDACtail->pal.hRGBarray));
+ pPalette = (const PALETTE *)LockMem(pDACtail->pal.hRGBarray);
// get RGB pointer
pColors = pPalette->palRGB;
@@ -306,7 +306,7 @@ PALQ *AllocPalette(SCNHANDLE hNewPal) {
PALETTE *pNewPal;
// get pointer to new palette
- pNewPal = (PALETTE *)LockMem(FROM_32(hNewPal));
+ pNewPal = (PALETTE *)LockMem(hNewPal);
// search all structs in palette allocator - see if palette already allocated
for (p = g_palAllocData; p < g_palAllocData + NUM_PALETTES; p++) {
diff --git a/engines/toltecs/detection.cpp b/engines/toltecs/detection.cpp
index 788f813762..c5652f0c8d 100644
--- a/engines/toltecs/detection.cpp
+++ b/engines/toltecs/detection.cpp
@@ -66,7 +66,7 @@ static const ToltecsGameDescription gameDescriptions[] = {
0,
AD_ENTRY1s("WESTERN", "05472037e9cfde146e953c434e74f0f4", 337643527),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NONE)
},
@@ -79,7 +79,7 @@ static const ToltecsGameDescription gameDescriptions[] = {
0,
AD_ENTRY1s("WESTERN", "ba1742d3193b68ceb9434e2ab7a09a9b", 391462783),
Common::RU_RUS,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NONE)
},
@@ -92,7 +92,7 @@ static const ToltecsGameDescription gameDescriptions[] = {
0,
AD_ENTRY1s("WESTERN", "1a3292bad8e0bb5701800c73531dd75e", 345176617),
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NONE)
},
@@ -105,7 +105,7 @@ static const ToltecsGameDescription gameDescriptions[] = {
0,
AD_ENTRY1s("WESTERN", "4fb845635cbdac732453fe23be350df9", 327269545),
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NONE)
},
@@ -118,7 +118,7 @@ static const ToltecsGameDescription gameDescriptions[] = {
0,
AD_ENTRY1s("WESTERN", "479f468beccc1b0ce5873ec523d1380e", 308391018),
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NONE)
},
@@ -132,7 +132,7 @@ static const ToltecsGameDescription gameDescriptions[] = {
0,
AD_ENTRY1s("WESTERN", "69a5572e75409d8c6230b787faa353af", 337647960),
Common::HU_HUN,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NONE)
},
@@ -145,7 +145,7 @@ static const ToltecsGameDescription gameDescriptions[] = {
0,
AD_ENTRY1s("WESTERN", "53a0abd1c0bc5cad8ba18f0e56877705", 46241833),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO,
GUIO1(GUIO_NONE)
},
@@ -158,7 +158,7 @@ static const ToltecsGameDescription gameDescriptions[] = {
0,
AD_ENTRY1s("WESTERN", "1c85e82712d24f1d5c1ea2a66ddd75c2", 47730038),
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO,
GUIO1(GUIO_NONE)
},
diff --git a/engines/toltecs/movie.cpp b/engines/toltecs/movie.cpp
index 8bc00511e9..341da7e5f3 100644
--- a/engines/toltecs/movie.cpp
+++ b/engines/toltecs/movie.cpp
@@ -45,7 +45,7 @@ enum ChunkTypes {
kChunkStopSubtitles = 8
};
-MoviePlayer::MoviePlayer(ToltecsEngine *vm) : _vm(vm), _isPlaying(false) {
+MoviePlayer::MoviePlayer(ToltecsEngine *vm) : _vm(vm), _isPlaying(false), _lastPrefetchOfs(0), _framesPerSoundChunk(0), _endPos(0) {
}
MoviePlayer::~MoviePlayer() {
@@ -67,12 +67,12 @@ void MoviePlayer::playMovie(uint resIndex) {
memset(moviePalette, 0, sizeof(moviePalette));
_vm->_screen->finishTalkTextItems();
- _vm->_screen->clearSprites();
_vm->_arc->openResource(resIndex);
+ _endPos = _vm->_arc->pos() + _vm->_arc->getResourceSize(resIndex);
- _frameCount = _vm->_arc->readUint32LE();
- _chunkCount = _vm->_arc->readUint32LE();
+ /*_frameCount = */_vm->_arc->readUint32LE();
+ uint32 chunkCount = _vm->_arc->readUint32LE();
// TODO: Figure out rest of the header
_vm->_arc->readUint32LE();
@@ -91,7 +91,6 @@ void MoviePlayer::playMovie(uint resIndex) {
_vm->_mixer->playStream(Audio::Mixer::kPlainSoundType, &_audioStreamHandle, _audioStream);
- _soundChunkFramesLeft = 0;
_lastPrefetchOfs = 0;
fetchAudioChunks();
@@ -100,8 +99,9 @@ void MoviePlayer::playMovie(uint resIndex) {
uint32 chunkBufferSize = 0;
uint32 frame = 0;
bool abortMovie = false;
+ uint32 soundChunkFramesLeft = 0;
- while (_chunkCount-- && !abortMovie) {
+ while (chunkCount-- && !abortMovie) {
byte chunkType = _vm->_arc->readByte();
uint32 chunkSize = _vm->_arc->readUint32LE();
@@ -111,6 +111,7 @@ void MoviePlayer::playMovie(uint resIndex) {
// fetchAudioChunks()
if (chunkType == kChunkAudio) {
_vm->_arc->skip(chunkSize);
+ soundChunkFramesLeft += _framesPerSoundChunk;
} else {
// Only reallocate the chunk buffer if the new chunk is bigger
if (chunkSize > chunkBufferSize) {
@@ -128,8 +129,7 @@ void MoviePlayer::playMovie(uint resIndex) {
unpackRle(chunkBuffer, _vm->_screen->_backScreen);
_vm->_screen->_fullRefresh = true;
- _soundChunkFramesLeft--;
- if (_soundChunkFramesLeft <= _framesPerSoundChunk) {
+ if (--soundChunkFramesLeft <= _framesPerSoundChunk) {
fetchAudioChunks();
}
@@ -208,13 +208,12 @@ void MoviePlayer::playMovie(uint resIndex) {
void MoviePlayer::fetchAudioChunks() {
uint32 startOfs = _vm->_arc->pos();
- uint32 chunkCount = _chunkCount;
uint prefetchChunkCount = 0;
if (_lastPrefetchOfs != 0)
_vm->_arc->seek(_lastPrefetchOfs, SEEK_SET);
- while (chunkCount-- && prefetchChunkCount < _framesPerSoundChunk / 2) {
+ while (prefetchChunkCount < _framesPerSoundChunk / 2 && _vm->_arc->pos() < _endPos) {
byte chunkType = _vm->_arc->readByte();
uint32 chunkSize = _vm->_arc->readUint32LE();
if (chunkType == kChunkAudio) {
@@ -223,7 +222,6 @@ void MoviePlayer::fetchAudioChunks() {
_audioStream->queueBuffer(chunkBuffer, chunkSize, DisposeAfterUse::YES, Audio::FLAG_UNSIGNED);
chunkBuffer = NULL;
prefetchChunkCount++;
- _soundChunkFramesLeft += _framesPerSoundChunk;
} else {
_vm->_arc->seek(chunkSize, SEEK_CUR);
}
diff --git a/engines/toltecs/movie.h b/engines/toltecs/movie.h
index c1ed6d7ba0..aa28c83fef 100644
--- a/engines/toltecs/movie.h
+++ b/engines/toltecs/movie.h
@@ -46,8 +46,8 @@ protected:
bool _isPlaying;
- uint32 _chunkCount, _frameCount, _lastPrefetchOfs;
- uint32 _soundChunkFramesLeft, _framesPerSoundChunk;
+ uint32 _framesPerSoundChunk;
+ int32 _lastPrefetchOfs, _endPos;
void unpackPalette(byte *source, byte *dest, int elemCount, int elemSize);
void unpackRle(byte *source, byte *dest);
diff --git a/engines/toltecs/screen.cpp b/engines/toltecs/screen.cpp
index 1cd2373b43..5e12773e1b 100644
--- a/engines/toltecs/screen.cpp
+++ b/engines/toltecs/screen.cpp
@@ -251,10 +251,6 @@ void Screen::addAnimatedSprite(int16 x, int16 y, int16 fragmentId, byte *data, i
}
}
-void Screen::clearSprites() {
-
-}
-
void Screen::blastSprite(int16 x, int16 y, int16 fragmentId, int16 resIndex, uint16 flags) {
DrawRequest drawRequest;
SpriteDrawItem sprite;
diff --git a/engines/toltecs/screen.h b/engines/toltecs/screen.h
index 52f412251e..7b2149fded 100644
--- a/engines/toltecs/screen.h
+++ b/engines/toltecs/screen.h
@@ -167,7 +167,6 @@ public:
// Sprite list
void addStaticSprite(byte *spriteItem);
void addAnimatedSprite(int16 x, int16 y, int16 fragmentId, byte *data, int16 *spriteArray, bool loop, int mode);
- void clearSprites();
// Sprite drawing
void drawSprite(const SpriteDrawItem &sprite);
diff --git a/engines/toltecs/script.cpp b/engines/toltecs/script.cpp
index 07d74ac369..476c3a4fcf 100644
--- a/engines/toltecs/script.cpp
+++ b/engines/toltecs/script.cpp
@@ -265,7 +265,7 @@ void ScriptInterpreter::execOpcode(byte opcode) {
_subCode = _code;
byte length = readByte();
if (length == 0) {
- warning("Possible script bug detected - opcode length is 0 when calling script function");
+ warning("Opcode length is 0 when calling script function");
return;
}
debug(2, "length = %d", length);
@@ -484,7 +484,9 @@ void ScriptInterpreter::execOpcode(byte opcode) {
_code++;
break;
default:
- error("Invalid opcode %d", opcode);
+ // Most likely a script bug. Throw a warning and ignore it.
+ // The original ignores invalid opcodes as well - bug #3604025.
+ warning("Invalid opcode %d", opcode);
}
}
diff --git a/engines/toltecs/toltecs.cpp b/engines/toltecs/toltecs.cpp
index 1a399dacc0..188facd63c 100644
--- a/engines/toltecs/toltecs.cpp
+++ b/engines/toltecs/toltecs.cpp
@@ -153,7 +153,6 @@ Common::Error ToltecsEngine::run() {
_palette->loadAddPalette(9, 224);
_palette->setDeltaPalette(_palette->getMainPalette(), 7, 0, 31, 224);
_screen->finishTalkTextItems();
- _screen->clearSprites();
_menuSystem->run();
/*
while (1) {
@@ -280,7 +279,6 @@ void ToltecsEngine::updateScreen() {
_flag01 = 1;
_counter02 = 1;
} else {
- _screen->clearSprites();
_flag01 = 0;
}
@@ -425,8 +423,6 @@ void ToltecsEngine::setGuiHeight(int16 guiHeight) {
void ToltecsEngine::setCamera(int16 x, int16 y) {
_screen->finishTalkTextItems();
- _screen->clearSprites();
-
_cameraX = x;
_newCameraX = x;
@@ -646,7 +642,6 @@ void ToltecsEngine::showMenu(MenuID menuId) {
_palette->loadAddPalette(9, 224);
_palette->setDeltaPalette(_palette->getMainPalette(), 7, 0, 31, 224);
_screen->finishTalkTextItems();
- _screen->clearSprites();
CursorMan.showMouse(true);
_menuSystem->run(menuId);
_keyState.reset();
diff --git a/engines/toon/anim.cpp b/engines/toon/anim.cpp
index 1c85a8d798..a6744568f7 100644
--- a/engines/toon/anim.cpp
+++ b/engines/toon/anim.cpp
@@ -78,8 +78,10 @@ bool Animation::loadAnimation(const Common::String &file) {
delete[] _frames;
_frames = new AnimationFrame[_numFrames];
for (int32 e = 0; e < _numFrames; e++) {
- if (READ_LE_UINT32(data) != 0x12345678)
+ if (READ_LE_UINT32(data) != 0x12345678) {
+ delete[] finalBuffer;
return false;
+ }
int32 oldRef = READ_LE_UINT32(data + 4);
uint32 compressedSize = READ_LE_UINT32(data + 8);
diff --git a/engines/toon/console.cpp b/engines/toon/console.cpp
index 8037dca4cb..18f81e1323 100644
--- a/engines/toon/console.cpp
+++ b/engines/toon/console.cpp
@@ -26,6 +26,7 @@
namespace Toon {
ToonConsole::ToonConsole(ToonEngine *vm) : GUI::Debugger(), _vm(vm) {
+ assert(_vm);
}
ToonConsole::~ToonConsole() {
diff --git a/engines/toon/detection.cpp b/engines/toon/detection.cpp
index 38b1f4f6e1..cee7a23796 100644
--- a/engines/toon/detection.cpp
+++ b/engines/toon/detection.cpp
@@ -44,7 +44,7 @@ static const ADGameDescription gameDescriptions[] = {
{"study.svl", 0, "281efa3f33f6712c0f641a605f4d40fd", 2511090},
AD_LISTEND
},
- Common::EN_ANY, Common::kPlatformPC, ADGF_NO_FLAGS, GUIO0()
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO0()
},
{
"toon", "",
@@ -54,7 +54,7 @@ static const ADGameDescription gameDescriptions[] = {
{"study.svl", 0, "df056b94ea83f1ed92a539cf636053ab", 2542668},
AD_LISTEND
},
- Common::FR_FRA, Common::kPlatformPC, ADGF_NO_FLAGS, GUIO0()
+ Common::FR_FRA, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO0()
},
{
"toon", "",
@@ -64,7 +64,7 @@ static const ADGameDescription gameDescriptions[] = {
{"study.svl", 0, "72fe96a9e10967d3138e918295babc42", 2910283},
AD_LISTEND
},
- Common::DE_DEU, Common::kPlatformPC, ADGF_NO_FLAGS, GUIO0()
+ Common::DE_DEU, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO0()
},
{
"toon", "",
@@ -74,7 +74,7 @@ static const ADGameDescription gameDescriptions[] = {
{"study.svl", 0, "b6b1ee2d9d94d53d305856039ab7bde7", 2634620},
AD_LISTEND
},
- Common::ES_ESP, Common::kPlatformPC, ADGF_NO_FLAGS, GUIO0()
+ Common::ES_ESP, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO0()
},
{
"toon", "",
@@ -83,7 +83,7 @@ static const ADGameDescription gameDescriptions[] = {
{"arcaddbl.svl", 0, "1d1b96e317e03ffd3874a8ebe59556f3", 6246232},
{"study.svl", 0, "d4aff126ee27be3c3d25e2996369d7cb", 2324368},
},
- Common::RU_RUS, Common::kPlatformPC, ADGF_NO_FLAGS, GUIO0()
+ Common::RU_RUS, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO0()
},
{
"toon", "",
@@ -93,7 +93,7 @@ static const ADGameDescription gameDescriptions[] = {
{"generic.svl", 0, "5eb99850ada22f0b8cf6392262d4dd07", 9404599},
AD_LISTEND
},
- Common::DE_DEU, Common::kPlatformPC, ADGF_DEMO, GUIO0()
+ Common::DE_DEU, Common::kPlatformDOS, ADGF_DEMO, GUIO0()
},
{
"toon", "",
@@ -102,7 +102,7 @@ static const ADGameDescription gameDescriptions[] = {
{"generic.svl", 0, "5c42724bb93b360dca7044d6b7ef26e5", 7739319},
AD_LISTEND
},
- Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO0()
+ Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO, GUIO0()
},
AD_TABLE_END_MARKER
diff --git a/engines/toon/font.cpp b/engines/toon/font.cpp
index 1e851ff4ae..e26ed92f83 100644
--- a/engines/toon/font.cpp
+++ b/engines/toon/font.cpp
@@ -116,15 +116,15 @@ void FontRenderer::computeSize(const Common::String &origText, int16 *retX, int1
const byte *text = (const byte *)origText.c_str();
while (*text) {
byte curChar = *text;
- if (curChar < 32) {
- text++;
- continue;
- } else if (curChar == 13) {
+ if (curChar == 13) {
totalWidth = MAX(totalWidth, lineWidth);
totalHeight += lineHeight;
lineHeight = 0;
lineWidth = 0;
lastLineHeight = 0;
+ } else if (curChar < 32) {
+ text++;
+ continue;
} else {
curChar = textToFont(curChar);
int16 charWidth = _currentFont->getFrameWidth(curChar) - 1;
diff --git a/engines/toon/toon.cpp b/engines/toon/toon.cpp
index 9fd8415676..7ad29ab8d8 100644
--- a/engines/toon/toon.cpp
+++ b/engines/toon/toon.cpp
@@ -2882,7 +2882,7 @@ void ToonEngine::getTextPosition(int32 characterId, int32 *retX, int32 *retY) {
if (character && !_gameState->_inCutaway) {
if (character->getAnimationInstance()) {
if (character->getX() >= _gameState->_currentScrollValue && character->getX() <= _gameState->_currentScrollValue + TOON_SCREEN_WIDTH) {
- int16 x1, y1, x2, y2;
+ int16 x1= 0, y1 = 0, x2 = 0, y2 = 0;
character->getAnimationInstance()->getRect(&x1, &y1, &x2, &y2);
*retX = (x1 + x2) / 2;
*retY = y1;
diff --git a/engines/touche/detection.cpp b/engines/touche/detection.cpp
index e4bbe0c4c1..0662e718d5 100644
--- a/engines/touche/detection.cpp
+++ b/engines/touche/detection.cpp
@@ -43,7 +43,7 @@ static const ADGameDescription gameDescriptions[] = {
"",
AD_ENTRY1s("touche.dat", "2af0177f8887e3430f345e6b4d8b1414", 26350211),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -52,7 +52,7 @@ static const ADGameDescription gameDescriptions[] = {
"",
AD_ENTRY1s("touche.dat", "95967f0b51d2e813e99ca00325098340", 26350190),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -61,7 +61,7 @@ static const ADGameDescription gameDescriptions[] = {
"",
AD_ENTRY1s("touche.dat", "1caa20bb4d4fc2ce8eb867b6610082b3", 26558232),
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -70,7 +70,7 @@ static const ADGameDescription gameDescriptions[] = {
"",
AD_ENTRY1s("touche.dat", "be2ae6454b3325e410946f2322547cd4", 26625537),
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -79,7 +79,7 @@ static const ADGameDescription gameDescriptions[] = {
"",
AD_ENTRY1s("touche.dat", "64e95ba1decf5a5a60f8fa1840f40c62", 26529523),
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -88,7 +88,7 @@ static const ADGameDescription gameDescriptions[] = {
"",
AD_ENTRY1s("touche.dat", "1f442331d4b327c3488a9f6ffe9bdd25", 26367792),
Common::IT_ITA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -97,7 +97,7 @@ static const ADGameDescription gameDescriptions[] = {
"",
AD_ENTRY1s("touche.dat", "42d19a0bef65465109020440a9caa228", 26487370),
Common::PL_POL,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO0()
},
@@ -106,7 +106,7 @@ static const ADGameDescription gameDescriptions[] = {
"Demo",
AD_ENTRY1s("touche.dat", "ddaed436445b2e77294ed19e8ae4aa2c", 8720683),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO,
GUIO0()
},
diff --git a/engines/tsage/converse.cpp b/engines/tsage/converse.cpp
index ba27db9104..de5ac62425 100644
--- a/engines/tsage/converse.cpp
+++ b/engines/tsage/converse.cpp
@@ -42,6 +42,8 @@ SequenceManager::SequenceManager() : Action() {
_objectIndex = 0;
_keepActive = false;
_onCallback = NULL;
+ for (int i = 0; i < 6; i ++)
+ _objectList[i] = NULL;
setup();
}
@@ -415,6 +417,8 @@ ConversationChoiceDialog::ConversationChoiceDialog() {
_stdColor = 23;
_highlightColor = g_globals->_scenePalette._colors.background;
_fontNumber = 1;
+ _savedFgColor = _savedFontNumber = 0;
+ _selectedIndex = 0;
}
int ConversationChoiceDialog::execute(const Common::StringArray &choiceList) {
@@ -587,6 +591,8 @@ StripManager::StripManager() {
_activeSpeaker = NULL;
_onBegin = NULL;
_onEnd = NULL;
+ _sceneNumber = 0;
+ _lookupList = NULL;
reset();
}
@@ -932,6 +938,7 @@ Speaker::Speaker() : EventHandler() {
_color1 = _color2 = _color3 = g_globals->_scenePalette._colors.foreground;
_action = NULL;
_speakerName = "SPEAKER";
+ _oldSceneNumber = -1;
}
void Speaker::synchronize(Serializer &s) {
diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp
index 292e74c09b..4a90e23a33 100644
--- a/engines/tsage/core.cpp
+++ b/engines/tsage/core.cpp
@@ -65,6 +65,11 @@ InvObject::InvObject(int visage, int strip, int frame) {
_frame = frame;
_sceneNumber = 0;
_iconResNum = 10;
+
+ _displayResNum = 0;
+ _rlbNum = 0;
+ _cursorNum = 0;
+ _cursorId = INV_NONE;
}
InvObject::InvObject(int strip, int frame) {
@@ -75,6 +80,11 @@ InvObject::InvObject(int strip, int frame) {
_visage = 7;
_sceneNumber = 0;
_iconResNum = 10;
+
+ _displayResNum = 0;
+ _rlbNum = 0;
+ _cursorNum = 0;
+ _cursorId = INV_NONE;
}
void InvObject::setCursor() {
@@ -163,6 +173,8 @@ Action::Action() {
_owner = NULL;
_endHandler = NULL;
_attached = false;
+ _delayFrames = 0;
+ _startFrame = 0;
}
void Action::synchronize(Serializer &s) {
@@ -387,6 +399,8 @@ void ObjectMover::endMove() {
ObjectMover2::ObjectMover2() : ObjectMover() {
_destObject = NULL;
+ _minArea = 0;
+ _maxArea = 0;
}
void ObjectMover2::synchronize(Serializer &s) {
@@ -1047,6 +1061,8 @@ PaletteModifier::PaletteModifier() {
PaletteModifierCached::PaletteModifierCached(): PaletteModifier() {
_step = 0;
_percent = 0;
+ for (int i = 0; i < 768; i++)
+ _palette[i] = 0;
}
void PaletteModifierCached::setPalette(ScenePalette *palette, int step) {
@@ -1070,6 +1086,10 @@ PaletteRotation::PaletteRotation() : PaletteModifierCached() {
_frameNumber = g_globals->_events.getFrameNumber();
_idxChange = 1;
_countdown = 0;
+ _currIndex = 0;
+ _start = _end = 0;
+ _rotationMode = 0;
+ _duration = 0;
}
void PaletteRotation::synchronize(Serializer &s) {
@@ -1273,6 +1293,10 @@ ScenePalette::ScenePalette() {
}
_field412 = 0;
+ _redColor = _greenColor = _blueColor = 0;
+ _aquaColor = 0;
+ _purpleColor = 0;
+ _limeColor = 0;
}
ScenePalette::~ScenePalette() {
@@ -1280,6 +1304,12 @@ ScenePalette::~ScenePalette() {
}
ScenePalette::ScenePalette(int paletteNum) {
+ _field412 = 0;
+ _redColor = _greenColor = _blueColor = 0;
+ _aquaColor = 0;
+ _purpleColor = 0;
+ _limeColor = 0;
+
loadPalette(paletteNum);
}
@@ -1781,6 +1811,7 @@ void SceneItem::display(const Common::String &msg) {
SceneHotspot::SceneHotspot(): SceneItem() {
_lookLineNum = _useLineNum = _talkLineNum = 0;
+ _resNum = 0;
}
void SceneHotspot::synchronize(Serializer &s) {
@@ -2036,6 +2067,13 @@ SceneObject::SceneObject() : SceneHotspot() {
_linkedActor = NULL;
_field8A = Common::Point(0, 0);
+ _angle = 0;
+ _xs = 0;
+ _xe = 0;
+ _endFrame = 0;
+ _field68 = 0;
+ _regionIndex = 0;
+ _field9C = NULL;
}
SceneObject::SceneObject(const SceneObject &so) : SceneHotspot() {
@@ -2331,6 +2369,7 @@ void SceneObject::animate(AnimateMode animMode, ...) {
setFrame(getNewFrame());
break;
}
+ va_end(va);
}
SceneObject *SceneObject::clone() const {
@@ -3072,6 +3111,7 @@ Visage::Visage(const Visage &v) {
_data = v._data;
if (_data)
g_vm->_memoryManager.incLocks(_data);
+ _flipHoriz = false;
}
Visage &Visage::operator=(const Visage &s) {
@@ -3579,6 +3619,7 @@ void SceneItemList::addItems(SceneItem *first, ...) {
push_back(p);
p = va_arg(va, SceneItem *);
}
+ va_end(va);
}
/*--------------------------------------------------------------------------*/
@@ -4074,6 +4115,7 @@ SceneHandler::SceneHandler() {
_saveGameSlot = -1;
_loadGameSlot = -1;
_prevFrameNumber = 0;
+ _delayTicks = 0;
}
void SceneHandler::registerHandler() {
diff --git a/engines/tsage/core.h b/engines/tsage/core.h
index 60a7930eab..296754011e 100644
--- a/engines/tsage/core.h
+++ b/engines/tsage/core.h
@@ -189,7 +189,7 @@ public:
Action *_action;
SceneObject *_sceneObject;
public:
- ObjectMover() { _action = NULL; _sceneObject = NULL; }
+ ObjectMover() { _action = NULL; _sceneObject = NULL; _minorDiff = 0; _majorDiff = 0; _changeCtr = 0;}
virtual ~ObjectMover();
virtual void synchronize(Serializer &s);
@@ -272,7 +272,7 @@ public:
SceneObject *_destObject;
int _maxArea;
int _minArea;
- PlayerMover2() : PlayerMover() { _destObject = NULL; }
+ PlayerMover2() : PlayerMover() { _destObject = NULL; _minArea = _maxArea = 0;}
virtual void synchronize(Serializer &s);
virtual Common::String getClassName() { return "PlayerMover2"; }
@@ -415,7 +415,7 @@ public:
int _yDiff;
int _sceneRegionId;
public:
- SceneItem() : EventHandler() { _msg = "Feature"; _action = NULL; _sceneRegionId = 0; }
+ SceneItem() : EventHandler() { _msg = "Feature"; _action = NULL; _sceneRegionId = 0; _yDiff = 0; _fieldE = _field10 = 0;}
virtual void synchronize(Serializer &s);
virtual Common::String getClassName() { return "SceneItem"; }
@@ -685,6 +685,7 @@ public:
int xe = va_arg(va, int);
items.push_back(LineSlice(xs, xe));
}
+ va_end(va);
}
void add(LineSlice &slice) { items.push_back(slice); }
diff --git a/engines/tsage/detection_tables.h b/engines/tsage/detection_tables.h
index a84ee5662f..b374dbc98b 100644
--- a/engines/tsage/detection_tables.h
+++ b/engines/tsage/detection_tables.h
@@ -31,7 +31,7 @@ static const tSageGameDescription gameDescriptions[] = {
"CD",
AD_ENTRY1s("ring.rlb", "466f0e6492d9d0f34d35c5cd088de90f", 37847618),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO2(GUIO_NOSPEECH, GUIO_NOSFX)
},
@@ -45,7 +45,7 @@ static const tSageGameDescription gameDescriptions[] = {
"CD",
AD_ENTRY1s("ring.rlb", "cb8bba91b30cd172712371d7123bd763", 7427980),
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO2(GUIO_NOSPEECH, GUIO_NOSFX)
},
@@ -59,7 +59,7 @@ static const tSageGameDescription gameDescriptions[] = {
"Floppy",
AD_ENTRY1s("ring.rlb", "7b7f0c5b37b58fa5ec06ebb2ca0d0d9d", 8438770),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOSFX)
},
@@ -73,7 +73,7 @@ static const tSageGameDescription gameDescriptions[] = {
"Floppy Demo",
AD_ENTRY1s("tsage.rlb", "3b3604a97c06c91f3735d3e9d341f63f", 833453),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO,
GUIO2(GUIO_NOSPEECH, GUIO_NOSFX)
},
@@ -88,7 +88,7 @@ static const tSageGameDescription gameDescriptions[] = {
"Floppy Demo",
AD_ENTRY1s("demoring.rlb", "64050e1806203b15bb03876140eb4f56", 832206),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO,
GUIO2(GUIO_NOSPEECH, GUIO_NOSFX)
},
@@ -104,7 +104,7 @@ static const tSageGameDescription gameDescriptions[] = {
"Floppy",
AD_ENTRY1s("blue.rlb", "17c3993415e8a2cf93040eef7e88ec93", 1156508),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_UNSTABLE,
GUIO2(GUIO_NOSPEECH, GUIO_NOSFX)
},
@@ -119,7 +119,7 @@ static const tSageGameDescription gameDescriptions[] = {
"",
AD_ENTRY1s("blue.rlb", "17eabb456cb1546c66baf1aff387ba6a", 10032614),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSPEECH, GUIO_NOSFX)
},
@@ -133,7 +133,7 @@ static const tSageGameDescription gameDescriptions[] = {
"CD",
AD_ENTRY1s("blue.rlb", "99983f48cb218f1f3760cf2f9a7ef11d", 63863322),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD,
GUIO2(GUIO_NOSPEECH, GUIO_NOSFX)
},
@@ -149,7 +149,7 @@ static const tSageGameDescription gameDescriptions[] = {
"CD",
AD_ENTRY1s("blue.rlb", "5b2b35c51b62e82d82b0791540bfae2d", 10082565),
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD | ADGF_UNSTABLE,
GUIO2(GUIO_NOSPEECH, GUIO_NOSFX)
},
@@ -164,7 +164,7 @@ static const tSageGameDescription gameDescriptions[] = {
"CD",
AD_ENTRY1s("r2rw.rlb", "df6c25622387007788ca36d99362c1f0", 47586928),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_CD | ADGF_UNSTABLE,
GUIO0()
},
diff --git a/engines/tsage/graphics.h b/engines/tsage/graphics.h
index 9175b1050a..826f2fef6f 100644
--- a/engines/tsage/graphics.h
+++ b/engines/tsage/graphics.h
@@ -162,7 +162,6 @@ public:
class GfxFontBackup {
private:
- GfxSurface *_surface;
Common::Point _edgeSize;
Common::Point _position;
GfxColors _colors;
diff --git a/engines/tsage/ringworld/ringworld_scenes3.cpp b/engines/tsage/ringworld/ringworld_scenes3.cpp
index 0e4ccd1269..b2ed986331 100644
--- a/engines/tsage/ringworld/ringworld_scenes3.cpp
+++ b/engines/tsage/ringworld/ringworld_scenes3.cpp
@@ -2179,6 +2179,7 @@ Scene2120::Scene2120(): Scene() {
_prevDbMode = 0;
_visageVisable = false;
_subjectIndex = 0;
+ _lineOffset = 0;
}
void Scene2120::postInit(SceneObjectList *OwnerList) {
@@ -3690,8 +3691,8 @@ void Scene2230::Hotspot12::doAction(int action) {
/*--------------------------------------------------------------------------*/
-Scene2230::Scene2230() :
- _hotspot9(0, CURSOR_LOOK, 2230, 16, CURSOR_USE, 2230, 18, LIST_END) {
+Scene2230::Scene2230() : _hotspot9(0, CURSOR_LOOK, 2230, 16, CURSOR_USE, 2230, 18, LIST_END) {
+ _field30A = 0;
}
void Scene2230::postInit(SceneObjectList *OwnerList) {
@@ -4877,6 +4878,7 @@ Scene2310::Scene2310() {
_rectList[4].set(199, 70, 215, 140);
_wireIndex = 5;
+ _pageIndex = 0;
}
void Scene2310::postInit(SceneObjectList *OwnerList) {
diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
index 3a246459dd..af62ab6916 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
@@ -1062,9 +1062,10 @@ void Scene1200::Area1::process(Event &event) {
CursorType cursor = R2_GLOBALS._events.getCursor();
if (_actor2._bounds.contains(event.mousePos.x + g_globals->gfxManager()._bounds.left , event.mousePos.y)) {
- if (cursor == _cursorNum)
+ if (cursor == _cursorNum) {
warning("TODO: _cursorState = ???");
R2_GLOBALS._events.setCursor(_savedCursorNum); //, _cursorState);
+ }
} else if (event.mousePos.y < 168) {
if (cursor != _cursorNum) {
_savedCursorNum = cursor;
@@ -6930,9 +6931,10 @@ void Scene1550::UnkArea1550::process(Event &event) {
CursorType cursor = R2_GLOBALS._events.getCursor();
if (_areaActor._bounds.contains(event.mousePos.x + g_globals->gfxManager()._bounds.left , event.mousePos.y)) {
- if (cursor == _cursorNum)
+ if (cursor == _cursorNum) {
warning("TODO: _cursorState = ???");
R2_GLOBALS._events.setCursor(_savedCursorNum); //, _cursorState);
+ }
} else if (event.mousePos.y < 168) {
if (cursor != _cursorNum) {
_savedCursorNum = cursor;
@@ -8232,9 +8234,10 @@ void Scene1550::subA2B2F() {
R2_GLOBALS._sceneManager._fadeMode = FADEMODE_IMMEDIATE;
if (varA == 0) {
- if (_field417 != 1550)
+ if (_field417 != 1550) {
g_globals->_scenePalette.loadPalette(1550);
R2_GLOBALS._sceneManager._hasPalette = true;
+ }
} else {
g_globals->_scenePalette.loadPalette(varA);
R2_GLOBALS._sceneManager._hasPalette = true;
@@ -12951,9 +12954,10 @@ void Scene1950::Area1::process(Event &event) {
CursorType cursor = R2_GLOBALS._events.getCursor();
if (_areaActor._bounds.contains(event.mousePos.x + g_globals->gfxManager()._bounds.left , event.mousePos.y)) {
- if (cursor == _cursorNum)
+ if (cursor == _cursorNum) {
warning("TODO: _cursorState = ???");
R2_GLOBALS._events.setCursor(_savedCursorNum); //, _cursorState);
+ }
} else if (event.mousePos.y < 168) {
if (cursor != _cursorNum) {
_savedCursorNum = cursor;
@@ -14556,9 +14560,10 @@ void Scene1950::signal() {
case 1964:
// No break on purpose
case 1965:
- if (!R2_GLOBALS.getFlag(37))
+ if (!R2_GLOBALS.getFlag(37)) {
SceneItem::display(1950, 26, 0, 280, 1, 160, 9, 1, 2, 20, 7, 7, -999);
R2_GLOBALS._player.enableControl();
+ }
break;
case 1966:
_actor4.remove();
diff --git a/engines/tsage/sound.cpp b/engines/tsage/sound.cpp
index 69a9975ef4..b9567cece2 100644
--- a/engines/tsage/sound.cpp
+++ b/engines/tsage/sound.cpp
@@ -1494,6 +1494,11 @@ Sound::Sound() {
memset(_trkLoopIndex, 0, SOUND_ARR_SIZE * sizeof(int));
memset(_trkRest, 0, SOUND_ARR_SIZE * sizeof(int));
memset(_trkLoopRest, 0, SOUND_ARR_SIZE * sizeof(int));
+ for (int i = 0; i < 16; i++) {
+ _chWork[i] = false;
+ _trackInfo._chunks[i] = 0;
+ _trackInfo._voiceTypes[i] = 0;
+ }
}
Sound::~Sound() {
@@ -2504,6 +2509,7 @@ SoundDriver::SoundDriver() {
_driverResID = 0;
_minVersion = _maxVersion = 0;
_groupMask = 0;
+ _groupOffset = NULL;
}
/*--------------------------------------------------------------------------*/
@@ -2568,6 +2574,12 @@ AdlibSoundDriver::AdlibSoundDriver(): SoundDriver() {
Common::fill(_pitchBlend, _pitchBlend + ADLIB_CHANNEL_COUNT, 0x2000);
memset(_v4409E, 0, ADLIB_CHANNEL_COUNT * sizeof(int));
_patchData = NULL;
+ for (int i = 0; i < 256; i++)
+ _portContents[i] = 0;
+ for (int i = 0; i < 9; i++) {
+ _channelVoiced[i] = false;
+ _pitchBlend[i] = 0;
+ }
}
AdlibSoundDriver::~AdlibSoundDriver() {
@@ -2862,6 +2874,7 @@ SoundBlasterDriver::SoundBlasterDriver(): SoundDriver() {
_sampleRate = _mixer->getOutputRate();
_audioStream = NULL;
_channelData = NULL;
+ _channelVolume = 0;
}
SoundBlasterDriver::~SoundBlasterDriver() {
diff --git a/engines/tucker/console.cpp b/engines/tucker/console.cpp
index e0f2debc30..17ba2038d0 100644
--- a/engines/tucker/console.cpp
+++ b/engines/tucker/console.cpp
@@ -11,7 +11,7 @@
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
@@ -26,6 +26,7 @@
namespace Tucker {
TuckerConsole::TuckerConsole(TuckerEngine *vm) : _vm(vm) {
+ assert(_vm);
}
TuckerConsole::~TuckerConsole() {
diff --git a/engines/tucker/detection.cpp b/engines/tucker/detection.cpp
index aeeebe6877..e4a74f6c37 100644
--- a/engines/tucker/detection.cpp
+++ b/engines/tucker/detection.cpp
@@ -41,7 +41,7 @@ static const ADGameDescription tuckerGameDescriptions[] = {
"",
AD_ENTRY1s("infobar.txt", "f1e42a95972643462b9c3c2ea79d6683", 543),
Common::FR_FRA,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
Tucker::kGameFlagNoSubtitles,
GUIO0()
},
@@ -50,7 +50,7 @@ static const ADGameDescription tuckerGameDescriptions[] = {
"",
AD_ENTRY1s("infobar.txt", "9c1ddeafc5283b90d1a284bd0924831c", 462),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
Tucker::kGameFlagEncodedData,
GUIO0()
},
@@ -59,7 +59,7 @@ static const ADGameDescription tuckerGameDescriptions[] = {
"",
AD_ENTRY1s("infobar.txt", "1b3ea79d8528ea3c7df83dd0ed345e37", 525),
Common::ES_ESP,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
Tucker::kGameFlagEncodedData,
GUIO0()
},
@@ -68,7 +68,7 @@ static const ADGameDescription tuckerGameDescriptions[] = {
"",
AD_ENTRY1s("infobrgr.txt", "4df9eb65722418d1a1723508115b146c", 552),
Common::DE_DEU,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
Tucker::kGameFlagEncodedData,
GUIO0()
},
@@ -77,7 +77,7 @@ static const ADGameDescription tuckerGameDescriptions[] = {
"",
AD_ENTRY1s("infobar.txt", "5f85285bbc23ce57cbc164021ee1f23c", 525),
Common::PL_POL,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
0,
GUIO0()
},
@@ -86,7 +86,7 @@ static const ADGameDescription tuckerGameDescriptions[] = {
"",
AD_ENTRY1s("infobar.txt", "e548994877ff31ca304f6352ce022a8e", 497),
Common::CZ_CZE,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
Tucker::kGameFlagEncodedData,
GUIO0()
},
@@ -95,7 +95,7 @@ static const ADGameDescription tuckerGameDescriptions[] = {
"Demo",
AD_ENTRY1s("infobar.txt", "010b055de42097b140d5bcb6e95a5c7c", 203),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO | Tucker::kGameFlagDemo,
GUIO0()
},
@@ -107,7 +107,7 @@ static const ADGameDescription tuckerDemoGameDescription = {
"Non-Interactive Demo",
AD_ENTRY1(0, 0),
Common::EN_ANY,
- Common::kPlatformPC,
+ Common::kPlatformDOS,
ADGF_DEMO | Tucker::kGameFlagDemo | Tucker::kGameFlagIntroOnly,
GUIO0()
};
diff --git a/engines/wintermute/ad/ad_actor.cpp b/engines/wintermute/ad/ad_actor.cpp
index 9879cc9f40..e4c18d6287 100644
--- a/engines/wintermute/ad/ad_actor.cpp
+++ b/engines/wintermute/ad/ad_actor.cpp
@@ -1320,23 +1320,23 @@ bool AdActor::persist(BasePersistenceManager *persistMgr) {
AdTalkHolder::persist(persistMgr);
persistMgr->transfer(TMEMBER_INT(_dir));
- persistMgr->transfer(TMEMBER(_path));
+ persistMgr->transferPtr(TMEMBER_PTR(_path));
persistMgr->transfer(TMEMBER(_pFCount));
persistMgr->transfer(TMEMBER(_pFStepX));
persistMgr->transfer(TMEMBER(_pFStepY));
persistMgr->transfer(TMEMBER(_pFX));
persistMgr->transfer(TMEMBER(_pFY));
- persistMgr->transfer(TMEMBER(_standSprite));
+ persistMgr->transferPtr(TMEMBER_PTR(_standSprite));
_talkSprites.persist(persistMgr);
_talkSpritesEx.persist(persistMgr);
persistMgr->transfer(TMEMBER_INT(_targetDir));
persistMgr->transfer(TMEMBER_INT(_afterWalkDir));
- persistMgr->transfer(TMEMBER(_targetPoint));
- persistMgr->transfer(TMEMBER(_turnLeftSprite));
- persistMgr->transfer(TMEMBER(_turnRightSprite));
- persistMgr->transfer(TMEMBER(_walkSprite));
+ persistMgr->transferPtr(TMEMBER_PTR(_targetPoint));
+ persistMgr->transferPtr(TMEMBER_PTR(_turnLeftSprite));
+ persistMgr->transferPtr(TMEMBER_PTR(_turnRightSprite));
+ persistMgr->transferPtr(TMEMBER_PTR(_walkSprite));
- persistMgr->transfer(TMEMBER(_animSprite2));
+ persistMgr->transferPtr(TMEMBER_PTR(_animSprite2));
persistMgr->transfer(TMEMBER(_talkAnimName));
persistMgr->transfer(TMEMBER(_idleAnimName));
persistMgr->transfer(TMEMBER(_walkAnimName));
diff --git a/engines/wintermute/ad/ad_entity.cpp b/engines/wintermute/ad/ad_entity.cpp
index 6e47d0f072..c43f74b620 100644
--- a/engines/wintermute/ad/ad_entity.cpp
+++ b/engines/wintermute/ad/ad_entity.cpp
@@ -1093,7 +1093,7 @@ bool AdEntity::persist(BasePersistenceManager *persistMgr) {
AdTalkHolder::persist(persistMgr);
persistMgr->transfer(TMEMBER(_item));
- persistMgr->transfer(TMEMBER(_region));
+ persistMgr->transferPtr(TMEMBER_PTR(_region));
//persistMgr->transfer(TMEMBER(_sprite));
persistMgr->transfer(TMEMBER_INT(_subtype));
_talkSprites.persist(persistMgr);
@@ -1103,7 +1103,7 @@ bool AdEntity::persist(BasePersistenceManager *persistMgr) {
persistMgr->transfer(TMEMBER(_walkToY));
persistMgr->transfer(TMEMBER_INT(_walkToDir));
- persistMgr->transfer(TMEMBER(_theora));
+ persistMgr->transferPtr(TMEMBER_PTR(_theora));
return STATUS_OK;
}
diff --git a/engines/wintermute/ad/ad_game.cpp b/engines/wintermute/ad/ad_game.cpp
index fac59dc473..ead68f7729 100644
--- a/engines/wintermute/ad/ad_game.cpp
+++ b/engines/wintermute/ad/ad_game.cpp
@@ -1413,32 +1413,32 @@ bool AdGame::persist(BasePersistenceManager *persistMgr) {
_dlgPendingBranches.persist(persistMgr);
_inventories.persist(persistMgr);
- persistMgr->transfer(TMEMBER(_inventoryBox));
+ persistMgr->transferPtr(TMEMBER_PTR(_inventoryBox));
_objects.persist(persistMgr);
persistMgr->transfer(TMEMBER(_prevSceneName));
persistMgr->transfer(TMEMBER(_prevSceneFilename));
- persistMgr->transfer(TMEMBER(_responseBox));
+ persistMgr->transferPtr(TMEMBER_PTR(_responseBox));
_responsesBranch.persist(persistMgr);
_responsesGame.persist(persistMgr);
- persistMgr->transfer(TMEMBER(_scene));
+ persistMgr->transferPtr(TMEMBER_PTR(_scene));
_sceneStates.persist(persistMgr);
persistMgr->transfer(TMEMBER(_scheduledFadeIn));
persistMgr->transfer(TMEMBER(_scheduledScene));
- persistMgr->transfer(TMEMBER(_selectedItem));
+ persistMgr->transferPtr(TMEMBER_PTR(_selectedItem));
persistMgr->transfer(TMEMBER_INT(_talkSkipButton));
_sentences.persist(persistMgr);
- persistMgr->transfer(TMEMBER(_sceneViewport));
+ persistMgr->transferPtr(TMEMBER_PTR(_sceneViewport));
persistMgr->transfer(TMEMBER_INT(_stateEx));
persistMgr->transfer(TMEMBER(_initialScene));
persistMgr->transfer(TMEMBER(_debugStartupScene));
- persistMgr->transfer(TMEMBER(_invObject));
- persistMgr->transfer(TMEMBER(_inventoryOwner));
+ persistMgr->transferPtr(TMEMBER_PTR(_invObject));
+ persistMgr->transferPtr(TMEMBER_PTR(_inventoryOwner));
persistMgr->transfer(TMEMBER(_tempDisableSaveState));
_items.persist(persistMgr);
diff --git a/engines/wintermute/ad/ad_inventory_box.cpp b/engines/wintermute/ad/ad_inventory_box.cpp
index 4bb0905688..110359917b 100644
--- a/engines/wintermute/ad/ad_inventory_box.cpp
+++ b/engines/wintermute/ad/ad_inventory_box.cpp
@@ -84,7 +84,7 @@ bool AdInventoryBox::listen(BaseScriptHolder *param1, uint32 param2) {
_visible = false;
} else if (scumm_stricmp(obj->getName(), "prev") == 0) {
_scrollOffset -= _scrollBy;
- _scrollOffset = MAX(_scrollOffset, 0);
+ _scrollOffset = MAX<int32>(_scrollOffset, 0);
} else if (scumm_stricmp(obj->getName(), "next") == 0) {
_scrollOffset += _scrollBy;
} else {
@@ -371,7 +371,7 @@ bool AdInventoryBox::saveAsText(BaseDynamicBuffer *buffer, int indent) {
bool AdInventoryBox::persist(BasePersistenceManager *persistMgr) {
BaseObject::persist(persistMgr);
- persistMgr->transfer(TMEMBER(_closeButton));
+ persistMgr->transferPtr(TMEMBER_PTR(_closeButton));
persistMgr->transfer(TMEMBER(_hideSelected));
persistMgr->transfer(TMEMBER(_itemHeight));
persistMgr->transfer(TMEMBER(_itemsArea));
@@ -380,7 +380,7 @@ bool AdInventoryBox::persist(BasePersistenceManager *persistMgr) {
persistMgr->transfer(TMEMBER(_scrollOffset));
persistMgr->transfer(TMEMBER(_spacing));
persistMgr->transfer(TMEMBER(_visible));
- persistMgr->transfer(TMEMBER(_window));
+ persistMgr->transferPtr(TMEMBER_PTR(_window));
persistMgr->transfer(TMEMBER(_exclusive));
return STATUS_OK;
diff --git a/engines/wintermute/ad/ad_item.cpp b/engines/wintermute/ad/ad_item.cpp
index 578105105c..1a46eb783b 100644
--- a/engines/wintermute/ad/ad_item.cpp
+++ b/engines/wintermute/ad/ad_item.cpp
@@ -784,9 +784,9 @@ bool AdItem::persist(BasePersistenceManager *persistMgr) {
AdTalkHolder::persist(persistMgr);
persistMgr->transfer(TMEMBER(_cursorCombined));
- persistMgr->transfer(TMEMBER(_cursorHover));
- persistMgr->transfer(TMEMBER(_cursorNormal));
- persistMgr->transfer(TMEMBER(_spriteHover));
+ persistMgr->transferPtr(TMEMBER_PTR(_cursorHover));
+ persistMgr->transferPtr(TMEMBER_PTR(_cursorNormal));
+ persistMgr->transferPtr(TMEMBER_PTR(_spriteHover));
persistMgr->transfer(TMEMBER(_inInventory));
persistMgr->transfer(TMEMBER(_displayAmount));
persistMgr->transfer(TMEMBER(_amount));
diff --git a/engines/wintermute/ad/ad_node_state.cpp b/engines/wintermute/ad/ad_node_state.cpp
index c741dec54f..d52201a08d 100644
--- a/engines/wintermute/ad/ad_node_state.cpp
+++ b/engines/wintermute/ad/ad_node_state.cpp
@@ -93,7 +93,7 @@ void AdNodeState::setCursor(const char *filename) {
//////////////////////////////////////////////////////////////////////////
bool AdNodeState::persist(BasePersistenceManager *persistMgr) {
- persistMgr->transfer(TMEMBER(_gameRef));
+ persistMgr->transferPtr(TMEMBER_PTR(_gameRef));
persistMgr->transfer(TMEMBER(_active));
persistMgr->transfer(TMEMBER(_name));
diff --git a/engines/wintermute/ad/ad_object.cpp b/engines/wintermute/ad/ad_object.cpp
index 9026b2849c..741d6e6fc6 100644
--- a/engines/wintermute/ad/ad_object.cpp
+++ b/engines/wintermute/ad/ad_object.cpp
@@ -864,14 +864,14 @@ int AdObject::getHeight() {
return 0;
} else {
BaseFrame *frame = _currentSprite->_frames[_currentSprite->_currentFrame];
- int ret = 0;
+ int32 ret = 0;
for (uint32 i = 0; i < frame->_subframes.size(); i++) {
ret = MAX(ret, frame->_subframes[i]->_hotspotY);
}
if (_zoomable) {
float zoom = ((AdGame *)_gameRef)->_scene->getZoomAt(_posX, _posY);
- ret = (int)(ret * zoom / 100);
+ ret = (int32)(ret * zoom / 100);
}
return ret;
}
@@ -941,11 +941,11 @@ void AdObject::talk(const char *text, const char *sound, uint32 duration, const
// set duration by text length
if (_sentence->_duration <= 0) {// TODO: Avoid longs.
- _sentence->_duration = MAX((size_t)1000, _gameRef->_subtitlesSpeed * strlen(_sentence->_text));
+ _sentence->_duration = MAX<int32>((size_t)1000, _gameRef->_subtitlesSpeed * strlen(_sentence->_text));
}
- int x, y, width, height;
+ int32 x, y, width, height;
x = _posX;
y = _posY;
@@ -981,8 +981,8 @@ void AdObject::talk(const char *text, const char *sound, uint32 duration, const
}
- x = MIN(MAX(0, x), _gameRef->_renderer->getWidth() - width);
- y = MIN(MAX(0, y), _gameRef->_renderer->getHeight() - height);
+ x = MIN(MAX<int32>(0, x), _gameRef->_renderer->getWidth() - width);
+ y = MIN(MAX<int32>(0, y), _gameRef->_renderer->getHeight() - height);
_sentence->_width = width;
@@ -1031,39 +1031,39 @@ bool AdObject::persist(BasePersistenceManager *persistMgr) {
BaseObject::persist(persistMgr);
persistMgr->transfer(TMEMBER(_active));
- persistMgr->transfer(TMEMBER(_blockRegion));
- persistMgr->transfer(TMEMBER(_currentBlockRegion));
- persistMgr->transfer(TMEMBER(_currentWptGroup));
- persistMgr->transfer(TMEMBER(_currentSprite));
+ persistMgr->transferPtr(TMEMBER_PTR(_blockRegion));
+ persistMgr->transferPtr(TMEMBER_PTR(_currentBlockRegion));
+ persistMgr->transferPtr(TMEMBER_PTR(_currentWptGroup));
+ persistMgr->transferPtr(TMEMBER_PTR(_currentSprite));
persistMgr->transfer(TMEMBER(_drawn));
- persistMgr->transfer(TMEMBER(_font));
+ persistMgr->transferPtr(TMEMBER_PTR(_font));
persistMgr->transfer(TMEMBER(_ignoreItems));
persistMgr->transfer(TMEMBER_INT(_nextState));
- persistMgr->transfer(TMEMBER(_sentence));
+ persistMgr->transferPtr(TMEMBER_PTR(_sentence));
persistMgr->transfer(TMEMBER_INT(_state));
- persistMgr->transfer(TMEMBER(_animSprite));
+ persistMgr->transferPtr(TMEMBER_PTR(_animSprite));
persistMgr->transfer(TMEMBER(_sceneIndependent));
persistMgr->transfer(TMEMBER(_forcedTalkAnimName));
persistMgr->transfer(TMEMBER(_forcedTalkAnimUsed));
- persistMgr->transfer(TMEMBER(_tempSprite2));
+ persistMgr->transferPtr(TMEMBER_PTR(_tempSprite2));
persistMgr->transfer(TMEMBER_INT(_type));
- persistMgr->transfer(TMEMBER(_wptGroup));
- persistMgr->transfer(TMEMBER(_stickRegion));
+ persistMgr->transferPtr(TMEMBER_PTR(_wptGroup));
+ persistMgr->transferPtr(TMEMBER_PTR(_stickRegion));
persistMgr->transfer(TMEMBER(_subtitlesModRelative));
persistMgr->transfer(TMEMBER(_subtitlesModX));
persistMgr->transfer(TMEMBER(_subtitlesModY));
persistMgr->transfer(TMEMBER(_subtitlesModXCenter));
persistMgr->transfer(TMEMBER(_subtitlesWidth));
- persistMgr->transfer(TMEMBER(_inventory));
- persistMgr->transfer(TMEMBER(_partEmitter));
+ persistMgr->transferPtr(TMEMBER_PTR(_inventory));
+ persistMgr->transferPtr(TMEMBER_PTR(_partEmitter));
for (int i = 0; i < MAX_NUM_REGIONS; i++) {
- persistMgr->transfer(TMEMBER(_currentRegions[i]));
+ persistMgr->transferPtr(TMEMBER_PTR(_currentRegions[i]));
}
_attachmentsPre.persist(persistMgr);
_attachmentsPost.persist(persistMgr);
- persistMgr->transfer(TMEMBER(_registerAlias));
+ persistMgr->transferPtr(TMEMBER_PTR(_registerAlias));
persistMgr->transfer(TMEMBER(_partFollowParent));
persistMgr->transfer(TMEMBER(_partOffsetX));
diff --git a/engines/wintermute/ad/ad_path.cpp b/engines/wintermute/ad/ad_path.cpp
index afdd29828c..5b36ed6471 100644
--- a/engines/wintermute/ad/ad_path.cpp
+++ b/engines/wintermute/ad/ad_path.cpp
@@ -108,7 +108,7 @@ bool AdPath::setReady(bool ready) {
//////////////////////////////////////////////////////////////////////////
bool AdPath::persist(BasePersistenceManager *persistMgr) {
- persistMgr->transfer(TMEMBER(_gameRef));
+ persistMgr->transferPtr(TMEMBER_PTR(_gameRef));
persistMgr->transfer(TMEMBER(_currIndex));
_points.persist(persistMgr);
diff --git a/engines/wintermute/ad/ad_path_point.cpp b/engines/wintermute/ad/ad_path_point.cpp
index f3ccd264b1..be4b487466 100644
--- a/engines/wintermute/ad/ad_path_point.cpp
+++ b/engines/wintermute/ad/ad_path_point.cpp
@@ -67,7 +67,7 @@ bool AdPathPoint::persist(BasePersistenceManager *persistMgr) {
persistMgr->transfer(TMEMBER(_distance));
persistMgr->transfer(TMEMBER(_marked));
- persistMgr->transfer(TMEMBER(_origin));
+ persistMgr->transferPtr(TMEMBER_PTR(_origin));
return STATUS_OK;
}
diff --git a/engines/wintermute/ad/ad_response.cpp b/engines/wintermute/ad/ad_response.cpp
index 0e6817ae6f..4483bbc667 100644
--- a/engines/wintermute/ad/ad_response.cpp
+++ b/engines/wintermute/ad/ad_response.cpp
@@ -131,14 +131,14 @@ bool AdResponse::persist(BasePersistenceManager *persistMgr) {
BaseObject::persist(persistMgr);
- persistMgr->transfer(TMEMBER(_icon));
- persistMgr->transfer(TMEMBER(_iconHover));
- persistMgr->transfer(TMEMBER(_iconPressed));
+ persistMgr->transferPtr(TMEMBER_PTR(_icon));
+ persistMgr->transferPtr(TMEMBER_PTR(_iconHover));
+ persistMgr->transferPtr(TMEMBER_PTR(_iconPressed));
persistMgr->transfer(TMEMBER(_iD));
persistMgr->transfer(TMEMBER(_text));
persistMgr->transfer(TMEMBER(_textOrig));
persistMgr->transfer(TMEMBER_INT(_responseType));
- persistMgr->transfer(TMEMBER(_font));
+ persistMgr->transferPtr(TMEMBER_PTR(_font));
return STATUS_OK;
}
diff --git a/engines/wintermute/ad/ad_response_box.cpp b/engines/wintermute/ad/ad_response_box.cpp
index a4e59c6a49..a589bf3a30 100644
--- a/engines/wintermute/ad/ad_response_box.cpp
+++ b/engines/wintermute/ad/ad_response_box.cpp
@@ -187,7 +187,7 @@ bool AdResponseBox::createButtons() {
// make the responses touchable
if (_gameRef->_touchInterface) {
- btn->_height = MAX(btn->_height, 50);
+ btn->_height = MAX<int32>(btn->_height, 50);
}
//btn->SetListener(this, btn, _responses[i]->_iD);
@@ -573,8 +573,8 @@ bool AdResponseBox::listen(BaseScriptHolder *param1, uint32 param2) {
bool AdResponseBox::persist(BasePersistenceManager *persistMgr) {
BaseObject::persist(persistMgr);
- persistMgr->transfer(TMEMBER(_font));
- persistMgr->transfer(TMEMBER(_fontHover));
+ persistMgr->transferPtr(TMEMBER_PTR(_font));
+ persistMgr->transferPtr(TMEMBER_PTR(_fontHover));
persistMgr->transfer(TMEMBER(_horizontal));
persistMgr->transfer(TMEMBER(_lastResponseText));
persistMgr->transfer(TMEMBER(_lastResponseTextOrig));
@@ -582,10 +582,10 @@ bool AdResponseBox::persist(BasePersistenceManager *persistMgr) {
persistMgr->transfer(TMEMBER(_responseArea));
_responses.persist(persistMgr);
persistMgr->transfer(TMEMBER(_scrollOffset));
- persistMgr->transfer(TMEMBER(_shieldWindow));
+ persistMgr->transferPtr(TMEMBER_PTR(_shieldWindow));
persistMgr->transfer(TMEMBER(_spacing));
- persistMgr->transfer(TMEMBER(_waitingScript));
- persistMgr->transfer(TMEMBER(_window));
+ persistMgr->transferPtr(TMEMBER_PTR(_waitingScript));
+ persistMgr->transferPtr(TMEMBER_PTR(_window));
persistMgr->transfer(TMEMBER_INT(_verticalAlign));
persistMgr->transfer(TMEMBER_INT(_align));
diff --git a/engines/wintermute/ad/ad_response_context.cpp b/engines/wintermute/ad/ad_response_context.cpp
index d87651c178..663ef49a24 100644
--- a/engines/wintermute/ad/ad_response_context.cpp
+++ b/engines/wintermute/ad/ad_response_context.cpp
@@ -49,7 +49,7 @@ AdResponseContext::~AdResponseContext() {
//////////////////////////////////////////////////////////////////////////
bool AdResponseContext::persist(BasePersistenceManager *persistMgr) {
- persistMgr->transfer(TMEMBER(_gameRef));
+ persistMgr->transferPtr(TMEMBER_PTR(_gameRef));
persistMgr->transfer(TMEMBER(_context));
persistMgr->transfer(TMEMBER(_id));
diff --git a/engines/wintermute/ad/ad_scene.cpp b/engines/wintermute/ad/ad_scene.cpp
index 699ef0685d..4d0068fad1 100644
--- a/engines/wintermute/ad/ad_scene.cpp
+++ b/engines/wintermute/ad/ad_scene.cpp
@@ -976,14 +976,14 @@ bool AdScene::traverseNodes(bool doUpdate) {
//////////////////////////////////////////////////////////////////////////
- int viewportWidth, viewportHeight;
+ int32 viewportWidth, viewportHeight;
getViewportSize(&viewportWidth, &viewportHeight);
- int viewportX, viewportY;
+ int32 viewportX, viewportY;
getViewportOffset(&viewportX, &viewportY);
- int scrollableX = _width - viewportWidth;
- int scrollableY = _height - viewportHeight;
+ int32 scrollableX = _width - viewportWidth;
+ int32 scrollableY = _height - viewportHeight;
double widthRatio = scrollableX <= 0 ? 0 : ((double)(_offsetLeft) / (double)scrollableX);
double heightRatio = scrollableY <= 0 ? 0 : ((double)(_offsetTop) / (double)scrollableY);
@@ -1272,16 +1272,16 @@ bool AdScene::update() {
//////////////////////////////////////////////////////////////////////////
void AdScene::scrollTo(int offsetX, int offsetY) {
- int viewportWidth, viewportHeight;
+ int32 viewportWidth, viewportHeight;
getViewportSize(&viewportWidth, &viewportHeight);
- int origOffsetLeft = _targetOffsetLeft;
- int origOffsetTop = _targetOffsetTop;
+ int32 origOffsetLeft = _targetOffsetLeft;
+ int32 origOffsetTop = _targetOffsetTop;
- _targetOffsetLeft = MAX(0, offsetX - viewportWidth / 2);
+ _targetOffsetLeft = MAX<int32>(0, offsetX - viewportWidth / 2);
_targetOffsetLeft = MIN(_targetOffsetLeft, _width - viewportWidth);
- _targetOffsetTop = MAX(0, offsetY - viewportHeight / 2);
+ _targetOffsetTop = MAX<int32>(0, offsetY - viewportHeight / 2);
_targetOffsetTop = MIN(_targetOffsetTop, _height - viewportHeight);
@@ -1317,13 +1317,13 @@ void AdScene::skipToObject(BaseObject *object) {
//////////////////////////////////////////////////////////////////////////
void AdScene::skipTo(int offsetX, int offsetY) {
- int viewportWidth, viewportHeight;
+ int32 viewportWidth, viewportHeight;
getViewportSize(&viewportWidth, &viewportHeight);
- _offsetLeft = MAX(0, offsetX - viewportWidth / 2);
+ _offsetLeft = MAX<int32>(0, offsetX - viewportWidth / 2);
_offsetLeft = MIN(_offsetLeft, _width - viewportWidth);
- _offsetTop = MAX(0, offsetY - viewportHeight / 2);
+ _offsetTop = MAX<int32>(0, offsetY - viewportHeight / 2);
_offsetTop = MIN(_offsetTop, _height - viewportHeight);
_targetOffsetLeft = _offsetLeft;
@@ -1866,7 +1866,7 @@ ScValue *AdScene::scGetProperty(const Common::String &name) {
// MouseX (RO)
//////////////////////////////////////////////////////////////////////////
else if (name == "MouseX") {
- int viewportX;
+ int32 viewportX;
getViewportOffset(&viewportX);
_scValue->setInt(_gameRef->_mousePos.x + _offsetLeft - viewportX);
@@ -1877,7 +1877,7 @@ ScValue *AdScene::scGetProperty(const Common::String &name) {
// MouseY (RO)
//////////////////////////////////////////////////////////////////////////
else if (name == "MouseY") {
- int viewportY;
+ int32 viewportY;
getViewportOffset(nullptr, &viewportY);
_scValue->setInt(_gameRef->_mousePos.y + _offsetTop - viewportY);
@@ -2057,10 +2057,10 @@ bool AdScene::scSetProperty(const char *name, ScValue *value) {
else if (strcmp(name, "OffsetX") == 0) {
_offsetLeft = value->getInt();
- int viewportWidth, viewportHeight;
+ int32 viewportWidth, viewportHeight;
getViewportSize(&viewportWidth, &viewportHeight);
- _offsetLeft = MAX(0, _offsetLeft - viewportWidth / 2);
+ _offsetLeft = MAX<int32>(0, _offsetLeft - viewportWidth / 2);
_offsetLeft = MIN(_offsetLeft, _width - viewportWidth);
_targetOffsetLeft = _offsetLeft;
@@ -2073,10 +2073,10 @@ bool AdScene::scSetProperty(const char *name, ScValue *value) {
else if (strcmp(name, "OffsetY") == 0) {
_offsetTop = value->getInt();
- int viewportWidth, viewportHeight;
+ int32 viewportWidth, viewportHeight;
getViewportSize(&viewportWidth, &viewportHeight);
- _offsetTop = MAX(0, _offsetTop - viewportHeight / 2);
+ _offsetTop = MAX<int32>(0, _offsetTop - viewportHeight / 2);
_offsetTop = MIN(_offsetTop, _height - viewportHeight);
_targetOffsetTop = _offsetTop;
@@ -2319,13 +2319,13 @@ bool AdScene::persist(BasePersistenceManager *persistMgr) {
persistMgr->transfer(TMEMBER(_editorShowEntities));
persistMgr->transfer(TMEMBER(_editorShowRegions));
persistMgr->transfer(TMEMBER(_editorShowScale));
- persistMgr->transfer(TMEMBER(_fader));
+ persistMgr->transferPtr(TMEMBER_PTR(_fader));
persistMgr->transfer(TMEMBER(_height));
persistMgr->transfer(TMEMBER(_initialized));
persistMgr->transfer(TMEMBER(_lastTimeH));
persistMgr->transfer(TMEMBER(_lastTimeV));
_layers.persist(persistMgr);
- persistMgr->transfer(TMEMBER(_mainLayer));
+ persistMgr->transferPtr(TMEMBER_PTR(_mainLayer));
_objects.persist(persistMgr);
persistMgr->transfer(TMEMBER(_offsetLeft));
persistMgr->transfer(TMEMBER(_offsetTop));
@@ -2336,20 +2336,20 @@ bool AdScene::persist(BasePersistenceManager *persistMgr) {
_pfPath.persist(persistMgr);
persistMgr->transfer(TMEMBER(_pfPointsNum));
persistMgr->transfer(TMEMBER(_pfReady));
- persistMgr->transfer(TMEMBER(_pfRequester));
- persistMgr->transfer(TMEMBER(_pfTarget));
- persistMgr->transfer(TMEMBER(_pfTargetPath));
+ persistMgr->transferPtr(TMEMBER_PTR(_pfRequester));
+ persistMgr->transferPtr(TMEMBER_PTR(_pfTarget));
+ persistMgr->transferPtr(TMEMBER_PTR(_pfTargetPath));
_rotLevels.persist(persistMgr);
_scaleLevels.persist(persistMgr);
persistMgr->transfer(TMEMBER(_scrollPixelsH));
persistMgr->transfer(TMEMBER(_scrollPixelsV));
persistMgr->transfer(TMEMBER(_scrollTimeH));
persistMgr->transfer(TMEMBER(_scrollTimeV));
- persistMgr->transfer(TMEMBER(_shieldWindow));
+ persistMgr->transferPtr(TMEMBER_PTR(_shieldWindow));
persistMgr->transfer(TMEMBER(_targetOffsetLeft));
persistMgr->transfer(TMEMBER(_targetOffsetTop));
_waypointGroups.persist(persistMgr);
- persistMgr->transfer(TMEMBER(_viewport));
+ persistMgr->transferPtr(TMEMBER_PTR(_viewport));
persistMgr->transfer(TMEMBER(_width));
return STATUS_OK;
@@ -2361,10 +2361,10 @@ bool AdScene::afterLoad() {
}
//////////////////////////////////////////////////////////////////////////
-bool AdScene::correctTargetPoint2(int startX, int startY, int *targetX, int *targetY, bool checkFreeObjects, BaseObject *requester) {
+bool AdScene::correctTargetPoint2(int32 startX, int32 startY, int32 *targetX, int32 *targetY, bool checkFreeObjects, BaseObject *requester) {
double xStep, yStep, x, y;
- int xLength, yLength, xCount, yCount;
- int x1, y1, x2, y2;
+ int32 xLength, yLength, xCount, yCount;
+ int32 x1, y1, x2, y2;
x1 = *targetX;
y1 = *targetY;
@@ -2407,9 +2407,9 @@ bool AdScene::correctTargetPoint2(int startX, int startY, int *targetX, int *tar
}
//////////////////////////////////////////////////////////////////////////
-bool AdScene::correctTargetPoint(int startX, int startY, int *argX, int *argY, bool checkFreeObjects, BaseObject *requester) {
- int x = *argX;
- int y = *argY;
+bool AdScene::correctTargetPoint(int32 startX, int32 startY, int32 *argX, int32 *argY, bool checkFreeObjects, BaseObject *requester) {
+ int32 x = *argX;
+ int32 y = *argY;
if (isWalkableAt(x, y, checkFreeObjects, requester) || !_mainLayer) {
return STATUS_OK;
@@ -2522,7 +2522,7 @@ void AdScene::pfPointsAdd(int x, int y, int distance) {
//////////////////////////////////////////////////////////////////////////
-bool AdScene::getViewportOffset(int *offsetX, int *offsetY) {
+bool AdScene::getViewportOffset(int32 *offsetX, int32 *offsetY) {
AdGame *adGame = (AdGame *)_gameRef;
if (_viewport && !_gameRef->_editorMode) {
if (offsetX) {
@@ -2551,7 +2551,7 @@ bool AdScene::getViewportOffset(int *offsetX, int *offsetY) {
//////////////////////////////////////////////////////////////////////////
-bool AdScene::getViewportSize(int *width, int *height) {
+bool AdScene::getViewportSize(int32 *width, int32 *height) {
AdGame *adGame = (AdGame *)_gameRef;
if (_viewport && !_gameRef->_editorMode) {
if (width) {
@@ -2581,7 +2581,7 @@ bool AdScene::getViewportSize(int *width, int *height) {
//////////////////////////////////////////////////////////////////////////
int AdScene::getOffsetLeft() {
- int viewportX;
+ int32 viewportX;
getViewportOffset(&viewportX);
return _offsetLeft - viewportX;
@@ -2590,7 +2590,7 @@ int AdScene::getOffsetLeft() {
//////////////////////////////////////////////////////////////////////////
int AdScene::getOffsetTop() {
- int viewportY;
+ int32 viewportY;
getViewportOffset(nullptr, &viewportY);
return _offsetTop - viewportY;
@@ -2599,7 +2599,7 @@ int AdScene::getOffsetTop() {
//////////////////////////////////////////////////////////////////////////
bool AdScene::pointInViewport(int x, int y) {
- int left, top, width, height;
+ int32 left, top, width, height;
getViewportOffset(&left, &top);
getViewportSize(&width, &height);
diff --git a/engines/wintermute/ad/ad_scene.h b/engines/wintermute/ad/ad_scene.h
index 9ddef73b65..cd144b77ef 100644
--- a/engines/wintermute/ad/ad_scene.h
+++ b/engines/wintermute/ad/ad_scene.h
@@ -67,16 +67,16 @@ public:
bool pointInViewport(int x, int y);
int getOffsetTop();
int getOffsetLeft();
- bool getViewportSize(int *width = nullptr, int *height = nullptr);
- bool getViewportOffset(int *offsetX = nullptr, int *offsetY = nullptr);
+ bool getViewportSize(int32 *width = nullptr, int32 *height = nullptr);
+ bool getViewportOffset(int32 *offsetX = nullptr, int32 *offsetY = nullptr);
BaseViewport *_viewport;
BaseFader *_fader;
- int _pfPointsNum;
+ int32 _pfPointsNum;
void pfPointsAdd(int x, int y, int distance);
void pfPointsStart();
bool _initialized;
- bool correctTargetPoint(int startX, int startY, int *x, int *y, bool checkFreeObjects = false, BaseObject *requester = nullptr);
- bool correctTargetPoint2(int startX, int startY, int *targetX, int *targetY, bool checkFreeObjects, BaseObject *requester);
+ bool correctTargetPoint(int32 startX, int32 startY, int32 *x, int32 *y, bool checkFreeObjects = false, BaseObject *requester = nullptr);
+ bool correctTargetPoint2(int32 startX, int32 startY, int32 *targetX, int32 *targetY, bool checkFreeObjects, BaseObject *requester);
DECLARE_PERSISTENT(AdScene, BaseObject)
bool displayRegionContent(AdRegion *region = nullptr, bool display3DOnly = false);
bool displayRegionContentOld(AdRegion *region = nullptr);
@@ -98,14 +98,14 @@ public:
void scrollTo(int offsetX, int offsetY);
virtual bool update() override;
bool _autoScroll;
- int _targetOffsetTop;
- int _targetOffsetLeft;
+ int32 _targetOffsetTop;
+ int32 _targetOffsetLeft;
- int _scrollPixelsV;
+ int32 _scrollPixelsV;
uint32 _scrollTimeV;
uint32 _lastTimeV;
- int _scrollPixelsH;
+ int32 _scrollPixelsH;
uint32 _scrollTimeH;
uint32 _lastTimeH;
@@ -171,8 +171,8 @@ private:
BaseObject *_pfRequester;
BaseArray<AdPathPoint *> _pfPath;
- int _offsetTop;
- int _offsetLeft;
+ int32 _offsetTop;
+ int32 _offsetLeft;
};
diff --git a/engines/wintermute/ad/ad_scene_node.cpp b/engines/wintermute/ad/ad_scene_node.cpp
index f84e9212e5..e9b80b3cc8 100644
--- a/engines/wintermute/ad/ad_scene_node.cpp
+++ b/engines/wintermute/ad/ad_scene_node.cpp
@@ -72,8 +72,8 @@ bool AdSceneNode::persist(BasePersistenceManager *persistMgr) {
BaseObject::persist(persistMgr);
- persistMgr->transfer(TMEMBER(_entity));
- persistMgr->transfer(TMEMBER(_region));
+ persistMgr->transferPtr(TMEMBER_PTR(_entity));
+ persistMgr->transferPtr(TMEMBER_PTR(_region));
persistMgr->transfer(TMEMBER_INT(_type));
return STATUS_OK;
diff --git a/engines/wintermute/ad/ad_sentence.cpp b/engines/wintermute/ad/ad_sentence.cpp
index 9192b74c4e..70a57a624d 100644
--- a/engines/wintermute/ad/ad_sentence.cpp
+++ b/engines/wintermute/ad/ad_sentence.cpp
@@ -204,8 +204,8 @@ bool AdSentence::display() {
}
if (_gameRef->_subtitles) {
- int x = _pos.x;
- int y = _pos.y;
+ int32 x = _pos.x;
+ int32 y = _pos.y;
if (!_fixedPos) {
x = x - ((AdGame *)_gameRef)->_scene->getOffsetLeft();
@@ -213,9 +213,9 @@ bool AdSentence::display() {
}
- x = MAX(x, 0);
+ x = MAX<int32>(x, 0);
x = MIN(x, _gameRef->_renderer->getWidth() - _width);
- y = MAX(y, 0);
+ y = MAX<int32>(y, 0);
_font->drawText((byte *)_text, x, y, _width, _align);
}
@@ -247,20 +247,20 @@ bool AdSentence::finish() {
//////////////////////////////////////////////////////////////////////////
bool AdSentence::persist(BasePersistenceManager *persistMgr) {
- persistMgr->transfer(TMEMBER(_gameRef));
+ persistMgr->transferPtr(TMEMBER_PTR(_gameRef));
persistMgr->transfer(TMEMBER_INT(_align));
persistMgr->transfer(TMEMBER(_currentStance));
- persistMgr->transfer(TMEMBER(_currentSprite));
+ persistMgr->transferPtr(TMEMBER_PTR(_currentSprite));
persistMgr->transfer(TMEMBER(_currentSkelAnim));
persistMgr->transfer(TMEMBER(_duration));
- persistMgr->transfer(TMEMBER(_font));
+ persistMgr->transferPtr(TMEMBER_PTR(_font));
persistMgr->transfer(TMEMBER(_pos));
- persistMgr->transfer(TMEMBER(_sound));
+ persistMgr->transferPtr(TMEMBER_PTR(_sound));
persistMgr->transfer(TMEMBER(_soundStarted));
persistMgr->transfer(TMEMBER(_stances));
persistMgr->transfer(TMEMBER(_startTime));
- persistMgr->transfer(TMEMBER(_talkDef));
+ persistMgr->transferPtr(TMEMBER_PTR(_talkDef));
persistMgr->transfer(TMEMBER(_tempStance));
persistMgr->transfer(TMEMBER(_text));
persistMgr->transfer(TMEMBER(_width));
diff --git a/engines/wintermute/ad/ad_sprite_set.cpp b/engines/wintermute/ad/ad_sprite_set.cpp
index ffa7bb2530..6c802c4863 100644
--- a/engines/wintermute/ad/ad_sprite_set.cpp
+++ b/engines/wintermute/ad/ad_sprite_set.cpp
@@ -249,9 +249,9 @@ bool AdSpriteSet::persist(BasePersistenceManager *persistMgr) {
BaseObject::persist(persistMgr);
- persistMgr->transfer(TMEMBER(_owner));
+ persistMgr->transferPtr(TMEMBER_PTR(_owner));
for (int i = 0; i < NUM_DIRECTIONS; i++) {
- persistMgr->transfer("", &_sprites[i]);
+ persistMgr->transferPtr("", &_sprites[i]);
}
return STATUS_OK;
diff --git a/engines/wintermute/ad/ad_talk_def.cpp b/engines/wintermute/ad/ad_talk_def.cpp
index 4ad5d2ccc6..bf72b2916b 100644
--- a/engines/wintermute/ad/ad_talk_def.cpp
+++ b/engines/wintermute/ad/ad_talk_def.cpp
@@ -208,9 +208,9 @@ bool AdTalkDef::persist(BasePersistenceManager *persistMgr) {
BaseObject::persist(persistMgr);
- persistMgr->transfer(TMEMBER(_defaultSprite));
+ persistMgr->transferPtr(TMEMBER_PTR(_defaultSprite));
persistMgr->transfer(TMEMBER(_defaultSpriteFilename));
- persistMgr->transfer(TMEMBER(_defaultSpriteSet));
+ persistMgr->transferPtr(TMEMBER_PTR(_defaultSpriteSet));
persistMgr->transfer(TMEMBER(_defaultSpriteSetFilename));
_nodes.persist(persistMgr);
diff --git a/engines/wintermute/ad/ad_talk_holder.cpp b/engines/wintermute/ad/ad_talk_holder.cpp
index ed2333a345..33deab7805 100644
--- a/engines/wintermute/ad/ad_talk_holder.cpp
+++ b/engines/wintermute/ad/ad_talk_holder.cpp
@@ -392,7 +392,7 @@ bool AdTalkHolder::saveAsText(BaseDynamicBuffer *buffer, int indent) {
bool AdTalkHolder::persist(BasePersistenceManager *persistMgr) {
AdObject::persist(persistMgr);
- persistMgr->transfer(TMEMBER(_sprite));
+ persistMgr->transferPtr(TMEMBER_PTR(_sprite));
_talkSprites.persist(persistMgr);
_talkSpritesEx.persist(persistMgr);
diff --git a/engines/wintermute/ad/ad_talk_node.cpp b/engines/wintermute/ad/ad_talk_node.cpp
index 2e0985ed99..f03c24ea94 100644
--- a/engines/wintermute/ad/ad_talk_node.cpp
+++ b/engines/wintermute/ad/ad_talk_node.cpp
@@ -195,9 +195,9 @@ bool AdTalkNode::persist(BasePersistenceManager *persistMgr) {
persistMgr->transfer(TMEMBER(_startTime));
persistMgr->transfer(TMEMBER(_endTime));
persistMgr->transfer(TMEMBER(_playToEnd));
- persistMgr->transfer(TMEMBER(_sprite));
+ persistMgr->transferPtr(TMEMBER_PTR(_sprite));
persistMgr->transfer(TMEMBER(_spriteFilename));
- persistMgr->transfer(TMEMBER(_spriteSet));
+ persistMgr->transferPtr(TMEMBER_PTR(_spriteSet));
persistMgr->transfer(TMEMBER(_spriteSetFilename));
return STATUS_OK;
diff --git a/engines/wintermute/base/base_frame.cpp b/engines/wintermute/base/base_frame.cpp
index 382e8acbe0..9fb5770f79 100644
--- a/engines/wintermute/base/base_frame.cpp
+++ b/engines/wintermute/base/base_frame.cpp
@@ -420,7 +420,7 @@ bool BaseFrame::persist(BasePersistenceManager *persistMgr) {
persistMgr->transfer(TMEMBER(_killSound));
persistMgr->transfer(TMEMBER(_moveX));
persistMgr->transfer(TMEMBER(_moveY));
- persistMgr->transfer(TMEMBER(_sound));
+ persistMgr->transferPtr(TMEMBER_PTR(_sound));
_subframes.persist(persistMgr);
return STATUS_OK;
diff --git a/engines/wintermute/base/base_game.cpp b/engines/wintermute/base/base_game.cpp
index 0f2a3d1260..e97e342149 100644
--- a/engines/wintermute/base/base_game.cpp
+++ b/engines/wintermute/base/base_game.cpp
@@ -602,7 +602,7 @@ int BaseGame::getSequence() {
//////////////////////////////////////////////////////////////////////////
-void BaseGame::setOffset(int offsetX, int offsetY) {
+void BaseGame::setOffset(int32 offsetX, int32 offsetY) {
_offsetX = offsetX;
_offsetY = offsetY;
}
@@ -1090,11 +1090,11 @@ bool BaseGame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "SetMousePos") == 0) {
stack->correctParams(2);
- int x = stack->pop()->getInt();
- int y = stack->pop()->getInt();
- x = MAX(x, 0);
+ int32 x = stack->pop()->getInt();
+ int32 y = stack->pop()->getInt();
+ x = MAX<int32>(x, 0);
x = MIN(x, _renderer->getWidth());
- y = MAX(y, 0);
+ y = MAX<int32>(y, 0);
y = MIN(y, _renderer->getHeight());
Point32 p;
p.x = x + _renderer->_drawOffsetX;
@@ -2486,7 +2486,7 @@ bool BaseGame::scSetProperty(const char *name, ScValue *value) {
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "SoundBufferSize") == 0) {
_soundBufferSizeSec = value->getInt();
- _soundBufferSizeSec = MAX(3, _soundBufferSizeSec);
+ _soundBufferSizeSec = MAX<int32>(3, _soundBufferSizeSec);
return STATUS_OK;
}
@@ -2995,7 +2995,7 @@ bool BaseGame::showCursor() {
//////////////////////////////////////////////////////////////////////////
-bool BaseGame::saveGame(int slot, const char *desc, bool quickSave) {
+bool BaseGame::saveGame(int32 slot, const char *desc, bool quickSave) {
return SaveLoad::saveGame(slot, desc, quickSave, _gameRef);
}
@@ -3055,18 +3055,18 @@ bool BaseGame::persist(BasePersistenceManager *persistMgr) {
BaseObject::persist(persistMgr);
- persistMgr->transfer(TMEMBER(_activeObject));
- persistMgr->transfer(TMEMBER(_capturedObject));
- persistMgr->transfer(TMEMBER(_cursorNoninteractive));
+ persistMgr->transferPtr(TMEMBER_PTR(_activeObject));
+ persistMgr->transferPtr(TMEMBER_PTR(_capturedObject));
+ persistMgr->transferPtr(TMEMBER_PTR(_cursorNoninteractive));
persistMgr->transfer(TMEMBER(_editorMode));
- persistMgr->transfer(TMEMBER(_fader));
+ persistMgr->transferPtr(TMEMBER_PTR(_fader));
persistMgr->transfer(TMEMBER(_freezeLevel));
- persistMgr->transfer(TMEMBER(_focusedWindow));
- persistMgr->transfer(TMEMBER(_fontStorage));
+ persistMgr->transferPtr(TMEMBER_PTR(_focusedWindow));
+ persistMgr->transferPtr(TMEMBER_PTR(_fontStorage));
persistMgr->transfer(TMEMBER(_interactive));
- persistMgr->transfer(TMEMBER(_keyboardState));
+ persistMgr->transferPtr(TMEMBER_PTR(_keyboardState));
persistMgr->transfer(TMEMBER(_lastTime));
- persistMgr->transfer(TMEMBER(_mainObject));
+ persistMgr->transferPtr(TMEMBER_PTR(_mainObject));
_musicSystem->persistChannels(persistMgr);
_musicSystem->persistCrossfadeSettings(persistMgr);
@@ -3082,14 +3082,14 @@ bool BaseGame::persist(BasePersistenceManager *persistMgr) {
_regObjects.persist(persistMgr);
- persistMgr->transfer(TMEMBER(_scEngine));
+ persistMgr->transferPtr(TMEMBER_PTR(_scEngine));
//persistMgr->transfer(TMEMBER(_soundMgr));
persistMgr->transfer(TMEMBER_INT(_state));
//persistMgr->transfer(TMEMBER(_surfaceStorage));
persistMgr->transfer(TMEMBER(_subtitles));
persistMgr->transfer(TMEMBER(_subtitlesSpeed));
- persistMgr->transfer(TMEMBER(_systemFont));
- persistMgr->transfer(TMEMBER(_videoFont));
+ persistMgr->transferPtr(TMEMBER_PTR(_systemFont));
+ persistMgr->transferPtr(TMEMBER_PTR(_videoFont));
persistMgr->transfer(TMEMBER(_videoSubtitles));
_timerNormal.persist(persistMgr);
@@ -3840,7 +3840,7 @@ bool BaseGame::isRightDoubleClick() {
}
//////////////////////////////////////////////////////////////////////////
-bool BaseGame::isDoubleClick(int buttonIndex) {
+bool BaseGame::isDoubleClick(int32 buttonIndex) {
uint32 maxDoubleCLickTime = 500;
int maxMoveX = 4;
int maxMoveY = 4;
diff --git a/engines/wintermute/base/base_game_music.cpp b/engines/wintermute/base/base_game_music.cpp
index a39deb8d8d..ac23801e4c 100644
--- a/engines/wintermute/base/base_game_music.cpp
+++ b/engines/wintermute/base/base_game_music.cpp
@@ -214,7 +214,7 @@ bool BaseGameMusic::updateMusicCrossfade() {
bool BaseGameMusic::persistChannels(BasePersistenceManager *persistMgr) {
for (int i = 0; i < NUM_MUSIC_CHANNELS; i++) {
- persistMgr->transfer(TMEMBER(_music[i]));
+ persistMgr->transferPtr(TMEMBER_PTR(_music[i]));
persistMgr->transfer(TMEMBER(_musicStartTime[i]));
}
return true;
diff --git a/engines/wintermute/base/base_object.cpp b/engines/wintermute/base/base_object.cpp
index 75ba4fb50f..ad181b922e 100644
--- a/engines/wintermute/base/base_object.cpp
+++ b/engines/wintermute/base/base_object.cpp
@@ -955,10 +955,10 @@ bool BaseObject::persist(BasePersistenceManager *persistMgr) {
for (int i = 0; i < 7; i++) {
persistMgr->transfer(TMEMBER(_caption[i]));
}
- persistMgr->transfer(TMEMBER(_activeCursor));
+ persistMgr->transferPtr(TMEMBER_PTR(_activeCursor));
persistMgr->transfer(TMEMBER(_alphaColor));
persistMgr->transfer(TMEMBER(_autoSoundPanning));
- persistMgr->transfer(TMEMBER(_cursor));
+ persistMgr->transferPtr(TMEMBER_PTR(_cursor));
persistMgr->transfer(TMEMBER(_sharedCursors));
persistMgr->transfer(TMEMBER(_editorAlwaysRegister));
persistMgr->transfer(TMEMBER(_editorOnly));
@@ -971,7 +971,7 @@ bool BaseObject::persist(BasePersistenceManager *persistMgr) {
persistMgr->transfer(TMEMBER(_relativeScale));
persistMgr->transfer(TMEMBER(_rotatable));
persistMgr->transfer(TMEMBER(_scale));
- persistMgr->transfer(TMEMBER(_sFX));
+ persistMgr->transferPtr(TMEMBER_PTR(_sFX));
persistMgr->transfer(TMEMBER(_sFXStart));
persistMgr->transfer(TMEMBER(_sFXVolume));
persistMgr->transfer(TMEMBER(_ready));
diff --git a/engines/wintermute/base/base_persistence_manager.cpp b/engines/wintermute/base/base_persistence_manager.cpp
index 12bc62d5dc..5dbacb157b 100644
--- a/engines/wintermute/base/base_persistence_manager.cpp
+++ b/engines/wintermute/base/base_persistence_manager.cpp
@@ -533,7 +533,7 @@ TimeDate BasePersistenceManager::getTimeDate() {
}
void BasePersistenceManager::putFloat(float val) {
- int32 exponent = 0;
+ int exponent = 0;
float significand = frexp(val, &exponent);
Common::String str = Common::String::format("FS%f", significand);
_saveStream->writeUint32LE(str.size());
@@ -556,7 +556,7 @@ float BasePersistenceManager::getFloat() {
}
void BasePersistenceManager::putDouble(double val) {
- int32 exponent = 0;
+ int exponent = 0;
double significand = frexp(val, &exponent);
Common::String str = Common::String::format("DS%f", significand);
_saveStream->writeUint32LE(str.size());
@@ -599,7 +599,7 @@ bool BasePersistenceManager::transfer(const char *name, bool *val) {
//////////////////////////////////////////////////////////////////////////
// int
-bool BasePersistenceManager::transfer(const char *name, int *val) {
+bool BasePersistenceManager::transfer(const char *name, int32 *val) {
if (_saving) {
_saveStream->writeSint32LE(*val);
if (_saveStream->err()) {
@@ -848,7 +848,8 @@ bool BasePersistenceManager::transfer(const char *name, Vector2 *val) {
//////////////////////////////////////////////////////////////////////////
// generic pointer
-bool BasePersistenceManager::transfer(const char *name, void *val) {
+
+bool BasePersistenceManager::transferPtr(const char *name, void *val) {
int classID = -1, instanceID = -1;
if (_saving) {
@@ -869,7 +870,6 @@ bool BasePersistenceManager::transfer(const char *name, void *val) {
return STATUS_OK;
}
-
//////////////////////////////////////////////////////////////////////////
bool BasePersistenceManager::checkVersion(byte verMajor, byte verMinor, byte verBuild) {
if (_saving) {
diff --git a/engines/wintermute/base/base_persistence_manager.h b/engines/wintermute/base/base_persistence_manager.h
index 8cc21b353b..7b578085ba 100644
--- a/engines/wintermute/base/base_persistence_manager.h
+++ b/engines/wintermute/base/base_persistence_manager.h
@@ -73,8 +73,8 @@ public:
uint32 _richBufferSize;
byte *_richBuffer;
- bool transfer(const char *name, void *val);
- bool transfer(const char *name, int *val);
+ bool transferPtr(const char *name, void *val);
+ bool transfer(const char *name, int32 *val);
bool transfer(const char *name, uint32 *val);
bool transfer(const char *name, float *val);
bool transfer(const char *name, double *val);
diff --git a/engines/wintermute/base/base_region.cpp b/engines/wintermute/base/base_region.cpp
index 51d222be4c..2dabe6ae44 100644
--- a/engines/wintermute/base/base_region.cpp
+++ b/engines/wintermute/base/base_region.cpp
@@ -493,7 +493,7 @@ bool BaseRegion::getBoundingRect(Rect32 *rect) {
if (_points.size() == 0) {
BasePlatform::setRectEmpty(rect);
} else {
- int minX = INT_MAX, minY = INT_MAX, maxX = INT_MIN, maxY = INT_MIN;
+ int32 minX = INT_MAX, minY = INT_MAX, maxX = INT_MIN, maxY = INT_MIN;
for (uint32 i = 0; i < _points.size(); i++) {
minX = MIN(minX, _points[i]->x);
diff --git a/engines/wintermute/base/base_scriptable.cpp b/engines/wintermute/base/base_scriptable.cpp
index fca1df4c90..5753b0482b 100644
--- a/engines/wintermute/base/base_scriptable.cpp
+++ b/engines/wintermute/base/base_scriptable.cpp
@@ -152,10 +152,10 @@ void BaseScriptable::scSetBool(bool val) {
//////////////////////////////////////////////////////////////////////////
bool BaseScriptable::persist(BasePersistenceManager *persistMgr) {
- persistMgr->transfer(TMEMBER(_gameRef));
+ persistMgr->transferPtr(TMEMBER_PTR(_gameRef));
persistMgr->transfer(TMEMBER(_refCount));
- persistMgr->transfer(TMEMBER(_scProp));
- persistMgr->transfer(TMEMBER(_scValue));
+ persistMgr->transferPtr(TMEMBER_PTR(_scProp));
+ persistMgr->transferPtr(TMEMBER_PTR(_scValue));
return STATUS_OK;
}
diff --git a/engines/wintermute/base/base_sprite.cpp b/engines/wintermute/base/base_sprite.cpp
index 3f809f7a46..c920da9ee9 100644
--- a/engines/wintermute/base/base_sprite.cpp
+++ b/engines/wintermute/base/base_sprite.cpp
@@ -298,8 +298,8 @@ bool BaseSprite::loadBuffer(byte *buffer, bool complete, int lifeTime, TSpriteCa
case TOKEN_EDITOR_BG_ALPHA:
parser.scanStr((char *)params, "%d", &_editorBgAlpha);
- _editorBgAlpha = MIN(_editorBgAlpha, 255);
- _editorBgAlpha = MAX(_editorBgAlpha, 0);
+ _editorBgAlpha = MIN<int32>(_editorBgAlpha, 255);
+ _editorBgAlpha = MAX<int32>(_editorBgAlpha, 0);
break;
case TOKEN_FRAME: {
@@ -539,7 +539,7 @@ bool BaseSprite::persist(BasePersistenceManager *persistMgr) {
persistMgr->transfer(TMEMBER(_looping));
persistMgr->transfer(TMEMBER(_moveX));
persistMgr->transfer(TMEMBER(_moveY));
- persistMgr->transfer(TMEMBER(_owner));
+ persistMgr->transferPtr(TMEMBER_PTR(_owner));
persistMgr->transfer(TMEMBER(_precise));
persistMgr->transfer(TMEMBER(_streamed));
persistMgr->transfer(TMEMBER(_streamedKeepLoaded));
diff --git a/engines/wintermute/base/base_sprite.h b/engines/wintermute/base/base_sprite.h
index 24c1f47755..05cb9fc936 100644
--- a/engines/wintermute/base/base_sprite.h
+++ b/engines/wintermute/base/base_sprite.h
@@ -56,7 +56,7 @@ public:
bool loadFile(const Common::String &filename, int lifeTime = -1, TSpriteCacheType cacheType = CACHE_ALL);
bool draw(int x, int y, BaseObject *Register = nullptr, float zoomX = 100, float zoomY = 100, uint32 alpha = 0xFFFFFFFF);
bool _looping;
- int _currentFrame;
+ int32 _currentFrame;
bool addFrame(const char *filename, uint32 delay = 0, int hotspotX = 0, int hotspotY = 0, Rect32 *rect = nullptr);
BaseSprite(BaseGame *inGame, BaseObject *owner = nullptr);
virtual ~BaseSprite();
diff --git a/engines/wintermute/base/base_sub_frame.h b/engines/wintermute/base/base_sub_frame.h
index 1ecf6c671d..37ba34b748 100644
--- a/engines/wintermute/base/base_sub_frame.h
+++ b/engines/wintermute/base/base_sub_frame.h
@@ -56,8 +56,8 @@ public:
bool getBoundingRect(Rect32 *rect, int x, int y, float scaleX = 100, float scaleY = 100);
const char* getSurfaceFilename();
- int _hotspotX;
- int _hotspotY;
+ int32 _hotspotX;
+ int32 _hotspotY;
uint32 _alpha;
// These two setters and getters are rather usefull, as they allow _rect to be lazily defined
// Thus we don't need to load the actual graphics before the rect is actually needed.
diff --git a/engines/wintermute/base/base_viewport.cpp b/engines/wintermute/base/base_viewport.cpp
index 4f62a4f6f9..f79e5c9f13 100644
--- a/engines/wintermute/base/base_viewport.cpp
+++ b/engines/wintermute/base/base_viewport.cpp
@@ -53,9 +53,9 @@ BaseViewport::~BaseViewport() {
//////////////////////////////////////////////////////////////////////////
bool BaseViewport::persist(BasePersistenceManager *persistMgr) {
- persistMgr->transfer(TMEMBER(_gameRef));
+ persistMgr->transferPtr(TMEMBER_PTR(_gameRef));
- persistMgr->transfer(TMEMBER(_mainObject));
+ persistMgr->transferPtr(TMEMBER_PTR(_mainObject));
persistMgr->transfer(TMEMBER(_offsetX));
persistMgr->transfer(TMEMBER(_offsetY));
persistMgr->transfer(TMEMBER(_rect));
@@ -65,10 +65,10 @@ bool BaseViewport::persist(BasePersistenceManager *persistMgr) {
//////////////////////////////////////////////////////////////////////////
-bool BaseViewport::setRect(int left, int top, int right, int bottom, bool noCheck) {
+bool BaseViewport::setRect(int32 left, int32 top, int32 right, int32 bottom, bool noCheck) {
if (!noCheck) {
- left = MAX(left, 0);
- top = MAX(top, 0);
+ left = MAX<int32>(left, 0);
+ top = MAX<int32>(top, 0);
right = MIN(right, BaseEngine::instance().getRenderer()->getWidth());
bottom = MIN(bottom, BaseEngine::instance().getRenderer()->getHeight());
}
diff --git a/engines/wintermute/base/base_viewport.h b/engines/wintermute/base/base_viewport.h
index 75b9989080..584e5a78f9 100644
--- a/engines/wintermute/base/base_viewport.h
+++ b/engines/wintermute/base/base_viewport.h
@@ -41,7 +41,7 @@ public:
int getHeight() const;
int getWidth() const;
Rect32 *getRect();
- bool setRect(int left, int top, int right, int bottom, bool noCheck = false);
+ bool setRect(int32 left, int32 top, int32 right, int32 bottom, bool noCheck = false);
DECLARE_PERSISTENT(BaseViewport, BaseClass)
int32 _offsetY;
int32 _offsetX;
diff --git a/engines/wintermute/base/font/base_font_bitmap.cpp b/engines/wintermute/base/font/base_font_bitmap.cpp
index 5139620727..03bd471636 100644
--- a/engines/wintermute/base/font/base_font_bitmap.cpp
+++ b/engines/wintermute/base/font/base_font_bitmap.cpp
@@ -478,7 +478,7 @@ bool BaseFontBitmap::loadBuffer(byte *buffer) {
_widths[spaceChar] = spaceWidth;
} else {
if (_widths[spaceChar] == expandWidth || _widths[spaceChar] == 0) {
- _widths[spaceChar] = (_widths['m'] + _widths['i']) / 2;
+ _widths[spaceChar] = (_widths[(uint)'m'] + _widths[(uint)'i']) / 2;
}
}
} else {
@@ -498,10 +498,10 @@ bool BaseFontBitmap::persist(BasePersistenceManager *persistMgr) {
BaseFont::persist(persistMgr);
persistMgr->transfer(TMEMBER(_numColumns));
- persistMgr->transfer(TMEMBER(_subframe));
+ persistMgr->transferPtr(TMEMBER_PTR(_subframe));
persistMgr->transfer(TMEMBER(_tileHeight));
persistMgr->transfer(TMEMBER(_tileWidth));
- persistMgr->transfer(TMEMBER(_sprite));
+ persistMgr->transferPtr(TMEMBER_PTR(_sprite));
persistMgr->transfer(TMEMBER(_widthsFrame));
if (persistMgr->getIsSaving()) {
diff --git a/engines/wintermute/base/font/base_font_bitmap.h b/engines/wintermute/base/font/base_font_bitmap.h
index e380a949e2..0bdac64026 100644
--- a/engines/wintermute/base/font/base_font_bitmap.h
+++ b/engines/wintermute/base/font/base_font_bitmap.h
@@ -39,10 +39,10 @@ public:
DECLARE_PERSISTENT(BaseFontBitmap, BaseFont)
bool loadBuffer(byte *Buffer);
bool loadFile(const Common::String &filename);
- virtual int getTextWidth(const byte *text, int maxLength = -1);
- virtual int getTextHeight(const byte *text, int width);
- virtual void drawText(const byte *text, int x, int y, int width, TTextAlign align = TAL_LEFT, int max_height = -1, int maxLength = -1);
- virtual int getLetterHeight();
+ virtual int getTextWidth(const byte *text, int maxLength = -1) override;
+ virtual int getTextHeight(const byte *text, int width) override;
+ virtual void drawText(const byte *text, int x, int y, int width, TTextAlign align = TAL_LEFT, int max_height = -1, int maxLength = -1) override;
+ virtual int getLetterHeight() override;
BaseFontBitmap(BaseGame *inGame);
virtual ~BaseFontBitmap();
@@ -50,11 +50,11 @@ public:
private:
bool getWidths();
BaseSprite *_sprite;
- int _widthsFrame;
+ int32 _widthsFrame;
bool _fontextFix;
- int _numColumns;
- int _tileHeight;
- int _tileWidth;
+ int32 _numColumns;
+ int32 _tileHeight;
+ int32 _tileWidth;
byte _widths[NUM_CHARACTERS];
BaseSubFrame *_subframe;
bool _wholeCell;
diff --git a/engines/wintermute/base/font/base_font_storage.cpp b/engines/wintermute/base/font/base_font_storage.cpp
index 6a625f30ae..3286742478 100644
--- a/engines/wintermute/base/font/base_font_storage.cpp
+++ b/engines/wintermute/base/font/base_font_storage.cpp
@@ -132,7 +132,7 @@ bool BaseFontStorage::persist(BasePersistenceManager *persistMgr) {
cleanup(false);
}
- persistMgr->transfer(TMEMBER(_gameRef));
+ persistMgr->transferPtr(TMEMBER_PTR(_gameRef));
_fonts.persist(persistMgr);
return STATUS_OK;
diff --git a/engines/wintermute/base/font/base_font_truetype.cpp b/engines/wintermute/base/font/base_font_truetype.cpp
index 246c6befb7..2fcdebc117 100644
--- a/engines/wintermute/base/font/base_font_truetype.cpp
+++ b/engines/wintermute/base/font/base_font_truetype.cpp
@@ -39,6 +39,7 @@
#include "graphics/fonts/ttf.h"
#include "graphics/fontman.h"
#include "common/unzip.h"
+#include "common/config-manager.h" // For Scummmodern.zip
#include <limits.h>
namespace Wintermute {
@@ -509,7 +510,7 @@ bool BaseFontTT::persist(BasePersistenceManager *persistMgr) {
// persist layers
- int numLayers;
+ int32 numLayers;
if (persistMgr->getIsSaving()) {
numLayers = _layers.size();
persistMgr->transfer(TMEMBER(numLayers));
@@ -566,7 +567,19 @@ bool BaseFontTT::initFont() {
// Fallback2: Try to find ScummModern.zip, and get the font from there:
if (!_font) {
- Common::SeekableReadStream *themeFile = SearchMan.createReadStreamForMember("scummmodern.zip");
+ Common::SeekableReadStream *themeFile = nullptr;
+ if (ConfMan.hasKey("themepath")) {
+ Common::FSNode themePath(ConfMan.get("themepath"));
+ if (themePath.exists()) {
+ Common::FSNode scummModern = themePath.getChild("scummmodern.zip");
+ if (scummModern.exists()) {
+ themeFile = scummModern.createReadStream();
+ }
+ }
+ }
+ if (!themeFile) { // Fallback 2.5: Search for ScummModern.zip in SearchMan.
+ themeFile = SearchMan.createReadStreamForMember("scummmodern.zip");
+ }
if (themeFile) {
Common::Archive *themeArchive = Common::makeZipArchive(themeFile);
if (themeArchive->hasFile("FreeSans.ttf")) {
diff --git a/engines/wintermute/base/font/base_font_truetype.h b/engines/wintermute/base/font/base_font_truetype.h
index c9ac4cd993..f93505921f 100644
--- a/engines/wintermute/base/font/base_font_truetype.h
+++ b/engines/wintermute/base/font/base_font_truetype.h
@@ -46,13 +46,13 @@ private:
class BaseCachedTTFontText {
public:
WideString _text;
- int _width;
+ int32 _width;
TTextAlign _align;
- int _maxHeight;
- int _maxLength;
+ int32 _maxHeight;
+ int32 _maxLength;
BaseSurface *_surface;
- int _priority;
- int _textOffset;
+ int32 _priority;
+ int32 _textOffset;
bool _marked;
uint32 _lastUsed;
@@ -90,8 +90,8 @@ public:
return STATUS_OK;
}
- int _offsetX;
- int _offsetY;
+ int32 _offsetX;
+ int32 _offsetY;
uint32 _color;
};
@@ -100,10 +100,10 @@ public:
BaseFontTT(BaseGame *inGame);
virtual ~BaseFontTT(void);
- virtual int getTextWidth(const byte *text, int maxLength = -1);
- virtual int getTextHeight(const byte *text, int width);
- virtual void drawText(const byte *text, int x, int y, int width, TTextAlign align = TAL_LEFT, int max_height = -1, int maxLength = -1);
- virtual int getLetterHeight();
+ virtual int getTextWidth(const byte *text, int maxLength = -1) override;
+ virtual int getTextHeight(const byte *text, int width) override;
+ virtual void drawText(const byte *text, int x, int y, int width, TTextAlign align = TAL_LEFT, int max_height = -1, int maxLength = -1) override;
+ virtual int getLetterHeight() override;
bool loadBuffer(byte *buffer);
bool loadFile(const Common::String &filename);
@@ -140,7 +140,7 @@ public:
bool _isItalic;
bool _isUnderline;
bool _isStriked;
- int _fontHeight;
+ int32 _fontHeight;
char *_fontFile;
BaseArray<BaseTTFontLayer *> _layers;
diff --git a/engines/wintermute/base/gfx/osystem/base_render_osystem.cpp b/engines/wintermute/base/gfx/osystem/base_render_osystem.cpp
index 0bb987a8b9..e1424cea87 100644
--- a/engines/wintermute/base/gfx/osystem/base_render_osystem.cpp
+++ b/engines/wintermute/base/gfx/osystem/base_render_osystem.cpp
@@ -39,6 +39,8 @@
#include "common/queue.h"
#include "common/config-manager.h"
+#define DIRTY_RECT_LIMIT 800
+
namespace Wintermute {
BaseRenderer *makeOSystemRenderer(BaseGame *inGame) {
@@ -62,6 +64,7 @@ BaseRenderOSystem::BaseRenderOSystem(BaseGame *inGame) : BaseRenderer(inGame) {
setColorMod(255, 255, 255);
_dirtyRect = nullptr;
_disableDirtyRects = false;
+ _tempDisableDirtyRects = 0;
if (ConfMan.hasKey("dirty_rects")) {
_disableDirtyRects = !ConfMan.getBool("dirty_rects");
}
@@ -166,6 +169,9 @@ bool BaseRenderOSystem::indicatorFlip() {
}
bool BaseRenderOSystem::flip() {
+ if (_renderQueue.size() > DIRTY_RECT_LIMIT) {
+ _tempDisableDirtyRects++;
+ }
if (_skipThisFrame) {
_skipThisFrame = false;
delete _dirtyRect;
@@ -176,7 +182,7 @@ bool BaseRenderOSystem::flip() {
addDirtyRect(_renderRect);
return true;
}
- if (!_disableDirtyRects) {
+ if (!_tempDisableDirtyRects && !_disableDirtyRects) {
drawTickets();
} else {
// Clear the scale-buffered tickets that wasn't reused.
@@ -192,8 +198,8 @@ bool BaseRenderOSystem::flip() {
}
}
}
- if (_needsFlip || _disableDirtyRects) {
- if (_disableDirtyRects) {
+ if (_needsFlip || _disableDirtyRects || _tempDisableDirtyRects) {
+ if (_disableDirtyRects || _tempDisableDirtyRects) {
g_system->copyRectToScreen((byte *)_renderSurface->pixels, _renderSurface->pitch, 0, 0, _renderSurface->w, _renderSurface->h);
}
// g_system->copyRectToScreen((byte *)_renderSurface->pixels, _renderSurface->pitch, _dirtyRect->left, _dirtyRect->top, _dirtyRect->width(), _dirtyRect->height());
@@ -204,13 +210,29 @@ bool BaseRenderOSystem::flip() {
}
_drawNum = 1;
+ if (_tempDisableDirtyRects && !_disableDirtyRects) {
+ _tempDisableDirtyRects--;
+ if (!_tempDisableDirtyRects) {
+ Common::Rect screen(_screenRect.top, _screenRect.left, _screenRect.bottom, _screenRect.right);
+ addDirtyRect(screen);
+
+ // The queue has been ignored but updated, and is guaranteed to be in draw-order when run without dirty-rects.
+ RenderQueueIterator it = _renderQueue.begin();
+ int drawNum = 1;
+ while (it != _renderQueue.end()) {
+ (*it)->_drawNum = drawNum++;
+ ++it;
+ }
+ }
+ }
+
return STATUS_OK;
}
//////////////////////////////////////////////////////////////////////////
bool BaseRenderOSystem::fill(byte r, byte g, byte b, Common::Rect *rect) {
_clearColor = _renderSurface->format.ARGBToColor(0xFF, r, g, b);
- if (!_disableDirtyRects) {
+ if (!_disableDirtyRects && !_tempDisableDirtyRects) {
return STATUS_OK;
}
if (!rect) {
@@ -277,6 +299,15 @@ Graphics::PixelFormat BaseRenderOSystem::getPixelFormat() const {
}
void BaseRenderOSystem::drawSurface(BaseSurfaceOSystem *owner, const Graphics::Surface *surf, Common::Rect *srcRect, Common::Rect *dstRect, bool mirrorX, bool mirrorY, bool disableAlpha) {
+ if (_tempDisableDirtyRects || _disableDirtyRects) {
+ RenderTicket *ticket = new RenderTicket(owner, surf, srcRect, dstRect, mirrorX, mirrorY, disableAlpha);
+ ticket->_colorMod = _colorMod;
+ ticket->_wantsDraw = true;
+ _renderQueue.push_back(ticket);
+ _previousTicket = ticket;
+ drawFromSurface(ticket);
+ return;
+ }
// Start searching from the beginning for the first and second items (since it's empty the first time around
// then keep incrementing the start-position, to avoid comparing against already used tickets.
if (_drawNum == 0 || _drawNum == 1) {
@@ -310,6 +341,10 @@ void BaseRenderOSystem::drawSurface(BaseSurfaceOSystem *owner, const Graphics::S
drawFromTicket(compareTicket);
_previousTicket = compareTicket;
}
+ if (_renderQueue.size() > DIRTY_RECT_LIMIT) {
+ drawTickets();
+ _tempDisableDirtyRects = 3;
+ }
return;
}
}
@@ -322,6 +357,8 @@ void BaseRenderOSystem::drawSurface(BaseSurfaceOSystem *owner, const Graphics::S
} else {
ticket->_wantsDraw = true;
_renderQueue.push_back(ticket);
+ _previousTicket = ticket;
+ drawFromSurface(ticket);
}
}
@@ -330,7 +367,7 @@ void BaseRenderOSystem::repeatLastDraw(int offsetX, int offsetY, int numTimesX,
RenderTicket *origTicket = _previousTicket;
// Make sure drawSurface WILL start from the correct _lastAddedTicket
- if (*_lastAddedTicket != origTicket) {
+ if (!_tempDisableDirtyRects && !_disableDirtyRects && *_lastAddedTicket != origTicket) {
RenderQueueIterator it;
RenderQueueIterator endIterator = _renderQueue.end();
for (it = _renderQueue.begin(); it != endIterator; ++it) {
@@ -541,7 +578,7 @@ void BaseRenderOSystem::drawFromSurface(RenderTicket *ticket, Common::Rect *dstR
bool BaseRenderOSystem::drawLine(int x1, int y1, int x2, int y2, uint32 color) {
// This function isn't used outside of indicator-displaying, and thus quite unused in
// BaseRenderOSystem when dirty-rects are enabled.
- if (!_disableDirtyRects && !_indicatorDisplay) {
+ if (!_tempDisableDirtyRects && !_disableDirtyRects && !_indicatorDisplay) {
error("BaseRenderOSystem::DrawLine - doesn't work for dirty rects yet");
}
diff --git a/engines/wintermute/base/gfx/osystem/base_render_osystem.h b/engines/wintermute/base/gfx/osystem/base_render_osystem.h
index cc2ed57f9b..3cb0fa82a3 100644
--- a/engines/wintermute/base/gfx/osystem/base_render_osystem.h
+++ b/engines/wintermute/base/gfx/osystem/base_render_osystem.h
@@ -108,6 +108,7 @@ private:
int _borderBottom;
bool _disableDirtyRects;
+ uint32 _tempDisableDirtyRects;
bool _spriteBatch;
uint32 _batchNum;
float _ratioX;
diff --git a/engines/wintermute/base/particles/part_emitter.cpp b/engines/wintermute/base/particles/part_emitter.cpp
index d09f2215dd..c86e1ce369 100644
--- a/engines/wintermute/base/particles/part_emitter.cpp
+++ b/engines/wintermute/base/particles/part_emitter.cpp
@@ -1212,7 +1212,7 @@ bool PartEmitter::persist(BasePersistenceManager *persistMgr) {
persistMgr->transfer(TMEMBER_INT(_batchesGenerated));
persistMgr->transfer(TMEMBER(_emitEvent));
- persistMgr->transfer(TMEMBER(_owner));
+ persistMgr->transferPtr(TMEMBER_PTR(_owner));
_sprites.persist(persistMgr);
diff --git a/engines/wintermute/base/particles/part_emitter.h b/engines/wintermute/base/particles/part_emitter.h
index cbc0aa49b4..a0d701f338 100644
--- a/engines/wintermute/base/particles/part_emitter.h
+++ b/engines/wintermute/base/particles/part_emitter.h
@@ -94,31 +94,31 @@ private:
float _scale2;
bool _scaleZBased;
- int _maxParticles;
+ int32 _maxParticles;
- int _lifeTime1;
- int _lifeTime2;
+ int32 _lifeTime1;
+ int32 _lifeTime2;
bool _lifeTimeZBased;
- int _genInterval;
- int _genAmount;
+ int32 _genInterval;
+ int32 _genAmount;
bool _running;
- int _overheadTime;
+ int32 _overheadTime;
- int _maxBatches;
- int _batchesGenerated;
+ int32 _maxBatches;
+ int32 _batchesGenerated;
Rect32 _border;
- int _borderThicknessLeft;
- int _borderThicknessRight;
- int _borderThicknessTop;
- int _borderThicknessBottom;
+ int32 _borderThicknessLeft;
+ int32 _borderThicknessRight;
+ int32 _borderThicknessTop;
+ int32 _borderThicknessBottom;
- int _fadeInTime;
+ int32 _fadeInTime;
- int _alpha1;
- int _alpha2;
+ int32 _alpha1;
+ int32 _alpha2;
bool _alphaTimeBased;
bool _useRegion;
diff --git a/engines/wintermute/base/save_thumb_helper.cpp b/engines/wintermute/base/save_thumb_helper.cpp
index db6f855cc6..bab29c5cf8 100644
--- a/engines/wintermute/base/save_thumb_helper.cpp
+++ b/engines/wintermute/base/save_thumb_helper.cpp
@@ -35,7 +35,7 @@
namespace Wintermute {
//////////////////////////////////////////////////////////////////////////
-SaveThumbHelper::SaveThumbHelper(const BaseGame *inGame) {
+SaveThumbHelper::SaveThumbHelper(BaseGame *inGame) : _gameRef(inGame) {
_thumbnail = nullptr;
_scummVMThumb = nullptr;
}
diff --git a/engines/wintermute/base/save_thumb_helper.h b/engines/wintermute/base/save_thumb_helper.h
index 43cc7e39a7..d3bc5f5523 100644
--- a/engines/wintermute/base/save_thumb_helper.h
+++ b/engines/wintermute/base/save_thumb_helper.h
@@ -35,7 +35,7 @@ class BaseGame;
class SaveThumbHelper {
public:
- SaveThumbHelper(const BaseGame *inGame);
+ SaveThumbHelper(BaseGame *inGame);
virtual ~SaveThumbHelper(void);
bool storeThumbnail(bool doFlip = false);
bool storeScummVMThumbNail(bool doFlip = false);
@@ -44,7 +44,6 @@ public:
BaseImage *_scummVMThumb;
private:
BaseImage *storeThumb(bool doFlip, int width, int height);
- BaseImage *_richThumbnail;
BaseGame *_gameRef;
};
diff --git a/engines/wintermute/base/scriptables/script.cpp b/engines/wintermute/base/scriptables/script.cpp
index 56ffbf75c5..1b945c2e1c 100644
--- a/engines/wintermute/base/scriptables/script.cpp
+++ b/engines/wintermute/base/scriptables/script.cpp
@@ -1243,7 +1243,7 @@ void ScScript::runtimeError(const char *fmt, ...) {
//////////////////////////////////////////////////////////////////////////
bool ScScript::persist(BasePersistenceManager *persistMgr) {
- persistMgr->transfer(TMEMBER(_gameRef));
+ persistMgr->transferPtr(TMEMBER_PTR(_gameRef));
// buffer
if (persistMgr->getIsSaving()) {
@@ -1252,7 +1252,7 @@ bool ScScript::persist(BasePersistenceManager *persistMgr) {
persistMgr->putBytes(_buffer, _bufferSize);
} else {
// don't save idle/finished scripts
- int bufferSize = 0;
+ int32 bufferSize = 0;
persistMgr->transfer(TMEMBER(bufferSize));
}
} else {
@@ -1268,33 +1268,33 @@ bool ScScript::persist(BasePersistenceManager *persistMgr) {
}
}
- persistMgr->transfer(TMEMBER(_callStack));
+ persistMgr->transferPtr(TMEMBER_PTR(_callStack));
persistMgr->transfer(TMEMBER(_currentLine));
- persistMgr->transfer(TMEMBER(_engine));
+ persistMgr->transferPtr(TMEMBER_PTR(_engine));
persistMgr->transfer(TMEMBER(_filename));
persistMgr->transfer(TMEMBER(_freezable));
- persistMgr->transfer(TMEMBER(_globals));
+ persistMgr->transferPtr(TMEMBER_PTR(_globals));
persistMgr->transfer(TMEMBER(_iP));
- persistMgr->transfer(TMEMBER(_scopeStack));
- persistMgr->transfer(TMEMBER(_stack));
+ persistMgr->transferPtr(TMEMBER_PTR(_scopeStack));
+ persistMgr->transferPtr(TMEMBER_PTR(_stack));
persistMgr->transfer(TMEMBER_INT(_state));
- persistMgr->transfer(TMEMBER(_operand));
+ persistMgr->transferPtr(TMEMBER_PTR(_operand));
persistMgr->transfer(TMEMBER_INT(_origState));
- persistMgr->transfer(TMEMBER(_owner));
- persistMgr->transfer(TMEMBER(_reg1));
+ persistMgr->transferPtr(TMEMBER_PTR(_owner));
+ persistMgr->transferPtr(TMEMBER_PTR(_reg1));
persistMgr->transfer(TMEMBER(_thread));
persistMgr->transfer(TMEMBER(_threadEvent));
- persistMgr->transfer(TMEMBER(_thisStack));
+ persistMgr->transferPtr(TMEMBER_PTR(_thisStack));
persistMgr->transfer(TMEMBER(_timeSlice));
- persistMgr->transfer(TMEMBER(_waitObject));
- persistMgr->transfer(TMEMBER(_waitScript));
+ persistMgr->transferPtr(TMEMBER_PTR(_waitObject));
+ persistMgr->transferPtr(TMEMBER_PTR(_waitScript));
persistMgr->transfer(TMEMBER(_waitTime));
persistMgr->transfer(TMEMBER(_waitFrozen));
persistMgr->transfer(TMEMBER(_methodThread));
persistMgr->transfer(TMEMBER(_methodThread));
persistMgr->transfer(TMEMBER(_unbreakable));
- persistMgr->transfer(TMEMBER(_parentScript));
+ persistMgr->transferPtr(TMEMBER_PTR(_parentScript));
if (!persistMgr->getIsSaving()) {
_tracingMode = false;
diff --git a/engines/wintermute/base/scriptables/script_engine.cpp b/engines/wintermute/base/scriptables/script_engine.cpp
index d8f38f2f4d..f83fb36843 100644
--- a/engines/wintermute/base/scriptables/script_engine.cpp
+++ b/engines/wintermute/base/scriptables/script_engine.cpp
@@ -484,9 +484,9 @@ bool ScEngine::persist(BasePersistenceManager *persistMgr) {
cleanup();
}
- persistMgr->transfer(TMEMBER(_gameRef));
- persistMgr->transfer(TMEMBER(_currentScript));
- persistMgr->transfer(TMEMBER(_globals));
+ persistMgr->transferPtr(TMEMBER_PTR(_gameRef));
+ persistMgr->transferPtr(TMEMBER_PTR(_currentScript));
+ persistMgr->transferPtr(TMEMBER_PTR(_globals));
_scripts.persist(persistMgr);
return STATUS_OK;
diff --git a/engines/wintermute/base/scriptables/script_ext_array.cpp b/engines/wintermute/base/scriptables/script_ext_array.cpp
index 892d0674ff..a466d361ec 100644
--- a/engines/wintermute/base/scriptables/script_ext_array.cpp
+++ b/engines/wintermute/base/scriptables/script_ext_array.cpp
@@ -215,7 +215,7 @@ bool SXArray::persist(BasePersistenceManager *persistMgr) {
BaseScriptable::persist(persistMgr);
persistMgr->transfer(TMEMBER(_length));
- persistMgr->transfer(TMEMBER(_values));
+ persistMgr->transferPtr(TMEMBER_PTR(_values));
return STATUS_OK;
}
diff --git a/engines/wintermute/base/scriptables/script_ext_date.cpp b/engines/wintermute/base/scriptables/script_ext_date.cpp
index 53a1d36b81..afca0c4bbf 100644
--- a/engines/wintermute/base/scriptables/script_ext_date.cpp
+++ b/engines/wintermute/base/scriptables/script_ext_date.cpp
@@ -237,12 +237,29 @@ bool SXDate::scSetProperty(const char *name, ScValue *value) {
bool SXDate::persist(BasePersistenceManager *persistMgr) {
BaseScriptable::persist(persistMgr);
- persistMgr->transfer(TMEMBER(_tm.tm_year));
- persistMgr->transfer(TMEMBER(_tm.tm_mon));
- persistMgr->transfer(TMEMBER(_tm.tm_mday));
- persistMgr->transfer(TMEMBER(_tm.tm_hour));
- persistMgr->transfer(TMEMBER(_tm.tm_min));
- persistMgr->transfer(TMEMBER(_tm.tm_sec));
+ int32 year = _tm.tm_year;
+ int32 mon = _tm.tm_mon;
+ int32 mday = _tm.tm_mday;
+ int32 hour = _tm.tm_hour;
+ int32 min = _tm.tm_min;
+ int32 sec = _tm.tm_sec;
+ persistMgr->transfer(TMEMBER(year));
+ persistMgr->transfer(TMEMBER(mon));
+ persistMgr->transfer(TMEMBER(mday));
+ persistMgr->transfer(TMEMBER(hour));
+ persistMgr->transfer(TMEMBER(min));
+ persistMgr->transfer(TMEMBER(sec));
+ if (persistMgr->checkVersion(1, 2, 1)) {
+ int32 wday = _tm.tm_wday;
+ persistMgr->transfer(TMEMBER(wday));
+ _tm.tm_wday = wday;
+ }
+ _tm.tm_year = year;
+ _tm.tm_mon = mon;
+ _tm.tm_mday = mday;
+ _tm.tm_hour = hour;
+ _tm.tm_min = min;
+ _tm.tm_sec = sec;
return STATUS_OK;
}
diff --git a/engines/wintermute/base/scriptables/script_stack.cpp b/engines/wintermute/base/scriptables/script_stack.cpp
index 3239decae8..b53457c81b 100644
--- a/engines/wintermute/base/scriptables/script_stack.cpp
+++ b/engines/wintermute/base/scriptables/script_stack.cpp
@@ -184,7 +184,7 @@ void ScStack::pushNative(BaseScriptable *val, bool persistent) {
//////////////////////////////////////////////////////////////////////////
bool ScStack::persist(BasePersistenceManager *persistMgr) {
- persistMgr->transfer(TMEMBER(_gameRef));
+ persistMgr->transferPtr(TMEMBER_PTR(_gameRef));
persistMgr->transfer(TMEMBER(_sP));
_values.persist(persistMgr);
diff --git a/engines/wintermute/base/scriptables/script_value.cpp b/engines/wintermute/base/scriptables/script_value.cpp
index 46d6c25d44..5e2923e029 100644
--- a/engines/wintermute/base/scriptables/script_value.cpp
+++ b/engines/wintermute/base/scriptables/script_value.cpp
@@ -73,7 +73,7 @@ ScValue::ScValue(BaseGame *inGame, bool val) : BaseClass(inGame) {
//////////////////////////////////////////////////////////////////////////
-ScValue::ScValue(BaseGame *inGame, int val) : BaseClass(inGame) {
+ScValue::ScValue(BaseGame *inGame, int32 val) : BaseClass(inGame) {
_type = VAL_INT;
_valInt = val;
@@ -789,7 +789,7 @@ void ScValue::setValue(ScValue *val) {
//////////////////////////////////////////////////////////////////////////
bool ScValue::persist(BasePersistenceManager *persistMgr) {
- persistMgr->transfer(TMEMBER(_gameRef));
+ persistMgr->transferPtr(TMEMBER_PTR(_gameRef));
persistMgr->transfer(TMEMBER(_persistent));
persistMgr->transfer(TMEMBER(_isConstVar));
@@ -797,9 +797,9 @@ bool ScValue::persist(BasePersistenceManager *persistMgr) {
persistMgr->transfer(TMEMBER(_valBool));
persistMgr->transfer(TMEMBER(_valFloat));
persistMgr->transfer(TMEMBER(_valInt));
- persistMgr->transfer(TMEMBER(_valNative));
+ persistMgr->transferPtr(TMEMBER_PTR(_valNative));
- int size;
+ int32 size;
const char *str;
if (persistMgr->getIsSaving()) {
size = _valObject.size();
@@ -808,23 +808,23 @@ bool ScValue::persist(BasePersistenceManager *persistMgr) {
while (_valIter != _valObject.end()) {
str = _valIter->_key.c_str();
persistMgr->transfer("", &str);
- persistMgr->transfer("", &_valIter->_value);
+ persistMgr->transferPtr("", &_valIter->_value);
_valIter++;
}
} else {
- ScValue *val;
+ ScValue *val = nullptr;
persistMgr->transfer("", &size);
for (int i = 0; i < size; i++) {
persistMgr->transfer("", &str);
- persistMgr->transfer("", &val);
+ persistMgr->transferPtr("", &val);
_valObject[str] = val;
delete[] str;
}
}
- persistMgr->transfer(TMEMBER(_valRef));
+ persistMgr->transferPtr(TMEMBER_PTR(_valRef));
persistMgr->transfer(TMEMBER(_valString));
/* // TODO: Convert to Debug-statements.
@@ -951,7 +951,7 @@ int ScValue::compareStrict(ScValue *val1, ScValue *val2) {
}
//////////////////////////////////////////////////////////////////////////
-bool ScValue::setProperty(const char *propName, int value) {
+bool ScValue::setProperty(const char *propName, int32 value) {
ScValue *val = new ScValue(_gameRef, value);
bool ret = DID_SUCCEED(setProp(propName, val));
delete val;
diff --git a/engines/wintermute/base/scriptables/script_value.h b/engines/wintermute/base/scriptables/script_value.h
index e8173474d6..a8e815023e 100644
--- a/engines/wintermute/base/scriptables/script_value.h
+++ b/engines/wintermute/base/scriptables/script_value.h
@@ -94,14 +94,14 @@ public:
TValType _type;
ScValue(BaseGame *inGame);
ScValue(BaseGame *inGame, bool Val);
- ScValue(BaseGame *inGame, int Val);
+ ScValue(BaseGame *inGame, int32 Val);
ScValue(BaseGame *inGame, double Val);
ScValue(BaseGame *inGame, const char *Val);
virtual ~ScValue();
Common::HashMap<Common::String, ScValue *> _valObject;
Common::HashMap<Common::String, ScValue *>::iterator _valIter;
- bool setProperty(const char *propName, int value);
+ bool setProperty(const char *propName, int32 value);
bool setProperty(const char *propName, const char *value);
bool setProperty(const char *propName, double value);
bool setProperty(const char *propName, bool value);
diff --git a/engines/wintermute/base/sound/base_sound.cpp b/engines/wintermute/base/sound/base_sound.cpp
index f246c03fe1..d027c03c8b 100644
--- a/engines/wintermute/base/sound/base_sound.cpp
+++ b/engines/wintermute/base/sound/base_sound.cpp
@@ -164,7 +164,7 @@ bool BaseSound::persist(BasePersistenceManager *persistMgr) {
_sFXParam1 = _sFXParam2 = _sFXParam3 = _sFXParam4 = 0;
}
- persistMgr->transfer(TMEMBER(_gameRef));
+ persistMgr->transferPtr(TMEMBER_PTR(_gameRef));
persistMgr->transfer(TMEMBER(_soundFilename));
persistMgr->transfer(TMEMBER(_soundLooping));
diff --git a/engines/wintermute/base/timer.cpp b/engines/wintermute/base/timer.cpp
index 590dba4655..5dfc117f48 100644
--- a/engines/wintermute/base/timer.cpp
+++ b/engines/wintermute/base/timer.cpp
@@ -71,4 +71,4 @@ void Timer::persist(BasePersistenceManager *persistMgr) {
persistMgr->transfer(TMEMBER(_timerLast));
}
-} // End of namespace Wintermute \ No newline at end of file
+} // End of namespace Wintermute
diff --git a/engines/wintermute/base/timer.h b/engines/wintermute/base/timer.h
index 8353b08abc..ec5477ba2e 100644
--- a/engines/wintermute/base/timer.h
+++ b/engines/wintermute/base/timer.h
@@ -54,4 +54,4 @@ public:
} // End of namespace Wintermute
-#endif \ No newline at end of file
+#endif
diff --git a/engines/wintermute/coll_templ.h b/engines/wintermute/coll_templ.h
index 493ea07015..4a8e92c121 100644
--- a/engines/wintermute/coll_templ.h
+++ b/engines/wintermute/coll_templ.h
@@ -36,48 +36,105 @@ namespace Wintermute {
// Basically Common::Array with peristence-support.
template<typename TYPE>
-class BaseArray : public Common::Array<TYPE> {
+class BaseArrayBase : public Common::Array<TYPE> {
public:
// TODO: Might want to make sure that destructors are called when replacing/deleting/getting destructed
+ int add(TYPE newElement) {
+ Common::Array<TYPE>::push_back(newElement);
+ return Common::Array<TYPE>::size() - 1;
+ }
+ void remove_at(uint32 idx) {
+ Common::Array<TYPE>::remove_at(idx);
+ }
+ void remove_at(uint32 idx, uint32 num) {
+ while (num) {
+ if (idx >= Common::Array<TYPE>::size()) {
+ break;
+ }
+ Common::Array<TYPE>::remove_at(idx);
+ }
+ }
+ template<typename T2>
+ void copy(const BaseArrayBase<T2> &src) {
+ Common::Array<TYPE>::insert_at(0, src);
+ }
+};
+
+template <typename TYPE>
+class BaseArray : public BaseArrayBase<TYPE> {
+ public:
bool persist(BasePersistenceManager *persistMgr) {
- int j;
+ int32 j;
if (persistMgr->getIsSaving()) {
j = Common::Array<TYPE>::size();
persistMgr->transfer("ArraySize", &j);
typename Common::Array<TYPE>::const_iterator it = Common::Array<TYPE>::begin();
for (; it != Common::Array<TYPE>::end(); ++it) {
TYPE obj = *it;
- persistMgr->transfer("", &obj);
+ persistMgr->transferPtr("", &obj);
}
} else {
Common::Array<TYPE>::clear();
persistMgr->transfer("ArraySize", &j);
for (int i = 0; i < j; i++) {
- TYPE obj;
+ TYPE obj = nullptr;
+ persistMgr->transferPtr("", &obj);
+ this->add(obj);
+ }
+ }
+ return true;
+ }
+};
+
+template <>
+class BaseArray<char *> : public BaseArrayBase<char *> {
+ public:
+ bool persist(BasePersistenceManager *persistMgr) {
+ int32 j;
+ if (persistMgr->getIsSaving()) {
+ j = Common::Array<char *>::size();
+ persistMgr->transfer("ArraySize", &j);
+ Common::Array<char *>::const_iterator it = Common::Array<char *>::begin();
+ for (; it != Common::Array<char *>::end(); ++it) {
+ char * obj = *it;
+ persistMgr->transfer("", &obj);
+ }
+ } else {
+ Common::Array<char *>::clear();
+ persistMgr->transfer("ArraySize", &j);
+ for (int i = 0; i < j; i++) {
+ char * obj = nullptr;
persistMgr->transfer("", &obj);
add(obj);
}
}
return true;
}
- int add(TYPE newElement) {
- Common::Array<TYPE>::push_back(newElement);
- return Common::Array<TYPE>::size() - 1;
- }
- void remove_at(uint32 idx) {
- Common::Array<TYPE>::remove_at(idx);
- }
- void remove_at(uint32 idx, uint32 num) {
- while (num) {
- if (idx >= Common::Array<TYPE>::size()) {
- break;
+};
+
+template <>
+class BaseArray<const char *> : public BaseArrayBase<const char *> {
+public:
+ bool persist(BasePersistenceManager *persistMgr) {
+ int32 j;
+ if (persistMgr->getIsSaving()) {
+ j = Common::Array<const char *>::size();
+ persistMgr->transfer("ArraySize", &j);
+ Common::Array<const char *>::const_iterator it = Common::Array<const char *>::begin();
+ for (; it != Common::Array<const char *>::end(); ++it) {
+ const char * obj = *it;
+ persistMgr->transfer("", &obj);
+ }
+ } else {
+ Common::Array<const char *>::clear();
+ persistMgr->transfer("ArraySize", &j);
+ for (int i = 0; i < j; i++) {
+ const char * obj = nullptr;
+ persistMgr->transfer("", &obj);
+ add(obj);
}
- Common::Array<TYPE>::remove_at(idx);
}
- }
- template<typename T2>
- void copy(const BaseArray<T2> &src) {
- Common::Array<TYPE>::insert_at(0, src);
+ return true;
}
};
diff --git a/engines/wintermute/dcgf.h b/engines/wintermute/dcgf.h
index 4f8e96e0ac..fe92194443 100644
--- a/engines/wintermute/dcgf.h
+++ b/engines/wintermute/dcgf.h
@@ -32,7 +32,7 @@
//////////////////////////////////////////////////////////////////////////
#define DCGF_VER_MAJOR 1
-#define DCGF_VER_MINOR 1
+#define DCGF_VER_MINOR 2
#define DCGF_VER_BUILD 1
#define DCGF_VER_SUFFIX "ScummVM"
#define DCGF_VER_BETA true
diff --git a/engines/wintermute/detection_tables.h b/engines/wintermute/detection_tables.h
index b5dbfc1a15..00ec51a715 100644
--- a/engines/wintermute/detection_tables.h
+++ b/engines/wintermute/detection_tables.h
@@ -162,7 +162,7 @@ static const ADGameDescription gameDescriptions[] = {
AD_ENTRY1s("data.dcp", "ebd0915d9a12df5224be22f53bb23eb6", 7278306),
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_UNSTABLE,
+ ADGF_TESTING,
GUIO0()
},
// Chivalry is Not Dead (Version from deirdrakai.com)
@@ -172,7 +172,7 @@ static const ADGameDescription gameDescriptions[] = {
AD_ENTRY1s("data.dcp", "ae6d91b9517f4d2851a8ad94c96951c8", 7278302),
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_UNSTABLE,
+ ADGF_TESTING,
GUIO0()
},
// Dead City (English)
diff --git a/engines/wintermute/persistent.h b/engines/wintermute/persistent.h
index ca9281f798..1464ae0fd6 100644
--- a/engines/wintermute/persistent.h
+++ b/engines/wintermute/persistent.h
@@ -82,7 +82,8 @@ namespace Wintermute {
}\
#define TMEMBER(memberName) #memberName, &memberName
-#define TMEMBER_INT(memberName) #memberName, (int*)&memberName
+#define TMEMBER_PTR(memberName) #memberName, &memberName
+#define TMEMBER_INT(memberName) #memberName, (int32*)&memberName
} // end of namespace Wintermute
diff --git a/engines/wintermute/ui/ui_button.cpp b/engines/wintermute/ui/ui_button.cpp
index b638522f6e..9db1f4f4b4 100644
--- a/engines/wintermute/ui/ui_button.cpp
+++ b/engines/wintermute/ui/ui_button.cpp
@@ -1179,21 +1179,21 @@ bool UIButton::persist(BasePersistenceManager *persistMgr) {
UIObject::persist(persistMgr);
persistMgr->transfer(TMEMBER_INT(_align));
- persistMgr->transfer(TMEMBER(_backDisable));
- persistMgr->transfer(TMEMBER(_backFocus));
- persistMgr->transfer(TMEMBER(_backHover));
- persistMgr->transfer(TMEMBER(_backPress));
+ persistMgr->transferPtr(TMEMBER_PTR(_backDisable));
+ persistMgr->transferPtr(TMEMBER_PTR(_backFocus));
+ persistMgr->transferPtr(TMEMBER_PTR(_backHover));
+ persistMgr->transferPtr(TMEMBER_PTR(_backPress));
persistMgr->transfer(TMEMBER(_centerImage));
- persistMgr->transfer(TMEMBER(_fontDisable));
- persistMgr->transfer(TMEMBER(_fontFocus));
- persistMgr->transfer(TMEMBER(_fontHover));
- persistMgr->transfer(TMEMBER(_fontPress));
+ persistMgr->transferPtr(TMEMBER_PTR(_fontDisable));
+ persistMgr->transferPtr(TMEMBER_PTR(_fontFocus));
+ persistMgr->transferPtr(TMEMBER_PTR(_fontHover));
+ persistMgr->transferPtr(TMEMBER_PTR(_fontPress));
persistMgr->transfer(TMEMBER(_hover));
- persistMgr->transfer(TMEMBER(_image));
- persistMgr->transfer(TMEMBER(_imageDisable));
- persistMgr->transfer(TMEMBER(_imageFocus));
- persistMgr->transfer(TMEMBER(_imageHover));
- persistMgr->transfer(TMEMBER(_imagePress));
+ persistMgr->transferPtr(TMEMBER_PTR(_image));
+ persistMgr->transferPtr(TMEMBER_PTR(_imageDisable));
+ persistMgr->transferPtr(TMEMBER_PTR(_imageFocus));
+ persistMgr->transferPtr(TMEMBER_PTR(_imageHover));
+ persistMgr->transferPtr(TMEMBER_PTR(_imagePress));
persistMgr->transfer(TMEMBER(_pixelPerfect));
persistMgr->transfer(TMEMBER(_press));
persistMgr->transfer(TMEMBER(_stayPressed));
diff --git a/engines/wintermute/ui/ui_edit.cpp b/engines/wintermute/ui/ui_edit.cpp
index 7fddf59898..91ca7326cb 100644
--- a/engines/wintermute/ui/ui_edit.cpp
+++ b/engines/wintermute/ui/ui_edit.cpp
@@ -481,7 +481,7 @@ bool UIEdit::scSetProperty(const char *name, ScValue *value) {
//////////////////////////////////////////////////////////////////////////
if (strcmp(name, "SelStart") == 0) {
_selStart = value->getInt();
- _selStart = MAX(_selStart, 0);
+ _selStart = MAX<int32>(_selStart, 0);
_selStart = (int)MIN((size_t)_selStart, strlen(_text));
return STATUS_OK;
}
@@ -491,7 +491,7 @@ bool UIEdit::scSetProperty(const char *name, ScValue *value) {
//////////////////////////////////////////////////////////////////////////
else if (strcmp(name, "SelEnd") == 0) {
_selEnd = value->getInt();
- _selEnd = MAX(_selEnd, 0);
+ _selEnd = MAX<int32>(_selEnd, 0);
_selEnd = (int)MIN((size_t)_selEnd, strlen(_text));
return STATUS_OK;
}
@@ -600,8 +600,8 @@ bool UIEdit::display(int offsetX, int offsetY) {
bool focused = isFocused();
- _selStart = MAX(_selStart, 0);
- _selEnd = MAX(_selEnd, 0);
+ _selStart = MAX<int32>(_selStart, 0);
+ _selEnd = MAX<int32>(_selEnd, 0);
_selStart = (int)MIN((size_t)_selStart, strlen(_text));
_selEnd = (int)MIN((size_t)_selEnd, strlen(_text));
@@ -609,11 +609,11 @@ bool UIEdit::display(int offsetX, int offsetY) {
//int CursorWidth = font->GetCharWidth(_cursorChar[0]);
int cursorWidth = font->getTextWidth((byte *)_cursorChar);
- int s1, s2;
+ int32 s1, s2;
bool curFirst;
// modify scroll offset
if (_selStart >= _selEnd) {
- while (font->getTextWidth((byte *)_text + _scrollOffset, MAX(0, _selEnd - _scrollOffset)) > _width - cursorWidth - 2 * _frameWidth) {
+ while (font->getTextWidth((byte *)_text + _scrollOffset, MAX<int32>(0, _selEnd - _scrollOffset)) > _width - cursorWidth - 2 * _frameWidth) {
_scrollOffset++;
if (_scrollOffset >= (int)strlen(_text)) {
break;
@@ -626,8 +626,8 @@ bool UIEdit::display(int offsetX, int offsetY) {
s2 = _selStart;
curFirst = true;
} else {
- while (font->getTextWidth((byte *)_text + _scrollOffset, MAX(0, _selStart - _scrollOffset)) +
- sfont->getTextWidth((byte *)(_text + MAX(_scrollOffset, _selStart)), _selEnd - MAX(_scrollOffset, _selStart))
+ while (font->getTextWidth((byte *)_text + _scrollOffset, MAX<int32>(0, _selStart - _scrollOffset)) +
+ sfont->getTextWidth((byte *)(_text + MAX<int32>(_scrollOffset, _selStart)), _selEnd - MAX(_scrollOffset, _selStart))
> _width - cursorWidth - 2 * _frameWidth) {
_scrollOffset++;
@@ -766,7 +766,7 @@ bool UIEdit::handleKeypress(Common::Event *event, bool printable) {
deleteChars(_selStart, _selEnd);
}
if (_selEnd >= _selStart) {
- _selEnd -= MAX(1, _selEnd - _selStart);
+ _selEnd -= MAX<int32>(1, _selEnd - _selStart);
}
_selStart = _selEnd;
@@ -934,7 +934,7 @@ bool UIEdit::persist(BasePersistenceManager *persistMgr) {
persistMgr->transfer(TMEMBER(_cursorBlinkRate));
persistMgr->transfer(TMEMBER(_cursorChar));
- persistMgr->transfer(TMEMBER(_fontSelected));
+ persistMgr->transferPtr(TMEMBER_PTR(_fontSelected));
persistMgr->transfer(TMEMBER(_frameWidth));
persistMgr->transfer(TMEMBER(_maxLength));
persistMgr->transfer(TMEMBER(_scrollOffset));
diff --git a/engines/wintermute/ui/ui_entity.cpp b/engines/wintermute/ui/ui_entity.cpp
index 00d442e895..1872400cdd 100644
--- a/engines/wintermute/ui/ui_entity.cpp
+++ b/engines/wintermute/ui/ui_entity.cpp
@@ -359,7 +359,7 @@ bool UIEntity::persist(BasePersistenceManager *persistMgr) {
UIObject::persist(persistMgr);
- persistMgr->transfer(TMEMBER(_entity));
+ persistMgr->transferPtr(TMEMBER_PTR(_entity));
return STATUS_OK;
}
diff --git a/engines/wintermute/ui/ui_object.cpp b/engines/wintermute/ui/ui_object.cpp
index 9dea3dadf9..07efc5e4cb 100644
--- a/engines/wintermute/ui/ui_object.cpp
+++ b/engines/wintermute/ui/ui_object.cpp
@@ -621,17 +621,17 @@ bool UIObject::persist(BasePersistenceManager *persistMgr) {
BaseObject::persist(persistMgr);
- persistMgr->transfer(TMEMBER(_back));
+ persistMgr->transferPtr(TMEMBER_PTR(_back));
persistMgr->transfer(TMEMBER(_canFocus));
persistMgr->transfer(TMEMBER(_disable));
- persistMgr->transfer(TMEMBER(_focusedWidget));
- persistMgr->transfer(TMEMBER(_font));
+ persistMgr->transferPtr(TMEMBER_PTR(_focusedWidget));
+ persistMgr->transferPtr(TMEMBER_PTR(_font));
persistMgr->transfer(TMEMBER(_height));
- persistMgr->transfer(TMEMBER(_image));
- persistMgr->transfer(TMEMBER(_listenerObject));
- persistMgr->transfer(TMEMBER(_listenerParamObject));
+ persistMgr->transferPtr(TMEMBER_PTR(_image));
+ persistMgr->transferPtr(TMEMBER_PTR(_listenerObject));
+ persistMgr->transferPtr(TMEMBER_PTR(_listenerParamObject));
persistMgr->transfer(TMEMBER(_listenerParamDWORD));
- persistMgr->transfer(TMEMBER(_parent));
+ persistMgr->transferPtr(TMEMBER_PTR(_parent));
persistMgr->transfer(TMEMBER(_parentNotify));
persistMgr->transfer(TMEMBER(_sharedFonts));
persistMgr->transfer(TMEMBER(_sharedImages));
diff --git a/engines/wintermute/ui/ui_tiled_image.cpp b/engines/wintermute/ui/ui_tiled_image.cpp
index be9f87cf58..abccdd6c39 100644
--- a/engines/wintermute/ui/ui_tiled_image.cpp
+++ b/engines/wintermute/ui/ui_tiled_image.cpp
@@ -358,7 +358,7 @@ bool UITiledImage::saveAsText(BaseDynamicBuffer *buffer, int indent) {
}
//////////////////////////////////////////////////////////////////////////
-void UITiledImage::correctSize(int *width, int *height) {
+void UITiledImage::correctSize(int32 *width, int32 *height) {
int tileWidth = _middleMiddle.right - _middleMiddle.left;
int tileHeight = _middleMiddle.bottom - _middleMiddle.top;
@@ -377,7 +377,7 @@ bool UITiledImage::persist(BasePersistenceManager *persistMgr) {
persistMgr->transfer(TMEMBER(_downLeft));
persistMgr->transfer(TMEMBER(_downMiddle));
persistMgr->transfer(TMEMBER(_downRight));
- persistMgr->transfer(TMEMBER(_image));
+ persistMgr->transferPtr(TMEMBER_PTR(_image));
persistMgr->transfer(TMEMBER(_middleLeft));
persistMgr->transfer(TMEMBER(_middleMiddle));
persistMgr->transfer(TMEMBER(_middleRight));
diff --git a/engines/wintermute/ui/ui_tiled_image.h b/engines/wintermute/ui/ui_tiled_image.h
index 4868710264..a6cd22d53d 100644
--- a/engines/wintermute/ui/ui_tiled_image.h
+++ b/engines/wintermute/ui/ui_tiled_image.h
@@ -38,7 +38,7 @@ class BaseSubFrame;
class UITiledImage : public BaseObject {
public:
DECLARE_PERSISTENT(UITiledImage, BaseObject)
- void correctSize(int *width, int *height);
+ void correctSize(int32 *width, int32 *height);
bool loadFile(const char *filename);
bool loadBuffer(byte *buffer, bool complete = true);
virtual bool saveAsText(BaseDynamicBuffer *buffer, int indent) override;
diff --git a/engines/wintermute/ui/ui_window.cpp b/engines/wintermute/ui/ui_window.cpp
index 460ec1877b..2ce9f68605 100644
--- a/engines/wintermute/ui/ui_window.cpp
+++ b/engines/wintermute/ui/ui_window.cpp
@@ -1257,24 +1257,24 @@ bool UIWindow::persist(BasePersistenceManager *persistMgr) {
UIObject::persist(persistMgr);
- persistMgr->transfer(TMEMBER(_backInactive));
+ persistMgr->transferPtr(TMEMBER_PTR(_backInactive));
persistMgr->transfer(TMEMBER(_clipContents));
persistMgr->transfer(TMEMBER(_dragFrom));
persistMgr->transfer(TMEMBER(_dragging));
persistMgr->transfer(TMEMBER(_dragRect));
persistMgr->transfer(TMEMBER(_fadeBackground));
persistMgr->transfer(TMEMBER(_fadeColor));
- persistMgr->transfer(TMEMBER(_fontInactive));
- persistMgr->transfer(TMEMBER(_imageInactive));
+ persistMgr->transferPtr(TMEMBER_PTR(_fontInactive));
+ persistMgr->transferPtr(TMEMBER_PTR(_imageInactive));
persistMgr->transfer(TMEMBER(_inGame));
persistMgr->transfer(TMEMBER(_isMenu));
persistMgr->transfer(TMEMBER_INT(_mode));
- persistMgr->transfer(TMEMBER(_shieldButton));
- persistMgr->transfer(TMEMBER(_shieldWindow));
+ persistMgr->transferPtr(TMEMBER_PTR(_shieldButton));
+ persistMgr->transferPtr(TMEMBER_PTR(_shieldWindow));
persistMgr->transfer(TMEMBER_INT(_titleAlign));
persistMgr->transfer(TMEMBER(_titleRect));
persistMgr->transfer(TMEMBER(_transparent));
- persistMgr->transfer(TMEMBER(_viewport));
+ persistMgr->transferPtr(TMEMBER_PTR(_viewport));
persistMgr->transfer(TMEMBER(_pauseMusic));
_widgets.persist(persistMgr);
diff --git a/engines/wintermute/video/video_theora_player.cpp b/engines/wintermute/video/video_theora_player.cpp
index f03be9691e..8f9db8392f 100644
--- a/engines/wintermute/video/video_theora_player.cpp
+++ b/engines/wintermute/video/video_theora_player.cpp
@@ -491,7 +491,7 @@ bool VideoTheoraPlayer::persist(BasePersistenceManager *persistMgr) {
SetDefaults();
}
- persistMgr->transfer(TMEMBER(_gameRef));
+ persistMgr->transferPtr(TMEMBER_PTR(_gameRef));
persistMgr->transfer(TMEMBER(_savedPos));
persistMgr->transfer(TMEMBER(_savedState));
persistMgr->transfer(TMEMBER(_filename));